From 805a013936ea3d15a91fbfa632a160006894886a Mon Sep 17 00:00:00 2001 From: Jackwang Date: Thu, 19 May 2022 13:32:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=9A=E7=BB=84=E7=BB=87=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/enums/PartyOrgTypeEnum.java | 37 ++++++++ .../dto/form/OrgTreeByUserAndTypeFormDTO.java | 29 ++++++ .../dto/result/PartyOrgTreeResultDTO.java | 44 +++++++++ .../controller/CustomerAgencyController.java | 12 +++ .../java/com/epmet/dao/CustomerAgencyDao.java | 9 ++ .../epmet/service/CustomerAgencyService.java | 9 ++ .../impl/CustomerAgencyServiceImpl.java | 73 +++++++++++++++ .../resources/mapper/CustomerAgencyDao.xml | 19 ++++ .../dto/partyOrg/IcPartyOrgDTO.java | 12 +++ .../partyOrg/result/IcPartyOrgTreeDTO.java | 91 +++++++++++++++++++ .../controller/IcPartyOrgController.java | 22 ++++- .../modules/partyOrg/dao/IcPartyOrgDao.java | 12 +++ .../partyOrg/service/IcPartyOrgService.java | 13 ++- .../service/impl/IcPartyOrgServiceImpl.java | 65 +++++++++++-- .../mapper/partyOrg/IcPartyOrgDao.xml | 24 +++++ 15 files changed, 460 insertions(+), 11 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/PartyOrgTypeEnum.java create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgTreeByUserAndTypeFormDTO.java create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/PartyOrgTreeResultDTO.java create mode 100644 epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgTreeDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/PartyOrgTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/PartyOrgTypeEnum.java new file mode 100644 index 0000000000..a0d1520e43 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/PartyOrgTypeEnum.java @@ -0,0 +1,37 @@ +package com.epmet.commons.tools.enums; + +public enum PartyOrgTypeEnum { + + PROVINCIAL("0", "省委"), + MUNICIPAL("1", "市委"), + DISTRICT("2", "区委"), + WORKING("3", "党工委"), + PARTY("4", "党委"), + BRANCH("5", "支部"); + + + private String code; + private String name; + + + PartyOrgTypeEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgTreeByUserAndTypeFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgTreeByUserAndTypeFormDTO.java new file mode 100644 index 0000000000..e7599b1212 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgTreeByUserAndTypeFormDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * @program: epmet-cloud + * @description: + * @author: wangtong + * @create: 2022-05-18 16:46 + **/ +@Data +public class OrgTreeByUserAndTypeFormDTO implements Serializable { + + @NotNull(message ="组织id不可为空") + private String agencyId; + + /** + * 党组织类型 0省委,1市委,2区委,3党工委,4党委 + */ + @NotNull(message ="组织类型不可为空") + private String orgType; + + + private List orgTypeList; +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/PartyOrgTreeResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/PartyOrgTreeResultDTO.java new file mode 100644 index 0000000000..510c1c1fe0 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/PartyOrgTreeResultDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @program: epmet-cloud + * @description: + * @author: wangtong + * @create: 2022-05-18 16:48 + **/ +@Data +public class PartyOrgTreeResultDTO implements Serializable { + + /** + * 行政组织id + */ + private String id; + + /** + * 行政组织pid + */ + private String pid; + + /** + * 行政组织名称 + */ + private String name; + + /** + * 行政组织等级 + */ + private String level; + + /** + * 行政组织父ids + */ + private String pids; + + private List children = new ArrayList<>(); +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java index e097d3b38d..71cd514200 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java @@ -313,6 +313,18 @@ public class CustomerAgencyController { return new Result().ok(customerAgencyService.staffPermissionExt(tokenDto.getUserId())); } + /** + * @describe: 通过用户所属的行政组织和行政类型,查询下级的组织树 + * @author wangtong + * @date 2022/5/18 16:50 + * @params [formDto] + * @return com.epmet.commons.tools.utils.Result> + */ + @GetMapping("getOrgTreeByUserAndType") + Result> getOrgTreeByUserAndType(OrgTreeByUserAndTypeFormDTO formDto){ + return customerAgencyService.getOrgTreeByUserAndType(formDto); + } + /** * @Description 根据组织或网格或吧部门获取组织信息 * @Param formDTO diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java index 5e7cd8713a..36e69c50a9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.CustomerAgencyDTO; +import com.epmet.dto.form.OrgTreeByUserAndTypeFormDTO; import com.epmet.dto.result.*; import com.epmet.entity.CustomerAgencyEntity; import org.apache.ibatis.annotations.Mapper; @@ -316,5 +317,13 @@ public interface CustomerAgencyDao extends BaseDao { */ List getCommunityList(@Param("customerId")String customerId, @Param("agencyId")String agencyId); + /** + * @describe: 通过用户所属的行政组织和行政类型,查询下级的组织树 + * @author wangtong + * @date 2022/5/18 17:23 + * @params [formDto] + * @return java.util.List + */ + List getOrgTreeByUserAndType(OrgTreeByUserAndTypeFormDTO formDto); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java index 855fae6038..10aaebfc1a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java @@ -288,4 +288,13 @@ public interface CustomerAgencyService extends BaseService * @author sun **/ AgencyTreeResultDTO rootAgencyGridTree(String agencyId); + + /** + * @describe: 通过用户所属的行政组织和行政类型,查询下级的组织树 + * @author wangtong + * @date 2022/5/18 16:53 + * @params [formDto] + * @return com.epmet.commons.tools.utils.Result> + */ + Result> getOrgTreeByUserAndType(OrgTreeByUserAndTypeFormDTO formDto); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index ceb47e21f9..30ce0e3394 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -24,6 +24,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.enums.PartyOrgTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; @@ -44,6 +45,7 @@ import com.epmet.entity.CustomerAgencyEntity; import com.epmet.entity.CustomerDepartmentEntity; import com.epmet.entity.CustomerGridEntity; import com.epmet.entity.CustomerOrgParameterEntity; +import com.epmet.enums.OrgLevelEnums; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; @@ -1442,4 +1444,75 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl> getOrgTreeByUserAndType(OrgTreeByUserAndTypeFormDTO formDto) { + List orgTypeList = new ArrayList<>(); + //根据组织类型筛选,例如本账号所属市北区,但只筛选市北区下面的的街道组织 + if(PartyOrgTypeEnum.PROVINCIAL.getCode().equals(formDto.getOrgType())){ + //省委 + CollectionUtils.addAll(orgTypeList, + OrgLevelEnums.PROVINCE.getLevel(), + OrgLevelEnums.CITY.getLevel(), + OrgLevelEnums.DISTRICT.getLevel(), + OrgLevelEnums.STREET.getLevel(), + OrgLevelEnums.COMMUNITY.getLevel(), + OrgLevelEnums.GRID.getLevel()); + }else if(PartyOrgTypeEnum.MUNICIPAL.getCode().equals(formDto.getOrgType())){ + //市委 + CollectionUtils.addAll(orgTypeList, + OrgLevelEnums.CITY.getLevel(), + OrgLevelEnums.DISTRICT.getLevel(), + OrgLevelEnums.STREET.getLevel(), + OrgLevelEnums.COMMUNITY.getLevel(), + OrgLevelEnums.GRID.getLevel()); + }else if(PartyOrgTypeEnum.DISTRICT.getCode().equals(formDto.getOrgType())){ + //区委 + CollectionUtils.addAll(orgTypeList, + OrgLevelEnums.DISTRICT.getLevel(), + OrgLevelEnums.STREET.getLevel(), + OrgLevelEnums.COMMUNITY.getLevel(), + OrgLevelEnums.GRID.getLevel()); + }else if(PartyOrgTypeEnum.WORKING.getCode().equals(formDto.getOrgType())){ + //党工委-街道 + CollectionUtils.addAll(orgTypeList, + OrgLevelEnums.STREET.getLevel(), + OrgLevelEnums.COMMUNITY.getLevel(), + OrgLevelEnums.GRID.getLevel()); + }else if(PartyOrgTypeEnum.PARTY.getCode().equals(formDto.getOrgType())){ + //党委-社区 + CollectionUtils.addAll(orgTypeList, + OrgLevelEnums.COMMUNITY.getLevel(), + OrgLevelEnums.GRID.getLevel()); + } + formDto.setOrgTypeList(orgTypeList); + + List list = baseDao.getOrgTreeByUserAndType(formDto); + return new Result>().ok(build(list)); + } + + /** + * 构建树节点 + */ + public static List build(List treeNodes) { + List result = new ArrayList<>(); + + //list转map + Map nodeMap = new LinkedHashMap<>(treeNodes.size()); + for(PartyOrgTreeResultDTO treeNode : treeNodes){ + nodeMap.put(treeNode.getId(), treeNode); + } + + for(PartyOrgTreeResultDTO node : nodeMap.values()) { + PartyOrgTreeResultDTO parent = nodeMap.get(node.getPid()); + if(parent != null && !(node.getId().equals(parent.getId()))){ + parent.getChildren().add(node); + continue; + } + + result.add(node); + } + + return result; + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml index d8314ee8b5..033b4fa2cf 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml @@ -756,4 +756,23 @@ AND CUSTOMER_ID = #{customerId} AND pids LIKE concat('%',#{agencyId}, '%' ) + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java index b4703e9d21..b5d26e1ee6 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java @@ -2,6 +2,7 @@ package com.epmet.resi.partymember.dto.partyOrg; import lombok.Data; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -30,6 +31,7 @@ public class IcPartyOrgDTO implements Serializable { /** * 党组织的上级ID,没有上级时为0 */ + @NotNull(message = "上级组织不能为空") private String orgPid; /** @@ -40,6 +42,7 @@ public class IcPartyOrgDTO implements Serializable { /** * 行政组织 机关ID */ + private String agencyId; /** @@ -50,11 +53,13 @@ public class IcPartyOrgDTO implements Serializable { /** * 党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部 */ + @NotNull(message = "组织类型不能为空") private String partyOrgType; /** * 组织名称 */ + @NotNull(message = "组织名称不能为空") private String partyOrgName; /** @@ -65,11 +70,13 @@ public class IcPartyOrgDTO implements Serializable { /** * 经度 */ + @NotNull(message = "经度不能为空") private String longitude; /** * 纬度 */ + @NotNull(message = "纬度不能为空") private String latitude; /** @@ -112,4 +119,9 @@ public class IcPartyOrgDTO implements Serializable { */ private Date updatedTime; + /** + * 用户id + */ + private String staffId; + } diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgTreeDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgTreeDTO.java new file mode 100644 index 0000000000..35d7372bc9 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgTreeDTO.java @@ -0,0 +1,91 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +/** + * 党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyOrgTreeDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识 + */ + private String id; + + /** + * 党组织的上级ID,没有上级时为0(前端展示用) + */ + private String pid; + + + /** + * 党组织的上级ID,没有上级时为0 + */ + private String orgPid; + + /** + * 党组织的所有上级ID,没有上级时为0 + */ + private String orgPids; + + /** + * 行政组织 机关ID + */ + private String agencyId; + + /** + * 行政组织 机关ID + */ + private String agencyPids; + + /** + * 党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部 + */ + private String partyOrgType; + + /** + * 组织名称 + */ + private String partyOrgName; + + /** + * 组织编码 + */ + private String partyOrgCode; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 地址 + */ + private String address; + + /** + * 党组织介绍 + */ + private String introduction; + + + private List children = new ArrayList<>(); + + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java index 5b6c3937c8..8d06c68748 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java @@ -12,6 +12,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.modules.partyOrg.excel.IcPartyOrgExcel; import com.epmet.modules.partyOrg.service.IcPartyOrgService; import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -46,16 +47,15 @@ public class IcPartyOrgController { } @NoRepeatSubmit - @PostMapping("save") + @PostMapping public Result save(@RequestBody IcPartyOrgDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - icPartyOrgService.save(dto); - return new Result(); + return icPartyOrgService.save(dto); } @NoRepeatSubmit - @PostMapping("update") + @PutMapping public Result update(@RequestBody IcPartyOrgDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); @@ -78,5 +78,19 @@ public class IcPartyOrgController { } + /** + * @describe: 获取党组织下拉树 + * @author wangtong + * @date 2022/5/17 17:13 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + @GetMapping("getTreelist") + public Result> getTreelist(IcPartyOrgDTO formDTO){ +// ValidatorUtils.validateEntity(formDTO,IcPartyOrgDTO.AddUserInternalGroup.class, PageFormDTO.AddUserInternalGroup.class); + return icPartyOrgService.getTreelist(formDTO); + } + + } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java index 71e36d6036..b38cac1d34 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java @@ -2,8 +2,12 @@ package com.epmet.modules.partyOrg.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.partyOrg.entity.IcPartyOrgEntity; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 党组织表 * @@ -13,4 +17,12 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface IcPartyOrgDao extends BaseDao { + /** + * @describe: 获取组织列表 + * @author wangtong + * @date 2022/5/17 19:00 + * @params [] + * @return java.util.List + */ + List getTreelist(IcPartyOrgDTO formDTO); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java index 5de6135f20..92b979a6a2 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java @@ -2,8 +2,10 @@ package com.epmet.modules.partyOrg.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; import com.epmet.modules.partyOrg.entity.IcPartyOrgEntity; import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import java.util.List; import java.util.Map; @@ -54,7 +56,7 @@ public interface IcPartyOrgService extends BaseService { * @author generator * @date 2022-05-17 */ - void save(IcPartyOrgDTO dto); + Result save(IcPartyOrgDTO dto); /** * 默认更新 @@ -75,4 +77,13 @@ public interface IcPartyOrgService extends BaseService { * @date 2022-05-17 */ void delete(String[] ids); + + /** + * @describe: 获取党组织下拉树 + * @author wangtong + * @date 2022/5/17 17:20 + * @params [formDTO] + * @return com.epmet.commons.tools.page.PageData + */ + Result> getTreelist(IcPartyOrgDTO formDTO); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java index dcae7448f5..22f604bf09 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java @@ -4,20 +4,23 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.enums.PartyOrgTypeEnum; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; import com.epmet.modules.partyOrg.dao.IcPartyOrgDao; import com.epmet.modules.partyOrg.entity.IcPartyOrgEntity; import com.epmet.modules.partyOrg.service.IcPartyOrgService; import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 党组织表 @@ -62,15 +65,34 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl> getTreelist(IcPartyOrgDTO formDTO) { + List list = baseDao.getTreelist(formDTO); + return new Result>().ok(build(list)); + } + + /** + * 构建树节点 + */ + public static List build(List treeNodes) { + List result = new ArrayList<>(); + + //list转map + Map nodeMap = new LinkedHashMap<>(treeNodes.size()); + for(IcPartyOrgTreeDTO treeNode : treeNodes){ + nodeMap.put(treeNode.getId(), treeNode); + } + + for(IcPartyOrgTreeDTO node : nodeMap.values()) { + IcPartyOrgTreeDTO parent = nodeMap.get(node.getOrgPid()); + if(parent != null && !(node.getId().equals(parent.getId()))){ + parent.getChildren().add(node); + continue; + } + + result.add(node); + } + + return result; + } + } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml index cb955631e0..d3ecd6c0b4 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml @@ -24,6 +24,30 @@ +