2 Incheckningar 7df440a081 ... 8a41360991

Upphovsman SHA1 Meddelande Datum
  zengy 8a41360991 重构-窨井子系统-案件流转管理 1 dag sedan
  zengy 591c29ee91 重构-窨井子系统--故障管理 2 dagar sedan
15 ändrade filer med 48 tillägg och 292 borttagningar
  1. 8 3
      pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/gasbasic/GisController.java
  2. 0 27
      pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/manhole/ManholeDeviceController.java
  3. 3 0
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/alarm/domain/AlarmData.java
  4. 1 1
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/alarm/dto/AlarmReviewQuery.java
  5. 4 0
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/alarm/dto/AlarmVO.java
  6. 27 2
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/alarm/service/AlarmOperationsService.java
  7. 0 10
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/EquipmentBaseService.java
  8. 0 7
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/EquipmentStatusService.java
  9. 0 139
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/impl/EquipmentBaseServiceImpl.java
  10. 0 31
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/impl/EquipmentStatusServiceImpl.java
  11. 0 21
      pipe-network-service/zksy-system/src/main/java/com/zksy/manhole/dto/in/AlarmMonitorListInDTO.java
  12. 0 24
      pipe-network-service/zksy-system/src/main/java/com/zksy/manhole/dto/in/EquipmentStatusInDTO.java
  13. 0 26
      pipe-network-service/zksy-system/src/main/java/com/zksy/manhole/dto/out/AlarmMonitorListOutDTO.java
  14. 4 1
      pipe-network-service/zksy-system/src/main/resources/mapper/base/AlarmOperationsMapper.xml
  15. 1 0
      pipe-network-service/zksy-system/src/main/resources/mapper/base/AlarmReviewMapper.xml

+ 8 - 3
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/gasbasic/GisController.java

@@ -7,16 +7,21 @@ import com.zksy.base.domain.PipeNetworkBase;
 import com.zksy.base.service.EquipmentBaseService;
 import com.zksy.base.service.ManholeBaseService;
 import com.zksy.base.service.PipeNetworkBaseService;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zksy.common.annotation.Anonymous;
 import com.zksy.common.core.domain.AjaxResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @Slf4j
 @RestController

+ 0 - 27
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/manhole/ManholeDeviceController.java

@@ -92,33 +92,6 @@ public class ManholeDeviceController extends BaseController
         return AjaxResult2.success(equipmentBaseService.getManholeDeviceStatistics(inDTO));
     }
 
