Explorar el Código

校核功能优化:电站锅炉内检部件名称前缀显示

xzc hace 3 días
padre
commit
885280ee75

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/vo/BoilerOrderItemPageRespVO.java

@@ -198,6 +198,9 @@ public class BoilerOrderItemPageRespVO {
 
     private String reportId;
 
+    @Schema(description = "部件名称(电站锅炉内检有部件时,对应报告所属部件名)")
+    private String partName;
+
     /**
      * 报告类型(100 主报告 200 子报告 300 独审 400 意见通知书)
      */

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorderitemrecheck/vo/BoilerTaskOrderItemRecheckRespVO.java

@@ -29,6 +29,9 @@ public class BoilerTaskOrderItemRecheckRespVO {
     @Schema(description = "报告名称", example = "测厚")
     private String reportName;
 
+    @Schema(description = "部件名称(电站锅炉内检有部件时,对应报告所属部件名)")
+    private String partName;
+
     @Schema(description = "图片")
     private String image;
     @Schema(description = "视频")

+ 51 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java

@@ -3942,6 +3942,34 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
         Map<String, List<BoilerTaskOrderItemRecheckRespVO>> recheckList = taskOrderItemRecheckDOS.stream()
                 .collect(Collectors.groupingBy(BoilerTaskOrderItemRecheckRespVO::getMainReportId));
 
+        // 查询 reportId -> 部件名 映射(电站锅炉内检有部件的报告,用于检验项目名前加"部件名-")
+        Set<String> allReportIds = new HashSet<>(reportIds);
+        taskOrderItemRecheckDOS.forEach(r -> {
+            if (r.getReportId() != null) {
+                allReportIds.add(r.getReportId());
+            }
+        });
+        Map<String, String> reportIdToPartName = new HashMap<>();
+        if (!allReportIds.isEmpty()) {
+            List<BoilerTaskOrderItemReportDO> partReportList = taskOrderItemReportMapper.selectList(
+                    BoilerTaskOrderItemReportDO::getId, allReportIds);
+            List<String> partIds = partReportList.stream()
+                    .map(BoilerTaskOrderItemReportDO::getItemPartId)
+                    .filter(Objects::nonNull)
+                    .distinct()
+                    .toList();
+            Map<String, String> partIdToName = new HashMap<>();
+            if (!partIds.isEmpty()) {
+                partIdToName = boilerTaskOrderItemPartMapper.selectByIds(partIds).stream()
+                        .collect(Collectors.toMap(BoilerTaskOrderItemPartDO::getId, BoilerTaskOrderItemPartDO::getPartName, (a, b) -> a));
+            }
+            Map<String, String> finalPartIdToName = partIdToName;
+            reportIdToPartName.putAll(partReportList.stream()
+                    .filter(r -> r.getItemPartId() != null)
+                    .collect(Collectors.toMap(BoilerTaskOrderItemReportDO::getId,
+                            r -> finalPartIdToName.getOrDefault(r.getItemPartId(), ""), (a, b) -> a)));
+        }
+
         pageResult.getList().forEach(item -> {
             if (item.getEquipStreet() != null) {
                 item.setEquipStreetName(AreaUtils.getArea(item.getEquipStreet()).getName());
@@ -3963,6 +3991,13 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 
             item.setRecheckList(recheckList.get(item.getReportId()));
 
+            // 设置部件名(电站锅炉内检有部件的报告,检验项目名前加"部件名-")
+            item.setPartName(reportIdToPartName.get(item.getReportId()));
+            List<BoilerTaskOrderItemRecheckRespVO> itemRecheckList = item.getRecheckList();
+            if (itemRecheckList != null) {
+                itemRecheckList.forEach(r -> r.setPartName(reportIdToPartName.get(r.getReportId())));
+            }
+
         });
         return pageResult;
 
@@ -3998,6 +4033,18 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
         String recheckUserId = getLoginUserId().toString();
         List<BoilerTaskOrderItemReportDO> reports = taskOrderItemReportMapper
                 .selectListByOrderItemIdAndRecheckId(orderItemId, recheckUserId);
+        // 批量查询部件名(电站锅炉内检有部件的报告,用于检验项目名前加"部件名-")
+        Map<String, String> partIdToName = new HashMap<>();
+        List<String> partIds = reports.stream()
+                .map(BoilerTaskOrderItemReportDO::getItemPartId)
+                .filter(Objects::nonNull)
+                .distinct()
+                .toList();
+        if (!partIds.isEmpty()) {
+            partIdToName = boilerTaskOrderItemPartMapper.selectByIds(partIds).stream()
+                    .collect(Collectors.toMap(BoilerTaskOrderItemPartDO::getId, BoilerTaskOrderItemPartDO::getPartName, (a, b) -> a));
+        }
+        Map<String, String> finalPartIdToName = partIdToName;
         return reports.stream().map(r -> {
             BoilerTaskOrderItemRecheckRespVO vo = new BoilerTaskOrderItemRecheckRespVO();
             vo.setReportId(r.getId());
@@ -4005,6 +4052,10 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             vo.setImage(r.getImage());
             vo.setVideo(r.getVideo());
             vo.setAttachment(r.getAttachment());
+            // 设置部件名
+            if (r.getItemPartId() != null) {
+                vo.setPartName(finalPartIdToName.getOrDefault(r.getItemPartId(), ""));
+            }
             return vo;
         }).collect(Collectors.toList());
     }