diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java index fe96d976..9a90457c 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java @@ -135,6 +135,8 @@ public class EssService { BizAssertions.assertNotNull(signPerson, "当前签署人员未加入单位, 无法签署"); EssContract contract = essContractDao.getForUpdateOrThrow(request.getEssContractId()); BizAssertions.assertFalse(contract.isFinalState(), "合同已是最终状态 {}, 无法签署", contract.getState()); + Approver approver = contract.getApproverOrThrow(request.getRecipientId()); + BizAssertions.assertFalse(approver.isSignPersonPreset(), "非动态签署人不能使用该接口签署"); if (contract.getConstraint() == Constraint.ONE_PERSON_PER_ORG) { BizAssertions.assertFalse(contract.isOrgSigned(request.getOuId()), "该单位已签署, 无法再次签署"); contract.getOrCreateAssignment().getSignPerOrgs().find(request.getOuId()).ifPresent(org -> { @@ -153,10 +155,7 @@ public class EssService { if (request.getEndpoint() != SignUrlEndpoint.PC) return essClient.createSignUrls(superAdmin, contract.getEssContractId(), request.getRecipientId(), signPerson); - Approver approver = contract.getApproverOrThrow(request.getRecipientId()); - if (!approver.isSignPersonPreset()) - essClient.createFlowApprovers(superAdmin, contract.getEssContractId(), request.getRecipientId(), - signPerson); + essClient.createFlowApprovers(superAdmin, contract.getEssContractId(), request.getRecipientId(), signPerson); return essClient.createPcSignUrl(superAdmin, contract.getEssContractId(), signPerson); }