-    /**
-     * 窨井盖实时监测-设备报警监控列表
-     * 查询所有窨井类型设备(排水=9/供水=10)的 jg_device_data 最新一条记录
-     * 根据倾斜角度(angle_alarm_threshold)、水浸(water_infiltration_alarm_status)、水位(water_level_alarm_status)判定严重告警
-     * 低电量(battery<=20)/弱信号(signal<=20)判定一般告警
-     */
-    @Anonymous
-    @PostMapping(value = "/getAlarmMonitorList")
-    @ApiOperation(value = "窨井盖实时监测-设备报警监控列表")
-    public AjaxResult2<AlarmMonitorListOutDTO> getAlarmMonitorList(@RequestBody AlarmMonitorListInDTO inDTO)
-    {
-        return AjaxResult2.success(equipmentBaseService.getAlarmMonitorList(inDTO));
-    }
-
-    /**
-     * 修改设备状态
-     * @param inDTO
-     * @return
-     */
-    @Anonymous
-    @PostMapping("/updateDeviceStatus")
-    @ApiOperation(value = "修改设备状态")
-    public AjaxResult updateDeviceStatus(@RequestBody EquipmentStatusInDTO inDTO) {
-        boolean updated = equipmentStatusService.updateDeviceStatus(inDTO);
-        return updated ? AjaxResult.success("修改成功",updated)
-                : AjaxResult.error("修改失败",updated);
-    }
 
     /**
      * 搜索可关联设备(排除窨井类型5/9/10,排除已关联设备ID)

+ 3 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/alarm/domain/AlarmData.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -63,8 +64,10 @@ public class AlarmData implements Serializable {
     @ApiModelProperty(value = "报警等级:alarm_level 字典编码(1最高~4最低),与 sys_dict_data.dict_value 对齐")
     private String alarmLevel;
 
+    // 前端已不再展示偏差率:仅允许写入,不再作为接口出参返回
     @TableField(value = "deviation_ratio")
     @ApiModelProperty(value = "偏差率(百分比)")
+    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
     private BigDecimal deviationRatio;
 
     @TableField(value = "alarm_status")

+ 1 - 1
pipe-network-service/zksy-system/src/main/java/com/zksy/base/alarm/dto/AlarmReviewQuery.java

@@ -13,7 +13,7 @@ public class AlarmReviewQuery {
     @ApiModelProperty("报警编码,精确匹配;燃气菜单限定 WARN-GAS-CONCENTRATION")
     @Size(max = 100)
     private String warningCode;
-    @ApiModelProperty("设备编码/名称,模糊匹配")
+    @ApiModelProperty("报警单号 / 设备编码 / 设备名称,模糊匹配")
     @Size(max = 100)
     private String keyword;
     @ApiModelProperty("报警等级:alarm_level 字典启用值,保留1-4编码,1级最高")

+ 4 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/alarm/dto/AlarmVO.java

@@ -1,6 +1,7 @@
 package com.zksy.base.alarm.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zksy.ops.dto.WorkOrderDetailVO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import java.time.LocalDateTime;
@@ -9,6 +10,7 @@ import java.time.LocalDateTime;
 @EqualsAndHashCode(callSuper = true)
 public class AlarmVO extends AlarmReviewVO {
     private Integer equipmentTypeId;
+    private String equipmentTypeName;
     private Integer deviceAlarmStatus;
     private Integer displayStatus;
     private String displayStatusText;
@@ -17,6 +19,8 @@ public class AlarmVO extends AlarmReviewVO {
     private Integer orderStatus;
     private String orderStatusName;
     private String receiveUserName;
+    /** 按 alarm_data.work_order_id 关联出的工单详情(含处置日志),供案件流转等页面直接使用 */
+    private WorkOrderDetailVO workOrderDetail;
     private String monitorStatusName;
     private String latestOperation;
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 27 - 2
pipe-network-service/zksy-system/src/main/java/com/zksy/base/alarm/service/AlarmOperationsService.java

@@ -7,6 +7,8 @@ import com.zksy.base.alarm.enums.*;
 import com.zksy.base.alarm.mapper.AlarmLogMapper;
 import com.zksy.base.alarm.mapper.AlarmOperationsMapper;
 import com.zksy.base.enums.AlarmStatusEnum;
+import com.zksy.ops.dto.WorkOrderDetailVO;
+import com.zksy.ops.service.WorkOrderService;
 import com.zksy.common.core.domain.entity.SysDictData;
 import com.zksy.common.exception.ServiceException;
 import com.zksy.ops.enums.WorkOrderStatusEnum;
