From 3c28e104d82a0583891c52f59c97b7c2bd26bc12 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Mon, 31 Mar 2025 15:47:13 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E7=A6=85=E9=81=93#948=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D=EF=BC=9A=E6=96=B0=E5=A2=9E/?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E9=83=A8=E9=97=A8=E7=88=B6=E7=BA=A7=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD=EF=BC=9B2?= =?UTF-8?q?=E3=80=81=E7=94=A8=E6=88=B7=E6=89=8B=E6=9C=BA=E5=B7=B2=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E6=8F=90=E7=A4=BA=E4=BC=98=E5=8C=96=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/enums/ErrorCodeConstants.java | 3 ++- .../system/service/dept/DeptServiceImpl.java | 22 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java index db90ab669..c053e191a 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java @@ -59,7 +59,7 @@ public class ErrorCodeConstants { public static final ErrorCode INSUFFICIENT_PERMISSIONS = new ErrorCode(1_002_003_014, "当前用户权限不足,无法修改开料状态"); public static final ErrorCode USERNAME_MULTIPLE_ERROR = new ErrorCode(1_002_003_015,"存在【{}】重复用户,请联系系统管理员"); public static final ErrorCode USER_OPERATE_SELF_STATUS_ERROR = new ErrorCode(1_002_003_016, "不允许操作用户自身状态"); - public static final ErrorCode USER_MOBILE_UPDATE_NOT_ALLOW_ERROR = new ErrorCode(1_002_003_017, "该用户已通过手机号认证设置密码,不允许在用户管理修改手机号,如需修改请前往个人中心"); + public static final ErrorCode USER_MOBILE_UPDATE_NOT_ALLOW_ERROR = new ErrorCode(1_002_003_017, "该用户已通过手机号认证,如需修改手机号请前往个人中心"); // ========== 部门模块 1-002-004-000 ========== public static final ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门"); @@ -74,6 +74,7 @@ public class ErrorCodeConstants { public static final ErrorCode PARENT_DEPT_USER_OPER_NOT_ALLOW = new ErrorCode(1_002_004_009, "不允许操作用户自身部门及其上级部门"); public static final ErrorCode DEPT_DISABLE = new ErrorCode(1_002_004_010, "部门({})已被禁用"); public static final ErrorCode DEPT_NOT_ALLOWED_LOGIN = new ErrorCode(1_002_004_011, "部门({})已被禁用,无法登录"); + public static final ErrorCode PARENT_DEPT_DISABLE = new ErrorCode(1_002_004_012, "上级部门({})已被禁用,请开启后操作或选择其他上级部门"); // ========== 岗位模块 1-002-005-000 ========== diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptServiceImpl.java index 1f0c54e46..cb03cae4b 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptServiceImpl.java @@ -194,6 +194,9 @@ public class DeptServiceImpl implements DeptService { if (parentDept == null) { throw ServiceExceptionUtil.exception(ErrorCodeConstants.DEPT_PARENT_NOT_EXITS); } + // 2.1 父部门状态校验 + checkParentStatus(parentDept.getStatus(), parentDept.getName()); + // 3. 递归校验父部门,如果父部门是自己的子部门,则报错,避免形成环路 if (id == null) { // id 为空,说明新增,不需要考虑环路 return; @@ -212,6 +215,20 @@ public class DeptServiceImpl implements DeptService { if (parentDept == null) { break; } + // 3.3 父部门状态校验 + checkParentStatus(parentDept.getStatus(), parentDept.getName()); + } + } + + /** + * 校验上级部门是否开启 + * + * @param status + * @param parentName + */ + private void checkParentStatus(Integer status, String parentName) { + if (!CommonStatusEnum.ENABLE.getStatus().equals(status)) { + throw ServiceExceptionUtil.exception(ErrorCodeConstants.PARENT_DEPT_DISABLE, parentName); } } @@ -312,7 +329,7 @@ public class DeptServiceImpl implements DeptService { // 用户登陆时部门校验,部门不存在时也可以进行登录 @Override - public void validUserLoginDept(Long deptId){ + public void validUserLoginDept(Long deptId) { DeptDO deptDO = deptMapper.selectById(deptId); if (deptDO == null) { return; @@ -325,9 +342,6 @@ public class DeptServiceImpl implements DeptService { } - - - /** * 递归校验上级部门 *