Jelajahi Sumber

查询井盖监测设备列表

xiang13487 1 Minggu lalu
induk
melakukan
f4a7c43cbb

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

@@ -70,10 +70,9 @@ public class ManholeDeviceController extends BaseController
     @Anonymous
     @GetMapping(value = "/getManholeDataList")
     @ApiOperation(value = "查询井盖监测设备列表")
-    public AjaxResult2<List<EquipmentBaseOutDTO>> getManholeDataList(@RequestBody ManholeDeviceListInDTO pageInDTO)
+    public AjaxResult2<List<EquipmentBaseOutDTO>> getManholeDataList(@RequestBody ManholeDeviceListInDTO listInDTO)
     {
-        //return AjaxResult2.success(equipmentBaseService.getManholeDataList(pageInDTO));
-        return null;
+        return AjaxResult2.success(equipmentBaseService.getManholeDataList(listInDTO));
     }
 
     /**

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

@@ -3,6 +3,7 @@ package com.zksy.base.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.base.domain.EquipmentBase;
+import com.zksy.manhole.dto.in.ManholeDeviceListInDTO;
 import com.zksy.manhole.dto.in.ManholeDevicePageInDTO;
 import com.zksy.manhole.dto.out.EquipmentBaseOutDTO;
 import org.springframework.stereotype.Service;
@@ -59,4 +60,11 @@ public interface EquipmentBaseService extends IService<EquipmentBase> {
      * @return
      */
     Page<EquipmentBaseOutDTO> findManholeDeviceByPage(ManholeDevicePageInDTO pageInDTO);
+
+    /**
+     * 查询井盖监测设备列表
+     * @param listInDTO
+     * @return
+     */
+    List<EquipmentBaseOutDTO> getManholeDataList(ManholeDeviceListInDTO listInDTO);
 }

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

@@ -19,6 +19,7 @@ import com.zksy.base.mapper.EquipmentStatusMapper;
 import com.zksy.base.mapper.EquipmentTypeMapper;
 import com.zksy.base.service.EquipmentBaseService;
 import com.zksy.common.exception.ServiceException;
+import com.zksy.manhole.dto.in.ManholeDeviceListInDTO;
 import com.zksy.manhole.dto.in.ManholeDevicePageInDTO;
 import com.zksy.manhole.dto.out.EquipmentBaseOutDTO;
 import com.zksy.manhole.dto.out.EquipmentStatusOutDTO;
@@ -264,7 +265,7 @@ public class EquipmentBaseServiceImpl extends ServiceImpl<EquipmentBaseMapper, E
                 .in(CollUtil.isNotEmpty(equipmentIds), EquipmentBase::getEquipmentId, equipmentIds)
                 .like(StringUtils.isNotEmpty(pageInDTO.getDeviceName()), EquipmentBase::getEquipmentName, pageInDTO.getDeviceName())
                 .like(StringUtils.isNotEmpty(pageInDTO.getEquipmentLocation()), EquipmentBase::getEquipmentLocation, pageInDTO.getEquipmentLocation())
-                .orderByDesc(EquipmentBase::getProductionDate);
+                .orderByDesc(EquipmentBase::getUpdateTime);
         Page<EquipmentBase> rs = this.page(page, queryWrapper);
         List<EquipmentBaseOutDTO> outDTOList = BeanUtil.copyToList(rs.getRecords(), EquipmentBaseOutDTO.class);
         if (CollUtil.isNotEmpty(outDTOList)) {
@@ -318,4 +319,78 @@ public class EquipmentBaseServiceImpl extends ServiceImpl<EquipmentBaseMapper, E
         return outPage;
     }
 
