REQ-3581: 返回幂等信息

This commit is contained in:
yanglin 2025-02-24 17:35:52 +08:00
parent 5da969247e
commit 09f6c18716
3 changed files with 9 additions and 1 deletions

View File

@ -26,6 +26,11 @@ public class CreateContractByFileResponse {
*/
private List<String> essRecipientIds;
/**
* 是否重复 (幂等)
*/
private boolean isDuplicate;
@Override
public String toString() {
return JSON.toJSONString(this);

View File

@ -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 {

View File

@ -97,6 +97,7 @@ public class ContractSupport {
response.setEssRecipientIds(savedContract.getApprovers().stream()
.map(Approver::getEssRecipientId)
.collect(toList()));
response.setDuplicate(true);
return response;
}