Pārlūkot izejas kodu

管道报表调整

xy 1 dienu atpakaļ
vecāks
revīzija
5b7ff58428

+ 101 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/EHSQGR018_202400RecordOFData.java

@@ -0,0 +1,101 @@
+package cn.start.tz.module.pressure2.service.dynamicOFData.comm;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskordersecuritycheck.BoilerTaskOrderSecurityCheckDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskordersignfile.BoilerTaskOrderSignFileDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderuser.BoilerTaskOrderUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskordersecuritycheck.PipeTaskOrderSecurityCheckDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorder.BoilerTaskOrderMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrderItemMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreport.BoilerTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskordersecuritycheck.TaskOrderSecurityCheckMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderuser.BoilerTaskOrderUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.equipboiler.EquipBoilerMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskordersecuritycheck.PipeTaskOrderSecurityCheckMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
+import cn.start.tz.module.pressure2.service.boilertaskordersignfile.BoilerTaskOrderSignFileService;
+import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
+import cn.start.tz.module.system.api.dict.DictDataApi;
+import cn.start.tz.module.system.api.user.AdminUserApi;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import jakarta.annotation.Resource;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 有限空间风险识别和采样分析表
+ * */
+@Service("EHSQGR018_202400RecordOFData")
+public class EHSQGR018_202400RecordOFData implements IDynamicOFData {
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private BoilerTaskOrderItemReportMapper boilerTaskOrderItemReportMapper;
+
+    @Resource
+    private DictDataApi dictDataApi;
+
+    @Override
+    public JSONObject getOFData(JSONObject params) {
+        return null;
+    }
+
+    @Override
+    public JSONObject getOfDataByVO(CreateInstantiateWithRuleVO ruleVO) {
+
+        //日期格式
+        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
+
+        //设备报表ID
+        String refId = ruleVO.getRefId();
+        //主设备类型
+        String equipMainTpe = ruleVO.getParams().getString("equipMainType");
+
+        JSONObject result = new JSONObject();
+
+        if (equipMainTpe.equals("boiler")){
+
+            BoilerTaskOrderItemReportDO itemReportDO = boilerTaskOrderItemReportMapper.selectById(refId);
+            if (itemReportDO != null) {
+                result.put("EHSUser", itemReportDO.getSignUrl());
+                if (itemReportDO.getSignTime() != null){
+                    result.put("EHSDate", itemReportDO.getSignTime().format(dateFormat));
+                }
+            }
+
+        }else if (equipMainTpe.equals("pipe")){
+
+            PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+            if (itemReportDO != null) {
+                result.put("EHSUser", itemReportDO.getSignUrl());
+                if (itemReportDO.getSignTime() != null){
+                    result.put("EHSDate", itemReportDO.getSignTime().format(dateFormat));
+                }
+            }
+
+        }
+
+        return result;
+
+    }
+}

+ 115 - 14
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12016_202401ReportOFData.java

@@ -1,6 +1,7 @@
 package cn.start.tz.module.pressure2.service.dynamicOFData.pipe;
 
 import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipedetail.EquipPipeDetailDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
@@ -8,16 +9,23 @@ import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderinput.PipeTaskOr
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemdetail.PipeTaskOrderItemDetailDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
 import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
 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;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemdetail.PipeTaskOrderItemDetailMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.GenerateReportJsonService;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.InspectorInfoPipeUtil;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.JsonConvertUtil;
 import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
 import cn.start.tz.module.pressure2.service.dynamictbval.DynamicTbValService;
 import cn.start.tz.module.pressure2.service.pipetaskorderinput.PipeTaskOrderInputService;
 import cn.start.tz.module.system.api.dict.DictDataApi;
@@ -31,6 +39,8 @@ import org.springframework.stereotype.Service;
 
 import java.time.format.DateTimeFormatter;
 import java.util.List;
