Kaynağa Gözat

检验意见书调整

xzc 1 hafta önce
ebeveyn
işleme
21ee5e0c74
10 değiştirilmiş dosya ile 295 ekleme ve 110 silme
  1. 10 5
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/app/taskorderitemreport/BoilerAppReportTemplateController.java
  2. 10 5
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/app/taskorderitemreport/PipeAppReportTemplateController.java
  3. 2 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderService.java
  4. 109 48
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java
  5. 7 7
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderitemreport/BoilerAppTaskOrderItemReportServiceImpl.java
  6. 2 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderitemreport/BoilerTaskOrderItemReportServiceImpl.java
  7. 2 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderService.java
  8. 144 38
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java
  9. 7 7
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderitemreport/PipeAppTaskOrderItemReportServiceImpl.java
  10. 2 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderitemreport/PipeTaskOrderItemReportServiceImpl.java

+ 10 - 5
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/app/taskorderitemreport/BoilerAppReportTemplateController.java

@@ -10,6 +10,7 @@ import cn.start.tz.module.pressure2.controller.appapi.boilertaskorder.vo.OrderFr
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemrecheck.PipeTaskOrderItemRecheckDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.service.boilertaskorder.BoilerTaskOrderService;
 import cn.start.tz.module.pressure2.service.boilertaskorderitemreport.BoilerTaskOrderItemReportService;
 import cn.start.tz.module.pressure2.service.pipetaskorderinput.PipeTaskOrderInputService;
 import cn.start.tz.module.pressure2.service.pipetaskorderitemrecheck.PipeTaskOrderItemRecheckService;
