Browse Source

fix:修复预警日志数据显示不全bug
feat:新增根据电源代码获取冷链设备列表方法
feat:新增电源被使用时无法删除校验

黄渊昊 4 months ago
parent
commit
1db0890ce2

+ 4 - 2
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/alarm/service/SensorAlarmServiceImpl.java

@@ -113,9 +113,11 @@ public class SensorAlarmServiceImpl extends ServiceImpl<SensorAlarmMapper, Senso
         queryWrapper.lambda().eq(SensorAlarm::getCreateOrg, orgId);
         final String type = messagePageParam.getType();
         if(StrUtil.isNotBlank(type) && type.trim().equalsIgnoreCase("system")){
-            queryWrapper.lambda().eq(SensorAlarm::getType, SensorAlarmType.SENSOR_OFF_LINE.getDeviceCode());
+            queryWrapper.lambda().eq(SensorAlarm::getType, SensorAlarmType.SENSOR_OFF_LINE.getDeviceCode())
+                    .or().eq(SensorAlarm::getType, SensorAlarmType.SENSOR_ON_LINE.getDeviceCode());
         }else{
-            queryWrapper.lambda().eq(SensorAlarm::getType, SensorAlarmType.DATA_ALARM.getDeviceCode());
+            queryWrapper.lambda().eq(SensorAlarm::getType, SensorAlarmType.DATA_ALARM.getDeviceCode())
+                    .or().eq(SensorAlarm::getType, SensorAlarmType.DATA_RESTORE_ALARM.getDeviceCode());
         }
         if(StrUtil.isNotBlank(messagePageParam.getSensorCode())){
             queryWrapper.lambda().eq(SensorAlarm::getSensorCode, messagePageParam.getSensorCode());

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

@@ -132,4 +132,9 @@ public interface MonitorDeviceService extends IService<MonitorDevice> {
     void importMonitorDevice(MultipartFile file);
 
     Set<String> getAllDeviceCodes();
+
+    /**
+     * 根据电源编号获取冷链设备
+     */
+    List<MonitorDevice> getMonitorDeviceByPowerCode(String powerCode);
 }

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

@@ -115,7 +115,7 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
         } else {
             queryWrapper.lambda().orderByAsc(MonitorDevice::getSortCode);
         }
-        queryWrapper.lambda().eq(MonitorDevice::getCreateOrg,loginUser.getOrgId()).eq(MonitorDevice::getDeleteFlag,CommonDeleteFlagEnum.NOT_DELETE);
+        queryWrapper.lambda().eq(MonitorDevice::getCreateOrg, loginUser.getOrgId()).eq(MonitorDevice::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE);
         Page<MonitorDevice> page = this.page(CommonPageRequest.defaultPage(), queryWrapper);
         if (page.getTotal() < 1) {
             return page;
@@ -180,7 +180,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 {
@@ -330,8 +330,8 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
 
         //查询设备列表
         LambdaQueryWrapper<MonitorDevice> deviceQueryWrapper = new LambdaQueryWrapper<>();
-        deviceQueryWrapper.in(MonitorDevice::getModelName,modelNameList);
-        deviceQueryWrapper.eq(MonitorDevice::getCreateOrg,loginUser.getOrgId()).eq(MonitorDevice::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE);
+        deviceQueryWrapper.in(MonitorDevice::getModelName, modelNameList);
+        deviceQueryWrapper.eq(MonitorDevice::getCreateOrg, loginUser.getOrgId()).eq(MonitorDevice::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE);
         if (!isAll) {
             deviceQueryWrapper.eq(MonitorDevice::getStatus, MonitorDeviceStatusEnum.NORMAL.getValue())
                     .orderByAsc(MonitorDevice::getSortCode);
@@ -384,7 +384,7 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
 
     @Override
     public CountEntity getIndexCount() {
-        TargetStatus targetCount = monitorTargetService.getTargetCount(null,null);
+        TargetStatus targetCount = monitorTargetService.getTargetCount(null, null);
         CountEntity countEntity = new CountEntity();
         countEntity.setDeviceCount((int) targetCount.getTotal());
 //        LambdaQueryWrapper<MonitorDevice> onlineDeviceQueryWrapper = new LambdaQueryWrapper<>();
@@ -469,7 +469,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.getDeviceCode())) {
                 throw new CommonException("设备:*" + monitorDeviceTemplate.getDeviceName() + "*包含未填的必填项");
             }
             // 判断上下限输入是否合法
@@ -519,4 +519,13 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
                 .collect(Collectors.toSet());      // 收集到 Set 中去重
     }
 
+    @Override
+    public List<MonitorDevice> getMonitorDeviceByPowerCode(String powerCode) {
+        SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
+        LambdaQueryWrapper<MonitorDevice> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(MonitorDevice::getDeviceCode, powerCode).eq(MonitorDevice::getCreateOrg, loginUser.getOrgId())
+                .eq(MonitorDevice::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE);
+        return List.of();
+    }
+
 }

+ 13 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/service/impl/MonitorDevicePowerServiceImpl.java

@@ -8,10 +8,13 @@ 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.auth.core.pojo.SaBaseLoginUser;
 import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
+import vip.xiaonuo.coldchain.modular.monitordevice.entity.MonitorDevice;
+import vip.xiaonuo.coldchain.modular.monitordevice.service.MonitorDeviceService;
 import vip.xiaonuo.coldchain.modular.monitordevicepower.entity.MonitorDevicePower;
 import vip.xiaonuo.coldchain.modular.monitordevicepower.mapper.MonitorDevicePowerMapper;
 import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerAddParam;
@@ -29,6 +32,9 @@ import java.util.List;
 @Service
 public class MonitorDevicePowerServiceImpl extends ServiceImpl<MonitorDevicePowerMapper, MonitorDevicePower> implements MonitorDevicePowerService {
 
+    @Resource
+    private MonitorDeviceService monitorDeviceService;
+
     @Override
     public Page<MonitorDevicePower> page(MonitorDevicePowerPageParam monitorDevicePowerPageParam) {
         SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
@@ -63,6 +69,13 @@ public class MonitorDevicePowerServiceImpl extends ServiceImpl<MonitorDevicePowe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void delete(List<MonitorDevicePowerIdParam> monitorDevicePowerIdParamList) {
+        monitorDevicePowerIdParamList.forEach(idParam -> {
+            MonitorDevicePower monitorDevicePower = queryEntity(idParam.getId());
+            List<MonitorDevice> monitorDeviceList = monitorDeviceService.getMonitorDeviceByPowerCode(monitorDevicePower.getPowerCode());
+            if (!monitorDeviceList.isEmpty()) {
+                throw new CommonException("该电源已被使用,无法删除!");
+            }
+        });
         this.removeByIds(CollStreamUtil.toList(monitorDevicePowerIdParamList, MonitorDevicePowerIdParam::getId));
     }