diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java index 69d16d0b..be444908 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java @@ -83,16 +83,18 @@ public class BmsSupplierApplicationService { } //其它负责人 List otherUserIdList = new ArrayList<>(); - for (String otherUserId : supplier.getOtherUserIds()) { - if(otherUserId.equals(leaveUserId)){ - if(enterUserId==null){ - continue; - }else { - otherUserIdList.add(enterUserId); - continue; + if(supplier.getOtherUserIds()!=null){ + for (String otherUserId : supplier.getOtherUserIds()) { + if(otherUserId.equals(leaveUserId)){ + if(enterUserId==null){ + continue; + }else { + otherUserIdList.add(enterUserId); + continue; + } } + otherUserIdList.add(otherUserId); } - otherUserIdList.add(otherUserId); } if(otherUserIdList.size()>0){ String userIds = otherUserIdList.stream().distinct().collect(Collectors.joining(",")); diff --git a/src/main/java/com/qs/serve/modules/sys/service/SysUserRoleService.java b/src/main/java/com/qs/serve/modules/sys/service/SysUserRoleService.java index 64b7f0e4..8b65df31 100644 --- a/src/main/java/com/qs/serve/modules/sys/service/SysUserRoleService.java +++ b/src/main/java/com/qs/serve/modules/sys/service/SysUserRoleService.java @@ -24,5 +24,7 @@ public interface SysUserRoleService extends IService { boolean remove(String roleId,List userIds); + boolean replaceAndRemove(String leafUserId,String enterUserId); + } diff --git a/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserRoleServiceImpl.java b/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserRoleServiceImpl.java index fcf1d359..71ce796b 100644 --- a/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserRoleServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserRoleServiceImpl.java @@ -3,6 +3,7 @@ package com.qs.serve.modules.sys.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.util.CollectionUtil; +import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.sys.entity.SysUserRole; import com.qs.serve.modules.sys.mapper.SysUserRoleMapper; import com.qs.serve.modules.sys.service.SysUserRoleService; @@ -61,5 +62,20 @@ public class SysUserRoleServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysUserRole::getUserId,leafUserId); + if(!StringUtils.hasText(enterUserId)){ + super.remove(wrapper); + }else { + List list = super.list(wrapper); + for (SysUserRole userRole : list) { + userRole.setUserId(enterUserId); + } + super.updateBatchById(list); + } + return true; + } } diff --git a/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java b/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java index cddf6ac7..ead17608 100644 --- a/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java @@ -45,6 +45,7 @@ public class SysUserServiceImpl extends ServiceImpl impl private final SysUserLeaveService sysUserLeaveService; private final SysPermitService sysPermitService; private final SysRoleService sysRoleService; + private final SysUserRoleService userRoleService; private final SysDeptMapper sysDeptMapper; private final SysMenuMapper sysMenuMapper; private final SysPostMapper postMapper; @@ -273,6 +274,7 @@ public class SysUserServiceImpl extends ServiceImpl impl } @Override + @Transactional(rollbackFor = Exception.class) public void leaveNow(List userIds,Boolean updateLeaveStatus) { if(userIds==null||userIds.size()<1){ return; @@ -297,8 +299,10 @@ public class SysUserServiceImpl extends ServiceImpl impl } //角色交接人 String roleUserId = userLeave.getRoleUserId(); + userRoleService.replaceAndRemove(userId,roleUserId); //工作交接人 String flowUserId = userLeave.getFlowUserId(); + } } //不匹配也要移除客户权限和角色