+    /**
+     * 查询井盖监测设备列表
+     * @param listInDTO
+     * @return
+     */
+    @Override
+    public List<EquipmentBaseOutDTO> getManholeDataList(ManholeDeviceListInDTO listInDTO) {
+        log.info("查询井盖监测设备列表-入参:{}", listInDTO);
+        List<String> equipmentIds = null;
+        if(listInDTO.getCurrentStatus() != null || listInDTO.getAlarmStatus() != null || listInDTO.getOnlineStatus() != null){
+            List<EquipmentStatus> equipmentStatusList = equipmentStatusMapper.selectList(new LambdaQueryWrapper<EquipmentStatus>()
+                    .eq(listInDTO.getCurrentStatus() != null, EquipmentStatus::getCurrentStatus, listInDTO.getCurrentStatus())
+                    .eq(listInDTO.getAlarmStatus() != null, EquipmentStatus::getAlarmStatus, listInDTO.getAlarmStatus())
+                    .eq(listInDTO.getOnlineStatus() != null, EquipmentStatus::getOnlineStatus, listInDTO.getOnlineStatus()));
+            if(CollUtil.isEmpty(equipmentStatusList)){
+                return new ArrayList<>();
+            }
+            equipmentIds = equipmentStatusList.stream().map(EquipmentStatus::getEquipmentId).distinct().collect(Collectors.toList());
+        }
+        LambdaQueryWrapper<EquipmentBase> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(CollUtil.isNotEmpty(equipmentIds), EquipmentBase::getEquipmentId, equipmentIds)
+                .orderByDesc(EquipmentBase::getUpdateTime);
+        List<EquipmentBase> equipmentBaseList = this.list(queryWrapper);
+        if (CollUtil.isEmpty(equipmentBaseList)) {
+            return new ArrayList<>();
+        }
+        List<EquipmentBaseOutDTO> outDTOList = BeanUtil.copyToList(equipmentBaseList, EquipmentBaseOutDTO.class);
+        //查询设备类型
+        List<String> equipmentTypeIdList = outDTOList.stream().map(EquipmentBaseOutDTO::getEquipmentTypeId).distinct().collect(Collectors.toList());
+        List<EquipmentType> equipmentTypeList = equipmentTypeMapper.selectBatchIds(equipmentTypeIdList);
+        Map<String, EquipmentType> equipmentTypeMap = new HashMap<>();
+        if(CollUtil.isNotEmpty(equipmentTypeList)){
+            equipmentTypeMap.putAll(equipmentTypeList.stream().collect(Collectors.toMap(EquipmentType::getTypeId, Function.identity(), (key1, key2) -> key2)));
+        }
+        //查询设备状态
+        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(), (key1, key2) -> key2)));
+        }
+        //查询设备监测状态
+        Map<String, List<ManholeData>> imeiCardNumberMapList = new HashMap<>();
+        if(listInDTO.getIsQueryManholeData()){
+            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));
+            imeiCardNumberMapList.putAll(manholeDataList.stream().collect(Collectors.groupingBy(ManholeData::getImeiCardNumber)));
+        }
+        List<ManholeData> manholeDataList = null;
+        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 equipmentStatusOutDTO = BeanUtil.copyProperties(equipmentStatus, EquipmentStatusOutDTO.class);
+                outDTO.setEquipmentStatus(equipmentStatusOutDTO);
+            }
+            if(listInDTO.getIsQueryManholeData()){
+                manholeDataList = imeiCardNumberMapList.get(outDTO.getEquipmentCode());
+                if(CollUtil.isNotEmpty(manholeDataList)){
+                    ManholeData manholeData = manholeDataList.get(0);
+                    ManholeDataOutDTO manholeDataOutDTO = BeanUtil.copyProperties(manholeData, ManholeDataOutDTO.class);
+                    outDTO.setManholeData(manholeDataOutDTO);
+                }
+            }
+        }
+        return outDTOList;
+    }
+
 }

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

@@ -19,6 +19,12 @@ public class ManholeDeviceListInDTO implements Serializable {
     @ApiModelProperty(value = "运维状态:1-在用,2-闲置,3-维修,4-报废,5-待入库")
     private Integer currentStatus;
 
+    @ApiModelProperty(value = "报警状态(0-正常,1-报警)")
+    private Integer alarmStatus;
+
+    @ApiModelProperty(value = "在线状态(0-离线,1-在线)")
+    private Integer onlineStatus;
+
     @ApiModelProperty("是否查询井盖监测数据:默认不查询")
     private Boolean isQueryManholeData = false;
 }