@@ -28,6 +30,7 @@ public class AlarmOperationsService {
     private final AlarmReviewScopeService scope;
     private final AlarmLogMapper logs;
     private final ISysDictDataService dictDataService;
+    private final WorkOrderService workOrderService;
 
     public Page<AlarmVO> page(AlarmQuery query) {
         validate(query);
@@ -54,9 +57,14 @@ public class AlarmOperationsService {
         return detailInScope(id, query.toAlarmQuery(), scope.resolveMobile(query));
     }
     public List<AlarmLog> mobileLogs(String id, MobileAlarmQuery query) {
-        mobileDetail(id, query);
+        requireMobileAlarm(id, query);
         return history(id);
     }
+    private void requireMobileAlarm(String id, MobileAlarmQuery query) {
+        if (mapper.selectMobileDetail(id, query.toAlarmQuery(), scope.resolveMobile(query)) == null) {
+            throw new ServiceException("报警不存在或不属于当前管理范围");
+        }
+    }
     private Page<AlarmVO> pageInScope(AlarmQuery query, List<Integer> typeIds) {
         validate(query);
         Page<AlarmVO> page = mapper.selectMobilePage(new Page<>(query.getPageNum(), query.getPageSize()), query, typeIds);
@@ -67,14 +75,26 @@ public class AlarmOperationsService {
         AlarmVO alarm = mapper.selectDetail(id, query, scope.resolveOperations(query));
         if (alarm == null) throw new ServiceException("报警不存在或不属于当前管理范围");
         labels(alarm);
+        fillWorkOrder(alarm);
         return alarm;
     }
     private AlarmVO detailInScope(String id, AlarmQuery query, List<Integer> typeIds) {
         AlarmVO alarm = mapper.selectMobileDetail(id, query, typeIds);
         if (alarm == null) throw new ServiceException("报警不存在或不属于当前管理范围");
         labels(alarm);
+        fillWorkOrder(alarm);
         return alarm;
     }
+    /** 按 alarm_data.work_order_id 关联查询 work_order(含处置日志),避免前端依赖工单模块权限。 */
+    private void fillWorkOrder(AlarmVO alarm) {
+        if (alarm.getWorkOrderId() == null) return;
+        try {
+            WorkOrderDetailVO detail = workOrderService.getDetail(alarm.getWorkOrderId());
+            alarm.setWorkOrderDetail(detail);
+        } catch (RuntimeException ignored) {
+            // 工单已被删除或不可见时不阻断报警详情
+        }
+    }
     public Page<AlarmVO> reminders(AlarmQuery query) {
         // 提醒只展示未处理报警,不能通过请求参数切换为历史已恢复事件。
         query.setAlarmStatus(AlarmRecordStatusEnum.UNHANDLED.getCode());
@@ -84,9 +104,14 @@ public class AlarmOperationsService {
         return page;
     }
     public List<AlarmLog> logs(String id, AlarmQuery query) {
-        detail(id, query);
+        requireAlarm(id, query);
         return history(id);
     }
+    private void requireAlarm(String id, AlarmQuery query) {
+        if (mapper.selectDetail(id, query, scope.resolveOperations(query)) == null) {
+            throw new ServiceException("报警不存在或不属于当前管理范围");
+        }
+    }
     private List<AlarmLog> history(String id) {
         List<AlarmLog> result = logs.selectHistory(id);
         result.forEach(log -> { AlarmLogOperTypeEnum type = AlarmLogOperTypeEnum.fromCode(log.getOperType());

+ 0 - 10
pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/EquipmentBaseService.java

@@ -5,12 +5,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.base.domain.EquipmentBase;
 import com.zksy.base.domain.vo.EquipmentFullVO;
 import com.zksy.base.domain.vo.EquipmentBaseVO;
-import com.zksy.manhole.dto.in.AlarmMonitorListInDTO;
 import com.zksy.manhole.dto.in.EquipmentCountByTypeInDTO;
 import com.zksy.manhole.dto.in.EquipmentExportInDTO;
 import com.zksy.manhole.dto.in.ManholeDevicePageInDTO;
 import com.zksy.manhole.dto.in.ManholeDeviceStatisticsInDTO;
-import com.zksy.manhole.dto.out.AlarmMonitorListOutDTO;
 import com.zksy.manhole.dto.out.EquipmentBaseOutDTO;
 import com.zksy.manhole.dto.out.EquipmentCountByTypeOutDTO;
 import com.zksy.manhole.dto.out.EquipmentExportOutDTO;
@@ -106,12 +104,4 @@ public interface EquipmentBaseService extends IService<EquipmentBase> {
      */
     List<EquipmentBase> findByTopLevelType(String typeName);
 
-    /**
-     * 窨井盖实时监测-设备报警监控列表
-     * 查询所有窨井类型(equipment_type_id IN (9,10))设备的 jg_device_data 最新一条记录
-     * 根据倾斜角度/水浸/水位判定严重告警,低电量/弱信号判定一般告警
-     * @param inDTO 查询条件(keyword 模糊匹配)
-     * @return 设备列表 + 统计信息
-     */
-    AlarmMonitorListOutDTO getAlarmMonitorList(AlarmMonitorListInDTO inDTO);
 }

+ 0 - 7
pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/EquipmentStatusService.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.base.domain.EquipmentStatus;
 
-import com.zksy.manhole.dto.in.EquipmentStatusInDTO;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -34,12 +33,6 @@ public interface EquipmentStatusService extends IService<EquipmentStatus> {
      */
     boolean updateWithCheck(EquipmentStatus entity);
 
-    /**
-     * 修改设备状态
-     * @param inDTO
-     * @return
-     */
-    boolean updateDeviceStatus(EquipmentStatusInDTO inDTO);
 
     /**
      * 根据设备编码(deviceCode)查询设备状态

+ 0 - 139
pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/impl/EquipmentBaseServiceImpl.java

@@ -25,7 +25,6 @@ import com.zksy.base.manhole.mapper.ManholeDataMapper;
 import com.zksy.base.mapper.*;
 import com.zksy.base.service.EquipmentBaseService;
 import com.zksy.common.exception.ServiceException;
-import com.zksy.manhole.dto.in.AlarmMonitorListInDTO;
 import com.zksy.manhole.dto.in.EquipmentCountByTypeInDTO;
 import com.zksy.manhole.dto.in.EquipmentExportInDTO;
 import com.zksy.manhole.dto.in.ManholeDevicePageInDTO;
@@ -648,144 +647,6 @@ public class EquipmentBaseServiceImpl extends ServiceImpl<EquipmentBaseMapper, E
         return new BigDecimal(count * 100.0 / total).setScale(1, RoundingMode.HALF_UP);
     }
 
-
-    /**
-     * 窨井盖实时监测-设备报警监控列表
-     * 查询所有窨井类型设备(equipment_type_id IN (9,10))的 jg_device_data 最新一条记录
-     * 告警等级判定:
-     *   严重告警(critical) — 倾斜角度超阈值 / 水浸报警 / 水位报警
-     *   一般告警(warning)  — 低电量(battery<=20) / 弱信号(signal<=20)
-     */
-    @Override
-    public AlarmMonitorListOutDTO getAlarmMonitorList(AlarmMonitorListInDTO inDTO) {
-        log.info("窨井盖实时监测-设备报警监控列表入参:{}", inDTO);
-        // 仅查询窨井类型设备:排水窨井(9)/供水窨井(10)
-        List<String> manholeTypeIds = Arrays.asList("5", "9", "10");
-        LambdaQueryWrapper<EquipmentBase> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(EquipmentBase::getEquipmentTypeId, manholeTypeIds)
-                .and(StringUtils.isNotBlank(inDTO.getKeyword()), w -> w
-                        .like(EquipmentBase::getEquipmentCode, inDTO.getKeyword())
-                        .or()
-                        .like(EquipmentBase::getEquipmentName, inDTO.getKeyword())
-                        .or()
-                        .like(EquipmentBase::getEquipmentLocation, inDTO.getKeyword()))
-                .orderByDesc(EquipmentBase::getUpdateTime);
-        List<EquipmentBase> equipmentList = this.list(queryWrapper);
-        if (CollUtil.isEmpty(equipmentList)) {
-            AlarmMonitorListOutDTO emptyResult = new AlarmMonitorListOutDTO();
-            emptyResult.setDevices(new ArrayList<>());
-            Map<String, Object> emptyStats = new HashMap<>();
-            emptyStats.put("total", 0);
-            emptyStats.put("critical", 0);
-            emptyStats.put("warning", 0);
-            emptyStats.put("normal", 0);
-            emptyStats.put("onlineCount", 0);
-            emptyStats.put("avgBattery", 0);
-            emptyResult.setStatistics(emptyStats);
-            return emptyResult;
-        }
-        List<EquipmentBaseOutDTO> outDTOList = BeanUtil.copyToList(equipmentList, EquipmentBaseOutDTO.class);
-
-        // 批量查询设备类型名称
-        List<Integer> typeIdList = outDTOList.stream().map(EquipmentBaseOutDTO::getEquipmentTypeId).distinct().collect(Collectors.toList());
-        List<EquipmentType> equipmentTypeList = equipmentTypeMapper.selectList(new LambdaQueryWrapper<EquipmentType>()
-                .in(EquipmentType::getId, typeIdList));
-        Map<Integer, EquipmentType> equipmentTypeMap = new HashMap<>();
-        if (CollUtil.isNotEmpty(equipmentTypeList)) {
-            equipmentTypeMap.putAll(equipmentTypeList.stream().collect(Collectors.toMap(EquipmentType::getId, Function.identity(), (k1, k2) -> k2)));
-        }
-
-        // 批量查询设备运维状态
-        List<String> equipmentIdList = outDTOList.stream().map(EquipmentBaseOutDTO::getEquipmentId).distinct().collect(Collectors.toList());
-        List<EquipmentStatus> equipmentStatusList = 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(), (k1, k2) -> k2)));
-        }
-
-        // 批量查询最新 jg_device_data 记录(按 imei_card_number = equipment_code 关联)
-        List<String> equipmentCodeList = outDTOList.stream().map(EquipmentBaseOutDTO::getEquipmentCode).distinct().collect(Collectors.toList());
-        List<ManholeData> manholeDataList = manholeDataMapper.selectList(new LambdaQueryWrapper<ManholeData>()
-                .in(ManholeData::getImeiCardNumber, equipmentCodeList)
-                .orderByDesc(ManholeData::getCreateTime));
-        Map<String, List<ManholeData>> imeiMapList = new HashMap<>();
-        if (CollUtil.isNotEmpty(manholeDataList)) {
-            imeiMapList.putAll(manholeDataList.stream().collect(Collectors.groupingBy(ManholeData::getImeiCardNumber)));
-        }
-
-        // 批量查询未办结工单(待派单/待接单/已接单/处理中/待验收/延期审核)
-        List<Integer> activeStatusList = Arrays.asList(1, 2, 3, 4, 5, 8);
-        List<WorkOrder> activeWorkOrders = workOrderMapper.selectList(new LambdaQueryWrapper<WorkOrder>()
-                .in(WorkOrder::getDeviceId, equipmentIdList)
-                .in(WorkOrder::getOrderStatus, activeStatusList));
-        Set<String> deviceWithActiveOrder = activeWorkOrders.stream()
-                .map(WorkOrder::getDeviceId)
-                .collect(Collectors.toSet());
-
-        // 统计变量
-        int critical = 0, warning = 0, normal = 0, onlineCount = 0;
-        double batterySum = 0;
-        int batteryCount = 0;
-
-        for (EquipmentBaseOutDTO outDTO : outDTOList) {
-            // 设备类型名称
-            EquipmentType equipmentType = equipmentTypeMap.get(outDTO.getEquipmentTypeId());
-            if (equipmentType != null) {
-                outDTO.setEquipmentTypeName(equipmentType.getTypeName());
-            }
-            // 设备运维状态
-            EquipmentStatus equipmentStatus = equipmentStatusMap.get(outDTO.getEquipmentId());
-            if (equipmentStatus != null) {
-                EquipmentStatusOutDTO statusOutDTO = BeanUtil.copyProperties(equipmentStatus, EquipmentStatusOutDTO.class);
-                outDTO.setEquipmentStatus(statusOutDTO);
-                if (Integer.valueOf(1).equals(equipmentStatus.getOnlineStatus())) {
-                    onlineCount++;
-                }
-            }
-            // 是否有未办结工单
-            outDTO.setWorkOrderSubmitted(deviceWithActiveOrder.contains(outDTO.getEquipmentId()));
-            // 最新 jg_device_data 记录
-            List<ManholeData> dataList = imeiMapList.get(outDTO.getEquipmentCode());
-            if (CollUtil.isNotEmpty(dataList)) {
-                ManholeData latest = dataList.get(0);
-                ManholeDataOutDTO manholeDataOutDTO = BeanUtil.copyProperties(latest, ManholeDataOutDTO.class);
-                outDTO.setManholeData(manholeDataOutDTO);
-
-                // 统计电量
-                if (StringUtils.isNotBlank(latest.getBatteryLevel())) {
-                    try {
-                        batterySum += Double.parseDouble(latest.getBatteryLevel().trim());
-                        batteryCount++;
-                    } catch (NumberFormatException ignored) {}
-                }
-
-                // 告警等级判定
-                boolean isCritical = isCriticalAlarm(latest);
-                boolean isWarning = !isCritical && isGeneralAlarm(latest);
-                if (isCritical) critical++;
-                else if (isWarning) warning++;
-                else normal++;
-            } else {
-                normal++;
-            }
-        }
-
-        // 构建统计信息
-        Map<String, Object> statistics = new HashMap<>();
-        statistics.put("total", outDTOList.size());
-        statistics.put("critical", critical);
-        statistics.put("warning", warning);
-        statistics.put("normal", normal);
-        statistics.put("onlineCount", onlineCount);
-        statistics.put("avgBattery", batteryCount > 0 ? (int) (batterySum / batteryCount) : 0);
-
-        AlarmMonitorListOutDTO result = new AlarmMonitorListOutDTO();
-        result.setDevices(outDTOList);
-        result.setStatistics(statistics);
-        return result;
-    }
-
     /**
      * 严重告警判定:倾斜角度超阈值 / 水浸报警 / 水位报警
      */

+ 0 - 31
pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/impl/EquipmentStatusServiceImpl.java

@@ -11,7 +11,6 @@ import com.zksy.base.mapper.EquipmentBaseMapper;
 import com.zksy.base.mapper.EquipmentStatusMapper;
 import com.zksy.base.service.EquipmentStatusService;
 import com.zksy.common.exception.ServiceException;
-import com.zksy.manhole.dto.in.EquipmentStatusInDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -205,36 +204,6 @@ public class EquipmentStatusServiceImpl extends ServiceImpl<EquipmentStatusMappe
         return updated;
     }
 
-    /**
-     * 修改设备状态
-     * @param inDTO
-     * @return
-     */
-    @Override
-    @Transactional
-    public boolean updateDeviceStatus(EquipmentStatusInDTO inDTO) {
-        log.info("修改设备状态-入参:{}", inDTO);
-        //校验状态值合法性(0-在用,1-维修,2-报废)
-        Integer status = inDTO.getCurrentStatus();
-        if (status != null && CurrentStatusEnum.getByCode(status) == null) {
-            throw new ServiceException("设备状态值无效(必须为0-2):" + status);
-        }
-        //校验当前状态记录是否存在
-        EquipmentStatus oldStatus = this.lambdaQuery()
-                .eq(EquipmentStatus::getEquipmentId, inDTO.getEquipmentId())
-                .one();
-        boolean changed = oldStatus != null
-                && !Objects.equals(oldStatus.getCurrentStatus(), inDTO.getCurrentStatus());
-        boolean update = this.lambdaUpdate()
-                .set(EquipmentStatus::getCurrentStatus, inDTO.getCurrentStatus())
-                .set(EquipmentStatus::getStatusUpdateTime, new Date())
-                .eq(EquipmentStatus::getEquipmentId, inDTO.getEquipmentId())
-                .update();
-        if (update && changed) {
-            publishLatest(inDTO.getEquipmentId(), oldStatus.getStatusId(), "pipe-network:updateDeviceStatus");
-        }
-        return update;
-    }
 
     /**
      * 根据设备编码(deviceCode)查询设备状态

+ 0 - 21
pipe-network-service/zksy-system/src/main/java/com/zksy/manhole/dto/in/AlarmMonitorListInDTO.java

@@ -1,21 +0,0 @@
-package com.zksy.manhole.dto.in;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * 窨井盖实时监测-设备报警监控列表入参
- *
- * @author xianggx
- */
-@Data
-@ApiModel(value = "窨井盖实时监测-设备报警监控列表入参", description = "窨井盖实时监测-设备报警监控列表入参")
-public class AlarmMonitorListInDTO implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty(value = "关键字,支持按设备编号、设备名称模糊查询")
-    private String keyword;
-}

+ 0 - 24
pipe-network-service/zksy-system/src/main/java/com/zksy/manhole/dto/in/EquipmentStatusInDTO.java

@@ -1,24 +0,0 @@
-package com.zksy.manhole.dto.in;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * 修改设备状态-入参
- *
- * @author xianggx
- */
-@Data
-@ApiModel(value = "修改设备状态-入参", description = "修改设备状态-入参")
-public class EquipmentStatusInDTO implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty(value = "设备ID", required = true)
-    private String equipmentId;
-
-    @ApiModelProperty(value = "运维状态:1-在用,2-闲置", required = true)
-    private Integer currentStatus;
-}

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

@@ -1,26 +0,0 @@
-package com.zksy.manhole.dto.out;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 窨井盖实时监测-设备报警监控列表出参(设备列表 + 统计信息)
- *
- * @author xianggx
- */
-@Data
-@ApiModel(value = "窨井盖实时监测-设备报警监控列表出参", description = "设备列表 + 统计信息")
-public class AlarmMonitorListOutDTO implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty(value = "设备列表(含最新 jg_device_data 记录)")
-    private List<EquipmentBaseOutDTO> devices;
-
-    @ApiModelProperty(value = "统计信息:total/critical/warning/normal/onlineCount/avgBattery")
-    private Map<String, Object> statistics;
-}

