jackzhou vor 6 Monaten
Ursprung
Commit
54b5eeb55d
16 geänderte Dateien mit 160 neuen und 48 gelöschten Zeilen
  1. 2 1
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/bean/influxdb/SensorData.java
  2. 1 1
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/event/SensorDataEventListener.java
  3. 30 7
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/renke/listener/JfcloudColdChainRenKeDefaultDataListener.java
  4. 3 3
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/AbsRenkeMonitorDataProcessor.java
  5. 7 2
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/WifiCO2TempHumidityProcessor.java
  6. 6 1
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/WifiLowTempRecorderProcessor1.java
  7. 9 2
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/WifiLowTempRecorderProcessor2.java
  8. 7 4
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/WifiLowTempRecorderProcessor4.java
  9. 23 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/model/PowerEnum.java
  10. 8 9
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/controller/AppController.java
  11. 11 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/service/AppDeviceService.java
  12. 39 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/enums/MonitorStatusEnum.java
  13. 0 1
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/enums/MonitorTargetEnum.java
  14. 4 4
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/TargetStatus.java
  15. 9 11
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/service/impl/MonitorTargetServiceImpl.java
  16. 1 2
      snowy-web-app/src/main/java/vip/xiaonuo/weixin/miniapp/controller/WxMaUserController.java

+ 2 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/bean/influxdb/SensorData.java

@@ -14,6 +14,7 @@ import com.influxdb.annotations.Measurement;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import vip.xiaonuo.coldchain.core.service.dataprocess.model.PowerEnum;
 
 @Data
 @AllArgsConstructor
