|
|
@ -696,46 +696,5 @@ public class EpmetUserServiceImpl implements EpmetUserService { |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Param formDTO |
|
|
|
* @Description 对外接口--网格员排名-巡查记录 |
|
|
|
* @author sun |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<GridMemberPatrolListResultDTO> gridMemberPatrolList(GridMemberPatrolListFormDTO formDTO) { |
|
|
|
//1.查询当前组织及下级所有网格员维度对应最大dated数据【例查询2021年8月数据,则是查询8月对应的最大daeId那天的网格员数据】
|
|
|
|
List<GridMemberPatrolListResultDTO> resultList = dataStatsService.getGirdMemberPatrol(formDTO); |
|
|
|
if (CollectionUtils.isEmpty(resultList)) { |
|
|
|
return new ArrayList<>(); |
|
|
|
} |
|
|
|
|
|
|
|
//2.按维度汇总当前组织及下级网格员巡查数据
|
|
|
|
//【如果查询当前月或本年度数据,则需要排除最大dateId的数据,因为上边查的统计数据只有t-1的,巡查数据是t的,避免多计算了当天的巡查项目数和时长数】
|
|
|
|
formDTO.setDateId(resultList.get(0).getDateId()); |
|
|
|
List<StaffListResultDTO> patrolList = staffPatrolRecordDao.gridMemberPatrol(formDTO); |
|
|
|
|
|
|
|
//3.以统计数据为准封装结果数据
|
|
|
|
resultList.forEach(re -> patrolList.stream().filter(l -> re.getStaffId().equals(l.getStaffId())).forEach(s -> { |
|
|
|
re.setReportProjectCount(s.getReportProjectCount()); |
|
|
|
re.setPatrolTotalTime((s.getTimeNum() > NumConstant.ZERO ? s.getTimeNum() / 60 : 0)); |
|
|
|
})); |
|
|
|
|
|
|
|
//4.按排序字段排序并返回
|
|
|
|
Collections.sort(resultList, new Comparator<GridMemberPatrolListResultDTO>() { |
|
|
|
@Override |
|
|
|
public int compare(GridMemberPatrolListResultDTO o1, GridMemberPatrolListResultDTO o2) { |
|
|
|
if ("patrolTime".equals(formDTO.getSort())) { |
|
|
|
return o2.getPatrolTotalTime().compareTo(o1.getPatrolTotalTime()); |
|
|
|
} else if ("dealEvent".equals(formDTO.getSort())) { |
|
|
|
return o2.getEventCount().compareTo(o1.getEventCount()); |
|
|
|
} else { |
|
|
|
return o2.getReportProjectCount().compareTo(o1.getReportProjectCount()); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
return resultList; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|