Selaa lähdekoodia

fix:修复设备型号名、编号可以重复问题

黄渊昊 6 kuukautta sitten
vanhempi
commit
a7c81d714d

+ 31 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/controller/MonitorDeviceController.java

@@ -123,6 +123,7 @@ public class MonitorDeviceController {
 
     /**
      * 获取监控设备列表
+     *
      * @param 是否查询所有
      */
     @Operation(summary = "获取监控设备列表")
@@ -131,4 +132,34 @@ public class MonitorDeviceController {
     public CommonResult<List<MonitorDevice>> list(Boolean isAll) {
         return CommonResult.data(monitorDeviceService.myList(isAll));
     }
+
+    /**
+    * 检查设备名是否已注册
+    */
+    @Operation(summary = "检查设备名是否已注册")
+    @SaCheckPermission("/coldchain/monitordevice/getByDeviceName")
+    @GetMapping("/coldchain/monitordevice/getByDeviceName")
+    public CommonResult<String> getByDeviceName(String deviceName) {
+        boolean b = monitorDeviceService.getByDeviceName(deviceName);
+        if (!b) {
+            return CommonResult.error("设备名" + deviceName + "已注册使用:{}");
+        }
+        return CommonResult.ok();
+    }
+
+
+
+    /**
+     * 检查设备编码是否已注册
+     */
+    @Operation(summary = "检查设备编码是否已注册")
+    @SaCheckPermission("/coldchain/monitordevice/getByDeviceCode")
+    @GetMapping("/coldchain/monitordevice/getByDeviceCode")
+    public CommonResult<String> getByDeviceCode(String deviceCode) {
+        boolean b = monitorDeviceService.getByDeviceCode(deviceCode);
+        if (!b) {
+            return CommonResult.error("设备编码" + deviceCode + "已注册使用:{}");
+        }
+        return CommonResult.ok();
+    }
 }

+ 4 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/service/MonitorDeviceService.java

@@ -100,4 +100,8 @@ public interface MonitorDeviceService extends IService<MonitorDevice> {
     List<SensorData> querySensorData(String deviceId, int roads, Instant startTime, Instant endTime, List<QueryCondition> queryConditions);
 
     List<MonitorDevice> myList(Boolean isAll);
+
+    boolean getByDeviceName(String deviceName);
+
+    boolean getByDeviceCode(String deviceCode);
 }

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

@@ -127,14 +127,14 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
         monitorDeviceCache.cacheDevice(monitorDevice.getDeviceCode(), monitorDevice.getModelName());
     }
 
-    private boolean getByDeviceName(String deviceName) {
+    public 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) {
+    public boolean getByDeviceCode(String deviceCode) {
         List<MonitorDevice> devices = this.list(new QueryWrapper<MonitorDevice>().like("device_code", deviceCode));
         return !devices.isEmpty() ? true : false;
     }
@@ -144,13 +144,6 @@ 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);
     }

+ 28 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicetype/controller/MonitorDeviceTypeController.java

@@ -130,4 +130,32 @@ public class MonitorDeviceTypeController {
     public CommonResult<List<MonitorDeviceType>> list() {
         return CommonResult.data(monitorDeviceTypeService.list());
     }
+
+    /**
+     * 检查类型名是否已注册
+     */
+    @Operation(summary = "检查类型名是否已注册")
+    @SaCheckPermission("/coldchain/monitordevicetype/getByTypeName")
+    @GetMapping("/coldchain/monitordevicetype/getByTypeName")
+    public CommonResult<String> getByTypeName(String name) {
+        boolean b = monitorDeviceTypeService.getByName(name);
+        if (!b) {
+            return CommonResult.error("类型名" + name + "已注册使用:{}");
+        }
+        return CommonResult.ok();
+    }
+
+    /**
+     * 检查类型编码是否已注册
+     */
+    @Operation(summary = "检查类型编码是否已注册")
+    @SaCheckPermission("/coldchain/monitordevicetype/getByTypeCode")
+    @GetMapping("/coldchain/monitordevicetype/getByTypeCode")
+    public CommonResult<String> getByTypeCode(String code) {
+        boolean b = monitorDeviceTypeService.getByCode(code);
+        if (!b) {
+            return CommonResult.error("类型编码" + code + "已注册使用:{}");
+        }
+        return CommonResult.ok();
+    }
 }

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

