feat(REQ-3798) - 处理签章合同创建逻辑

This commit is contained in:
wangli 2025-03-06 16:15:25 +08:00
parent 0aa2fcc0bc
commit e788989e0a

View File

@ -91,6 +91,7 @@ import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -490,16 +491,16 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
// 移除上一次申请
removeLastRequest(visa);
// 或者指定单位下的签章人作为审批人
Map<Long, List<BpmnTaskDelegateAssigner>> stampUserMap = listOuAssignees(req);
// 创建电子签合同
Map<String, String> essRecipientIdMap = createContract(req, visa);
Map<String, String> essRecipientIdMap = createContract(req, visa, stampUserMap);
// 拉取单位类型
Map<Long, String> ouTypeMap = listCooperateShipTypes(req, visa);
// 拉取模型可设置审批人的节点
NodesByModelVO specifyAssigneeActivity = getSpecifyAssigneeActivity(visa);
// 或者指定单位下的签章人作为审批人
Map<Long, List<BpmnTaskDelegateAssigner>> stampUserMap = listOuAssignees(req);
// 用印申请信息
String uuid = UUID.fastUUID().toString(true);
@ -607,6 +608,8 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
.build()).collect(Collectors.toList()));
}
});
return result;
}
@ -626,7 +629,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
return cooperateShipResps.stream().collect(Collectors.toMap(CooperateShipResp::getOrganizationalUnitId, i -> SaasCooperateShipCooperateTypeEnum.getByCode(i.getCooperateType()).name()));
}
private Map<String, String> createContract(VisaRequestStampReq req, ChangeRecord visa) {
private Map<String, String> createContract(VisaRequestStampReq req, ChangeRecord visa, Map<Long, List<BpmnTaskDelegateAssigner>> stampUserMap) {
if (StringUtils.hasText(visa.getContractId())) {
List<ChangeRecordRelation> recipientIds = findByVisaAndVarName(visa.getId(), ESS_RECIPIENT_ID_MAP.name());
AssertUtil.notEmpty(recipientIds, "未找到签章位置信息");
@ -649,9 +652,15 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
createContractRequest.setByFile(pdfFile);
createContractRequest.setAppCode(MSG_CENTER_APP_CODE);
createContractRequest.setBizCode(String.valueOf(visa.getId()));
List<BpmnTaskDelegateAssigner> mergedList = stampUserMap.values().stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
AssertUtil.notEmpty(mergedList, "无法创建签章合同,未找到签章用户");
BpmnTaskDelegateAssigner assigner = mergedList.get(0);
OperatorInfo creator = new OperatorInfo();
creator.setOuId(req.getOperatorOuId());
creator.setPersonId(req.getOperatorPersonId());
creator.setOuId(Long.valueOf(assigner.getOuId()));
creator.setPersonId(Long.valueOf(assigner.getPersonId()));
createContractRequest.setCreator(creator);
CreateContractByFileResponse contract = essGateway.createContract(createContractRequest);