From fbc2429987b5d9a645349fabeb2960948d07fef4 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 24 十一月 2025 12:48:59 +0800
Subject: [PATCH] 伸长率、电阻数采对接新Iot平台数据

---
 cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java |   47 ++++++++++++++++++++---------------------------
 1 files changed, 20 insertions(+), 27 deletions(-)

diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java
index 6c7ac21..4d35e6d 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java
@@ -113,16 +113,16 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void dcResistanceDataAnalysis(String jsonStr,String deviceCode) {
+    public void dcResistanceDataAnalysis(String jsonStr) {
         Map<String, Object> dataMap = JSONObject.parseObject(jsonStr, new TypeReference<Map<String, Object>>(){}.getType());
-        if(CollectionUtil.isNotEmpty(dataMap) && Objects.nonNull(dataMap.get("data"))){
-            List<DeviceMqttVO> dataList = JSONArray.parseObject(dataMap.get("data").toString(), new TypeReference<List<DeviceMqttVO>>(){}.getType());
+        if(CollectionUtil.isNotEmpty(dataMap)){
             //杩囨护鍑哄寘鍚疄闄呯數闃诲�肩殑瀵硅薄
-            String entrustCode = getValueByDataStream(dataList,DCResistanceMqttConstants.NSDQCS_DQCS_SN);
-            BigDecimal zxdzzValue = new BigDecimal(getValueByDataStream(dataList,DCResistanceMqttConstants.NSDQCS_DQCS_ZXDZZ));
-            BigDecimal fxdzzValue = new BigDecimal(getValueByDataStream(dataList,DCResistanceMqttConstants.NSDQCS_DQCS_FXDZZ));
+            String entrustCode = getValueByDataStream(dataMap,DCResistanceMqttConstants.NSDQCS_DQCS_SN);
+            String deviceCode = getValueByDataStream(dataMap,DCResistanceMqttConstants.deviceName);
+            BigDecimal zxdzzValue = new BigDecimal(getValueByDataStream(dataMap,DCResistanceMqttConstants.NSDQCS_DQCS_ZXDZZ));
+            BigDecimal fxdzzValue = new BigDecimal(getValueByDataStream(dataMap,DCResistanceMqttConstants.NSDQCS_DQCS_FXDZZ));
 //            BigDecimal testLength = new BigDecimal(getValueByDataStream(dataList,DCResistanceMqttConstants.NSDQCS_DQCS_CD));
-            Double tempValue = new BigDecimal(getValueByDataStream(dataList,DCResistanceMqttConstants.NSDQCS_DQCS_WD)).setScale(2, RoundingMode.HALF_UP).doubleValue();
+            Double tempValue = new BigDecimal(getValueByDataStream(dataMap,DCResistanceMqttConstants.NSDQCS_DQCS_WD)).setScale(2, RoundingMode.HALF_UP).doubleValue();
             //璁$畻骞冲潎鐢甸樆鍊�
             BigDecimal value = zxdzzValue.abs().add(fxdzzValue.abs()).divide(BigDecimal.valueOf(2L), RoundingMode.HALF_UP);
             Long count = collectBridgeMapper.selectCount(Wrappers.<CollectBridge>lambdaQuery().eq(CollectBridge::getEntrustCode, entrustCode));
@@ -140,45 +140,37 @@
     }
 
     @Override
-    public void elongationDataAnalysis(String jsonStr,String deviceCode) {
+    public void elongationDataAnalysis(String jsonStr) {
         Map<String, Object> dataMap = JSONObject.parseObject(jsonStr, new TypeReference<Map<String, Object>>(){}.getType());
-        if(CollectionUtil.isNotEmpty(dataMap) && Objects.nonNull(dataMap.get("data"))){
-            List<DeviceMqttVO> dataList = JSONArray.parseObject(dataMap.get("data").toString(), new TypeReference<List<DeviceMqttVO>>(){}.getType());
+        if(CollectionUtil.isNotEmpty(dataMap)){
             // 浼搁暱鐜囷細澶勭悊 NSTSSC.TSSC.SCL 鏁版嵁
-            processMultipleValueDataStream(dataList, ElongationMqttConstants.NSTSSC_TSSC_SCL,3,10.0,deviceCode);
-        }else{
-            processMultipleValueDataStream(dataMap, ElongationMqttConstants.NSTSSC1_TSSC_SCL,3,10.0,deviceCode);
+            processMultipleValueDataStream(dataMap, ElongationMqttConstants.NSTSSC_TSSC_SCL,3,10.0);
         }
     }
 
     /**
      * 鑾峰彇mqtt娑堟伅浣撲腑瀵瑰簲鏍囪瘑鐨勫��
-     * @param dataList 鏁版嵁鍒楄〃
+     * @param dataMap 鏁版嵁鍒楄〃
      * @param dataStream 鏁版嵁娴佹爣璇�
      */
-    private String getValueByDataStream(List<DeviceMqttVO> dataList, String dataStream) {
-        DeviceMqttVO deviceMqttVO = dataList.stream()
-                .filter(f -> StringUtils.equals(f.getDataStream(), dataStream))
-                .findFirst()
-                .orElse(null);
-        if(Objects.nonNull(deviceMqttVO)){
-            List<DeviceMqttVO.DataPoint> dataPoints = deviceMqttVO.getDataPoints();
-            return CollectionUtil.isNotEmpty(dataPoints)?dataPoints.get(0).getValue():"";
+    private String getValueByDataStream(Map<String,Object> dataMap, String dataStream) {
+        try{
+            return dataMap.get(dataStream).toString();
+        }catch (Exception e){
+            return "";
         }
-        return "";
     }
 
     /**
      * 澶勭悊闇�瑕佷繚瀛樺涓�肩殑鏁版嵁娴侊紝骞朵繚瀛樺埌 Redis
-     * @param dataList 鏁版嵁鍒楄〃
+     * @param dataMap 鏁版嵁鍒楄〃
      * @param dataStream 鏁版嵁娴佹爣璇�
      * @param maxSize 淇濆瓨鐨勬渶澶т釜鏁�
      * @param minVal 瀛樺偍鏁版嵁鐨勬渶灏忓�硷紝浣庝簬璇ュ�煎垯璺宠繃锛�-1浠h〃涓嶉檺鍒�
-     * @param deviceCode 璁惧缂栧彿
      */
-    private void processMultipleValueDataStream(List<DeviceMqttVO> dataList, String dataStream,int maxSize,Double minVal,String deviceCode){
+    private void processMultipleValueDataStream(Map<String,Object> dataMap, String dataStream,int maxSize,Double minVal){
         // 绛涢�夊嚭褰撳墠鏁版嵁娴佸搴旂殑鏁版嵁
-        Double value = Double.parseDouble(getValueByDataStream(dataList, dataStream));
+        Double value = Double.parseDouble(getValueByDataStream(dataMap, dataStream));
         //濡傛灉鏈�灏忓�间笉涓虹┖涓斾笉涓�-1锛岃幏鍙栧埌鐨勫�煎皬浜庢渶灏忓�煎垯璺宠繃涓嶅仛澶勭悊
         if(Objects.nonNull(minVal)&&minVal!=-1&&value<minVal){
             return;
@@ -192,6 +184,7 @@
                 RedisUtil.delZSetRange(dataStream,0,0);
             }
         }
+        String deviceCode = getValueByDataStream(dataMap,ElongationMqttConstants.deviceName);
         RedisUtil.addZSet(dataStream+"."+deviceCode,System.currentTimeMillis(),value);
     }
 

--
Gitblit v1.9.3