|
|
@ -1516,7 +1516,49 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
List<WorkFactResultDTO> result = new ArrayList<>(); |
|
|
|
//如果是社区 则下级是网格 查询网格的数据
|
|
|
|
if (OrgLevelEnum.COMMUNITY.getCode().equals(formDTO.getAgencyLevel())){ |
|
|
|
//0.根据组织Id查询是否存在子客户,存在的按areaCode查询当前客户之外的客户组织列表
|
|
|
|
List<ScreenCustomerGridDTO> subAgencyList = indexService.getSubGridList(formDTO.getAgencyId()); |
|
|
|
if (subAgencyList.size() < NumConstant.ONE) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
List<String> gridIdList = subAgencyList.stream().map(ScreenCustomerGridDTO::getGridId).collect(Collectors.toList()); |
|
|
|
//查询组织的话题转议题数据
|
|
|
|
List<SubGridFormDTO.Topic> toIssueStart = dataStatsDao.getSubGridTopicShiftIssue(gridIdList, formDTO.getStartDateId()); |
|
|
|
List<SubGridFormDTO.Topic> toIssueEnd = dataStatsDao.getSubGridTopicShiftIssue(gridIdList, formDTO.getEndDateId()); |
|
|
|
Map<String, Integer> toIssueStartMap = toIssueStart.stream().collect(Collectors.toMap(SubGridFormDTO.Topic::getGridId, SubGridFormDTO.Topic::getShiftedIssueTotal, (o1, o2) -> o1)); |
|
|
|
Map<String, Integer> toIssueEndMap = toIssueEnd.stream().collect(Collectors.toMap(SubGridFormDTO.Topic::getGridId, SubGridFormDTO.Topic::getShiftedIssueTotal, (o1, o2) -> o1)); |
|
|
|
//查询组织的议题转项目数据
|
|
|
|
List<SubGridIssueResultDTO> toProjectStart = dataStatsDao.getSubGridIssue(gridIdList, formDTO.getStartDateId()); |
|
|
|
List<SubGridIssueResultDTO> toProjectEnd = dataStatsDao.getSubGridIssue(gridIdList, formDTO.getEndDateId()); |
|
|
|
Map<String, Integer> toProjectStartMap = toProjectStart.stream().collect(Collectors.toMap(SubGridIssueResultDTO::getGridId, SubGridIssueResultDTO::getShiftProjectTotal, (o1, o2) -> o1)); |
|
|
|
Map<String, Integer> toProjectEndMap = toProjectEnd.stream().collect(Collectors.toMap(SubGridIssueResultDTO::getGridId, SubGridIssueResultDTO::getShiftProjectTotal, (o1, o2) -> o1)); |
|
|
|
//查询组织已关闭的项目数据
|
|
|
|
List<SubGridProjectResultDTO> closeProjectStart = dataStatsDao.getSubGridProject(gridIdList, formDTO.getStartDateId()); |
|
|
|
List<SubGridProjectResultDTO> closeProjectEnd = dataStatsDao.getSubGridProject(gridIdList, formDTO.getEndDateId()); |
|
|
|
Map<String, Integer> closeProjectStartMap = closeProjectStart.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); |
|
|
|
Map<String, Integer> closeProjectEndMap = closeProjectEnd.stream().collect(Collectors.toMap(SubGridProjectResultDTO::getGridId, SubGridProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); |
|
|
|
//巡查次数和时间
|
|
|
|
List<StatsStaffPatrolRecordDailyEntity> patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(gridIdList,formDTO.getStartDateId(),formDTO.getEndDateId()); |
|
|
|
Map<String, StatsStaffPatrolRecordDailyEntity> patrolListMap = patrolList.stream().collect(Collectors.toMap(StatsStaffPatrolRecordDailyEntity::getAgencyId, o -> o, (o1, o2) -> o1)); |
|
|
|
|
|
|
|
subAgencyList.forEach(agency->{ |
|
|
|
String gridId = agency.getGridId(); |
|
|
|
WorkFactResultDTO resultDTO = new WorkFactResultDTO(); |
|
|
|
resultDTO.setOrgId(gridId); |
|
|
|
resultDTO.setOrgName(agency.getGridName()); |
|
|
|
resultDTO.setTopicToIssueTotal(getTotal(toIssueStartMap,toIssueEndMap,gridId)); |
|
|
|
resultDTO.setIssueToProjectTotal(getTotal(toProjectStartMap,toProjectEndMap,gridId)); |
|
|
|
resultDTO.setClosedProjectTotal(getTotal(closeProjectStartMap,closeProjectEndMap,gridId)); |
|
|
|
StatsStaffPatrolRecordDailyEntity patrolRecordDTO = patrolListMap.get(gridId); |
|
|
|
if (patrolRecordDTO != null){ |
|
|
|
resultDTO.setPatrolTotal(patrolRecordDTO.getPatrolTotal()); |
|
|
|
Integer totalTime = patrolRecordDTO.getTotalTime(); |
|
|
|
int minutes = totalTime / 60; |
|
|
|
String totalTimeDesc = minutes / 60 + "小时"+ minutes % 60 + "分"; |
|
|
|
resultDTO.setPatrolTotalTime(totalTimeDesc); |
|
|
|
} |
|
|
|
result.add(resultDTO); |
|
|
|
}); |
|
|
|
}else { |
|
|
|
//0.根据组织Id查询是否存在子客户,存在的按areaCode查询当前客户之外的客户组织列表
|
|
|
|
List<ScreenCustomerAgencyDTO> subAgencyList = indexService.getSubAgencyListByAgency(formDTO.getAgencyId()); |
|
|
@ -1556,14 +1598,16 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
if (patrolRecordDTO != null){ |
|
|
|
resultDTO.setPatrolTotal(patrolRecordDTO.getPatrolTotal()); |
|
|
|
Integer totalTime = patrolRecordDTO.getTotalTime(); |
|
|
|
resultDTO.setPatrolTotalTime(totalTime.toString()); |
|
|
|
int minutes = totalTime / 60; |
|
|
|
String totalTimeDesc = minutes / 60 + "小时"+ minutes % 60 + "分"; |
|
|
|
resultDTO.setPatrolTotalTime(totalTimeDesc); |
|
|
|
} |
|
|
|
result.add(resultDTO); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
List<WorkFactResultDTO> newResult = result.stream().sorted(Comparator.comparing(o -> o.getTopicToIssueTotal() + o.getIssueToProjectTotal() + o.getClosedProjectTotal() + o.getPatrolTotal())).collect(Collectors.toList()); |
|
|
|
return newResult; |
|
|
|
} |
|
|
|
private Integer getTotal(Map<String,Integer> startMap, Map<String,Integer> endMap,String agencyId){ |
|
|
|
Integer total1 = startMap.getOrDefault(agencyId,NumConstant.ZERO); |
|
|
|