diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/entity/EssContract.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/entity/EssContract.java index dab371fb..d64a72a3 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/entity/EssContract.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/entity/EssContract.java @@ -145,20 +145,22 @@ public class EssContract extends BaseEntity { return approvers == null ? null : approvers.get(idx); } - public Optional findApproverByRecipientId(String recipientId) { - if (approvers == null) - return Optional.empty(); - return approvers.stream() - .filter(approver -> approver.getEssRecipientId().equals(recipientId)) - .findFirst(); + public Approver getApproverOrThrow(String recipientId) { + Approver approver = approvers.stream() + .filter(a -> a.getEssRecipientId().equals(recipientId)) + .findFirst() + .orElse(null); + BizAssertions.assertNotNull(approver, "无效的签署编号: {}", recipientId); + return approver; } - public Optional findApproveDetailByRecipientId(String recipientId) { - if (approveDetails == null) - return Optional.empty(); - return approveDetails.stream() - .filter(detail -> detail.getRecipientId().equals(recipientId)) - .findFirst(); + public EssApproveDetail getApproveDetailOrThrow(String recipientId) { + EssApproveDetail detail = approveDetails.stream() + .filter(d -> d.getRecipientId().equals(recipientId)) + .findFirst() + .orElse(null); + BizAssertions.assertNotNull(detail, "无效的签署编号: {}", recipientId); + return detail; } public boolean isApproversPreset() { 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 4e6f217c..8b4e7bce 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 @@ -160,16 +160,9 @@ public class EssService { return signUrlFun.apply(null); BizAssertions.assertFalse(StringUtils.isBlank(request.getRecipientId()), "存在动态签署人的情况下, recipientId不能为空"); - Approver approver = contract - .findApproverByRecipientId(request.getRecipientId()) - .orElse(null); - BizAssertions.assertNotNull(approver, "无效的签署编号: {}", request.getRecipientId()); - EssApproveDetail approveDetail = contract - .findApproveDetailByRecipientId(request.getRecipientId()) - // 上面已经保证了肯定存在 - .orElseThrow(InternalError::new); + EssApproveDetail approveDetail = contract.getApproveDetailOrThrow(request.getRecipientId()); BizAssertions.assertNotEquals(EssContractApproveState.ACCEPT, approveDetail.getState(), "该签署位已签署, 无法再次签署"); - //noinspection DataFlowIssue + Approver approver = contract.getApproverOrThrow(request.getRecipientId()); if (approver.getSignPerson() != null) { BizAssertions.assertTrue(OrgPerson.equals(approver.getSignPerson(), request), "签署人员不匹配"); return signUrlFun.apply(null);