新增组织架构同步相关

This commit is contained in:
zhangchenbiao
2023-06-13 09:50:10 +08:00
parent a2d58d3dcc
commit 12cb59dca8
5 changed files with 19 additions and 4 deletions

View File

@@ -39,6 +39,9 @@ public class EnterpriseUserDAO {
* @param excludeUserIds * @param excludeUserIds
*/ */
public void deleteUser(List<String> excludeUserIds){ public void deleteUser(List<String> excludeUserIds){
if(CollectionUtils.isEmpty(excludeUserIds)){
return;
}
enterpriseUserMapper.deleteUser(excludeUserIds); enterpriseUserMapper.deleteUser(excludeUserIds);
} }
} }

View File

@@ -30,7 +30,7 @@ public class EnterpriseUserRoleDAO {
} }
public Integer deleteRoleInUser(String roleId, DataSourceEnum dataSourceEnum, List<String> excludeUserIds){ public Integer deleteRoleInUser(String roleId, DataSourceEnum dataSourceEnum, List<String> excludeUserIds){
if(StringUtils.isBlank(roleId) || Objects.isNull(dataSourceEnum)){ if(StringUtils.isBlank(roleId) || Objects.isNull(dataSourceEnum) || CollectionUtils.isEmpty(excludeUserIds)){
return null; return null;
} }
return enterpriseUserRoleMapper.deleteRoleInUser(roleId, dataSourceEnum.getCode(), excludeUserIds); return enterpriseUserRoleMapper.deleteRoleInUser(roleId, dataSourceEnum.getCode(), excludeUserIds);

View File

@@ -89,6 +89,6 @@
</update> </update>
<update id="deleteUserInRole"> <update id="deleteUserInRole">
update enterprise_user_role set deleted = 1 where role_id != #{roleId} and user_id = #{userId} and type = #{type} update enterprise_user_role set deleted = 1 where role_id != #{excludeRoleId} and user_id = #{userId} and type = #{type}
</update> </update>
</mapper> </mapper>

View File

@@ -37,6 +37,11 @@ public class RegionBaseInfoVO {
this.name = name; this.name = name;
} }
/**
* 转换成树
* @param regionList
* @return
*/
public static RegionBaseInfoVO convertTree(List<RegionDO> regionList){ public static RegionBaseInfoVO convertTree(List<RegionDO> regionList){
Map<String, List<RegionDO>> parentMap = regionList.stream().collect(Collectors.groupingBy(k -> k.getParentId())); Map<String, List<RegionDO>> parentMap = regionList.stream().collect(Collectors.groupingBy(k -> k.getParentId()));
RegionDO rootRegion = regionList.stream().filter(o -> CommonConstants.ZERO_STR.equals(o.getParentId())).findFirst().get(); RegionDO rootRegion = regionList.stream().filter(o -> CommonConstants.ZERO_STR.equals(o.getParentId())).findFirst().get();
@@ -45,6 +50,12 @@ public class RegionBaseInfoVO {
return result; return result;
} }
/**
* 获取子区域
* @param regionId
* @param parentMap
* @return
*/
public static List<RegionBaseInfoVO> getSubRegion(String regionId, Map<String, List<RegionDO>> parentMap){ public static List<RegionBaseInfoVO> getSubRegion(String regionId, Map<String, List<RegionDO>> parentMap){
List<RegionBaseInfoVO> resultList = new ArrayList<>(); List<RegionBaseInfoVO> resultList = new ArrayList<>();
if(Objects.isNull(parentMap) || StringUtils.isBlank(regionId)){ if(Objects.isNull(parentMap) || StringUtils.isBlank(regionId)){

View File

@@ -169,8 +169,8 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
if(CollectionUtils.isNotEmpty(departmentLists)){ if(CollectionUtils.isNotEmpty(departmentLists)){
List<RegionDO> regionList = regionDAO.getRegionByRegionIds(departmentLists); List<RegionDO> regionList = regionDAO.getRegionByRegionIds(departmentLists);
List<String> regionIds = ListUtils.emptyIfNull(regionList).stream().map(RegionDO::getRegionId).collect(Collectors.toList()); List<String> regionIds = ListUtils.emptyIfNull(regionList).stream().map(RegionDO::getRegionId).collect(Collectors.toList());
//判断两个集合是否都是包含关系 //判断两个集合是否都是包含关系,不包含的情况下 说明组织架构数据不全 重新同步
if(!(regionIds.containsAll(departmentLists) && departmentLists.containsAll(regionList))){ if(!(regionIds.containsAll(departmentLists) && departmentLists.containsAll(regionIds))){
Pair<List<RegionDO>, Multimap<String, String>> regionPair = syncRegion(); Pair<List<RegionDO>, Multimap<String, String>> regionPair = syncRegion();
regionList = regionPair.getKey(); regionList = regionPair.getKey();
leaderDeptMap = regionPair.getValue(); leaderDeptMap = regionPair.getValue();
@@ -194,6 +194,7 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
enterpriseUserDAO.batchInsertOrUpdate(new ArrayList<>(Arrays.asList(enterpriseUser))); enterpriseUserDAO.batchInsertOrUpdate(new ArrayList<>(Arrays.asList(enterpriseUser)));
break; break;
case USER_DELETED: case USER_DELETED:
//人员职位删除状态,角色职位删除状态,人员从部门去除
break; break;
default: default:
return; return;