From b6fa58652c12f0c61409cc44dfd8ad78f821b6c6 Mon Sep 17 00:00:00 2001
From: liyj <1003249715@qq.com>
Date: Wed, 11 Sep 2024 01:19:25 +0800
Subject: [PATCH] 1、流程bug修复

---
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java |  191 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 156 insertions(+), 35 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 f7cbd97..d212a5e 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
@@ -15,6 +15,7 @@
 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;
@@ -303,47 +304,167 @@
     }
 
     /**
-     * 按条件分页查询
-     *
-     * @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());
     }
 }

--
Gitblit v1.8.0