From c1a463b9f1c0a7160dbd0ac1c7490eef13861a5e Mon Sep 17 00:00:00 2001
From: huangh <hshgjzd5@163.com>
Date: Tue, 29 Oct 2024 15:02:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/gzdyh_test' into gzdyh_test

---
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java |  463 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 459 insertions(+), 4 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 4c65e58..17bb4a9 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
@@ -1,18 +1,30 @@
 package cn.huge.module.ctuser.service;
 
+import cn.huge.base.common.dto.SelectTermDTO;
 import cn.huge.base.common.exception.ServiceException;
 import cn.huge.base.common.utils.DateUtils;
 import cn.huge.base.common.utils.IdUtils;
+import cn.huge.base.common.utils.ObjectUtils;
+import cn.huge.base.common.utils.SelectTermUtils;
 import cn.huge.module.client.api.impl.UtilsClientImpl;
 import cn.huge.module.constant.BaseConsts;
 import cn.huge.module.ctuser.dao.mapper.CtUnitMapper;
 import cn.huge.module.ctuser.domain.po.CtDept;
 import cn.huge.module.ctuser.domain.po.CtUnit;
 import cn.huge.module.ctuser.domain.po.CtUser;
+import cn.huge.module.ctuser.domain.po.CtUserole;
+import cn.huge.module.ctuser.dto.AppearUnitDTO;
+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.CtUnitDTO;
+import cn.huge.module.cust.dto.CtUserDTO;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import lombok.extern.slf4j.Slf4j;
@@ -21,10 +33,7 @@
 import org.springframework.data.domain.PageRequest;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -133,6 +142,9 @@
             if (IdUtils.checkNewId(ctUnit.getId())){
                 ctUnit.setId(utilsClient.getNewTimeId());
                 ctUnit.setCreateTime(nowDate);
+            }else {
+                // 1、更新单位信息时,更新调度规则指标目标组织名称
+                mapper.updateDispNormCauseTargetUnitName(ctUnit.getUnitName(), ctUnit.getId());
             }
             ctUnit.setUpdateTime(nowDate);
             this.saveOrUpdate(ctUnit);
@@ -263,5 +275,448 @@
         return ctUnit;
     }
 
+    /**
+     * 更新对象
+     *
+     * @param ctUnit 对象
+     */
+    public void updateTerms(CtUnit ctUnit) {
+        mapper.updateTerms(ctUnit);
+    }
 
