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 05fde93d..79d8729f 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 @@ -88,9 +88,8 @@ public class ContractManager { @BizTransactional public void revokeContract(RevokeContractRequest request) { essLogDao.logRequest("revokeContract", request.getEssContractId(), request); - EssContract contract = essContractDao.getOrThrow(request.getEssContractId()); - BizAssertions.assertFalse(contract.isFinalState(), - "合同已是最终状态 {}, 无法撤销", contract.getState().getDescription()); + // lock when updating state + EssContract contract = essContractDao.findForUpdateOrNull(request.getEssContractId()); EssPerson superAdmin = getContractSuperAdmin(contract); essClient.revokeContract(superAdmin, contract.getEssContractId(), request.getReason()); updateContractState(contract, EssContractState.CANCEL, null, request.getReason()); 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 6f25f227..fbeb9a9c 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 @@ -7,7 +7,6 @@ import cn.axzo.nanopart.ess.api.enums.EssContractState; import cn.axzo.nanopart.ess.api.request.CreateContractByFileRequest; import cn.axzo.nanopart.ess.api.response.CreateContractByFileResponse; import cn.axzo.nanopart.ess.server.dao.EssContractDao; -import cn.axzo.nanopart.ess.server.dao.EssLogDao; import cn.axzo.nanopart.ess.server.dao.EssOrgDao; import cn.axzo.nanopart.ess.server.entity.EssContract; import cn.axzo.nanopart.ess.server.entity.EssOrg; @@ -33,7 +32,6 @@ public class ContractSupport { private final EssOrgDao essOrgDao; private final EssContractDao essContractDao; - private final EssLogDao essLogDao; public void validateCreateContract(CreateContractInfo contract) { checkCreateContractConstraint(contract); diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/support/OrgProfiles.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/support/OrgProfiles.java index 84f5a30b..20fc6965 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/support/OrgProfiles.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/support/OrgProfiles.java @@ -5,7 +5,6 @@ import cn.axzo.nanopart.ess.server.utils.BizAssertions; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -17,10 +16,6 @@ public class OrgProfiles { private final List profiles; - public static OrgProfiles empty() { - return new OrgProfiles(Collections.emptyList()); - } - public static OrgProfiles wrap(List profiles) { return new OrgProfiles(profiles); }