Procházet zdrojové kódy

案例信息结构调整

zengy před 3 týdny
rodič
revize
645b92d243

+ 13 - 4
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/manhole/CaseInfoController.java

@@ -22,9 +22,11 @@ import com.zksy.manhole.dto.out.CaseInfoOutDTO;
 import com.zksy.manhole.dto.out.EquipmentStatusOutDTO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
@@ -90,19 +92,23 @@ public class CaseInfoController extends BaseController
             return AjaxResult2.error("案件ID不存在");
         }
         CaseInfoOutDTO outDTO = BeanUtil.copyProperties(caseInfo, CaseInfoOutDTO.class);
+        if (StringUtils.isBlank(outDTO.getEquipmentId())) {
+            return AjaxResult2.success(outDTO);
+        }
         // 查询设备状态
         EquipmentStatus equipmentStatus = equipmentStatusService.lambdaQuery()
-                .eq(EquipmentStatus::getEquipmentId, outDTO.getDeviceId())
+                .eq(EquipmentStatus::getEquipmentId, outDTO.getEquipmentId())
                 .one();
         if(equipmentStatus != null){
             EquipmentStatusOutDTO equipmentStatusOutDTO = BeanUtil.copyProperties(equipmentStatus, EquipmentStatusOutDTO.class);
             outDTO.setEquipmentStatus(equipmentStatusOutDTO);
         }
         // 查询设备类别名称
