From 01136df34a1d8edb6972bbec725b656a602b83af Mon Sep 17 00:00:00 2001 From: elkers <elkers@163.com> Date: 星期四, 24 四月 2025 16:58:27 +0800 Subject: [PATCH] 修改启泵时间时长计算 --- src/main/java/com/nanjing/water/service/DataUploadRecordService.java | 47 +++++++++++---- src/main/java/com/nanjing/water/repository/po/WaterPumpOperatingRecordPO.java | 18 ++++++ src/main/java/com/nanjing/water/service/WaterFacilityParameterService.java | 86 +++++++++++++++++++++++----- 3 files changed, 122 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/nanjing/water/repository/po/WaterPumpOperatingRecordPO.java b/src/main/java/com/nanjing/water/repository/po/WaterPumpOperatingRecordPO.java index 23e7587..0a23352 100644 --- a/src/main/java/com/nanjing/water/repository/po/WaterPumpOperatingRecordPO.java +++ b/src/main/java/com/nanjing/water/repository/po/WaterPumpOperatingRecordPO.java @@ -81,4 +81,22 @@ */ @TableField(value = "update_time") private Timestamp updateTime; + + /** + * 单次运行时长 + */ + @TableField(value = "start_time") + private Integer startTime; + + /** + * 总运行时长 + */ + @TableField(value = "sum_start_time") + private Integer sumStartTime; + + /** + * 最后更新时间 + */ + @TableField(value = "start") + private String start; } diff --git a/src/main/java/com/nanjing/water/service/DataUploadRecordService.java b/src/main/java/com/nanjing/water/service/DataUploadRecordService.java index 5b7d954..7dddf01 100644 --- a/src/main/java/com/nanjing/water/service/DataUploadRecordService.java +++ b/src/main/java/com/nanjing/water/service/DataUploadRecordService.java @@ -362,17 +362,16 @@ //循环上报数据 for(CountVO vo:entry.getValue()){ //保存数据 +// if(vo.getCode().equals("B001Time")||vo.getCode().equals("B002Time")){ +// if(vo.) +// } WaterFacilityParameterPO parameterPO1 = parameterPOList.stream().filter(item -> item.getFacilityId().equals(facilityPO.getId()) && item.getColumnsCode().equals(vo.getCode())).findFirst().orElse(null); if(Objects.nonNull(parameterPO1)){ parameterPO1.setColumnValue(vo.getValue()); parameterPO1.setLastTime(asJsonObject); - parameterList.add(parameterPO1); + } - //判断报警 - // AlarmHistoryPO alarmHistoryPO=null; -// if(ListUtil.isNotNullOrEmpty(historyPOList)){ -// alarmHistoryPO = historyPOList.stream().filter(item -> item.getFacilityId().equals(parameterPO1.getFacilityId()) && item.getCode().equals(parameterPO1.getColumnsCode()) && item.getIsSolve() == 0).findFirst().orElse(null); -// } + switch (vo.getCode()){ case "QF1": //1号空开吸合关闭报警 @@ -419,12 +418,22 @@ startNumber(facilityPO,parameterPO1, recordPOList,dataVOList); break; case "B001Start": - waterPumpStartNumber(recordPOList,facilityPO,"B001StartNumber", vo.getValue()); + waterPumpStartNumber(recordPOList,facilityPO,"B001Start", vo.getValue()); break; case "B002Start": - waterPumpStartNumber(recordPOList,facilityPO,"B002StartNumber", vo.getValue()); + waterPumpStartNumber(recordPOList,facilityPO,"B002Start", vo.getValue()); break; +// case "B001Time": +// +// break; +// case "B002Time": +// break; +// case "B001TimeSum": +// break; +// case "B002TimeSum": +// break; } + parameterList.add(parameterPO1); } waterFacilityParameterMapper.updateById(parameterList); @@ -433,11 +442,16 @@ } public void waterPumpStartNumber(List<WaterPumpOperatingRecordPO> recordPOList,WaterFacilityPO facility,String key,String value){ - if("true".equals(value)){ - WaterPumpOperatingRecordPO recordPO = recordPOList.stream().filter(item -> item.getFacilityId().equals(facility.getId()) && item.getCode().equals(key)).findFirst().orElse(null); + WaterPumpOperatingRecordPO recordPO = recordPOList.stream().filter(item -> item.getFacilityId().equals(facility.getId()) && item.getCode().equals(key)).findFirst().orElse(null); + if("true".equals(value)){ if(Objects.nonNull(recordPO)){ - recordPO.setStartNumber(recordPO.getStartNumber()+1); + if(recordPO.getStart().equals("false")){ + recordPO.setStartNumber(recordPO.getStartNumber()+1); + } recordPO.setLastTime(LocalDateTimeUtil.nowDateTimeStr()); + recordPO.setStart("true"); + recordPO.setStartTime(recordPO.getStartTime()+3); + recordPO.setSumStartTime(recordPO.getSumStartTime()+3); waterPumpOperatingRecordMapper.updateById(recordPO); }else { recordPO=new WaterPumpOperatingRecordPO(); @@ -445,11 +459,20 @@ recordPO.setFacilityId(facility.getId()); recordPO.setCode(key); recordPO.setStartNumber(1); + recordPO.setStartTime(3); + recordPO.setSumStartTime(3); + recordPO.setStart("true"); recordPO.setCreateTime(LocalDateTimeUtil.nowTimeStamp()); recordPO.setLastTime(LocalDateTimeUtil.nowDateTimeStr()); waterPumpOperatingRecordMapper.insert(recordPO); } - } + }else { + if(Objects.nonNull(recordPO)){ + recordPO.setStartTime(0); + recordPO.setStart("false"); + waterPumpOperatingRecordMapper.updateById(recordPO); + } + } } public void QFCreateAlarm(WaterFacilityPO facilityPO,WaterFacilityParameterPO parameterPO,String value, Gson gson,BigDecimal delayTime) throws MqttException { if(value.equals("false")){ diff --git a/src/main/java/com/nanjing/water/service/WaterFacilityParameterService.java b/src/main/java/com/nanjing/water/service/WaterFacilityParameterService.java index bff5f78..d4b5be5 100644 --- a/src/main/java/com/nanjing/water/service/WaterFacilityParameterService.java +++ b/src/main/java/com/nanjing/water/service/WaterFacilityParameterService.java @@ -291,6 +291,18 @@ result = CopierUtil.mapTo(facilityPOList, WaterFacilityVO.class); int sumTime=0; for(WaterFacilityVO facilityVO:result){ + WaterPumpOperatingRecordPO b001 = recordPOList.stream().filter(item -> item.getFacilityId().equals(facilityVO.getId()) && item.getCode().equals("B001Start")).findFirst().orElse(null); + WaterPumpOperatingRecordPO b002 = recordPOList.stream().filter(item -> item.getFacilityId().equals(facilityVO.getId()) && item.getCode().equals("B002Start")).findFirst().orElse(null); + if(Objects.nonNull(b001)){ + sumTime+=b001.getSumStartTime(); + } + if(Objects.nonNull(b002)){ + sumTime+=b002.getSumStartTime(); + } + if(sumTime>0){ + String timeString = timeString(sumTime); + facilityVO.setTotalTime(timeString); + } List<WaterFacilityParameterPO> collect = parameterPOList.stream().filter(x -> x.getFacilityId().equals(facilityVO.getId())).collect(Collectors.toList()); if(ListUtil.isNotNullOrEmpty(collect)){ List<WaterFacilityParameterVO>parameterVOList=CopierUtil.mapTo(collect, WaterFacilityParameterVO.class); @@ -306,28 +318,68 @@ if("true".equals(parameterVO.getColumnValue())){ parameterVO.setColumnValue("开"); } - if(parameterVO.getColumnsCode().equals("B001TimeSum")||parameterVO.getColumnsCode().equals("B002TimeSum")){ - int time = new BigDecimal(parameterVO.getColumnValue()).intValue(); - sumTime=sumTime+time; - if(sumTime>0){ - String timeString = timeString(sumTime); - facilityVO.setTotalTime(timeString); - } - } - if(parameterVO.getColumnsCode().equals("B001Time")||parameterVO.getColumnsCode().equals("B002Time")||parameterVO.getColumnsCode().equals("B001TimeSum")||parameterVO.getColumnsCode().equals("B002TimeSum")){ + if(parameterVO.getColumnsCode().equals("B001Time")){ //计算时分秒 - Integer time= new BigDecimal(parameterVO.getColumnValue()).intValue(); - if(time>0){ - String timeString = timeString(time); - parameterVO.setColumnValue(timeString); + if(Objects.nonNull(b001)){ + if(b001.getStartTime()>0){ + String timeString = timeString(b001.getStartTime()); + parameterVO.setColumnValue(timeString); + }else { + parameterVO.setColumnValue(String.valueOf(0)); + } + }else { + parameterVO.setColumnValue(String.valueOf(0)); } } - if(parameterVO.getColumnsCode().equals("B001StartNumber")||parameterVO.getColumnsCode().equals("B002StartNumber")){ - WaterPumpOperatingRecordPO recordPO = recordPOList.stream().filter(item -> item.getFacilityId().equals(facilityVO.getId()) && item.getCode().equals(parameterVO.getColumnsCode())).findFirst().orElse(null); - if(Objects.nonNull(recordPO)){ - parameterVO.setColumnValue(recordPO.getStartNumber().toString()); + if(parameterVO.getColumnsCode().equals("B002Time")){//计算时分秒 + if(Objects.nonNull(b002)){ + if(b002.getStartTime()>0){ + String timeString = timeString(b002.getStartTime()); + parameterVO.setColumnValue(timeString); + }else { + parameterVO.setColumnValue(String.valueOf(0)); + } + }else { + parameterVO.setColumnValue(String.valueOf(0)); + } + + } + if(parameterVO.getColumnsCode().equals("B001TimeSum")){ + if(Objects.nonNull(b001)){ + if(b001.getSumStartTime()>0){ + String timeString = timeString(b001.getSumStartTime()); + parameterVO.setColumnValue(timeString); + }else { + parameterVO.setColumnValue(String.valueOf(0)); + } + }else { + parameterVO.setColumnValue(String.valueOf(0)); + } + + } + if(parameterVO.getColumnsCode().equals("B002TimeSum")){ + if(Objects.nonNull(b002)){ + if(b002.getSumStartTime()>0){ + String timeString = timeString(b002.getSumStartTime()); + parameterVO.setColumnValue(timeString); + }else { + parameterVO.setColumnValue(String.valueOf(0)); + } + }else { + parameterVO.setColumnValue(String.valueOf(0)); } } + if(parameterVO.getColumnsCode().equals("B001StartNumber")){ + if(Objects.nonNull(b001)){ + parameterVO.setColumnValue(b001.getStartNumber().toString()); + } + } + if(parameterVO.getColumnsCode().equals("B002StartNumber")){ + if(Objects.nonNull(b002)){ + parameterVO.setColumnValue(b002.getStartNumber().toString()); + } + } + } facilityVO.setParameterVOList(parameterVOList); } -- Gitblit v1.9.3