+ 4 - 1
pipe-network-service/zksy-system/src/main/resources/mapper/base/AlarmOperationsMapper.xml

@@ -47,13 +47,14 @@
         FROM app_user.alarm_data a
         LEFT JOIN LATERAL (SELECT b.* FROM app_user.equipment_base b WHERE b.equipment_code = a.device_code
             ORDER BY b.equipment_id LIMIT 1) e ON true
+        LEFT JOIN app_user.equipment_type t ON t.id = e.equipment_type_id
         LEFT JOIN LATERAL (SELECT s.alarm_status FROM app_user.equipment_status s WHERE s.equipment_id = e.equipment_id AND s.del_flag = '0' ORDER BY s.status_update_time DESC NULLS LAST, s.status_id DESC LIMIT 1) st ON true
         LEFT JOIN app_user.work_order w ON w.order_id = a.work_order_id
         LEFT JOIN app_user.sys_user u ON u.user_id = w.receive_user
     </sql>
     <sql id="columns">
         a.*, e.equipment_id, e.equipment_name AS current_device_name, e.equipment_location,
-        e.equipment_type_id, e.equipment_image, e.longitude, e.latitude, st.alarm_status AS device_alarm_status,
+        e.equipment_type_id, t.type_name AS equipment_type_name, e.equipment_image, e.longitude, e.latitude, st.alarm_status AS device_alarm_status,
         w.order_no, w.order_status, w.plan_finish_time, COALESCE(u.nick_name,u.user_name) AS receive_user_name,
         (SELECT wtt.warning_unit FROM app_user.equipment_warning_type ewt
             JOIN app_user.warning_type wtt ON wtt.id = ewt.warning_type_id
@@ -62,6 +63,8 @@
     <resultMap id="alarm" type="com.zksy.base.alarm.dto.AlarmVO" autoMapping="true">
         <id property="id" column="id"/>
         <result property="deviceName" column="current_device_name"/>
+        <result property="equipmentTypeName" column="equipment_type_name"/>
+        <result property="workOrderId" column="work_order_id"/>
     </resultMap>
     <sql id="filters">
         <include refid="com.zksy.base.alarm.mapper.AlarmReviewMapper.scope"/>

+ 1 - 0
pipe-network-service/zksy-system/src/main/resources/mapper/base/AlarmReviewMapper.xml

@@ -23,6 +23,7 @@
         <include refid="scope"/>
         <if test="query.keyword != null and query.keyword != ''">
             AND (a.device_code ILIKE CONCAT('%', #{query.keyword}, '%')
+                OR a.alarm_no ILIKE CONCAT('%', #{query.keyword}, '%')
                 OR EXISTS (SELECT 1 FROM app_user.equipment_base e WHERE e.equipment_code = a.device_code
                     AND e.equipment_name ILIKE CONCAT('%', #{query.keyword}, '%')))
         </if>