Эх сурвалжийг харах

Merge branch 'master' of http://git.nzklabs.com:3000/huangyuanhao/jfcloud-coldchain

jackzhou 4 сар өмнө
parent
commit
293f25c6c8
15 өөрчлөгдсөн 89 нэмэгдсэн , 15 устгасан
  1. 9 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/param/AppDeviceData.java
  2. 47 7
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/service/AppDeviceService.java
  3. 1 1
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/entity/MonitorDeviceTemplate.java
  4. 1 1
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/service/impl/MonitorDeviceServiceImpl.java
  5. 9 2
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/controller/MonitorTargetController.java
  6. 2 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetAddParam.java
  7. 2 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetAddWithRoomParam.java
  8. 0 1
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetBatchEditWithRoomParam.java
  9. 2 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetEditParam.java
  10. 2 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetEditWithRoomParam.java
  11. 1 1
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/service/MonitorTargetService.java
  12. 6 2
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/service/impl/MonitorTargetServiceImpl.java
  13. 1 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/push/utils/PushUtil.java
  14. 3 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/targetroom/param/TargetRoomAddParam.java
  15. 3 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/targetroom/param/TargetRoomEditParam.java

+ 9 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/param/AppDeviceData.java

@@ -45,5 +45,14 @@ public class AppDeviceData extends MonitorTargetRegion {
     @Schema(description = "电源状态,AC电源或DC电池")
     private String plugInStatus = PowerEnum.AC.getCode();  // 电源状态(默认值为AC电源)
 
+    @Schema(description = "温度状态 (0正常1临界2异常)")
+    private String temperatureStatus;
+
+    @Schema(description = "湿度状态 (0正常1临界2异常)")
+    private String humidityStatus;
+
+    @Schema(description = "CO2状态 (0正常1临界2异常)")
+    private String co2Status;
+
     // 默认构造函数不再需要显式定义,Lombok 会自动生成
 }

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

