Commit 2d879f6c authored by 赵啸非's avatar 赵啸非

优化考勤计算

parent ae73ba81
......@@ -75,13 +75,13 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
@Override
public void addAttendanceRecord(AttendanceRecordHikEntity hikEntity, Context context) throws Exception {
List<AttendanceRecordHikEntity> hikEntityList = new ArrayList<>();
addAttendanceOtherRecordList(hikEntityList, context);
addAttendanceOtherRecordList(hikEntityList, hikEntity, context);
}
@Override
public void addAttendanceRecordByQuery(AttendanceRecordHikEntity attendanceRecordHikQuery, Context context) throws Exception {
List<AttendanceRecordHikEntity> hikEntityList = attendanceRecordHikService.find(attendanceRecordHikQuery);
addAttendanceOtherRecordList(hikEntityList, context);
addAttendanceOtherRecordList(hikEntityList, attendanceRecordHikQuery, context);
}
@Override
......@@ -99,7 +99,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
return item;
}).filter(f -> f != null).collect(Collectors.toList());
addAttendanceOtherRecordList(hikEntityList, context);
addAttendanceOtherRecordList(hikEntityList, attendanceRecordHikQuery, context);
}
private Boolean checkWorkByHoliday(String dateStr) {
......@@ -135,7 +135,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
public void addAttendanceOtherRecordList(List<AttendanceRecordHikEntity> hikEntityList, Context context) throws Exception {
public void addAttendanceOtherRecordList(List<AttendanceRecordHikEntity> hikEntityList, AttendanceRecordHikEntity attendanceRecordHikQuery, Context context) throws Exception {
List<AttendanceRecordHikEntity> collect = hikEntityList.stream().sorted(Comparator.comparing(AttendanceRecordHikEntity::getAttendanceDate)).collect(Collectors.toList());
Map<Long, List<AttendanceRecordHikEntity>> listMap = collect.stream().collect(Collectors.groupingBy(AttendanceRecordHikEntity::getStaffId));
......@@ -146,10 +146,19 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
Map<Long, AttendanceClassDetailEntity> classDetailEntityMap = attendanceClassDetailService.find(new AttendanceClassDetailQuery()).parallelStream().collect(Collectors.toMap(x -> x.getId(), y -> y, (o, n) -> n));
Map<Long, List<AttendanceGroupFixedworkSpecialEntity>> fixedSpecialGroupMap = specialService.find(new AttendanceGroupFixedworkSpecialEntity()).parallelStream().collect(Collectors.groupingBy(x -> x.getFixedWorkId()));
String attendanceDateStart = attendanceRecordHikQuery.getAttendanceDateStart();
String attendanceDateEnd = attendanceRecordHikQuery.getAttendanceDateEnd();
AttendanceRecordQuery query = new AttendanceRecordQuery();
query.setAttendanceDateStart(attendanceDateStart);
query.setAttendanceDateEnd(attendanceDateEnd);
Map<Long, AttendanceRecordEntity> staffRecordMap = attendanceRecordService.find(query).parallelStream().collect(Collectors.toMap(x -> x.getStaffId(), y -> y, (o, n) -> n));
/* AttendanceLeaveRecordQuery leaveRecordQuery = new AttendanceLeaveRecordQuery();
leaveRecordQuery.setAuditResultList(Arrays.asList(1, 4));
Map<Long, List<AttendanceLeaveRecordEntity>> leaveRecordGroupMap = attendanceLeaveRecordService.find(leaveRecordQuery).parallelStream().collect(Collectors.groupingBy(x -> x.getLeavePersonId()));
*/
//获取日期
for (Map.Entry<Long, List<AttendanceRecordHikEntity>> itemEntry : listMap.entrySet()) {
//按人员 todo 改为多线程并行计算
......@@ -276,12 +285,13 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
attendanceRecordEntity.setAttendType("现场打卡");
//判断是否存在记录 如果存在 则更新 维度 staffId attendanceDate shiftsId attendanceGroupId
AttendanceRecordQuery query = new AttendanceRecordQuery();
/* AttendanceRecordQuery query = new AttendanceRecordQuery();
query.setStaffId(attendanceRecordEntity.getStaffId());
query.setAttendanceDateStart(dateStr);
query.setAttendanceDateEnd(dateStr);
AttendanceRecordEntity recordEntity = attendanceRecordService.selectOne(query);
AttendanceRecordEntity recordEntity = attendanceRecordService.selectOne(query);*/
AttendanceRecordEntity recordEntity = staffRecordMap.get(attendanceRecordEntity.getStaffId());
if (!ObjectUtils.isEmpty(recordEntity)) {
attendanceRecordEntity.setId(recordEntity.getId());
attendanceRecordEntity.setUpdateTime(new Date());
......@@ -293,6 +303,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
}
if (!ObjectUtils.isEmpty(saveList)) {
log.info("新增考勤记录数:" + saveList.size());
attendanceRecordService.save(saveList);
/* for (AttendanceRecordEntity attendanceRecordEntity : saveList) {
attendanceRecordService.save(attendanceRecordEntity, context);
......@@ -300,6 +311,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
if (!ObjectUtils.isEmpty(updateList)) {
log.info("更新考勤记录数:" + updateList.size());
attendanceRecordService.update(updateList);
/* for (AttendanceRecordEntity attendanceRecordEntity : updateList) {
attendanceRecordService.update(attendanceRecordEntity, context);
......@@ -308,7 +320,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment