REQ-3581: 动态获取签署链接

This commit is contained in:
yanglin 2025-03-04 15:37:22 +08:00
parent 2045b49e68
commit 5800716140

View File

@ -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(),