@@ -105,6 +105,24 @@ public class AppDeviceService {
                             if (sensorData.getTime() != null) {
                                 appDeviceData.setTimestamp(Date.from(sensorData.getTime()));
                             }
+                            if (Objects.nonNull(sensorData.getTemperature())) {
+                                float temperatureUp = Math.abs(appDeviceData.getTemperatureUp() - sensorData.getTemperature());
+                                float temperatureDown = Math.abs(appDeviceData.getTemperatureDown() - sensorData.getTemperature());
+                                appDeviceData.setTemperatureStatus(getDataStatus(temperatureUp, temperatureDown,
+                                        appDeviceData.getTemperatureUp(), appDeviceData.getTemperatureDown(), sensorData.getTemperature()));
+                            }
+                            if (Objects.nonNull(sensorData.getHumidity())) {
+                                float humidityUp = Math.abs(appDeviceData.getHumidityUp() - sensorData.getHumidity());
+                                float humidityDown = Math.abs(appDeviceData.getHumidityDown() - sensorData.getHumidity());
+                                appDeviceData.setHumidityStatus(getDataStatus(humidityUp, humidityDown,
+                                        appDeviceData.getHumidityUp(), appDeviceData.getHumidityDown(), sensorData.getHumidity()));
+                            }
+                            if (Objects.nonNull(sensorData.getCo2())) {
+                                float co2Up = Math.abs(appDeviceData.getCo2Up() - sensorData.getCo2());
+                                float co2Down = Math.abs(appDeviceData.getCo2Down() - sensorData.getCo2());
+                                appDeviceData.setCo2Status(getDataStatus(co2Up, co2Down,
+                                        appDeviceData.getCo2Up(), appDeviceData.getCo2Down(), sensorData.getCo2()));
+                            }
                             appDeviceData.setHumidity(sensorData.getHumidity());
                             appDeviceData.setTemperature(sensorData.getTemperature());
                             appDeviceData.setCo2Level(sensorData.getCo2());
@@ -137,6 +155,26 @@ public class AppDeviceService {
         return pageResult;
     }
 
+    private static String getDataStatus(float absUp, float absDown, float up, float down, float figures) {
+        if (absUp < absDown) {
+            if (up > figures && absUp > 5) {
+                return "0";
+            } else if (up > figures && absUp <= 5) {
+                return "1";
+            } else {
+                return "2";
+            }
+        } else {
+            if (down < figures && absDown > 5) {
+                return "0";
+            } else if (down < figures && absDown <= 5) {
+                return "1";
+            } else {
+                return "2";
+            }
+        }
+    }
+
 
     /**
      * 分页设备关键字查询 jackzhou 25-1-7 废弃
@@ -245,7 +283,7 @@ public class AppDeviceService {
      * @return
      */
     public DeviceStatus getDeviceStatus(String keyword, String roomId) {
-        TargetStatus targetCount = monitorTargetService.getTargetCount(keyword,roomId);
+        TargetStatus targetCount = monitorTargetService.getTargetCount(keyword, roomId);
         DeviceStatus deviceStatus = new DeviceStatus();
         BeanUtil.copyProperties(targetCount, deviceStatus);
         return deviceStatus;
@@ -338,13 +376,14 @@ public class AppDeviceService {
 
     public SensorIndicator indicators(AppIndicatorQueryParams appDeviceQueryParams) {
         // 假设上月数据
-        long lastMonthCollected = jfcloudSensorDataService.getLastMonthDataCount(appDeviceQueryParams.getSensorCode(),appDeviceQueryParams.getSensorRoute());
-        long lastMonthWarnings = jfcloudSensorDataService.getLastMonthAlarmCount(appDeviceQueryParams.getSensorCode(),appDeviceQueryParams.getSensorRoute());   // 上月预警总数
-        long lastMonthAbnormal = jfcloudSensorDataService.getLastMonthOfflineCount(appDeviceQueryParams.getSensorCode(),appDeviceQueryParams.getSensorRoute());   // 上月异常总数
+        long lastMonthCollected = jfcloudSensorDataService.getLastMonthDataCount(appDeviceQueryParams.getSensorCode(), appDeviceQueryParams.getSensorRoute());
+        long lastMonthWarnings = jfcloudSensorDataService.getLastMonthAlarmCount(appDeviceQueryParams.getSensorCode(), appDeviceQueryParams.getSensorRoute());   // 上月预警总数
+        long lastMonthAbnormal = jfcloudSensorDataService.getLastMonthOfflineCount(appDeviceQueryParams.getSensorCode(), appDeviceQueryParams.getSensorRoute());   // 上月异常总数
         // 计算本月数据
-        long totalCollected = jfcloudSensorDataService.getCurrentMonthDataCount(appDeviceQueryParams.getSensorCode(),appDeviceQueryParams.getSensorRoute());
-        long totalWarnings = jfcloudSensorDataService.getCurrentMonthAlarmCount(appDeviceQueryParams.getSensorCode(),appDeviceQueryParams.getSensorRoute());   // 同比减少5%
-        long totalAbnormal = jfcloudSensorDataService.getCurrentMonthOfflineCount(appDeviceQueryParams.getSensorCode(),appDeviceQueryParams.getSensorRoute()); ;   // 同比增长10%
+        long totalCollected = jfcloudSensorDataService.getCurrentMonthDataCount(appDeviceQueryParams.getSensorCode(), appDeviceQueryParams.getSensorRoute());
+        long totalWarnings = jfcloudSensorDataService.getCurrentMonthAlarmCount(appDeviceQueryParams.getSensorCode(), appDeviceQueryParams.getSensorRoute());   // 同比减少5%
+        long totalAbnormal = jfcloudSensorDataService.getCurrentMonthOfflineCount(appDeviceQueryParams.getSensorCode(), appDeviceQueryParams.getSensorRoute());
+        ;   // 同比增长10%
         // 创建响应对象
         SensorIndicator response = new SensorIndicator();
         response.setTotalCollected(totalCollected);
@@ -356,6 +395,7 @@ public class AppDeviceService {
         response.setAbnormalChange(formatChange(calculateChange(lastMonthAbnormal, totalAbnormal)));
         return response;
     }
+
     // 计算百分比变化的辅助方法
     private double calculateChange(long lastMonthValue, long currentMonthValue) {
         if (lastMonthValue == 0) {

+ 1 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/entity/MonitorDeviceTemplate.java

@@ -48,7 +48,7 @@ public class MonitorDeviceTemplate{
      * mac
      */
     @Schema(description = "mac")
-    @ExcelProperty("设备mac地址(必填)")
+    @ExcelProperty("设备mac地址")
     @ColumnWidth(20)
     private String mac;
 

+ 1 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/service/impl/MonitorDeviceServiceImpl.java

@@ -492,7 +492,7 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
         for (MonitorDeviceTemplate monitorDeviceTemplate : monitorDeviceTemplateList) {
             MonitorDeviceType monitorDeviceType = monitorDeviceTypeService.getByModelName(monitorDeviceTemplate.getModelName());
             if (StrUtil.isBlank(monitorDeviceTemplate.getDeviceName()) && StrUtil.isBlank(monitorDeviceTemplate.getModelName())
-            && StrUtil.isBlank(monitorDeviceTemplate.getDeviceCode()) && StrUtil.isBlank(monitorDeviceTemplate.getMac())) {
+            && StrUtil.isBlank(monitorDeviceTemplate.getDeviceCode())) {
                 throw new CommonException("设备:*" + monitorDeviceTemplate.getDeviceName() + "*包含未填的必填项");
             }
             // 判断上下限输入是否合法

+ 9 - 2
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/controller/MonitorTargetController.java

@@ -99,9 +99,16 @@ public class MonitorTargetController {
     }
 
     /**
-     * 批量配置报警接收人
+     * 批量修改
      */
-
+    @Operation(summary = "批量修改")
+    @CommonLog("批量修改")
+    @SaCheckPermission("/coldchain/monitortarget/batchEdit")
+    @PostMapping("/coldchain/monitortarget/batchEdit")
+    public CommonResult<String> batchEdit(@RequestBody @Valid MonitorTargetBatchEditWithRoomParam batchEditWithRoomParam) {
+        monitorTargetService.batchEdit(batchEditWithRoomParam);
+        return CommonResult.ok();
+    }
 
 
     /**

+ 2 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetAddParam.java

@@ -18,6 +18,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
+import org.hibernate.validator.constraints.Length;
 import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
 import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
 
@@ -37,6 +38,7 @@ public class MonitorTargetAddParam {
      * 名称
      */
     @Schema(description = "名称")
+    @Length(min = 1, max = 12)
     private String name;
 
     /**

+ 2 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetAddWithRoomParam.java

@@ -18,6 +18,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
+import org.hibernate.validator.constraints.Length;
 import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
 import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
 
@@ -37,6 +38,7 @@ public class MonitorTargetAddWithRoomParam {
      * 名称
      */
     @Schema(description = "名称")
+    @Length(min = 1, max = 12)
     private String name;
 
     /**

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

@@ -65,6 +65,5 @@ public class MonitorTargetBatchEditWithRoomParam {
     /**
      * 房间id
      */
-    @NotNull(message = "房间不能为空")
     private String roomId;
 }

+ 2 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetEditParam.java

@@ -18,6 +18,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Getter;
 import lombok.Setter;
+import org.hibernate.validator.constraints.Length;
 import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
 import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
 
@@ -45,6 +46,7 @@ public class MonitorTargetEditParam {
      * 名称
      */
     @Schema(description = "名称")
+    @Length(min = 1, max = 12)
     private String name;
 
     /**

+ 2 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetEditWithRoomParam.java

@@ -19,6 +19,7 @@ import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
+import org.hibernate.validator.constraints.Length;
 import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
 import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
 
@@ -46,6 +47,7 @@ public class MonitorTargetEditWithRoomParam {
      * 名称
      */
     @Schema(description = "名称")
+    @Length(min = 1, max = 12)
     private String name;
 
     /**

+ 1 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/service/MonitorTargetService.java

@@ -69,7 +69,7 @@ public interface MonitorTargetService extends IService<MonitorTarget> {
     /**
      * 批量设置预警接收人
      */
-    void batchEditAlarmUsers(MonitorTargetBatchEditWithRoomParam batchEditWithRoomParam);
+    void batchEdit(MonitorTargetBatchEditWithRoomParam batchEditWithRoomParam);
 
     /**
      * 删除监控对象管理

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

@@ -151,7 +151,7 @@ public class MonitorTargetServiceImpl extends ServiceImpl<MonitorTargetMapper, M
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void batchEditAlarmUsers(MonitorTargetBatchEditWithRoomParam batchEditWithRoomParam) {
+    public void batchEdit(MonitorTargetBatchEditWithRoomParam batchEditWithRoomParam) {
         List<MonitorTarget> monitorTargetList = new ArrayList<>();
         batchEditWithRoomParam.getIdList().forEach(id -> {
             MonitorTarget monitorTarget = this.queryEntity(id);
@@ -239,7 +239,11 @@ public class MonitorTargetServiceImpl extends ServiceImpl<MonitorTargetMapper, M
             monitorTargetPageParam.setOrgId(StpLoginUserUtil.getLoginUser().getOrgId());
         }
         Page<MonitorTarget> page = new Page<>(monitorTargetPageParam.getCurrent(), monitorTargetPageParam.getSize());
-        return (Page<MonitorTarget>) monitorTargetMapper.selectMonitorTargetByPage(page,monitorTargetPageParam);
+        Page<MonitorTarget> monitorTargetPage = (Page<MonitorTarget>) monitorTargetMapper.selectMonitorTargetByPage(page, monitorTargetPageParam);
+        monitorTargetPage.getRecords().forEach(monitorTarget -> {
+            monitorTarget.setRoomName(targetRoomService.getById(monitorTarget.getRoomId()).getName());
+        });
+        return monitorTargetPage;
     }
 
 

+ 1 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/push/utils/PushUtil.java

@@ -42,6 +42,7 @@ public class PushUtil {
         WxMpDefaultConfigImpl config = new WxMpDefaultConfigImpl();
         config.setAppId(PushConfigure.getAppId());
         config.setSecret(PushConfigure.getSecret());
+        config.setUseStableAccessToken(true);
         return config;
     }
 

+ 3 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/targetroom/param/TargetRoomAddParam.java

@@ -18,6 +18,8 @@ import lombok.Setter;
 
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import org.hibernate.validator.constraints.Length;
+
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -33,6 +35,7 @@ public class TargetRoomAddParam {
 
     /** 房间名 */
     @Schema(description = "房间名")
+    @Length(min = 1, max = 10)
     private String name;
 
     /** 组织id */

+ 3 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/targetroom/param/TargetRoomEditParam.java

@@ -18,6 +18,8 @@ import lombok.Setter;
 
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import org.hibernate.validator.constraints.Length;
+
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -38,6 +40,7 @@ public class TargetRoomEditParam {
 
     /** 房间名 */
     @Schema(description = "房间名")
+    @Length(min = 1, max = 10)
     private String name;
 
     /** 组织id */