Преглед изворни кода

feat:新增根据用户获取监控对象分页接口
feat:新增设备区域接口新增传感器路数是否用尽校验
feat:删除设备区域接口新增区域是否包含子区域校验

黄渊昊 пре 6 месеци
родитељ
комит
d8f6695068

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

@@ -130,4 +130,14 @@ public class MonitorTargetController {
     public CommonResult<List<MonitorTarget>> getListByUser(String userId) {
         return CommonResult.data(monitorTargetService.getListByUser(userId));
     }
+
+    /**
+     * 根据用户获取监控对象管理分页
+     */
+    @Operation(summary = "获取监控对象管理分页")
+    @SaCheckPermission("/coldchain/monitortarget/getPageByUser")
+    @GetMapping("/coldchain/monitortarget/getPageByUser")
+    public CommonResult<Page<MonitorTarget>> getPageByUser(MonitorTargetPageParam monitorTargetPageParam) {
+        return CommonResult.data(monitorTargetService.getPageByUser(monitorTargetPageParam));
+    }
 }

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

@@ -62,4 +62,9 @@ public class MonitorTargetPageParam {
     @Schema(description = "名称")
     private String name;
 
+    /**
+     * 用户id
+     */
+    @Schema(description = "用户id")
+    private String userId;
 }

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

@@ -82,4 +82,9 @@ public interface MonitorTargetService extends IService<MonitorTarget> {
      * 根据用户获取监控对象列表
      */
     List<MonitorTarget> getListByUser(String userId);
+
+    /**
+     * 根据用户获取监控对象管理分页
+     */
+    Page<MonitorTarget> getPageByUser(MonitorTargetPageParam monitorTargetPageParam);
 }

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

@@ -128,4 +128,26 @@ public class MonitorTargetServiceImpl extends ServiceImpl<MonitorTargetMapper, M
         return monitorTargetList;
     }
 
+    @Override
+    public Page<MonitorTarget> getPageByUser(MonitorTargetPageParam monitorTargetPageParam) {
+        QueryWrapper<MonitorTarget> queryWrapper = new QueryWrapper<MonitorTarget>().checkSqlInjection();
+        if (ObjectUtil.isNotEmpty(monitorTargetPageParam.getName())) {
+            queryWrapper.lambda().like(MonitorTarget::getName, monitorTargetPageParam.getName());
+        }
+        if (ObjectUtil.isAllNotEmpty(monitorTargetPageParam.getSortField(), monitorTargetPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(monitorTargetPageParam.getSortOrder());
+            queryWrapper.orderBy(true, monitorTargetPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(monitorTargetPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(MonitorTarget::getId);
+        }
+        queryWrapper.lambda().eq(MonitorTarget::getCreatedBy,monitorTargetPageParam.getUserId());
+        Page<MonitorTarget> page = this.page(CommonPageRequest.defaultPage(), queryWrapper);
+        //获取设备区域列表并赋值返回
+        page.getRecords().forEach(monitorTarget -> {
+            monitorTarget.setMonitorTargetRegionList(monitorTargetRegionService.getRegionListByTargetId(monitorTarget.getId()));
+        });
+        return page;
+    }
+
 }

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

@@ -20,8 +20,11 @@ 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 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.monitortargetregion.entity.MonitorTargetRegion;
 import vip.xiaonuo.coldchain.modular.monitortargetregion.mapper.MonitorTargetRegionMapper;
 import vip.xiaonuo.coldchain.modular.monitortargetregion.param.MonitorTargetRegionAddParam;
@@ -43,6 +46,8 @@ import java.util.List;
  **/
 @Service
 public class MonitorTargetRegionServiceImpl extends ServiceImpl<MonitorTargetRegionMapper, MonitorTargetRegion> implements MonitorTargetRegionService {
+    @Resource
+    private MonitorDeviceService monitorDeviceService;
 
     @Override
     public Page<MonitorTargetRegion> page(MonitorTargetRegionPageParam monitorTargetRegionPageParam) {
@@ -66,6 +71,11 @@ public class MonitorTargetRegionServiceImpl extends ServiceImpl<MonitorTargetReg
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(MonitorTargetRegionAddParam monitorTargetRegionAddParam) {
+        MonitorDevice monitorDevice = monitorDeviceService.queryEntity(monitorTargetRegionAddParam.getMonitorDeviceId());
+        Integer sensorCount = monitorDevice.getSensorCount();
+        if (monitorTargetRegionAddParam.getSensorRoute() > sensorCount) {
+            throw new CommonException("该传感器路数已用尽");
+        }
         MonitorTargetRegion monitorTargetRegion = BeanUtil.toBean(monitorTargetRegionAddParam, MonitorTargetRegion.class);
         this.save(monitorTargetRegion);
     }
@@ -81,6 +91,14 @@ public class MonitorTargetRegionServiceImpl extends ServiceImpl<MonitorTargetReg
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void delete(List<MonitorTargetRegionIdParam> monitorTargetRegionIdParamList) {
+        for (MonitorTargetRegionIdParam monitorTargetRegionIdParam : monitorTargetRegionIdParamList) {
+            LambdaQueryWrapper<MonitorTargetRegion> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(MonitorTargetRegion::getParentId, monitorTargetRegionIdParam.getId());
+            List<MonitorTargetRegion> list = list(queryWrapper);
+            if (!list.isEmpty()) {
+                throw new CommonException("该区域下存在子区域,请删除子区域后再试");
+            }
+        }
         // 执行删除
         this.removeByIds(CollStreamUtil.toList(monitorTargetRegionIdParamList, MonitorTargetRegionIdParam::getId));
     }
@@ -102,7 +120,7 @@ public class MonitorTargetRegionServiceImpl extends ServiceImpl<MonitorTargetReg
     @Override
     public List<MonitorTargetRegion> getRegionListByTargetId(String targetId) {
         LambdaQueryWrapper<MonitorTargetRegion> queryWrapper = new LambdaQueryWrapper<MonitorTargetRegion>();
-        queryWrapper.eq(MonitorTargetRegion::getMonitorTargetId,targetId);
+        queryWrapper.eq(MonitorTargetRegion::getMonitorTargetId, targetId);
         return list(queryWrapper);
     }
 }