+    /**
+     * 小程序统计机构数量
+     * */
+    public CtUnitWeChatCountDTO wechatCountUnit(){
+        CtUnitWeChatCountDTO ctUnitWeChatCountDTO = new CtUnitWeChatCountDTO();
+        QueryWrapper<CtUnit> unitQueryWrapper = new QueryWrapper<>();
+        unitQueryWrapper.eq("unit_type", 1);
+        Integer zzUnitNum = mapper.selectCount(unitQueryWrapper);
+        if(ObjectUtils.isEmpty(zzUnitNum)){
+            zzUnitNum = 0;
+        }
+        ctUnitWeChatCountDTO.setZzUnitNum(zzUnitNum);
+        List<Integer> unitTypeList = Arrays.asList(2,3,4,5);
+        QueryWrapper<CtUnit> unitQueryWrapper1 = new QueryWrapper<>();
+        unitQueryWrapper1.in("unit_type", unitTypeList);
+        Integer tzUnitNum = mapper.selectCount(unitQueryWrapper1);
+        if(ObjectUtils.isEmpty(tzUnitNum)){
+            tzUnitNum = 0;
+        }
+        ctUnitWeChatCountDTO.setTzUnitNum(tzUnitNum);
+        return ctUnitWeChatCountDTO;
+    }
+
+    /**
+     * 交办-选择组织
+     * @param userId
+     * @return
+     */
+    public List<SelectTermDTO> unitChoose(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_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()){
+            // 区级交办
+            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_102 == 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<>();
+            QueryWrapper<CtUnit> zjCtUnitQueryWrapper = new QueryWrapper<>();
+            zjCtUnitQueryWrapper.eq("parent_id", loginUnit.getId())
+                    .eq("unit_grade", UserBaseConsts.UNIT_GRADE_3)
+                    .eq("unit_type", UserBaseConsts.UNIT_TYPE_102);
+            List<CtUnit> zjCtUnitList = mapper.selectList(zjCtUnitQueryWrapper);
+            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);
+
+            }
+
+            // 查询镇街部门数组
+//            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 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;
+        }
+    }
+
+    /**
+     * 联合处置申请-选择组织
+     * @param userId
+     * @return
+     */
+    public List<SelectTermDTO> assistApplyUnitChoose(String userId) {
+        // 获取当前登录用户
+        CtUserDTO loginUser = ctUserService.clientGetUserAll(userId);
+        // 获取当前登录用户的部门
+        CtUnit loginUnit = mapper.selectById(loginUser.getUnitId());
+        QueryWrapper<CtUnit> ctUnitQueryWrapper1 = new QueryWrapper<>();
+        ctUnitQueryWrapper1.eq("id", loginUnit.getParentId());
+        CtUnit superiorUnit = mapper.selectById(loginUnit.getParentId());
+        // 市级
+        if (UserBaseConsts.UNIT_GRADE_1 == superiorUnit.getUnitGrade()){
+            QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+            ctUnitQueryWrapper.eq("parent_id", superiorUnit.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_101 == ctUnit.getUnitType()){
+                    szbmList.add(unitSelectTerm);
+                }
+                if (UserBaseConsts.UNIT_TYPE_102 == 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 == superiorUnit.getUnitGrade()){
+            // 区级
+            QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+            ctUnitQueryWrapper.eq("parent_id", superiorUnit.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_102 == ctUnit.getUnitType()){
+                    qzbmList.add(unitSelectTerm);
+                }
+                if (UserBaseConsts.UNIT_TYPE_103 == 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 == superiorUnit.getUnitGrade()){
+            // 镇街
+            // 查询镇街部门数组
+            QueryWrapper<CtDept> ctDeptQueryWrapper = new QueryWrapper<>();
+            ctDeptQueryWrapper.eq("unit_id", superiorUnit.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(superiorUnit.getId());
+                unitSelectTerm.setCheckable(true);
+                zjbmList.add(unitSelectTerm);
+            }
+            // 查询村社数组
+            QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+            ctUnitQueryWrapper.eq("parent_id", superiorUnit.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<>();
+            // 创建第一级
+            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);
+            // 第一级子级
+            result.addAll(firstChildren);
+            return result;
+        }else {
+            return new ArrayList<>();
+        }
+    }
+
+    /**
+     * 获取上级综治中心
+     * @param unitId 当前单位编号
+     * @return
+     */
+    public CtUnitDTO getParentZzzx(String unitId){
+        try{
+            // 查询当前单位的上级综治中心
+            QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+            ctUnitQueryWrapper.eq("id", unitId).select("parent_id");
+            CtUnit loginCtUnit = mapper.selectOne(ctUnitQueryWrapper);
+            ctUnitQueryWrapper.clear();
+            ctUnitQueryWrapper.eq("id", loginCtUnit.getParentId()).eq("unit_type", UserBaseConsts.UNIT_TYPE_101);
+            CtUnit zzzxCtUnit = mapper.selectOne(ctUnitQueryWrapper);
+            CtUnitDTO ctUnitDTO = new CtUnitDTO();
+            BeanUtils.copyProperties(zzzxCtUnit, ctUnitDTO);
+            return ctUnitDTO;
+        }catch (Exception e){
+            log.error("[CtUnitService.getParentZzzx]调用失败,异常信息:"+e, e);
+            throw new ServiceException("CtUnitService.getParentZzzx", e);
+        }
+    }
+
+    /**
+     * 获取本级综治中心
+     * @param unitId 当前单位编号
+     * @return
+     */
+    public CtUnitDTO getBjZzzx(String unitId){
+        try{
+            CtUnitDTO ctUnitDTO = new CtUnitDTO();
+            // 查询自己是否是综治中心
+            CtUnit loginCtUnit = mapper.selectById(unitId);
+            if (UserBaseConsts.UNIT_TYPE_101 == loginCtUnit.getUnitType()){
+                BeanUtils.copyProperties(loginCtUnit, ctUnitDTO);
+            }else {
+                // 查询当前单位的上级综治中心
+                QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+                ctUnitQueryWrapper.eq("id", loginCtUnit.getParentId()).eq("unit_type", UserBaseConsts.UNIT_TYPE_101);
+                CtUnit zzzxCtUnit = mapper.selectOne(ctUnitQueryWrapper);
+                BeanUtils.copyProperties(zzzxCtUnit, ctUnitDTO);
+            }
+            return ctUnitDTO;
+        }catch (Exception e){
+            log.error("[CtUnitService.getParentZzzx]调用失败,异常信息:"+e, e);
+            throw new ServiceException("CtUnitService.getParentZzzx", e);
+        }
+    }
+
+    public CtUnit selectUnitByGridId(String gridUnitId){
+        return mapper.selectUnitByGridId(gridUnitId);
+    }
 }

--
Gitblit v1.8.0