调整
This commit is contained in:
parent
92e1d7edea
commit
c6f82c55f8
@ -1090,6 +1090,47 @@ status 状态码 String 1表示成功;其余表示失败
|
||||
return rtList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NumberTimeTableVo> queryYearAttendanceTrend(Map<String, Object> map) {
|
||||
Date today = new Date();
|
||||
List<WorkerAttendance> attendanceList = workerAttendanceMapper.selectList(new LambdaQueryWrapper<WorkerAttendance>()
|
||||
.eq(WorkerAttendance::getProjectSn, MapUtils.getString(map, "projectSn"))
|
||||
.ge(WorkerAttendance::getCreateTime, cn.hutool.core.date.DateUtil.beginOfYear(today))
|
||||
.le(WorkerAttendance::getCreateTime, cn.hutool.core.date.DateUtil.endOfYear(today))
|
||||
);
|
||||
Map<String, List<WorkerAttendance>> timeDateListMap = attendanceList.stream().map(workerAttendance -> {
|
||||
workerAttendance.setCreateTimeHour(DateUtil.format(DateUtil.parse(workerAttendance.getCreateTime()), "yyyy-MM"));
|
||||
return workerAttendance;
|
||||
}).collect(Collectors.groupingBy(WorkerAttendance::getCreateTimeHour));
|
||||
ArrayList<NumberTimeTableVo> rtList = new ArrayList<>();
|
||||
int month = DateUtil.month(new Date());
|
||||
Set<String> inSet = new HashSet<>();
|
||||
for (int i = month - 1; i >= 0; i--) {
|
||||
String format = DateUtil.format(DateUtil.offsetMonth(new Date(), i), "yyyy-MM");
|
||||
List<WorkerAttendance> workerAttendances = timeDateListMap.get(format);
|
||||
NumberTimeTableVo vo = new NumberTimeTableVo();
|
||||
if (CollUtil.isNotEmpty(workerAttendances)) {
|
||||
workerAttendances.sort((o1, o2) -> {
|
||||
if (o1.getCreateTime() == null || o2.getCreateTime() == null) {
|
||||
return 0;
|
||||
}
|
||||
return o1.getCreateTime().compareTo(o2.getCreateTime());
|
||||
});
|
||||
for (WorkerAttendance workerAttendance : workerAttendances) {
|
||||
if (Objects.equals(workerAttendance.getPassType(), 1)) {
|
||||
inSet.add(workerAttendance.getPersonSn());
|
||||
} else if (Objects.equals(workerAttendance.getPassType(), 2)) {
|
||||
inSet.remove(workerAttendance.getPersonSn());
|
||||
}
|
||||
}
|
||||
}
|
||||
vo.setNum(Math.max(inSet.size(), 0));
|
||||
vo.setTime(format);
|
||||
rtList.add(vo);
|
||||
}
|
||||
return rtList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NumberTimeTableVo> queryAttendanceTrend(Map<String, Object> map) {
|
||||
if (StringUtils.isBlank(MapUtils.getString(map, QUERY_START_TIME)) || StringUtils.isBlank(MapUtils.getString(map, QUERY_END_TIME))) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user