Kaynağa Gözat

报表调整&报告归档调整

xy 2 gün önce
ebeveyn
işleme
0395abd944

+ 154 - 57
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderissuereport/BoilerTaskOrderIssueReportServiceImpl.java

@@ -51,10 +51,12 @@ import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitem.BoilerTas
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreportuser.BoilerTaskOrderItemReportUserDO;
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemuser.BoilerTaskOrderItemUserDO;
+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.dynamictb.DynamicTbDO;
 import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equipboiler.EquipBoilerDO;
+import cn.start.tz.module.pressure2.dal.dataobject.notificationformreport.NotificationformReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.orderreport.OrderReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.reporttemplate.ReportTemplateDO;
 import cn.start.tz.module.pressure2.dal.dataobject.usesignreport.UseSignReportDO;
@@ -68,9 +70,12 @@ import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrde
 import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreport.BoilerTaskOrderItemReportMapper;
 import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreportuser.BoilerTaskOrderItemReportUserMapper;
 import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemuser.BoilerTaskOrderItemUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskordersignfile.BoilerTaskOrderSignFileMapper;
 import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderuser.BoilerTaskOrderUserMapper;
 import cn.start.tz.module.pressure2.dal.mysql.dynamictb.DynamicTbMapper;
+import cn.start.tz.module.pressure2.dal.mysql.dynamictbins.DynamicTbInsMapper;
 import cn.start.tz.module.pressure2.dal.mysql.equipboiler.EquipBoilerMapper;
+import cn.start.tz.module.pressure2.dal.mysql.notificationformreport.NotificationformReportMapper;
 import cn.start.tz.module.pressure2.dal.mysql.orderreport.OrderReportMapper;
 import cn.start.tz.module.pressure2.dal.mysql.reporttemplate.ReportTemplateMapper;
 import cn.start.tz.module.pressure2.dal.mysql.usesignreport.UseSignReportMapper;
@@ -195,6 +200,15 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
     @Resource
     private BoilerTaskOrderItemReportUserMapper taskOrderItemReportUserMapper;
 
+    @Resource
+    private DynamicTbInsMapper dynamicTbInsMapper;
+
+    @Resource
+    private NotificationformReportMapper notificationformReportMapper;
+
+    @Resource
+    private BoilerTaskOrderSignFileMapper taskOrderSignFileMapper;
+
     @Resource
     private EquipBoilerMapper equipBoilerMapper;
 
@@ -977,8 +991,8 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
                 qrCodeValuesDTO.setPageno("1");
                 qrCodeValuesDTO.setWidth(71);
                 qrCodeValuesDTO.setHeight(71);
-                qrCodeValuesDTO.setX("370");
-                qrCodeValuesDTO.setY("600");
+                qrCodeValuesDTO.setX("372");
+                qrCodeValuesDTO.setY("603");
 
                 resultByte = this.sign(pdf, valuesDTOList, qrCodeValuesDTO);
                 log.info("签章成功");
@@ -2103,29 +2117,47 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
             //任务单相关文件
             List<BoilerTaskOrderArchiveDetailRespVO.TaskListFile> taskListFiles = new ArrayList<>();
 
