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