feat(REQ-3300) - 完善申请用印逻辑

This commit is contained in:
wangli 2025-02-25 10:10:43 +08:00
parent b22255a078
commit e805a9019a
3 changed files with 30 additions and 16 deletions

View File

@ -25,6 +25,7 @@ public enum VisaRelationFieldEnum {
ORDER("order", "单据"), ORDER("order", "单据"),
IM_GROUP_PARTICIPATE("im_group_participate", "im群聊参与人"), IM_GROUP_PARTICIPATE("im_group_participate", "im群聊参与人"),
PRINT_PDF_FILE("print_pdf_file", "打印生成的PDF文件"), PRINT_PDF_FILE("print_pdf_file", "打印生成的PDF文件"),
ESS_RECIPIENT_ID_MAP("ess_recipient_id_map", "电子签章单位与签证位置的映射"),
; ;
private final String code; private final String code;
private final String desc; private final String desc;

View File

@ -33,7 +33,6 @@ public class VisaRequestStampReq {
/** /**
* 变洽签打印 PDF 附件信息 * 变洽签打印 PDF 附件信息
*/ */
@NotNull(message = "PDF附件信息不能为空")
private UploadFieldDTO pdfFile; private UploadFieldDTO pdfFile;
/** /**

View File

@ -11,6 +11,7 @@ import cn.axzo.nanopart.ess.api.domain.CreateContractByFile;
import cn.axzo.nanopart.ess.api.domain.OperatorInfo; import cn.axzo.nanopart.ess.api.domain.OperatorInfo;
import cn.axzo.nanopart.ess.api.domain.contract.Approver; import cn.axzo.nanopart.ess.api.domain.contract.Approver;
import cn.axzo.nanopart.ess.api.request.CreateContractByFileRequest; import cn.axzo.nanopart.ess.api.request.CreateContractByFileRequest;
import cn.axzo.nanopart.ess.api.response.CreateContractByFileResponse;
import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum; import cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum;
@ -62,6 +63,7 @@ import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Base64; import java.util.Base64;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
@ -74,6 +76,7 @@ import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_OWNER_TIP
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_PARTICIPATE_TIPS; import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_PARTICIPATE_TIPS;
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_PARTICIPATE_TIPS_OPERATED; import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_PARTICIPATE_TIPS_OPERATED;
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.MSG_CENTER_APP_CODE; import static cn.axzo.nanopart.visa.api.constant.VisaConstant.MSG_CENTER_APP_CODE;
import static cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum.ESS_RECIPIENT_ID_MAP;
import static cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum.PRINT_PDF_FILE; import static cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum.PRINT_PDF_FILE;
import static cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS; import static cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING; import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING;
@ -388,10 +391,11 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
/** /**
* 单独上传附件-追加操作日志 * 单独上传附件-追加操作日志
* @param attach 上传附件信息 *
* @param visaId 变更签证Id * @param attach 上传附件信息
* @param personId 人员Id * @param visaId 变更签证Id
* @param ouId 单位id * @param personId 人员Id
* @param ouId 单位id
* @param workspaceId 项目Id * @param workspaceId 项目Id
*/ */
private void addLogWhenAttachAppend(List<UploadFieldDTO> attach, Long visaId, Long personId, Long ouId, Long workspaceId) { private void addLogWhenAttachAppend(List<UploadFieldDTO> attach, Long visaId, Long personId, Long ouId, Long workspaceId) {
@ -442,15 +446,16 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
}).collect(Collectors.toList()); }).collect(Collectors.toList());
// 打印生成的 PDF 文件信息 // 打印生成的 PDF 文件信息
ChangeRecordRelation relation = new ChangeRecordRelation(); if (Objects.nonNull(req.getPdfFile())) {
relation.setVisaId(req.getVisaId()); ChangeRecordRelation relation = new ChangeRecordRelation();
relation.setVarName(PRINT_PDF_FILE.name()); relation.setVisaId(req.getVisaId());
relation.setVarType(VisaRelationVarTypeEnum.JSON.getType()); relation.setVarName(PRINT_PDF_FILE.name());
relation.setContent(JSON.toJSONString(req.getPdfFile())); relation.setVarType(VisaRelationVarTypeEnum.JSON.getType());
relation.setCreateBy(req.getOperatorPersonId()); relation.setContent(JSON.toJSONString(req.getPdfFile()));
relation.setUpdateBy(req.getOperatorPersonId()); relation.setCreateBy(req.getOperatorPersonId());
relations.add(relation); relation.setUpdateBy(req.getOperatorPersonId());
saveBatch(relations); relations.add(relation);
}
CreateContractByFileRequest createContractRequest = new CreateContractByFileRequest(); CreateContractByFileRequest createContractRequest = new CreateContractByFileRequest();
CreateContractByFile pdfFile = new CreateContractByFile(); CreateContractByFile pdfFile = new CreateContractByFile();
@ -467,7 +472,6 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
}).collect(Collectors.toList())); }).collect(Collectors.toList()));
createContractRequest.setByFile(pdfFile); createContractRequest.setByFile(pdfFile);
// TODO
createContractRequest.setAppCode(MSG_CENTER_APP_CODE); createContractRequest.setAppCode(MSG_CENTER_APP_CODE);
createContractRequest.setBizCode(String.valueOf(visa.getId())); createContractRequest.setBizCode(String.valueOf(visa.getId()));
OperatorInfo creator = new OperatorInfo(); OperatorInfo creator = new OperatorInfo();
@ -475,8 +479,18 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
creator.setPersonId(req.getOperatorPersonId()); creator.setPersonId(req.getOperatorPersonId());
createContractRequest.setCreator(creator); createContractRequest.setCreator(creator);
essGateway.createContract(createContractRequest); CreateContractByFileResponse contract = essGateway.createContract(createContractRequest);
AssertUtil.notNull(contract, "腾讯电子签合同创建失败");
visa.setContractId(contract.getEssContractId());
changeRecordService.updateById(visa);
ChangeRecordRelation recipientRelation = new ChangeRecordRelation();
Map<Long, String> essRecipientIdMap = new HashMap<>();
recipientRelation.setVisaId(visa.getId());
recipientRelation.setVarName(ESS_RECIPIENT_ID_MAP.name());
recipientRelation.setVarType(VisaRelationVarTypeEnum.JSON.getType());
recipientRelation.setContent(JSON.toJSONString(essRecipientIdMap));
saveBatch(relations);
} }
public static String downloadFileAndConvertToBase64(String fileUrl) throws IOException { public static String downloadFileAndConvertToBase64(String fileUrl) throws IOException {