From e5e507d05176705c45878d9f33d75fe1fb109c21 Mon Sep 17 00:00:00 2001 From: yanglin Date: Thu, 20 Feb 2025 13:46:14 +0800 Subject: [PATCH] =?UTF-8?q?REQ-3581:=20=E8=AE=BE=E7=BD=AE=E7=AD=BE?= =?UTF-8?q?=E7=BD=B2=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nanopart/ess/api/domain/contract/Approver.java | 2 +- .../ess/api/domain/contract/EssApproveDetail.java | 9 ++------- .../axzo/nanopart/ess/server/entity/EssContract.java | 5 ++++- .../server/ess/controller/CallbackController.java | 12 ++++-------- .../nanopart/ess/server/ess/domain/PersonOpenId.java | 8 ++++++++ 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/domain/contract/Approver.java b/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/domain/contract/Approver.java index 48309677..ae69205a 100644 --- a/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/domain/contract/Approver.java +++ b/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/domain/contract/Approver.java @@ -40,7 +40,7 @@ public class Approver implements OrgPerson { */ @Range(min = 3, max = 300, message = "preReadTime必须在3-300之间") @NotNull(message = "preReadTime不能为空") - private Long preReadTimeSeconds = 10L; + private Long preReadTimeSeconds = 5L; /** * 指定盖章时, 使用的章类型 diff --git a/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/domain/contract/EssApproveDetail.java b/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/domain/contract/EssApproveDetail.java index 0c9b4fb5..4f27db43 100644 --- a/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/domain/contract/EssApproveDetail.java +++ b/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/domain/contract/EssApproveDetail.java @@ -12,14 +12,9 @@ import lombok.Setter; public class EssApproveDetail { /** - * 签署人单位, 动态签署人在没有签署的时候可能为空 + * 签署人, 动态签署人在没有签署的时候可能为null */ - private Long ouId; - - /** - * 签署人, 动态签署人在没有签署的时候可能为空 - */ - private Long personId; + private OrgPersonInfo signPerson; /** * 签署编号 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 c02f7ab4..df6a3413 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 @@ -16,6 +16,7 @@ import lombok.Getter; import lombok.Setter; import java.util.List; +import java.util.Objects; import java.util.Optional; /** @@ -106,7 +107,9 @@ public class EssContract extends BaseEntity { if (approveDetails == null) return false; return approveDetails.stream() - .anyMatch(detail -> ouId.equals(detail.getOuId())); + .map(EssApproveDetail::getSignPerson) + .filter(Objects::nonNull) + .anyMatch(person -> ouId.equals(person.getOuId())); } public int approverSize() { diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/controller/CallbackController.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/controller/CallbackController.java index d4db472d..4a389806 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/controller/CallbackController.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/controller/CallbackController.java @@ -138,13 +138,7 @@ class CallbackController implements EssCallbackApi, InitializingBean { EssApproveDetail detail = new EssApproveDetail(); if (StringUtils.isNotBlank(info.getProxyOperatorOpenId())) { PersonOpenId personOpenId = PersonOpenId.parse(info.getProxyOperatorOpenId()); - detail.setOuId(personOpenId.getOuId()); - detail.setPersonId(personOpenId.getPersonId()); - } else if (StringUtils.isNotBlank(info.getProxyOrganizationOpenId())) { - detail.setOuId(OrgOpenId.parse(info.getProxyOrganizationOpenId()).getOuId()); - if (StringUtils.isNotBlank(info.getPhoneNumber())) - essSupport.findPersonByPhone(info.getPhoneNumber()) - .ifPresent(person -> detail.setPersonId(person.getId())); + detail.setSignPerson(personOpenId.toOrgPersonInfo()); } detail.setRecipientId(info.getRecipientId()); detail.setState(EssContractApproveState.fromEssCode(info.getApproveStatus())); @@ -162,7 +156,9 @@ class CallbackController implements EssCallbackApi, InitializingBean { JSONObject customData = JsonObjectAsString.parse(changes.getCustomerData()).asJsonObject(); contract = essContractDao.getById(customData.getLong(ContractManager.CONTRACT_ID)); } - if (contract != null) { + if (contract == null) { + log.warn("contract not found: {}", changes.getFlowId()); + } else { contractManager.updateContractState(contract, state, approveDetails); essService.maybeUploadContractToOss(contract); } diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/domain/PersonOpenId.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/domain/PersonOpenId.java index da58d155..ae616e61 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/domain/PersonOpenId.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/domain/PersonOpenId.java @@ -1,6 +1,7 @@ package cn.axzo.nanopart.ess.server.ess.domain; import cn.axzo.nanopart.ess.api.domain.OrgPerson; +import cn.axzo.nanopart.ess.api.domain.contract.OrgPersonInfo; import lombok.AccessLevel; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -38,6 +39,13 @@ public class PersonOpenId implements OrgPerson { return ouId + "_" + personId; } + public OrgPersonInfo toOrgPersonInfo() { + OrgPersonInfo orgPersonInfo = new OrgPersonInfo(); + orgPersonInfo.setOuId(ouId); + orgPersonInfo.setPersonId(personId); + return orgPersonInfo; + } + @Override public String toString() { return toOpenId();