@@ -49,6 +50,9 @@ public class BoilerAppReportTemplateController {
     @Resource
     private TaskSignService taskSignService;
 
+    @Resource
+    private BoilerTaskOrderService boilerTaskOrderService;
+
     @PostMapping("/reportPreview")
     @Operation(summary = "报告预览(pdf流)")
     @PermitAll
@@ -82,11 +86,12 @@ public class BoilerAppReportTemplateController {
     public void inspectionOpinionReportPreview(@Valid @RequestBody ReportMockPreviewVO reportPreviewVO,
                                                HttpServletResponse response) throws Exception {
 //        ByteArrayOutputStream bos = reportTemplateService.reportTemplateMockPreview(reportPreviewVO);
-        PipeTaskOrderInputPrintReqVO reqVO = new PipeTaskOrderInputPrintReqVO();
-        BoilerTaskOrderItemReportDO byId = boilerTaskOrderItemReportService.getById(reportPreviewVO.getId());
-        reqVO.setTemplateId(byId.getTemplateId());
-        reqVO.setId(reportPreviewVO.getId());
-        byte[] bytes = pipeTaskOrderInputService.printPipeTaskOrderInput(reqVO);
+//        PipeTaskOrderInputPrintReqVO reqVO = new PipeTaskOrderInputPrintReqVO();
+//        BoilerTaskOrderItemReportDO byId = boilerTaskOrderItemReportService.getById(reportPreviewVO.getId());
+//        reqVO.setTemplateId(byId.getTemplateId());
+//        reqVO.setId(reportPreviewVO.getId());
+//        byte[] bytes = pipeTaskOrderInputService.printPipeTaskOrderInput(reqVO);
+        byte[] bytes = boilerTaskOrderService.getInitiatePdf(reportPreviewVO.getId());
         // 文件类型为 100 时转换为图片(用于小程序预览)
         if (Integer.valueOf(100).equals(reportPreviewVO.getFileType())) {
             bytes = taskSignService.pdfToImage(bytes).toByteArray();

+ 10 - 5
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/app/taskorderitemreport/PipeAppReportTemplateController.java

@@ -9,6 +9,7 @@ import cn.start.tz.module.pressure2.controller.admin.reporttemplate.vo.ReportMoc
 import cn.start.tz.module.pressure2.controller.appapi.boilertaskorder.vo.OrderFromPdfReqVO;
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
 import cn.start.tz.module.pressure2.service.pipetaskorderinput.PipeTaskOrderInputService;
 import cn.start.tz.module.pressure2.service.pipetaskorderitemreport.PipeTaskOrderItemReportService;
 import cn.start.tz.module.pressure2.service.reporttemplate.ReportTemplateService;
@@ -46,6 +47,9 @@ public class PipeAppReportTemplateController {
     @Resource
     private PipeTaskOrderItemReportService pipeTaskOrderItemReportService;
 
+    @Resource
+    private PipeTaskOrderService pipeTaskOrderService;
+
     @PostMapping("/reportPreview")
     @Operation(summary = "报告预览(pdf流)")
     @PermitAll
@@ -78,11 +82,12 @@ public class PipeAppReportTemplateController {
     public void inspectionOpinionReportPreview(@Valid @RequestBody ReportMockPreviewVO reportPreviewVO,
                                                HttpServletResponse response) throws Exception {
 //        ByteArrayOutputStream bos = reportTemplateService.reportTemplateMockPreview(reportPreviewVO);
-        PipeTaskOrderInputPrintReqVO reqVO = new PipeTaskOrderInputPrintReqVO();
-        PipeTaskOrderItemReportDO byId = pipeTaskOrderItemReportService.getById(reportPreviewVO.getId());
-        reqVO.setTemplateId(byId.getTemplateId());
-        reqVO.setId(reportPreviewVO.getId());
-        byte[] bytes = pipeTaskOrderInputService.printPipeTaskOrderInput(reqVO);
+//        PipeTaskOrderInputPrintReqVO reqVO = new PipeTaskOrderInputPrintReqVO();
+//        PipeTaskOrderItemReportDO byId = pipeTaskOrderItemReportService.getById(reportPreviewVO.getId());
+//        reqVO.setTemplateId(byId.getTemplateId());
+//        reqVO.setId(reportPreviewVO.getId());
+//        byte[] bytes = pipeTaskOrderInputService.printPipeTaskOrderInput(reqVO);
+        byte[] bytes = pipeTaskOrderService.getInitiatePdf(reportPreviewVO.getId());
         // 文件类型为 100 时转换为图片(用于小程序预览)
         if (Integer.valueOf(100).equals(reportPreviewVO.getFileType())) {
             bytes = taskSignService.pdfToImage(bytes).toByteArray();

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

@@ -197,6 +197,8 @@ public interface BoilerTaskOrderService extends IService<BoilerTaskOrderDO>  {
 
     Boolean auditInitiateApproval(String id, Integer status, String reason) ;
 
+    byte[] getInitiatePdf(String reportId) throws Exception;
+
     void serviceFromUpdate(OrderFormEnterReqVO reqVO) throws Exception;
 
 

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

@@ -46,8 +46,6 @@ import cn.start.tz.module.pressure2.dal.dataobject.notificationformreport.Notifi
 import cn.start.tz.module.pressure2.dal.dataobject.opinionnotificationfollowrecord.OpinionNotificationFollowRecordDO;
 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.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.dataobject.taskordernontaxrecord.TaskOrderNonTaxRecordDO;
 import cn.start.tz.module.pressure2.dal.dataobject.taskordernontaxrecorditem.TaskOrderNonTaxRecordItemDO;
@@ -71,7 +69,6 @@ import cn.start.tz.module.pressure2.controller.admin.boilertaskorderitemreport.v
 import cn.start.tz.module.pressure2.controller.admin.bpmtaskinfo.vo.BpmTaskRespVO;
 import cn.start.tz.module.pressure2.controller.admin.costfield.vo.CostFieldRespVO;
 import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
-import cn.start.tz.module.pressure2.controller.admin.reporttemplate.vo.ReportPreviewVO;
 import cn.start.tz.module.pressure2.dal.dataobject.acceptorder.AcceptOrderDO;
 import cn.start.tz.module.pressure2.dal.dataobject.appointmentconfirmorder.AppointmentConfirmOrderDO;
 import cn.start.tz.module.pressure2.dal.dataobject.appointmentconfirmorderrefuseitem.AppointmentConfirmOrderRefuseItemDO;
@@ -189,7 +186,6 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.yulichang.query.MPJLambdaQueryWrapper;
 import com.google.common.collect.Lists;
-import com.grapecity.documents.excel.drawing.S;
 import jodd.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -252,6 +248,9 @@ import static java.time.LocalDate.now;
 @Slf4j
 public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMapper, BoilerTaskOrderDO> implements BoilerTaskOrderService {
 
+    @Value("${tz.env.name}")
+    private String env;
+
     @Value("${tz.qrCodeWebUrl.boiler}")
     private String boilerQrCodeUrl;
 
@@ -1757,48 +1756,6 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                 }
 
                 taskOrderItemReportMapper.updateById(itemReportDO);
-                String reportUrl = null;
-                if (StringUtils.isNotBlank(reportDO.getReportUrl())) {
-                    /*if ("uat".equals(env)) {
-                        try {
-                            byte[] reportBytes = fileApi.getFileByPath(reportDO.getReportUrl()).getData();
-                            List<SignValuesDTO> valuesDTOList = Lists.newArrayList();
-                            SignValuesDTO valuesDTO1 = new SignValuesDTO();
-                            valuesDTO1.setCode("JDY");
-                            valuesDTO1.setSealType("JYZ");
-                            valuesDTO1.setTextonce(0);
-                            valuesDTO1.setText("(检验检测专用章或公章)");
-                            valuesDTOList.add(valuesDTO1);
-                            byte[] signedPdfBytes = this.sign(reportBytes, valuesDTOList);
-                            reportUrl = fileApi.createFile(signedPdfBytes);
-                        } catch (Exception e) {
-                            log.info("出具报告盖章失败:{}", e.getMessage());
-
-                            try {
-                                ReportPreviewVO reportPreview = new ReportPreviewVO();
-                                reportPreview.setReportId(id);
-                                reportPreview.setFileType(200);
-                                ByteArrayOutputStream recordOutputStreamReport = reportTemplateService.getRecordOutputStreamReport(reportPreview);
-                                // excel 转 pdf
-                                reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
-                            } catch (Exception ex) {
-                                log.error("出具报告失败:{}", ex.getMessage());
-                            }
-                        }
-                    } else {*/
-                        try {
-                            ReportPreviewVO reportPreview = new ReportPreviewVO();
-                            reportPreview.setReportId(id);
-                            reportPreview.setFileType(200);
-//                            ByteArrayOutputStream recordOutputStreamReport = reportTemplateService.getRecordOutputStreamReport(reportPreview);
-                            // excel 转 pdf
-//                            reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
-                        } catch (Exception ex) {
-                            log.error("出具报告失败:{}", ex.getMessage());
-                        }
-//                    }
-                }
-                itemReportDO.setOpinionReportedUrl(reportUrl);
             } else {
                 itemReportDO.setRatifyId(userId);
                 itemReportDO.setRatifyTime(LocalDateTime.now());
@@ -1818,7 +1775,46 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
         syncReportVO.setRefId(id);
         syncReportVO.setReportType("record");
         syncReportData(syncReportVO);
+        String reportUrl = null;
+        if ("prod".equals(env)) {
+            try {
+                byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                List<SignValuesDTO> valuesDTOList = Lists.newArrayList();
+                SignValuesDTO valuesDTO1 = new SignValuesDTO();
+                valuesDTO1.setCode("JDY");
+                valuesDTO1.setSealType("JYZ");
+                valuesDTO1.setTextonce(0);
+                valuesDTO1.setText("(检验检测专用章或公章)");
+                valuesDTOList.add(valuesDTO1);
+                byte[] signedPdfBytes = this.sign(bytes, valuesDTOList);
+                reportUrl = fileApi.createFile(signedPdfBytes);
+            } catch (Exception e) {
+                log.info("出具报告盖章失败:{}", e.getMessage());
 
+                try {
+                    byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                    ByteArrayOutputStream recordOutputStreamReport = new ByteArrayOutputStream();
+                    recordOutputStreamReport.write(bytes);
+                    // excel 转 pdf
+                    reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
+                } catch (Exception ex) {
+                    log.error("出具报告失败:{}", ex.getMessage());
+                }
+            }
+
+        }else {
+            try {
+                byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                ByteArrayOutputStream recordOutputStreamReport = new ByteArrayOutputStream();
+                recordOutputStreamReport.write(bytes);
+                // excel 转 pdf
+                reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
+            } catch (Exception ex) {
+                log.error("出具报告失败:{}", ex.getMessage());
+            }
+        }
+        itemReportDO.setOpinionReportedUrl(reportUrl);
+        taskOrderItemReportMapper.updateById(itemReportDO);
         //首页待办 - 去掉待办
         String typeName = "";
         if (reportDO.getReportType() == 600){
@@ -1873,6 +1869,60 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
         return true;
     }
 
+    @Override
+    public byte[] getInitiatePdf(String reportId) throws Exception {
+        BoilerTaskOrderItemReportDO reportDO = taskOrderItemReportMapper.selectById(reportId);
+        if (reportDO == null) {
+            throw new ServiceException(404, "数据不存在");
+        }
+        if (reportDO.getOpinionReportedUrl() != null){
+            return fileApi.getFileByPath(reportDO.getOpinionReportedUrl()).getData();
+        }
+        // 没有要重新生成
+        BoilerTaskOrderItemReportDO itemReportDO = new BoilerTaskOrderItemReportDO().setId(reportDO.getId());
+        String reportUrl = null;
+        if ("prod".equals(env)) {
+            try {
+                byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                List<SignValuesDTO> valuesDTOList = Lists.newArrayList();
+                SignValuesDTO valuesDTO1 = new SignValuesDTO();
+                valuesDTO1.setCode("JDY");
+                valuesDTO1.setSealType("JYZ");
+                valuesDTO1.setTextonce(0);
+                valuesDTO1.setText("机构公章或");
+                valuesDTOList.add(valuesDTO1);
+                byte[] signedPdfBytes = this.sign(bytes, valuesDTOList);
+                reportUrl = fileApi.createFile(signedPdfBytes);
+            } catch (Exception e) {
+                log.info("出具报告盖章失败:{}", e.getMessage());
+
+                try {
+                    byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                    ByteArrayOutputStream recordOutputStreamReport = new ByteArrayOutputStream();
+                    recordOutputStreamReport.write(bytes);
+                    // excel 转 pdf
+                    reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
+                } catch (Exception ex) {
+                    log.error("出具报告失败:{}", ex.getMessage());
+                }
+            }
+
+        }else {
+            try {
+                byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                ByteArrayOutputStream recordOutputStreamReport = new ByteArrayOutputStream();
+                recordOutputStreamReport.write(bytes);
+                // excel 转 pdf
+                reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
+            } catch (Exception ex) {
+                log.error("出具报告失败:{}", ex.getMessage());
+            }
+        }
+        itemReportDO.setOpinionReportedUrl(reportUrl);
+        taskOrderItemReportMapper.updateById(itemReportDO);
+        return fileApi.getFileByPath(reportUrl).getData();
+    }
+
     @Override
     public void serviceFromUpdate(OrderFormEnterReqVO reqVO) throws Exception {
 
@@ -2293,8 +2343,6 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
     @Resource
     private PushTaskOrderService pushTaskOrderService;
 
-    @Value("${tz.env.name}")
-    private String env;
 
     @Transactional
     @Override
@@ -7679,5 +7727,18 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 
         return signApi.getSignFile(signUrl).getCheckedData();
     }
+    private byte[] sign(byte[] bytes, List<SignValuesDTO> valuesDTOList) throws Exception {
+        CntSignReqDTO signReqDTO = new CntSignReqDTO();
+        signReqDTO.setBytes(bytes);
+        signReqDTO.setValuesDTOList(valuesDTOList);
+        CntSignResponseRepsDTO signRepsDTO = signApi.sign(signReqDTO).getCheckedData();
+        String signUrl = signRepsDTO.getRecord_saved_urls().get(0);
+
+        if(env.equals("local")){
+            Thread.sleep(5000);
+        }
+
+        return signApi.getSignFile(signUrl).getCheckedData();
+    }
 
 }

+ 7 - 7
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderitemreport/BoilerAppTaskOrderItemReportServiceImpl.java

@@ -80,13 +80,13 @@ public class BoilerAppTaskOrderItemReportServiceImpl implements BoilerAppTaskOrd
     @Override
     public PageResult<BoilerOrderItemPageRespVO> appInspectionOpinionPage(BoilerTaskOrderPageReqVO pageReqVO) {
         // 不传单位code时根据当前登录人memberId查询
-        if (StringUtils.isEmpty(pageReqVO.getUnitCode())) {
-            String userId = AppAuthContextHolder.getUserId();
-            if (ObjectUtil.isEmpty(userId) || StringUtils.isEmpty(userId)) {
-                return new PageResult<>();
-            }
-            pageReqVO.setMemberId(userId);
-        }
+//        if (StringUtils.isEmpty(pageReqVO.getUnitCode())) {
+//            String userId = AppAuthContextHolder.getUserId();
+//            if (ObjectUtil.isEmpty(userId) || StringUtils.isEmpty(userId)) {
+//                return new PageResult<>();
+//            }
+//            pageReqVO.setMemberId(userId);
+//        }
 //        pageReqVO.setRecipientPhone(null);
         return boilerTaskOrderService.inspectionOpinionPage(pageReqVO);
     }

+ 2 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderitemreport/BoilerTaskOrderItemReportServiceImpl.java

@@ -185,9 +185,11 @@ public class BoilerTaskOrderItemReportServiceImpl extends ServiceImpl<BoilerTask
         if (Integer.valueOf(0).equals(reqVo.getApprovalType())) {
             status = 4;
             updateWrapper.set(BoilerTaskOrderItemReportDO::getTaskStatus, TaskOrderStatusEnum.REPORT_FINISH.getStatus());
+            updateWrapper.set(BoilerTaskOrderItemReportDO::getIssueUrl, taskOrderItemReportDO.getRectificationUrl());
         } else if (Integer.valueOf(2).equals(reqVo.getApprovalType())) {
             status = 5;
             updateWrapper.set(BoilerTaskOrderItemReportDO::getTaskStatus, TaskOrderStatusEnum.REPORT_FINISH.getStatus());
+            updateWrapper.set(BoilerTaskOrderItemReportDO::getIssueUrl, taskOrderItemReportDO.getRectificationUrl());
         } else {
             if (StringUtil.isEmpty(reqVo.getRejectionReason())) {
                 throw exception(new ErrorCode(10070, "拒绝原因不能为空"));

+ 2 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderService.java

@@ -168,6 +168,8 @@ public interface PipeTaskOrderService extends IService<PipeTaskOrderDO>  {
 
     Boolean auditInitiateApproval(String id, Integer status, String reason) ;
 
+    byte[] getInitiatePdf(String reportId) throws Exception;
+
     void serviceFromUpdate(OrderFormEnterReqVO reqVO) throws Exception;
 
 

+ 144 - 38
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java

@@ -4708,8 +4708,43 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                 }
 
                 taskOrderItemReportMapper.updateById(itemReportDO);
-                String reportUrl = null;
-                if (StringUtils.isNotBlank(reportDO.getReportUrl())) {
+            } else {
+                itemReportDO.setRatifyId(userId);
+                itemReportDO.setRatifyTime(LocalDateTime.now());
+                //检验方案读取记录下来的审批日期
+                if (reportDO.getReportType() != null && TaskOrderItemReportTypeEnum.INSPECTION_PLAN.getType().intValue() == reportDO.getReportType()) {
+                    PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(reportDO.getOrderId());
+                    if (taskOrderDO != null){
+                        if (taskOrderDO.getSchemeEnterTime() != null){
+                            itemReportDO.setPrepareTime(taskOrderDO.getSchemeEnterTime());
+                        }
+                        if (taskOrderDO.getSchemeApprovalTime() != null){
+                            itemReportDO.setApprovalTime(taskOrderDO.getSchemeApprovalTime());
+                        }
+                        if (taskOrderDO.getSchemeRatifyTime() != null){
+                            itemReportDO.setRatifyTime(taskOrderDO.getSchemeRatifyTime());
+                        }
+                    }
+                }
+
+                if (userRespDTO != null) {
+                    itemReportDO.setRatifyName(userRespDTO.getNickname());
+                }
+            }
+
+        } else if (Objects.equals(AcceptOrderStatusEnum.REJECT.getStatus(), status)) {
+            itemReportDO.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
+        }
+        taskOrderItemReportMapper.updateById(itemReportDO);
+
+        //更新 报表数据
+        BoilerTaskOrderSyncReportVO syncReportVO = new BoilerTaskOrderSyncReportVO();
+        syncReportVO.setRefId(id);
+        syncReportVO.setReportType("record");
+        syncReportData(syncReportVO);
+
+        String reportUrl = null;
+        if (StringUtils.isNotBlank(reportDO.getReportUrl())) {
                     /*if ("uat".equals(env)) {
                         try {
                             byte[] reportBytes = fileApi.getFileByPath(reportDO.getReportUrl()).getData();
@@ -4737,54 +4772,58 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                             }
                         }
                     } else {*/
+            if ("prod".equals(env)) {
+                try {
+                    byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                    List<SignValuesDTO> valuesDTOList = Lists.newArrayList();
+                    SignValuesDTO valuesDTO1 = new SignValuesDTO();
+                    valuesDTO1.setCode("JDY");
+                    valuesDTO1.setSealType("JYZ");
+                    valuesDTO1.setTextonce(0);
+                    valuesDTO1.setText("(检验检测专用章或公章)");
+                    valuesDTOList.add(valuesDTO1);
+                    byte[] signedPdfBytes = this.sign(bytes, valuesDTOList);
+                    reportUrl = fileApi.createFile(signedPdfBytes);
+                } catch (Exception e) {
+                    log.info("出具报告盖章失败:{}", e.getMessage());
+
                     try {
-                        ReportPreviewVO reportPreview = new ReportPreviewVO();
-                        reportPreview.setReportId(id);
-                        reportPreview.setFileType(200);
-//                            ByteArrayOutputStream recordOutputStreamReport = reportTemplateService.getRecordOutputStreamReport(reportPreview);
+                        byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                        ByteArrayOutputStream recordOutputStreamReport = new ByteArrayOutputStream();
+                        recordOutputStreamReport.write(bytes);
                         // excel 转 pdf
-//                            reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
+                        reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
                     } catch (Exception ex) {
                         log.error("出具报告失败:{}", ex.getMessage());
                     }
-//                    }
-                }
-                itemReportDO.setOpinionReportedUrl(reportUrl);
-            } else {
-                itemReportDO.setRatifyId(userId);
-                itemReportDO.setRatifyTime(LocalDateTime.now());
-                //检验方案读取记录下来的审批日期
-                if (reportDO.getReportType() != null && TaskOrderItemReportTypeEnum.INSPECTION_PLAN.getType().intValue() == reportDO.getReportType()) {
-                    PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(reportDO.getOrderId());
-                    if (taskOrderDO != null){
-                        if (taskOrderDO.getSchemeEnterTime() != null){
-                            itemReportDO.setPrepareTime(taskOrderDO.getSchemeEnterTime());
-                        }
-                        if (taskOrderDO.getSchemeApprovalTime() != null){
-                            itemReportDO.setApprovalTime(taskOrderDO.getSchemeApprovalTime());
-                        }
-                        if (taskOrderDO.getSchemeRatifyTime() != null){
-                            itemReportDO.setRatifyTime(taskOrderDO.getSchemeRatifyTime());
-                        }
-                    }
                 }
 
-                if (userRespDTO != null) {
-                    itemReportDO.setRatifyName(userRespDTO.getNickname());
+            }else {
+                try {
+                    byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                    ByteArrayOutputStream recordOutputStreamReport = new ByteArrayOutputStream();
+                    recordOutputStreamReport.write(bytes);
+                    // excel 转 pdf
+                    reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
+                } catch (Exception ex) {
+                    log.error("出具报告失败:{}", ex.getMessage());
                 }
             }
-
-        } else if (Objects.equals(AcceptOrderStatusEnum.REJECT.getStatus(), status)) {
-            itemReportDO.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
+            try {
+                ReportPreviewVO reportPreview = new ReportPreviewVO();
+                reportPreview.setReportId(id);
+                reportPreview.setFileType(200);
+//                            ByteArrayOutputStream recordOutputStreamReport = reportTemplateService.getRecordOutputStreamReport(reportPreview);
+                // excel 转 pdf
+//                            reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
+            } catch (Exception ex) {
+                log.error("出具报告失败:{}", ex.getMessage());
+            }
+//                    }
         }
+        itemReportDO.setOpinionReportedUrl(reportUrl);
         taskOrderItemReportMapper.updateById(itemReportDO);
 
-        //更新 报表数据
-        BoilerTaskOrderSyncReportVO syncReportVO = new BoilerTaskOrderSyncReportVO();
-        syncReportVO.setRefId(id);
-        syncReportVO.setReportType("record");
-        syncReportData(syncReportVO);
-
         //首页待办 - 去掉待办
         String typeName = "";
         if (reportDO.getReportType() == 600){
@@ -4840,6 +4879,60 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
 
     }
 
+    @Override
+    public byte[] getInitiatePdf(String reportId) throws Exception {
+        PipeTaskOrderItemReportDO reportDO = taskOrderItemReportMapper.selectById(reportId);
+        if (reportDO == null) {
+            throw new ServiceException(404, "数据不存在");
+        }
+        if (reportDO.getOpinionReportedUrl() != null){
+            return fileApi.getFileByPath(reportDO.getOpinionReportedUrl()).getData();
+        }
+        // 没有要重新生成
+        PipeTaskOrderItemReportDO itemReportDO = new PipeTaskOrderItemReportDO().setId(reportDO.getId());
+        String reportUrl = null;
+        if ("prod".equals(env)) {
+            try {
+                byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                List<SignValuesDTO> valuesDTOList = Lists.newArrayList();
+                SignValuesDTO valuesDTO1 = new SignValuesDTO();
+                valuesDTO1.setCode("JDY");
+                valuesDTO1.setSealType("JYZ");
+                valuesDTO1.setTextonce(0);
+                valuesDTO1.setText("机构公章或");
+                valuesDTOList.add(valuesDTO1);
+                byte[] signedPdfBytes = this.sign(bytes, valuesDTOList);
+                reportUrl = fileApi.createFile(signedPdfBytes);
+            } catch (Exception e) {
+                log.info("出具报告盖章失败:{}", e.getMessage());
+
+                try {
+                    byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                    ByteArrayOutputStream recordOutputStreamReport = new ByteArrayOutputStream();
+                    recordOutputStreamReport.write(bytes);
+                    // excel 转 pdf
+                    reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
+                } catch (Exception ex) {
+                    log.error("出具报告失败:{}", ex.getMessage());
+                }
+            }
+
+        }else {
+            try {
+                byte[] bytes = pdfService.pdfByRefId(reportDO.getTemplateId(), reportDO.getId());
+                ByteArrayOutputStream recordOutputStreamReport = new ByteArrayOutputStream();
+                recordOutputStreamReport.write(bytes);
+                // excel 转 pdf
+                reportUrl = fileApi.createFile(recordOutputStreamReport.toByteArray());
+            } catch (Exception ex) {
+                log.error("出具报告失败:{}", ex.getMessage());
+            }
+        }
+        itemReportDO.setOpinionReportedUrl(reportUrl);
+        taskOrderItemReportMapper.updateById(itemReportDO);
+        return fileApi.getFileByPath(reportUrl).getData();
+    }
+
     @Override
     public void serviceFromUpdate(OrderFormEnterReqVO reqVO) throws Exception {
 
@@ -6611,6 +6704,19 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
             Thread.sleep(5000);
         }
 
+        return signApi.getSignFile(signUrl).getCheckedData();
+    }
+    private byte[] sign(byte[] bytes, List<SignValuesDTO> valuesDTOList) throws Exception {
+        CntSignReqDTO signReqDTO = new CntSignReqDTO();
+        signReqDTO.setBytes(bytes);
+        signReqDTO.setValuesDTOList(valuesDTOList);
+        CntSignResponseRepsDTO signRepsDTO = signApi.sign(signReqDTO).getCheckedData();
+        String signUrl = signRepsDTO.getRecord_saved_urls().get(0);
+
+        if(env.equals("local")){
+            Thread.sleep(5000);
+        }
+
         return signApi.getSignFile(signUrl).getCheckedData();
     }
 }

+ 7 - 7
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderitemreport/PipeAppTaskOrderItemReportServiceImpl.java

@@ -75,13 +75,13 @@ public class PipeAppTaskOrderItemReportServiceImpl implements PipeAppTaskOrderIt
     @Override
     public PageResult<PipeOrderItemPageRespVO> appInspectionOpinionPage(PipeTaskOrderPageReqVO pageReqVO) {
         // 不传单位code时根据当前登录人memberId查询
-        if (StringUtils.isEmpty(pageReqVO.getUnitCode())) {
-            LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
-            if (ObjectUtil.isEmpty(loginUser) || StringUtils.isEmpty(loginUser.getId())) {
-                return new PageResult<>();
-            }
-            pageReqVO.setMemberId(loginUser.getId());
-        }
+//        if (StringUtils.isEmpty(pageReqVO.getUnitCode())) {
+//            LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
+//            if (ObjectUtil.isEmpty(loginUser) || StringUtils.isEmpty(loginUser.getId())) {
+//                return new PageResult<>();
+//            }
+//            pageReqVO.setMemberId(loginUser.getId());
+//        }
 //        pageReqVO.setRecipientPhone(null);
         return pipeTaskOrderService.inspectionOpinionPage(pageReqVO);
     }

+ 2 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderitemreport/PipeTaskOrderItemReportServiceImpl.java

@@ -173,9 +173,11 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
         if (Integer.valueOf(0).equals(reqVo.getApprovalType())) {
             status = 4;
             updateWrapper.set(PipeTaskOrderItemReportDO::getTaskStatus, TaskOrderStatusEnum.REPORT_FINISH.getStatus());
+            updateWrapper.set(PipeTaskOrderItemReportDO::getIssueUrl, taskOrderItemReportDO.getRectificationUrl());
         } else if (Integer.valueOf(2).equals(reqVo.getApprovalType())) {
             status = 5;
             updateWrapper.set(PipeTaskOrderItemReportDO::getTaskStatus, TaskOrderStatusEnum.REPORT_FINISH.getStatus());
+            updateWrapper.set(PipeTaskOrderItemReportDO::getIssueUrl, taskOrderItemReportDO.getRectificationUrl());
         } else {
             if (StringUtil.isEmpty(reqVo.getRejectionReason())) {
                 throw exception(new ErrorCode(10070, "拒绝原因不能为空"));