zhongrj
2024-02-05 30d95dba557faa1e013ceadd2592b339a8c3f819
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,7 +138,48 @@
   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) {
@@ -575,10 +623,14 @@
            // 判断角色
            if (!userInfo.getRoleId().contains("1727864411451359233")){
               userInfo.setRoleId(userInfo.getRoleId() + ",1727864411451359233");
               // 更新机构
               setDeptId(userInfo,userExcel);
               // 更新
               updateById(userInfo);
               // 更新用户机构绑定
               submitUserDept(userInfo);
               // 更新社区民警绑定信息
               updateCommunityInfo(userExcel,userInfo);
               updateGridBind(userInfo);
            }
         }else {
            // 插入用户角色
@@ -590,18 +642,48 @@
            user.setRealName(userExcel.getRealName());
            user.setPhone(userExcel.getPhone());
            user.setAccount(userExcel.getPhone());
            // 查询机构
            QueryWrapper<Dept> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("is_deleted",0).eq("dept_name",userExcel.getPoliceStationName());
            Dept dept = SpringUtil.getBean(IDeptService.class).getOne(queryWrapper);
            if (null!=dept){
               user.setDeptId(dept.getId().toString());
            }
            // 更新机构
            setDeptId(user,userExcel);
            // 设置初始密码
            user.setPassword("123456");
            // 保存
            submit(user);
            // 更新用户机构绑定
            submitUserDept(user);
            // 更新社区民警绑定信息
            updateCommunityInfo(userExcel,user);
            updateGridBind(user);
         }
      }
   }
   /**
    * 设置机构
    */
   public void setDeptId(User user,PoliceUserExcel userExcel) {
      // 查询机构
      QueryWrapper<PoliceAffairsGridEntity> queryWrapper = new QueryWrapper<>();
      queryWrapper.eq("is_deleted",0)
         .eq("community_code",userExcel.getCommunityCode())
         .eq("pcs_name",userExcel.getPoliceStationName());
      PoliceAffairsGridEntity policeAffairsGridEntity = policeAffairsGridService.getOne(queryWrapper);
      if (null!=policeAffairsGridEntity){
         // 查询对应绑定的机构
         QueryWrapper<Dept> wrapper = new QueryWrapper<>();
         wrapper.eq("is_deleted",0)
            .eq("dept_nature",1)
            .eq("region_code",policeAffairsGridEntity.getJwGridCode());
         Dept dept = SpringUtil.getBean(IDeptService.class).getOne(wrapper);
         if (null!=dept){
            if (null!=user.getId()){
               // 更新设置机构
               if (!Strings.isBlank(user.getDeptId())){
                  if (!user.getDeptId().contains(dept.getId().toString())){
                     user.setDeptId(user.getDeptId() + "," + dept.getId());
                  }
               }
            }else {
               user.setDeptId(dept.getId().toString());
            }
         }
      }
   }