@@ -54,7 +55,7 @@ public class SensorData extends JfcloudInFluxEntity {
      * 插电状态0:插电  1: 不插电
      */
     @Column(name = "plugInStatus", tag = true)
-    private String plugInStatus;
+    private String plugInStatus = PowerEnum.AC.getCode();
 
 
     /**

+ 1 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/event/SensorDataEventListener.java

@@ -28,7 +28,7 @@ public class SensorDataEventListener {
         SensorData sensorData = event.getSensorData();
         try {
             jfcloudInfluxDBService.writePojo(sensorData);
-            log.info("成功写入数据到 InfluxDB: {}", sensorData);
+//            log.info("成功写入数据到 InfluxDB: {}", sensorData);
         } catch (Exception e) {
             log.error("写入数据到 InfluxDB 时出错: {}", e.getMessage());
         }

+ 30 - 7
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/renke/listener/JfcloudColdChainRenKeDefaultDataListener.java

@@ -1,5 +1,6 @@
 package vip.xiaonuo.coldchain.core.renke.listener;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.json.JSONUtil;
 import lombok.extern.slf4j.Slf4j;
 import rk.netDevice.sdk.p2.*;
@@ -29,26 +30,36 @@ public class JfcloudColdChainRenKeDefaultDataListener implements IDataListener {
 
     @Override
     public void receiveTimmingAck(TimmingAck data) {
+        log.info("================================================================");
         log.info("接收到校时应答: 设备ID = {}", data.getDeviceId());
+        log.info("*************************************************************************");
     }
 
     @Override
     public void receiveTelecontrolAck(TelecontrolAck data) {
+        log.info("================================================================");
         log.info("接收到遥控指令应答: 设备ID = {}", data.getDeviceId());
+        log.info("*************************************************************************");
     }
 
     @Override
     public void receiveStoreData(StoreData data) {
+        log.info("======================== 设备ID: {} ========================================", data.getDeviceId());
         log.info("接收到存储数据: 设备ID = {}", data.getDeviceId());
+
         data.getNodeList().forEach(nodeData -> log.info("记录ID: {}, 记录时间: {}, 温度: {}, 湿度: {}", nodeData.getNodeId(), nodeData.getRecordTime(), nodeData.getTem(), nodeData.getHum()));
-        log.info("================================================================");
+        log.info("*************************************************************************");
     }
 
     @Override
     public void receiveRealtimeData(RealTimeData data) {
-        log.info("接收到实时数据: 设备ID = {}", data.getDeviceId());
-        data.getNodeList().forEach(nodeData -> log.info("记录ID: {}, 记录时间: {}, 温度: {}, 湿度: {}", nodeData.getNodeId(), nodeData.getRecordTime(), nodeData.getTem(), nodeData.getHum()));
-        log.info("================================================================");
+        log.info("======================== 设备ID: {} ========================================", data.getDeviceId());
+        log.info("接收到实时数据: 设备ID = {},时间: {}", data.getDeviceId(), DateUtil.now());
+        data.getNodeList().forEach(nodeData -> {
+            log.info("记录ID: {}, 记录时间: {}, 温度: {}°C, 湿度: {}%", nodeData.getNodeId(), nodeData.getRecordTime(), nodeData.getTem(), nodeData.getHum());
+        });
+        log.info("*************************************************************************");
+
         RenKeColdChainMessageData renKeColdChainMessageData = new RenKeColdChainMessageData();
         renKeColdChainMessageData.setRealTimeData(data);
         renKeColdChainDataHandler.handleRealTimeData(renKeColdChainMessageData);
@@ -56,7 +67,9 @@ public class JfcloudColdChainRenKeDefaultDataListener implements IDataListener {
 
     @Override
     public void receiveLoginData(LoginData data) {
+        log.info("======================== 设备ID: {} ========================================", data.getDeviceId());
         log.info("接收到设备登录信息: 设备ID = {}\n{}", data.getDeviceId(), JSONUtil.toJsonStr(data));
+        log.info("*************************************************************************");
         RenKeColdChainMessageData renKeColdChainMessageData = new RenKeColdChainMessageData();
         renKeColdChainMessageData.setDeviceId(data.getDeviceId());
         renKeColdChainDataHandler.login(renKeColdChainMessageData);
@@ -64,31 +77,41 @@ public class JfcloudColdChainRenKeDefaultDataListener implements IDataListener {
 
     @Override
     public void receiveParamIds(ParamIdsData data) {
+        log.info("======================== 设备ID: {} ========================================", data.getDeviceId());
         log.info("接收到设备参数【编号】信息{}", JSONUtil.toJsonStr(data));
+        log.info("*************************************************************************");
         // 更新设备编号参数
         monitorDeviceService.updateParamIds(data);
     }
 
     @Override
     public void receiveParam(ParamData data) {
+        log.info("======================== 设备ID: {} ========================================", data.getDeviceId());
         log.info("接收到设备参数【配置项目】信息: {}", JSONUtil.toJsonStr(data));
+        log.info("*************************************************************************");
         // 更新设备参数
         monitorDeviceService.updateParameters(data);
     }
 
     @Override
     public void receiveWriteParamAck(WriteParamAck data) {
-        log.info("接收到参数下载应答:{}", data);
+        log.info("======================== 设备ID: {} ========================================", data.getDeviceId());
+        log.info("接收到参数下载应答:{}", JSONUtil.toJsonStr(data));
+        log.info("*************************************************************************");
     }
 
     @Override
     public void receiveTransDataAck(TransDataAck data) {
-        log.info("接收到透传数据应答:{}", data);
+        log.info("======================== 设备ID: {} ========================================", data.getDeviceId());
+        log.info("接收到透传数据应答:{}", JSONUtil.toJsonStr(data));
+        log.info("*************************************************************************");
     }
 
     @Override
     public void receiveHeartbeatData(HeartbeatData heartbeatData) {
-        log.info("接收到心跳包: 设备ID = {}", heartbeatData.getDeviceId());
+        log.info("======================== 设备ID: {} ========================================", heartbeatData.getDeviceId());
+        log.info("接收到心跳包: 设备ID = {}", JSONUtil.toJsonStr(heartbeatData));
+        log.info("*************************************************************************");
         RenKeColdChainMessageData renKeColdChainMessageData = new RenKeColdChainMessageData();
         renKeColdChainMessageData.setDeviceId(heartbeatData.getDeviceId());
         renKeColdChainDataHandler.login(renKeColdChainMessageData);

+ 3 - 3
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/AbsRenkeMonitorDataProcessor.java

@@ -60,7 +60,7 @@ public abstract class AbsRenkeMonitorDataProcessor implements MonitorDataProcess
         // 3. 获取设备ID,并从设备缓存中获取设备型号
         final String deviceId = String.valueOf(data.getDeviceId());
         // 4. 日志记录:输出当前设备的型号信息
-        log.info("开始处理设备数据,设备ID: {}, 设备型号: {}", deviceId, getModelName());
+//        log.info("开始处理设备数据,设备ID: {}, 设备型号: {}", deviceId, getModelName());
         // 5. 将实时数据转换为传感器数据列表
         List<SensorData> sensorDataList = transRealTimeData2SensorDatas(data);
         // 6. 发布传感器数据事件
@@ -111,7 +111,7 @@ public abstract class AbsRenkeMonitorDataProcessor implements MonitorDataProcess
     protected boolean writeSensorData(SensorData sensorData) {
         try {
             applicationEventPublisher.publishEvent(new SensorDataEvent(this, sensorData));
-            log.info("成功发布传感器数据事件: {}", sensorData);
+//            log.info("成功发布传感器数据事件: {}", sensorData);
             return true;
         } catch (Exception e) {
             log.error("保存传感器数据失败: {}", sensorData, e);
@@ -127,7 +127,7 @@ public abstract class AbsRenkeMonitorDataProcessor implements MonitorDataProcess
      */
     protected boolean writeSensorDatas(List<SensorData> sensorDataList) {
         if (sensorDataList.isEmpty()) {
-            log.warn("传感器数据列表为空,无法发布事件");
+//            log.warn("传感器数据列表为空,无法发布事件");
             return false;
         }
         // 遍历传感器数据列表并发布每个数据的事件

+ 7 - 2
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/WifiCO2TempHumidityProcessor.java

@@ -9,6 +9,7 @@ import rk.netDevice.sdk.p2.NodeData;
 import rk.netDevice.sdk.p2.RealTimeData;
 import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
 import vip.xiaonuo.coldchain.core.service.dataprocess.dataclean.MonitorDataProcessor;
+import vip.xiaonuo.coldchain.core.service.dataprocess.model.PowerEnum;
 import vip.xiaonuo.coldchain.modular.monitordevice.enums.DeviceModelEnum;
 
 import java.util.List;
@@ -30,12 +31,16 @@ public class WifiCO2TempHumidityProcessor extends AbsRenkeMonitorDataProcessor {
     @Override
     List<SensorData> transRealTimeData2SensorDatas(@NotNull RealTimeData data) {
         List<NodeData> nodeList = data.getNodeList();
-        if (nodeList.size() < 2) {
+        final int numNodes = nodeList.size();
+        if (numNodes < 2) {
             log.error("数据节点数量不够,需要2个节点,但只有{}个", nodeList.size());
             return null;
         }
+        // 最后一路的温度的值0=电源供电  100 电池供电
+        final String plugInStatus = nodeList.get(numNodes - 1).getTem() < 1 ? PowerEnum.AC.getCode() : PowerEnum.DC.getCode();
+        // 最后一路的湿度的值 * 10 表示CO2的含量
+        float CO2 = nodeList.get(numNodes - 1).getHum() * 10;
         NodeData nodeData = nodeList.get(0);
-        float CO2 = nodeList.get(1).getHum() * 10;
         SensorData sensorData = defaultSensorData(data);
         sensorData.setTemperature(nodeData.getTem());
         sensorData.setHumidity(nodeData.getHum());

+ 6 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/WifiLowTempRecorderProcessor1.java

@@ -9,6 +9,7 @@ import rk.netDevice.sdk.p2.NodeData;
 import rk.netDevice.sdk.p2.RealTimeData;
 import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
 import vip.xiaonuo.coldchain.core.service.dataprocess.dataclean.MonitorDataProcessor;
+import vip.xiaonuo.coldchain.core.service.dataprocess.model.PowerEnum;
 import vip.xiaonuo.coldchain.modular.monitordevice.enums.DeviceModelEnum;
 
 import java.util.List;
@@ -30,15 +31,19 @@ public class WifiLowTempRecorderProcessor1 extends AbsRenkeMonitorDataProcessor
     @Override
     List<SensorData> transRealTimeData2SensorDatas(@NotNull RealTimeData data) {
         List<NodeData> nodeList = data.getNodeList();
+        final int numNodes = nodeList.size();
         NodeData nodeData = nodeList.get(0);
+        // 最后一路的温度的值0=电源供电  100 电池供电
+        final String plugInStatus = nodeList.get(numNodes - 1).getTem() < 1 ? PowerEnum.AC.getCode() : PowerEnum.DC.getCode();
         SensorData sensorData = defaultSensorData(data);
         // 只处理有效数据:温度和湿度不为0
         if (nodeData.getTem() != 0.0 || nodeData.getHum() != 0.0) {
-            log.info("记录ID: {}, 记录时间: {}, 温度: {}, 湿度: {}", sensorData.getDeviceId() + " : " + nodeData.getNodeId(), nodeData.getRecordTime(), nodeData.getTem(), nodeData.getHum());
+//            log.info("记录ID: {}, 记录时间: {}, 温度: {}, 湿度: {}", sensorData.getDeviceId() + " : " + nodeData.getNodeId(), nodeData.getRecordTime(), nodeData.getTem(), nodeData.getHum());
             sensorData.setTemperature(nodeData.getTem());
             sensorData.setHumidity(nodeData.getHum());
             sensorData.setLat(nodeData.getLat());
             sensorData.setLng(nodeData.getLng());
+            sensorData.setPlugInStatus(plugInStatus);
         }
         return Lists.newArrayList(sensorData);
     }

+ 9 - 2
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/WifiLowTempRecorderProcessor2.java

@@ -9,6 +9,7 @@ import rk.netDevice.sdk.p2.NodeData;
 import rk.netDevice.sdk.p2.RealTimeData;
 import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
 import vip.xiaonuo.coldchain.core.service.dataprocess.dataclean.MonitorDataProcessor;
+import vip.xiaonuo.coldchain.core.service.dataprocess.model.PowerEnum;
 import vip.xiaonuo.coldchain.modular.monitordevice.enums.DeviceModelEnum;
 
 import java.util.List;
@@ -29,22 +30,28 @@ public class WifiLowTempRecorderProcessor2 extends AbsRenkeMonitorDataProcessor
 
     List<SensorData> transRealTimeData2SensorDatas(@NotNull RealTimeData data) {
         List<NodeData> nodeList = data.getNodeList();
-        if (nodeList.size() < 3) {
+        final int numNodes = nodeList.size();
+        if (numNodes < 3) {
             log.error("数据节点数量不够,需要2个节点,但只有{}个", nodeList.size());
             return null;
         }
         List<SensorData> rlt = Lists.newArrayList();
+        // 倒数第二路的温度的值  是电池的电量
+        final float battery = nodeList.get(numNodes - 2).getTem();
+        // 最后一路的温度的值0=电源供电  100 电池供电
+        final String plugInStatus = nodeList.get(numNodes - 1).getTem() < 1 ? PowerEnum.AC.getCode() : PowerEnum.DC.getCode();
         //前面两路的温湿度
         for (int i = 0; i < 2; i++) {
             NodeData nodeData = nodeList.get(i);
             SensorData sensorData = defaultSensorData(data);
-            sensorData.setBattery(nodeList.get(2).getTem());//第三路温度表示电量
             sensorData.setTemperature(nodeData.getTem());
             sensorData.setHumidity(nodeData.getHum());
             sensorData.setLat(nodeData.getLat());
             sensorData.setLng(nodeData.getLng());
             //设置路数
             sensorData.setRoads((i + 1));
+            sensorData.setBattery(battery);//第三路温度表示电量
+            sensorData.setPlugInStatus(plugInStatus);//第三路温度表示电量
             rlt.add(sensorData);
         }
         return rlt;

+ 7 - 4
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/WifiLowTempRecorderProcessor4.java

@@ -9,6 +9,7 @@ import rk.netDevice.sdk.p2.NodeData;
 import rk.netDevice.sdk.p2.RealTimeData;
 import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
 import vip.xiaonuo.coldchain.core.service.dataprocess.dataclean.MonitorDataProcessor;
+import vip.xiaonuo.coldchain.core.service.dataprocess.model.PowerEnum;
 import vip.xiaonuo.coldchain.modular.monitordevice.enums.DeviceModelEnum;
 
 import java.util.List;
@@ -29,14 +30,16 @@ public class WifiLowTempRecorderProcessor4 extends AbsRenkeMonitorDataProcessor
 
     List<SensorData> transRealTimeData2SensorDatas(@NotNull RealTimeData data) {
         List<NodeData> nodeList = data.getNodeList();
-        if (nodeList.size() < 6) {
+        final int numNodes = nodeList.size();
+        if (numNodes < 6) {
             log.error("数据节点数量不够,需要6个节点,但只有{}个", nodeList.size());
             return null;
         }
         List<SensorData> rlt = Lists.newArrayList();
-        //前面4路的温湿度
-        float battery = nodeList.get(4).getTem();
-        String plugInStatus = nodeList.get(5).getTem() < 1 ? "电源供电" : "电池供电";
+        // 倒数第二路的温度的值  是电池的电量
+        final float battery = nodeList.get(numNodes - 2).getTem();
+        // 最后一路的温度的值0=电源供电  100 电池供电
+        final String plugInStatus = nodeList.get(numNodes - 1).getTem() < 1 ? PowerEnum.AC.getCode() : PowerEnum.DC.getCode();
         for (int i = 0; i < 4; i++) {
             NodeData nodeData = nodeList.get(i);
             SensorData sensorData = defaultSensorData(data);

+ 23 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/model/PowerEnum.java

@@ -0,0 +1,23 @@
+package vip.xiaonuo.coldchain.core.service.dataprocess.model;
+
+import lombok.Getter;
+
+/**
+ * @author jackzhou
+ * @version 1.0
+ * @project jfcloud-coldchain
+ * @description
+ * @date 2024/11/21 20:43:29
+ */
+public enum PowerEnum {
+    AC("AC","电源供电"),
+    DC("DC","电池供电");
+    @Getter
+    private final String code;
+    private final String description;
+
+    PowerEnum(String code, String description) {
+        this.code = code;
+        this.description = description;
+    }
+}

+ 8 - 9
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/controller/AppController.java

@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.*;
 import vip.xiaonuo.coldchain.modular.app.param.*;
 import vip.xiaonuo.coldchain.modular.app.service.AppDeviceService;
 import vip.xiaonuo.coldchain.modular.app.service.MessageService;
+import vip.xiaonuo.coldchain.modular.monitortarget.param.TargetStatus;
 import vip.xiaonuo.common.pojo.CommonResult;
 
 import java.io.ByteArrayInputStream;
@@ -32,11 +33,12 @@ public class AppController {
 
     @GetMapping("/device-status")
     @Operation(summary = "设备总缆")
-    public CommonResult<DeviceStatus> getDeviceStatus() {
-        int totalDevices = 180;
-        int onlineDevices = 120;
-        int offlineDevices = 60;
-        DeviceStatus deviceStatus = new DeviceStatus(totalDevices, onlineDevices, offlineDevices);
+    public CommonResult<TargetStatus> getDeviceStatus(String keyword) {
+//        int totalDevices = 180;
+//        int onlineDevices = 120;
+//        int offlineDevices = 60;
+//        DeviceStatus deviceStatus = new DeviceStatus(totalDevices, onlineDevices, offlineDevices);
+        TargetStatus deviceStatus = appDeviceService.getDeviceStatus(keyword);
         return CommonResult.data(deviceStatus);
     }
 
@@ -165,10 +167,7 @@ public class AppController {
     }
 
     @GetMapping("/message/list")
-    public List<Message> getMessages(
-            @RequestParam MessageType type,
-            @RequestParam int page,
-            @RequestParam int size) {
+    public List<Message> getMessages(@RequestParam MessageType type, @RequestParam int page, @RequestParam int size) {
         return messageService.getMessages(type, page, size);
     }
 

+ 11 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/service/AppDeviceService.java

@@ -17,6 +17,7 @@ import vip.xiaonuo.coldchain.modular.app.param.mock.AppDeviceTestDataGenerator;
 import vip.xiaonuo.coldchain.modular.monitordevice.service.MonitorDeviceService;
 import vip.xiaonuo.coldchain.modular.monitortarget.entity.MonitorTarget;
 import vip.xiaonuo.coldchain.modular.monitortarget.param.MonitorTargetPageParam;
+import vip.xiaonuo.coldchain.modular.monitortarget.param.TargetStatus;
 import vip.xiaonuo.coldchain.modular.monitortarget.service.MonitorTargetService;
 
 import java.time.LocalDateTime;
@@ -127,4 +128,14 @@ public class AppDeviceService {
         });
         return null;
     }
+
+    /**
+     * 获取设备总数
+     *
+     * @param keyword
+     * @return
+     */
+    public TargetStatus getDeviceStatus(String keyword) {
+        return monitorTargetService.getTargetCount();
+    }
 }

+ 39 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/enums/MonitorStatusEnum.java

@@ -0,0 +1,39 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.coldchain.modular.monitortarget.enums;
+
+import lombok.Getter;
+
+/**
+ * 监控对象管理枚举
+ *
+ * @author 黄渊昊
+ * @date 2024/11/13 16:56
+ **/
+@Getter
+public enum MonitorStatusEnum {
+    /**
+     * 设备正常
+     */
+    ONLINE("1", "设备启用"),
+    OFF("1", "设备停用");
+
+    @Getter
+    private final String code;
+    private final String description;
+
+    MonitorStatusEnum(String code, String description) {
+        this.code = code;
+        this.description = description;
+    }
+}

+ 0 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/enums/MonitorTargetEnum.java

@@ -22,7 +22,6 @@ import lombok.Getter;
  **/
 @Getter
 public enum MonitorTargetEnum {
-
     /**
      * 测试
      */

+ 4 - 4
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/TargetStatus.java

@@ -13,14 +13,14 @@ import lombok.Data;
 @Data
 public class TargetStatus {
     @Schema(description = "设备总数")
-    private int total = 0;
+    private long total = 0;
     @Schema(description = "在线设备总数")
-    private int online = 0;
+    private long online = 0;
     @Schema(description = "离线设备总数")
-    private int offline = 0;
+    private long offline = 0;
 
     // 构造函数
-    public TargetStatus(int totalDevices, int onlineDevices, int offlineDevices) {
+    public TargetStatus(long totalDevices, long onlineDevices, long offlineDevices) {
         this.total = totalDevices;
         this.online = onlineDevices;
         this.offline = offlineDevices;

+ 9 - 11
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/service/impl/MonitorTargetServiceImpl.java

@@ -23,9 +23,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import vip.xiaonuo.coldchain.modular.monitordevice.entity.MonitorDevice;
 import vip.xiaonuo.coldchain.modular.monitordevice.service.MonitorDeviceService;
 import vip.xiaonuo.coldchain.modular.monitortarget.entity.MonitorTarget;
+import vip.xiaonuo.coldchain.modular.monitortarget.enums.MonitorStatusEnum;
 import vip.xiaonuo.coldchain.modular.monitortarget.mapper.MonitorTargetMapper;
 import vip.xiaonuo.coldchain.modular.monitortarget.param.*;
 import vip.xiaonuo.coldchain.modular.monitortarget.service.MonitorTargetService;
@@ -61,8 +61,7 @@ public class MonitorTargetServiceImpl extends ServiceImpl<MonitorTargetMapper, M
         }
         if (ObjectUtil.isAllNotEmpty(monitorTargetPageParam.getSortField(), monitorTargetPageParam.getSortOrder())) {
             CommonSortOrderEnum.validate(monitorTargetPageParam.getSortOrder());
-            queryWrapper.orderBy(true, monitorTargetPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
-                    StrUtil.toUnderlineCase(monitorTargetPageParam.getSortField()));
+            queryWrapper.orderBy(true, monitorTargetPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()), StrUtil.toUnderlineCase(monitorTargetPageParam.getSortField()));
         } else {
             queryWrapper.lambda().orderByAsc(MonitorTarget::getId);
         }
@@ -138,8 +137,7 @@ public class MonitorTargetServiceImpl extends ServiceImpl<MonitorTargetMapper, M
         }
         if (ObjectUtil.isAllNotEmpty(monitorTargetPageParam.getSortField(), monitorTargetPageParam.getSortOrder())) {
             CommonSortOrderEnum.validate(monitorTargetPageParam.getSortOrder());
-            queryWrapper.orderBy(true, monitorTargetPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
-                    StrUtil.toUnderlineCase(monitorTargetPageParam.getSortField()));
+            queryWrapper.orderBy(true, monitorTargetPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()), StrUtil.toUnderlineCase(monitorTargetPageParam.getSortField()));
         } else {
             queryWrapper.lambda().orderByAsc(MonitorTarget::getId);
         }
@@ -154,14 +152,14 @@ public class MonitorTargetServiceImpl extends ServiceImpl<MonitorTargetMapper, M
 
     @Override
     public TargetStatus getTargetCount() {
-        List<MonitorTarget> monitorTargetList = list();
+        long count = this.count();
         LambdaQueryWrapper<MonitorTarget> onlineQueryWrapper = new LambdaQueryWrapper<>();
-        onlineQueryWrapper.eq(MonitorTarget::getStatus, "1");
-        List<MonitorTarget> monitorTargetListOnline = list(onlineQueryWrapper);
+        onlineQueryWrapper.eq(MonitorTarget::getStatus, MonitorStatusEnum.ONLINE.getCode());
+        long monitorTargetListOnline = count(onlineQueryWrapper);
         LambdaQueryWrapper<MonitorTarget> offlineQueryWrapper = new LambdaQueryWrapper<>();
-        offlineQueryWrapper.eq(MonitorTarget::getStatus, "2");
-        List<MonitorTarget> monitorTargetListOffline = list(offlineQueryWrapper);
-        return new TargetStatus(monitorTargetList.size(), monitorTargetListOnline.size(), monitorTargetListOffline.size());
+        offlineQueryWrapper.eq(MonitorTarget::getStatus, MonitorStatusEnum.OFF.getCode());
+        long monitorTargetListOffline = count(offlineQueryWrapper);
+        return new TargetStatus(count, monitorTargetListOnline, monitorTargetListOffline);
     }
 
     @Override

+ 1 - 2
snowy-web-app/src/main/java/vip/xiaonuo/weixin/miniapp/controller/WxMaUserController.java

@@ -56,7 +56,7 @@ public class WxMaUserController {
             SysLoginUser loginUser = sysUserService.getUserByOpenId(openid);
             JfcloudWxMaJscode2SessionResult jfcloudWxMaJscode2SessionResult = new JfcloudWxMaJscode2SessionResult();
             jfcloudWxMaJscode2SessionResult.setOpenid(session.getOpenid());
-            jfcloudWxMaJscode2SessionResult.setSessionKey(session.getSessionKey());
+//            jfcloudWxMaJscode2SessionResult.setSessionKey(session.getSessionKey());
             if (!Objects.isNull(loginUser)) {
                 //非新用户,直接登录返回token
                 String token = authService.doLoginByOpenId(openid, loginUser);
@@ -64,7 +64,6 @@ public class WxMaUserController {
                 jfcloudWxMaJscode2SessionResult.setUser(loginUser);
                 jfcloudWxMaJscode2SessionResult.setToken(token);
                 jfcloudWxMaJscode2SessionResult.setOpenid(session.getOpenid());
-                jfcloudWxMaJscode2SessionResult.setSessionKey(session.getSessionKey());
             }
             return JsonUtils.toJson(jfcloudWxMaJscode2SessionResult);
         } catch (WxErrorException e) {