From 320350eb18e32a9a008c4e6409441730732e2e97 Mon Sep 17 00:00:00 2001
From: vince <757871790@qq.com>
Date: 星期一, 17 二月 2025 16:24:55 +0800
Subject: [PATCH] 优化测温协议

---
 src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java |    2 
 src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java         |   69 +++++++++++------
 src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java     |    2 
 src/main/java/com/fzzy/protocol/bhzn/v01/analysis/AnalysisService.java     |   62 ++++++++++-----
 src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java      |   64 ++++++++++-----
 src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java                  |    8 -
 src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java |    2 
 7 files changed, 133 insertions(+), 76 deletions(-)

diff --git a/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java b/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java
index ed73699..dde419d 100644
--- a/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java
+++ b/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java
@@ -122,16 +122,14 @@
         BaseReqData reqData = new BaseReqData();
         BaseResp resp;
 
-
+        for (int i = 0 ;i<3;i++){
             for (GatewayDevice device : list) {
-                for (int i = 0 ;i<3;i++){
-
                     try{
                         //濡傛灉涓嶆槸绮儏鍒嗘満璺宠繃
                         if (!GatewayDeviceType.TYPE_07.getCode().equals(device.getType())) {
                             continue;
                         }
-                        if( i>0 && !device.getDeviceSn().startsWith("91510704731594658J002")){
+                        if( i>0 && !(device.getDeviceId().startsWith("91510704731594658J001") ||device.getDeviceId().startsWith("91510704731594658J002") || device.getDeviceId().startsWith("91510700205404914T001"))){
                             continue;
                         }
                         reqData.setDeviceId(device.getDeviceId());
@@ -142,7 +140,7 @@
                         GatewaySyncGranService syncGrainService = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol());
                         resp = syncGrainService.syncGrain(reqData);
                         log.info("鍛戒护鍙戦�佺粨鏋滐細"+resp.toString());
-                        Thread.sleep(60000);
+                        Thread.sleep(120000);
                     }catch (Exception e){
                         log.error(e.getMessage(),e);
                     }
diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
index ed86f3f..0a8e17b 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
@@ -611,7 +611,7 @@
             //濡傛灉鏄紓甯稿��,鎵ц璋冩暣鏁版嵁 TODO
             if (Double.valueOf(curTemp) < -99.9) {
 
-                curTemp = output.getAvgTemperature();
+                //curTemp = output.getAvgTemperature();
 
             } else {
                 //鍒ゆ柇鏈�澶�
diff --git a/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java
index 2ec5d81..f03bd01 100644
--- a/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java
@@ -277,8 +277,8 @@
         int cableZ = cableData.getCableZ();
         int cableY = cableData.getCableY();
 
-        int sumNum = temps.size();
-            log.info("temps:" + temps.toString());
+        int sumNum = 0;
+        log.info("temps:" + temps.toString());
         //鏁版嵁灏佽
         GrainData grain = new GrainData();
         grain.setMessageId(ScConstant.getMessageId());
@@ -304,7 +304,7 @@
 
         double curTemp;
         int x = 0, y = 0, z = 0;
-        for (int i = 0; i < sumNum; i++) {
+        for (int i = 0; i < temps.size(); i++) {
             curTemp = temps.get(i);
             position = i;
 
@@ -317,17 +317,27 @@
 
             temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + ""));
 
-            //姹傛渶澶ф渶灏忓��
-            if (curTemp < -900) {
-                sumNum--;
-            } else {
+//            //姹傛渶澶ф渶灏忓��
+//            if (curTemp < -900) {
+//            //    sumNum--;
+//            } else {
+//                sumT += curTemp;
+//                if (curTemp > max) {
+//                    max = curTemp;
+//                }
+//                if (curTemp < min) {
+//                    min = curTemp;
+//                }
+//            }
+            if (curTemp > max  && curTemp < 40) {
+                max = curTemp;
+            }
+            if (curTemp < min && curTemp > 3) {
+                min = curTemp;
+            }
+            if(curTemp > 3 &&  curTemp < 40){
                 sumT += curTemp;
-                if (curTemp > max) {
-                    max = curTemp;
-                }
-                if (curTemp < min) {
-                    min = curTemp;
-                }
+                sumNum++;
             }
         }
 
@@ -448,8 +458,7 @@
         GrainOutPut outPut = new GrainOutPut();
 
 
-        double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum = cableX
-                * cableY * cableZ;
+        double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum = 0;
 
         List<GrainTemp> temperature = new ArrayList<>();
         //鏍瑰彿
@@ -470,16 +479,26 @@
             temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + ""));
 
             //姹傛渶澶ф渶灏忓��
-            if (curTemp < -900) {
-                sumNum--;
-            } else {
+//            if (curTemp < -900) {
+//                sumNum--;
+//            } else {
+//                sumT += curTemp;
+//                if (curTemp > max) {
+//                    max = curTemp;
+//                }
+//                if (curTemp < min) {
+//                    min = curTemp;
+//                }
+//            }
+            if (curTemp > max  && curTemp < 40) {
+                max = curTemp;
+            }
+            if (curTemp < min && curTemp > 3) {
+                min = curTemp;
+            }
+            if(curTemp > 3 &&  curTemp < 40){
                 sumT += curTemp;
-                if (curTemp > max) {
-                    max = curTemp;
-                }
-                if (curTemp < min) {
-                    min = curTemp;
-                }
+                sumNum++;
             }
         }
 
@@ -498,7 +517,7 @@
         outPut.setTemperature(temperature);
         outPut.setAvgTemperature(NumberUtil.keepPrecision((sumT / sumNum), 1) + "");
         outPut.setMinTemperature(min + "");
-        outPut.setMaxTemperature(min + "");
+        outPut.setMaxTemperature(max + "");
         List<GrainTH> ths = new ArrayList<>();
 
         ths.add(new GrainTH(thDto.getTempIn() != null ? thDto.getTempIn() + "" : "", thDto.getHumidityIn() != null ? thDto.getHumidityIn() + "" : "", "1"));
diff --git a/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java b/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java
index a6c3c6d..a99d5bf 100644
--- a/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java
+++ b/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java
@@ -65,7 +65,7 @@
             // 鍙戦�佸懡浠�
             InvokeResult message = BhznGrainV2ServerEngine.push(device.getIp(), device.getPort(), BytesUtil.hexStrToBytes(hexStr));
 
-            log.error("骞冲彴------>>>>鎺у埗鏌滐細鍙戦�佺伯鎯呮娴嬪懡浠�-{}", message);
+            log.info("骞冲彴------>>>>鎺у埗鏌滐細鍙戦�佺伯鎯呮娴嬪懡浠�-{}-{}", message,hexStr);
 
             // 灏佽杩斿洖淇℃伅
             if (!InvokeResult.SUCCESS.getCode().equals(message.getCode())) {
diff --git a/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java
index 5be2c2d..fad300a 100644
--- a/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java
@@ -280,7 +280,7 @@
         int cableY = cableData.getCableY();
         int cableX = cableData.getCableX();
 
-        int sumNum = temps.size();
+        int sumNum = 0;
 
         //鏁版嵁灏佽
         GrainData grain = new GrainData();
@@ -307,7 +307,7 @@
 
         double curTemp;
         int x = 0, y = 0, z = 0;
-        for (int i = 0; i < sumNum; i++) {
+        for (int i = 0; i < temps.size(); i++) {
             curTemp = temps.get(i);
             position = i;
 
@@ -321,16 +321,26 @@
             temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + ""));
 
             //姹傛渶澶ф渶灏忓��
-            if (curTemp < -900) {
-                sumNum--;
-            } else {
+//            if (curTemp < -900) {
+//                sumNum--;
+//            } else {
+//                sumT += curTemp;
+//                if (curTemp > max) {
+//                    max = curTemp;
+//                }
+//                if (curTemp < min) {
+//                    min = curTemp;
+//                }
+//            }
+            if (curTemp > max  && curTemp < 40) {
+                max = curTemp;
+            }
+            if (curTemp < min && curTemp > 3) {
+                min = curTemp;
+            }
+            if(curTemp > 3 &&  curTemp < 40){
                 sumT += curTemp;
-                if (curTemp > max) {
-                    max = curTemp;
-                }
-                if (curTemp < min) {
-                    min = curTemp;
-                }
+                sumNum++;
             }
         }
 
@@ -349,7 +359,7 @@
         outPut.setTemperature(temperature);
         outPut.setAvgTemperature(NumberUtil.keepPrecision((sumT / sumNum), 1) + "");
         outPut.setMinTemperature(min + "");
-        outPut.setMaxTemperature(min + "");
+        outPut.setMaxTemperature(max + "");
 
 
         JSONObject properties = new JSONObject();
@@ -415,7 +425,7 @@
         GrainOutPut outPut = new GrainOutPut();
 
 
-        double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum = cableData.getSumNum();
+        double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum =0;
 
         List<GrainTemp> temperature = new ArrayList<>();
         //鏍瑰彿
@@ -437,16 +447,26 @@
             temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + ""));
 
             //姹傛渶澶ф渶灏忓��
-            if (curTemp < -900) {
-                sumNum--;
-            } else {
+//            if (curTemp < -900) {
+//                sumNum--;
+//            } else {
+//                sumT += curTemp;
+//                if (curTemp > max) {
+//                    max = curTemp;
+//                }
+//                if (curTemp < min) {
+//                    min = curTemp;
+//                }
+//            }
+            if (curTemp > max  && curTemp < 40) {
+                max = curTemp;
+            }
+            if (curTemp < min && curTemp > 3) {
+                min = curTemp;
+            }
+            if(curTemp > 3 &&  curTemp < 40){
                 sumT += curTemp;
-                if (curTemp > max) {
-                    max = curTemp;
-                }
-                if (curTemp < min) {
-                    min = curTemp;
-                }
+                sumNum++;
             }
         }
 
diff --git a/src/main/java/com/fzzy/protocol/bhzn/v01/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/bhzn/v01/analysis/AnalysisService.java
index cb3f55a..cf2db68 100644
--- a/src/main/java/com/fzzy/protocol/bhzn/v01/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/bhzn/v01/analysis/AnalysisService.java
@@ -278,7 +278,7 @@
         int cableY = cableData.getCableY();
         int cableX = cableData.getCableX();
 
-        int sumNum = temps.size();
+        int sumNum = 0;
 
         //鏁版嵁灏佽
         GrainData grain = new GrainData();
@@ -319,16 +319,26 @@
             temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + ""));
 
             //姹傛渶澶ф渶灏忓��
