package com.welampiot.service.impl; import com.welampiot.dao.ScreenDao; import com.welampiot.dto.ScreenDTO; import com.welampiot.service.ScreenService; import com.welampiot.vo.ScreenDetailsVO; import com.welampiot.vo.ScreenVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * ClassName: ScreenServiceImpl * Package: com.welampiot.service.impl * Description: * * @Author: zhj_Start * @Create: 2023/4/14 - 11:11 * @Version: v1.0 */ @Service public class ScreenServiceImpl implements ScreenService { @Autowired private ScreenDao screenDao; @Override public ScreenVO getScreenList(ScreenDTO dto) { ScreenVO vo = new ScreenVO(); vo.setTotal(screenDao.getTotalBySectionList(dto)); vo.setOnlineTotal(screenDao.getOnlineTotalBySectionList(dto)); List screenList = screenDao.getScreenListByDTO(dto); List list = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); screenList.forEach(screenDTO ->{ if (screenDTO.getNetStatus() != null && screenDTO.getNetStatus() == 1){ screenDTO.setNetStatus(1); }else { screenDTO.setNetStatus(0); } if (screenDTO.getStatus() != null && screenDTO.getStatus() == 1){ screenDTO.setStatus(1); }else { screenDTO.setStatus(0); } if (screenDTO.getOpenMode() != null && screenDTO.getOpenMode() == 1){ screenDTO.setOpenMode(1); }else { screenDTO.setOpenMode(0); } if (screenDTO.getProgramName() == null){ screenDTO.setProgramName(""); } if (screenDTO.getLampPoleName() == null){ screenDTO.setLampPoleName(""); } if (screenDTO.getDayCom() == null){ screenDTO.setDayCom(0.0f); } if (screenDTO.getTotalCom() == null){ screenDTO.setTotalCom(0.0f); } if (screenDTO.getVoltage() == null){ screenDTO.setVoltage(0.0f); } if (screenDTO.getCurrent() == null){ screenDTO.setCurrent(0.0f); } if (screenDTO.getPower() == null){ screenDTO.setPower(0.0f); } if (screenDTO.getCanCut() != null && screenDTO.getCanCut() == 1){ screenDTO.setCanCut(1); }else { screenDTO.setCanCut(0); } screenDTO.setWidthHeight(screenDTO.getWidth() + "*" + screenDTO.getHeight()); //数据更新时间 if (screenDTO.getUpdateTime() != null && !screenDTO.getUpdateTime().equals("")){ Date cmdTime; try { cmdTime = simpleDateFormat.parse(screenDTO.getUpdateTime()); } catch (ParseException e) { throw new RuntimeException(e); } //判断时区,为null默认东八区 long timezone = screenDTO.getTimezone() == null ? 8 : screenDTO.getTimezone(); long l = cmdTime.getTime() + timezone * 3600 * 1000; cmdTime = new Date(l); screenDTO.setUpdateTime(simpleDateFormat.format(cmdTime)); }else { screenDTO.setUpdateTime(""); } if (screenDTO.getInstallDate() != null && !screenDTO.getInstallDate().equals("")){ try { screenDTO.setInstallDate(simpleDateFormat.format(simpleDateFormat.parse(screenDTO.getInstallDate()))); } catch (ParseException e) { throw new RuntimeException(e); } }else { screenDTO.setInstallDate(""); } if (screenDTO.getExpirationDate() != null && !screenDTO.getExpirationDate().equals("")){ try { screenDTO.setExpirationDate(simpleDateFormat.format(simpleDateFormat.parse(screenDTO.getExpirationDate()))); } catch (ParseException e) { throw new RuntimeException(e); } }else { screenDTO.setExpirationDate(""); } list.add(screenDTO); }); vo.setList(list); return vo; } @Override public ScreenVO getScreenNavByDTO(ScreenDTO dto) { ScreenVO vo = new ScreenVO(); List screenNavList = screenDao.getScreenNavByDTO(dto); vo.setList(screenNavList); return vo; } @Override public ScreenDetailsVO getScreenDetails(ScreenDTO dto) { ScreenDetailsVO vo = new ScreenDetailsVO(); ScreenDTO screenDTO = screenDao.getScreenDetailsByDTO(dto); if (screenDTO == null) return null; vo.setId(screenDTO.getId().toString()); vo.setModel(screenDTO.getModel()); vo.setNum(screenDTO.getNum()); vo.setResolve(screenDTO.getResolve()); //点阵规则(0 = p4,1 = p3,2 = p2,3 = LCD,4 = 其他) if (screenDTO.getRole() != null && screenDTO.getRole() == 4){ screenDTO.setRole(4); vo.setRole(screenDTO.getRole().toString()); }else if (screenDTO.getRole() != null && screenDTO.getRole() == 3){ screenDTO.setRole(3); vo.setRole(screenDTO.getRole().toString()); }else if (screenDTO.getRole() != null && screenDTO.getRole() == 2){ screenDTO.setRole(2); vo.setRole(screenDTO.getRole().toString()); }else if (screenDTO.getRole() != null && screenDTO.getRole() == 1){ screenDTO.setRole(1); vo.setRole(screenDTO.getRole().toString()); }else { screenDTO.setRole(0); vo.setRole(screenDTO.getRole().toString()); } //供电方式(0 = 适配器,1 = POE,2 = 其他,3 = AC220V) if (screenDTO.getPowerModel() != null && screenDTO.getPowerModel() == 3){ screenDTO.setPowerModel(3); vo.setPowerModel(screenDTO.getPowerModel().toString()); }else if (screenDTO.getPowerModel() != null && screenDTO.getPowerModel() == 2){ screenDTO.setPowerModel(2); vo.setPowerModel(screenDTO.getPowerModel().toString()); }else if (screenDTO.getPowerModel() != null && screenDTO.getPowerModel() == 1){ screenDTO.setPowerModel(1); vo.setPowerModel(screenDTO.getPowerModel().toString()); }else { screenDTO.setPowerModel(0); vo.setPowerModel(screenDTO.getPowerModel().toString()); } //通信方式(0 = 以太网,1 = 4G,2 = 其他) if (screenDTO.getComModel() != null && screenDTO.getComModel() == 2){ screenDTO.setComModel(2); vo.setComModel(screenDTO.getComModel().toString()); }else if (screenDTO.getComModel() != null && screenDTO.getComModel() == 1){ screenDTO.setComModel(1); vo.setComModel(screenDTO.getComModel().toString()); }else { screenDTO.setComModel(0); vo.setComModel(screenDTO.getComModel().toString()); } //网络状态(0 = 离线,1 = 在线) if (screenDTO.getNetStatus() != null && screenDTO.getNetStatus() == 1){ screenDTO.setNetStatus(1); vo.setNetStatus(screenDTO.getNetStatus().toString()); }else { screenDTO.setNetStatus(0); vo.setNetStatus(screenDTO.getNetStatus().toString()); } //屏幕开关状态(0 = 关,1 = 开) if (screenDTO.getStatus() != null && screenDTO.getStatus() == 1){ screenDTO.setStatus(1); vo.setStatus(screenDTO.getStatus().toString()); }else { screenDTO.setStatus(0); vo.setStatus(screenDTO.getStatus().toString()); } vo.setLight(screenDTO.getLight().toString()); vo.setVolume(screenDTO.getVolume().toString()); vo.setWidth(screenDTO.getWidth().toString()); vo.setHeight(screenDTO.getHeight().toString()); if (screenDTO.getProgramName() != null && !screenDTO.getProgramName().equals("")){ vo.setPlaying(screenDTO.getProgramName()); }else { vo.setPlaying(""); } //屏幕播放类型(0 节目,1 气象站,2 视屏监控) if (screenDTO.getType() != null && screenDTO.getType() == 2){ screenDTO.setType(2); vo.setType(screenDTO.getType().toString()); }else if(screenDTO.getType() != null && screenDTO.getType() == 1){ screenDTO.setType(1); vo.setType(screenDTO.getType().toString()); }else { screenDTO.setType(0); vo.setType(screenDTO.getType().toString()); } vo.setMaxLight(screenDTO.getMaxLight().toString()); return vo; } @Override public List getAllScreenListBySectionId(Integer sectionId) { return screenDao.getAllScreenListBySectionId(sectionId); } @Override public ScreenDTO getScreenByLampPoleId(Integer lampPoleId) { return screenDao.getScreenByLampPoleId(lampPoleId); } @Override public void deleteScreenById(Integer id) { screenDao.deleteScreenById(id); } @Override public Integer getLampPoleIdByScreenId(Integer id) { return screenDao.getLampPoleIdByScreenId(id); } @Override public Integer getScreenCountByLampPoleId(Integer lampPoleId) { return screenDao.getScreenCountByLampPoleId(lampPoleId); } @Override public void updateLampPoleScreenData(ScreenDTO dto) { screenDao.updateLampPoleScreenData(dto); } @Override public Integer checkScreenData(ScreenDTO dto) { return screenDao.checkScreenData(dto); } @Override public ScreenDTO getScreenById(int id) { return screenDao.getScreenById(id); } @Override public void updateByDto(ScreenDTO dto) { screenDao.updateByDto(dto); } @Override public Integer getTotalBySectionList(ScreenDTO dto) { return screenDao.getTotalBySectionList(dto); } }