|
|
@ -2,7 +2,8 @@ |
|
|
|
|
|
|
|
import com.epmet.commons.dynamic.datasource.annotation.DataSource; |
|
|
|
import com.epmet.commons.tools.constant.NumConstant; |
|
|
|
import com.epmet.commons.tools.enums.OrgLevelEnum; |
|
|
|
import com.epmet.commons.tools.constant.StrConstant; |
|
|
|
import com.epmet.commons.tools.enums.OrgLevelEnum; |
|
|
|
import com.epmet.commons.tools.utils.DateUtils; |
|
|
|
import com.epmet.dataaggre.constant.DataSourceConstant; |
|
|
|
import com.epmet.dataaggre.constant.OrgConstant; |
|
|
@ -1485,6 +1486,7 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
formDTO.setDateId(format.format(yesterday)); |
|
|
|
} |
|
|
|
String startDate = null; |
|
|
|
String actulStartDate = null; |
|
|
|
String endDate = null; |
|
|
|
Date dateIdDate = DateUtils.parse(formDTO.getDateId(), DateUtils.DATE_PATTERN_YYYYMMDD); |
|
|
|
boolean isYesterday = DateUtils.getBeforeNDay(1,DateUtils.DATE_PATTERN_YYYYMMDD).equals(formDTO.getDateId()); |
|
|
@ -1492,18 +1494,19 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
case "yesterday": |
|
|
|
startDate = DateUtils.getBeforeNDay(formDTO.getDateId(),1); |
|
|
|
endDate = formDTO.getDateId(); |
|
|
|
actulStartDate = formDTO.getDateId(); |
|
|
|
break; |
|
|
|
case "thisWeek": |
|
|
|
startDate = DateUtils.getWeekStart(formDTO.getDateId()); |
|
|
|
startDate = DateUtils.getBeforeNDay(startDate,1); |
|
|
|
actulStartDate = DateUtils.getWeekStart(formDTO.getDateId()); |
|
|
|
startDate = DateUtils.getBeforeNDay(actulStartDate,1); |
|
|
|
DateUtils.format(DateUtils.addDateDays(yesterday, -1),DateUtils.DATE_PATTERN_YYYYMMDD); |
|
|
|
if (!isYesterday){ |
|
|
|
endDate = DateUtils.getWeekEnd(formDTO.getDateId()); |
|
|
|
} |
|
|
|
break; |
|
|
|
case "thisMonth": |
|
|
|
startDate = DateUtils.format(DateUtils.getMonthStart(dateIdDate),DateUtils.DATE_PATTERN_YYYYMMDD); |
|
|
|
startDate = DateUtils.getBeforeNDay(startDate,1); |
|
|
|
actulStartDate = DateUtils.format(DateUtils.getMonthStart(dateIdDate),DateUtils.DATE_PATTERN_YYYYMMDD); |
|
|
|
startDate = DateUtils.getBeforeNDay(actulStartDate,1); |
|
|
|
if (!isYesterday) { |
|
|
|
endDate = DateUtils.format(DateUtils.getMonthEnd(dateIdDate), DateUtils.DATE_PATTERN_YYYYMMDD); |
|
|
|
} |
|
|
@ -1538,7 +1541,7 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
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<PatrolDailySumResult> patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(gridIdList,formDTO.getStartDateId(),formDTO.getEndDateId()); |
|
|
|
List<PatrolDailySumResult> patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(gridIdList,actulStartDate,formDTO.getEndDateId()); |
|
|
|
Map<String, PatrolDailySumResult> patrolListMap = patrolList.stream().collect(Collectors.toMap(PatrolDailySumResult::getFullAgencyId, o -> o, (o1, o2) -> o1)); |
|
|
|
|
|
|
|
subAgencyList.forEach(agency->{ |
|
|
@ -1551,13 +1554,7 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
resultDTO.setClosedProjectTotal(getTotal(closeProjectStartMap,closeProjectEndMap,gridId)); |
|
|
|
|
|
|
|
PatrolDailySumResult patrolRecordDTO = patrolListMap.get(agency.getAllParentIds()); |
|
|
|
if (patrolRecordDTO != null){ |
|
|
|
resultDTO.setPatrolTotal(patrolRecordDTO.getPatrolTotal()); |
|
|
|
Integer totalTime = patrolRecordDTO.getTotalTime(); |
|
|
|
int minutes = totalTime / 60; |
|
|
|
String totalTimeDesc = minutes / 60 + "小时"+ minutes % 60 + "分"; |
|
|
|
resultDTO.setPatrolTotalTime(totalTimeDesc); |
|
|
|
} |
|
|
|
setPatrolAttr(resultDTO, patrolRecordDTO); |
|
|
|
result.add(resultDTO); |
|
|
|
}); |
|
|
|
}else { |
|
|
@ -1584,8 +1581,8 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
Map<String, Integer> closeProjectStartMap = closeProjectStart.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); |
|
|
|
Map<String, Integer> closeProjectEndMap = closeProjectEnd.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, SubAgencyProjectResultDTO::getClosedProjectTotal, (o1, o2) -> o1)); |
|
|
|
//巡查次数和时间
|
|
|
|
List<String> agencyFullIds = subAgencyList.stream().map(o -> o.getPids().concat(o.getAgencyId())).collect(Collectors.toList()); |
|
|
|
List<PatrolDailySumResult> patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(agencyFullIds,formDTO.getStartDateId(),formDTO.getEndDateId()); |
|
|
|
List<String> agencyFullIds = subAgencyList.stream().map(o -> o.getPids().concat(StrConstant.COLON).concat(o.getAgencyId())).collect(Collectors.toList()); |
|
|
|
List<PatrolDailySumResult> patrolList = statsStaffPatrolRecordDailyService.getPatrolSumList(agencyFullIds,actulStartDate,formDTO.getEndDateId()); |
|
|
|
Map<String, PatrolDailySumResult> patrolListMap = patrolList.stream().collect(Collectors.toMap(PatrolDailySumResult::getFullAgencyId, o -> o, (o1, o2) -> o1)); |
|
|
|
|
|
|
|
subAgencyList.forEach(agency->{ |
|
|
@ -1596,15 +1593,9 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
resultDTO.setTopicToIssueTotal(getTotal(toIssueStartMap,toIssueEndMap,agencyId)); |
|
|
|
resultDTO.setIssueToProjectTotal(getTotal(toProjectStartMap,toProjectEndMap,agencyId)); |
|
|
|
resultDTO.setClosedProjectTotal(getTotal(closeProjectStartMap,closeProjectEndMap,agencyId)); |
|
|
|
String fullAgencyId = agency.getPids().concat(agencyId); |
|
|
|
String fullAgencyId = agency.getPids().concat(StrConstant.COLON).concat(agencyId); |
|
|
|
PatrolDailySumResult patrolRecordDTO = patrolListMap.get(fullAgencyId); |
|
|
|
if (patrolRecordDTO != null){ |
|
|
|
resultDTO.setPatrolTotal(patrolRecordDTO.getPatrolTotal()); |
|
|
|
Integer totalTime = patrolRecordDTO.getTotalTime(); |
|
|
|
int minutes = totalTime / 60; |
|
|
|
String totalTimeDesc = minutes / 60 + "小时"+ minutes % 60 + "分"; |
|
|
|
resultDTO.setPatrolTotalTime(totalTimeDesc); |
|
|
|
} |
|
|
|
setPatrolAttr(resultDTO,patrolRecordDTO); |
|
|
|
result.add(resultDTO); |
|
|
|
}); |
|
|
|
} |
|
|
@ -1612,12 +1603,24 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
List<WorkFactResultDTO> newResult = result.stream().sorted(Comparator.comparing(o -> o.getTopicToIssueTotal() + o.getIssueToProjectTotal() + o.getClosedProjectTotal() + o.getPatrolTotal())).collect(Collectors.toList()); |
|
|
|
return newResult; |
|
|
|
} |
|
|
|
|
|
|
|
private void setPatrolAttr(WorkFactResultDTO resultDTO, PatrolDailySumResult patrolRecordDTO) { |
|
|
|
if (patrolRecordDTO != null){ |
|
|
|
resultDTO.setPatrolTotal(patrolRecordDTO.getPatrolTotal()); |
|
|
|
Integer totalTime = patrolRecordDTO.getTotalTime(); |
|
|
|
if (totalTime != null || totalTime > 0){ |
|
|
|
int minutes = totalTime / 60; |
|
|
|
if (minutes >0){ |
|
|
|
String totalTimeDesc = minutes / 60 + "小时"+ minutes % 60 + "分"; |
|
|
|
resultDTO.setPatrolTotalTime(totalTimeDesc); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private Integer getTotal(Map<String,Integer> startMap, Map<String,Integer> endMap,String agencyId){ |
|
|
|
Integer total1 = startMap.getOrDefault(agencyId,NumConstant.ZERO); |
|
|
|
Integer total2 = endMap.getOrDefault(agencyId,NumConstant.ZERO); |
|
|
|
if (total1.equals(total2)){ |
|
|
|
log.warn("===========相等,total:{}",total1); |
|
|
|
} |
|
|
|
return Math.max(total2-total1,0); |
|
|
|
} |
|
|
|
|
|
|
@ -1699,14 +1702,12 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
} |
|
|
|
|
|
|
|
//4.按用户数降序排序并返回
|
|
|
|
Collections.sort(resultList, new Comparator<SubUserTotalResultDTO>() { |
|
|
|
@Override |
|
|
|
public int compare(SubUserTotalResultDTO o1, SubUserTotalResultDTO o2) { |
|
|
|
//降序
|
|
|
|
return o2.getUserTotal().compareTo(o1.getUserTotal()); |
|
|
|
} |
|
|
|
Collections.sort(resultList, (o1, o2) -> { |
|
|
|
//降序
|
|
|
|
return o2.getUserTotal().compareTo(o1.getUserTotal()); |
|
|
|
}); |
|
|
|
|
|
|
|
AtomicInteger i = new AtomicInteger(1); |
|
|
|
resultList.forEach(e->e.setSort(i.getAndIncrement())); |
|
|
|
return resultList; |
|
|
|
} |
|
|
|
|
|
|
@ -1789,14 +1790,12 @@ public class DataStatsServiceImpl implements DataStatsService { |
|
|
|
} |
|
|
|
|
|
|
|
//4.按用户数降序排序并返回
|
|
|
|
Collections.sort(resultList, new Comparator<SubTopicAndGroupResultDTO>() { |
|
|
|
@Override |
|
|
|
public int compare(SubTopicAndGroupResultDTO o1, SubTopicAndGroupResultDTO o2) { |
|
|
|
//降序
|
|
|
|
return o2.getTopicTotal().compareTo(o1.getTopicTotal()); |
|
|
|
} |
|
|
|
Collections.sort(resultList, (o1, o2) -> { |
|
|
|
//降序
|
|
|
|
return o2.getTopicTotal().compareTo(o1.getTopicTotal()); |
|
|
|
}); |
|
|
|
|
|
|
|
AtomicInteger i = new AtomicInteger(1); |
|
|
|
resultList.forEach(e->e.setSort(i.getAndIncrement())); |
|
|
|
return resultList; |
|
|
|
} |
|
|
|
|
|
|
|