liujie
2025-06-27 3632162b5cbffbe53f86094604f213d20fda2e35
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/DepartmentController.java
@@ -8,6 +8,7 @@
import com.panzhihua.common.model.vos.west.SystemUserVo;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.westcommittee.model.dto.UpdateStatusDeptDto;
import com.panzhihua.westcommittee.model.entity.ComAct;
import com.panzhihua.westcommittee.model.entity.Department;
import com.panzhihua.westcommittee.model.entity.SystemUser;
import com.panzhihua.westcommittee.service.*;
@@ -101,26 +102,32 @@
   @ApiOperation(value = "获取单位列表", tags = {"西区纪委后台-单位管理"})
   @OperLog(operModul = "西区纪委后台",operType = 0, businessType = "获取单位列表")
   public R<List<Department>> getList(String name,Integer level,String code,int type){
        SystemUserVo loginUserInfoWest = getLoginUserInfoWest();
      if(level==null){
         List<Department> list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name));
         return  R.ok(list4);
      }else {
            if(loginUserInfoWest.getSystemRoleId()!=1){
                return  R.ok(new ArrayList<>());
            }
            level=loginUserInfoWest.getAccountLevel();
            type=2;
        }
         List<Department> list4=new ArrayList<>();
         if(level==2 && type==1){
            list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 2));
         }else if(level==2 && type==2){
             list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).ge( Department::getTier, 2));
         }else  if(level==3 && type==1){
            list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 3));
            list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 3).eq(Department::getStreetId, loginUserInfoWest.getStreetId()));
         }else if(level==3 && type==2){
             list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).ge( Department::getTier, 3));
                List<Long> ids = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, loginUserInfoWest.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
                list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 3).eq(Department::getStreetId, loginUserInfoWest.getStreetId())
                        .or(w->w.eq(Department::getTier,4).in(Department::getCommunityId,ids)));
         }else  if(level==4 && type==1){
            list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 4));
            list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 4).eq(Department::getCommunityId,loginUserInfoWest.getCommunityId()));
         }else if(level==4 && type==2){
            list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).ge(Department::getTier, 4));
            list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq(Department::getTier, 4).eq(Department::getCommunityId,loginUserInfoWest.getCommunityId()));
         }
         return R.ok(list4);
      }
   }
@@ -128,7 +135,22 @@
   @ApiOperation(value = "获取单位列表1", tags = {"西区纪委后台-单位管理"})
   @OperLog(operModul = "西区纪委后台",operType = 0, businessType = "获取单位列表")
   public R<Page<Department>> getDeptList(String name,int pageNum,int pageSize){
      Page<Department> list4 = departmentService.page(new Page<Department>(pageNum,pageSize),new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).or().eq(StringUtils.isNotEmpty(name),Department::getId,name));
        SystemUserVo loginUserInfoWest = getLoginUserInfoWest();
        if(loginUserInfoWest.getSystemRoleId()!=1){
            return  R.ok(new Page<>());
        }
        Integer accountLevel = loginUserInfoWest.getAccountLevel();
        Page<Department> list4 = null;
        if(accountLevel==2 ){
           list4 = departmentService.page(new Page<Department>(pageNum,pageSize),new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).or().eq(StringUtils.isNotEmpty(name),Department::getId,name).ge(Department::getTier,accountLevel));
        }else if(accountLevel==3){
            String streetId = loginUserInfoWest.getStreetId();
            List<Long> ids = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, streetId)).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
             list4 = departmentService.page(new Page<Department>(pageNum,pageSize),new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).or().eq(StringUtils.isNotEmpty(name),Department::getId,name).eq(Department::getTier,accountLevel).eq(Department::getStreetId,streetId)
                    .or(department -> department.and(department1 -> department1.eq(Department::getTier, 4).in(Department::getCommunityId, ids))));
        }else if(accountLevel==4){
             list4 = departmentService.page(new Page<Department>(pageNum,pageSize),new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).or().eq(StringUtils.isNotEmpty(name),Department::getId,name).eq(Department::getTier,4).eq(Department::getCommunityId,loginUserInfoWest.getCommunityId()));
        }
      for (Department department : list4.getRecords()) {
         int count = systemUserService.count(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, department.getId()));
         department.setUserCount(count);