Commit 057a07b7 authored by 赵啸非's avatar 赵啸非

修改考勤汇总

parent 6b9810b9
...@@ -86,7 +86,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -86,7 +86,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
//对相同工号的人员进行遍历判断考勤规则. //对相同工号的人员进行遍历判断考勤规则.
AttendanceRecordEntity attendanceRecordEntity = new AttendanceRecordEntity(); AttendanceRecordEntity attendanceRecordEntity = new AttendanceRecordEntity();
attendanceRecordEntity.initAttrValue(); attendanceRecordEntity.initAttrValue();
List<AttendanceRecordDetailEntity> detailEntity = new ArrayList<>(); List<AttendanceRecordDetailEntity> detailEntityList = new ArrayList<>();
for (AttendanceRecordHikEntity item : attendanceRecordHikEntities) { for (AttendanceRecordHikEntity item : attendanceRecordHikEntities) {
//对主表的对象进行赋值 //对主表的对象进行赋值
if (StringUtils.isNull(attendanceRecordEntity) || StringUtils.isEmpty(attendanceRecordEntity.getStaffName())) { if (StringUtils.isNull(attendanceRecordEntity) || StringUtils.isEmpty(attendanceRecordEntity.getStaffName())) {
...@@ -121,21 +121,26 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -121,21 +121,26 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.selectOne(attendanceGroupQuery.id(attendanceGroupStaffEntities.get(0).getGroupId())); AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.selectOne(attendanceGroupQuery.id(attendanceGroupStaffEntities.get(0).getGroupId()));
attendanceRecordEntity.setAttendanceGroupId(attendanceGroupEntity.getId()); attendanceRecordEntity.setAttendanceGroupId(attendanceGroupEntity.getId());
attendanceRecordEntity.setAttendanceGroupName(attendanceGroupEntity.getGroupName()); attendanceRecordEntity.setAttendanceGroupName(attendanceGroupEntity.getGroupName());
log.info("attendanceGroupEntity.getId()=={}",attendanceGroupEntity.getId());
//查询考勤组详细信息获取班次 //查询考勤组详细信息获取班次
AttendanceGroupFixedworkQuery attendanceGroupFixedworkQuery = new AttendanceGroupFixedworkQuery(); AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity = attendanceGroupFixedworkService.selectOne(new AttendanceGroupFixedworkQuery()
AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity = attendanceGroupFixedworkService.selectOne(attendanceGroupFixedworkQuery.groupId(attendanceGroupEntity.getId())); .groupId(attendanceGroupEntity.getId()));
//判断当前考勤日期为周几 //判断当前考勤日期为周几
Date attendanceDate1 = attendanceDate; Date attendanceDate1 = attendanceDate;
String week = this.getWeek(attendanceDate1); String week = this.getWeek(attendanceDate1);
log.info("week:{}",week);
//通过考勤日期的星期拿到班次id. //通过考勤日期的星期拿到班次id.
Long weekClassId = this.getWeekClassId(attendanceGroupFixedworkEntity, week); Long weekClassId = this.getWeekClassId(attendanceGroupFixedworkEntity, week);
log.info("weekClassId:{}",weekClassId);
//weekClassId为-1 则不在考勤 //weekClassId为-1 则不在考勤
if (weekClassId == -1L) { if (weekClassId == -1L) {
//跳过本次循环 //跳过本次循环
continue; continue;
} }
//获取班次信息 //获取班次信息
AttendanceClassEntity attendanceClassEntity = attendanceClassService.selectOne(new AttendanceClassQuery().id(weekClassId)); //AttendanceClassEntity attendanceClassEntity = attendanceClassService.selectOne(new AttendanceClassQuery().id(weekClassId));
AttendanceClassEntity attendanceClassEntity = attendanceClassService.get(weekClassId);
if(ObjectUtils.isEmpty(attendanceClassEntity)){ if(ObjectUtils.isEmpty(attendanceClassEntity)){
log.info("attendanceClassEntity is null ,weekClassId:{}",weekClassId); log.info("attendanceClassEntity is null ,weekClassId:{}",weekClassId);
continue; continue;
...@@ -145,7 +150,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -145,7 +150,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
AttendanceClassDetailQuery attendanceClassDetailQuery = new AttendanceClassDetailQuery(); AttendanceClassDetailQuery attendanceClassDetailQuery = new AttendanceClassDetailQuery();
List<AttendanceClassDetailEntity> attendanceClassDetailEntities = attendanceClassDetailService.find(attendanceClassDetailQuery.classId(attendanceClassEntity.getId())); List<AttendanceClassDetailEntity> attendanceClassDetailEntities = attendanceClassDetailService.find(attendanceClassDetailQuery.classId(attendanceClassEntity.getId()));
Integer orderNum = 0; Integer orderNum = 0;
if (detailEntity == null || detailEntity.size() == 0) { if (ObjectUtils.isEmpty(detailEntityList)) {
for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntities) { for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntities) {
orderNum++; orderNum++;
AttendanceRecordDetailEntity recordDetailEntity = new AttendanceRecordDetailEntity(); AttendanceRecordDetailEntity recordDetailEntity = new AttendanceRecordDetailEntity();
...@@ -154,7 +159,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -154,7 +159,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
recordDetailEntity.setGoWorkResult(GoWorkResultEnum.缺卡.getValue()); recordDetailEntity.setGoWorkResult(GoWorkResultEnum.缺卡.getValue());
recordDetailEntity.setOffWorkResult(GoWorkResultEnum.缺卡.getValue()); recordDetailEntity.setOffWorkResult(GoWorkResultEnum.缺卡.getValue());
recordDetailEntity.setOrderNum(orderNum); recordDetailEntity.setOrderNum(orderNum);
detailEntity.add(recordDetailEntity); detailEntityList.add(recordDetailEntity);
} }
} }
for (AttendanceClassDetailEntity classDetail : attendanceClassDetailEntities) { for (AttendanceClassDetailEntity classDetail : attendanceClassDetailEntities) {
...@@ -178,7 +183,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -178,7 +183,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
//如果是上班打卡,判断是否迟到 //如果是上班打卡,判断是否迟到
boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)), goWorkDateBefore, sdf.parse(sdf.format(classDetail.getGoWorkDate()))); boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)), goWorkDateBefore, sdf.parse(sdf.format(classDetail.getGoWorkDate())));
if (!inTime) { if (!inTime) {
for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntityList) {
if (attendanceRecordDetailEntity.getShiftsId().longValue() == classDetail.getId().longValue()) { if (attendanceRecordDetailEntity.getShiftsId().longValue() == classDetail.getId().longValue()) {
attendanceRecordDetailEntity.setGoWorkResult(GoWorkResultEnum.迟到.getValue()); attendanceRecordDetailEntity.setGoWorkResult(GoWorkResultEnum.迟到.getValue());
attendanceRecordDetailEntity.setGoWorkDate(attendanceDate); attendanceRecordDetailEntity.setGoWorkDate(attendanceDate);
...@@ -186,7 +191,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -186,7 +191,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
} }
} }
if (inTime) { if (inTime) {
for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntityList) {
if (attendanceRecordDetailEntity.getShiftsId().longValue() == classDetail.getId().longValue()) { if (attendanceRecordDetailEntity.getShiftsId().longValue() == classDetail.getId().longValue()) {
attendanceRecordDetailEntity.setGoWorkResult(GoWorkResultEnum.正常.getValue()); attendanceRecordDetailEntity.setGoWorkResult(GoWorkResultEnum.正常.getValue());
attendanceRecordDetailEntity.setGoWorkDate(attendanceDate); attendanceRecordDetailEntity.setGoWorkDate(attendanceDate);
...@@ -197,7 +202,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -197,7 +202,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
if (offInTime) { if (offInTime) {
boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)), sdf.parse(sdf.format(classDetail.getOffWorkDate())), offWorkDateAfter); boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)), sdf.parse(sdf.format(classDetail.getOffWorkDate())), offWorkDateAfter);
if (!inTime) { if (!inTime) {
for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntityList) {
if (attendanceRecordDetailEntity.getShiftsId().longValue() == classDetail.getId().longValue()) { if (attendanceRecordDetailEntity.getShiftsId().longValue() == classDetail.getId().longValue()) {
attendanceRecordDetailEntity.setOffWorkResult(GoWorkResultEnum.早退.getValue()); attendanceRecordDetailEntity.setOffWorkResult(GoWorkResultEnum.早退.getValue());
attendanceRecordDetailEntity.setOffWorkDate(attendanceDate); attendanceRecordDetailEntity.setOffWorkDate(attendanceDate);
...@@ -205,7 +210,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -205,7 +210,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
} }
} }
if (inTime) { if (inTime) {
for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntityList) {
if (attendanceRecordDetailEntity.getShiftsId().longValue() == classDetail.getId().longValue()) { if (attendanceRecordDetailEntity.getShiftsId().longValue() == classDetail.getId().longValue()) {
attendanceRecordDetailEntity.setOffWorkResult(GoWorkResultEnum.正常.getValue()); attendanceRecordDetailEntity.setOffWorkResult(GoWorkResultEnum.正常.getValue());
attendanceRecordDetailEntity.setOffWorkDate(attendanceDate); attendanceRecordDetailEntity.setOffWorkDate(attendanceDate);
...@@ -244,7 +249,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -244,7 +249,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
AttendanceClassDetailQuery attendanceClassDetailQuery = new AttendanceClassDetailQuery(); AttendanceClassDetailQuery attendanceClassDetailQuery = new AttendanceClassDetailQuery();
List<AttendanceClassDetailEntity> attendanceClassDetailEntities = attendanceClassDetailService.find(attendanceClassDetailQuery.classId(attendanceClassEntity.getId())); List<AttendanceClassDetailEntity> attendanceClassDetailEntities = attendanceClassDetailService.find(attendanceClassDetailQuery.classId(attendanceClassEntity.getId()));
Integer orderNum = 0; Integer orderNum = 0;
if (detailEntity != null || detailEntity.size() == 0) { if (detailEntityList != null || detailEntityList.size() == 0) {
for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntities) { for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntities) {
orderNum++; orderNum++;
AttendanceRecordDetailEntity recordDetailEntity = new AttendanceRecordDetailEntity(); AttendanceRecordDetailEntity recordDetailEntity = new AttendanceRecordDetailEntity();
...@@ -253,7 +258,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -253,7 +258,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
recordDetailEntity.setGoWorkResult(GoWorkResultEnum.缺卡.getValue()); recordDetailEntity.setGoWorkResult(GoWorkResultEnum.缺卡.getValue());
recordDetailEntity.setOffWorkResult(GoWorkResultEnum.缺卡.getValue()); recordDetailEntity.setOffWorkResult(GoWorkResultEnum.缺卡.getValue());
recordDetailEntity.setOrderNum(orderNum); recordDetailEntity.setOrderNum(orderNum);
detailEntity.add(recordDetailEntity); detailEntityList.add(recordDetailEntity);
} }
} }
for (AttendanceClassDetailEntity classDetail : attendanceClassDetailEntities) { for (AttendanceClassDetailEntity classDetail : attendanceClassDetailEntities) {
...@@ -277,7 +282,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -277,7 +282,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
//如果是上班打卡,判断是否迟到 //如果是上班打卡,判断是否迟到
boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)), goWorkDateBefore, sdf.parse(sdf.format(classDetail.getGoWorkDate()))); boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)), goWorkDateBefore, sdf.parse(sdf.format(classDetail.getGoWorkDate())));
if (!inTime) { if (!inTime) {
for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntityList) {
if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getId())) { if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getId())) {
attendanceRecordDetailEntity.setGoWorkResult(GoWorkResultEnum.迟到.getValue()); attendanceRecordDetailEntity.setGoWorkResult(GoWorkResultEnum.迟到.getValue());
attendanceRecordDetailEntity.setGoWorkDate(attendanceDate); attendanceRecordDetailEntity.setGoWorkDate(attendanceDate);
...@@ -285,7 +290,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -285,7 +290,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
} }
} }
if (inTime) { if (inTime) {
for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntityList) {
if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getId())) { if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getId())) {
attendanceRecordDetailEntity.setGoWorkResult(GoWorkResultEnum.正常.getValue()); attendanceRecordDetailEntity.setGoWorkResult(GoWorkResultEnum.正常.getValue());
attendanceRecordDetailEntity.setGoWorkDate(attendanceDate); attendanceRecordDetailEntity.setGoWorkDate(attendanceDate);
...@@ -296,7 +301,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -296,7 +301,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
if (offInTime) { if (offInTime) {
boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)), sdf.parse(sdf.format(classDetail.getOffWorkDate())), offWorkDateAfter); boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)), sdf.parse(sdf.format(classDetail.getOffWorkDate())), offWorkDateAfter);
if (!inTime) { if (!inTime) {
for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntityList) {
if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getId())) { if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getId())) {
attendanceRecordDetailEntity.setOffWorkResult(GoWorkResultEnum.早退.getValue()); attendanceRecordDetailEntity.setOffWorkResult(GoWorkResultEnum.早退.getValue());
attendanceRecordDetailEntity.setOffWorkDate(attendanceDate); attendanceRecordDetailEntity.setOffWorkDate(attendanceDate);
...@@ -304,7 +309,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -304,7 +309,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
} }
} }
if (inTime) { if (inTime) {
for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntityList) {
if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getId())) { if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getId())) {
attendanceRecordDetailEntity.setOffWorkResult(GoWorkResultEnum.正常.getValue()); attendanceRecordDetailEntity.setOffWorkResult(GoWorkResultEnum.正常.getValue());
attendanceRecordDetailEntity.setOffWorkDate(attendanceDate); attendanceRecordDetailEntity.setOffWorkDate(attendanceDate);
...@@ -318,7 +323,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -318,7 +323,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
} }
} }
List<AttendanceRecordErrorEntity> errorEntityList = new ArrayList<>(); List<AttendanceRecordErrorEntity> errorEntityList = new ArrayList<>();
for (AttendanceRecordDetailEntity recordDetailEntity : detailEntity) { for (AttendanceRecordDetailEntity recordDetailEntity : detailEntityList) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdft = new SimpleDateFormat("HH:mm:ss"); SimpleDateFormat sdft = new SimpleDateFormat("HH:mm:ss");
Integer goWorkResult = recordDetailEntity.getGoWorkResult(); Integer goWorkResult = recordDetailEntity.getGoWorkResult();
...@@ -350,7 +355,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -350,7 +355,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
errorEntity.setErrorStatus( ErrorStatusEnum.缺卡.getValue()); errorEntity.setErrorStatus( ErrorStatusEnum.缺卡.getValue());
} }
if (GoWorkResultEnum.迟到.getValue()==recordDetailEntity.getGoWorkResult() ) { if (GoWorkResultEnum.迟到.getValue()==recordDetailEntity.getGoWorkResult() ) {
errorEntity.setErrorStatus( ErrorStatusEnum.迟到.getValue()); errorEntity.setErrorStatus( ErrorStatusEnum.迟到.getValue());
} }
errorEntity.setProcessStatus(0); errorEntity.setProcessStatus(0);
...@@ -391,13 +395,13 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -391,13 +395,13 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
} }
} }
if (detailEntity != null && detailEntity.size() > 0) { if (detailEntityList != null && detailEntityList.size() > 0) {
if (errorEntityList != null && errorEntityList.size() > 0) { if (errorEntityList != null && errorEntityList.size() > 0) {
errorService.save(errorEntityList, context); errorService.save(errorEntityList, context);
} }
attendanceRecordEntity.setShiftsName(detailEntity.get(0).getShiftsName()); attendanceRecordEntity.setShiftsName(detailEntityList.get(0).getShiftsName());
attendanceRecordEntity.setShiftsId(attendanceClassDetailService.selectOne(new AttendanceClassDetailQuery().id(detailEntity.get(0).getShiftsId())).getClassId()); attendanceRecordEntity.setShiftsId(attendanceClassDetailService.selectOne(new AttendanceClassDetailQuery().id(detailEntityList.get(0).getShiftsId())).getClassId());
attendanceRecordEntity.setAttendanceRecordDetailList(detailEntity); attendanceRecordEntity.setAttendanceRecordDetailList(detailEntityList);
attendanceRecordService.save(attendanceRecordEntity, context); attendanceRecordService.save(attendanceRecordEntity, context);
} }
......
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