|
|
@@ -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();
|
|
|
+ }
|
|
|
}
|