Commit 323061b0 authored by 赵啸非's avatar 赵啸非

修改请假计算考勤

parent bf74e50e
...@@ -430,7 +430,39 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At ...@@ -430,7 +430,39 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
//当天 //当天
// 1.判断异常时间与请假开始时间那个大。 // 1.判断异常时间与请假开始时间那个大。
int compare = DateUtil.compare(entity.getErrorDateTime(), leaveRecord.getStartTime()); int compare = DateUtil.compare(entity.getErrorDateTime(), leaveRecord.getStartTime());
int compare1 = DateUtil.compare(entity.getErrorDateTime(), leaveRecord.getEndTime());
int compare2 = DateUtil.compare(entity.getErrorDateTime(), leaveRecord.getEndTime());
boolean in = DateUtil.isIn(goOffDateTime, leaveRecord.getStartTime(), leaveRecord.getEndTime());
if (in) {
//上班打卡时间在请假时间范围内,迟到分钟按照请假结束时间与异常时间做差值
long tempLate = DateUtil.between(leaveRecord.getEndTime(), entity.getErrorDateTime(), DateUnit.MINUTE, false);
if (tempLate > 0L) {
lateMinList.add(tempLate);
}
} else {
//不包含,则要多个判断
//1.请假开始时间 大于上班时间时候
int rightBig = DateUtil.compare(goOffDateTime, leaveRecord.getStartTime());
long leftRange = 0L;
if (rightBig <= 0) {
//多段值 左段值
leftRange = DateUtil.between(goOffDateTime, leaveRecord.getStartTime(), DateUnit.MINUTE, false);
}
//右段值
long leftRange1 = 0;
int rightBig1 = DateUtil.compare(leaveRecord.getEndTime(), entity.getErrorDateTime());
if (rightBig1 < 0) {
leftRange1 = DateUtil.between(leaveRecord.getEndTime(), entity.getErrorDateTime(), DateUnit.MINUTE, false);
}
leftRange = leftRange + leftRange1;
if(leftRange>0){
lateMinList.add(leftRange);
}
}
/*
if (compare < 0) { if (compare < 0) {
//异常时间小于请假结束时间,迟到则计算异常时间与班次班次班时间还有前置时间差值 //异常时间小于请假结束时间,迟到则计算异常时间与班次班次班时间还有前置时间差值
long tempLate = DateUtil.between(goOffDateTime, entity.getErrorDateTime(), DateUnit.MINUTE, false); long tempLate = DateUtil.between(goOffDateTime, entity.getErrorDateTime(), DateUnit.MINUTE, false);
...@@ -444,7 +476,7 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At ...@@ -444,7 +476,7 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
if (tempLate > 0L) { if (tempLate > 0L) {
lateMinList.add(tempLate); lateMinList.add(tempLate);
} }
} }*/
} }
...@@ -458,7 +490,7 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At ...@@ -458,7 +490,7 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
} else { } else {
lateMin = DateUtil.between(entity.getErrorDateTime(), entity.getGoOffDateTime(), DateUnit.MINUTE); lateMin = DateUtil.between(entity.getErrorDateTime(), entity.getGoOffDateTime(), DateUnit.MINUTE);
} }
}else{ } else {
lateMin = DateUtil.between(entity.getErrorDateTime(), entity.getGoOffDateTime(), DateUnit.MINUTE); lateMin = DateUtil.between(entity.getErrorDateTime(), entity.getGoOffDateTime(), DateUnit.MINUTE);
} }
......
...@@ -77,7 +77,7 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda ...@@ -77,7 +77,7 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
@Override @Override
protected void updateAfter(AttendanceRecordEntity entity, Context context) throws AppException { protected void updateAfter(AttendanceRecordEntity entity, Context context) throws AppException {
if (!ObjectUtils.isEmpty(entity.getAttendanceRecordDetailList())) { if (!ObjectUtils.isEmpty(entity)&&!ObjectUtils.isEmpty(entity.getAttendanceRecordDetailList())) {
Long[] attendanceRecordDetailIds = attendanceRecordDetailService.find(new AttendanceRecordDetailQuery().recordId(entity.getId())).stream().map(AttendanceRecordDetailEntity::getId).toArray(Long[]::new); Long[] attendanceRecordDetailIds = attendanceRecordDetailService.find(new AttendanceRecordDetailQuery().recordId(entity.getId())).stream().map(AttendanceRecordDetailEntity::getId).toArray(Long[]::new);
attendanceRecordDetailService.remove(attendanceRecordDetailIds, context); attendanceRecordDetailService.remove(attendanceRecordDetailIds, context);
entity.getAttendanceRecordDetailList().stream().peek(item -> { entity.getAttendanceRecordDetailList().stream().peek(item -> {
......
...@@ -560,7 +560,7 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract { ...@@ -560,7 +560,7 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
if (ObjectUtils.isEmpty(attendanceRecordErrorEntity)) { if (ObjectUtils.isEmpty(attendanceRecordErrorEntity)) {
errorService.save(errorEntity, context); errorService.save(errorEntity, context);
}else { }else {
log.info("异常记录已存在,不添加"); //log.info("异常记录已存在,不添加");
} }
} }
} }
......
...@@ -37,8 +37,8 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord ...@@ -37,8 +37,8 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord
Content-Type: application/json Content-Type: application/json
{ {
"attendanceDateStart": "2024-07-08", "attendanceDateStart": "2024-07-01",
"attendanceDateEnd": "2024-07-10" "attendanceDateEnd": "2024-07-31"
} }
###海康考勤打卡记录计算1 ###海康考勤打卡记录计算1
...@@ -78,8 +78,8 @@ POST {{baseUrl}}/attendance/stat/summary ...@@ -78,8 +78,8 @@ POST {{baseUrl}}/attendance/stat/summary
Content-Type: application/json Content-Type: application/json
{ {
"summaryTimeStart": "2024-03-01", "summaryTimeStart": "2024-07-01",
"summaryTimeEnd": "2024-03-31" "summaryTimeEnd": "2024-07-31"
} }
......
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