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 | 601 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 595 insertions(+), 6 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 16e00d5..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,25 +1,40 @@ 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; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.PostConstruct; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @title: 客户组织信息表业务逻辑处理 @@ -39,6 +54,12 @@ @Autowired private UtilsClientImpl utilsClient; + + @Autowired + private CtDeptService ctDeptService; + + @Autowired + private CtUserService ctUserService; /** * 更新对象 @@ -116,11 +137,14 @@ */ public void saveCtUnit(CtUnit ctUnit){ try{ - Date nowDate = DateUtils.getMowDate(); + Date nowDate = DateUtils.getNowDate(); // 判断是否新增 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); @@ -130,4 +154,569 @@ } } + /** + * 获取所有组织(包含所有下级子组织) + * + * @param custId 客户编号 + * @param firstId 某一级组织编号 + * @return List + */ + public List<CtUnit> listUnitTree(String custId, String firstId) { + QueryWrapper<CtUnit> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("cust_id", custId).orderByDesc("create_time"); + List<CtUnit> ctUnits = mapper.selectList(queryWrapper); + + // 获取所有的 CtDept 的数量 + QueryWrapper<CtDept> deptQueryWrapper = new QueryWrapper<>(); + deptQueryWrapper.in("unit_id", ctUnits.stream().map(CtUnit::getId).collect(Collectors.toList())); + List<CtDept> ctDepts = ctDeptService.list(deptQueryWrapper); + + // 将 CtDept 的数量存储在 Map 中 + Map<String, Long> ctDeptCountMap = ctDepts.stream() + .collect(Collectors.groupingBy(CtDept::getUnitId, Collectors.counting())); + + // 为每个 CtUnit 设置 CtDept 的数量 + for (CtUnit ctUnit : ctUnits) { + Long ctDeptsCount = ctDeptCountMap.getOrDefault(ctUnit.getId(), 0L); + ctUnit.setCountCtDept(ctDeptsCount.intValue()); + } + return this.createTree(ctUnits, firstId); + } + + /** + * 创建某一级组织下树形结构 + * + * @param ctUnitList 所有组织集合 + * @param firstId 某一级组织编号 + * @return List + */ + public List<CtUnit> createTree(List<CtUnit> ctUnitList, String firstId) { + List<CtUnit> firstMapList = new ArrayList<>(); + for (CtUnit ctUnit : ctUnitList) { + for (CtUnit currentParam : ctUnitList) { + if (currentParam.getId().equals(ctUnit.getParentId())) { + addToMBean(currentParam, ctUnit); + break; + } + } + } + //取第一级节点 + for (CtUnit unit : ctUnitList) { + if (StringUtils.isNotEmpty(firstId)) { + if (firstId.equals(unit.getId())) { + firstMapList.add(unit); + } + } else { + if (BaseConsts.ROOT.equals(unit.getParentId()) || StringUtils.isEmpty(unit.getParentId())) { + firstMapList.add(unit); + } + } + } + return firstMapList; + } + + /** + * 获取组织的子级组织 + * + * @param targetUnit 目标组织 + * @param currentUnit 子级组织 + */ + public void addToMBean(CtUnit targetUnit, CtUnit currentUnit) { + List<CtUnit> childListObj = targetUnit.getChildren(); + List<CtUnit> childList = null; + if (CollectionUtils.isEmpty(childListObj)) { + childList = new ArrayList(); + targetUnit.setChildren(childList); + } else { + childList = childListObj; + } + childList.add(currentUnit); + } + + /** + * 获取组织相关数据(包含组织下的部门) + * + * @param unitId 组织主键编号 + * @return + */ + public CtUnit getUnitAndDept(String unitId) { + + // 组织详情 + CtUnit ctUnit = mapper.selectById(unitId); + // 组织人员数量 + QueryWrapper<CtUser> userQueryWrapper = new QueryWrapper<>(); + userQueryWrapper.eq("unit_id", unitId); + Integer countCtUser = ctUserService.count(userQueryWrapper); + ctUnit.setCountCtUser(countCtUser); + // 未配岗人员(单位下) + userQueryWrapper.isNull("dept_id"); + List<CtUser> unMatchUsers = ctUserService.list(userQueryWrapper); + ctUnit.setUnMatchUsers(unMatchUsers); + // 部门详情 + QueryWrapper<CtDept> deptQueryWrapper = new QueryWrapper<>(); + deptQueryWrapper.eq("unit_id", unitId); + deptQueryWrapper.orderByDesc("create_time"); + List<CtDept> ctDepts = ctDeptService.list(deptQueryWrapper); + for (CtDept ctDept : ctDepts) { + // 部门 + userQueryWrapper.clear(); + userQueryWrapper.eq("dept_id", ctDept.getId()); + // 部门下成员 + List<CtUser> matchUsers = ctUserService.list(userQueryWrapper); + ctDept.setMatchUsers(matchUsers); + // 部门人员数量 + int countDeptUser = ctUserService.count(userQueryWrapper); + ctDept.setCountCtUser(countDeptUser); + } + List<CtDept> ctDeptTrees = ctDeptService.createTree(ctDepts, null); + ctUnit.setCtDepts(ctDeptTrees); + // 部门数量 + ctUnit.setCountCtDept(ctDepts.size()); + 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