@@ -77,4 +77,8 @@ public interface MonitorDeviceTypeService extends IService<MonitorDeviceType> {
      * @date  2024/11/25 10:15
      **/
     MonitorDeviceType queryEntity(String id);
+
+    boolean getByName(String name);
+
+    boolean getByCode(String code);
 }

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

@@ -16,11 +16,14 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollStreamUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.coldchain.modular.monitordevice.entity.MonitorDevice;
+import vip.xiaonuo.common.enums.CommonDeleteFlagEnum;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
@@ -38,7 +41,7 @@ import java.util.List;
  * 监控设备型号Service接口实现类
  *
  * @author 黄渊昊
- * @date  2024/11/25 10:15
+ * @date 2024/11/25 10:15
  **/
 @Service
 public class MonitorDeviceTypeServiceImpl extends ServiceImpl<MonitorDeviceTypeMapper, MonitorDeviceType> implements MonitorDeviceTypeService {
@@ -46,13 +49,13 @@ public class MonitorDeviceTypeServiceImpl extends ServiceImpl<MonitorDeviceTypeM
     @Override
     public Page<MonitorDeviceType> page(MonitorDeviceTypePageParam monitorDeviceTypePageParam) {
         QueryWrapper<MonitorDeviceType> queryWrapper = new QueryWrapper<MonitorDeviceType>().checkSqlInjection();
-        if(ObjectUtil.isNotEmpty(monitorDeviceTypePageParam.getName())) {
+        if (ObjectUtil.isNotEmpty(monitorDeviceTypePageParam.getName())) {
             queryWrapper.lambda().like(MonitorDeviceType::getName, monitorDeviceTypePageParam.getName());
         }
-        if(ObjectUtil.isNotEmpty(monitorDeviceTypePageParam.getSensorCount())) {
+        if (ObjectUtil.isNotEmpty(monitorDeviceTypePageParam.getSensorCount())) {
             queryWrapper.lambda().eq(MonitorDeviceType::getSensorCount, monitorDeviceTypePageParam.getSensorCount());
         }
-        if(ObjectUtil.isAllNotEmpty(monitorDeviceTypePageParam.getSortField(), monitorDeviceTypePageParam.getSortOrder())) {
+        if (ObjectUtil.isAllNotEmpty(monitorDeviceTypePageParam.getSortField(), monitorDeviceTypePageParam.getSortOrder())) {
             CommonSortOrderEnum.validate(monitorDeviceTypePageParam.getSortOrder());
             queryWrapper.orderBy(true, monitorDeviceTypePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
                     StrUtil.toUnderlineCase(monitorDeviceTypePageParam.getSortField()));
@@ -69,9 +72,29 @@ public class MonitorDeviceTypeServiceImpl extends ServiceImpl<MonitorDeviceTypeM
             throw new CommonException("传感器路数的大小必须在1到4之间");
         }
         MonitorDeviceType monitorDeviceType = BeanUtil.toBean(monitorDeviceTypeAddParam, MonitorDeviceType.class);
+        if (this.getByCode(monitorDeviceType.getCode())) {
+            throw new CommonException("设备编码已注册使用:{}", monitorDeviceType.getCode());
+        }
+        if (this.getByName(monitorDeviceType.getName())) {
+            throw new CommonException("设备名已注册使用:{}", monitorDeviceType.getName());
+        }
         this.save(monitorDeviceType);
     }
 
+    @Override
+    public boolean getByName(String name) {
+        List<MonitorDeviceType> types = this.list(new LambdaQueryWrapper<MonitorDeviceType>()
+                .eq(MonitorDeviceType::getName, name).eq(MonitorDeviceType::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE));
+        return !types.isEmpty();
+    }
+
+    @Override
+    public boolean getByCode(String code) {
+        List<MonitorDeviceType> types = this.list(new LambdaQueryWrapper<MonitorDeviceType>()
+                .eq(MonitorDeviceType::getCode, code).eq(MonitorDeviceType::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE));
+        return !types.isEmpty();
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void edit(MonitorDeviceTypeEditParam monitorDeviceTypeEditParam) {
@@ -95,7 +118,7 @@ public class MonitorDeviceTypeServiceImpl extends ServiceImpl<MonitorDeviceTypeM
     @Override
     public MonitorDeviceType queryEntity(String id) {
         MonitorDeviceType monitorDeviceType = this.getById(id);
-        if(ObjectUtil.isEmpty(monitorDeviceType)) {
+        if (ObjectUtil.isEmpty(monitorDeviceType)) {
             throw new CommonException("监控设备型号不存在,id值为:{}", id);
         }
         return monitorDeviceType;