From 899c73b04d15a67b94bc3894a54c33418e285212 Mon Sep 17 00:00:00 2001 From: xusd <330628789@qq.com> Date: Thu, 12 Jun 2025 16:31:50 +0800 Subject: [PATCH] feature:非警务纠纷优化 --- dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java | 498 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 454 insertions(+), 44 deletions(-) diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java index 6691d9a..6b8e111 100644 --- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java +++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java @@ -547,6 +547,254 @@ } } + public List<SelectTermDTO> unitChoose4Union(String userId) { + // 获取当前登录用户 + CtUserDTO loginUser = ctUserService.clientGetUserAll(userId); + // 获取当前登录用户的部门 + 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_102 == ctUnit.getUnitType()) { + szbmList.add(unitSelectTerm); + } + if (UserBaseConsts.UNIT_TYPE_106 == ctUnit.getUnitType() || UserBaseConsts.UNIT_TYPE_105 == ctUnit.getUnitType() || UserBaseConsts.UNIT_TYPE_104 == ctUnit.getUnitType()) { + szbmList.add(unitSelectTerm); + } + if (UserBaseConsts.UNIT_TYPE_101 == ctUnit.getUnitType()) { + qzzzxList.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()) { + // 区级交办 + //如果是综治中心,走交办流程获取机构。如果不是综治中心,是同级部门,则获取同级部门。 + List<CtUnit> ctUnitList = null; + if (UserBaseConsts.UNIT_TYPE_101 == loginUnit.getUnitType()) { + QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>(); + ctUnitQueryWrapper.eq("parent_id", loginUnit.getId()); + ctUnitList = mapper.selectList(ctUnitQueryWrapper); + } else { + QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>(); + ctUnitQueryWrapper.eq("parent_id", loginUnit.getParentId()); + 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_102 == ctUnit.getUnitType()) { + qzbmList.add(unitSelectTerm); + } + if (UserBaseConsts.UNIT_TYPE_106 == ctUnit.getUnitType() || UserBaseConsts.UNIT_TYPE_105 == ctUnit.getUnitType() || UserBaseConsts.UNIT_TYPE_104 == ctUnit.getUnitType()) { + qzbmList.add(unitSelectTerm); + } + if (UserBaseConsts.UNIT_TYPE_101 == 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()) { + // 镇街交办 + // 查询镇街的直属部门组织 + List<SelectTermDTO> zjbmList = new ArrayList<>(); + List<SelectTermDTO> qzbmList = new ArrayList<>(); + //如果是综治中心,走交办流程获取机构。如果不是综治中心,是同级部门,则获取同级部门。 + List<CtUnit> zjCtUnitList = null; + List<CtUnit> qzCtUnitList = null; + if (UserBaseConsts.UNIT_TYPE_101 == loginUnit.getUnitType()) { + QueryWrapper<CtUnit> zjCtUnitQueryWrapper = new QueryWrapper<>(); + zjCtUnitQueryWrapper.eq("parent_id", loginUnit.getId()) + .eq("unit_grade", UserBaseConsts.UNIT_GRADE_3) + .in("unit_type", UserBaseConsts.UNIT_TYPE_102, UserBaseConsts.UNIT_TYPE_106, UserBaseConsts.UNIT_TYPE_104, UserBaseConsts.UNIT_TYPE_105); + zjCtUnitList = mapper.selectList(zjCtUnitQueryWrapper); + + QueryWrapper<CtUnit> qzCtUnitQueryWrapper = new QueryWrapper<>(); + qzCtUnitQueryWrapper.eq("parent_id", loginUnit.getParentId()) + .eq("unit_grade", UserBaseConsts.UNIT_GRADE_2) + .in("unit_type", UserBaseConsts.UNIT_TYPE_102, UserBaseConsts.UNIT_TYPE_106, UserBaseConsts.UNIT_TYPE_104, UserBaseConsts.UNIT_TYPE_105); + qzCtUnitList = mapper.selectList(qzCtUnitQueryWrapper); + + } else { + QueryWrapper<CtUnit> zjCtUnitQueryWrapper = new QueryWrapper<>(); + + zjCtUnitQueryWrapper.eq("parent_id", loginUnit.getParentId()) + .eq("unit_grade", UserBaseConsts.UNIT_GRADE_3) + .in("unit_type", UserBaseConsts.UNIT_TYPE_102, UserBaseConsts.UNIT_TYPE_106, UserBaseConsts.UNIT_TYPE_104, UserBaseConsts.UNIT_TYPE_105); + zjCtUnitList = mapper.selectList(zjCtUnitQueryWrapper); + + QueryWrapper<CtUnit> qzCtUnitQueryWrapper = new QueryWrapper<>(); + CtUnit unit = getById(loginUnit.getParentId()); + qzCtUnitQueryWrapper.eq("parent_id", unit.getParentId()) + .eq("unit_grade", UserBaseConsts.UNIT_GRADE_2) + .in("unit_type", UserBaseConsts.UNIT_TYPE_102, UserBaseConsts.UNIT_TYPE_106, UserBaseConsts.UNIT_TYPE_104, UserBaseConsts.UNIT_TYPE_105); + qzCtUnitList = mapper.selectList(qzCtUnitQueryWrapper); + } + + for (CtUnit zjCtUnit : zjCtUnitList) { + SelectTermDTO unitSelectTerm = new SelectTermDTO(); + unitSelectTerm.setValue(zjCtUnit.getId()); + unitSelectTerm.setLabel(zjCtUnit.getUnitName()); + unitSelectTerm.setParentId(zjCtUnit.getParentId()); + unitSelectTerm.setCheckable(true); + zjbmList.add(unitSelectTerm); + + } + for (CtUnit qzCtUnit : qzCtUnitList) { + SelectTermDTO unitSelectTerm = new SelectTermDTO(); + unitSelectTerm.setValue(qzCtUnit.getId()); + unitSelectTerm.setLabel(qzCtUnit.getUnitName()); + unitSelectTerm.setParentId(qzCtUnit.getParentId()); + unitSelectTerm.setCheckable(true); + qzbmList.add(unitSelectTerm); + } + + // 查询镇街部门数组 +// 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()).eq("unit_grade", UserBaseConsts.UNIT_GRADE_4); + 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 qzzbmSelectTermDTO = new SelectTermDTO(); + qzzbmSelectTermDTO.setValue("qzbm"); + qzzbmSelectTermDTO.setLabel("区直部门"); + qzzbmSelectTermDTO.setCheckable(false); + qzzbmSelectTermDTO.setChildren(qzbmList); + firstChildren.add(qzzbmSelectTermDTO); + // 村社 + 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 { + // todo + QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>(); + ctUnitQueryWrapper.eq("parent_id", loginUnit.getParentId()); + List<CtUnit> ctUnitList = mapper.selectList(ctUnitQueryWrapper); + // + List<SelectTermDTO> unitList = 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); + unitList.add(unitSelectTerm); + } + return unitList; + } + } + /** * 联合处置申请-选择组织 * @@ -872,11 +1120,11 @@ else return null; } - public List<CtUnitTreeDTO> unitTree(String userId){ + public List<CtUnitTreeDTO> unitTree(String userId) { CtUserDTO loginUser = ctUserService.clientGetUserAll(userId); CtUnit ctUnit = mapper.selectById(loginUser.getUnitId()); QueryWrapper<CtUnit> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("delete_status",0); + queryWrapper.eq("delete_status", 0); if (ctUnit.getUnitGrade().equals(1)) { queryWrapper.eq("city", ctUnit.getCity()); queryWrapper.in("unit_grade", Arrays.asList(1, 2, 3, 4)); @@ -891,39 +1139,39 @@ queryWrapper.in("unit_grade", Arrays.asList(4)); } List<CtUnit> ctUnits = mapper.selectList(queryWrapper); - + Set<CtUnitTreeDTO> citySet = new HashSet<>(); Set<CtUnitTreeDTO> areaSet = new HashSet<>(); Set<CtUnitTreeDTO> roadSet = new HashSet<>(); Set<CtUnitTreeDTO> villageSet = new HashSet<>(); Set<CtUnitTreeDTO> unitSet = new HashSet<>(); - Map<String,String> areaCodeMap = new HashMap<>(); - Map<String,String> areaNameMap = new HashMap<>(); + Map<String, String> areaCodeMap = new HashMap<>(); + Map<String, String> areaNameMap = new HashMap<>(); for (CtUnit unit : ctUnits) { - if(unit.getUnitGrade() == 1 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)){ - areaCodeMap.put(unit.getCity(),unit.getId()); - areaNameMap.put(unit.getCity(),unit.getUnitName()); + if (unit.getUnitGrade() == 1 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) { + areaCodeMap.put(unit.getCity(), unit.getId()); + areaNameMap.put(unit.getCity(), unit.getUnitName()); } - if(unit.getUnitGrade() == 2 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)){ - areaCodeMap.put(unit.getArea(),unit.getId()); - areaNameMap.put(unit.getArea(),unit.getUnitName()); + if (unit.getUnitGrade() == 2 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) { + areaCodeMap.put(unit.getArea(), unit.getId()); + areaNameMap.put(unit.getArea(), unit.getUnitName()); } - if(unit.getUnitGrade() == 3 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)){ - areaCodeMap.put(unit.getRoad(),unit.getId()); - areaNameMap.put(unit.getRoad(),unit.getUnitName()); + if (unit.getUnitGrade() == 3 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) { + areaCodeMap.put(unit.getRoad(), unit.getId()); + areaNameMap.put(unit.getRoad(), unit.getUnitName()); } - if(unit.getUnitGrade() == 4 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)){ - areaCodeMap.put(unit.getVillage(),unit.getId()); - areaNameMap.put(unit.getVillage(),unit.getUnitName()); + if (unit.getUnitGrade() == 4 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) { + areaCodeMap.put(unit.getVillage(), unit.getId()); + areaNameMap.put(unit.getVillage(), unit.getUnitName()); } } for (CtUnit unit : ctUnits) { CtUnitTreeDTO ctUnitTreeDTO = new CtUnitTreeDTO(); ctUnitTreeDTO.setValue(unit.getId()); ctUnitTreeDTO.setLabel(unit.getUnitName()); - if(unit.getUnitGrade() == 1 && ctUnit.getUnitGrade() == 1){ - ctUnitTreeDTO.setParentId(unit.getCity()+"01-dept"); + if (unit.getUnitGrade() == 1 && ctUnit.getUnitGrade() == 1) { + ctUnitTreeDTO.setParentId(unit.getCity() + "01-dept"); CtUnitTreeDTO city = new CtUnitTreeDTO(); city.setValue(areaCodeMap.get(unit.getCity())); @@ -933,91 +1181,253 @@ citySet.add(city); CtUnitTreeDTO cityDept = new CtUnitTreeDTO(); - cityDept.setValue(unit.getCity()+"01-dept"); + cityDept.setValue(unit.getCity() + "01-dept"); cityDept.setLabel("市直部门"); cityDept.setParentId(areaCodeMap.get(unit.getCity())); cityDept.setCheckable(false); areaSet.add(cityDept); CtUnitTreeDTO cityArea = new CtUnitTreeDTO(); - cityArea.setValue(unit.getCity()+"02-area"); + cityArea.setValue(unit.getCity() + "02-area"); cityArea.setLabel("各区"); cityArea.setParentId(areaCodeMap.get(unit.getCity())); cityArea.setCheckable(false); areaSet.add(cityArea); - }else if(unit.getUnitGrade() == 2){ - if(ObjectUtils.isEmpty(areaCodeMap.get(unit.getArea()))){ + } else if (unit.getUnitGrade() == 2) { + if (ObjectUtils.isEmpty(areaCodeMap.get(unit.getArea()))) { continue; } - ctUnitTreeDTO.setParentId(unit.getArea()+"01-dept"); + ctUnitTreeDTO.setParentId(unit.getArea() + "01-dept"); CtUnitTreeDTO area = new CtUnitTreeDTO(); area.setValue(areaCodeMap.get(unit.getArea())); area.setLabel(areaNameMap.get(unit.getArea())); - if(ctUnit.getUnitGrade().equals(2)){ + if (ctUnit.getUnitGrade().equals(2)) { area.setParentId("root"); - }else{ - area.setParentId(unit.getCity()+"02-area"); + } else { + area.setParentId(unit.getCity() + "02-area"); } area.setCheckable(true); areaSet.add(area); CtUnitTreeDTO areaDept = new CtUnitTreeDTO(); - areaDept.setValue(unit.getArea()+"01-dept"); + areaDept.setValue(unit.getArea() + "01-dept"); areaDept.setLabel("区直部门"); areaDept.setParentId(areaCodeMap.get(unit.getArea())); areaDept.setCheckable(false); areaSet.add(areaDept); CtUnitTreeDTO cityRoad = new CtUnitTreeDTO(); - cityRoad.setValue(unit.getArea()+"02-road"); + cityRoad.setValue(unit.getArea() + "02-road"); cityRoad.setLabel("各镇街"); cityRoad.setParentId(areaCodeMap.get(unit.getArea())); cityRoad.setCheckable(false); areaSet.add(cityRoad); - }else if(unit.getUnitGrade() == 3){ - if(ObjectUtils.isEmpty(areaCodeMap.get(unit.getRoad()))){ + } else if (unit.getUnitGrade() == 3) { + if (ObjectUtils.isEmpty(areaCodeMap.get(unit.getRoad()))) { continue; } - ctUnitTreeDTO.setParentId(unit.getRoad()+"01-dept"); + ctUnitTreeDTO.setParentId(unit.getRoad() + "01-dept"); CtUnitTreeDTO road = new CtUnitTreeDTO(); road.setValue(areaCodeMap.get(unit.getRoad())); road.setLabel(areaNameMap.get(unit.getRoad())); - if(ctUnit.getUnitGrade().equals(3)){ + if (ctUnit.getUnitGrade().equals(3)) { road.setParentId("root"); - }else{ - road.setParentId(unit.getArea()+"02-road"); + } else { + road.setParentId(unit.getArea() + "02-road"); } road.setCheckable(true); roadSet.add(road); CtUnitTreeDTO roadDept = new CtUnitTreeDTO(); - roadDept.setValue(unit.getRoad()+"01-dept"); + roadDept.setValue(unit.getRoad() + "01-dept"); roadDept.setLabel("镇街直部门"); roadDept.setParentId(areaCodeMap.get(unit.getRoad())); roadDept.setCheckable(false); villageSet.add(roadDept); - CtUnitTreeDTO cityVillage= new CtUnitTreeDTO(); - cityVillage.setValue(unit.getRoad()+"02-village"); + CtUnitTreeDTO cityVillage = new CtUnitTreeDTO(); + cityVillage.setValue(unit.getRoad() + "02-village"); cityVillage.setLabel("各社区"); cityVillage.setParentId(areaCodeMap.get(unit.getRoad())); cityVillage.setCheckable(false); villageSet.add(cityVillage); - }else if(unit.getUnitGrade() == 4){ - if(ObjectUtils.isEmpty(unit.getRoad())){ + } else if (unit.getUnitGrade() == 4) { + if (ObjectUtils.isEmpty(unit.getRoad())) { continue; } - if(ctUnit.getUnitGrade().equals(4)){ + if (ctUnit.getUnitGrade().equals(4)) { ctUnitTreeDTO.setParentId("root"); - }else{ - ctUnitTreeDTO.setParentId(unit.getRoad()+"02-village"); + } else { + ctUnitTreeDTO.setParentId(unit.getRoad() + "02-village"); } } ctUnitTreeDTO.setCheckable(true); - if(!unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)){ + if (!unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) { + unitSet.add(ctUnitTreeDTO); + } + } + List<CtUnitTreeDTO> treeList = new ArrayList<>(); + treeList.addAll(citySet); + treeList.addAll(TreeUtils.sort(areaSet)); + treeList.addAll(TreeUtils.sort(roadSet)); + treeList.addAll(TreeUtils.sort(villageSet)); + treeList.addAll(TreeUtils.sort(unitSet)); + List<CtUnitTreeDTO> tree = TreeUtils.createUserTree(treeList); + return tree; + } + + public List<CtUnitTreeDTO> unitTree4Union(String userId) { + CtUserDTO loginUser = ctUserService.clientGetUserAll(userId); + CtUnit ctUnit = mapper.selectById(loginUser.getUnitId()); + if (ctUnit.getUnitGrade() == 3) { + ctUnit.setUnitGrade(2); + } + QueryWrapper<CtUnit> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("delete_status", 0); + if (ctUnit.getUnitGrade().equals(1)) { + queryWrapper.eq("city", ctUnit.getCity()); + queryWrapper.in("unit_grade", Arrays.asList(1, 2, 3, 4)); + } else if (ctUnit.getUnitGrade().equals(2)) { + queryWrapper.eq("area", ctUnit.getArea()); + queryWrapper.in("unit_grade", Arrays.asList(2, 3, 4)); + } else if (ctUnit.getUnitGrade().equals(3)) { + queryWrapper.eq("road", ctUnit.getRoad()); + queryWrapper.in("unit_grade", Arrays.asList(3, 4)); + } else if (ctUnit.getUnitGrade().equals(4)) { + queryWrapper.eq("village", ctUnit.getVillage()); + queryWrapper.in("unit_grade", Arrays.asList(4)); + } + List<CtUnit> ctUnits = mapper.selectList(queryWrapper); + + Set<CtUnitTreeDTO> citySet = new HashSet<>(); + Set<CtUnitTreeDTO> areaSet = new HashSet<>(); + Set<CtUnitTreeDTO> roadSet = new HashSet<>(); + Set<CtUnitTreeDTO> villageSet = new HashSet<>(); + Set<CtUnitTreeDTO> unitSet = new HashSet<>(); + + Map<String, String> areaCodeMap = new HashMap<>(); + Map<String, String> areaNameMap = new HashMap<>(); + for (CtUnit unit : ctUnits) { + if (unit.getUnitGrade() == 1 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) { + areaCodeMap.put(unit.getCity(), unit.getId()); + areaNameMap.put(unit.getCity(), unit.getUnitName()); + } + if (unit.getUnitGrade() == 2 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) { + areaCodeMap.put(unit.getArea(), unit.getId()); + areaNameMap.put(unit.getArea(), unit.getUnitName()); + } + if (unit.getUnitGrade() == 3 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) { + areaCodeMap.put(unit.getRoad(), unit.getId()); + areaNameMap.put(unit.getRoad(), unit.getUnitName()); + } + if (unit.getUnitGrade() == 4 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) { + areaCodeMap.put(unit.getVillage(), unit.getId()); + areaNameMap.put(unit.getVillage(), unit.getUnitName()); + } + } + for (CtUnit unit : ctUnits) { + CtUnitTreeDTO ctUnitTreeDTO = new CtUnitTreeDTO(); + ctUnitTreeDTO.setValue(unit.getId()); + ctUnitTreeDTO.setLabel(unit.getUnitName()); + if (unit.getUnitGrade() == 1 && ctUnit.getUnitGrade() == 1) { + ctUnitTreeDTO.setParentId(unit.getCity() + "01-dept"); + + CtUnitTreeDTO city = new CtUnitTreeDTO(); + city.setValue(areaCodeMap.get(unit.getCity())); + city.setLabel(areaNameMap.get(unit.getCity())); + city.setParentId("root"); + city.setCheckable(true); + citySet.add(city); + + CtUnitTreeDTO cityDept = new CtUnitTreeDTO(); + cityDept.setValue(unit.getCity() + "01-dept"); + cityDept.setLabel("市直部门"); + cityDept.setParentId(areaCodeMap.get(unit.getCity())); + cityDept.setCheckable(false); + areaSet.add(cityDept); + + CtUnitTreeDTO cityArea = new CtUnitTreeDTO(); + cityArea.setValue(unit.getCity() + "02-area"); + cityArea.setLabel("各区"); + cityArea.setParentId(areaCodeMap.get(unit.getCity())); + cityArea.setCheckable(false); + areaSet.add(cityArea); + } else if (unit.getUnitGrade() == 2) { + if (ObjectUtils.isEmpty(areaCodeMap.get(unit.getArea()))) { + continue; + } + ctUnitTreeDTO.setParentId(unit.getArea() + "01-dept"); + + CtUnitTreeDTO area = new CtUnitTreeDTO(); + area.setValue(areaCodeMap.get(unit.getArea())); + area.setLabel(areaNameMap.get(unit.getArea())); + if (ctUnit.getUnitGrade().equals(2)) { + area.setParentId("root"); + } else { + area.setParentId(unit.getCity() + "02-area"); + } + area.setCheckable(true); + areaSet.add(area); + + CtUnitTreeDTO areaDept = new CtUnitTreeDTO(); + areaDept.setValue(unit.getArea() + "01-dept"); + areaDept.setLabel("区直部门"); + areaDept.setParentId(areaCodeMap.get(unit.getArea())); + areaDept.setCheckable(false); + areaSet.add(areaDept); + + CtUnitTreeDTO cityRoad = new CtUnitTreeDTO(); + cityRoad.setValue(unit.getArea() + "02-road"); + cityRoad.setLabel("各镇街"); + cityRoad.setParentId(areaCodeMap.get(unit.getArea())); + cityRoad.setCheckable(false); + areaSet.add(cityRoad); + } else if (unit.getUnitGrade() == 3) { + if (ObjectUtils.isEmpty(areaCodeMap.get(unit.getRoad()))) { + continue; + } + ctUnitTreeDTO.setParentId(unit.getRoad() + "01-dept"); + + CtUnitTreeDTO road = new CtUnitTreeDTO(); + road.setValue(areaCodeMap.get(unit.getRoad())); + road.setLabel(areaNameMap.get(unit.getRoad())); + if (ctUnit.getUnitGrade().equals(3)) { + road.setParentId("root"); + } else { + road.setParentId(unit.getArea() + "02-road"); + } + road.setCheckable(true); + roadSet.add(road); + + CtUnitTreeDTO roadDept = new CtUnitTreeDTO(); + roadDept.setValue(unit.getRoad() + "01-dept"); + roadDept.setLabel("镇街直部门"); + roadDept.setParentId(areaCodeMap.get(unit.getRoad())); + roadDept.setCheckable(false); + villageSet.add(roadDept); + + CtUnitTreeDTO cityVillage = new CtUnitTreeDTO(); + cityVillage.setValue(unit.getRoad() + "02-village"); + cityVillage.setLabel("各社区"); + cityVillage.setParentId(areaCodeMap.get(unit.getRoad())); + cityVillage.setCheckable(false); + villageSet.add(cityVillage); + + } else if (unit.getUnitGrade() == 4) { + if (ObjectUtils.isEmpty(unit.getRoad())) { + continue; + } + if (ctUnit.getUnitGrade().equals(4)) { + ctUnitTreeDTO.setParentId("root"); + } else { + ctUnitTreeDTO.setParentId(unit.getRoad() + "02-village"); + } + } + ctUnitTreeDTO.setCheckable(true); + if (!unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) { unitSet.add(ctUnitTreeDTO); } } -- Gitblit v1.8.0