diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/entity/domain/SignPerOrgs.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/entity/domain/SignPerOrgs.java index ce606111..7a02ef3a 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/entity/domain/SignPerOrgs.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/entity/domain/SignPerOrgs.java @@ -24,6 +24,11 @@ public class SignPerOrgs { .findFirst(); } + public void upsert(OrgPerson person, String recipientId) { + remove(person.getOuId()); + add(person, recipientId); + } + public void remove(Long ouId) { signPerOrg.removeIf(org -> org.getOuId().equals(ouId)); } diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java index dd2ee6fa..0c8beac4 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/EssService.java @@ -148,8 +148,7 @@ public class EssService { signPerson); } }); - contract.getOrCreateAssignment().getSignPerOrgs().remove(request.getOuId()); - contract.getOrCreateAssignment().getSignPerOrgs().add(signPerson, request.getRecipientId()); + contract.getOrCreateAssignment().getSignPerOrgs().upsert(signPerson, request.getRecipientId()); essContractDao.updateAssigment(contract); } EssPerson superAdmin = contractManager.getContractSuperAdmin(contract);