| | |
| | | import cn.huge.module.ctuser.domain.po.CtUserole; |
| | | import cn.huge.module.ctuser.dto.CtUnitWeChatCountDTO; |
| | | import cn.huge.module.cust.constant.RoleBaseEnum; |
| | | import cn.huge.module.cust.constant.UserBaseConsts; |
| | | import cn.huge.module.cust.dto.CtUserDTO; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 按条件分页查询 |
| | | * |
| | | * @param userId 分页对象 |
| | | * @return Page |
| | | * 交办-选择组织 |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | public List<SelectTermDTO> unitChoose(String userId) { |
| | | // 获取当前登录用户 |
| | | CtUserDTO loginUser = ctUserService.clientGetUserAll(userId); |
| | | // 组织条件 |
| | | List<CtUnit> ctUnitList = mapper.listAllChild(loginUser.getUnitId()); |
| | | List<SelectTermDTO> unitSelectTerms = new ArrayList<>(); |
| | | |
| | | // 部门条件 |
| | | QueryWrapper<CtDept> ctDeptQueryWrapper = new QueryWrapper<>(); |
| | | ctDeptQueryWrapper.eq("unit_id", loginUser.getUnitId()).select("id", "unit_id", "name", "parent_id"); |
| | | List<CtDept> ctDeptList = ctDeptService.list(ctDeptQueryWrapper); |
| | | |
| | | for(CtUnit ctUnit: ctUnitList){ |
| | | SelectTermDTO unitSelectTerm = new SelectTermDTO(); |
| | | unitSelectTerm.setValue(ctUnit.getId()); |
| | | unitSelectTerm.setLabel(ctUnit.getUnitName()); |
| | | unitSelectTerm.setParentId(ctUnit.getParentId()); |
| | | unitSelectTerm.setCheckable(true); |
| | | List<SelectTermDTO> deptSelectTerms = new ArrayList<>(); |
| | | if(loginUser.getUnitId().equals(ctUnit.getId())){ |
| | | for(CtDept ctDept : ctDeptList){ |
| | | if(ctUnit.getId().equals(ctDept.getUnitId())){ |
| | | SelectTermDTO deptSelectTerm = new SelectTermDTO(); |
| | | deptSelectTerm.setValue(ctDept.getId()); |
| | | deptSelectTerm.setLabel(ctDept.getName()); |
| | | deptSelectTerm.setParentId(ctDept.getParentId()); |
| | | deptSelectTerm.setCheckable(true); |
| | | |
| | | deptSelectTerms.add(deptSelectTerm); |
| | | } |
| | | List<SelectTermDTO> depts = SelectTermUtils.createTreeByRoot(deptSelectTerms); |
| | | unitSelectTerm.setChildren(depts); |
| | | // 获取当前登录用户的部门 |
| | | CtUnit loginUnit = mapper.selectById(loginUser.getUnitId()); |
| | | // 市级交办 |
| | | if (UserBaseConsts.UNIT_GRADE_1 == loginUnit.getUnitGrade()){ |
| | | QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>(); |
| | | ctUnitQueryWrapper.eq("parent_id", loginUnit.getId()); |
| | | List<CtUnit> ctUnitList = mapper.selectList(ctUnitQueryWrapper); |
| | | // 定义市直部门数组 |
| | | List<SelectTermDTO> szbmList = new ArrayList<>(); |
| | | // 定义区综治中心数组 |
| | | List<SelectTermDTO> qzzzxList = new ArrayList<>(); |
| | | for (CtUnit ctUnit: ctUnitList){ |
| | | SelectTermDTO unitSelectTerm = new SelectTermDTO(); |
| | | unitSelectTerm.setValue(ctUnit.getId()); |
| | | unitSelectTerm.setLabel(ctUnit.getUnitName()); |
| | | unitSelectTerm.setParentId(ctUnit.getParentId()); |
| | | unitSelectTerm.setCheckable(true); |
| | | if (UserBaseConsts.UNIT_TYPE_1 == ctUnit.getUnitType()){ |
| | | szbmList.add(unitSelectTerm); |
| | | } |
| | | if (UserBaseConsts.UNIT_TYPE_2 == ctUnit.getUnitType()){ |
| | | qzzzxList.add(unitSelectTerm); |
| | | } |
| | | } |
| | | unitSelectTerms.add(unitSelectTerm); |
| | | // 封装返回数据 |
| | | List<SelectTermDTO> result = new ArrayList<>(); |
| | | // 创建第一级 |
| | | SelectTermDTO firstSelectTermDTO = new SelectTermDTO(); |
| | | firstSelectTermDTO.setValue(loginUser.getUnitId()); |
| | | firstSelectTermDTO.setLabel(loginUser.getUnitName()); |
| | | firstSelectTermDTO.setCheckable(false); |
| | | List<SelectTermDTO> firstChildren = new ArrayList<>(); |
| | | // 市直部门 |
| | | SelectTermDTO szbmSelectTermDTO = new SelectTermDTO(); |
| | | szbmSelectTermDTO.setValue("szbm"); |
| | | szbmSelectTermDTO.setLabel("市直部门"); |
| | | szbmSelectTermDTO.setCheckable(false); |
| | | szbmSelectTermDTO.setChildren(szbmList); |
| | | firstChildren.add(szbmSelectTermDTO); |
| | | // 区综治中心 |
| | | SelectTermDTO qzzzxSelectTermDTO = new SelectTermDTO(); |
| | | qzzzxSelectTermDTO.setValue("qzzzx"); |
| | | qzzzxSelectTermDTO.setLabel("区综治中心"); |
| | | qzzzxSelectTermDTO.setCheckable(false); |
| | | qzzzxSelectTermDTO.setChildren(qzzzxList); |
| | | firstChildren.add(qzzzxSelectTermDTO); |
| | | // 第一级子级 |
| | | firstSelectTermDTO.setChildren(firstChildren); |
| | | result.add(firstSelectTermDTO); |
| | | return result; |
| | | }else if (UserBaseConsts.UNIT_GRADE_2 == loginUnit.getUnitGrade()){ |
| | | // 区级交办 |
| | | QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>(); |
| | | ctUnitQueryWrapper.eq("parent_id", loginUnit.getId()); |
| | | List<CtUnit> ctUnitList = mapper.selectList(ctUnitQueryWrapper); |
| | | // 定义市区直部门数组 |
| | | List<SelectTermDTO> qzbmList = new ArrayList<>(); |
| | | // 定义镇街综治中心数组 |
| | | List<SelectTermDTO> zjzzzxList = new ArrayList<>(); |
| | | for (CtUnit ctUnit: ctUnitList){ |
| | | SelectTermDTO unitSelectTerm = new SelectTermDTO(); |
| | | unitSelectTerm.setValue(ctUnit.getId()); |
| | | unitSelectTerm.setLabel(ctUnit.getUnitName()); |
| | | unitSelectTerm.setParentId(ctUnit.getParentId()); |
| | | unitSelectTerm.setCheckable(true); |
| | | if (UserBaseConsts.UNIT_TYPE_2 == ctUnit.getUnitType()){ |
| | | qzbmList.add(unitSelectTerm); |
| | | } |
| | | if (UserBaseConsts.UNIT_TYPE_3 == ctUnit.getUnitType()){ |
| | | zjzzzxList.add(unitSelectTerm); |
| | | } |
| | | } |
| | | // 封装返回数据 |
| | | List<SelectTermDTO> result = new ArrayList<>(); |
| | | // 创建第一级 |
| | | SelectTermDTO firstSelectTermDTO = new SelectTermDTO(); |
| | | firstSelectTermDTO.setValue(loginUser.getUnitId()); |
| | | firstSelectTermDTO.setLabel(loginUser.getUnitName()); |
| | | firstSelectTermDTO.setCheckable(false); |
| | | List<SelectTermDTO> firstChildren = new ArrayList<>(); |
| | | // 市直部门 |
| | | SelectTermDTO qzzbmSelectTermDTO = new SelectTermDTO(); |
| | | qzzbmSelectTermDTO.setValue("qzbm"); |
| | | qzzbmSelectTermDTO.setLabel("区直部门"); |
| | | qzzbmSelectTermDTO.setCheckable(false); |
| | | qzzbmSelectTermDTO.setChildren(qzbmList); |
| | | firstChildren.add(qzzbmSelectTermDTO); |
| | | // 区综治中心 |
| | | SelectTermDTO zjzzzxSelectTermDTO = new SelectTermDTO(); |
| | | zjzzzxSelectTermDTO.setValue("zjzzzx"); |
| | | zjzzzxSelectTermDTO.setLabel("街(镇)综治中心"); |
| | | zjzzzxSelectTermDTO.setCheckable(false); |
| | | zjzzzxSelectTermDTO.setChildren(zjzzzxList); |
| | | firstChildren.add(zjzzzxSelectTermDTO); |
| | | // 第一级子级 |
| | | firstSelectTermDTO.setChildren(firstChildren); |
| | | result.add(firstSelectTermDTO); |
| | | return result; |
| | | }else if (UserBaseConsts.UNIT_GRADE_3 == loginUnit.getUnitGrade()){ |
| | | // 镇街交办 |
| | | // 查询镇街部门数组 |
| | | QueryWrapper<CtDept> ctDeptQueryWrapper = new QueryWrapper<>(); |
| | | ctDeptQueryWrapper.eq("unit_id", loginUnit.getId()); |
| | | List<CtDept> deptList = ctDeptService.list(ctDeptQueryWrapper); |
| | | List<SelectTermDTO> zjbmList = new ArrayList<>(); |
| | | for (CtDept ctDept: deptList){ |
| | | SelectTermDTO unitSelectTerm = new SelectTermDTO(); |
| | | unitSelectTerm.setValue(ctDept.getId()); |
| | | unitSelectTerm.setLabel(ctDept.getName()); |
| | | unitSelectTerm.setParentId(loginUnit.getId()); |
| | | unitSelectTerm.setCheckable(true); |
| | | zjbmList.add(unitSelectTerm); |
| | | } |
| | | // 查询村社数组 |
| | | QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>(); |
| | | ctUnitQueryWrapper.eq("parent_id", loginUnit.getId()); |
| | | List<CtUnit> ctUnitList = mapper.selectList(ctUnitQueryWrapper); |
| | | List<SelectTermDTO> csList = new ArrayList<>(); |
| | | for (CtUnit ctUnit: ctUnitList){ |
| | | SelectTermDTO unitSelectTerm = new SelectTermDTO(); |
| | | unitSelectTerm.setValue(ctUnit.getId()); |
| | | unitSelectTerm.setLabel(ctUnit.getUnitName()); |
| | | unitSelectTerm.setParentId(ctUnit.getParentId()); |
| | | unitSelectTerm.setCheckable(true); |
| | | csList.add(unitSelectTerm); |
| | | } |
| | | // 封装返回数据 |
| | | List<SelectTermDTO> result = new ArrayList<>(); |
| | | // 创建第一级 |
| | | SelectTermDTO firstSelectTermDTO = new SelectTermDTO(); |
| | | firstSelectTermDTO.setValue(loginUser.getUnitId()); |
| | | firstSelectTermDTO.setLabel(loginUser.getUnitName()); |
| | | firstSelectTermDTO.setCheckable(false); |
| | | List<SelectTermDTO> firstChildren = new ArrayList<>(); |
| | | // 村社 |
| | | SelectTermDTO zjbmSelectTermDTO = new SelectTermDTO(); |
| | | zjbmSelectTermDTO.setValue("zjbm"); |
| | | zjbmSelectTermDTO.setLabel("街(镇)部门"); |
| | | zjbmSelectTermDTO.setCheckable(false); |
| | | zjbmSelectTermDTO.setChildren(zjbmList); |
| | | firstChildren.add(zjbmSelectTermDTO); |
| | | // 区综治中心 |
| | | SelectTermDTO csSelectTermDTO = new SelectTermDTO(); |
| | | csSelectTermDTO.setValue("cs"); |
| | | csSelectTermDTO.setLabel("村(社)"); |
| | | csSelectTermDTO.setCheckable(false); |
| | | csSelectTermDTO.setChildren(csList); |
| | | firstChildren.add(csSelectTermDTO); |
| | | // 第一级子级 |
| | | firstSelectTermDTO.setChildren(firstChildren); |
| | | result.add(firstSelectTermDTO); |
| | | return result; |
| | | }else { |
| | | return new ArrayList<>(); |
| | | } |
| | | return SelectTermUtils.createTreeByFirst(unitSelectTerms, loginUser.getUnitId()); |
| | | } |
| | | } |