Selaa lähdekoodia

受压元件一览表

xzc 2 viikkoa sitten
vanhempi
commit
db4935c679

+ 3 - 3
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equipboiler/EquipBoilerController.java

@@ -128,14 +128,14 @@ public class EquipBoilerController {
             List<EquipBoilerPressurePartExportVO> exportList = new ArrayList<>();
             for (Map<Integer, String> map : rawList) {
                 EquipBoilerPressurePartExportVO vo = new EquipBoilerPressurePartExportVO();
-                vo.setPartType(map.getOrDefault(0, ""));
+//                vo.setPartType(map.getOrDefault(0, ""));
                 vo.setPartName(map.getOrDefault(1, ""));
                 vo.setSpecification(map.getOrDefault(2, ""));
                 vo.setMaterial(map.getOrDefault(3, ""));
                 vo.setRemark(map.getOrDefault(4, ""));
                 exportList.add(vo);
-                log.info("importPressureParts raw->export: partType={}, partName={}, specification={}, material={}, remark={}",
-                        vo.getPartType(), vo.getPartName(), vo.getSpecification(), vo.getMaterial(), vo.getRemark());
+                log.info("importPressureParts raw->export: partName={}, specification={}, material={}, remark={}",
+                        vo.getPartName(), vo.getSpecification(), vo.getMaterial(), vo.getRemark());
             }
             log.info("importPressureParts exportList: {}", exportList.size());
             return success(exportList);

+ 2 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equipboiler/vo/EquipBoilerPressurePartExportVO.java

@@ -10,8 +10,8 @@ import lombok.Data;
 @ExcelIgnoreUnannotated
 public class EquipBoilerPressurePartExportVO {
 
-    @ExcelProperty("部件")
-    private String partType;
+//    @ExcelProperty("部件")
+//    private String partType;
 
     @ExcelProperty("受压元件名称")
     private String partName;

+ 2 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equipboiler/vo/EquipBoilerPressurePartImportVO.java

@@ -11,8 +11,8 @@ import lombok.Data;
 @Data
 public class EquipBoilerPressurePartImportVO {
 
-    @ExcelProperty(index = 0)
-    private String partType;
+//    @ExcelProperty(index = 0)
+//    private String partType;
 
     @ExcelProperty(index = 1)
     private String partName;

+ 2 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equipboiler/vo/EquipBoilerPressurePartVO.java

@@ -18,8 +18,8 @@ public class EquipBoilerPressurePartVO {
     @Schema(description = "锅炉设备ID")
     private String boilerId;
 
-    @Schema(description = "部件(下拉选择)")
-    private String partType;
+//    @Schema(description = "部件(下拉选择)")
+//    private String partType;
 
     @Schema(description = "受压元件名称")
     private String partName;

+ 12 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/synchronization/SynchronizationController.java

@@ -33,6 +33,12 @@ public class SynchronizationController {
         synchronizationService.pipe(null, PROJECT_NO);
         return CommonResult.success(null);
     }
+
+    @GetMapping("/mainPressureList/{REGISTERNO}")
+    public CommonResult<Object> mainPressureList(@PathVariable String REGISTERNO) {
+        synchronizationService.mainPressureList(REGISTERNO);
+        return CommonResult.success(null);
+    }
     @GetMapping("/boiler")
     public CommonResult<Object> boiler() {
         synchronizationService.boiler(null, null);
@@ -45,6 +51,12 @@ public class SynchronizationController {
         return CommonResult.success(null);
     }
 
+    @GetMapping("/mainPressureList")
+    public CommonResult<Object> mainPressureList() {
+        synchronizationService.mainPressureList();
+        return CommonResult.success(null);
+    }
+
     @Resource
     private SyncTaskBoilerEquipmentJob syncTaskBoilerEquipmentJob;
 

+ 2 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/equipboilerpressurepart/EquipBoilerPressurePartDO.java

@@ -36,8 +36,8 @@ public class EquipBoilerPressurePartDO extends BaseDO {
     /**
      * 部件(下拉选择)
      */
-    @TableField("PART_TYPE")
-    private String partType;
+//    @TableField("PART_TYPE")
+//    private String partType;
 
     /**
      * 受压元件名称

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equipboiler/EquipBoilerServiceImpl.java

@@ -439,7 +439,7 @@ public class EquipBoilerServiceImpl extends ServiceImpl<EquipBoilerMapper, Equip
             List<EquipBoilerPressurePartDO> partDOs = pressureParts.stream().map(vo -> {
                 EquipBoilerPressurePartDO partDO = new EquipBoilerPressurePartDO();
                 partDO.setBoilerId(boilerId);
-                partDO.setPartType(vo.getPartType());
+//                partDO.setPartType(vo.getPartType());
                 partDO.setPartName(vo.getPartName());
                 partDO.setSpecification(vo.getSpecification());
                 partDO.setMaterial(vo.getMaterial());

+ 9 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/synchronization/SynchronizationService.java

@@ -35,4 +35,13 @@ public interface SynchronizationService {
      * 授权签字人
      */
     List<SignatureDto> authorizeSignature(String reportId, String name);
+
+    /**
+     * 同步锅炉受压元件数据
+     */
+    void mainPressureList(String REGISTERNO);
+    /**
+     * 同步锅炉受压元件数据
+     */
+    void mainPressureList();
 }

+ 118 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/synchronization/SynchronizationServiceImpl.java

@@ -8,12 +8,14 @@ import cn.hutool.http.HttpUtil;
 import cn.start.tz.framework.common.pojo.CommonResult;
 import cn.start.tz.framework.ip.core.Area;
 import cn.start.tz.framework.ip.core.utils.AreaUtils;
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.start.tz.module.pressure2.controller.admin.equippipe.vo.EquipPipeSaveReqVO;
 import cn.start.tz.module.pressure2.controller.admin.equippipedetail.vo.EquipPipeDetailSaveReqVO;
 import cn.start.tz.module.pressure2.dal.dataobject.boilerconnectrecordreport.BoilerConnectRecordReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitem.BoilerTaskOrderItemDO;
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equipboiler.EquipBoilerDO;
+import cn.start.tz.module.pressure2.dal.dataobject.equipboilerpressurepart.EquipBoilerPressurePartDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipedetail.EquipPipeDetailDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
@@ -21,6 +23,7 @@ import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemdetail.PipeT
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
 import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrderItemMapper;
 import cn.start.tz.module.pressure2.dal.mysql.equipboiler.EquipBoilerMapper;
+import cn.start.tz.module.pressure2.dal.mysql.equipboilerpressurepart.EquipBoilerPressurePartMapper;
 import cn.start.tz.module.pressure2.dal.mysql.equippipedetail.EquipPipeDetailMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
@@ -254,6 +257,119 @@ public class SynchronizationServiceImpl implements SynchronizationService {
         return pipeDetailDtoS;
     }
 
+    /**
+     * 同步锅炉受压元件数据
+     */
+    @Override
+    public void mainPressureList() {
+        log.info("同步锅炉受压元件定时任务执行中...");
+
+        // 1. 调用数据中台接口获取全部受压元件数据(不带查询参数)
+        Map<String, Object> form = new HashMap<>();
+        form.put("pageNum", 0);
+        form.put("pageSize", DEFAULT_PAGE_SIZE);
+        String result = getRequest("main_pressure_list", form);
+        ResponseDto responseDto = JSONObject.parseObject(result, ResponseDto.class);
+        log.info("同步数据中台返回受压元件数据:{}", responseDto);
+
+        if (responseDto.getTotal() <= 0 || responseDto.getData().isEmpty()) {
+            log.info("无受压元件数据需要同步");
+            return;
+        }
+
+        List<MainPressurePartDto> partList = responseDto.getData().stream()
+                .map(data -> ((JSONObject) data).toJavaObject(MainPressurePartDto.class))
+                .toList();
+
+        // 2. 按 REGISTERNO 分组,每组对应一个锅炉
+        Map<String, List<MainPressurePartDto>> groupByRegisterNo = partList.stream()
+                .collect(Collectors.groupingBy(MainPressurePartDto::getREGISTERNO));
+
+        log.info("受压元件涉及 {} 个注册号", groupByRegisterNo.size());
+
+        // 3. 遍历每个注册号,找到对应锅炉,保存受压元件
+        for (Map.Entry<String, List<MainPressurePartDto>> entry : groupByRegisterNo.entrySet()) {
+            String registerNo = entry.getKey();
+            List<MainPressurePartDto> parts = entry.getValue();
+
+            List<EquipBoilerDO> boilerList = equipBoilerMapper.selectList(
+                    new LambdaQueryWrapperX<EquipBoilerDO>()
+                            .eq(EquipBoilerDO::getEquipCode, registerNo));
+            if (boilerList.isEmpty()) {
+                log.warn("未找到注册号为 {} 的锅炉设备,跳过 {} 条受压元件", registerNo, parts.size());
+                continue;
+            }
+            String boilerId = boilerList.get(0).getId();
+
+            // 先删后增
+            equipBoilerPressurePartMapper.delete(
+                    new LambdaQueryWrapperX<EquipBoilerPressurePartDO>()
+                            .eq(EquipBoilerPressurePartDO::getBoilerId, boilerId));
+
+            List<EquipBoilerPressurePartDO> saveList = parts.stream().map(dto -> {
+                EquipBoilerPressurePartDO partDO = new EquipBoilerPressurePartDO();
+                partDO.setBoilerId(boilerId);
+                partDO.setPartName(dto.getPART_NAME());
+                partDO.setSpecification(dto.getSPECIFICATION());
+                partDO.setMaterial(dto.getMATERIAL());
+                partDO.setRemark(dto.getREMARK());
+                return partDO;
+            }).collect(Collectors.toList());
+
+            equipBoilerPressurePartMapper.insertBatch(saveList);
+            log.info("注册号 {} 同步受压元件完成,共 {} 条", registerNo, saveList.size());
+        }
+    }
+    /**
+     * 同步锅炉受压元件数据
+     */
+    @Override
+    public void mainPressureList(String REGISTERNO) {
+        log.info("同步锅炉受压元件定时任务执行中...");
+
+        // 1. 根据 REGISTERNO 找到 EquipBoilerDO,获取 id
+        List<EquipBoilerDO> boilerList = equipBoilerMapper.selectList(
+                new LambdaQueryWrapperX<EquipBoilerDO>()
+                        .eq(EquipBoilerDO::getEquipCode, REGISTERNO));
+        if (boilerList.isEmpty()) {
+            log.warn("未找到注册号为 {} 的锅炉设备", REGISTERNO);
+            return;
+        }
+        String boilerId = boilerList.get(0).getId();
+        log.info("找到锅炉设备,id={}", boilerId);
+
+        // 2. 调用数据中台接口获取受压元件数据
+        Map<String, Object> form = new HashMap<>();
+        form.put("REGISTERNO", REGISTERNO);
+        String result = getRequest("main_pressure_list", form);
+        ResponseDto responseDto = JSONObject.parseObject(result, ResponseDto.class);
+        log.info("同步数据中台返回受压元件数据:{}", responseDto);
+
+        if (responseDto.getTotal() > 0 && !responseDto.getData().isEmpty()) {
+            List<MainPressurePartDto> partList = responseDto.getData().stream()
+                    .map(data -> ((JSONObject) data).toJavaObject(MainPressurePartDto.class))
+                    .toList();
+
+            // 3. 删除旧的受压元件记录,再插入新的
+            equipBoilerPressurePartMapper.delete(
+                    new LambdaQueryWrapperX<EquipBoilerPressurePartDO>()
+                            .eq(EquipBoilerPressurePartDO::getBoilerId, boilerId));
+
+            List<EquipBoilerPressurePartDO> saveList = partList.stream().map(dto -> {
+                EquipBoilerPressurePartDO partDO = new EquipBoilerPressurePartDO();
+                partDO.setBoilerId(boilerId);
+                partDO.setPartName(dto.getPART_NAME());
+                partDO.setSpecification(dto.getSPECIFICATION());
+                partDO.setMaterial(dto.getMATERIAL());
+                partDO.setRemark(dto.getREMARK());
+                return partDO;
+            }).collect(Collectors.toList());
+
+            equipBoilerPressurePartMapper.insertBatch(saveList);
+            log.info("同步锅炉受压元件完成,共 {} 条", saveList.size());
+        }
+    }
+
     @Override
     public boolean uploadCheckData(CheckDto checkDto) {
         log.info("上传约检数据中...");
@@ -309,6 +425,8 @@ public class SynchronizationServiceImpl implements SynchronizationService {
     private PipeTaskOrderItemDetailMapper pipeTaskOrderItemDetailMapper;
     @Resource
     private BoilerConnectRecordReportService boilerConnectRecordReportService;
+    @Resource
+    private EquipBoilerPressurePartMapper equipBoilerPressurePartMapper;
 
     @Value("${external.oa.rest.enableProd}")
     private boolean enablProd;