package com.welampiot.service.impl; import com.welampiot.dao.WaterImmersionDevInfoDao; import com.welampiot.dto.WaterImmersionDevInfoDTO; import com.welampiot.dto.WaterImmersionDevInfoLogDTO; import com.welampiot.service.WaterImmersionDevInfoService; import com.welampiot.vo.WaterImmersionDevInfoLogVO; import com.welampiot.vo.WaterImmersionDevInfoVO; 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.HashMap; import java.util.List; /** * ClassName: WaterImmersionDevInfoServiceImpl * Package: com.welampiot.service.impl * Description: * * @Author: zhj_Start * @Create: 2023/4/19 - 12:45 * @Version: v1.0 */ @Service public class WaterImmersionDevInfoServiceImpl implements WaterImmersionDevInfoService { @Autowired private WaterImmersionDevInfoDao waterImmersionDevInfoDao; @Override public WaterImmersionDevInfoVO getWaterImmersionList(WaterImmersionDevInfoDTO dto, Integer version) { WaterImmersionDevInfoVO vo = new WaterImmersionDevInfoVO(); vo.setTotal(waterImmersionDevInfoDao.getDeviceTotalByDTO(dto)); List waterImmersionList = waterImmersionDevInfoDao.getWaterImmersionListByDTO(dto); List list = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); waterImmersionList.forEach(waterImmersionDTO ->{ //灯杆名 if (waterImmersionDTO.getLampPoleName() == null){ waterImmersionDTO.setLampPoleName(""); } //区域名 if (version == 0){ if (waterImmersionDTO.getChArea() != null){ waterImmersionDTO.setArea(waterImmersionDTO.getChArea()); }else { waterImmersionDTO.setArea(""); } }else if (version == 1){ if (waterImmersionDTO.getEnArea() != null){ waterImmersionDTO.setArea(waterImmersionDTO.getEnArea()); }else { waterImmersionDTO.setArea(""); } }else { if (waterImmersionDTO.getRuArea() != null){ waterImmersionDTO.setArea(waterImmersionDTO.getRuArea()); }else { waterImmersionDTO.setArea(""); } } //路段名 if (waterImmersionDTO.getSection() == null){ waterImmersionDTO.setSection(""); } //设备型号(0 RS-SJ-R01-4,1 RS485-WT10) if (waterImmersionDTO.getModel() != null && waterImmersionDTO.getModel() == 1){ waterImmersionDTO.setModel(1); }else { waterImmersionDTO.setModel(0); } //网络状态(0:离线,1:在线) if (waterImmersionDTO.getStatus() != null && waterImmersionDTO.getStatus() == 1){ waterImmersionDTO.setStatus(1); }else { waterImmersionDTO.setStatus(0); } //水浸探针1(0 正常,1 浸水) if (waterImmersionDTO.getProbe1() != null && waterImmersionDTO.getProbe1() == 1){ waterImmersionDTO.setProbe1(1); }else { waterImmersionDTO.setProbe1(0); } //水浸探针2(0 正常,1 浸水) if (waterImmersionDTO.getProbe2() != null && waterImmersionDTO.getProbe2() == 1){ waterImmersionDTO.setProbe2(1); }else { waterImmersionDTO.setProbe2(0); } //报警等级(0: 一级,1: 二级,2: 三级) if (waterImmersionDTO.getLevel() != null && waterImmersionDTO.getLevel() == 2){ waterImmersionDTO.setLevel(2); }else if (waterImmersionDTO.getLevel() != null && waterImmersionDTO.getLevel() == 1){ waterImmersionDTO.setLevel(1); }else { waterImmersionDTO.setLevel(0); } //关联设备是否要断电(0: 否,1:是) if (waterImmersionDTO.getPowerStatus() != null && waterImmersionDTO.getPowerStatus() == 1){ waterImmersionDTO.setPowerStatus(1); }else { waterImmersionDTO.setPowerStatus(0); } //厂家(0:建大仁科,1:红斯迈科技,2:云之声) if (waterImmersionDTO.getFactory() != null && waterImmersionDTO.getFactory() == 2){ waterImmersionDTO.setFactory(2); }else if (waterImmersionDTO.getFactory() != null && waterImmersionDTO.getFactory() == 1){ waterImmersionDTO.setFactory(1); }else { waterImmersionDTO.setFactory(0); } //云盒的型号(0 G100,1 G200,2 G300) if (waterImmersionDTO.getCloudBoxModel() != null && waterImmersionDTO.getCloudBoxModel() == 2){ waterImmersionDTO.setCloudBoxModel(2); }else if (waterImmersionDTO.getCloudBoxModel() != null && waterImmersionDTO.getCloudBoxModel() == 1){ waterImmersionDTO.setCloudBoxModel(1); }else { waterImmersionDTO.setCloudBoxModel(0); } //创建时间 if (waterImmersionDTO.getCreateTime() != null && !waterImmersionDTO.getCreateTime().equals("")){ try { waterImmersionDTO.setCreateTime(simpleDateFormat.format(simpleDateFormat.parse(waterImmersionDTO.getCreateTime()))); } catch (ParseException e) { throw new RuntimeException(e); } }else { waterImmersionDTO.setCreateTime(""); } //安装时间 if (waterImmersionDTO.getInstallDate() != null && !waterImmersionDTO.getInstallDate().equals("")){ try { waterImmersionDTO.setInstallDate(simpleDateFormat.format(simpleDateFormat.parse(waterImmersionDTO.getInstallDate()))); } catch (ParseException e) { throw new RuntimeException(e); } }else { waterImmersionDTO.setInstallDate(""); } //过期时间 if (waterImmersionDTO.getExpirationDate() != null && !waterImmersionDTO.getExpirationDate().equals("")){ try { waterImmersionDTO.setExpirationDate(simpleDateFormat.format(simpleDateFormat.parse(waterImmersionDTO.getExpirationDate()))); } catch (ParseException e) { throw new RuntimeException(e); } }else { waterImmersionDTO.setExpirationDate(""); } //更新时间 if (waterImmersionDTO.getUpdateTime() != null && !waterImmersionDTO.getUpdateTime().equals("")){ Date cmdTime; try { cmdTime = simpleDateFormat.parse(waterImmersionDTO.getUpdateTime()); } catch (ParseException e) { throw new RuntimeException(e); } //判断时区,为null默认东八区 long timezone = waterImmersionDTO.getTimezone() == null ? 8 : waterImmersionDTO.getTimezone(); long l = cmdTime.getTime() + timezone * 3600 * 1000; cmdTime = new Date(l); waterImmersionDTO.setUpdateTime(simpleDateFormat.format(cmdTime)); }else { waterImmersionDTO.setUpdateTime(""); } list.add(waterImmersionDTO); }); vo.setList(list); return vo; } @Override public WaterImmersionDevInfoLogVO getLogList(WaterImmersionDevInfoLogDTO dto) { WaterImmersionDevInfoLogVO vo = new WaterImmersionDevInfoLogVO(); vo.setTotal(waterImmersionDevInfoDao.getDeviceTotalByDTO(dto)); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //开始时间 if (dto.getBeginTime() != null && !dto.getBeginTime().equals("")){ Date cmdTime; try { cmdTime = simpleDateFormat.parse(dto.getBeginTime()); } catch (ParseException e) { throw new RuntimeException(e); } //判断时区,为null默认东八区 long timezone = waterImmersionDevInfoDao.getTimezoneById(dto) == null ? 8 : waterImmersionDevInfoDao.getTimezoneById(dto); long l = cmdTime.getTime() - timezone * 3600 * 1000; cmdTime = new Date(l); dto.setBeginTime(simpleDateFormat.format(cmdTime)); }else { dto.setBeginTime(""); } //结束时间 if (dto.getEndTime() != null && !dto.getEndTime().equals("")){ Date cmdTime; try { cmdTime = simpleDateFormat.parse(dto.getEndTime()); } catch (ParseException e) { throw new RuntimeException(e); } //判断时区,为null默认东八区 long timezone = waterImmersionDevInfoDao.getTimezoneById(dto) == null ? 8 : waterImmersionDevInfoDao.getTimezoneById(dto); long l = cmdTime.getTime() - timezone * 3600 * 1000; cmdTime = new Date(l); dto.setEndTime(simpleDateFormat.format(cmdTime)); }else { dto.setEndTime(""); } List logList = waterImmersionDevInfoDao.getLogListByDTO(dto); List list = new ArrayList<>(); logList.forEach(logDTO ->{ if (logDTO.getProbe1() != null && logDTO.getProbe1() == 1){ logDTO.setProbe1(1); }else { logDTO.setProbe1(0); } if (logDTO.getProbe2() != null && logDTO.getProbe2() == 2){ logDTO.setProbe2(1); }else { logDTO.setProbe2(0); } if (logDTO.getLevel() != null && logDTO.getLevel() == 2){ logDTO.setLevel(2); }else if (logDTO.getLevel() != null && logDTO.getLevel() == 1){ logDTO.setLevel(1); }else { logDTO.setLevel(0); } if (logDTO.getPowerStatus() != null && logDTO.getPowerStatus() == 1){ logDTO.setPowerStatus(1); }else { logDTO.setPowerStatus(0); } //更新时间 if (logDTO.getUpdateTime() != null && !logDTO.getUpdateTime().equals("")){ Date cmdTime; try { cmdTime = simpleDateFormat.parse(logDTO.getUpdateTime()); } catch (ParseException e) { throw new RuntimeException(e); } //判断时区,为null默认东八区 long timezone = logDTO.getTimezone() == null ? 8 : logDTO.getTimezone(); long l = cmdTime.getTime() + timezone * 3600 * 1000; cmdTime = new Date(l); logDTO.setUpdateTime(simpleDateFormat.format(cmdTime)); }else { logDTO.setUpdateTime(""); } list.add(logDTO); }); vo.setList(list); return vo; } @Override public void updateWaterImmersionDataByDTO(WaterImmersionDevInfoDTO dto) { waterImmersionDevInfoDao.updateWaterImmersionDataByDTO(dto); } @Override public Integer findByWaterImmersionDTO(WaterImmersionDevInfoDTO dto) { return waterImmersionDevInfoDao.findByWaterImmersionDTO(dto); } @Override public Integer findSectionIdById(Integer id) { return waterImmersionDevInfoDao.findSectionIdById(id); } @Override public void deleteWaterImmersionDataByDTO(Integer id) { waterImmersionDevInfoDao.deleteWaterImmersionDataByDTO(id); this.deleteWaterImmersionLogDataByDTO(id); } @Override public void deleteWaterImmersionLogDataByDTO(Integer id) { waterImmersionDevInfoDao.deleteWaterImmersionLogDataByDTO(id); } @Override public WaterImmersionDevInfoDTO getWaterDTOById(Integer id) { return waterImmersionDevInfoDao.getWaterDTOById(id); } @Override public Integer getWaterImmersionTotal(WaterImmersionDevInfoDTO dto) { return waterImmersionDevInfoDao.getWaterImmersionTotal(dto); } @Override public Integer getWaterImmersionOnlineCount(WaterImmersionDevInfoDTO dto) { return waterImmersionDevInfoDao.getWaterImmersionOnlineCount(dto); } @Override public Integer getWaterImmersionAlarmCount(WaterImmersionDevInfoDTO dto) { return waterImmersionDevInfoDao.getWaterImmersionAlarmCount(dto); } @Override public Integer getWaterImmersionNewCount(WaterImmersionDevInfoDTO dto) { return waterImmersionDevInfoDao.getWaterImmersionNewCount(dto); } @Override public void updateDelayTimeByDto(WaterImmersionDevInfoDTO dto) { waterImmersionDevInfoDao.updateDelayTimeByDto(dto); } @Override public int getTotalBySectionList(WaterImmersionDevInfoDTO dto) { return waterImmersionDevInfoDao.getTotalBySectionList(dto); } @Override public WaterImmersionDevInfoDTO getOneWaterImmersion(HashMap map){ return waterImmersionDevInfoDao.getOneWaterImmersion(map); } }