diff --git a/jshERP-boot/src/main/java/com/jsh/erp/constants/ExceptionConstants.java b/jshERP-boot/src/main/java/com/jsh/erp/constants/ExceptionConstants.java index 96f6ffc3..ed67df9d 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/constants/ExceptionConstants.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/constants/ExceptionConstants.java @@ -67,6 +67,9 @@ public class ExceptionConstants { //租户不能被删除 public static final int USER_LIMIT_TENANT_DELETE_CODE = 500008; public static final String USER_LIMIT_TENANT_DELETE_MSG = "抱歉,租户不能被删除"; + //当前机构已经存在经理 + public static final int USER_LEADER_IS_EXIST_CODE = 500009; + public static final String USER_LEADER_IS_EXIST_MSG = "抱歉,当前机构已经存在经理"; /** * 角色信息 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/UserEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/UserEx.java index ecc2f3c9..54ba2847 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/UserEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/UserEx.java @@ -28,6 +28,8 @@ public class UserEx extends User{ private String expireTime; + private String leaderFlagStr; + public String getOrgAbr() { return orgAbr; } @@ -99,4 +101,12 @@ public class UserEx extends User{ public void setExpireTime(String expireTime) { this.expireTime = expireTime; } + + public String getLeaderFlagStr() { + return leaderFlagStr; + } + + public void setLeaderFlagStr(String leaderFlagStr) { + this.leaderFlagStr = leaderFlagStr; + } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/UserMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/UserMapperEx.java index 4e15d0c5..800df836 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/UserMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/UserMapperEx.java @@ -32,4 +32,8 @@ public interface UserMapperEx { List getNextNodeTree(Map parameterMap); void disableUserByLimit(@Param("tenantId") Long tenantId); + + List getListByOrgaId( + @Param("id") Long id, + @Param("orgaId") Long orgaId); } \ No newline at end of file diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/user/UserService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/user/UserService.java index bc0b34c5..a53b437f 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/user/UserService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/user/UserService.java @@ -110,6 +110,14 @@ public class UserService { userType = "普通"; } ue.setUserType(userType); + //是否经理 + String leaderFlagStr = ""; + if("1".equals(ue.getLeaderFlag())) { + leaderFlagStr = "是"; + } else { + leaderFlagStr = "否"; + } + ue.setLeaderFlagStr(leaderFlagStr); } }catch(Exception e){ JshException.readFail(logger, e); @@ -409,6 +417,14 @@ public class UserService { //如果没有选择机构,就不建机构和用户的关联关系 return; } + if(ue.getOrgaId()!=null && "1".equals(ue.getLeaderFlag())){ + //检查当前机构是否存在经理 + List checkList = userMapperEx.getListByOrgaId(ue.getId(), ue.getOrgaId()); + if(checkList.size()>0) { + throw new BusinessRunTimeException(ExceptionConstants.USER_LEADER_IS_EXIST_CODE, + ExceptionConstants.USER_LEADER_IS_EXIST_MSG); + } + } //新增用户和机构关联关系 OrgaUserRel oul=new OrgaUserRel(); //机构id @@ -554,6 +570,14 @@ public class UserService { //如果没有选择机构,就不建机构和用户的关联关系 return; } + if(ue.getOrgaId()!=null && "1".equals(ue.getLeaderFlag())){ + //检查当前机构是否存在经理 + List checkList = userMapperEx.getListByOrgaId(ue.getId(), ue.getOrgaId()); + if(checkList.size()>0) { + throw new BusinessRunTimeException(ExceptionConstants.USER_LEADER_IS_EXIST_CODE, + ExceptionConstants.USER_LEADER_IS_EXIST_MSG); + } + } //更新用户和机构关联关系 OrgaUserRel oul = new OrgaUserRel(); //机构和用户关联关系id diff --git a/jshERP-boot/src/main/resources/mapper_xml/UserMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/UserMapperEx.xml index 2a1fb721..d09cb2c6 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/UserMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/UserMapperEx.xml @@ -18,7 +18,7 @@ left join jsh_role r on ub.value=concat("[",r.id,"]") and ifnull(r.delete_flag,'0') !='1' where ub.type='UserRole' and ub.key_id=tb.id limit 0,1) roleName from ( - select user.id, user.username, user.login_name, user.position, user.email, user.phonenum, + select user.id, user.username, user.login_name, user.position, user.leader_flag, user.email, user.phonenum, user.description, user.remark,user.isystem,org.id as orgaId,user.tenant_id,user.status,org.org_abr, rel.user_blng_orga_dspl_seq,rel.id as orgaUserRelId FROM jsh_user user @@ -135,4 +135,13 @@ update jsh_user set Status='2' where tenant_id=#{tenantId} and id!=#{tenantId} and Status!='1' + + \ No newline at end of file