diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenCustomerGridDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenCustomerGridDTO.java index 65e98b940b..10c2a503c3 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenCustomerGridDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenCustomerGridDTO.java @@ -17,9 +17,10 @@ package com.epmet.dto; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; /** @@ -114,5 +115,5 @@ public class ScreenCustomerGridDTO implements Serializable { private String allParentIds; private String pid; private String pids; - + private String areaCode; } \ No newline at end of file diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectNextAgencyResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectNextAgencyResultDTO.java index 2c867a6398..19a92f93bd 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectNextAgencyResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectNextAgencyResultDTO.java @@ -3,7 +3,6 @@ package com.epmet.project.dto.result; import lombok.Data; import java.io.Serializable; -import java.util.List; /** * @Description 难点赌点-当前登录人员本级一级下一级组织机构/网格 返参DTO @@ -30,5 +29,5 @@ public class ProjectNextAgencyResultDTO implements Serializable { * */ private String orgType; - + private String areaCode; } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java index d6de29567d..90f3157f3d 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java @@ -138,7 +138,7 @@ public class ProjectController { **/ @PostMapping("mynextagency-multic") public Result> myNextAgencyMultic(@LoginUser TokenDto tokenDto){ - return new Result>().ok(projectService.myNextAgencyMultic(tokenDto.getUserId())); + return new Result>().ok(projectService.myNextAgencyMultic(tokenDto.getUserId(),tokenDto.getCustomerId())); } /** diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java index dc2eaf5e3b..25f111af73 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java @@ -87,7 +87,8 @@ public interface ProjectService { * 210622: 新增此API, 后端改为从指标库取值 , 保证平阴县的工作人员,看到的下拉框是平阴县、以及8个街道 * * @param staffId 当前登录用户id + * @param currentCustomerId 当前客户id * @return com.epmet.project.dto.result.ProjectNextAgencyResultDTO */ - List myNextAgencyMultic(String staffId); + List myNextAgencyMultic(String staffId,String currentCustomerId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java index c4687eafee..5a5097e7a1 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java @@ -403,10 +403,14 @@ public class ProjectServiceImpl implements ProjectService { * 210622: 新增此API, 后端改为从指标库取值 , 保证平阴县的工作人员,看到的下拉框是平阴县、以及8个街道 * * @param staffId 当前登录用户id + * @param currentCustomerId 当前客户id * @return com.epmet.project.dto.result.ProjectNextAgencyResultDTO */ @Override - public List myNextAgencyMultic(String staffId) { + public List myNextAgencyMultic(String staffId,String currentCustomerId) { + //多客户测试写死值,别忘了注释掉呀 + // staffId="3f04e397cc226e4e2f2531ac4363e3f9"; + // currentCustomerId="613cc61a6b8ce4c70d21bd413dac72cc"; //1、当前工作人员所属组织信息 Result staffResult = govOrgOpenFeignClient.getAgencyByStaff(staffId); if (!staffResult.success() || null == staffResult.getData()) { @@ -417,26 +421,45 @@ public class ProjectServiceImpl implements ProjectService { staffAgency.setOrgId(staffResult.getData().getId()); staffAgency.setOrgName(staffResult.getData().getOrganizationName()); staffAgency.setOrgType("agency"); + staffAgency.setAreaCode(staffResult.getData().getAreaCode()); resultList.add(staffAgency); //2、查询指标库当前组织的下级组织 - List agencyDTOList = screenAgencyService.queryNextAgencyList(staffResult.getData().getAreaCode(), StrConstant.EPMETY_STR); + List agencyDTOList =new ArrayList<>(); + Result> crmRes = operCrmOpenFeignClient.getAllSubCustomerIds(currentCustomerId); + if (crmRes.success() && CollectionUtils.isNotEmpty(crmRes.getData())) { + log.warn("❤当前客户存在子客户❤"); + //如果包含子客户,则根据areaCode查询下一级 + agencyDTOList = screenAgencyService.queryNextAgencyList(staffResult.getData().getAreaCode(), StrConstant.EPMETY_STR); + } else { + //当前客户没有子客户,根据agencyId查询下一级组织 + agencyDTOList = screenAgencyService.queryNextAgencyList(StrConstant.EPMETY_STR, staffResult.getData().getId()); + } if (CollectionUtils.isNotEmpty(agencyDTOList)) { agencyDTOList.forEach(agencyDTO -> { ProjectNextAgencyResultDTO nextAgency = new ProjectNextAgencyResultDTO(); nextAgency.setOrgId(agencyDTO.getAgencyId()); nextAgency.setOrgName(agencyDTO.getAgencyName()); nextAgency.setOrgType("agency"); + nextAgency.setAreaCode(agencyDTO.getAreaCode()); resultList.add(nextAgency); }); } //3、查询指标库当前组织的下级网格 - List gridList = screenAgencyService.queryGridList(staffResult.getData().getAreaCode(), StrConstant.EPMETY_STR); + List gridList = new ArrayList<>(); + if (crmRes.success() && CollectionUtils.isNotEmpty(crmRes.getData())) { + //如果包含子客户,则根据areaCode查询下一级网格 + gridList=screenAgencyService.queryGridList(staffResult.getData().getAreaCode(), StrConstant.EPMETY_STR); + } else { + //当前客户没有子客户,根据agencyId查询下一级网格 + gridList=screenAgencyService.queryGridList(StrConstant.EPMETY_STR,staffResult.getData().getId()); + } if (CollectionUtils.isNotEmpty(gridList)) { gridList.forEach(gridDTO -> { ProjectNextAgencyResultDTO grid = new ProjectNextAgencyResultDTO(); grid.setOrgId(gridDTO.getGridId()); grid.setOrgName(gridDTO.getGridName()); grid.setOrgType("grid"); + grid.setAreaCode(gridDTO.getAreaCode()); resultList.add(grid); }); }