-        EquipmentBase equipmentBase = equipmentBaseService.getById(outDTO.getDeviceId());
+        EquipmentBase equipmentBase = equipmentBaseService.getById(outDTO.getEquipmentId());
         if(equipmentBase != null){
             outDTO.setDeviceCode(equipmentBase.getEquipmentCode());
-            EquipmentType equipmentType = equipmentTypeService.getById(equipmentBase.getEquipmentTypeId());
+            EquipmentType equipmentType = equipmentBase.getEquipmentTypeId() == null ? null
+                    : equipmentTypeService.getById(equipmentBase.getEquipmentTypeId());
             if(equipmentType != null){
                 outDTO.setEquipmentTypeName(equipmentType.getTypeName());
             }
@@ -149,7 +155,10 @@ public class CaseInfoController extends BaseController
     @Anonymous
     @PostMapping("/saveCaseInfo")
     @ApiOperation(value = "新增案件信息")
-    public AjaxResult saveWarningThreshold(@RequestBody CaseInfoSaveInDTO inDTO) {
+    public AjaxResult saveCaseInfo(@Valid @RequestBody CaseInfoSaveInDTO inDTO) {
+        if (equipmentBaseService.getById(inDTO.getEquipmentId()) == null) {
+            return AjaxResult.error("设备ID不存在");
+        }
         CaseInfo caseInfo = BeanUtil.copyProperties(inDTO, CaseInfo.class);
         caseInfo.setCaseNo(generateCaseNo());
         caseInfo.setCaseSource(4);

+ 1 - 7
pipe-network-service/zksy-system/src/main/java/com/zksy/base/domain/CaseInfo.java

@@ -51,13 +51,7 @@ public class CaseInfo implements Serializable {
      * 关联设备ID
      */
     @ApiModelProperty(value = "设备ID")
-    private String deviceId;
-
-    /**
-     * 设备编码
-     */
-    @ApiModelProperty(value = "设备编码")
-    private String deviceCode;
+    private String equipmentId;
 
     /**
      * 案件等级:1-严重 2-一般 3-轻微

+ 1 - 2
pipe-network-service/zksy-system/src/main/java/com/zksy/base/drill/service/DrillAlarmSyncService.java

@@ -80,8 +80,7 @@ public class DrillAlarmSyncService {
             caseInfo = new CaseInfo();
             caseInfo.setCaseNo(generateCaseNo());
             caseInfo.setAlarmId(alarmData.getId());
-            caseInfo.setDeviceId(equipmentBase.getEquipmentId());
-            caseInfo.setDeviceCode(alarmData.getDeviceCode());
+            caseInfo.setEquipmentId(equipmentBase.getEquipmentId());
             caseInfo.setCaseLevel(caseLevel);
             caseInfo.setCaseDesc(desc);
             caseInfo.setCaseSource(1);

+ 1 - 2
pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/DrillAlarmSyncService.java

@@ -73,8 +73,7 @@ public class DrillAlarmSyncService {
             caseInfo = new CaseInfo();
             caseInfo.setCaseNo(generateCaseNo());
             caseInfo.setAlarmId(alarmData.getId());
-            caseInfo.setDeviceId(equipmentBase.getEquipmentId());
-            caseInfo.setDeviceCode(alarmData.getDeviceCode());
+            caseInfo.setEquipmentId(equipmentBase.getEquipmentId());
             caseInfo.setCaseLevel(caseLevel);
             caseInfo.setCaseDesc(desc);
             caseInfo.setCaseSource(1);

+ 15 - 8
pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/impl/CaseInfoServiceImpl.java

@@ -23,8 +23,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -67,34 +69,39 @@ public class CaseInfoServiceImpl extends ServiceImpl<CaseInfoMapper, CaseInfo>
         Page<CaseInfo> page = new Page<>(pageInDTO.getPageNum(), pageInDTO.getPageSize());
         LambdaQueryWrapper<CaseInfo> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.like(StringUtils.isNotEmpty(pageInDTO.getCaseNo()), CaseInfo::getCaseNo, pageInDTO.getCaseNo())
-                .in(CollUtil.isNotEmpty(equipmentIds), CaseInfo::getDeviceId, equipmentIds)
+                .in(CollUtil.isNotEmpty(equipmentIds), CaseInfo::getEquipmentId, equipmentIds)
                 .orderByDesc(CaseInfo::getUpdateTime);
         Page<CaseInfo> rs = this.page(page, queryWrapper);
         List<CaseInfoOutDTO> outDTOList = BeanUtil.copyToList(rs.getRecords(), CaseInfoOutDTO.class);
         if (CollUtil.isNotEmpty(outDTOList)) {
             //查询设备状态
-            List<String> equipmentIdList = outDTOList.stream().map(CaseInfoOutDTO::getDeviceId).distinct().collect(Collectors.toList());
-            List<EquipmentStatus> equipmentStatusList = equipmentStatusMapper.selectList(new LambdaQueryWrapper<EquipmentStatus>()
+            List<String> equipmentIdList = outDTOList.stream().map(CaseInfoOutDTO::getEquipmentId)
+                    .filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
+            List<EquipmentStatus> equipmentStatusList = equipmentIdList.isEmpty() ? Collections.emptyList()
+                    : equipmentStatusMapper.selectList(new LambdaQueryWrapper<EquipmentStatus>()
                     .in(EquipmentStatus::getEquipmentId, equipmentIdList));
             Map<String, EquipmentStatus> equipmentStatusMap = new HashMap<>();
             if(CollUtil.isNotEmpty(equipmentStatusList)){
                 equipmentStatusMap.putAll(equipmentStatusList.stream().collect(Collectors.toMap(EquipmentStatus::getEquipmentId, Function.identity(), (key1, key2) -> key2)));
             }
             //查询设备类型
-            List<EquipmentBase> equipmentBaseList = equipmentBaseMapper.selectBatchIds(equipmentIdList);
+            List<EquipmentBase> equipmentBaseList = equipmentIdList.isEmpty() ? Collections.emptyList()
+                    : equipmentBaseMapper.selectBatchIds(equipmentIdList);
             Map<String, EquipmentBase> equipmentBaseMap = new HashMap<>();
             if(CollUtil.isNotEmpty(equipmentBaseList)){
                 equipmentBaseMap.putAll(equipmentBaseList.stream().collect(Collectors.toMap(EquipmentBase::getEquipmentId, Function.identity(), (key1, key2) -> key2)));
             }
-            List<Integer> equipmentTypeIdList = equipmentBaseList.stream().map(EquipmentBase::getEquipmentTypeId).distinct().collect(Collectors.toList());
-            List<EquipmentType> equipmentTypeList = equipmentTypeMapper.selectBatchIds(equipmentTypeIdList);
+            List<Integer> equipmentTypeIdList = equipmentBaseList.stream().map(EquipmentBase::getEquipmentTypeId)
+                    .filter(Objects::nonNull).distinct().collect(Collectors.toList());
+            List<EquipmentType> equipmentTypeList = equipmentTypeIdList.isEmpty() ? Collections.emptyList()
+                    : equipmentTypeMapper.selectBatchIds(equipmentTypeIdList);
             Map<Integer, EquipmentType> equipmentTypeMap = new HashMap<>();
             if(CollUtil.isNotEmpty(equipmentTypeList)){
                 equipmentTypeMap.putAll(equipmentTypeList.stream().collect(
                         Collectors.toMap(EquipmentType::getId, Function.identity(), (key1, key2) -> key2)));
             }
             for(CaseInfoOutDTO outDTO : outDTOList) {
-                EquipmentBase equipmentBase = equipmentBaseMap.get(outDTO.getDeviceId());
+                EquipmentBase equipmentBase = equipmentBaseMap.get(outDTO.getEquipmentId());
                 if(equipmentBase != null){
                     outDTO.setDeviceCode(equipmentBase.getEquipmentCode());
                     EquipmentType equipmentType = equipmentTypeMap.get(equipmentBase.getEquipmentTypeId());
@@ -102,7 +109,7 @@ public class CaseInfoServiceImpl extends ServiceImpl<CaseInfoMapper, CaseInfo>
                         outDTO.setEquipmentTypeName(equipmentType.getTypeName());
                     }
                 }
-                EquipmentStatus equipmentStatus = equipmentStatusMap.get(outDTO.getDeviceId());
+                EquipmentStatus equipmentStatus = equipmentStatusMap.get(outDTO.getEquipmentId());
                 if(equipmentStatus != null){
                     EquipmentStatusOutDTO equipmentStatusOutDTO = BeanUtil.copyProperties(equipmentStatus, EquipmentStatusOutDTO.class);
                     outDTO.setEquipmentStatus(equipmentStatusOutDTO);

+ 7 - 1
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/service/impl/WarningThresholdServiceImpl.java

@@ -68,6 +68,7 @@ public class WarningThresholdServiceImpl extends ServiceImpl<WarningThresholdMap
                                                   Boolean unconfiguredOnly, Boolean configuredOnly) {
         Integer root = validRoot(rootTypeId);
         Set<String> allowedTypeIds = allowedTypeIds(root, equipmentTypeId);
+        if (allowedTypeIds.isEmpty()) return Collections.emptyList();
         LambdaQueryWrapper<EquipmentBase> wrapper = Wrappers.lambdaQuery(EquipmentBase.class);
         wrapper.in(EquipmentBase::getEquipmentTypeId, allowedTypeIds);
         if (deviceCode != null && !deviceCode.trim().isEmpty()) {
@@ -140,6 +141,11 @@ public class WarningThresholdServiceImpl extends ServiceImpl<WarningThresholdMap
         long size = pageSize == null || pageSize < 1 ? 10 : pageSize;
         Integer root = validRoot(rootTypeId);
         Set<String> allowedTypeIds = allowedTypeIds(root, equipmentTypeId);
+        Page<WarningThresholdListItem> emptyPage = new Page<>(current, size, 0);
+        if (allowedTypeIds.isEmpty()) {
+            emptyPage.setRecords(Collections.emptyList());
+            return emptyPage;
+        }
         LambdaQueryWrapper<EquipmentBase> deviceWrapper = Wrappers.lambdaQuery(EquipmentBase.class)
                 .in(EquipmentBase::getEquipmentTypeId, allowedTypeIds);
         if (deviceCode != null && !deviceCode.trim().isEmpty()) {
@@ -150,7 +156,6 @@ public class WarningThresholdServiceImpl extends ServiceImpl<WarningThresholdMap
         }
         deviceWrapper.orderByAsc(EquipmentBase::getEquipmentCode);
         List<EquipmentBase> devices = equipmentBaseMapper.selectList(deviceWrapper);
-        Page<WarningThresholdListItem> emptyPage = new Page<>(current, size, 0);
         if (devices.isEmpty()) {
             emptyPage.setRecords(Collections.emptyList());
             return emptyPage;
@@ -230,6 +235,7 @@ public class WarningThresholdServiceImpl extends ServiceImpl<WarningThresholdMap
         if (request == null || request.getThresholds() == null || request.getThresholds().isEmpty()) throw new ServiceException("阈值指标不能为空");
         Integer root = validRoot(request.getRootTypeId());
         Set<String> allowedTypeIds = allowedTypeIds(root, request.getEquipmentTypeId());
+        if (allowedTypeIds.isEmpty()) throw new ServiceException("当前管理范围下没有可配置的设备类型");
         List<EquipmentBase> all = equipmentBaseMapper.selectList(Wrappers.lambdaQuery(EquipmentBase.class).in(EquipmentBase::getEquipmentTypeId, allowedTypeIds));
         Map<String, EquipmentBase> byCode = all.stream().filter(d -> d.getEquipmentCode() != null).collect(Collectors.toMap(EquipmentBase::getEquipmentCode, Function.identity(), (a, b) -> a));
         List<String> codes = request.getDeviceCodes() == null ? Collections.emptyList() : request.getDeviceCodes().stream().filter(Objects::nonNull).map(String::trim).filter(s -> !s.isEmpty()).distinct().collect(Collectors.toList());

+ 4 - 8
pipe-network-service/zksy-system/src/main/java/com/zksy/manhole/dto/in/CaseInfoSaveInDTO.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
 
 /**
@@ -19,14 +20,9 @@ public class CaseInfoSaveInDTO implements Serializable {
     /**
      * 关联设备ID
      */
-    @ApiModelProperty(value = "设备ID", required = true)
-    private String deviceId;
-
-    /**
-     * 设备编码
-     */
-    @ApiModelProperty(value = "设备编码", required = true)
-    private String deviceCode;
+    @ApiModelProperty(value = "设备ID,关联 equipment_base.equipment_id", required = true)
+    @NotBlank(message = "设备ID不能为空")
+    private String equipmentId;
 
     /**
      * 案件等级:1-严重 2-一般 3-轻微

+ 3 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/manhole/dto/out/CaseInfoOutDTO.java

@@ -17,6 +17,9 @@ import java.io.Serializable;
 public class CaseInfoOutDTO extends CaseInfo implements Serializable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty("设备编码,按 equipmentId 从设备档案查询,仅用于展示")
+    private String deviceCode;
+
     @ApiModelProperty("设备类别名称")
     private String equipmentTypeName;
 

+ 2 - 3
pipe-network-service/zksy-system/src/main/resources/mapper/CaseInfoMapper.xml

@@ -9,8 +9,7 @@
             <result property="caseNo" column="case_no" jdbcType="VARCHAR"/>
             <result property="orderId" column="order_id" jdbcType="BIGINT"/>
             <result property="alarmId" column="alarm_id" jdbcType="VARCHAR"/>
-            <result property="deviceId" column="device_id" jdbcType="VARCHAR"/>
-            <result property="deviceCode" column="device_code" jdbcType="VARCHAR"/>
+            <result property="equipmentId" column="equipment_id" jdbcType="VARCHAR"/>
             <result property="caseLevel" column="case_level" jdbcType="TINYINT"/>
             <result property="caseDesc" column="case_desc" jdbcType="VARCHAR"/>
             <result property="caseSource" column="case_source" jdbcType="TINYINT"/>
@@ -27,7 +26,7 @@
 
     <sql id="Base_Column_List">
         case_id,case_no,order_id,alarm_id,
-        device_id,device_code,case_level,
+        equipment_id,case_level,
         case_desc,case_source,case_status,
         file_user,verify_user,verify_time,
         finish_time,handle_result,attach_url,

+ 1 - 7
zk-api-service/src/main/java/com/zksy/api/domain/CaseInfo.java

@@ -50,13 +50,7 @@ public class CaseInfo implements Serializable {
      * 关联设备ID
      */
     @ApiModelProperty(value = "设备ID")
-    private String deviceId;
-
-    /**
-     * 设备编码
-     */
-    @ApiModelProperty(value = "设备编码")
-    private String deviceCode;
+    private String equipmentId;
 
     /**
      * 案件等级:1-严重 2-一般 3-轻微

+ 1 - 2
zk-api-service/src/main/java/com/zksy/api/service/impl/AlarmDataServiceImpl.java

@@ -107,8 +107,7 @@ public class AlarmDataServiceImpl extends ServiceImpl<AlarmDataMapper, AlarmData
             caseInfo = new CaseInfo();
             caseInfo.setCaseNo(generateCaseNo());
             caseInfo.setAlarmId(alarmData.getId());
-            caseInfo.setDeviceId(equipmentBase.getEquipmentId());
-            caseInfo.setDeviceCode(alarmData.getDeviceCode());
+            caseInfo.setEquipmentId(equipmentBase.getEquipmentId());
             caseInfo.setCaseLevel(caseLevel);
             caseInfo.setCaseDesc(desc);
             caseInfo.setCaseSource(1); // 1-系统自动报警