xy преди 1 месец
родител
ревизия
5022ea0338

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

@@ -0,0 +1,202 @@
+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.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.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.dynamicOFData.util.GenerateReportJsonService;
+import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+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;
+import cn.start.tz.module.system.api.dict.dto.DictDataRespDTO;
+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.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 压力管道年度检查结论报告 记录
+ * */
+@Service("QC12016_202401JRecordOFData")
+public class QC12016_202401JRecordOFData implements IDynamicOFData {
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private AutoDataPipeService autoDataPipeService;
+
+    @Resource
+    private EquipPipeDetailMapper equipPipeDetailMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private PipeTaskOrderItemDetailMapper pipeTaskOrderItemDetailMapper;
+
+    @Resource
+    private PipeTaskOrderInputService pipeTaskOrderInputService;
+
+    @Resource
+    private DynamicTbValService dynamicTbValService;
+
+    @Resource
+    private DynamicTbColService dynamicTbColService;
+
+    @Resource
+    private GenerateReportJsonService generateReportJsonService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @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();
+
+        JSONObject result = autoDataPipeService.autoGeneratePipeRecordData(new JSONObject(), refId);
+        PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+
+        if (itemReportDO != null){
+
+            List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
+                    .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
+            if (!itemDOList.isEmpty()){
+                //设备信息
+                EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                if (itemDOList.size() > 1){
+                    result.put("unitCode","见一览表");
+                    result.put("unitName","见一览表");
+                    result.put("unitAddress","见一览表");
+                }else {
+                    if (equipPipeDO != null){
+                        result.put("unitCode",equipPipeDO.getUnitCode());
+                        result.put("unitName",equipPipeDO.getUnitName());
+                        result.put("unitAddress",equipPipeDO.getUnitAddress());
+
+                        result.put("contactPhone",equipPipeDO.getContactPhone());
+                        result.put("certificateNo",equipPipeDO.getCertificateNo());
+
+                        result.put("securityMan",equipPipeDO.getSecurityMan());
+                        result.put("pipeClass",equipPipeDO.getPipeClass());
+                        result.put("securityManPhone",equipPipeDO.getSecurityManPhone());
+                        result.put("projectName",equipPipeDO.getProjectName());
+                        result.put("postalCode",equipPipeDO.getPostalCode());
+                        result.put("pipeUsePlace",equipPipeDO.getPipeUsePlace());
+
+                        result.put("installationStatusReg",equipPipeDO.getInstallationStatusReg());
+
+                        result.put("pipeLengthTotal",equipPipeDO.getPipeLengthTotal().toString());
+                        if (equipPipeDO.getNextYearCheckDate() != null){
+                            result.put("nextYearCheckDate",equipPipeDO.getNextYearCheckDate()
+                                    .plusYears(1)
+                                    .minusDays(1)
+                                    .format(dateFormat));
+                        }
+
+                        //获取约检管线
+                        List<PipeTaskOrderItemDetailDO> detailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
+                        if (!detailDOS.isEmpty()){
+                            //获取任意一条管线
+                            EquipPipeDetailDO detailDO = equipPipeDetailMapper.selectById(detailDOS.get(0).getEquipDetailId());
+                            if (detailDO != null){
+                                result.put("pipeName1",detailDO.getPipeName());
+                            }
+                        }
+                    }
+                }
+                if (equipPipeDO != null) {
+                    result.put("certificateNo", equipPipeDO.getCertificateNo());
+                }
+                List<EquipPipeDO> equipPipeDOList = equipPipeMapper.selectList(new LambdaQueryWrapper<EquipPipeDO>().in(EquipPipeDO::getId, itemDOList.stream().map(PipeTaskOrderItemDO::getEquipId).toList()));
+                List<PipeTaskOrderItemDetailDO> detailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
+                List<EquipPipeDetailDO> equipPipeDetailDOList = equipPipeDetailMapper.selectList(new LambdaQueryWrapper<EquipPipeDetailDO>().in(EquipPipeDetailDO::getId, detailDOS.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList()));
+                double sum = equipPipeDetailDOList.stream().mapToDouble(equipPipeDetailDO -> equipPipeDetailDO.getPipeLength().doubleValue()).sum();
+                result.put("pipeLengthTotal", String.valueOf(sum));
+                List<String> pipeCategoryList = equipPipeDOList.stream().map(EquipPipeDO::getPipeCategory).distinct().toList();
+                List<DictDataRespDTO> dictDataRespDTOList = dictDataApi.getDictDataList("PIPE_TYPE").getData();
+                // 按/拼接
+                String collect = dictDataRespDTOList.stream().filter(dictDataRespDTO -> pipeCategoryList.contains(dictDataRespDTO.getValue())).map(DictDataRespDTO::getLabel).collect(Collectors.joining("/"));
+                result.put("pipeCategory", collect);
+            }
+
+            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);
+            }
+
+            //审核人员信息
+            AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO.getApprovalId()).getData();
+            if (userInfo != null){
+                if (userInfo.getSignUrl() != null){
+                    result.put("approvalName",userInfo.getSignUrl());
+                }else{
+                    result.put("approvalName",itemReportDO.getApprovalName());
+                }
+            }
+            if (itemReportDO.getApprovalTime() != null){
+                result.put("approvalTime",itemReportDO.getApprovalTime().format(dateFormat));
+            }
+
+            //批准人员信息
+            userInfo = adminUserApi.getUser(itemReportDO.getRatifyId()).getData();
+            if (userInfo != null){
+                if (userInfo.getSignUrl() != null){
+                    result.put("ratifyName",userInfo.getSignUrl());
+                }else{
+                    result.put("ratifyName",itemReportDO.getRatifyName());
+                }
+            }
+            if (itemReportDO.getRatifyTime() != null){
+                result.put("ratifyTime",itemReportDO.getRatifyTime().format(dateFormat));
+            }
+
+        }
+
+        return result;
+    }
+}

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

