REQ-3581: 该签署位已签署, 无法再次签署
This commit is contained in:
parent
b9725fe6a1
commit
911cb2d078
@ -145,20 +145,22 @@ public class EssContract extends BaseEntity<EssContract> {
|
|||||||
return approvers == null ? null : approvers.get(idx);
|
return approvers == null ? null : approvers.get(idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<Approver> findApproverByRecipientId(String recipientId) {
|
public Approver getApproverOrThrow(String recipientId) {
|
||||||
if (approvers == null)
|
Approver approver = approvers.stream()
|
||||||
return Optional.empty();
|
.filter(a -> a.getEssRecipientId().equals(recipientId))
|
||||||
return approvers.stream()
|
.findFirst()
|
||||||
.filter(approver -> approver.getEssRecipientId().equals(recipientId))
|
.orElse(null);
|
||||||
.findFirst();
|
BizAssertions.assertNotNull(approver, "无效的签署编号: {}", recipientId);
|
||||||
|
return approver;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<EssApproveDetail> findApproveDetailByRecipientId(String recipientId) {
|
public EssApproveDetail getApproveDetailOrThrow(String recipientId) {
|
||||||
if (approveDetails == null)
|
EssApproveDetail detail = approveDetails.stream()
|
||||||
return Optional.empty();
|
.filter(d -> d.getRecipientId().equals(recipientId))
|
||||||
return approveDetails.stream()
|
.findFirst()
|
||||||
.filter(detail -> detail.getRecipientId().equals(recipientId))
|
.orElse(null);
|
||||||
.findFirst();
|
BizAssertions.assertNotNull(detail, "无效的签署编号: {}", recipientId);
|
||||||
|
return detail;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isApproversPreset() {
|
public boolean isApproversPreset() {
|
||||||
|
|||||||
@ -160,16 +160,9 @@ public class EssService {
|
|||||||
return signUrlFun.apply(null);
|
return signUrlFun.apply(null);
|
||||||
BizAssertions.assertFalse(StringUtils.isBlank(request.getRecipientId()),
|
BizAssertions.assertFalse(StringUtils.isBlank(request.getRecipientId()),
|
||||||
"存在动态签署人的情况下, recipientId不能为空");
|
"存在动态签署人的情况下, recipientId不能为空");
|
||||||
Approver approver = contract
|
EssApproveDetail approveDetail = contract.getApproveDetailOrThrow(request.getRecipientId());
|
||||||
.findApproverByRecipientId(request.getRecipientId())
|
|
||||||
.orElse(null);
|
|
||||||
BizAssertions.assertNotNull(approver, "无效的签署编号: {}", request.getRecipientId());
|
|
||||||
EssApproveDetail approveDetail = contract
|
|
||||||
.findApproveDetailByRecipientId(request.getRecipientId())
|
|
||||||
// 上面已经保证了肯定存在
|
|
||||||
.orElseThrow(InternalError::new);
|
|
||||||
BizAssertions.assertNotEquals(EssContractApproveState.ACCEPT, approveDetail.getState(), "该签署位已签署, 无法再次签署");
|
BizAssertions.assertNotEquals(EssContractApproveState.ACCEPT, approveDetail.getState(), "该签署位已签署, 无法再次签署");
|
||||||
//noinspection DataFlowIssue
|
Approver approver = contract.getApproverOrThrow(request.getRecipientId());
|
||||||
if (approver.getSignPerson() != null) {
|
if (approver.getSignPerson() != null) {
|
||||||
BizAssertions.assertTrue(OrgPerson.equals(approver.getSignPerson(), request), "签署人员不匹配");
|
BizAssertions.assertTrue(OrgPerson.equals(approver.getSignPerson(), request), "签署人员不匹配");
|
||||||
return signUrlFun.apply(null);
|
return signUrlFun.apply(null);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user