zhongrj
2024-02-05 da0e45a47b2b6e05734db2e62ed61987871323d3
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -623,11 +623,15 @@
            // 判断角色
            if (!userInfo.getRoleId().contains("1727864411451359233")){
               userInfo.setRoleId(userInfo.getRoleId() + ",1727864411451359233");
               // 更新
               updateById(userInfo);
               // 更新社区民警绑定信息
               updateCommunityInfo(userExcel,userInfo);
            }
            // 更新机构
            setDeptId(userInfo,userExcel);
            // 更新
            updateById(userInfo);
            // 更新用户机构绑定
            submitUserDept(userInfo);
            // 更新社区民警绑定信息
            updateGridBind(userInfo);
         }else {
            // 插入用户角色
            User user = new User();
@@ -638,18 +642,72 @@
            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()){
               DeptNotHandle(user, dept);
            }else {
               user.setDeptId(dept.getId().toString());
            }
         }
      }
   }
   /**
    * 机构不为空时处理
    * @param user
    * @param dept
    */
   public void DeptNotHandle(User user, Dept dept) {
      // 更新设置机构
      if (!Strings.isBlank(user.getDeptId())){
         // 查询对应的派出所(去掉)
         Dept deptPcs = SpringUtil.getBean(IDeptService.class).getDeptByDeptIds(user.getDeptId());
         if (null!=deptPcs) {
            // 如果存在需要去掉派出所的机构id
            List<String> list = new ArrayList<>(Arrays.asList(user.getDeptId().split(",")));
            // 先删除派出所对应的机构ID
            if (list.contains(deptPcs.getId().toString())){
               list.remove(deptPcs.getId().toString());
               user.setDeptId(String.join(",",list));
            }
            if (!user.getDeptId().contains(dept.getId().toString())) {
               user.setDeptId(user.getDeptId() + "," + dept.getId());
            }
         }else {
            if (!user.getDeptId().contains(dept.getId().toString())) {
               user.setDeptId(user.getDeptId() + "," + dept.getId());
            }
         }
      }
   }