zhongrj
2024-02-05 bb758220283deccd1ae7ea79a7c635d8828c71be
用户机构调整绑定警格处理
1 files modified
50 ■■■■■ changed files
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -48,6 +48,8 @@
import org.springblade.modules.grid.service.IGridmanService;
import org.springblade.modules.house.entity.HouseholdEntity;
import org.springblade.modules.house.service.IHouseholdService;
import org.springblade.modules.police.entity.PoliceAffairsGridEntity;
import org.springblade.modules.police.service.IPoliceAffairsGridService;
import org.springblade.modules.property.entity.PropertyCompanyEntity;
import org.springblade.modules.property.service.IPropertyCompanyDistrictService;
import org.springblade.modules.property.service.IPropertyCompanyService;
@@ -80,6 +82,7 @@
    private final IUserOauthService userOauthService;
    private final IRoleService roleService;
    private final BladeTenantProperties tenantProperties;
    private final IPoliceAffairsGridService policeAffairsGridService;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -108,7 +111,11 @@
        if (userCount > 0L && Func.isEmpty(user.getId())) {
            throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
        }
        return save(user) && submitUserDept(user);
        boolean save = save(user);
        // 更新警格或网格的绑定
        updateGridBind(user);
        // 返回
        return save && submitUserDept(user);
    }
    @Override
@@ -131,9 +138,50 @@
    public boolean updateUserInfo(User user) {
        user.setPassword(null);
        boolean b = updateById(user);
        // 更新警格或网格的绑定
        updateGridBind(user);
        return b;
    }
    /**
     * 更新警格或网格的绑定
     * @param user
     */
    public void updateGridBind(User user) {
        // 判断机构类型
        List<String> deptIds = Arrays.asList(user.getDeptId().split(","));
        for (String deptId : deptIds) {
            // 查询对应的机构
            Dept dept = SpringUtil.getBean(IDeptService.class).getById(deptId);
            if (null!=dept.getDeptNature()
                && !Strings.isBlank(dept.getRegionCode())
                && dept.getDeptNature()==1
            ){
                QueryWrapper<PoliceAffairsGridEntity> wrapper = new QueryWrapper<>();
                wrapper.eq("is_deleted",0).eq("jw_grid_code",dept.getRegionCode());
                PoliceAffairsGridEntity policeAffairsGridEntity = policeAffairsGridService.getOne(wrapper);
                // 更新
                if (null!=policeAffairsGridEntity){
                    if (!Strings.isBlank(policeAffairsGridEntity.getPoliceUserId())) {
                        if (!policeAffairsGridEntity.getPoliceUserId().contains(user.getId().toString())) {
                            policeAffairsGridEntity.setPoliceUserId(policeAffairsGridEntity.getPoliceUserId() + "," + user.getId());
                            // 解决更新报错
                            policeAffairsGridEntity.setGeom(null);
                            // 更新
                            SpringUtil.getBean(IPoliceAffairsGridService.class).updateById(policeAffairsGridEntity);
                        }
                    }else {
                        policeAffairsGridEntity.setPoliceUserId(user.getId().toString());
                        // 解决更新报错
                        policeAffairsGridEntity.setGeom(null);
                        // 更新
                        SpringUtil.getBean(IPoliceAffairsGridService.class).updateById(policeAffairsGridEntity);
                    }
                }
            }
        }
    }
    private boolean submitUserDept(User user) {
        List<Long> deptIdList = Func.toLongList(user.getDeptId());
        List<UserDept> userDeptList = new ArrayList<>();