From ee0b5245644ff056c6841550d6a797b7f3ba752b Mon Sep 17 00:00:00 2001 From: yanglin Date: Thu, 27 Feb 2025 16:59:40 +0800 Subject: [PATCH] =?UTF-8?q?REQ-3300:=20=E8=B0=83=E6=95=B4=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/axzo/nanopart/ess/server/ess/EssService.java | 3 ++- .../java/cn/axzo/nanopart/ess/server/ess/OrgManager.java | 2 +- .../ess/server/ess/controller/CallbackController.java | 6 ++++-- 3 files changed, 7 insertions(+), 4 deletions(-) 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 7e956835..4653097a 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 @@ -107,7 +107,8 @@ public class EssService { BizAssertions.assertTrue(essPerson.isAuthorized(), "人员未加入单位, 无法授权"); EssPerson superAdmin = orgManager.getSuperAdminOrThrow(sealAndPerson.getSeal().getOuId()); essClient.addSealAuthorization(superAdmin, sealAndPerson.getSeal(), sealPerson); - orgManager.addSealAuthorization(request.getEssSealId(), request.getPersonId(), request.getOperatorPersonId()); + orgManager.maybeAddPersonAndSealAuthorization(request.getEssSealId(), request.getPersonId(), + request.getOperatorPersonId()); } @BizTransactional diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/OrgManager.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/OrgManager.java index 043bc949..1c6c9b3e 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/OrgManager.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/OrgManager.java @@ -137,7 +137,7 @@ public class OrgManager { } @BizTransactional - public void addSealAuthorization(String essSealId, Long personId, Long authorizedByPersonId) { + public void maybeAddPersonAndSealAuthorization(String essSealId, Long personId, Long authorizedByPersonId) { maybeAddSealPerson(essSealId, personId); essSealPersonDao.setPersonAuthorized(essSealId, personId, authorizedByPersonId); String subject = idbuilder().append(essSealId).append(personId).build(); 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 955c50df..9ab1aa8b 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 @@ -125,7 +125,8 @@ class CallbackController implements EssCallbackApi, InitializingBean { EssSealType.fromEssCode(operate.getSealType())); // 1. 印章创建人会自动获得授权; 2. 避免miss create事件 if (sealCreated) - orgManager.addSealAuthorization(operate.getSealId(), operator.getPersonId(), operator.getPersonId()); + orgManager.maybeAddPersonAndSealAuthorization(operate.getSealId(), operator.getPersonId(), + operator.getPersonId()); if ("Delete".equals(operate.getOperate())) orgManager.updateSealState(operate.getSealId(), EssSealState.DELETED); if ("Disable".equals(operate.getOperate())) @@ -139,7 +140,8 @@ class CallbackController implements EssCallbackApi, InitializingBean { // 可能从控制台直接授权 boolean authorizedByPreset = savedPerson != null && savedPerson.getAuthorizedByPersonId() > 0; long authorizedByPersonId = authorizedByPreset ? 0L : operator.getPersonId(); - orgManager.addSealAuthorization(operate.getSealId(), authorized.getPersonId(), authorizedByPersonId); + orgManager.maybeAddPersonAndSealAuthorization(operate.getSealId(), authorized.getPersonId(), + authorizedByPersonId); } if ("Invalid".equals(operate.getOperate())) orgManager.removeSealAuthorization(operate.getSealId(), authorized.getPersonId());