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.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; 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 java.util.*; import java.util.stream.Collectors; /** * @title: 客户组织信息表业务逻辑处理 * @Description 客户组织信息表业务逻辑处理 * @company hugeinfo * @author liyj * @Time 2024-08-19 20:04:19 * @version 1.0.0 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class CtUnitService extends ServiceImpl{ @Autowired private CtUnitMapper mapper; @Autowired private UtilsClientImpl utilsClient; @Autowired private CtDeptService ctDeptService; @Autowired private CtUserService ctUserService; /** * 更新对象 * @param entity 对象 */ public void updateCtUnit(CtUnit entity){ try{ mapper.updateCtUnit(entity); }catch (Exception e){ log.error("[CtUnitService.updateCtUnit]调用失败,异常信息:"+e, e); throw new ServiceException("CtUnitService.updateCtUnit", e); } } /** * 条件更新对象 * @param entity 对象 * @param terms 条件 */ public void updateCtUnitTerms(CtUnit entity, Map terms){ try{ mapper.updateCtUnitTerms(entity, terms); }catch (Exception e){ log.error("[CtUnitService.updateCtUnitTerms]调用失败,异常信息:"+e, e); throw new ServiceException("CtUnitService.updateCtUnitTerms", e); } } /** * 根据编号物理删除 * @param id 查询条件集合 */ public void deleteCtUnit(String id){ try{ mapper.deleteCtUnit(id); }catch (Exception e){ log.error("[CtUnitService.deleteCtUnit]调用失败,异常信息:"+e, e); throw new ServiceException("CtUnitService.deleteCtUnit", e); } } /** * 按条件查询 * @param terms 条件 * @return List */ public List listTerms(Map terms){ return mapper.listTerms(terms); } /** * 按条件统计 * @param terms 条件 * @return long */ public long countTerms(Map terms){ return mapper.countTerms(terms); } /** * 按条件分页查询 * @param page 分页对象 * @param terms 条件 * @return Page */ public Page pageQuery(PageRequest page, Map terms){ long total = mapper.countTerms(terms); List content = mapper.pageTerms(page, terms); return new PageImpl(content, page, total); } /** * 新增或更新对象 * @param ctUnit 实体对象 */ public void saveCtUnit(CtUnit ctUnit){ try{ 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); }catch (Exception e){ log.error("[CtUnitService.saveCtUnit]调用失败,异常信息:"+e, e); throw new ServiceException("CtUnitService.saveCtUnit", e); } } /** * 获取所有组织(包含所有下级子组织) * * @param custId 客户编号 * @param firstId 某一级组织编号 * @return List */ public List listUnitTree(String custId, String firstId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("cust_id", custId).orderByDesc("create_time"); List ctUnits = mapper.selectList(queryWrapper); // 获取所有的 CtDept 的数量 QueryWrapper deptQueryWrapper = new QueryWrapper<>(); deptQueryWrapper.in("unit_id", ctUnits.stream().map(CtUnit::getId).collect(Collectors.toList())); List ctDepts = ctDeptService.list(deptQueryWrapper); // 将 CtDept 的数量存储在 Map 中 Map 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 createTree(List ctUnitList, String firstId) { List 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 childListObj = targetUnit.getChildren(); List 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 userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.eq("unit_id", unitId); Integer countCtUser = ctUserService.count(userQueryWrapper); ctUnit.setCountCtUser(countCtUser); // 未配岗人员(单位下) userQueryWrapper.isNull("dept_id"); List unMatchUsers = ctUserService.list(userQueryWrapper); ctUnit.setUnMatchUsers(unMatchUsers); // 部门详情 QueryWrapper deptQueryWrapper = new QueryWrapper<>(); deptQueryWrapper.eq("unit_id", unitId); deptQueryWrapper.orderByDesc("create_time"); List ctDepts = ctDeptService.list(deptQueryWrapper); for (CtDept ctDept : ctDepts) { // 部门 userQueryWrapper.clear(); userQueryWrapper.eq("dept_id", ctDept.getId()); // 部门下成员 List matchUsers = ctUserService.list(userQueryWrapper); ctDept.setMatchUsers(matchUsers); // 部门人员数量 int countDeptUser = ctUserService.count(userQueryWrapper); ctDept.setCountCtUser(countDeptUser); } List 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 unitQueryWrapper = new QueryWrapper<>(); unitQueryWrapper.eq("unit_type", 1); Integer zzUnitNum = mapper.selectCount(unitQueryWrapper); if(ObjectUtils.isEmpty(zzUnitNum)){ zzUnitNum = 0; } ctUnitWeChatCountDTO.setZzUnitNum(zzUnitNum); List unitTypeList = Arrays.asList(2,3,4,5); QueryWrapper 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 unitChoose(String userId) { // 获取当前登录用户 CtUserDTO loginUser = ctUserService.clientGetUserAll(userId); // 获取当前登录用户的部门 CtUnit loginUnit = mapper.selectById(loginUser.getUnitId()); // 市级交办 if (UserBaseConsts.UNIT_GRADE_1 == loginUnit.getUnitGrade()){ QueryWrapper ctUnitQueryWrapper = new QueryWrapper<>(); ctUnitQueryWrapper.eq("parent_id", loginUnit.getId()); List ctUnitList = mapper.selectList(ctUnitQueryWrapper); // 定义市直部门数组 List szbmList = new ArrayList<>(); // 定义区综治中心数组 List 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_2 == ctUnit.getUnitType()){ szbmList.add(unitSelectTerm); } if (UserBaseConsts.UNIT_TYPE_1 == ctUnit.getUnitType()){ qzzzxList.add(unitSelectTerm); } } // 封装返回数据 List result = new ArrayList<>(); // 创建第一级 SelectTermDTO firstSelectTermDTO = new SelectTermDTO(); firstSelectTermDTO.setValue(loginUser.getUnitId()); firstSelectTermDTO.setLabel(loginUser.getUnitName()); firstSelectTermDTO.setCheckable(false); List 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 ctUnitQueryWrapper = new QueryWrapper<>(); ctUnitQueryWrapper.eq("parent_id", loginUnit.getId()); List ctUnitList = mapper.selectList(ctUnitQueryWrapper); // 定义市区直部门数组 List qzbmList = new ArrayList<>(); // 定义镇街综治中心数组 List 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_1 == ctUnit.getUnitType()){ zjzzzxList.add(unitSelectTerm); } } // 封装返回数据 List result = new ArrayList<>(); // 创建第一级 SelectTermDTO firstSelectTermDTO = new SelectTermDTO(); firstSelectTermDTO.setValue(loginUser.getUnitId()); firstSelectTermDTO.setLabel(loginUser.getUnitName()); firstSelectTermDTO.setCheckable(false); List 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 ctDeptQueryWrapper = new QueryWrapper<>(); ctDeptQueryWrapper.eq("unit_id", loginUnit.getId()); List deptList = ctDeptService.list(ctDeptQueryWrapper); List 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 ctUnitQueryWrapper = new QueryWrapper<>(); ctUnitQueryWrapper.eq("parent_id", loginUnit.getId()); List ctUnitList = mapper.selectList(ctUnitQueryWrapper); List 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 result = new ArrayList<>(); // 创建第一级 SelectTermDTO firstSelectTermDTO = new SelectTermDTO(); firstSelectTermDTO.setValue(loginUser.getUnitId()); firstSelectTermDTO.setLabel(loginUser.getUnitName()); firstSelectTermDTO.setCheckable(false); List 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<>(); } } /** * 联合处置申请-选择组织 * @param userId * @return */ public List assistApplyUnitChoose(String userId) { // 获取当前登录用户 CtUserDTO loginUser = ctUserService.clientGetUserAll(userId); // 获取当前登录用户的部门 CtUnit loginUnit = mapper.selectById(loginUser.getUnitId()); QueryWrapper ctUnitQueryWrapper1 = new QueryWrapper<>(); ctUnitQueryWrapper1.eq("id", loginUnit.getParentId()); CtUnit superiorUnit = mapper.selectById(loginUnit.getParentId()); // 市级 if (UserBaseConsts.UNIT_GRADE_1 == superiorUnit.getUnitGrade()){ QueryWrapper ctUnitQueryWrapper = new QueryWrapper<>(); ctUnitQueryWrapper.eq("parent_id", superiorUnit.getId()); List ctUnitList = mapper.selectList(ctUnitQueryWrapper); // 定义市直部门数组 List szbmList = new ArrayList<>(); // 定义区综治中心数组 List 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); } } // 封装返回数据 List result = new ArrayList<>(); // 创建第一级 SelectTermDTO firstSelectTermDTO = new SelectTermDTO(); firstSelectTermDTO.setValue(loginUser.getUnitId()); firstSelectTermDTO.setLabel(loginUser.getUnitName()); firstSelectTermDTO.setCheckable(false); List 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 ctUnitQueryWrapper = new QueryWrapper<>(); ctUnitQueryWrapper.eq("parent_id", superiorUnit.getId()); List ctUnitList = mapper.selectList(ctUnitQueryWrapper); // 定义市区直部门数组 List qzbmList = new ArrayList<>(); // 定义镇街综治中心数组 List 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 result = new ArrayList<>(); // 创建第一级 SelectTermDTO firstSelectTermDTO = new SelectTermDTO(); firstSelectTermDTO.setValue(loginUser.getUnitId()); firstSelectTermDTO.setLabel(loginUser.getUnitName()); firstSelectTermDTO.setCheckable(false); List 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 ctDeptQueryWrapper = new QueryWrapper<>(); ctDeptQueryWrapper.eq("unit_id", superiorUnit.getId()); List deptList = ctDeptService.list(ctDeptQueryWrapper); List 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 ctUnitQueryWrapper = new QueryWrapper<>(); ctUnitQueryWrapper.eq("parent_id", superiorUnit.getId()); List ctUnitList = mapper.selectList(ctUnitQueryWrapper); List 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 result = new ArrayList<>(); // 创建第一级 List 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 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_1); 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); } } }