|
|
@ -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<String, CustomerProjectCategoryDictEntity> epmetCodeMap = new HashMap<>(); |
|
|
|
Result<String> parentCustomer = operCrmOpenFeignClient.getExternalAndParentCustomerId(formDTO.getCustomerId()); |
|
|
|
if (StringUtils.isNotBlank(parentCustomer.getData())) { |
|
|
|
customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); |
|
|
|
epmetCodeMap = customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); |
|
|
|
} |
|
|
|
Map<String, CustomerProjectCategoryDictEntity> codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId());; |
|
|
|
//项目ID不为空时,因为只有一条,可以直接处理
|
|
|
|
Map<String, CustomerProjectCategoryDictEntity> 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<String, ScreenCustomerAgencyEntity> agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId()); |
|
|
|
Map<String, ScreenCustomerGridDTO> 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<String, CustomerProjectCategoryDictEntity> epmetCodeMap, Map<String, CustomerProjectCategoryDictEntity> 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"); |
|
|
|