From 01a9f56eb8085d49b07af641fa8782dcf8b34e95 Mon Sep 17 00:00:00 2001 From: fl <3098731433@qq.com> Date: Wed, 11 Dec 2024 17:28:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=AE=E6=94=B9=E7=BB=84?= =?UTF-8?q?=E7=BB=87=EF=BC=8C=E5=90=8C=E6=AD=A5=E4=BF=AE=E6=94=B9=E8=80=83?= =?UTF-8?q?=E5=8B=A4=E7=BB=84=E7=BB=84=E7=BB=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/SysUserController.java | 10 ++++- .../bonus/system/basic/dao/SysUserMapper.java | 5 +++ .../service/impl/SysUserServiceImpl.java | 40 ++++++++++++++++++- .../resources/mapper/att/OrgChangeMapper.xml | 3 +- .../resources/mapper/basic/SysUserMapper.xml | 7 ++++ 5 files changed, 61 insertions(+), 4 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java index fd590b6..cf2da65 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java @@ -59,8 +59,11 @@ public class SysUserController extends BaseController { @Log(title = "系统管理->人员信息->查询人员列表", businessType = BusinessType.QUERY) public TableDataInfo list(SysUser bean) { try{ +// List list = userService.selectUserList(bean); +// return endPage(list); + startPage(); List list = userService.selectUserList(bean); - return endPage(list); + return getDataTable(list); }catch (Exception e){ logger.error(e.toString(),e); } @@ -72,8 +75,11 @@ public class SysUserController extends BaseController { @Log(title = "系统管理->分公司项目部管理->权限分配->查询人员列表", businessType = BusinessType.QUERY) public TableDataInfo listPro(SysUser bean) { try{ +// List list = userService.selectUserList(bean); +// return endPage(list); + startPage(); List list = userService.selectUserList(bean); - return endPage(list); + return getDataTable(list); }catch (Exception e){ logger.error(e.toString(),e); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java index 634c9cb..1989d06 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java @@ -4,6 +4,7 @@ import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.system.api.domain.MapVo; import com.bonus.system.api.domain.SysDictData; import com.bonus.system.api.domain.SysRole; +import com.bonus.system.att.entity.OrgChangeBean; import com.bonus.system.basic.domain.SysUserOrg; import com.bonus.system.basic.domain.SysUserPost; import com.bonus.system.basic.domain.SysUserRole; @@ -221,4 +222,8 @@ public interface SysUserMapper int updateIsFace(SysUser user); int checkPersonAssignment(SysUser bean); + + Long getUserAttGroupByUserId(Long userId); + + void updateAttOrgByUserId(OrgChangeBean item); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java index e8c651e..ce38be1 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java @@ -13,6 +13,8 @@ import com.bonus.system.api.domain.MapVo; import com.bonus.system.api.domain.SysDictData; import com.bonus.system.api.domain.SysRole; import com.bonus.system.api.model.LoginUser; +import com.bonus.system.att.entity.OrgChangeBean; +import com.bonus.system.att.service.OrgChangeService; import com.bonus.system.basic.domain.SysUserOrg; import com.bonus.system.basic.domain.SysUserPost; import com.bonus.system.basic.domain.SysUserRole; @@ -57,6 +59,9 @@ public class SysUserServiceImpl implements SysUserService @Resource(name = "SubOrgService") private SubOrgServiceImpl subOrgServiceImpl; + @Resource(name = "OrgChangeService") + private OrgChangeService orgChangeService; + /** * 通过用户名查询用户 * @@ -100,7 +105,7 @@ public class SysUserServiceImpl implements SysUserService @Override public List selectUserList(SysUser bean) { List list = userMapper.selectUserList(bean); - if (list.size()>0){ + if (!list.isEmpty()){ for (SysUser sysUser : list) { //角色集合 Long[] roleIds = userMapper.getRoleIdsByUserId(sysUser.getUserId()); @@ -292,6 +297,24 @@ public class SysUserServiceImpl implements SysUserService userMapper.deleteUserRoleByUserId(userId); insertUserRole(user); //删除用户与组织关联 + //旧组织 + Long[] orgIdsByUserId = userMapper.getOrgIdsByUserId(userId); + //新组织 + Long[] orgIds = user.getOrgIds(); + //绑定考勤组组织 + Long orgId = userMapper.getUserAttGroupByUserId(userId); + if (orgId == null || containsOrgId(orgIds,orgId)) { + //没有考勤组或新变换的组织包含考勤组组织,不变 + }else{ + List uniqueInOrgIds = findUniqueInOrgIds(orgIds, orgIdsByUserId); + if(!uniqueInOrgIds.isEmpty()){ + OrgChangeBean item = new OrgChangeBean(); + item.setOldOrgId(orgId); + item.setNewOrgId(uniqueInOrgIds.get(0)); + item.setUserId(userId); + userMapper.updateAttOrgByUserId(item); + } + } userMapper.deleteUserOrgByUserId(userId); insertUserOrg(user); return userMapper.updateUser(user); @@ -301,6 +324,21 @@ public class SysUserServiceImpl implements SysUserService } } + public static boolean containsOrgId(Long[] orgIds, Long orgId) { + // 将数组转换为 List + return Arrays.asList(orgIds).contains(orgId); + } + + public static List findUniqueInOrgIds(Long[] orgIds, Long[] orgIdsByUserId) { + // 将两个数组转换为 Set + Set orgIdSet = new HashSet<>(Arrays.asList(orgIds)); + Set orgIdByUserSet = new HashSet<>(Arrays.asList(orgIdsByUserId)); + // 计算差集:只保留在 orgIds 中的元素 + orgIdSet.removeAll(orgIdByUserSet); + // 将结果转换回数组 + return new ArrayList<>(orgIdSet); + } + @Resource(name = "ValidatorsUtils") private ValidatorsUtils validatorsUtils; @Transactional(rollbackFor = Exception.class) diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/OrgChangeMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/OrgChangeMapper.xml index 6463465..0601b5d 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/OrgChangeMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/OrgChangeMapper.xml @@ -119,7 +119,8 @@ where id = #{id} - update sys_user_org set org_id = #{newOrgId} where user_id = #{userId} and org_id = #{oldOrgId} + update sys_user_org set org_id = #{newOrgId} where user_id = #{userId} and org_id = #{oldOrgId} and is_active = 1; + update att_group_person_relation set org_id = #{newOrgId} where user_id = #{userId} and org_id = #{oldOrgId}; update att_group_person_relation set group_id = #{newAttGroup},org_id = #{newOrgId} where user_id = #{userId} and group_id = #{oldAttGroup} diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml index 85b7e35..a54bef6 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml @@ -84,6 +84,9 @@ update sys_user set is_face = 0 where user_id = #{userId}; + + update att_group_person_relation set org_id = #{newOrgId} where user_id = #{userId} and org_id = #{oldOrgId}; + + \ No newline at end of file