@@ -0,0 +1,174 @@
+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.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.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.GenerateReportJsonService;
+import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+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;
+import cn.start.tz.module.system.api.dict.dto.DictDataRespDTO;
+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.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 压力管道年度检查结论报告
+ * */
+@Service("QC12016_202401ReportOFData")
+public class QC12016_202401ReportOFData implements IDynamicOFData {
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private EquipPipeDetailMapper equipPipeDetailMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private PipeTaskOrderItemDetailMapper pipeTaskOrderItemDetailMapper;
+
+    @Resource
+    private PipeTaskOrderInputService pipeTaskOrderInputService;
+
+    @Resource
+    private DynamicTbValService dynamicTbValService;
+
+    @Resource
+    private DynamicTbColService dynamicTbColService;
+
+    @Resource
+    private GenerateReportJsonService generateReportJsonService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @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();
+
+        JSONObject result = new JSONObject();
+        PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+
+        if (itemReportDO != null){
+
+            //根据记录字段动态生成报告字段
+            result = generateReportJsonService.generateReportFromRecord(ruleVO.getReportType(),ruleVO.getTemplateId(),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());
+                if (itemDOList.size() > 1){
+                    result.put("unitCode","见一览表");
+                    result.put("unitName","见一览表");
+                    result.put("unitAddress","见一览表");
+                }else {
+                    if (equipPipeDO != null){
+
+                        //获取约检管线
+//                        List<PipeTaskOrderItemDetailDO> detailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
+//                        if (!detailDOS.isEmpty()){
+//                            //获取任意一条管线
+//                            EquipPipeDetailDO detailDO = equipPipeDetailMapper.selectById(detailDOS.get(0).getEquipDetailId());
+//                            if (detailDO != null){
+//                                result.put("pipeName1",detailDO.getPipeName());
+//                            }
+//                        }
+                    }
+                }
+
+                List<EquipPipeDO> equipPipeDOList = equipPipeMapper.selectList(new LambdaQueryWrapper<EquipPipeDO>().in(EquipPipeDO::getId, itemDOList.stream().map(PipeTaskOrderItemDO::getEquipId).toList()));
+                List<String> pipeCategoryList = equipPipeDOList.stream().map(EquipPipeDO::getPipeCategory).distinct().toList();
+                List<DictDataRespDTO> dictDataRespDTOList = dictDataApi.getDictDataList("PIPE_TYPE").getData();
+                // 按/拼接
+                String collect = dictDataRespDTOList.stream().filter(dictDataRespDTO -> pipeCategoryList.contains(dictDataRespDTO.getValue())).map(DictDataRespDTO::getLabel).collect(Collectors.joining("/"));
+                result.put("pipeCategory", collect);
+            }
+
+            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);
+            }
+
+            result.put("reportNo",itemReportDO.getReportNo());
+
+            //审核人员信息
+            AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO.getApprovalId()).getData();
+            if (userInfo != null){
+                if (userInfo.getSignUrl() != null){
+                    result.put("approvalName",userInfo.getSignUrl());
+                }else{
+                    result.put("approvalName",itemReportDO.getApprovalName());
+                }
+            }
+            if (itemReportDO.getApprovalTime() != null){
+                result.put("approvalTime",itemReportDO.getApprovalTime().format(dateFormat));
+            }
+
+            //批准人员信息
+            userInfo = adminUserApi.getUser(itemReportDO.getRatifyId()).getData();
+            if (userInfo != null){
+                if (userInfo.getSignUrl() != null){
+                    result.put("ratifyName",userInfo.getSignUrl());
+                }else{
+                    result.put("ratifyName",itemReportDO.getRatifyName());
+                }
+            }
+            if (itemReportDO.getRatifyTime() != null){
+                result.put("ratifyTime",itemReportDO.getRatifyTime().format(dateFormat));
+            }
+
+        }
+
+        return result;
+    }
+}

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

