diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java index 619e9f2e67..40a330fc6f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java @@ -207,7 +207,7 @@ public interface ScreenCustomerAgencyDao extends BaseDao selectAgencyByCustomer(@Param("customerId")String customerId); - List selectAgencyByAreaCode(String areaCode); + List selectAgencyByAreaCode(@Param("areaCode") String areaCode); /** * @Description 根据areaCode查询下级组织 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.java index 3adec6357e..c93bb34b58 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.java @@ -48,7 +48,9 @@ public interface ScreenProjectQuantityOrgMonthlyDao extends BaseDao selectQuantityOrgMonthly(@Param("agencyInfos") List agencyInfos, @Param("monthId") String monthId); + List selectQuantityOrgMonthly( + @Param("agencyInfos") List agencyInfos, + @Param("monthId") String monthId); List selectQuantityOrgMonthlyByAgency(@Param("agencyInfos") List agencyInfos, @Param("monthId") String monthId); /** @@ -58,7 +60,9 @@ public interface ScreenProjectQuantityOrgMonthlyDao extends BaseDao selectQuantityGrandOrgMonthly(@Param("agencyInfos") List agencyInfos, @Param("monthId") String monthId); + List selectQuantityGrandOrgMonthly( + @Param("agencyInfos") List agencyInfos, + @Param("monthId") String monthId); List selectQuantityGrandOrgMonthlyByAgency(@Param("agencyInfos") List agencyInfos, @Param("monthId") String monthId); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java index 4ad4614efa..e3057c2a8e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.service.impl; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; @@ -40,6 +41,9 @@ import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; +import static java.util.stream.Collectors.collectingAndThen; +import static java.util.stream.Collectors.toCollection; + /** * @dscription 省网格化平台数据上报--数据查询 * @author sun @@ -141,23 +145,28 @@ public class DataReportingServiceImpl implements DataReportingService { Map epmetCodeMap = new HashMap<>(); Result parentCustomer = operCrmOpenFeignClient.getExternalAndParentCustomerId(formDTO.getCustomerId()); if (StringUtils.isNotBlank(parentCustomer.getData())) { - customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); + epmetCodeMap = customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); } Map codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId());; //项目ID不为空时,因为只有一条,可以直接处理 + Map finalEpmetCodeMap = epmetCodeMap; if (CollectionUtils.isNotEmpty(formDTO.getProjectId())) { list = projectList.stream().map(project -> { - EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap); + EventInfoResultDTO dto = getEventInfoResultDTO(project, finalEpmetCodeMap, codeMap); if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(project.getOrgId()); dto.setOrgId(project.getOrgId()); - dto.setOrgCode(agency.getCode()); - dto.setOrgName(agency.getAgencyName()); + if (null != agency) { + dto.setOrgCode(agency.getCode()); + dto.setOrgName(agency.getAgencyName()); + } } else { ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId()); dto.setOrgId(project.getOrgId()); - dto.setOrgCode(grid.getCode()); - dto.setOrgName(grid.getGridName()); + if (null != grid) { + dto.setOrgCode(grid.getCode()); + dto.setOrgName(grid.getGridName()); + } } return dto; }).collect(Collectors.toList()); @@ -166,22 +175,26 @@ public class DataReportingServiceImpl implements DataReportingService { Map agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId()); Map gridMap = screenCustomerGridService.getGridList(formDTO.getCustomerId()); list = projectList.stream().map(project -> { - EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap); + EventInfoResultDTO dto = getEventInfoResultDTO(project, finalEpmetCodeMap, codeMap); if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { ScreenCustomerAgencyEntity agency = agencyMap.get(project.getOrgId()); dto.setOrgId(project.getOrgId()); - dto.setOrgCode(agency.getCode()); - dto.setOrgName(agency.getAgencyName()); + if (null != agency) { + dto.setOrgCode(agency.getCode()); + dto.setOrgName(agency.getAgencyName()); + } } else { ScreenCustomerGridDTO grid = gridMap.get(project.getOrgId()); dto.setOrgId(project.getOrgId()); - dto.setOrgCode(grid.getCode()); - dto.setOrgName(grid.getGridName()); + if (null != grid) { + dto.setOrgCode(grid.getCode()); + dto.setOrgName(grid.getGridName()); + } } return dto; }).collect(Collectors.toList()); } - return list.stream().filter(item -> StringUtils.isNotBlank(item.getEventCategory())).collect(Collectors.toList()); + return list.stream().collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(EventInfoResultDTO::getId))), ArrayList::new)); } private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project, Map epmetCodeMap, Map codeMap) { @@ -198,8 +211,22 @@ public class DataReportingServiceImpl implements DataReportingService { "46c55cb862d6d5e6d05d2ab61a1cc07e".equals(project.getCustomerId())) { CustomerProjectCategoryDictEntity categoryEntity = codeMap.get(categoryCode); if (null != categoryEntity) { - categoryCode = categoryEntity.getEpmetCategoryCode(); - parentCode = null == epmetCodeMap.get(categoryCode)?null:epmetCodeMap.get(categoryCode).getParentCategoryCode(); + String code = categoryEntity.getEpmetCategoryCode(); + if (StringUtils.isBlank(code)) { + //没有对应平阴的分类code,那么一级分类和二级分类都为空 + categoryCode = null; + parentCode = null; + } else { + //如果是对应一级分类,则二级分类为空。如果对应平阴二级分类,则取对应的一级分类 + CustomerProjectCategoryDictEntity epmetCode = epmetCodeMap.get(code); + if (NumConstant.ONE == epmetCode.getLevel()) { + categoryCode = null; + parentCode = code; + } else { + categoryCode = code; + parentCode = epmetCode.getParentCategoryCode(); + } + } } else { categoryCode = null; parentCode = null; @@ -218,16 +245,18 @@ public class DataReportingServiceImpl implements DataReportingService { if (OrgTypeConstant.AGENCY.equals(project.getFinishOrgType())) { //如果是孔村的项目办结层级需要降一级 if("2fe0065f70ca0e23ce4c26fca5f1d933".equals(project.getCustomerId())) { - switch (project.getFinishOrgLevel()) { - case OrgTypeConstant.DISTRICT: - dto.setCompleteLevel("3"); - break; - case OrgTypeConstant.STREET: - case OrgTypeConstant.COMMUNITY: - dto.setCompleteLevel("4"); - break; - default: - break; + if (StringUtils.isNotBlank(project.getFinishOrgLevel())) { + switch (project.getFinishOrgLevel()) { + case OrgTypeConstant.DISTRICT: + dto.setCompleteLevel("3"); + break; + case OrgTypeConstant.STREET: + case OrgTypeConstant.COMMUNITY: + dto.setCompleteLevel("4"); + break; + default: + break; + } } } else { dto.setCompleteLevel(getCompleteLevel(project.getFinishOrgLevel())); @@ -237,7 +266,9 @@ public class DataReportingServiceImpl implements DataReportingService { String[] orgIds = project.getOrgIdPath().split(StrConstant.COLON); int size = orgIds.length; ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(orgIds[size - 1]); - dto.setCompleteLevel(getCompleteLevel(agency.getLevel())); + if (null != agency) { + dto.setCompleteLevel(getCompleteLevel(agency.getLevel())); + } } else { //办结组织是网格时,办结层级为网格 dto.setCompleteLevel("5");