+            //修改List
+            List<BoilerTaskOrderSignFileDO> updateList = new ArrayList<>();
+
             //安全检查记录
             BoilerTaskOrderSignFilePageReqVO pageReqVO1 = new BoilerTaskOrderSignFilePageReqVO();
             pageReqVO1.setBusinessType(300);
             pageReqVO1.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
             PageResult<BoilerTaskOrderSignFileRespVO> taskOrderSignFilePage1 = taskOrderSignFileService.getTaskOrderSignFilePage(pageReqVO1);
             if (ObjectUtil.isNotEmpty(taskOrderSignFilePage1) && CollUtil.isNotEmpty(taskOrderSignFilePage1.getList())) {
-                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage1.getList().stream().filter(x -> StringUtils.isNotEmpty(x.getSignFilePdf())).toList();
-                if (CollUtil.isNotEmpty(list)) {
-                    //List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage1.getList();
-                    BoilerTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new BoilerTaskOrderArchiveDetailRespVO.TaskListFile();
-                    taskListFile.setCountNum(list.size());
-                    taskListFile.setFileType(0);
-                    taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
-                    taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
-                    BoilerTaskOrderSignFileRespVO taskOrderSignFileRespVO = list.stream()
-                            .max(Comparator.comparing(BoilerTaskOrderSignFileRespVO::getCreateTime))
-                            .orElse(null);
-                    if (taskOrderSignFileRespVO != null) {
-                        taskListFile.setCompletionTime(taskOrderSignFileRespVO.getSignDate().atStartOfDay());
+                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage1.getList();
+                //判断是否有签名后的PDF
+                list.forEach(x -> {
+                    if (x.getSignFilePdf() == null || x.getSignFilePdf().isEmpty()){
+                        if (x.getSecurityCheckId() != null){
+                            DynamicTbInsDO InsDO = dynamicTbInsMapper.selectOne(new LambdaQueryWrapperX<DynamicTbInsDO>().eq(DynamicTbInsDO::getRefId, x.getSecurityCheckId()),false);;
+                            if (InsDO != null){
+                                try {
+                                    byte[] bytes = pdfService.pdf(InsDO.getTbId(), InsDO.getId());
+                                    String fileUrl = fileApi.createFile(bytes);
+                                    x.setSignFilePdf(fileUrl);
+                                    updateList.add(new BoilerTaskOrderSignFileDO().setId(x.getId()).setSignFilePdf(fileUrl));
+                                } catch (Exception e) {
+                                    log.error("生成安全检查记录PDF错误,{}", e.getMessage());
+                                }
+                            }
+                        }
                     }
-
-                    taskListFiles.add(taskListFile);
+                });
+                BoilerTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new BoilerTaskOrderArchiveDetailRespVO.TaskListFile();
+                taskListFile.setCountNum(list.size());
+                taskListFile.setFileType(0);
+                taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
+                taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
+                BoilerTaskOrderSignFileRespVO taskOrderSignFileRespVO = list.stream()
+                        .max(Comparator.comparing(BoilerTaskOrderSignFileRespVO::getCreateTime))
+                        .orElse(null);
+                if (taskOrderSignFileRespVO != null) {
+                    taskListFile.setCompletionTime(taskOrderSignFileRespVO.getSignDate().atStartOfDay());
                 }
+
+                taskListFiles.add(taskListFile);
             }
 
             //服务单/受理单
@@ -2134,18 +2166,36 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
             pageReqVO2.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
             PageResult<BoilerTaskOrderSignFileRespVO> taskOrderSignFilePage2 = taskOrderSignFileService.getTaskOrderSignFilePage(pageReqVO2);
             if (ObjectUtil.isNotEmpty(taskOrderSignFilePage2) && CollUtil.isNotEmpty(taskOrderSignFilePage2.getList())) {
-                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage2.getList().stream().filter(x -> StringUtils.isNotEmpty(x.getSignFilePdf())).toList();
-                if (CollUtil.isNotEmpty(list)) {
-                    BoilerTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new BoilerTaskOrderArchiveDetailRespVO.TaskListFile();
-                    taskListFile.setCountNum(list.size());
-                    taskListFile.setFileType(1);
-                    taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
-                    taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
-                    if (list.get(0).getSignDate() != null) {
-                        taskListFile.setCompletionTime(list.get(0).getSignDate().atStartOfDay());
+
+                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage2.getList();
+                //判断是否有签名后的PDF
+                list.forEach(x -> {
+                    if (x.getSignFilePdf() == null || x.getSignFilePdf().isEmpty()){
+                        if (x.getSecurityCheckId() != null){
+                            OrderReportDO orderReportDO = orderReportMapper.selectOne(new LambdaQueryWrapperX<OrderReportDO>()
+                                    .eq(OrderReportDO::getTaskOrderId, x.getOrderId()),false);;
+                            if (orderReportDO != null){
+                                try {
+                                    byte[] bytes = pdfService.pdf(orderReportDO.getTemplateId(), orderReportDO.getInsId());
+                                    String fileUrl = fileApi.createFile(bytes);
+                                    x.setSignFilePdf(fileUrl);
+                                    updateList.add(new BoilerTaskOrderSignFileDO().setId(x.getId()).setSignFilePdf(fileUrl));
+                                } catch (Exception e) {
+                                    log.error("生成服务单/受理单PDF错误,{}", e.getMessage());
+                                }
+                            }
+                        }
                     }
-                    taskListFiles.add(taskListFile);
+                });
+                BoilerTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new BoilerTaskOrderArchiveDetailRespVO.TaskListFile();
+                taskListFile.setCountNum(list.size());
+                taskListFile.setFileType(1);
+                taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
+                taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
+                if (list.get(0).getSignDate() != null) {
+                    taskListFile.setCompletionTime(list.get(0).getSignDate().atStartOfDay());
                 }
+                taskListFiles.add(taskListFile);
             }
 
             //检验情况告知单
@@ -2154,18 +2204,37 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
             pageReqVO3.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
             PageResult<BoilerTaskOrderSignFileRespVO> taskOrderSignFilePage3 = taskOrderSignFileService.getTaskOrderSignFilePage(pageReqVO3);
             if (ObjectUtil.isNotEmpty(taskOrderSignFilePage3) && CollUtil.isNotEmpty(taskOrderSignFilePage3.getList())) {
-                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage3.getList().stream().filter(x -> StringUtils.isNotEmpty(x.getSignFilePdf())).toList();
-                if (CollUtil.isNotEmpty(list)) {
-                    BoilerTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new BoilerTaskOrderArchiveDetailRespVO.TaskListFile();
-                    taskListFile.setCountNum(list.size());
-                    taskListFile.setFileType(2);
-                    taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
-                    taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
-                    if (list.get(0).getSignDate() != null) {
-                        taskListFile.setCompletionTime(list.get(0).getSignDate().atStartOfDay());
+
+                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage3.getList();
+                //判断是否有签名后的PDF
+                list.forEach(x -> {
+                    if (x.getSignFilePdf() == null || x.getSignFilePdf().isEmpty()){
+                        if (x.getSecurityCheckId() != null){
+                            NotificationformReportDO notificationformReportDO = notificationformReportMapper.selectOne(new LambdaQueryWrapperX<NotificationformReportDO>()
+                                    .eq(NotificationformReportDO::getTaskOrderId, x.getOrderId()),false);;
+                            if (notificationformReportDO != null){
+                                try {
+                                    byte[] bytes = pdfService.pdf(notificationformReportDO.getTemplateId(), notificationformReportDO.getInsId());
+                                    String fileUrl = fileApi.createFile(bytes);
+                                    x.setSignFilePdf(fileUrl);
+                                    updateList.add(new BoilerTaskOrderSignFileDO().setId(x.getId()).setSignFilePdf(fileUrl));
+                                } catch (Exception e) {
+                                    log.error("生成检验情况告知单PDF错误,{}", e.getMessage());
+                                }
+                            }
+                        }
                     }
-                    taskListFiles.add(taskListFile);
+                });
+                BoilerTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new BoilerTaskOrderArchiveDetailRespVO.TaskListFile();
+                taskListFile.setCountNum(list.size());
+                taskListFile.setFileType(2);
+                taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
+                taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
+                if (list.get(0).getSignDate() != null) {
+                    taskListFile.setCompletionTime(list.get(0).getSignDate().atStartOfDay());
                 }
+                taskListFiles.add(taskListFile);
+
             }
 
             //重大问题显示告知单
@@ -2175,29 +2244,52 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
             pageReqVO4.setOrderItemId(orderItemId);
             PageResult<BoilerTaskOrderSignFileRespVO> taskOrderSignFilePage4 = taskOrderSignFileService.getTaskOrderSignFilePage(pageReqVO4);
             if (ObjectUtil.isNotEmpty(taskOrderSignFilePage4) && CollUtil.isNotEmpty(taskOrderSignFilePage4.getList())) {
-                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage4.getList().stream().filter(x -> StringUtils.isNotEmpty(x.getSignFilePdf())).toList();
-                if (CollUtil.isNotEmpty(list)) {
-                    BoilerTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new BoilerTaskOrderArchiveDetailRespVO.TaskListFile();
-                    taskListFile.setCountNum(list.size());
-                    taskListFile.setFileType(4);
-                    taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
-                    taskListFile.setOrderItemId(orderItemId);
-                    taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
-                    List<BoilerTaskOrderItemReportDO> list1 = taskOrderItemReportDOS.stream().filter(x -> Integer.valueOf(500).equals(x.getReportType())).toList();
-                    if (CollUtil.isNotEmpty(list1)) {
-                        //获取审核记录处理时间
-                        List<BpmTaskRespVO> bpmTaskRespVOS = taskOrderService.approveOpinionNoticeCirculationRecord(list1.get(0).getId(), list1.get(0).getReportType());
-                        if (CollUtil.isNotEmpty(bpmTaskRespVOS)) {
-                            BpmTaskRespVO bpmTaskRespVO = bpmTaskRespVOS.stream()
-                                    .max(Comparator.comparing(BpmTaskRespVO::getCreateTime))
-                                    .orElse(null);
-                            if (bpmTaskRespVO != null) {
-                                taskListFile.setCompletionTime(bpmTaskRespVO.getCreateTime());
+
+                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage4.getList();
+                //判断是否有签名后的PDF
+                list.forEach(x -> {
+                    if (x.getSignFilePdf() == null || x.getSignFilePdf().isEmpty()){
+                        if (x.getSecurityCheckId() != null){
+                            BoilerTaskOrderItemReportDO itemReportDO = taskOrderItemReportMapper.selectOne(new LambdaQueryWrapperX<BoilerTaskOrderItemReportDO>()
+                                    .eq(BoilerTaskOrderItemReportDO::getOrderItemId, x.getOrderItemId()),false);
+                            if (itemReportDO != null){
+                                try {
+                                    DynamicTbInsDO dynamicTbInsDO = dynamicTbInsMapper.selectOne(new LambdaQueryWrapperX<DynamicTbInsDO>()
+                                            .eq(DynamicTbInsDO::getRefId, itemReportDO.getId()),false);
+                                    if (dynamicTbInsDO != null){
+                                        byte[] bytes = pdfService.pdf(itemReportDO.getTemplateId(), dynamicTbInsDO.getId());
+                                        String fileUrl = fileApi.createFile(bytes);
+                                        x.setSignFilePdf(fileUrl);
+                                        updateList.add(new BoilerTaskOrderSignFileDO().setId(x.getId()).setSignFilePdf(fileUrl));
+                                    }
+                                } catch (Exception e) {
+                                    log.error("生成重大问题线索PDF错误,{}", e.getMessage());
+                                }
                             }
                         }
                     }
-                    taskListFiles.add(taskListFile);
+                });
+                BoilerTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new BoilerTaskOrderArchiveDetailRespVO.TaskListFile();
+                taskListFile.setCountNum(list.size());
+                taskListFile.setFileType(4);
+                taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
+                taskListFile.setOrderItemId(orderItemId);
+                taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
+                List<BoilerTaskOrderItemReportDO> list1 = taskOrderItemReportDOS.stream().filter(x -> Integer.valueOf(500).equals(x.getReportType())).toList();
+                if (CollUtil.isNotEmpty(list1)) {
+                    //获取审核记录处理时间
+                    List<BpmTaskRespVO> bpmTaskRespVOS = taskOrderService.approveOpinionNoticeCirculationRecord(list1.get(0).getId(), list1.get(0).getReportType());
+                    if (CollUtil.isNotEmpty(bpmTaskRespVOS)) {
+                        BpmTaskRespVO bpmTaskRespVO = bpmTaskRespVOS.stream()
+                                .max(Comparator.comparing(BpmTaskRespVO::getCreateTime))
+                                .orElse(null);
+                        if (bpmTaskRespVO != null) {
+                            taskListFile.setCompletionTime(bpmTaskRespVO.getCreateTime());
+                        }
+                    }
                 }
+                taskListFiles.add(taskListFile);
+
             }
 
             //非税缴费单
@@ -2214,6 +2306,11 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
             }
             taskOrderArchiveDetail.setTaskListFiles(taskListFiles);
 
+            //更新所有PDF路径
+            if (!updateList.isEmpty()){
+                taskOrderSignFileMapper.updateBatch(updateList);
+            }
+
             //获取检验项目
             List<BoilerTaskOrderItemReportDO> list = taskOrderItemReportDOS.stream().filter(x -> Arrays.asList(100, 200, 300, 400, 900).contains(x.getReportType())).toList();
             if (CollUtil.isNotEmpty(list)) {
@@ -2298,7 +2395,7 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
             }
 
             //获取项目文件
-            List<BoilerTaskOrderItemReportDO> list1 = taskOrderItemReportDOS.stream().filter(x -> Arrays.asList(600, 700, 1000).contains(x.getReportType())).toList();
+            List<BoilerTaskOrderItemReportDO> list1 = taskOrderItemReportDOS.stream().filter(x -> Arrays.asList(600, 700).contains(x.getReportType())).toList();
             if (CollUtil.isNotEmpty(list1)) {
                 List<BoilerTaskOrderArchiveDetailRespVO.ItemFile> itemFiles = new ArrayList<>();
                 for (BoilerTaskOrderItemReportDO taskOrderItemReportDO : list1) {

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC01007_202400OFData.java

@@ -137,7 +137,7 @@ public class QC01007_202400OFData implements IDynamicOFData {
                         result.put("equipName",equipBoilerDO.getEquipName());
                         result.put("equipInCode",equipBoilerDO.getUnitInternalCode());
                         result.put("useNo",equipBoilerDO.getUseRegisterNo());
-                        result.put("equipRegisterCode1",equipBoilerDO.getUseRegisterNo());
+                        result.put("equipRegisterCode1",equipBoilerDO.getEquipCode());
                         if (itemReportDO.getRatifyTime() != null){
                             // 计算15个工作日后的日期
                             LocalDate ratifyDate = LocalDate.from(itemReportDO.getRatifyTime());

+ 115 - 37
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderissuereport/PipeTaskOrderIssueReportServiceImpl.java

@@ -29,7 +29,12 @@ import cn.start.tz.module.pressure2.controller.admin.taskordernontaxrecord.vo.Ta
 import cn.start.tz.module.pressure2.controller.admin.taskordernontaxrecord.vo.TaskOrderNonTaxRecordRespVO;
 import cn.start.tz.module.pressure2.controller.app.taskorder.vo.TaskOrderIssueReportItemRespVO;
 import cn.start.tz.module.pressure2.controller.app.taskorder.vo.TaskOrderIssueReportPageReqVO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskordersignfile.BoilerTaskOrderSignFileDO;
+import cn.start.tz.module.pressure2.dal.dataobject.notificationformreport.NotificationformReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.orderreport.OrderReportDO;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskordersignfile.BoilerTaskOrderSignFileMapper;
+import cn.start.tz.module.pressure2.dal.mysql.dynamictbins.DynamicTbInsMapper;
+import cn.start.tz.module.pressure2.dal.mysql.notificationformreport.NotificationformReportMapper;
 import cn.start.tz.module.pressure2.dal.mysql.orderreport.OrderReportMapper;
 import cn.start.tz.module.pressure2.enums.EnvConstants;
 import cn.start.tz.module.pressure2.enums.TaskOrderItemReportTypeEnum;
@@ -182,6 +187,15 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
     @Resource
     private PipeTaskOrderIssueReportMapper taskOrderIssueReportMapper;
 
+    @Resource
+    private DynamicTbInsMapper dynamicTbInsMapper;
+
+    @Resource
+    private NotificationformReportMapper notificationformReportMapper;
+
+    @Resource
+    private BoilerTaskOrderSignFileMapper taskOrderSignFileMapper;
+
     @Resource
     private PipeElectronicReportAuditRecordMapper electronicReportAuditRecordMapper;
 
@@ -934,8 +948,8 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
                 qrCodeValuesDTO.setPageno("1");
                 qrCodeValuesDTO.setWidth(71);
                 qrCodeValuesDTO.setHeight(71);
-                qrCodeValuesDTO.setX("370");
-                qrCodeValuesDTO.setY("600");
+                qrCodeValuesDTO.setX("372");
+                qrCodeValuesDTO.setY("603");
 
                 resultByte = this.sign(pdf, valuesDTOList, qrCodeValuesDTO);
                 log.info("签章成功");
@@ -2079,31 +2093,53 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
         queryWrapper.eq(PipeTaskOrderItemReportDO::getTaskStatus, 800);
         List<PipeTaskOrderItemReportDO> taskOrderItemReportDOS = taskOrderItemReportMapper.selectList(queryWrapper);
         if (CollUtil.isNotEmpty(taskOrderItemReportDOS)) {
+
             //任务单相关文件
             List<PipeTaskOrderArchiveDetailRespVO.TaskListFile> taskListFiles = new ArrayList<>();
 
+            //修改List
+            List<BoilerTaskOrderSignFileDO> updateList = new ArrayList<>();
+
             //安全检查记录
             BoilerTaskOrderSignFilePageReqVO pageReqVO1 = new BoilerTaskOrderSignFilePageReqVO();
             pageReqVO1.setBusinessType(300);
             pageReqVO1.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
             PageResult<BoilerTaskOrderSignFileRespVO> taskOrderSignFilePage1 = taskOrderSignFileService.getTaskOrderSignFilePage(pageReqVO1);
             if (ObjectUtil.isNotEmpty(taskOrderSignFilePage1) && CollUtil.isNotEmpty(taskOrderSignFilePage1.getList())) {
-                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage1.getList().stream().filter(x -> StringUtils.isNotEmpty(x.getSignFilePdf())).toList();
-                if (CollUtil.isNotEmpty(list)) {
-                    PipeTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new PipeTaskOrderArchiveDetailRespVO.TaskListFile();
-                    taskListFile.setCountNum(list.size());
-                    taskListFile.setFileType(0);
-                    taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
-                    taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
-                    BoilerTaskOrderSignFileRespVO taskOrderSignFileRespVO = list.stream()
-                            .max(Comparator.comparing(BoilerTaskOrderSignFileRespVO::getCreateTime))
-                            .orElse(null);
-                    if (taskOrderSignFileRespVO != null) {
-                        taskListFile.setCompletionTime(taskOrderSignFileRespVO.getSignDate().atStartOfDay());
-                    }
 
-                    taskListFiles.add(taskListFile);
+                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage1.getList();
+                //判断是否有签名后的PDF
+                list.forEach(x -> {
+                    if (x.getSignFilePdf() == null || x.getSignFilePdf().isEmpty()){
+                        if (x.getSecurityCheckId() != null){
+                            DynamicTbInsDO InsDO = dynamicTbInsMapper.selectOne(new LambdaQueryWrapperX<DynamicTbInsDO>()
+                                    .eq(DynamicTbInsDO::getRefId, x.getSecurityCheckId()),false);;
+                            if (InsDO != null){
+                                try {
+                                    byte[] bytes = pdfService.pdf(InsDO.getTbId(), InsDO.getId());
+                                    String fileUrl = fileApi.createFile(bytes);
+                                    x.setSignFilePdf(fileUrl);
+                                    updateList.add(new BoilerTaskOrderSignFileDO().setId(x.getId()).setSignFilePdf(fileUrl));
+                                } catch (Exception e) {
+                                    log.error("生成安全检查记录PDF错误,{}", e.getMessage());
+                                }
+                            }
+                        }
+                    }
+                });
+                PipeTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new PipeTaskOrderArchiveDetailRespVO.TaskListFile();
+                taskListFile.setCountNum(list.size());
+                taskListFile.setFileType(0);
+                taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
+                taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
+                BoilerTaskOrderSignFileRespVO taskOrderSignFileRespVO = list.stream()
+                        .max(Comparator.comparing(BoilerTaskOrderSignFileRespVO::getCreateTime))
+                        .orElse(null);
+                if (taskOrderSignFileRespVO != null) {
+                    taskListFile.setCompletionTime(taskOrderSignFileRespVO.getSignDate().atStartOfDay());
                 }
+
+                taskListFiles.add(taskListFile);
             }
 
             //服务单/受理单
@@ -2112,18 +2148,37 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
             pageReqVO2.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
             PageResult<BoilerTaskOrderSignFileRespVO> taskOrderSignFilePage2 = taskOrderSignFileService.getTaskOrderSignFilePage(pageReqVO2);
             if (ObjectUtil.isNotEmpty(taskOrderSignFilePage2) && CollUtil.isNotEmpty(taskOrderSignFilePage2.getList())) {
-                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage2.getList().stream().filter(x -> StringUtils.isNotEmpty(x.getSignFilePdf())).toList();
-                if (CollUtil.isNotEmpty(list)) {
-                    PipeTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new PipeTaskOrderArchiveDetailRespVO.TaskListFile();
-                    taskListFile.setCountNum(list.size());
-                    taskListFile.setFileType(1);
-                    taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
-                    taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
-                    if (list.get(0).getSignDate() != null) {
-                        taskListFile.setCompletionTime(list.get(0).getSignDate().atStartOfDay());
+
+                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage2.getList();
+                //判断是否有签名后的PDF
+                list.forEach(x -> {
+                    if (x.getSignFilePdf() == null || x.getSignFilePdf().isEmpty()){
+                        if (x.getSecurityCheckId() != null){
+                            OrderReportDO orderReportDO = orderReportMapper.selectOne(new LambdaQueryWrapperX<OrderReportDO>()
+                                    .eq(OrderReportDO::getTaskOrderId, x.getOrderId()),false);;
+                            if (orderReportDO != null){
+                                try {
+                                    byte[] bytes = pdfService.pdf(orderReportDO.getTemplateId(), orderReportDO.getInsId());
+                                    String fileUrl = fileApi.createFile(bytes);
+                                    x.setSignFilePdf(fileUrl);
+                                    updateList.add(new BoilerTaskOrderSignFileDO().setId(x.getId()).setSignFilePdf(fileUrl));
+                                } catch (Exception e) {
+                                    log.error("生成服务单/受理单PDF错误,{}", e.getMessage());
+                                }
+                            }
+                        }
                     }
-                    taskListFiles.add(taskListFile);
+                });
+                PipeTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new PipeTaskOrderArchiveDetailRespVO.TaskListFile();
+                taskListFile.setCountNum(list.size());
+                taskListFile.setFileType(1);
+                taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
+                taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
+                if (list.get(0).getSignDate() != null) {
+                    taskListFile.setCompletionTime(list.get(0).getSignDate().atStartOfDay());
                 }
+                taskListFiles.add(taskListFile);
+
             }
 
             //检验情况告知单
@@ -2132,18 +2187,36 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
             pageReqVO3.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
             PageResult<BoilerTaskOrderSignFileRespVO> taskOrderSignFilePage3 = taskOrderSignFileService.getTaskOrderSignFilePage(pageReqVO3);
             if (ObjectUtil.isNotEmpty(taskOrderSignFilePage3) && CollUtil.isNotEmpty(taskOrderSignFilePage3.getList())) {
-                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage3.getList().stream().filter(x -> StringUtils.isNotEmpty(x.getSignFilePdf())).toList();
-                if (CollUtil.isNotEmpty(list)) {
-                    PipeTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new PipeTaskOrderArchiveDetailRespVO.TaskListFile();
-                    taskListFile.setCountNum(list.size());
-                    taskListFile.setFileType(2);
-                    taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
-                    taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
-                    if (list.get(0).getSignDate() != null) {
-                        taskListFile.setCompletionTime(list.get(0).getSignDate().atStartOfDay());
+
+                List<BoilerTaskOrderSignFileRespVO> list = taskOrderSignFilePage3.getList();
+                //判断是否有签名后的PDF
+                list.forEach(x -> {
+                    if (x.getSignFilePdf() == null || x.getSignFilePdf().isEmpty()){
+                        if (x.getSecurityCheckId() != null){
+                            NotificationformReportDO notificationformReportDO = notificationformReportMapper.selectOne(new LambdaQueryWrapperX<NotificationformReportDO>()
+                                    .eq(NotificationformReportDO::getTaskOrderId, x.getOrderId()),false);;
+                            if (notificationformReportDO != null){
+                                try {
+                                    byte[] bytes = pdfService.pdf(notificationformReportDO.getTemplateId(), notificationformReportDO.getInsId());
+                                    String fileUrl = fileApi.createFile(bytes);
+                                    x.setSignFilePdf(fileUrl);
+                                    updateList.add(new BoilerTaskOrderSignFileDO().setId(x.getId()).setSignFilePdf(fileUrl));
+                                } catch (Exception e) {
+                                    log.error("生成检验情况告知单PDF错误,{}", e.getMessage());
+                                }
+                            }
+                        }
                     }
-                    taskListFiles.add(taskListFile);
+                });
+                PipeTaskOrderArchiveDetailRespVO.TaskListFile taskListFile = new PipeTaskOrderArchiveDetailRespVO.TaskListFile();
+                taskListFile.setCountNum(list.size());
+                taskListFile.setFileType(2);
+                taskListFile.setOrderId(taskOrderItemReportDOS.get(0).getOrderId());
+                taskListFile.setFilePdf(list.stream().map(BoilerTaskOrderSignFileRespVO::getSignFilePdf).toList());
+                if (list.get(0).getSignDate() != null) {
+                    taskListFile.setCompletionTime(list.get(0).getSignDate().atStartOfDay());
                 }
+                taskListFiles.add(taskListFile);
             }
 
             //重大问题显示告知单
@@ -2191,6 +2264,11 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
             }
             taskOrderArchiveDetail.setTaskListFiles(taskListFiles);
 
+            //更新所有PDF路径
+            if (!updateList.isEmpty()){
+                taskOrderSignFileMapper.updateBatch(updateList);
+            }
+
             //获取检验项目
             List<PipeTaskOrderItemReportDO> list = taskOrderItemReportDOS.stream().filter(x -> Arrays.asList(100, 200, 300, 400, 900).contains(x.getReportType())).toList();
             if (CollUtil.isNotEmpty(list)) {
@@ -2282,7 +2360,7 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
             }
 
             //获取项目文件
-            List<PipeTaskOrderItemReportDO> list1 = taskOrderItemReportDOS.stream().filter(x -> Arrays.asList(600, 700, 1000).contains(x.getReportType())).toList();
+            List<PipeTaskOrderItemReportDO> list1 = taskOrderItemReportDOS.stream().filter(x -> Arrays.asList(600, 700).contains(x.getReportType())).toList();
             if (CollUtil.isNotEmpty(list1)) {
                 List<PipeTaskOrderArchiveDetailRespVO.ItemFile> itemFiles = new ArrayList<>();
                 for (PipeTaskOrderItemReportDO taskOrderItemReportDO : list1) {