Commit faa33835 authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents 8ee3021d 6374ec29
package com.mortals.xhx.module.attendance.service;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.attendance.dao.AttendanceRecordErrorDao;
import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorQuery;
import com.mortals.xhx.module.attendance.model.vo.ErrorSummaryVo;
import com.mortals.xhx.module.perform.dao.PerformErrorMessageDao;
import java.util.Date;
import java.util.List;
/**
* AttendanceRecordErrorService
*
* 考勤打卡记录异常信息 service接口
*
* @author zxfei
* @date 2023-04-08
*/
public interface AttendanceRecordErrorService extends ICRUDService<AttendanceRecordErrorEntity,Long>{
* AttendanceRecordErrorService
* <p>
* 考勤打卡记录异常信息 service接口
*
* @author zxfei
* @date 2023-04-08
*/
public interface AttendanceRecordErrorService extends ICRUDService<AttendanceRecordErrorEntity, Long> {
AttendanceRecordErrorDao getDao();
/***
* 考勤异常确认前检测,如果当天有请假记录则返回false
......@@ -27,18 +33,21 @@ public interface AttendanceRecordErrorService extends ICRUDService<AttendanceRec
/**
* 自动处理异常考勤记录
*
* @param date
*/
void doAutoProcess(Date date);
/**
* 按时间从新生成已处理的考勤绩效核查数据
*
* @param query
*/
void doReprocess(AttendanceRecordErrorQuery query, Context context);
/**
* 统计每月异常次数top10
*
* @param query
* @return
*/
......
......@@ -244,6 +244,13 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
AttendanceRecordErrorQuery errorQuery = new AttendanceRecordErrorQuery();
errorQuery.setIdList(Arrays.asList(ids));
List<AttendanceRecordErrorEntity> delErrorList = this.find(errorQuery, context);
/* //改造循环查询
List<Long> staffIdList = delErrorList.stream().map(i -> i.getStaffId()).distinct().collect(Collectors.toList());
PerformAttendRecordQuery query = new PerformAttendRecordQuery();
query.setStaffIdList(staffIdList);
query.setRuleIdNotList(Arrays.asList(9L));*/
for (AttendanceRecordErrorEntity attendanceRecordErrorEntity : delErrorList) {
PerformAttendRecordQuery query = new PerformAttendRecordQuery();
query.setStaffId(attendanceRecordErrorEntity.getStaffId());
......
......@@ -111,6 +111,12 @@ 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()));
//获取当日未处理异常记录
AttendanceRecordErrorQuery attendanceRecordErrorQuery = new AttendanceRecordErrorQuery();
attendanceRecordErrorQuery.setErrorDateTimeStart(attendanceRecordHikQuery.getAttendanceDateStart());
attendanceRecordErrorQuery.setErrorDateTimeEnd(attendanceRecordErrorQuery.getActualAttendanceDateTimeEnd());
Map<Long, List<AttendanceRecordErrorEntity>> errorGroupStaffMap = errorService.find(attendanceRecordErrorQuery).parallelStream().collect(Collectors.groupingBy(x -> x.getStaffId()));
String attendanceDateStart = attendanceRecordHikQuery.getAttendanceDateStart();
String attendanceDateEnd = attendanceRecordHikQuery.getAttendanceDateEnd();
......@@ -122,6 +128,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
List<AttendanceRecordEntity> saveList = new ArrayList<>();
List<AttendanceRecordEntity> updateList = new ArrayList<>();
listMap.entrySet().stream().forEach(itemEntry -> {
//listMap.entrySet().parallelStream().forEach(itemEntry -> {
//按人员 todo 改为多线程并行计算
Long staffId = itemEntry.getKey();
List<AttendanceRecordHikEntity> recordHikEntityList = itemEntry.getValue();
......@@ -179,6 +186,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
commonData.setRecordHikEntities(recordHikEntities);
commonData.setFixedSpecialGroupMap(fixedSpecialGroupMap);
commonData.setClassDetailEntityMap(classDetailEntityMap);
commonData.setErrorGroupStaffMap(errorGroupStaffMap);
workAbstract.doHandleWork(commonData);
}
//如果考勤人员信息list长度大于1 则该考勤人员有多个考勤组.
......@@ -204,6 +212,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
commonData.setRecordHikEntities(recordHikEntities);
commonData.setFixedSpecialGroupMap(fixedSpecialGroupMap);
commonData.setClassDetailEntityMap(classDetailEntityMap);
commonData.setErrorGroupStaffMap(errorGroupStaffMap);
workAbstract.doHandleWork(commonData);
}
}
......
......@@ -41,6 +41,8 @@ public class CommonData {
private Map<Long, List<AttendanceGroupFixedworkSpecialEntity>> fixedSpecialGroupMap;
private Map<Long, List<AttendanceRecordErrorEntity>> errorGroupStaffMap;
// private Map<Long, List<AttendanceLeaveRecordEntity>> leaveRecordGroupMap;
......
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