-            if (curTemp < -900) {
-                sumNum--;
-            } else {
+//            if (curTemp < -900) {
+//                sumNum--;
+//            } else {
+//                sumT += curTemp;
+//                if (curTemp > max) {
+//                    max = curTemp;
+//                }
+//                if (curTemp < min) {
+//                    min = curTemp;
+//                }
+//            }
+            if (curTemp > max  && curTemp < 40) {
+                max = curTemp;
+            }
+            if (curTemp < min && curTemp > 3) {
+                min = curTemp;
+            }
+            if(curTemp > 3 &&  curTemp < 40){
                 sumT += curTemp;
-                if (curTemp > max) {
-                    max = curTemp;
-                }
-                if (curTemp < min) {
-                    min = curTemp;
-                }
+                sumNum++;
             }
         }
 
@@ -347,7 +357,7 @@
         outPut.setTemperature(temperature);
         outPut.setAvgTemperature(NumberUtil.keepPrecision((sumT / sumNum), 1) + "");
         outPut.setMinTemperature(min + "");
-        outPut.setMaxTemperature(min + "");
+        outPut.setMaxTemperature(max + "");
 
 
         JSONObject properties = new JSONObject();
@@ -413,7 +423,7 @@
         GrainOutPut outPut = new GrainOutPut();
 
 
-        double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum = cableData.getSumNum();
+        double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum = 0;
 
         List<GrainTemp> temperature = new ArrayList<>();
         //鏍瑰彿
@@ -435,16 +445,26 @@
             temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + ""));
 
             //姹傛渶澶ф渶灏忓��
-            if (curTemp < -900) {
-                sumNum--;
-            } else {
+//            if (curTemp < -900) {
+//                sumNum--;
+//            } else {
+//                sumT += curTemp;
+//                if (curTemp > max) {
+//                    max = curTemp;
+//                }
+//                if (curTemp < min) {
+//                    min = curTemp;
+//                }
+//            }
+            if (curTemp > max  && curTemp < 40) {
+                max = curTemp;
+            }
+            if (curTemp < min && curTemp > 3) {
+                min = curTemp;
+            }
+            if(curTemp > 3 &&  curTemp < 40){
                 sumT += curTemp;
-                if (curTemp > max) {
-                    max = curTemp;
-                }
-                if (curTemp < min) {
-                    min = curTemp;
-                }
+                sumNum++;
             }
         }
 
diff --git a/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java
index 111195e..6d60d71 100644
--- a/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java
@@ -255,7 +255,7 @@
         outPut.setTemperature(temperature);
         outPut.setAvgTemperature(NumberUtil.keepPrecision((sumT / sumNum), 1) + "");
         outPut.setMinTemperature(min + "");
-        outPut.setMaxTemperature(min + "");
+        outPut.setMaxTemperature(max + "");
         List<GrainTH> ths = new ArrayList<>();
 
 

--
Gitblit v1.9.3