feat(REQ-3798) - 处理签章合同创建逻辑
This commit is contained in:
parent
9dec48a87c
commit
99ec5f738b
@ -492,7 +492,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
|||||||
// 移除上一次申请
|
// 移除上一次申请
|
||||||
removeLastRequest(visa);
|
removeLastRequest(visa);
|
||||||
// 或者指定单位下的签章人作为审批人
|
// 或者指定单位下的签章人作为审批人
|
||||||
Map<Long, List<BpmnTaskDelegateAssigner>> stampUserMap = listOuAssignees(req);
|
Map<Long, List<EssSealPersonInfo>> stampUserMap = listOuAssignees(req);
|
||||||
// 创建电子签合同
|
// 创建电子签合同
|
||||||
Map<String, String> essRecipientIdMap = createContract(req, visa, stampUserMap);
|
Map<String, String> essRecipientIdMap = createContract(req, visa, stampUserMap);
|
||||||
|
|
||||||
@ -504,6 +504,9 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
|||||||
|
|
||||||
// 用印申请信息
|
// 用印申请信息
|
||||||
String uuid = UUID.fastUUID().toString(true);
|
String uuid = UUID.fastUUID().toString(true);
|
||||||
|
//模型转换
|
||||||
|
Map<Long, List<BpmnTaskDelegateAssigner>> assigneeMaps = buildAssignees(stampUserMap);
|
||||||
|
|
||||||
List<ChangeRecordRelation> relations = req.getRequestStamps().stream().map(i -> {
|
List<ChangeRecordRelation> relations = req.getRequestStamps().stream().map(i -> {
|
||||||
ChangeRecordRelation stamp = new ChangeRecordRelation();
|
ChangeRecordRelation stamp = new ChangeRecordRelation();
|
||||||
stamp.setVisaId(req.getVisaId());
|
stamp.setVisaId(req.getVisaId());
|
||||||
@ -515,7 +518,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
|||||||
.stampType(i.getSealType())
|
.stampType(i.getSealType())
|
||||||
.cooperationShipType(ouTypeMap.getOrDefault(i.getOuId(), ""))
|
.cooperationShipType(ouTypeMap.getOrDefault(i.getOuId(), ""))
|
||||||
// 发起用印的审批
|
// 发起用印的审批
|
||||||
.approvalId(createEssProcessInstance(i, visa, req, essRecipientIdMap, specifyAssigneeActivity, stampUserMap))
|
.approvalId(createEssProcessInstance(i, visa, req, essRecipientIdMap, specifyAssigneeActivity, assigneeMaps))
|
||||||
.uniqueId(uuid)
|
.uniqueId(uuid)
|
||||||
.build()));
|
.build()));
|
||||||
stamp.setContentExt(PROCESSING.getStatus());
|
stamp.setContentExt(PROCESSING.getStatus());
|
||||||
@ -562,6 +565,20 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
|||||||
changeRecordService.updateById(visa);
|
changeRecordService.updateById(visa);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<Long, List<BpmnTaskDelegateAssigner>> buildAssignees(Map<Long, List<EssSealPersonInfo>> stampUserMap) {
|
||||||
|
Map<Long, List<BpmnTaskDelegateAssigner>> result = new HashMap<>();
|
||||||
|
stampUserMap.forEach((key, value) -> {
|
||||||
|
if (CollectionUtils.isNotEmpty(value)) {
|
||||||
|
result.put(key, value.stream().map(u -> BpmnTaskDelegateAssigner.builder()
|
||||||
|
.personId(String.valueOf(u.getSealPerson().getPersonId()))
|
||||||
|
.ouId(String.valueOf(u.getOuId()))
|
||||||
|
.tenantId(NO_TENANT_ID)
|
||||||
|
.build()).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private void insertLog(UpdateVisaChangeReq req) {
|
private void insertLog(UpdateVisaChangeReq req) {
|
||||||
if (Objects.equals(req.getVisaStampAction(), REQUEST_STAMP)) {
|
if (Objects.equals(req.getVisaStampAction(), REQUEST_STAMP)) {
|
||||||
changeRecordLogService.addLog(ChangeRecordLog.builder()
|
changeRecordLogService.addLog(ChangeRecordLog.builder()
|
||||||
@ -574,7 +591,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<Long, List<BpmnTaskDelegateAssigner>> listOuAssignees(VisaRequestStampReq req) {
|
private Map<Long, List<EssSealPersonInfo>> listOuAssignees(VisaRequestStampReq req) {
|
||||||
// 构建印章类型映射
|
// 构建印章类型映射
|
||||||
Map<Long, EssSealType> stampMap = req.getRequestStamps().stream()
|
Map<Long, EssSealType> stampMap = req.getRequestStamps().stream()
|
||||||
.collect(Collectors.toMap(
|
.collect(Collectors.toMap(
|
||||||
@ -598,19 +615,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
|||||||
},
|
},
|
||||||
(existing, replacement) -> existing // 处理键冲突
|
(existing, replacement) -> existing // 处理键冲突
|
||||||
));
|
));
|
||||||
Map<Long, List<BpmnTaskDelegateAssigner>> result = new HashMap<>();
|
return stampUserMap;
|
||||||
stampUserMap.forEach((key, value) -> {
|
|
||||||
if (CollectionUtils.isNotEmpty(value)) {
|
|
||||||
result.put(key, value.stream().map(u -> BpmnTaskDelegateAssigner.builder()
|
|
||||||
.personId(String.valueOf(u.getSealPerson().getPersonId()))
|
|
||||||
.ouId(String.valueOf(u.getOuId()))
|
|
||||||
.tenantId(NO_TENANT_ID)
|
|
||||||
.build()).collect(Collectors.toList()));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeLastRequest(ChangeRecord visa) {
|
private void removeLastRequest(ChangeRecord visa) {
|
||||||
@ -629,7 +634,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
|||||||
return cooperateShipResps.stream().collect(Collectors.toMap(CooperateShipResp::getOrganizationalUnitId, i -> SaasCooperateShipCooperateTypeEnum.getByCode(i.getCooperateType()).name()));
|
return cooperateShipResps.stream().collect(Collectors.toMap(CooperateShipResp::getOrganizationalUnitId, i -> SaasCooperateShipCooperateTypeEnum.getByCode(i.getCooperateType()).name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, String> createContract(VisaRequestStampReq req, ChangeRecord visa, Map<Long, List<BpmnTaskDelegateAssigner>> stampUserMap) {
|
private Map<String, String> createContract(VisaRequestStampReq req, ChangeRecord visa, Map<Long, List<EssSealPersonInfo>> stampUserMap) {
|
||||||
if (StringUtils.hasText(visa.getContractId())) {
|
if (StringUtils.hasText(visa.getContractId())) {
|
||||||
List<ChangeRecordRelation> recipientIds = findByVisaAndVarName(visa.getId(), ESS_RECIPIENT_ID_MAP.name());
|
List<ChangeRecordRelation> recipientIds = findByVisaAndVarName(visa.getId(), ESS_RECIPIENT_ID_MAP.name());
|
||||||
AssertUtil.notEmpty(recipientIds, "未找到签章位置信息");
|
AssertUtil.notEmpty(recipientIds, "未找到签章位置信息");
|
||||||
@ -653,14 +658,14 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
|||||||
createContractRequest.setAppCode(MSG_CENTER_APP_CODE);
|
createContractRequest.setAppCode(MSG_CENTER_APP_CODE);
|
||||||
createContractRequest.setBizCode(String.valueOf(visa.getId()));
|
createContractRequest.setBizCode(String.valueOf(visa.getId()));
|
||||||
|
|
||||||
List<BpmnTaskDelegateAssigner> mergedList = stampUserMap.values().stream()
|
List<EssSealPersonInfo> mergedList = stampUserMap.values().stream()
|
||||||
.flatMap(Collection::stream)
|
.flatMap(Collection::stream)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList()).stream().filter(EssSealPersonInfo::isSuperAdmin).collect(Collectors.toList());
|
||||||
AssertUtil.notEmpty(mergedList, "无法创建签章合同,未找到签章用户");
|
AssertUtil.notEmpty(mergedList, "无法创建签章合同,未找到签章用户");
|
||||||
BpmnTaskDelegateAssigner assigner = mergedList.get(0);
|
EssSealPersonInfo personInfo = mergedList.get(0);
|
||||||
OperatorInfo creator = new OperatorInfo();
|
OperatorInfo creator = new OperatorInfo();
|
||||||
creator.setOuId(Long.valueOf(assigner.getOuId()));
|
creator.setOuId(personInfo.getOuId());
|
||||||
creator.setPersonId(Long.valueOf(assigner.getPersonId()));
|
creator.setPersonId(personInfo.getSealPerson().getPersonId());
|
||||||
createContractRequest.setCreator(creator);
|
createContractRequest.setCreator(creator);
|
||||||
|
|
||||||
CreateContractByFileResponse contract = essGateway.createContract(createContractRequest);
|
CreateContractByFileResponse contract = essGateway.createContract(createContractRequest);
|
||||||
@ -697,7 +702,8 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
|||||||
ChangeRecord visa,
|
ChangeRecord visa,
|
||||||
VisaRequestStampReq req,
|
VisaRequestStampReq req,
|
||||||
Map<String, String> essRecipientIdMap,
|
Map<String, String> essRecipientIdMap,
|
||||||
NodesByModelVO specifyAssigneeActivity, Map<Long, List<BpmnTaskDelegateAssigner>> stampUserMap) {
|
NodesByModelVO specifyAssigneeActivity,
|
||||||
|
Map<Long, List<BpmnTaskDelegateAssigner>> assigneeMaps) {
|
||||||
List<GetWorkspaceDetailRes> workspaces = workspaceGateway.getWorkspace(GetWorkspaceDetailReq.builder()
|
List<GetWorkspaceDetailRes> workspaces = workspaceGateway.getWorkspace(GetWorkspaceDetailReq.builder()
|
||||||
.organizationUnitId(model.getOuId())
|
.organizationUnitId(model.getOuId())
|
||||||
.type(1)
|
.type(1)
|
||||||
@ -708,7 +714,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
|
|||||||
BpmnProcessInstanceCreateDTO create = new BpmnProcessInstanceCreateDTO();
|
BpmnProcessInstanceCreateDTO create = new BpmnProcessInstanceCreateDTO();
|
||||||
create.setBusinessKey(String.valueOf(visa.getId()));
|
create.setBusinessKey(String.valueOf(visa.getId()));
|
||||||
create.setProcessDefinitionKey(refreshableConfiguration.getStampProcessDefinitionKey());
|
create.setProcessDefinitionKey(refreshableConfiguration.getStampProcessDefinitionKey());
|
||||||
List<BpmnTaskDelegateAssigner> assigners = stampUserMap.getOrDefault(model.getOuId(), new ArrayList<>());
|
List<BpmnTaskDelegateAssigner> assigners = assigneeMaps.getOrDefault(model.getOuId(), new ArrayList<>());
|
||||||
assigners.forEach(i -> i.setTenantId(String.valueOf(entWorkspace.getId())));
|
assigners.forEach(i -> i.setTenantId(String.valueOf(entWorkspace.getId())));
|
||||||
// 指定审批人
|
// 指定审批人
|
||||||
create.setSpecifyAssignerMap(Maps.of(specifyAssigneeActivity.getActivityId(), assigners));
|
create.setSpecifyAssignerMap(Maps.of(specifyAssigneeActivity.getActivityId(), assigners));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user