From 5e388cfb25b24a154e28b3c42143493fc77f8e56 Mon Sep 17 00:00:00 2001
From: liulin <lin.liu@88.com>
Date: 星期五, 04 七月 2025 11:02:10 +0800
Subject: [PATCH] 添加mqtt

---
 src/main/java/com/lunhan/water/service/PaymentRecordsService.java |   33 ++++++++++++++++++++++++++++++---
 1 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/lunhan/water/service/PaymentRecordsService.java b/src/main/java/com/lunhan/water/service/PaymentRecordsService.java
index e3bd5c6..340600f 100644
--- a/src/main/java/com/lunhan/water/service/PaymentRecordsService.java
+++ b/src/main/java/com/lunhan/water/service/PaymentRecordsService.java
@@ -235,8 +235,9 @@
         data.addProperty(facilityPO.getFacilityCode() + "_amount", request.getAmount().multiply(BigDecimal.valueOf(100)));
         data.addProperty(facilityPO.getFacilityCode() + "_user", userLoginPO.getUserCode());
         data.addProperty(facilityPO.getFacilityCode() + "_state", 1);
+        boolean send=false;
         if (Objects.nonNull(mqttServer)) {
-            mqttServer.send(topic, data.toString());
+            send = mqttServer.send(topic, data.toString());
         } else {
             try {
                 System.out.println("mqttServer bean尚未初始化...");
@@ -245,8 +246,11 @@
             } catch (Exception ignored) {
             }
             if (Objects.nonNull(mqttServer)) {
-                mqttServer.send(topic, data.toString());
+                send=mqttServer.send(topic, data.toString());
             }
+        }
+        if(!send){
+            ExecutedResult.failed("通讯断开!");
         }
         return ExecutedResult.success("请点击设备取水按钮取水");
     }
@@ -361,14 +365,37 @@
     public void uploadState(String time,WaterFacilityPO facilityPO, List<CountVO> listVo){
         CountVO heartbeatVO = listVo.stream().filter(x -> x.getName().equals(facilityPO.getFacilityCode() + "_heartbeat")).findFirst().orElse(null);
         HeartbeatDataPO heartbeatDataPO = heartbeatDataMapper.getByKey(facilityPO.getFacilityCode());
-        if(Objects.isNull(heartbeatDataPO)){
+        if(Objects.nonNull(heartbeatDataPO)){
+            heartbeatDataPO.setDataValue(Integer.valueOf(heartbeatVO.getValue()));
+            heartbeatDataPO.setSendValue(heartbeatDataPO.getSendValue()==0?1:0);
+            heartbeatDataMapper.updateById(heartbeatDataPO);
+        }else {
             HeartbeatDataPO dataPO=new HeartbeatDataPO();
             dataPO.setDataKey(facilityPO.getFacilityCode());
+            dataPO.setSendValue(0);
             dataPO.setDataValue(Integer.valueOf(heartbeatVO.getValue()));
             dataPO.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
             dataPO.setRemark(LocalDateTimeUtil.nowDateTimeStr());
             heartbeatDataMapper.insert(dataPO);
         }
+        //发送心跳数据
+        // 发送心跳
+        String topic = "zundong/"+facilityPO.getFacilityCode()+"/remotecontrol/";
+        JsonObject data = new JsonObject();
+        data.addProperty(facilityPO.getFacilityCode()+"_heartbeat", heartbeatDataPO.getSendValue()==0?1:0);
+        if (Objects.nonNull(mqttServer)) {
+            mqttServer.send(topic, data.toString());
+        } else {
+            try {
+                System.out.println("mqttServer bean尚未初始化...");
+                mqttServer = SpringUtil.getBean(MQTTServer.class);
+                System.out.println("mqttServer 初始化bean成功!");
+            } catch (Exception ignored) {
+            }
+            if (Objects.nonNull(mqttServer)) {
+                mqttServer.send(topic, data.toString());
+            }
+        }
     }
     public ExecutedResult<List<PaymentRecordsVO>> getList(List<Long> listId) {
         List<PaymentRecordsVO> result = new ArrayList<>();

--
Gitblit v1.9.3