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

Merge remote-tracking branch 'origin/master'

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