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