diff --git a/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/response/CreateContractByFileResponse.java b/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/response/CreateContractByFileResponse.java index 1dec8603..6352f25a 100644 --- a/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/response/CreateContractByFileResponse.java +++ b/ess/ess-api/src/main/java/cn/axzo/nanopart/ess/api/response/CreateContractByFileResponse.java @@ -26,6 +26,11 @@ public class CreateContractByFileResponse { */ private List essRecipientIds; + /** + * 是否重复 (幂等) + */ + private boolean isDuplicate; + @Override public String toString() { return JSON.toJSONString(this); diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/ContractManager.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/ContractManager.java index bd5f1077..05fde93d 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/ContractManager.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/ContractManager.java @@ -48,12 +48,14 @@ public class ContractManager { public CreateContractByFileResponse createContractByFile(CreateContractByFileRequest request) { - essLogDao.logRequest("createContractByFile", request.getIdempotentCode(), request); + essLogDao.logRequest("createContractByFile", request.getBizCode(), request); contractSupport.validateCreateContract(request.getContract()); EssContract contract; try { contract = contractSupport.saveContractByFile(request); } catch (DuplicateKeyException e) { + essLogDao.log("createContractByFile", request.getBizCode(), + "message", "重复创建合同", "request", request); return contractSupport.createDuplicateContractByFileResponse(request); } try { diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/support/ContractSupport.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/support/ContractSupport.java index 9a94cc63..c7d71156 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/support/ContractSupport.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/support/ContractSupport.java @@ -97,6 +97,7 @@ public class ContractSupport { response.setEssRecipientIds(savedContract.getApprovers().stream() .map(Approver::getEssRecipientId) .collect(toList())); + response.setDuplicate(true); return response; }