@@ -0,0 +1,152 @@
+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.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.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.GenerateReportJsonService;
+import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+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;
+import cn.start.tz.module.system.api.dict.dto.DictDataRespDTO;
+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.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * 压力管道定期检验结论报告
+ */
+@Service("QC12024_202403JRecordOFData")
+public class QC12024_202403JRecordOFData implements IDynamicOFData {
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private EquipPipeDetailMapper equipPipeDetailMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private PipeTaskOrderInputService pipeTaskOrderInputService;
+
+    @Resource
+    private PipeTaskOrderItemDetailMapper pipeTaskOrderItemDetailMapper;
+
+    @Resource
+    private DynamicTbValService dynamicTbValService;
+
+    @Resource
+    private DynamicTbColService dynamicTbColService;
+
+    @Resource
+    private GenerateReportJsonService generateReportJsonService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @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();
+
+        JSONObject result = new JSONObject();
+        PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+
+        if (itemReportDO != null) {
+
+            List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
+                    .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
+            if (!itemDOList.isEmpty()) {
+                //设备信息
+                if (itemDOList.size() > 1) {
+                    result.put("unitCode", "见一览表");
+                    result.put("unitName", "见一览表");
+                    result.put("unitAddress", "见一览表");
+                } else {
+                    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("contactPhone", equipPipeDO.getContactPhone());
+                        result.put("certificateNo", equipPipeDO.getCertificateNo());
+
+                        result.put("securityMan", equipPipeDO.getSecurityMan());
+                        result.put("pipeClass", equipPipeDO.getPipeClass());
+                        result.put("securityManPhone", equipPipeDO.getSecurityManPhone());
+                        result.put("projectName", equipPipeDO.getProjectName());
+                        result.put("postalCode", equipPipeDO.getPostalCode());
+                        result.put("pipeUsePlace", equipPipeDO.getPipeUsePlace());
+
+                        result.put("pipeLengthTotal", equipPipeDO.getPipeLengthTotal().toString());
+
+//                        DictDataRespDTO dictDataRespDTO = dictDataApi.getDictData("PIPE_TYPE", equipPipeDO.getPipeCategory()).getData();
+//                        if (dictDataRespDTO != null) {
+//                            result.put("pipeCategory", dictDataRespDTO.getLabel());
+//                        }
+                    }
+                }
+            }
+
+            result.put("reportNo", itemReportDO.getReportNo());
+
+            //审核人员信息
+            AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO.getApprovalId()).getData();
+            if (userInfo != null) {
+                result.put("approvalName", userInfo.getSignUrl() != null ? userInfo.getSignUrl() : itemReportDO.getApprovalName());
+            }
+            if (itemReportDO.getApprovalTime() != null) {
+                result.put("approvalTime", itemReportDO.getApprovalTime().format(dateFormat));
+            }
+
+            //批准人员信息
+            userInfo = adminUserApi.getUser(itemReportDO.getRatifyId()).getData();
+            if (userInfo != null) {
+                result.put("ratifyName", userInfo.getSignUrl() != null ? userInfo.getSignUrl() : itemReportDO.getRatifyName());
+            }
+            if (itemReportDO.getRatifyTime() != null) {
+                result.put("ratifyTime", itemReportDO.getRatifyTime().format(dateFormat));
+            }
+
+        }
+
+        return result;
+    }
+}

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

@@ -104,26 +104,12 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
                 } else {
                     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("contactPhone", equipPipeDO.getContactPhone());
-                        result.put("certificateNo", equipPipeDO.getCertificateNo());
-
-                        result.put("securityMan", equipPipeDO.getSecurityMan());
-                        result.put("pipeClass", equipPipeDO.getPipeClass());
-                        result.put("securityManPhone", equipPipeDO.getSecurityManPhone());
-                        result.put("projectName", equipPipeDO.getProjectName());
-                        result.put("postalCode", equipPipeDO.getPostalCode());
-                        result.put("pipeUsePlace", equipPipeDO.getPipeUsePlace());
-
-                        result.put("pipeLengthTotal", equipPipeDO.getPipeLengthTotal().toString());
 
                         DictDataRespDTO dictDataRespDTO = dictDataApi.getDictData("PIPE_TYPE", equipPipeDO.getPipeCategory()).getData();
                         if (dictDataRespDTO != null) {
                             result.put("pipeCategory", dictDataRespDTO.getLabel());
                         }
+
                     }
                 }
             }

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

