Răsfoiți Sursa

feat:新增设备名是否已存在校验
fix:修复新增监控点位监控上下限值储存失败问题

黄渊昊 6 luni în urmă
părinte
comite
eb107c9e75

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

@@ -106,6 +106,9 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
         if (this.getByDeviceCode(monitorDevice.getDeviceCode())) {
             throw new CommonException("设备编码已注册使用:{}", monitorDevice.getDeviceCode());
         }
+        if (this.getByDeviceName(monitorDevice.getDeviceName())) {
+            throw new CommonException("设备名已注册使用:{}", monitorDevice.getDeviceName());
+        }
         // 保存设备
         boolean save = this.save(monitorDevice);
         // 召唤设备默认参数
@@ -115,7 +118,7 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
                 renKeService.callParamIds(Integer.parseInt(monitorDevice.getDeviceCode()));
             } catch (NumberFormatException e) {
                 // 如果设备编码不能解析为整数,抛出异常或记录日志
-                throw new CommonException("设备编码解析失败,无法发送配置参数。设备编码: " + monitorDevice.getDeviceCode(), e);
+                throw new CommonException("设备编码解析失败,无法发送配置参数。设备编码: " + monitorDevice.getDeviceCode(), e + "请输入整数编码");
             }
         } else {
             throw new CommonException("设备保存失败,设备编码: " + monitorDevice.getDeviceCode());
@@ -124,6 +127,12 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
         monitorDeviceCache.cacheDevice(monitorDevice.getDeviceCode(), monitorDevice.getModelName());
     }
 
