diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CustomerTreeDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CustomerTreeDTO.java index 20b99145db..80bf551608 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CustomerTreeDTO.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CustomerTreeDTO.java @@ -34,11 +34,6 @@ public class CustomerTreeDTO implements Serializable { private static final long serialVersionUID = 1L; - /** - * 主键 - */ - private String id; - /** * 客户id */ 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 02630b9fb5..3059b5a1cf 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 @@ -372,7 +372,7 @@ public interface CustomerAgencyDao extends BaseDao { * @author zhy * @date 2022/7/6 13:32 */ - List selectRootCustomer(); + List selectRootCustomer(@Param("areaCode") String areaCode, @Param("level") String level); CustomerAgencyEntity getAreaRootAgency(@Param("customerId") String customerId); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index e7d27a946a..79f33d949f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -57,6 +57,7 @@ import com.epmet.redis.CustomerAgencyRedis; import com.epmet.service.AgencyService; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerOrgParameterService; +import com.google.common.base.Joiner; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -922,13 +923,31 @@ public class AgencyServiceImpl implements AgencyService { @Override public List getCustomerTree(TokenDto tokenDto) { - List rootList = customerAgencyDao.selectRootCustomer(); + List rootList = customerAgencyDao.selectRootCustomer(null, null); Map treeMap = new HashMap<>(); if (!rootList.isEmpty()) { + // 获取已有客户的所有组织架构,并转换成map,保证唯一 rootList.forEach(item -> { - getSubCustomer(item, treeMap); + customerHandle(item, treeMap); + }); + // 组合成组织树 + rootList = getCustomerTree(treeMap); + // 回显客户名称 + rootList.forEach(item -> { + List customerNames = new ArrayList<>(); + List subList = customerAgencyDao.selectRootCustomer(item.getAreaCode(), item.getLevel()); + if (!subList.isEmpty()) { + CustomerDTO customerDTO = new CustomerDTO(); + customerDTO.setId(item.getCustomerId()); + Result customerResult = operCrmFeignClient.getCustomerInfo(customerDTO); + if (customerResult.success() && null != customerResult.getData()) { + customerNames.add(customerResult.getData().getCustomerName()); + } + } + item.setCustomerName(Joiner.on(",").join(customerNames)); }); } + return rootList; } @@ -989,16 +1008,27 @@ public class AgencyServiceImpl implements AgencyService { * @author zhy * @date 2022/7/6 13:54 */ - private void getSubCustomer(CustomerTreeDTO customer,Map treeMap) { - + private void customerHandle(CustomerTreeDTO customer, Map treeMap) { Result> area = epmetCommonServiceOpenFeignClient.areaCodeTree(customer); if (area.success()) { if (area.getData() != null) { - area.getData().forEach(item->{ - treeMap.put(item.getAreaCode(),item); - }); + area.getData().forEach(item -> treeMap.put(item.getAreaCode(), item)); } } } + /** + * 生成客户树 + * + * @param + * @return com.epmet.dto.result.CustomerTreeDTO + * @author zhy + * @date 2022/7/6 13:54 + */ + private List getCustomerTree(Map treeMap) { + List tree = new ArrayList<>(); + // todo 组合树形结构 + return tree; + } + } 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 9ebd57a41d..d0e2d2e34c 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 @@ -956,6 +956,12 @@ c.DEL_FLAG = '0' AND c.pid = '0' AND c.AREA_CODE IS NOT NULL + + AND c.AREA_CODE = #{areaCode} + + + AND c.LEVEL = #{level} +