Commit 8a4d177c authored by 赵啸非's avatar 赵啸非

修正异常记录有重复的记录

parent b88d4cd6
......@@ -64,6 +64,8 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
private HolidayService holidayService;
@Autowired
private IHikDoorService hikDoorService;
@Autowired
private AttendanceClassService attendanceClassService;
@Override
......@@ -135,6 +137,10 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
List<AttendanceRecordEntity> saveList = new ArrayList<>();
List<AttendanceRecordEntity> updateList = new ArrayList<>();
Map<Long, List<AttendanceGroupStaffEntity>> groupStaffMap = attendanceGroupStaffService.find(new AttendanceGroupStaffQuery()).parallelStream().collect(Collectors.groupingBy(x -> x.getStaffId()));
Map<Long, AttendanceGroupEntity> groupMap = attendanceGroupService.find(new AttendanceGroupQuery()).parallelStream().collect(Collectors.toMap(x -> x.getId(), y -> y, (o, n) -> n));
Map<Long, AttendanceClassEntity> classEntityMap = attendanceClassService.find(new AttendanceClassQuery()).parallelStream().collect(Collectors.toMap(x -> x.getId(), y -> y, (o, n) -> n));
for (Map.Entry<Long, List<AttendanceRecordHikEntity>> itemEntry : listMap.entrySet()) {
//按人员
Long staffId = itemEntry.getKey();
......@@ -171,15 +177,16 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
attendanceRecordEntity.setSalaName(staffEntity.getSalaName());
//通过员工id查询考勤组人员信息
List<AttendanceGroupStaffEntity> attendanceGroupStaffEntities = attendanceGroupStaffService.find(new AttendanceGroupStaffQuery().staffId(staffId));
// List<AttendanceGroupStaffEntity> attendanceGroupStaffEntities = attendanceGroupStaffService.find(new AttendanceGroupStaffQuery().staffId(staffId));
List<AttendanceGroupStaffEntity> attendanceGroupStaffEntities = groupStaffMap.getOrDefault(staffId, new ArrayList<>(0));
//过滤重复考勤组与人员
attendanceGroupStaffEntities = attendanceGroupStaffEntities.stream().collect(Collectors.toMap(x -> x.getGroupId() + "#" + x.getStaffId(), y -> y, (o, n) -> n)).values().stream().collect(Collectors.toList());
List<AttendanceRecordDetailEntity> detailEntityList = new ArrayList<>();
if (!ObjectUtils.isEmpty(attendanceGroupStaffEntities) && attendanceGroupStaffEntities.size() == 1) {
//checkAttendGroupByOne(attendanceRecordEntity, detailEntityList, attendanceDate, attendanceGroupStaffEntities.get(0), context);
//查询考勤组
AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(attendanceGroupStaffEntities.get(0).getGroupId(), context);
//AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(attendanceGroupStaffEntities.get(0).getGroupId(), context);
AttendanceGroupEntity attendanceGroupEntity = groupMap.get(attendanceGroupStaffEntities.get(0).getGroupId());
attendanceRecordEntity.setAttendanceGroupId(attendanceGroupEntity == null ? 0L : attendanceGroupEntity.getId());
attendanceRecordEntity.setAttendanceGroupName(attendanceGroupEntity == null ? "" : attendanceGroupEntity.getGroupName());
//查询考勤组详细信息获取班次 todo 默认固定班次 还有自由 与排班制
......@@ -192,6 +199,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
commonData.setDetailEntityList(detailEntityList);
commonData.setStaffId(attendanceRecordEntity.getStaffId());
commonData.setDateStr(dateStr);
commonData.setClassEntityMap(classEntityMap);
workAbstract.doHandleWork(commonData);
}
......@@ -202,7 +210,9 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
//多考勤组 todo 暂时和单一覆盖
//checkAttendGroupByOne(attendanceRecordEntity, detailEntityList, attendanceDate, groupStaffEntity, context);
//查询考勤组
AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(groupStaffEntity.getGroupId(), context);
// AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(groupStaffEntity.getGroupId(), context);
AttendanceGroupEntity attendanceGroupEntity = groupMap.get(groupStaffEntity.getGroupId());
attendanceRecordEntity.setAttendanceGroupId(attendanceGroupEntity == null ? 0L : attendanceGroupEntity.getId());
attendanceRecordEntity.setAttendanceGroupName(attendanceGroupEntity == null ? "" : attendanceGroupEntity.getGroupName());
//查询考勤组详细信息获取班次 todo 默认固定班次 还有自由 与排班制
......@@ -215,6 +225,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
commonData.setAttendanceDate(attendanceRecordEntity.getAttendanceDate());
commonData.setStaffId(attendanceRecordEntity.getStaffId());
commonData.setDateStr(dateStr);
commonData.setClassEntityMap(classEntityMap);
workAbstract.doHandleWork(commonData);
}
}
......@@ -247,9 +258,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
//判断是否存在记录 如果存在 则更新 维度 staffId attendanceDate shiftsId attendanceGroupId
AttendanceRecordQuery query = new AttendanceRecordQuery();
query.setStaffId(attendanceRecordEntity.getStaffId());
// query.setClassId(attendanceRecordEntity.getClassId());
// query.setAttendanceGroupId(attendanceRecordEntity.getAttendanceGroupId());
//query.setAttendanceDate(attendanceRecordEntity.getAttendanceDate());
query.setAttendanceDateStart(dateStr);
query.setAttendanceDateEnd(dateStr);
......@@ -259,33 +267,23 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
attendanceRecordEntity.setUpdateTime(new Date());
attendanceRecordEntity.setUpdateUserId(this.getContextUserId(context));
updateList.add(attendanceRecordEntity);
// attendanceRecordService.update(attendanceRecordEntity, context);
} else {
saveList.add(attendanceRecordEntity);
// attendanceRecordService.save(attendanceRecordEntity, context);
}
}
}
}
if (!ObjectUtils.isEmpty(saveList)) {
for (AttendanceRecordEntity attendanceRecordEntity : saveList) {
attendanceRecordService.save(attendanceRecordEntity, context);
}
//attendanceRecordService.save(saveList, context);
}
if (!ObjectUtils.isEmpty(updateList)) {
for (AttendanceRecordEntity attendanceRecordEntity : updateList) {
attendanceRecordService.update(attendanceRecordEntity, context);
}
/* List<List<AttendanceRecordEntity>> partition = ListUtil.partition(updateList, 30);
for (List<AttendanceRecordEntity> attendanceRecordEntities : partition) {
attendanceRecordService.update(attendanceRecordEntities, context);
}*/
}
}
......
......@@ -2,6 +2,7 @@ package com.mortals.xhx.module.attendance.service.work;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.attendance.model.AttendanceClassEntity;
import com.mortals.xhx.module.attendance.model.AttendanceGroupEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordDetailEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordEntity;
......@@ -9,6 +10,7 @@ import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 通用参数
......@@ -33,5 +35,7 @@ public class CommonData {
private Context context;
private Map<Long, AttendanceClassEntity> classEntityMap;
}
......@@ -62,6 +62,7 @@ public class FixWorkAttendance extends AttendanceWorkAbstract {
public void doHandleWork(CommonData commonData) {
AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity = attendanceGroupFixedworkService.selectOne(new AttendanceGroupFixedworkQuery()
.groupId(commonData.getAttendanceGroupEntity().getId()));
Map<Long, AttendanceClassEntity> classEntityMap = commonData.getClassEntityMap();
//判断当前考勤日期为周几
String week = super.getWeek(commonData.getAttendanceDate());
//log.info("week:{}", week);
......@@ -117,7 +118,8 @@ public class FixWorkAttendance extends AttendanceWorkAbstract {
if (DateUtil.formatDate(commonData.getAttendanceDate()).equals(DateUtil.formatDate(specialTime))) {
//当前日期不需要考勤打卡
//获取班次信息
AttendanceClassEntity attendanceClassEntity = attendanceClassService.get(weekClassId);
// AttendanceClassEntity attendanceClassEntity = attendanceClassService.get(weekClassId);
AttendanceClassEntity attendanceClassEntity = classEntityMap.get(weekClassId);
if (ObjectUtils.isEmpty(attendanceClassEntity)) {
log.info("attendanceClassEntity is null ,weekClassId:{}", weekClassId);
return;
......@@ -147,7 +149,8 @@ public class FixWorkAttendance extends AttendanceWorkAbstract {
}
//获取班次信息
AttendanceClassEntity attendanceClassEntity = attendanceClassService.get(weekClassId);
// AttendanceClassEntity attendanceClassEntity = attendanceClassService.get(weekClassId);
AttendanceClassEntity attendanceClassEntity = classEntityMap.get(weekClassId);
if (ObjectUtils.isEmpty(attendanceClassEntity)) {
log.info("attendanceClassEntity is null ,weekClassId:{}", weekClassId);
return;
......
......@@ -84,13 +84,10 @@ public class CheckAttendRecordServiceImpl extends AbstractCRUDServiceImpl<CheckA
private DeptService deptService;
@Autowired
private PerformAttendRecordService attendRecordService;
@Autowired
private PerformRulesService rulesService;
@Autowired
private ParamService paramService;
@Autowired
private ICacheService cacheService;
@Autowired
......@@ -143,20 +140,6 @@ public class CheckAttendRecordServiceImpl extends AbstractCRUDServiceImpl<CheckA
}catch (Exception e) {
log.error("新增绩效异常信息核查状态出错", e);
}
// try {
// if(!entity.getErrorTime().after(new Date())) {
// StaffCheckSummaryQuery query = new StaffCheckSummaryQuery();
// query.setStaffId(entity.getStaffId());
// query.setCheckTimeStart(DateUtils.getStrDate(entity.getCheckTime()));
// query.setCheckTimeEnd(query.getCheckTimeStart());
// query.setCheckType(CheckTypeEnum.考勤绩效.getValue());
// cacheService.lpush(KEY_CHECK_SUMMARY_CACHE, query);
// }
// //summaryCheck(query);
// } catch (Exception e) {
// log.error("汇总已审核的核查记录出错", e);
// }
}
@Override
......@@ -287,7 +270,8 @@ public class CheckAttendRecordServiceImpl extends AbstractCRUDServiceImpl<CheckA
weightPdu = JSONObject.parseObject(value,WeightPdu.class);
}
for (StaffCheckSummaryVo vo : summaryVoList) {
StaffEntity staffEntity = staffService.get(vo.getStaffId());
StaffEntity staffEntity = staffService.getCache(vo.getStaffId().toString());
if (ObjectUtils.isEmpty(staffEntity)) continue;
if(staffEntity.getStatus() == StaffSatusEnum.离职.getValue()) {
if(staffEntity.getLeaveDate()!=null){
String leaveDateStr = DateUtils.getStrDate(staffEntity.getLeaveDate());
......
......@@ -133,17 +133,6 @@ public class CheckGoworkRecordServiceImpl extends AbstractCRUDServiceImpl<CheckG
}catch (Exception e) {
log.error("新增绩效异常信息核查状态出错", e);
}
// try{
// StaffCheckSummaryQuery query = new StaffCheckSummaryQuery();
// query.setStaffId(entity.getStaffId());
// query.setCheckTimeStart(DateUtils.getStrDate(entity.getCheckTime()));
// query.setCheckTimeEnd(query.getCheckTimeStart());
// query.setCheckType(CheckTypeEnum.办件绩效.getValue());
// cacheService.lpush(KEY_CHECK_SUMMARY_CACHE, query);
// //summaryCheck(query);
// }catch (Exception e){
// log.error("汇总已审核的核查记录出错",e);
// }
}
@Override
......
......@@ -134,17 +134,6 @@ public class CheckOtherRecordServiceImpl extends AbstractCRUDServiceImpl<CheckOt
}catch (Exception e) {
log.error("新增绩效异常信息核查状态出错", e);
}
// try {
// StaffCheckSummaryQuery query = new StaffCheckSummaryQuery();
// query.setStaffId(entity.getStaffId());
// query.setCheckTimeStart(DateUtils.getStrDate(entity.getCheckTime()));
// query.setCheckTimeEnd(query.getCheckTimeStart());
// query.setCheckType(CheckTypeEnum.其它绩效.getValue());
// cacheService.lpush(KEY_CHECK_SUMMARY_CACHE, query);
// //summaryCheck(query);
// } catch (Exception e) {
// log.error("汇总已审核的核查记录出错", e);
// }
}
@Override
......@@ -244,8 +233,6 @@ public class CheckOtherRecordServiceImpl extends AbstractCRUDServiceImpl<CheckOt
query.setCheckTimeEnd(query.getCheckTimeStart());
query.setCheckType(CheckTypeEnum.其它绩效.getValue());
cacheService.lpush(KEY_CHECK_SUMMARY_CACHE, query);
//summaryCheck(query);
} catch (Exception e) {
log.error("汇总已审核的核查记录出错", e);
}
......@@ -274,7 +261,8 @@ public class CheckOtherRecordServiceImpl extends AbstractCRUDServiceImpl<CheckOt
weightPdu = JSONObject.parseObject(value,WeightPdu.class);
}
for (StaffCheckSummaryVo vo : summaryVoList) {
StaffEntity staffEntity = staffService.get(vo.getStaffId());
StaffEntity staffEntity = staffService.getCache(vo.getStaffId().toString());
if(ObjectUtils.isEmpty(staffEntity)) continue;
if(staffEntity.getStatus() == StaffSatusEnum.离职.getValue()) {
if(staffEntity.getLeaveDate()!=null){
String leaveDateStr = DateUtils.getStrDate(staffEntity.getLeaveDate());
......
......@@ -136,17 +136,6 @@ public class CheckReviewRecordServiceImpl extends AbstractCRUDServiceImpl<CheckR
}catch (Exception e) {
log.error("新增绩效异常信息核查状态出错", e);
}
// try {
// StaffCheckSummaryQuery query = new StaffCheckSummaryQuery();
// query.setStaffId(entity.getStaffId());
// query.setCheckTimeStart(DateUtils.getStrDate(entity.getCheckTime()));
// query.setCheckTimeEnd(query.getCheckTimeStart());
// query.setCheckType(CheckTypeEnum.评价绩效.getValue());
// cacheService.lpush(KEY_CHECK_SUMMARY_CACHE, query);
// //summaryCheck(query);
// } catch (Exception e) {
// log.error("汇总已审核的核查记录出错", e);
// }
}
@Override
......@@ -273,7 +262,8 @@ public class CheckReviewRecordServiceImpl extends AbstractCRUDServiceImpl<CheckR
weightPdu = JSONObject.parseObject(value,WeightPdu.class);
}
for (StaffCheckSummaryVo vo : summaryVoList) {
StaffEntity staffEntity = staffService.get(vo.getStaffId());
StaffEntity staffEntity = staffService.getCache(vo.getStaffId().toString());
if(ObjectUtils.isEmpty(staffEntity))continue;
if(staffEntity.getStatus() == StaffSatusEnum.离职.getValue()) {
if(staffEntity.getLeaveDate()!=null){
String leaveDateStr = DateUtils.getStrDate(staffEntity.getLeaveDate());
......
......@@ -115,7 +115,8 @@ public class CheckWindowWorkmanPerformServiceImpl extends AbstractCRUDServiceImp
weightPdu = JSONObject.parseObject(value,WeightPdu.class);
}
for (StaffCheckSummaryVo vo : summaryVoList) {
StaffEntity staffEntity = staffService.get(vo.getStaffId());
StaffEntity staffEntity = staffService.getCache(vo.getStaffId().toString());
if(ObjectUtils.isEmpty(staffEntity))continue;
if(staffEntity.getStatus() == StaffSatusEnum.离职.getValue()) {
if(staffEntity.getLeaveDate()!=null){
String leaveDateStr = DateUtils.getStrDate(staffEntity.getLeaveDate());
......@@ -169,9 +170,6 @@ public class CheckWindowWorkmanPerformServiceImpl extends AbstractCRUDServiceImp
staffPerformSummaryEntity.setId(temp.getId());
staffPerformSummaryEntity.setUpdateTime(new Date());
staffPerformSummaryService.update(staffPerformSummaryEntity);
staffPerformSummaryEntity.setId(temp.getId());
staffPerformSummaryEntity.setUpdateTime(new Date());
staffPerformSummaryService.update(staffPerformSummaryEntity);
} else {
staffPerformSummaryEntity.setAttendScore(BigDecimal.ZERO);
staffPerformSummaryEntity.setReviewScore(BigDecimal.ZERO);
......
......@@ -34,9 +34,6 @@ import com.mortals.xhx.common.code.*;
@RequestMapping("check/window/perform")
public class CheckWindowPerformController extends BaseCRUDJsonBodyMappingController<CheckWindowPerformService,CheckWindowPerformEntity,Long> {
@Autowired
private ParamService paramService;
public CheckWindowPerformController(){
super.setModuleDesc( "窗口考核核查");
}
......
......@@ -35,9 +35,6 @@ import com.mortals.xhx.common.code.*;
@RequestMapping("check/window/workman/perform")
public class CheckWindowWorkmanPerformController extends BaseCRUDJsonBodyMappingController<CheckWindowWorkmanPerformService,CheckWindowWorkmanPerformEntity,Long> {
@Autowired
private ParamService paramService;
public CheckWindowWorkmanPerformController(){
super.setModuleDesc( "窗口人员考核汇总核查");
}
......
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