xy 1 тиждень тому
батько
коміт
3f3c8fbe55

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

@@ -23,6 +23,11 @@ import cn.start.tz.module.bpm.enums.boiler.BoilerBpmModelConstants;
 import cn.start.tz.module.bpm.enums.task.BpmModeConstantsEnum;
 import cn.start.tz.module.bpm.enums.task.BpmTaskStatusEnum;
 import cn.start.tz.module.infra.api.file.FileApi;
+import cn.start.tz.module.infra.api.sign.SignApi;
+import cn.start.tz.module.infra.api.sign.dto.CntSignReqDTO;
+import cn.start.tz.module.infra.api.sign.dto.CntSignResponseRepsDTO;
+import cn.start.tz.module.infra.api.sign.dto.QrCodeValuesDTO;
+import cn.start.tz.module.infra.api.sign.dto.SignValuesDTO;
 import cn.start.tz.module.member.api.templatesendlog.TemplateSendLogApi;
 import cn.start.tz.module.member.api.templatesendlog.dto.TemplateSendLogDto;
 import cn.start.tz.module.member.api.templatesendlog.dto.TemplateSendLogRespDto;
@@ -232,6 +237,7 @@ import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.e
 import static cn.start.tz.framework.common.util.json.JsonUtils.getHandleDateValue;
 import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
 import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+import static cn.start.tz.module.infra.api.sign.dto.SignValuesDTO.SIGN_GZ_INS_SEAL2;
 import static cn.start.tz.module.pressure.enums.ErrorCodeConstants.REPORT_TEMPLATE_NOT_EXISTS;
 import static cn.start.tz.module.pressure2.enums.ErrorCodeConstants.*;
 import static java.time.LocalDate.now;
@@ -246,6 +252,9 @@ import static java.time.LocalDate.now;
 @Slf4j
 public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMapper, BoilerTaskOrderDO> implements BoilerTaskOrderService {
 
+    @Value("${tz.qrCodeWebUrl.boiler}")
+    private String boilerQrCodeUrl;
+
     @Resource
     private BoilerTaskOrderMapper boilerTaskOrderMapper;
 
@@ -348,6 +357,9 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
     @Resource
     private BpmTaskApi bpmTaskApi;
 
+    @Resource
+    private SignApi signApi;
+
     @Resource
     private RedisService redisService;
 
@@ -6442,6 +6454,42 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 
                     if (TaskOrderStatusEnum.REPORT_FINISH.getStatus().equals(taskOrderItemDO.getTaskStatus())){
                         log.info("---生成报告办结PDF---");
+
+                        //生成签章
+                        if (pdfWithPageNumbers != null) {
+                            try {
+                                if (EnvEnum.PROD.getEnvName().equals(env)) {
+                                    String id = taskOrderItemDO.getId();
+                                    List<SignValuesDTO> valuesDTOList = new ArrayList<>();
+                                    SignValuesDTO valuesDTO1 = new SignValuesDTO();
+                                    valuesDTO1.setSealType("JYZ");
+                                    valuesDTO1.setTextonce(0);
+                                    valuesDTO1.setText("机构公章或");
+                                    valuesDTOList.add(valuesDTO1);
+                                    SignValuesDTO valuesDTO2 = new SignValuesDTO();
+                                    valuesDTO2.setSealType(SIGN_GZ_INS_SEAL2);
+                                    valuesDTO2.setQfzdistance(400);
+                                    valuesDTO2.setQfznumber(32);
+                                    valuesDTO2.setQfzstart(1);
+                                    valuesDTO2.setQfzmode(1);
+                                    valuesDTOList.add(valuesDTO2);
+
+                                    String qrcode = String.format(boilerQrCodeUrl, id);
+                                    QrCodeValuesDTO qrCodeValuesDTO = new QrCodeValuesDTO();
+                                    qrCodeValuesDTO.setMetaname("特检院相关二维码");
+                                    qrCodeValuesDTO.setTextval(qrcode);
+                                    qrCodeValuesDTO.setPageno("1");
+                                    qrCodeValuesDTO.setWidth(95);
+                                    qrCodeValuesDTO.setHeight(95);
+                                    qrCodeValuesDTO.setX("515");
+                                    qrCodeValuesDTO.setY("700");
+                                    pdfWithPageNumbers = this.sign(pdfWithPageNumbers, valuesDTOList, qrCodeValuesDTO);
+                                }
+                            } catch (Exception e) {
+                                log.error("盖章失败 {}", taskOrderItemDO.getEquipCode(), e);
+                            }
+                        }
+
                         String fileUrl = fileApi.createFile(pdfWithPageNumbers);
                         BoilerTaskOrderItemDO updateTaskOrderItemDO = new BoilerTaskOrderItemDO()
                                 .setId(taskOrderItemDO.getId()).setIssueUrl(fileUrl);
@@ -7606,4 +7654,19 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 
     }
 
+    private byte[] sign(byte[] bytes, List<SignValuesDTO> valuesDTOList, QrCodeValuesDTO qrCodeValuesDTO) throws Exception {
+        CntSignReqDTO signReqDTO = new CntSignReqDTO();
+        signReqDTO.setBytes(bytes);
+        signReqDTO.setValuesDTOList(valuesDTOList);
+        signReqDTO.setQrCodeValuesDTO(qrCodeValuesDTO);
+        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();
+    }
+
 }

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

