From 0391e712a0b55df743fb779dbbe1764aa6f8f151 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Thu, 26 Feb 2026 17:23:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(fire-check):=20=E6=B7=BB=E5=8A=A0=E7=82=B9?= =?UTF-8?q?=E6=A3=80=E8=AE=B0=E5=BD=95=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=92=8C=E8=8F=9C=E5=8D=95=E8=B7=AF=E5=BE=84=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../check/web/FireCheckRecordController.java | 5 + .../convertor/FireCheckRecordCoConvertor.java | 2 + .../query/FireCheckRecordQueryExe.java | 115 +++++++++++++++--- .../service/FireCheckRecordServiceImpl.java | 5 + .../check/api/FireCheckRecordServiceI.java | 1 + .../mapper/FireCheckRecordMapper.java | 1 + .../FireCheckRecordDeviceRepository.java | 2 + .../FireCheckRecordHiddenRepository.java | 2 + .../repository/FireCheckRecordRepository.java | 1 + .../FireCheckRecordDeviceRepositoryImpl.java | 8 ++ .../FireCheckRecordHiddenRepositoryImpl.java | 10 ++ .../impl/FireCheckRecordRepositoryImpl.java | 7 ++ .../mapper/FireCheckRecordMapper.xml | 17 +++ 13 files changed, 161 insertions(+), 15 deletions(-) diff --git a/web-adapter/src/main/java/com/zcloud/fire/check/web/FireCheckRecordController.java b/web-adapter/src/main/java/com/zcloud/fire/check/web/FireCheckRecordController.java index 2ca4b10..8375ac4 100644 --- a/web-adapter/src/main/java/com/zcloud/fire/check/web/FireCheckRecordController.java +++ b/web-adapter/src/main/java/com/zcloud/fire/check/web/FireCheckRecordController.java @@ -69,5 +69,10 @@ public class FireCheckRecordController { public PageResponse getCheckRecordPageH5(@Validated @RequestBody FireCheckRecordPagePointQry qry) { return fireCheckRecordService.getCheckRecordPageH5(qry); } + @ApiOperation("和H5扫码点位显示检查记录)") + @PostMapping("/getCheckRecordPageH5New") + public PageResponse getCheckRecordPageH5New(@Validated @RequestBody FireCheckRecordPagePointQry qry) { + return fireCheckRecordService.getCheckRecordPageH5New(qry); + } } diff --git a/web-app/src/main/java/com/zcloud/fire/check/command/convertor/FireCheckRecordCoConvertor.java b/web-app/src/main/java/com/zcloud/fire/check/command/convertor/FireCheckRecordCoConvertor.java index 4556464..6700b5f 100644 --- a/web-app/src/main/java/com/zcloud/fire/check/command/convertor/FireCheckRecordCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/fire/check/command/convertor/FireCheckRecordCoConvertor.java @@ -2,6 +2,7 @@ package com.zcloud.fire.check.command.convertor; import com.zcloud.fire.check.dto.clientobject.FireBackCheckRecordCO; import com.zcloud.fire.check.dto.clientobject.FireCheckRecordCO; +import com.zcloud.fire.check.dto.clientobject.FireCheckRecordInfoCO; import com.zcloud.fire.check.dto.clientobject.FireCheckRecordUserCO; import com.zcloud.fire.check.persistence.dataobject.FireCheckRecordDO; import com.zcloud.fire.check.persistence.dataobject.FireCheckRecordUserDO; @@ -26,5 +27,6 @@ public interface FireCheckRecordCoConvertor { List converDOsToBackRecordCOs(List data); + List converDOsToBackRecordInfoCOs(List data); } diff --git a/web-app/src/main/java/com/zcloud/fire/check/command/query/FireCheckRecordQueryExe.java b/web-app/src/main/java/com/zcloud/fire/check/command/query/FireCheckRecordQueryExe.java index dc64fe4..5d9d9b5 100644 --- a/web-app/src/main/java/com/zcloud/fire/check/command/query/FireCheckRecordQueryExe.java +++ b/web-app/src/main/java/com/zcloud/fire/check/command/query/FireCheckRecordQueryExe.java @@ -19,9 +19,7 @@ import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -183,23 +181,110 @@ public class FireCheckRecordQueryExe { if(CollUtil.isEmpty(examCenterCOS)){ return PageResponse.of(null, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } - /* //组装点位名称 和区域名称 - List fireCheckRecordIdList = examCenterCOS.stream().map(FireCheckRecordCO::getFireRecordId).collect(Collectors.toList()); - List fireCheckRecordPointDOList =fireCheckRecordPointRepository.getCheckRecordPointListByCheckRecordIds(fireCheckRecordIdList); - //按照fireRecordId进行分组 - Map fireCheckRecordPointDOMap = fireCheckRecordPointDOList.stream() + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + + public PageResponse getCheckRecordPageH5New(FireCheckRecordPagePointQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = fireCheckRecordRepository.getCheckRecordPageH5New(params); + + List resultCOList = fireCheckRecordCoConvertor.converDOsToBackRecordInfoCOs(pageResponse.getData()); + if(CollUtil.isEmpty(resultCOList)){ + return PageResponse.of(null, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + // 提取所有记录ID用于批量查询 + List fireRecordIdList = resultCOList.stream() + .map(FireCheckRecordInfoCO::getFireRecordId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + // 批量查询其他隐患信息 + batchQueryAndSetOtherHiddenInfo(resultCOList, fireRecordIdList); + + // 批量查询设备检查信息及对应隐患 + batchQueryAndSetDeviceInfo(resultCOList, fireRecordIdList); + + return PageResponse.of(resultCOList, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + /** + * 批量查询并设置其他隐患信息 + */ + private void batchQueryAndSetOtherHiddenInfo(List resultCOList, List fireRecordIdList) { + if (CollUtil.isEmpty(fireRecordIdList)) { + return; + } + List otherHiddenList = fireCheckRecordHiddenRepository + .getChecKRecordHiddenListByRecordIdList(fireRecordIdList, HiddenCheckTypeEnum.OTHER_HIDDEN.getCode()); + + if (CollUtil.isEmpty(otherHiddenList)) { + return; + } + // 按记录ID分组其他隐患信息 + Map> otherHiddenGroupMap = otherHiddenList.stream() + .collect(Collectors.groupingBy(FireCheckRecordHiddenDO::getFireRecordId)); + // 设置每个记录的其他隐患信息 + resultCOList.forEach(recordCO -> { + List hiddenList = otherHiddenGroupMap.get(recordCO.getFireRecordId()); + if (CollUtil.isNotEmpty(hiddenList)) { + recordCO.setFireCheckRecordHiddenList(fireCheckRecordHiddenCoConvertor.converDOsToCOs(hiddenList)); + } + }); + } + + /** + * 批量查询并设置设备检查信息及对应隐患 + */ + private void batchQueryAndSetDeviceInfo(List resultCOList, List fireRecordIdList) { + if (CollUtil.isEmpty(fireRecordIdList)) { + return; + } + // 批量查询所有设备检查记录 + List deviceRecordList = fireCheckRecordDeviceRepository + .getCheckRecordDeviceListByRecordIdList(fireRecordIdList); + + if (CollUtil.isEmpty(deviceRecordList)) { + return; + } + + // 按记录ID分组设备检查信息 + Map> deviceGroupMap = deviceRecordList.stream() + .collect(Collectors.groupingBy(FireCheckRecordDeviceDO::getFireRecordId)); + + // 提取所有设备记录ID用于查询设备隐患 + List deviceIdList = deviceRecordList.stream() + .map(FireCheckRecordDeviceDO::getFireRecordDeviceId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + // 查询设备相关的隐患信息 + List deviceHiddenList = CollUtil.isNotEmpty(deviceIdList) ? + fireCheckRecordHiddenRepository.getChecKRecordDeviceList(deviceIdList) : Collections.emptyList(); + + // 按设备ID分组隐患信息 + Map deviceHiddenMap = deviceHiddenList.stream() .collect(Collectors.toMap( - FireCheckRecordPointDO::getFireRecordId, + FireCheckRecordHiddenDO::getFireRecordDeviceId, Function.identity(), - (existing, replacement) -> existing // 保留第一个值,丢弃后续重复项 + (existing, replacement) -> existing // 处理重复key的情况 )); - examCenterCOS.forEach(info -> { - info.setFirePointNameList(fireCheckRecordPointDOMap.get(info.getFireRecordId()).getFirePointName()); - info.setFireRegionNameList(fireCheckRecordPointDOMap.get(info.getFireRecordId()).getFireRegionName()); + // 为每个记录设置设备检查信息和对应隐患 + resultCOList.forEach(recordCO -> { + List deviceDOList = deviceGroupMap.get(recordCO.getFireRecordId()); + if (CollUtil.isNotEmpty(deviceDOList)) { + List deviceCOList = fireCheckRecordDeviceCoConvertor.converDOsToCOs(deviceDOList); - });*/ - return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + // 为每个设备设置对应的隐患信息 + deviceCOList.forEach(deviceCO -> { + FireCheckRecordHiddenDO hiddenDO = deviceHiddenMap.get(deviceCO.getFireRecordDeviceId()); + if (hiddenDO != null) { + deviceCO.setFireCheckRecordHiddenCO(fireCheckRecordHiddenCoConvertor.convertToCO(hiddenDO)); + } + }); + + recordCO.setFireCheckRecordDeviceList(deviceCOList); + } + }); } } diff --git a/web-app/src/main/java/com/zcloud/fire/check/service/FireCheckRecordServiceImpl.java b/web-app/src/main/java/com/zcloud/fire/check/service/FireCheckRecordServiceImpl.java index 4dbdcb1..f1a660d 100644 --- a/web-app/src/main/java/com/zcloud/fire/check/service/FireCheckRecordServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/fire/check/service/FireCheckRecordServiceImpl.java @@ -80,5 +80,10 @@ public class FireCheckRecordServiceImpl implements FireCheckRecordServiceI { public PageResponse getCheckRecordPageH5(FireCheckRecordPagePointQry qry) { return fireCheckRecordQueryExe.getCheckRecordPageH5(qry); } + + @Override + public PageResponse getCheckRecordPageH5New(FireCheckRecordPagePointQry qry) { + return fireCheckRecordQueryExe.getCheckRecordPageH5New(qry); + } } diff --git a/web-client/src/main/java/com/zcloud/fire/check/api/FireCheckRecordServiceI.java b/web-client/src/main/java/com/zcloud/fire/check/api/FireCheckRecordServiceI.java index 60ff813..7fb5b06 100644 --- a/web-client/src/main/java/com/zcloud/fire/check/api/FireCheckRecordServiceI.java +++ b/web-client/src/main/java/com/zcloud/fire/check/api/FireCheckRecordServiceI.java @@ -33,5 +33,6 @@ public interface FireCheckRecordServiceI { PageResponse getCheckRecordPageH5(FireCheckRecordPagePointQry qry); + PageResponse getCheckRecordPageH5New(FireCheckRecordPagePointQry qry); } diff --git a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/mapper/FireCheckRecordMapper.java b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/mapper/FireCheckRecordMapper.java index 6776301..d881c36 100644 --- a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/mapper/FireCheckRecordMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/mapper/FireCheckRecordMapper.java @@ -29,5 +29,6 @@ public interface FireCheckRecordMapper extends BaseMapper { FireCheckRecordDO getCheckRecordInfo(String fireRecordId); + IPage getCheckRecordPageH5New(IPage iPage, Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordDeviceRepository.java b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordDeviceRepository.java index 9d3d282..692d297 100644 --- a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordDeviceRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordDeviceRepository.java @@ -21,5 +21,7 @@ public interface FireCheckRecordDeviceRepository extends BaseRepository getCheckRecordDeviceList(String fireRecordId); void updateNormalNull(Long id); + + List getCheckRecordDeviceListByRecordIdList(List fireRecordIdList); } diff --git a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordHiddenRepository.java b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordHiddenRepository.java index 741cd7e..cc015bb 100644 --- a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordHiddenRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordHiddenRepository.java @@ -40,5 +40,7 @@ public interface FireCheckRecordHiddenRepository extends BaseRepository getHiddenList(@NotEmpty(message = "检查记录信息不能为空") String fireRecordId); List getByOtherCheckRecordId(@NotEmpty(message = "检查记录信息不能为空") String fireRecordId); + + List getChecKRecordHiddenListByRecordIdList(List fireRecordIdList, Integer hiddenCheckType); } diff --git a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordRepository.java b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordRepository.java index 180af50..9a7710a 100644 --- a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/FireCheckRecordRepository.java @@ -32,5 +32,6 @@ public interface FireCheckRecordRepository extends BaseRepository getCheckRecordPageH5New(Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordDeviceRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordDeviceRepositoryImpl.java index 12db190..33865b3 100644 --- a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordDeviceRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordDeviceRepositoryImpl.java @@ -61,5 +61,13 @@ public class FireCheckRecordDeviceRepositoryImpl extends BaseRepositoryImpl getCheckRecordDeviceListByRecordIdList(List fireRecordIdList) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("fire_record_id", fireRecordIdList); + queryWrapper.orderByDesc("create_time"); + return fireCheckRecordDeviceMapper.selectList(queryWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordHiddenRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordHiddenRepositoryImpl.java index ce08414..4960aac 100644 --- a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordHiddenRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordHiddenRepositoryImpl.java @@ -68,6 +68,16 @@ public class FireCheckRecordHiddenRepositoryImpl extends BaseRepositoryImpl getChecKRecordHiddenListByRecordIdList(List fireRecordIdList, Integer hiddenCheckType) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("fire_record_id", fireRecordIdList); + if(hiddenCheckType != null){ + queryWrapper.eq("hidden_check_type", hiddenCheckType); + } + return fireCheckRecordHiddenMapper.selectList(queryWrapper); + } + @Override public FireCheckRecordHiddenDO listByFireCheckRecordDeviceId(String fireRecordDeviceId) { QueryWrapper queryWrapper = new QueryWrapper<>(); diff --git a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordRepositoryImpl.java index eb0e114..8689f42 100644 --- a/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/fire/check/persistence/repository/impl/FireCheckRecordRepositoryImpl.java @@ -101,6 +101,13 @@ public class FireCheckRecordRepositoryImpl extends BaseRepositoryImpl getCheckRecordPageH5New(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = fireCheckRecordMapper.getCheckRecordPageH5New(iPage, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + @Override public FireCheckRecordDO getCheckRecordInfoByFireRecordId(String fireRecordId) { QueryWrapper queryWrapper = new QueryWrapper<>(); diff --git a/web-infrastructure/src/main/resources/mapper/FireCheckRecordMapper.xml b/web-infrastructure/src/main/resources/mapper/FireCheckRecordMapper.xml index f64af89..e2be95d 100644 --- a/web-infrastructure/src/main/resources/mapper/FireCheckRecordMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/FireCheckRecordMapper.xml @@ -81,6 +81,23 @@ order by cr.create_time desc + +