@@ -0,0 +1,95 @@
+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.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.dynamicOFData.util.GenerateReportJsonService;
+import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+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;
+import cn.start.tz.module.system.api.user.AdminUserApi;
+import com.alibaba.fastjson2.JSONObject;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+
+/**
+ * 压力管道定期检验结论报告附页 记录
+ * */
+@Service("QC12099_202401GRecordOFData")
+public class QC12099_202401GRecordOFData implements IDynamicOFData {
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private AutoDataPipeService autoDataPipeService;
+
+    @Resource
+    private EquipPipeDetailMapper equipPipeDetailMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private PipeTaskOrderItemDetailMapper pipeTaskOrderItemDetailMapper;
+
+    @Resource
+    private PipeTaskOrderInputService pipeTaskOrderInputService;
+
+    @Resource
+    private DynamicTbValService dynamicTbValService;
+
+    @Resource
+    private DynamicTbColService dynamicTbColService;
+
+    @Resource
+    private GenerateReportJsonService generateReportJsonService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @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();
+
+        JSONObject result = autoDataPipeService.autoGeneratePipeRecordData(new JSONObject(), refId);
+        PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+
+        if (itemReportDO != null){
+
+            result.put("reportNo",itemReportDO.getReportNo());
+
+        }
+
+        return result;
+    }
+}

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

@@ -0,0 +1,74 @@
+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.equippipe.EquipPipeMapper;
+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.service.dynamicOFData.IDynamicOFData;
+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.dynamictbval.DynamicTbValService;
+import cn.start.tz.module.system.api.user.AdminUserApi;
+import com.alibaba.fastjson2.JSONObject;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+
+/**
+ * 压力管道定期检验结论报告附页
+ * */
+@Service("QC12099_202401ReportOFData")
+public class QC12099_202401ReportOFData implements IDynamicOFData {
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private GenerateReportJsonService generateReportJsonService;
+
+    @Resource
+    private DynamicTbValService dynamicTbValService;
+
+    @Resource
+    private DynamicTbColService dynamicTbColService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @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 = generateReportJsonService.generateReportFromRecord(ruleVO.getReportType(),ruleVO.getTemplateId(),refId);
+
+            result.put("reportNo",itemReportDO.getReportNo());
+
+        }
+
+        return result;
+    }
+}

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

@@ -0,0 +1,106 @@
+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.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.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.dynamicOFData.util.GenerateReportJsonService;
+import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+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;
+import cn.start.tz.module.system.api.dict.dto.DictDataRespDTO;
+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.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 压力管道年度检查结论报告 记录
+ * */
+@Service("QC12101_202401JRecordOFData")
+public class QC12101_202401JRecordOFData implements IDynamicOFData {
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private AutoDataPipeService autoDataPipeService;
+
+    @Resource
+    private EquipPipeDetailMapper equipPipeDetailMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private PipeTaskOrderItemDetailMapper pipeTaskOrderItemDetailMapper;
+
+    @Resource
+    private PipeTaskOrderInputService pipeTaskOrderInputService;
+
+    @Resource
+    private DynamicTbValService dynamicTbValService;
+
+    @Resource
+    private DynamicTbColService dynamicTbColService;
+
+    @Resource
+    private GenerateReportJsonService generateReportJsonService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @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();
+
+        JSONObject result = autoDataPipeService.autoGeneratePipeRecordData(new JSONObject(), refId);
+        PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+
+        if (itemReportDO != null){
+
+            result.put("reportNo",itemReportDO.getReportNo());
+
+        }
+
+        return result;
+    }
+}

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

@@ -0,0 +1,74 @@
+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.equippipe.EquipPipeMapper;
+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.service.dynamicOFData.IDynamicOFData;
+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.dynamictbval.DynamicTbValService;
+import cn.start.tz.module.system.api.user.AdminUserApi;
+import com.alibaba.fastjson2.JSONObject;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+
+/**
+ * 压力管道年度检查结论报告附页
+ * */
+@Service("QC12101_202401ReportOFData")
+public class QC12101_202401ReportOFData implements IDynamicOFData {
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private GenerateReportJsonService generateReportJsonService;
+
+    @Resource
+    private DynamicTbValService dynamicTbValService;
+
+    @Resource
+    private DynamicTbColService dynamicTbColService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @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 = generateReportJsonService.generateReportFromRecord(ruleVO.getReportType(),ruleVO.getTemplateId(),refId);
+
+            result.put("reportNo",itemReportDO.getReportNo());
+
+        }
+
+        return result;
+    }
+}