فهرست منبع

重构-窨井子系统--故障管理

zengy 1 روز پیش
والد
کامیت
591c29ee91

+ 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)

+ 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;
-}