人员同步问题修复

This commit is contained in:
zhangchenbiao
2023-06-29 17:03:26 +08:00
parent 9096af41ce
commit 563321d5b8
4 changed files with 25 additions and 0 deletions

View File

@@ -39,6 +39,14 @@ public class UserRegionMappingDAO {
return userRegionMappingMapper.deleteUserRegion(regionId, dataSourceEnum.getCode(), excludeUserIds);
}
public Integer deleteUserRegionByUserId(String userId, DataSourceEnum dataSourceEnum, List<String> excludeRegionIds){
if(StringUtils.isBlank(userId) || Objects.isNull(dataSourceEnum)){
return null;
}
return userRegionMappingMapper.deleteUserRegionByExcludeRegionIds(userId, dataSourceEnum.getCode(), excludeRegionIds);
}
public Integer deleteRegionUserByExcludeRegionIds(List<String> excludeRegionIds){
if(CollectionUtils.isEmpty(excludeRegionIds)){
return null;

View File

@@ -34,6 +34,15 @@ public interface UserRegionMappingMapper {
*/
int deleteUserRegion(@Param("regionId") String regionId, @Param("type")Integer type, @Param("excludeUserIds") List<String> excludeUserIds);
/**
* 删除用户不存在的部门
* @param userId
* @param type
* @param excludeRegionIds
* @return
*/
int deleteUserRegionByExcludeRegionIds(@Param("userId") String userId, @Param("type")Integer type, @Param("excludeRegionIds") List<String> excludeRegionIds);
/**
* 删除没有的部门映射关系
* @param excludeRegionIds

View File

@@ -111,6 +111,13 @@
</if>
</update>
<update id="deleteUserRegionByExcludeRegionIds">
update user_region_mapping set deleted = 1 where user_id = #{userId} and type = #{type}
<if test="excludeRegionIds != null and excludeRegionIds.size() > 0">
and region_id not in <foreach collection="excludeRegionIds" separator="," open="(" close=")" item="regionId" >#{regionId}</foreach>
</if>
</update>
<update id="deleteRegionUserByExcludeRegionIds">
update user_region_mapping set deleted = 1 where region_id not in <foreach collection="excludeRegionIds" open="(" close=")" separator="," item="regionId">#{regionId}</foreach>
</update>

View File

@@ -187,6 +187,7 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
regionPathMap = regionList.stream().collect(Collectors.toMap(k->k.getRegionId(), v->v.getRegionPath()));
userRegionMappingDAO.batchInsertOrUpdateUserRegion(UserRegionMappingDO.convertSyncDO(departmentLists, userDetail.getUserId()));
}
userRegionMappingDAO.deleteUserRegionByUserId(userDetail.getUserId(), DataSourceEnum.SYNC, departmentLists);
String jobTitle = userDetail.getJobTitle();
if(StringUtils.isNotBlank(jobTitle)){
SysRoleDO role = sysRoleDAO.getRoleByName(jobTitle, DataSourceEnum.SYNC);