|
@@ -0,0 +1,257 @@
|
|
|
+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.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<WaterImmersionDevInfoDTO> waterImmersionList = waterImmersionDevInfoDao.getWaterImmersionListByDTO(dto);
|
|
|
+ List<WaterImmersionDevInfoDTO> 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<WaterImmersionDevInfoLogDTO> logList = waterImmersionDevInfoDao.getLogListByDTO(dto);
|
|
|
+ List<WaterImmersionDevInfoLogDTO> 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;
|
|
|
+ }
|
|
|
+}
|