+    private boolean getByDeviceName(String deviceName) {
+        List<MonitorDevice> devices = this.list(new LambdaQueryWrapper<MonitorDevice>()
+                .eq(MonitorDevice::getDeviceName, deviceName).eq(MonitorDevice::getDeleteFlag,CommonDeleteFlagEnum.NOT_DELETE));
+        return !devices.isEmpty();
+    }
+
 
     private boolean getByDeviceCode(String deviceCode) {
         List<MonitorDevice> devices = this.list(new QueryWrapper<MonitorDevice>().like("device_code", deviceCode));
@@ -135,6 +144,13 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
     @Override
     public void edit(MonitorDeviceEditParam monitorDeviceEditParam) {
         MonitorDevice monitorDevice = this.queryEntity(monitorDeviceEditParam.getId());
+        // 检查设备编码是否已注册
+        if (this.getByDeviceCode(monitorDeviceEditParam.getDeviceCode())) {
+            throw new CommonException("设备编码已注册使用:{}", monitorDeviceEditParam.getDeviceCode());
+        }
+        if (this.getByDeviceName(monitorDeviceEditParam.getDeviceName())) {
+            throw new CommonException("设备名已注册使用:{}", monitorDeviceEditParam.getDeviceName());
+        }
         BeanUtil.copyProperties(monitorDeviceEditParam, monitorDevice);
         this.updateById(monitorDevice);
     }

+ 4 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicetype/entity/MonitorDeviceType.java

@@ -18,6 +18,8 @@ import lombok.Getter;
 import lombok.Setter;
 import vip.xiaonuo.common.pojo.CommonEntity;
 
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 import java.math.BigDecimal;
@@ -52,6 +54,8 @@ public class MonitorDeviceType extends CommonEntity {
      */
     @Schema(description = "传感器路数")
     @NotNull(message = "传感器路数不能为空")
+    @Max(value = 4,message = "传感器路数的大小不能大于4")
+    @Min(value = 1,message = "传感器路数的大小不能小于1")
     @Size(min = 1, max = 4, message = "传感器路数的大小必须在1到4之间")
     private Integer sensorCount;
 

+ 5 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicetype/param/MonitorDeviceTypeAddParam.java

@@ -18,6 +18,9 @@ import lombok.Setter;
 
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -41,6 +44,8 @@ public class MonitorDeviceTypeAddParam {
 
     /** 传感器路数 */
     @Schema(description = "传感器路数")
+    @Max(value = 4,message = "传感器路数的大小不能大于4")
+    @Min(value = 1,message = "传感器路数的大小不能小于1")
     private Integer sensorCount;
 
     /** 排序码 */

+ 3 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicetype/service/impl/MonitorDeviceTypeServiceImpl.java

@@ -65,6 +65,9 @@ public class MonitorDeviceTypeServiceImpl extends ServiceImpl<MonitorDeviceTypeM
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(MonitorDeviceTypeAddParam monitorDeviceTypeAddParam) {
+        if (monitorDeviceTypeAddParam.getSensorCount() > 4 || monitorDeviceTypeAddParam.getSensorCount() < 1) {
+            throw new CommonException("传感器路数的大小必须在1到4之间");
+        }
         MonitorDeviceType monitorDeviceType = BeanUtil.toBean(monitorDeviceTypeAddParam, MonitorDeviceType.class);
         this.save(monitorDeviceType);
     }

+ 45 - 6
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/param/MonitorTargetRegionAddParam.java

@@ -12,10 +12,13 @@
  */
 package vip.xiaonuo.coldchain.modular.monitortargetregion.param;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
+import vip.xiaonuo.coldchain.modular.app.param.FloatNullToDashSerializer;
 
 /**
  * 区域管理添加参数
@@ -86,14 +89,50 @@ public class MonitorTargetRegionAddParam {
     private String deviceCode;
 
     /**
-     * 报警上限
+     * 温度报警上限 temperature humidity co2
      */
-    @Schema(description = "报警上限")
-    private Float limitUp;
+    @Schema(description = "温度报警上限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float temperatureUp;
+    /**
+     * 温度报警下限
+     */
+    @Schema(description = "温度报警下限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float temperatureDown;
+
+    /**
+     * 湿度报警上限 temperature humidity co2
+     */
+
+    @Schema(description = "湿度报警上限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float humidityUp;
+    /**
+     * 湿度报警下限
+     */
+    @Schema(description = "湿度报警下限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float humidityDown;
+
+    /**
+     * 二氧化碳报警上限 temperature humidity co2
+     */
+    @Schema(description = "二氧化碳报警上限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float co2Up;
 
     /**
-     * 报警下限
+     * 二氧化碳报警下限
      */
-    @Schema(description = "报警下限")
-    private Float limitDown;
+    @Schema(description = "二氧化碳报警下限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float co2Down;
+
 }

+ 45 - 6
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/param/MonitorTargetRegionEditParam.java

@@ -12,11 +12,14 @@
  */
 package vip.xiaonuo.coldchain.modular.monitortargetregion.param;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
+import vip.xiaonuo.coldchain.modular.app.param.FloatNullToDashSerializer;
 
 /**
  * 区域管理编辑参数
@@ -90,14 +93,50 @@ public class MonitorTargetRegionEditParam {
     private String deviceCode;
 
     /**
-     * 报警上限
+     * 温度报警上限 temperature humidity co2
      */
-    @Schema(description = "报警上限")
-    private Float limitUp;
+    @Schema(description = "温度报警上限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float temperatureUp;
+    /**
+     * 温度报警下限
+     */
+    @Schema(description = "温度报警下限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float temperatureDown;
+
+    /**
+     * 湿度报警上限 temperature humidity co2
+     */
+
+    @Schema(description = "湿度报警上限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float humidityUp;
+    /**
+     * 湿度报警下限
+     */
+    @Schema(description = "湿度报警下限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float humidityDown;
+
+    /**
+     * 二氧化碳报警上限 temperature humidity co2
+     */
+    @Schema(description = "二氧化碳报警上限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float co2Up;
 
     /**
-     * 报警下限
+     * 二氧化碳报警下限
      */
-    @Schema(description = "报警下限")
-    private Float limitDown;
+    @Schema(description = "二氧化碳报警下限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float co2Down;
+
 }

+ 0 - 6
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/service/impl/MonitorTargetRegionServiceImpl.java

@@ -107,12 +107,6 @@ public class MonitorTargetRegionServiceImpl extends ServiceImpl<MonitorTargetReg
         if (monitorTargetRegionAddParam.getSensorRoute() > sensorCount) {
             throw new CommonException("路数超出限制,请重新选择");
         }
-        if (ObjectUtil.isNull(monitorTargetRegionAddParam.getLimitUp())) {
-            monitorTargetRegionAddParam.setLimitUp(monitorTarget.getLimitUp());
-        }
-        if (ObjectUtil.isNull(monitorTargetRegionAddParam.getLimitDown())) {
-            monitorTargetRegionAddParam.setLimitDown(monitorTarget.getLimitDown());
-        }
         MonitorTargetRegion monitorTargetRegion = BeanUtil.toBean(monitorTargetRegionAddParam, MonitorTargetRegion.class);
         this.save(monitorTargetRegion);
     }