REQ-3581: 动态获取签署链接
This commit is contained in:
parent
2045b49e68
commit
5800716140
@ -134,18 +134,20 @@ public class EssService {
|
||||
BizAssertions.assertNotNull(signPerson, "当前签署人员未加入单位, 无法签署");
|
||||
EssContract contract = essContractDao.getForUpdateOrThrow(request.getEssContractId());
|
||||
BizAssertions.assertFalse(contract.isFinalState(), "合同已是最终状态 {}, 无法签署", contract.getState());
|
||||
if (contract.getConstraint() == Constraint.ONE_PERSON_PER_ORG)
|
||||
if (contract.getConstraint() == Constraint.ONE_PERSON_PER_ORG) {
|
||||
BizAssertions.assertFalse(contract.isOrgSigned(request.getOuId()), "该单位已签署, 无法再次签署");
|
||||
contract.getOrCreateAssignment().getSignPerOrgs().find(request.getOuId()).ifPresent(org -> {
|
||||
BizAssertions.assertEquals(org.getRecipientId(), request.getRecipientId(), "单位的签署编号不能变化");
|
||||
if (!org.getPersonId().equals(request.getPersonId())) {
|
||||
EssPerson signSuperAdmin = orgManager.getSuperAdminOrThrow(signPerson.getOuId());
|
||||
essClient.forward(signSuperAdmin, contract.getEssContractId(), request.getRecipientId(), signPerson);
|
||||
}
|
||||
});
|
||||
contract.getOrCreateAssignment().getSignPerOrgs().remove(request.getOuId());
|
||||
contract.getOrCreateAssignment().getSignPerOrgs().add(signPerson, request.getRecipientId());
|
||||
essContractDao.updateAssigment(contract);
|
||||
contract.getOrCreateAssignment().getSignPerOrgs().find(request.getOuId()).ifPresent(org -> {
|
||||
BizAssertions.assertEquals(org.getRecipientId(), request.getRecipientId(), "单位的签署编号不能变化");
|
||||
if (!org.getPersonId().equals(request.getPersonId())) {
|
||||
EssPerson signSuperAdmin = orgManager.getSuperAdminOrThrow(signPerson.getOuId());
|
||||
essClient.forward(signSuperAdmin, contract.getEssContractId(), request.getRecipientId(),
|
||||
signPerson);
|
||||
}
|
||||
});
|
||||
contract.getOrCreateAssignment().getSignPerOrgs().remove(request.getOuId());
|
||||
contract.getOrCreateAssignment().getSignPerOrgs().add(signPerson, request.getRecipientId());
|
||||
essContractDao.updateAssigment(contract);
|
||||
}
|
||||
EssPerson superAdmin = contractManager.getContractSuperAdmin(contract);
|
||||
if (request.getEndpoint() != SignUrlEndpoint.PC)
|
||||
return essClient.createSignUrls(superAdmin, contract.getEssContractId(), request.getRecipientId(),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user