+import java.util.Objects;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -60,12 +70,21 @@ public class QC12016_202401ReportOFData implements IDynamicOFData {
     @Resource
     private PipeTaskOrderInputService pipeTaskOrderInputService;
 
+    @Resource
+    private PipeTaskOrderUserMapper pipeTaskOrderUserMapper;
+
     @Resource
     private DynamicTbValService dynamicTbValService;
 
     @Resource
     private DynamicTbColService dynamicTbColService;
 
+    @Resource
+    private DynamicTbInsService dynamicTbInsService;
+
+    @Resource
+    private PipeTaskOrderItemReportUserMapper pipeTaskOrderItemReportUserMapper;
+
     @Resource
     private GenerateReportJsonService generateReportJsonService;
 
@@ -106,12 +125,65 @@ public class QC12016_202401ReportOFData implements IDynamicOFData {
             if (!itemDOList.isEmpty()){
                 //设备信息
 
-                List<EquipPipeDO> equipPipeDOList = equipPipeMapper.selectList(new LambdaQueryWrapper<EquipPipeDO>().in(EquipPipeDO::getId, itemDOList.stream().map(PipeTaskOrderItemDO::getEquipId).toList()));
-                if (!equipPipeDOList.isEmpty()){
-                    EquipPipeDO equipPipeDO = equipPipeDOList.get(0);
-                    DictDataRespDTO dictDataRespDTO = dictDataApi.getDictData("PIPE_TYPE",equipPipeDO.getPipeCategory()).getData();
-                    if (dictDataRespDTO != null){
-                        result.put("pipeCategory", dictDataRespDTO.getLabel());
+                EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+
+                if (equipPipeDO != null) {
+
+                    result.put("unitCode", equipPipeDO.getUnitCode());
+                    result.put("unitName", equipPipeDO.getUnitName());
+                    result.put("unitAddress", equipPipeDO.getUnitAddress());
+                    result.put("postalCode", equipPipeDO.getPostalCode());
+                    result.put("certificateNo", equipPipeDO.getCertificateNo());
+                    result.put("pipeUsePlace", equipPipeDO.getPipeAddress());
+
+                    List<EquipPipeDO> equipPipeDOList = equipPipeMapper.selectList(new LambdaQueryWrapper<EquipPipeDO>().in(EquipPipeDO::getId, itemDOList.stream().map(PipeTaskOrderItemDO::getEquipId).toList()));
+                    if (!equipPipeDOList.isEmpty()){
+                        DictDataRespDTO dictDataRespDTO = dictDataApi.getDictData("PIPE_TYPE",equipPipeDO.getPipeCategory()).getData();
+                        if (dictDataRespDTO != null){
+                            result.put("pipeCategory", dictDataRespDTO.getLabel());
+                        }
+                    }
+
+                }
+
+                List<PipeTaskOrderItemDetailDO> allDetailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
+                if (!allDetailDOS.isEmpty()){
+                    List<EquipPipeDetailDO> equipPipeDetailDOList = equipPipeDetailMapper.selectList(new LambdaQueryWrapper<EquipPipeDetailDO>().in(EquipPipeDetailDO::getId, allDetailDOS.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList()));
+                    double sum = equipPipeDetailDOList.stream().mapToDouble(equipPipeDetailDO -> equipPipeDetailDO.getPipeLength() != null ? equipPipeDetailDO.getPipeLength().doubleValue() : 0.0).sum();
+                    result.put("pipeLengthTotal", JsonConvertUtil.formatNumber(sum));
+                }
+                //获取约检管线
+                if (!allDetailDOS.isEmpty()){
+
+                    List<EquipPipeDetailDO> equipPipeDetailDOList = equipPipeDetailMapper.selectList(new LambdaQueryWrapper<EquipPipeDetailDO>()
+                            .in(EquipPipeDetailDO::getId, allDetailDOS.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList()));
+                    if (equipPipeDetailDOList.size() > 1){
+                        result.put("pipeName","见一览表" );
+                    }else if (equipPipeDetailDOList.size() == 1){
+                        result.put("pipeName", equipPipeDetailDOList.get(0).getPipeName());
+                    }
+
+                    if (!equipPipeDetailDOList.isEmpty()) {
+                        // 判断pipeLevel是否相同
+                        String pipeLevelValue;
+                        Set<String> pipeLevels = equipPipeDetailDOList.stream()
+                                .map(EquipPipeDetailDO::getPipeLevel)
+                                .filter(Objects::nonNull)
+                                .collect(Collectors.toSet());
+                        // 如果只有一个唯一的pipeLevel值,则使用该值;否则设置为"见一览表"
+                        pipeLevelValue = pipeLevels.size() == 1 ? pipeLevels.iterator().next() : "见一览表";
+                        result.put("pipeLevel", pipeLevelValue);
+                    }
+
+                }
+
+                if (itemDOList.size() > 1){
+                    result.put("projectNo", "见一览表");
+                    result.put("projectName", "见一览表");
+                }else {
+                    if (equipPipeDO != null){
+                        result.put("projectNo", equipPipeDO.getProjectNo());
+                        result.put("projectName", equipPipeDO.getProjectName());
                     }
                 }
 
@@ -120,22 +192,51 @@ public class QC12016_202401ReportOFData implements IDynamicOFData {
             String orderId = itemReportDO.getOrderId();
             PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(orderId);
             if (taskOrderDO != null){
+
                 String checkDateStr = taskOrderDO.getCheckDate().format(dateFormat);
                 PipeTaskOrderInputDO orderInputDO = pipeTaskOrderInputService.lambdaQuery().eq(PipeTaskOrderInputDO::getOrderId, orderId).one();
-                if (orderInputDO != null && orderInputDO.getEndCheckDate() != null){
-                    checkDateStr += " 至 " + orderInputDO.getEndCheckDate().format(dateFormat);
-                }
-                result.put("checkDateEnd",checkDateStr);
-                if (taskOrderDO.getCheckDate() != null) {
-                    result.put("checkDate1", taskOrderDO.getCheckDate().format(dateFormat));
+                if (orderInputDO != null){
+                    if (orderInputDO.getEndCheckDate() != null){
+                        checkDateStr += " 至 " + orderInputDO.getEndCheckDate().format(dateFormat);
+                    }
+                    result.put("checkDateEnd",checkDateStr);
+                    if (taskOrderDO.getCheckDate() != null) {
+                        result.put("checkDate1", taskOrderDO.getCheckDate().format(dateFormat));
+                    }
+                    if (orderInputDO.getEndCheckDate() != null) {
+                        result.put("checkDate2", orderInputDO.getEndCheckDate().format(dateFormat));
+                    }
                 }
-                if (orderInputDO.getEndCheckDate() != null) {
-                    result.put("checkDate2", orderInputDO.getEndCheckDate().format(dateFormat));
+
+                if (taskOrderDO.getManagerId() != null){
+                    //检验员信息
+                    List<PipeTaskOrderUserDO> checkUserList = pipeTaskOrderUserMapper.selectList(PipeTaskOrderUserDO::getOrderId,itemReportDO.getOrderId());
+                    InspectorInfoPipeUtil.fillInspectorSignatures(result, checkUserList, taskOrderDO.getManagerId(), adminUserApi);
                 }
+
             }
 
+            result.put("reportNo", itemReportDO.getReportNo());
             result.put("qrCode",itemReportDO.getQrCodeUrl());
 
+            //第一次生成记录由上次记录生成
+            DynamicTbInsDO firstInsDO = dynamicTbInsService.getDynamicRefId(refId);
+            if (firstInsDO == null) {
+                if (taskOrderDO != null) {
+                    result.put("checkDate", taskOrderDO.getCheckDate().format(dateFormat));
+                } else {
+                    result.put("checkDate", "-");
+                }
+            }
+
+            List<PipeTaskOrderItemReportUserDO> itemReportUserDOS = pipeTaskOrderItemReportUserMapper.selectList(PipeTaskOrderItemReportUserDO::getReportId, refId);
+            if (!itemReportUserDOS.isEmpty()) {
+                AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportUserDOS.get(0).getUserId()).getData();
+                if (userInfo != null) {
+                    result.put("checkName", userInfo.getSignUrl());
+                }
+            }
+
         }
 
         return result;

+ 123 - 5
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12024_202403ReportOFData.java

@@ -1,21 +1,31 @@
 package cn.start.tz.module.pressure2.service.dynamicOFData.pipe;
 
 import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
+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.pipetaskorderinput.PipeTaskOrderInputDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemdetail.PipeTaskOrderItemDetailDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
 import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
 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;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemdetail.PipeTaskOrderItemDetailMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.GenerateReportJsonService;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.InspectorInfoPipeUtil;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.JsonConvertUtil;
 import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
 import cn.start.tz.module.pressure2.service.dynamictbval.DynamicTbValService;
 import cn.start.tz.module.pressure2.service.pipetaskorderinput.PipeTaskOrderInputService;
 import cn.start.tz.module.system.api.dict.DictDataApi;
@@ -30,6 +40,9 @@ import org.springframework.stereotype.Service;
 
 import java.time.format.DateTimeFormatter;
 import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * 压力管道定期检验结论报告
@@ -76,6 +89,15 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
     @Resource
     private AutoDataPipeService autoDataPipeService;
 
+    @Resource
+    private PipeTaskOrderUserMapper pipeTaskOrderUserMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportUserMapper pipeTaskOrderItemReportUserMapper;
+
+    @Resource
+    private DynamicTbInsService dynamicTbInsService;
+
     @Override
     public JSONObject getOFData(JSONObject params) {
         return null;
@@ -102,11 +124,70 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
             List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                     .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
             if (!itemDOList.isEmpty()) {
+
                 //设备信息
-                if (itemDOList.size() > 1) {
 
+                EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                if (equipPipeDO != null) {
+                    result.put("unitCode", equipPipeDO.getUnitCode());
+                    result.put("unitName", equipPipeDO.getUnitName());
+                    result.put("unitAddress", equipPipeDO.getUnitAddress());
+                    result.put("postalCode", equipPipeDO.getPostalCode());
+                    result.put("certificateNo", equipPipeDO.getCertificateNo());
+                    result.put("pipeUsePlace", equipPipeDO.getPipeAddress());
+                }
+
+                //获取约检管线
+                List<PipeTaskOrderItemDetailDO> allDetailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
+                if (!allDetailDOS.isEmpty()){
+                    List<EquipPipeDetailDO> equipPipeDetailDOList = equipPipeDetailMapper.selectList(new LambdaQueryWrapper<EquipPipeDetailDO>().in(EquipPipeDetailDO::getId, allDetailDOS.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList()));
+                    double sum = equipPipeDetailDOList.stream().mapToDouble(equipPipeDetailDO -> equipPipeDetailDO.getPipeLength() != null ? equipPipeDetailDO.getPipeLength().doubleValue() : 0.0).sum();
+                    double sum1 = equipPipeDetailDOList.stream().mapToDouble(equipPipeDetailDO -> equipPipeDetailDO.getUndergroundLength() != null ? equipPipeDetailDO.getUndergroundLength().doubleValue() : 0.0).sum();
+                    result.put("pipeLengthTotal", JsonConvertUtil.formatNumber(sum));
+                    result.put("undergroundLength", JsonConvertUtil.formatNumber(sum1));
+                }
+
+                if (!allDetailDOS.isEmpty()){
+
+                    List<EquipPipeDetailDO> equipPipeDetailDOList = equipPipeDetailMapper.selectList(new LambdaQueryWrapper<EquipPipeDetailDO>()
+                            .in(EquipPipeDetailDO::getId, allDetailDOS.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList()));
+                    if (equipPipeDetailDOList.size() > 1){
+                        result.put("designLifeYears", "-");
+                    }else if (equipPipeDetailDOList.size() == 1){
+                        result.put("designLifeYears", equipPipeDetailDOList.get(0).getDesignLifeYears());
+                    }
+
+                    if (!equipPipeDetailDOList.isEmpty()) {
+                        // 判断pipeName是否相同
+                        String pipeNameValue;
+                        Set<String> pipeNames = equipPipeDetailDOList.stream()
+                                .map(EquipPipeDetailDO::getPipeName)
+                                .filter(Objects::nonNull)
+                                .collect(Collectors.toSet());
+                        // 如果只有一个唯一的pipeName值,则使用该值;否则设置为"见一览表"
+                        pipeNameValue = pipeNames.size() == 1 ? pipeNames.iterator().next() : "见一览表";
+                        result.put("pipeName", pipeNameValue);
+                    }
+
+                    if (!equipPipeDetailDOList.isEmpty()) {
+                        // 判断pipeLevel是否相同
+                        String pipeLevelValue;
+                        Set<String> pipeLevels = equipPipeDetailDOList.stream()
+                                .map(EquipPipeDetailDO::getPipeLevel)
+                                .filter(Objects::nonNull)
+                                .collect(Collectors.toSet());
+                        // 如果只有一个唯一的pipeLevel值,则使用该值;否则设置为"见一览表"
+                        pipeLevelValue = pipeLevels.size() == 1 ? pipeLevels.iterator().next() : "见一览表";
+                        result.put("pipeLevel", pipeLevelValue);
+                    }
+
+                }
+
+                if (itemDOList.size() > 1) {
+                    result.put("projectNo", "见一览表");
+                    result.put("projectName", "见一览表");
+                    result.put("layingMode", "-");
                 } else {
-                    EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
                     if (equipPipeDO != null) {
 
                         DictDataRespDTO dictDataRespDTO = dictDataApi.getDictData("PIPE_TYPE", equipPipeDO.getPipeCategory()).getData();
@@ -114,6 +195,10 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
                             result.put("pipeCategory", dictDataRespDTO.getLabel());
                         }
 
+                        result.put("projectNo", equipPipeDO.getProjectNo());
+                        result.put("projectName", equipPipeDO.getProjectName());
+                        result.put("layingMode", equipPipeDO.getLayingMode());
+
                     }
                 }
             }
@@ -137,9 +222,14 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
             if (taskOrderDO != null) {
                 String checkDateStr = taskOrderDO.getCheckDate().format(dateFormat);
                 PipeTaskOrderInputDO orderInputDO = pipeTaskOrderInputService.lambdaQuery().eq(PipeTaskOrderInputDO::getOrderId, orderId).one();
-                if (orderInputDO != null && orderInputDO.getEndCheckDate() != null) {
-                    checkDateStr += " 至 " + orderInputDO.getEndCheckDate().format(dateFormat);
-                    result.put("checkDate2", orderInputDO.getEndCheckDate().format(dateFormat));
+                if (orderInputDO != null) {
+                    if (orderInputDO.getEndCheckDate() != null){
+                        checkDateStr += " 至 " + orderInputDO.getEndCheckDate().format(dateFormat);
+                        result.put("checkDate2", orderInputDO.getEndCheckDate().format(dateFormat));
+                    }
+                }
+                if (taskOrderDO.getCheckDate() != null) {
+                    result.put("checkDate1", taskOrderDO.getCheckDate().format(dateFormat));
                 }
                 result.put("checkDateEnd", checkDateStr);
 
@@ -155,6 +245,34 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
 
             //二维码
             result.put("qrCode", itemReportDO.getQrCodeUrl());
+            result.put("reportNo", itemReportDO.getReportNo());
+
+            //第一次生成记录由上次记录生成
+            DynamicTbInsDO firstInsDO = dynamicTbInsService.getDynamicRefId(refId);
+            if (firstInsDO == null) {
+                if (taskOrderDO != null) {
+                    result.put("checkDate", taskOrderDO.getCheckDate().format(dateFormat));
+                } else {
+                    result.put("checkDate", "-");
+                }
+            }
+
+            List<PipeTaskOrderItemReportUserDO> itemReportUserDOS = pipeTaskOrderItemReportUserMapper.selectList(PipeTaskOrderItemReportUserDO::getReportId, refId);
+            if (!itemReportUserDOS.isEmpty()) {
+                AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportUserDOS.get(0).getUserId()).getData();
+                if (userInfo != null) {
+                    result.put("checkName", userInfo.getSignUrl());
+                }
+            }
+
+            //检验员
+            if (taskOrderDO!= null && taskOrderDO.getManagerId() != null){
+
+                //检验员信息
+                List<PipeTaskOrderUserDO> checkUserList = pipeTaskOrderUserMapper.selectList(PipeTaskOrderUserDO::getOrderId,itemReportDO.getOrderId());
+                InspectorInfoPipeUtil.fillInspectorSignatures(result, checkUserList, taskOrderDO.getManagerId(), adminUserApi);
+
+            }
 
         }
 

+ 52 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12069_202400ReportOFData.java

@@ -0,0 +1,52 @@
+package cn.start.tz.module.pressure2.service.dynamicOFData.pipe;
+
+import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.GenerateReportJsonService;
+import com.alibaba.fastjson2.JSONObject;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+/**
+ * 应力校核报告
+ * */
+@Service("QC12069_202400ReportOFData")
+public class QC12069_202400ReportOFData implements IDynamicOFData {
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private AutoDataPipeService autoDataPipeService;
+
+    @Resource
+    private GenerateReportJsonService generateReportJsonService;
+
+    @Override
+    public JSONObject getOFData(JSONObject params) {
+        return null;
+    }
+
+    @Override
+    public JSONObject getOfDataByVO(CreateInstantiateWithRuleVO ruleVO) {
+
+        //设备报表ID
+        String refId = ruleVO.getRefId();
+
+        JSONObject result = new JSONObject();
+        PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+
+        if (itemReportDO != null){
+
+            //根据记录字段动态生成报告字段
+            result = generateReportJsonService.generateReportFromRecord(ruleVO.getReportType(),ruleVO.getTemplateId(),refId);
+            result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+
+        }
+
+        return result;
+    }
+}

+ 48 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12099_202401ReportOFData.java

@@ -1,21 +1,30 @@
 package cn.start.tz.module.pressure2.service.dynamicOFData.pipe;
 
 import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserDO;
 import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.GenerateReportJsonService;
 import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
 import cn.start.tz.module.pressure2.service.dynamictbval.DynamicTbValService;
 import cn.start.tz.module.system.api.user.AdminUserApi;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
 import com.alibaba.fastjson2.JSONObject;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
 
 import java.time.format.DateTimeFormatter;
+import java.util.List;
 
 /**
  * 压力管道定期检验结论报告附页
@@ -32,6 +41,21 @@ public class QC12099_202401ReportOFData implements IDynamicOFData {
     @Resource
     private AutoDataPipeService autoDataPipeService;
 
+    @Resource
+    private PipeTaskOrderUserMapper pipeTaskOrderUserMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportUserMapper pipeTaskOrderItemReportUserMapper;
+
+    @Resource
+    private DynamicTbInsService dynamicTbInsService;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
     @Override
     public JSONObject getOFData(JSONObject params) {
         return null;
@@ -43,6 +67,9 @@ public class QC12099_202401ReportOFData implements IDynamicOFData {
         //设备报表ID
         String refId = ruleVO.getRefId();
 
+        //日期格式
+        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
+
         JSONObject result = new JSONObject();
         PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
 
@@ -52,6 +79,27 @@ public class QC12099_202401ReportOFData implements IDynamicOFData {
             result = generateReportJsonService.generateReportFromRecord(ruleVO.getReportType(),ruleVO.getTemplateId(),refId);
             result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
 
+            result.put("reportNo", itemReportDO.getReportNo());
+
+            PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(itemReportDO.getOrderId());
+            //第一次生成记录由上次记录生成
+            DynamicTbInsDO firstInsDO = dynamicTbInsService.getDynamicRefId(refId);
+            if (firstInsDO == null) {
+                if (taskOrderDO != null) {
+                    result.put("checkDate", taskOrderDO.getCheckDate().format(dateFormat));
+                } else {
+                    result.put("checkDate", "-");
+                }
+            }
+
+            List<PipeTaskOrderItemReportUserDO> itemReportUserDOS = pipeTaskOrderItemReportUserMapper.selectList(PipeTaskOrderItemReportUserDO::getReportId, refId);
+            if (!itemReportUserDOS.isEmpty()) {
+                AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportUserDOS.get(0).getUserId()).getData();
+                if (userInfo != null) {
+                    result.put("checkName", userInfo.getSignUrl());
+                }
+            }
+
         }
 
         return result;

+ 44 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12101_202401ReportOFData.java

@@ -1,21 +1,29 @@
 package cn.start.tz.module.pressure2.service.dynamicOFData.pipe;
 
 import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserDO;
 import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserMapper;
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.GenerateReportJsonService;
 import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
 import cn.start.tz.module.pressure2.service.dynamictbval.DynamicTbValService;
 import cn.start.tz.module.system.api.user.AdminUserApi;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
 import com.alibaba.fastjson2.JSONObject;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
 
 import java.time.format.DateTimeFormatter;
+import java.util.List;
 
 /**
  * 压力管道年度检查结论报告附页
@@ -38,6 +46,18 @@ public class QC12101_202401ReportOFData implements IDynamicOFData {
     @Resource
     private AutoDataPipeService autoDataPipeService;
 
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private DynamicTbInsService dynamicTbInsService;
+
+    @Resource
+    private PipeTaskOrderItemReportUserMapper pipeTaskOrderItemReportUserMapper;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
     @Override
     public JSONObject getOFData(JSONObject params) {
         return null;
@@ -49,6 +69,9 @@ public class QC12101_202401ReportOFData implements IDynamicOFData {
         //设备报表ID
         String refId = ruleVO.getRefId();
 
+        //日期格式
+        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
+
         JSONObject result = new JSONObject();
         PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
 
@@ -58,6 +81,27 @@ public class QC12101_202401ReportOFData implements IDynamicOFData {
             result = generateReportJsonService.generateReportFromRecord(ruleVO.getReportType(),ruleVO.getTemplateId(),refId);
             result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
 
+            result.put("reportNo", itemReportDO.getReportNo());
+
+            PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(itemReportDO.getOrderId());
+            //第一次生成记录由上次记录生成
+            DynamicTbInsDO firstInsDO = dynamicTbInsService.getDynamicRefId(refId);
+            if (firstInsDO == null) {
+                if (taskOrderDO != null) {
+                    result.put("checkDate", taskOrderDO.getCheckDate().format(dateFormat));
+                } else {
+                    result.put("checkDate", "-");
+                }
+            }
+
+            List<PipeTaskOrderItemReportUserDO> itemReportUserDOS = pipeTaskOrderItemReportUserMapper.selectList(PipeTaskOrderItemReportUserDO::getReportId, refId);
+            if (!itemReportUserDOS.isEmpty()) {
+                AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportUserDOS.get(0).getUserId()).getData();
+                if (userInfo != null) {
+                    result.put("checkName", userInfo.getSignUrl());
+                }
+            }
+
         }
 
         return result;

+ 148 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12162_202400RecordOFData.java

@@ -0,0 +1,148 @@
+package cn.start.tz.module.pressure2.service.dynamicOFData.pipe;
+
+import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
+import cn.start.tz.module.pressure2.dal.dataobject.equippipedetail.EquipPipeDetailDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemdetail.PipeTaskOrderItemDetailDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
+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;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemdetail.PipeTaskOrderItemDetailMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
+import cn.start.tz.module.pressure2.service.pipetaskorderinput.PipeTaskOrderInputService;
+import cn.start.tz.module.system.api.clientunit.ClientUnitApi;
+import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * 应力校核记录
+ */
+@Service("QC12162_202400RecordOFData")
+public class QC12162_202400RecordOFData implements IDynamicOFData {
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private EquipPipeDetailMapper equipPipeDetailMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private AutoDataPipeService autoDataPipeService;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private PipeTaskOrderInputService pipeTaskOrderInputService;
+
+    @Resource
+    private PipeTaskOrderItemDetailMapper pipeTaskOrderItemDetailMapper;
+
+    @Resource
+    private ClientUnitApi clientUnitApi;
+
+    @Override
+    public JSONObject getOFData(JSONObject params) {
+        return null;
+    }
+
+    @Override
+    public JSONObject getOfDataByVO(CreateInstantiateWithRuleVO ruleVO) {
+
+        //日期格式
+        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
+
+        //设备报表ID
+        String refId = ruleVO.getRefId();
+
+        JSONObject result = new JSONObject();
+        PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+
+        if (itemReportDO != null) {
+
+            result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
+
+            List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
+                    .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
+            if (!itemDOList.isEmpty()) {
+
+                EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+
+                List<PipeTaskOrderItemDetailDO> allDetailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
+                //获取约检管线
+                if (!allDetailDOS.isEmpty()) {
+
+                    List<EquipPipeDetailDO> equipPipeDetailDOList = equipPipeDetailMapper.selectList(new LambdaQueryWrapper<EquipPipeDetailDO>()
+                            .in(EquipPipeDetailDO::getId, allDetailDOS.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList()));
+                    if (!equipPipeDetailDOList.isEmpty()) {
+
+                        // 判断pipeName是否相同
+                        String pipeNameValue;
+                        Set<String> pipeNames = equipPipeDetailDOList.stream()
+                                .map(EquipPipeDetailDO::getPipeName)
+                                .filter(Objects::nonNull)
+                                .collect(Collectors.toSet());
+                        // 如果只有一个唯一的pipeName值,则使用该值;否则设置为"见一览表"
+                        pipeNameValue = pipeNames.size() == 1 ? pipeNames.iterator().next() : "见一览表";
+                        result.put("pipeName", pipeNameValue);
+
+                        // 判断pipeNo是否相同
+                        String pipeNoValue;
+                        Set<String> pipeNos = equipPipeDetailDOList.stream()
+                                .map(EquipPipeDetailDO::getPipeNo)
+                                .filter(Objects::nonNull)
+                                .collect(Collectors.toSet());
+                        // 如果只有一个唯一的pipeNo值,则使用该值;否则设置为"见一览表"
+                        pipeNoValue = pipeNos.size() == 1 ? pipeNos.iterator().next() : "见一览表";
+                        result.put("pipeNo", pipeNoValue);
+
+                        if (equipPipeDetailDOList.size() == 1) {
+                            EquipPipeDetailDO equipPipeDetailDO = equipPipeDetailDOList.get(0);
+                            result.put("pipeMaterial", equipPipeDetailDO.getPipeMaterial());
+                            result.put("designPressure", equipPipeDetailDO.getDesignPressure());
+                            result.put("designTemperature", equipPipeDetailDO.getDesignTemperature());
+                        } else {
+                            result.put("pipeMaterial", "见一览表");
+                            result.put("designPressure", "见一览表");
+                            result.put("designTemperature", "见一览表");
+                        }
+
+                    }
+
+                }
+
+                //设备信息
+                if (itemDOList.size() > 1) {
+                    result.put("pipeStandard", "见一览表");
+                } else {
+                    if (equipPipeDO != null) {
+                        result.put("pipeStandard", equipPipeDO.getStandard());
+                    }
+                }
+            }
+
+        }
+
+        return result;
+    }
+
+}

+ 60 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12184_202400ReportOFData.java

@@ -1,17 +1,29 @@
 package cn.start.tz.module.pressure2.service.dynamicOFData.pipe;
 
 import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
+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;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemdetail.PipeTaskOrderItemDetailDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserDO;
 import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
+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;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemdetail.PipeTaskOrderItemDetailMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserMapper;
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.JsonConvertUtil;
 import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
 import cn.start.tz.module.pressure2.service.dynamictbval.DynamicTbValService;
 import cn.start.tz.module.system.api.user.AdminUserApi;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import jakarta.annotation.Resource;
@@ -38,6 +50,24 @@ public class QC12184_202400ReportOFData implements IDynamicOFData {
     @Resource
     private AutoDataPipeService autoDataPipeService;
 
+    @Resource
+    private EquipPipeDetailMapper equipPipeDetailMapper;
+
+    @Resource
+    private PipeTaskOrderItemDetailMapper pipeTaskOrderItemDetailMapper;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private DynamicTbInsService dynamicTbInsService;
+
+    @Resource
+    private PipeTaskOrderItemReportUserMapper pipeTaskOrderItemReportUserMapper;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
     @Override
     public JSONObject getOFData(JSONObject params) {
         return null;
@@ -61,22 +91,51 @@ public class QC12184_202400ReportOFData implements IDynamicOFData {
 
             List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                     .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
+
+            List<PipeTaskOrderItemDetailDO> allDetailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
+            if (!allDetailDOS.isEmpty()){
+                List<EquipPipeDetailDO> equipPipeDetailDOList = equipPipeDetailMapper.selectList(new LambdaQueryWrapper<EquipPipeDetailDO>().in(EquipPipeDetailDO::getId, allDetailDOS.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList()));
+                double sum = equipPipeDetailDOList.stream().mapToDouble(equipPipeDetailDO -> equipPipeDetailDO.getPipeLength() != null ? equipPipeDetailDO.getPipeLength().doubleValue() : 0.0).sum();
+                result.put("pipeLengthTotal", JsonConvertUtil.formatNumber(sum));
+            }
+
             if (!itemDOList.isEmpty()){
                 //设备信息
                 if (itemDOList.size() > 1){
                     result.put("projectNo","见一览表");
                     result.put("projectName","见一览表");
+                    result.put("pipeClass","见一览表");
                 }else {
                     EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
                     if (equipPipeDO != null){
                         result.put("projectNo",equipPipeDO.getProjectNo());
                         result.put("projectName",equipPipeDO.getProjectName());
                         result.put("pipeClass",equipPipeDO.getPipeClass());
-                        result.put("pipeLengthTotal",equipPipeDO.getPipeLengthTotal().toString());
                     }
                 }
             }
 
+            result.put("reportNo", itemReportDO.getReportNo());
+
+            PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(itemReportDO.getOrderId());
+            //第一次生成记录由上次记录生成
+            DynamicTbInsDO firstInsDO = dynamicTbInsService.getDynamicRefId(refId);
+            if (firstInsDO == null) {
+                if (taskOrderDO != null) {
+                    result.put("checkDate", taskOrderDO.getCheckDate().format(dateFormat));
+                } else {
+                    result.put("checkDate", "-");
+                }
+            }
+
+            List<PipeTaskOrderItemReportUserDO> itemReportUserDOS = pipeTaskOrderItemReportUserMapper.selectList(PipeTaskOrderItemReportUserDO::getReportId, refId);
+            if (!itemReportUserDOS.isEmpty()) {
+                AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportUserDOS.get(0).getUserId()).getData();
+                if (userInfo != null) {
+                    result.put("checkName", userInfo.getSignUrl());
+                }
+            }
+
         }
 
         return result;