|
|
@ -2,6 +2,7 @@ package com.epmet.service.impl; |
|
|
|
|
|
|
|
import com.epmet.commons.tools.constant.StrConstant; |
|
|
|
import com.epmet.commons.tools.utils.DateUtils; |
|
|
|
import com.epmet.commons.tools.utils.Result; |
|
|
|
import com.epmet.constant.OrgTypeConstant; |
|
|
|
import com.epmet.constant.ProjectConstant; |
|
|
|
import com.epmet.dto.basereport.form.EventInfoFormDTO; |
|
|
@ -19,6 +20,7 @@ import com.epmet.dto.user.result.MidPatrolDetailResult; |
|
|
|
import com.epmet.dto.user.result.MidPatrolRecordResult; |
|
|
|
import com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity; |
|
|
|
import com.epmet.entity.stats.CustomerProjectCategoryDictEntity; |
|
|
|
import com.epmet.feign.OperCrmOpenFeignClient; |
|
|
|
import com.epmet.service.DataReportingService; |
|
|
|
import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; |
|
|
|
import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService; |
|
|
@ -61,6 +63,8 @@ public class DataReportingServiceImpl implements DataReportingService { |
|
|
|
private StatsStaffPatrolService statsStaffPatrolService; |
|
|
|
@Resource |
|
|
|
private CustomerProjectCategoryDictService customerProjectCategoryDictService; |
|
|
|
@Resource |
|
|
|
private OperCrmOpenFeignClient operCrmOpenFeignClient; |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author sun |
|
|
@ -153,16 +157,24 @@ public class DataReportingServiceImpl implements DataReportingService { |
|
|
|
if(CollectionUtils.isEmpty(projectList)) { |
|
|
|
return Collections.emptyList(); |
|
|
|
} |
|
|
|
Map<String, CustomerProjectCategoryDictEntity> epmetCodeMap = new HashMap<>(); |
|
|
|
Result<String> parentCustomer = operCrmOpenFeignClient.getExternalAndParentCustomerId(formDTO.getCustomerId()); |
|
|
|
if (StringUtils.isNotBlank(parentCustomer.getData())) { |
|
|
|
customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); |
|
|
|
} |
|
|
|
Map<String, CustomerProjectCategoryDictEntity> codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId());; |
|
|
|
//项目ID不为空时,因为只有一条,可以直接处理
|
|
|
|
if (StringUtils.isNotEmpty(formDTO.getProjectId())) { |
|
|
|
list = projectList.stream().map(project -> { |
|
|
|
EventInfoResultDTO dto = getEventInfoResultDTO(project); |
|
|
|
EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, 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()); |
|
|
|
} else { |
|
|
|
ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId()); |
|
|
|
dto.setOrgId(project.getOrgId()); |
|
|
|
dto.setOrgCode(grid.getCode()); |
|
|
|
dto.setOrgName(grid.getGridName()); |
|
|
|
} |
|
|
@ -173,7 +185,7 @@ 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); |
|
|
|
EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap); |
|
|
|
if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { |
|
|
|
ScreenCustomerAgencyEntity agency = agencyMap.get(project.getOrgId()); |
|
|
|
dto.setOrgCode(agency.getCode()); |
|
|
@ -189,25 +201,29 @@ public class DataReportingServiceImpl implements DataReportingService { |
|
|
|
return list.stream().filter(item -> StringUtils.isNotBlank(item.getEventCategory())).collect(Collectors.toList()); |
|
|
|
} |
|
|
|
|
|
|
|
private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project) { |
|
|
|
private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project, Map<String, CustomerProjectCategoryDictEntity> epmetCodeMap, Map<String, CustomerProjectCategoryDictEntity> codeMap) { |
|
|
|
EventInfoResultDTO dto = new EventInfoResultDTO(); |
|
|
|
dto.setId(project.getProjectId()); |
|
|
|
dto.setCustomerId(project.getCustomerId()); |
|
|
|
dto.setEventName(project.getProjectTitle()); |
|
|
|
dto.setReporterId(project.getProjectCreator()); |
|
|
|
String categoryCode = project.getCategoryCode().split(StrConstant.COMMA)[0]; |
|
|
|
String parentCode = null == codeMap.get(categoryCode)?null:codeMap.get(categoryCode).getParentCategoryCode(); |
|
|
|
//如果是孔村、榆山、锦水的项目需要关联分类字典表
|
|
|
|
if("2fe0065f70ca0e23ce4c26fca5f1d933".equals(project.getCustomerId()) || |
|
|
|
"44876154d10d7cb7affd92000f84f833".equals(project.getCustomerId()) || |
|
|
|
"46c55cb862d6d5e6d05d2ab61a1cc07e".equals(project.getCustomerId())) { |
|
|
|
CustomerProjectCategoryDictEntity categoryEntity = customerProjectCategoryDictService.getByCategoryCode(project.getCustomerId(), categoryCode); |
|
|
|
CustomerProjectCategoryDictEntity categoryEntity = codeMap.get(categoryCode); |
|
|
|
if (null != categoryEntity) { |
|
|
|
categoryCode = categoryEntity.getEpmetCategoryCode(); |
|
|
|
parentCode = epmetCodeMap.get(categoryEntity.getEpmetCategoryCode()).getParentCategoryCode(); |
|
|
|
} else { |
|
|
|
categoryCode = null; |
|
|
|
parentCode = null; |
|
|
|
} |
|
|
|
} |
|
|
|
dto.setEventCategory(categoryCode); |
|
|
|
dto.setParentEventCategory(parentCode); |
|
|
|
dto.setReportTime(project.getProjectCreateTime()); |
|
|
|
dto.setHappenDate(DateUtils.parseDate(DateUtils.format(project.getProjectCreateTime()), DateUtils.DATE_PATTERN)); |
|
|
|
dto.setHappenPlace(project.getProjectAddress()); |
|
|
@ -244,7 +260,7 @@ public class DataReportingServiceImpl implements DataReportingService { |
|
|
|
dto.setCompleteLevel("07"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
dto.setStatus(getProjectStatus(project.getProjectStatusCode())); |
|
|
|
dto.setCompleteTime(project.getCloseCaseTime()); |
|
|
|
dto.setLat(project.getLatitude()); |
|
|
|
dto.setLng(project.getLongitude()); |
|
|
@ -268,6 +284,19 @@ public class DataReportingServiceImpl implements DataReportingService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private String getProjectStatus(String status) { |
|
|
|
switch (status) { |
|
|
|
case ProjectConstant.PENDING: |
|
|
|
return "01"; |
|
|
|
case ProjectConstant.CLOSED: |
|
|
|
return "02"; |
|
|
|
case ProjectConstant.CLOSED_CASE: |
|
|
|
return "03"; |
|
|
|
default: |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<MidPatrolRecordResult> getPatrolRecordList(MidPatrolFormDTO formDTO) { |
|
|
|
return userService.getPatrolRecordList(formDTO); |
|
|
|