@@ -2788,38 +2788,6 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
         }
 
         if (EnvEnum.PROD.getEnvName().equals(env)) {
-            if (pdfByte != null) {
-                try {
-                    String id = taskOrderItemDO.getId();
-                    List<SignValuesDTO> valuesDTOList = new ArrayList<>();
-                    SignValuesDTO valuesDTO1 = new SignValuesDTO();
-                    valuesDTO1.setSealType("JYZ");
-                    valuesDTO1.setTextonce(0);
-                    valuesDTO1.setText("机构公章或");
-                    valuesDTOList.add(valuesDTO1);
-                    SignValuesDTO valuesDTO2 = new SignValuesDTO();
-                    valuesDTO2.setSealType(SIGN_GZ_INS_SEAL2);
-                    valuesDTO2.setQfzdistance(400);
-                    valuesDTO2.setQfznumber(32);
-                    valuesDTO2.setQfzstart(1);
-                    valuesDTO2.setQfzmode(1);
-                    valuesDTOList.add(valuesDTO2);
-
-                    String qrcode = String.format(boilerQrCodeUrl, id);
-                    QrCodeValuesDTO qrCodeValuesDTO = new QrCodeValuesDTO();
-                    qrCodeValuesDTO.setMetaname("特检院相关二维码");
-                    qrCodeValuesDTO.setTextval(qrcode);
-                    qrCodeValuesDTO.setPageno("1");
-                    qrCodeValuesDTO.setWidth(95);
-                    qrCodeValuesDTO.setHeight(95);
-                    qrCodeValuesDTO.setX("515");
-                    qrCodeValuesDTO.setY("700");
-                    pdfByte = this.sign(pdfByte, valuesDTOList, qrCodeValuesDTO);
-                    fileUrl = fileApi.createFile(pdfByte);
-                } catch (Exception e) {
-                    log.error("盖章失败 {}",taskOrderItemDO.getEquipCode(),e);
-                }
-            }
             reportUrl = minioHostouter + fileUrl;
         } else {
             reportUrl = minioHost + fileUrl;

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

@@ -26,6 +26,11 @@ import cn.start.tz.module.bpm.enums.pipe.PipeBpmModelConstants;
 import cn.start.tz.module.bpm.enums.task.BpmModeConstantsEnum;
 import cn.start.tz.module.bpm.enums.task.BpmTaskStatusEnum;
 import cn.start.tz.module.infra.api.file.FileApi;
+import cn.start.tz.module.infra.api.sign.SignApi;
+import cn.start.tz.module.infra.api.sign.dto.CntSignReqDTO;
+import cn.start.tz.module.infra.api.sign.dto.CntSignResponseRepsDTO;
+import cn.start.tz.module.infra.api.sign.dto.QrCodeValuesDTO;
+import cn.start.tz.module.infra.api.sign.dto.SignValuesDTO;
 import cn.start.tz.module.member.api.templatesendlog.TemplateSendLogApi;
 import cn.start.tz.module.member.api.templatesendlog.dto.TemplateSendLogDto;
 import cn.start.tz.module.member.api.templatesendlog.dto.TemplateSendLogRespDto;
@@ -219,6 +224,7 @@ import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.e
 import static cn.start.tz.framework.common.util.json.JsonUtils.getHandleDateValue;
 import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
 import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+import static cn.start.tz.module.infra.api.sign.dto.SignValuesDTO.SIGN_GZ_INS_SEAL2;
 import static cn.start.tz.module.pressure.enums.ErrorCodeConstants.REPORT_TEMPLATE_NOT_EXISTS;
 import static cn.start.tz.module.pressure2.enums.ErrorCodeConstants.BOILER_TASK_ORDER_NOT_EXISTS;
 import static java.time.LocalDate.now;
@@ -233,6 +239,9 @@ import static java.time.LocalDate.now;
 @Slf4j
 public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, PipeTaskOrderDO> implements PipeTaskOrderService {
 
+    @Value("${tz.qrCodeWebUrl.boiler}")
+    private String boilerQrCodeUrl;
+
     @Resource
     private AdminUserApi adminUserApi;
 
@@ -248,6 +257,9 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
     @Resource
     private FileApi fileApi;
 
+    @Resource
+    private SignApi signApi;
+
     @Resource
     private RedissonClient redissonClient;
 
@@ -5425,6 +5437,42 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
 
                     if (TaskOrderStatusEnum.REPORT_FINISH.getStatus().equals(taskOrderDO.getTaskStatus())){
                         log.info("---生成报告办结PDF---");
+
+                        //生成签章
+                        if (pdfWithPageNumbers != null) {
+                            try {
+                                if (EnvEnum.PROD.getEnvName().equals(env)) {
+                                    String id = taskOrderDO.getId();
+                                    List<SignValuesDTO> valuesDTOList = new ArrayList<>();
+                                    SignValuesDTO valuesDTO1 = new SignValuesDTO();
+                                    valuesDTO1.setSealType("JYZ");
+                                    valuesDTO1.setTextonce(0);
+                                    valuesDTO1.setText("机构公章或");
+                                    valuesDTOList.add(valuesDTO1);
+                                    SignValuesDTO valuesDTO2 = new SignValuesDTO();
+                                    valuesDTO2.setSealType(SIGN_GZ_INS_SEAL2);
+                                    valuesDTO2.setQfzdistance(400);
+                                    valuesDTO2.setQfznumber(32);
+                                    valuesDTO2.setQfzstart(1);
+                                    valuesDTO2.setQfzmode(1);
+                                    valuesDTOList.add(valuesDTO2);
+
+                                    String qrcode = String.format(boilerQrCodeUrl, id);
+                                    QrCodeValuesDTO qrCodeValuesDTO = new QrCodeValuesDTO();
+                                    qrCodeValuesDTO.setMetaname("特检院相关二维码");
+                                    qrCodeValuesDTO.setTextval(qrcode);
+                                    qrCodeValuesDTO.setPageno("1");
+                                    qrCodeValuesDTO.setWidth(95);
+                                    qrCodeValuesDTO.setHeight(95);
+                                    qrCodeValuesDTO.setX("515");
+                                    qrCodeValuesDTO.setY("700");
+                                    pdfWithPageNumbers = this.sign(pdfWithPageNumbers, valuesDTOList, qrCodeValuesDTO);
+                                }
+                            } catch (Exception e) {
+                                log.error("盖章失败 {}", taskOrderDO.getId(), e);
+                            }
+                        }
+
                         String fileUrl = fileApi.createFile(pdfWithPageNumbers);
                         PipeTaskOrderDO updateTaskOrderDO = new PipeTaskOrderDO()
                                 .setId(taskOrderDO.getId()).setIssueUrl(fileUrl);
@@ -6539,4 +6587,19 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
         return taskOrderItemDetailsVO;
 
     }
+
+    private byte[] sign(byte[] bytes, List<SignValuesDTO> valuesDTOList, QrCodeValuesDTO qrCodeValuesDTO) throws Exception {
+        CntSignReqDTO signReqDTO = new CntSignReqDTO();
+        signReqDTO.setBytes(bytes);
+        signReqDTO.setValuesDTOList(valuesDTOList);
+        signReqDTO.setQrCodeValuesDTO(qrCodeValuesDTO);
+        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();
+    }
 }

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

@@ -2846,38 +2846,6 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
         }
 
         if (EnvEnum.PROD.getEnvName().equals(env)) {
-            if (pdfByte != null) {
-                try {
-                    String id = taskOrderDO.getId();
-                    List<SignValuesDTO> valuesDTOList = new ArrayList<>();
-                    SignValuesDTO valuesDTO1 = new SignValuesDTO();
-                    valuesDTO1.setSealType("JYZ");
-                    valuesDTO1.setTextonce(0);
-                    valuesDTO1.setText("机构公章或");
-                    valuesDTOList.add(valuesDTO1);
-                    SignValuesDTO valuesDTO2 = new SignValuesDTO();
-                    valuesDTO2.setSealType(SIGN_GZ_INS_SEAL2);
-                    valuesDTO2.setQfzdistance(400);
-                    valuesDTO2.setQfznumber(32);
-                    valuesDTO2.setQfzstart(1);
-                    valuesDTO2.setQfzmode(1);
-                    valuesDTOList.add(valuesDTO2);
-
-                    String qrcode = String.format(pipeQrCodeUrl, id);
-                    QrCodeValuesDTO qrCodeValuesDTO = new QrCodeValuesDTO();
-                    qrCodeValuesDTO.setMetaname("特检院相关二维码");
-                    qrCodeValuesDTO.setTextval(qrcode);
-                    qrCodeValuesDTO.setPageno("1");
-                    qrCodeValuesDTO.setWidth(95);
-                    qrCodeValuesDTO.setHeight(95);
-                    qrCodeValuesDTO.setX("515");
-                    qrCodeValuesDTO.setY("700");
-                    pdfByte = this.sign(pdfByte, valuesDTOList, qrCodeValuesDTO);
-                    fileUrl = fileApi.createFile(pdfByte);
-                } catch (Exception e) {
-                    log.error("盖章失败 {}", taskOrderDO.getId(), e);
-                }
-            }
             reportUrl = minioHostouter + fileUrl;
         } else {
             reportUrl = minioHost + fileUrl;