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