From 4f3a98f19143865cdc1de4791e8a95d96bd40c65 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 01 八月 2025 13:27:59 +0800
Subject: [PATCH] yys 密码已重置

---
 cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java |  107 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 107 insertions(+), 0 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
new file mode 100644
index 0000000..a1acb6e
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java
@@ -0,0 +1,107 @@
+package com.ruoyi.device.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.device.mapper.CollectBridgeMapper;
+import com.ruoyi.device.pojo.CollectBridge;
+import com.ruoyi.device.service.CollectBridgeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.time.Duration;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+
+/**
+ * 鏁板瓧鐢垫ˉ閲囬泦
+ *
+ * @author zhuo
+ * @since 2025-02-19
+ */
+@Service
+@Slf4j
+public class CollectBridgeServiceImpl extends ServiceImpl<CollectBridgeMapper, CollectBridge> implements CollectBridgeService {
+
+    /**
+     * 濉厖閲囬泦鏁版嵁
+     * @param jsonObject
+     */
+    @Override
+    public void addBridgeValue(JSONObject jsonObject) {
+        JSONArray dataArray = jsonObject.getJSONArray("data");
+        for (int i = 0; i < dataArray.size(); i++) {
+            JSONObject listInfo = dataArray.getJSONObject(i);
+            // 瀛樺偍鏁版嵁
+            String dataStream = listInfo.getString("dataStream");
+            if (dataStream.equals("DQCS.DQCS.SN")) {
+                JSONArray dataPoints = listInfo.getJSONArray("dataPoints");
+                JSONObject pointsJSONObject = dataPoints.getJSONObject(0);
+                String entrustCode = pointsJSONObject.getString("value");
+                // 瑙f瀽鏃堕棿鎴�
+                Instant instant = Instant.ofEpochMilli(pointsJSONObject.getLong("time"));
+                LocalDateTime collectDate = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
+
+                // 鍏堝瓨鍌ㄧ紪鍙�, 鍚庣画瀛樺偍鍊�
+                CollectBridge collectBridge = new CollectBridge();
+                collectBridge.setEntrustCode(entrustCode);
+                collectBridge.setCollectDate(collectDate);
+                baseMapper.insert(collectBridge);
+
+            }
+            // 瀵勫瓨鍣ㄥ湴鍧�绛変簬64鑾峰彇缁撴灉鍊�
+            if (dataStream.equals("DQCS.DQCS.64")) {
+                JSONArray dataPoints = listInfo.getJSONArray("dataPoints");
+                JSONObject pointsJSONObject = dataPoints.getJSONObject(0);
+                String value = pointsJSONObject.getString("value");
+
+                if (value.equals("64")) {
+                    for (int j = 0; j < dataArray.size(); j++) {
+                        JSONObject listInfo2 = dataArray.getJSONObject(j);
+                        String dataStream2 = listInfo2.getString("dataStream");
+                        // 瀵勫瓨鍣ㄥ湴鍧�绛変簬64鑾峰彇缁撴灉鍊�
+                        if (dataStream2.equals("DQCS.DQCS.DZZ")) {
+                            JSONArray dataPoints2 = listInfo2.getJSONArray("dataPoints");
+                            JSONObject pointsJSONObject2 = dataPoints2.getJSONObject(0);
+                            String collectValue = pointsJSONObject2.getString("value");
+
+                            // 瑙f瀽鏃堕棿鎴�
+                            Instant instant = Instant.ofEpochMilli(pointsJSONObject2.getLong("time"));
+                            LocalDateTime collectDate = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
+
+                            // 鏌ヨ鏈�鏂颁竴鏉℃暟鎹�
+                            CollectBridge collectBridge = baseMapper.selectOne(Wrappers.<CollectBridge>lambdaQuery()
+                                    .orderByDesc(CollectBridge::getCollectDate)
+                                    .last("limit 1"));
+
+                            // 鍒ゆ柇涓ゆ潯鏁版嵁鏄惁鐩稿樊鍦�10鍒嗛挓涔嬪唴鍜屾湁娌℃湁缂栧彿
+                            if (isWithinTenMinutes(collectDate, collectBridge.getCollectDate()) &&
+                                    StringUtils.isNotBlank(collectBridge.getEntrustCode())) {
+                                // 淇敼妫�楠屽��
+                                collectBridge.setCollectValue(collectValue);
+                                baseMapper.updateById(collectBridge);
+                            } else {
+                                // 鍙瓨鍌ㄥ��
+                                CollectBridge bridge = new CollectBridge();
+                                bridge.setCollectValue(collectValue);
+                                bridge.setCollectDate(collectDate);
+                                baseMapper.insert(bridge);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    public static boolean isWithinTenMinutes(LocalDateTime dateTime1, LocalDateTime dateTime2) {
+        Duration duration = Duration.between(dateTime1, dateTime2);
+        long minutesDifference = Math.abs(duration.toMinutes());
+        return minutesDifference <= 10;
+    }
+
+}
+

--
Gitblit v1.9.3