|
|
@ -1,5 +1,6 @@
|
|
|
|
package com.engine.jucailinkq.attendance.attendanceanalysis.cmd.workovertime;
|
|
|
|
package com.engine.jucailinkq.attendance.attendanceanalysis.cmd.workovertime;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO;
|
|
|
|
import com.engine.jucailinkq.attendance.enums.*;
|
|
|
|
import com.engine.jucailinkq.attendance.enums.*;
|
|
|
|
import com.engine.common.biz.AbstractCommonCommand;
|
|
|
|
import com.engine.common.biz.AbstractCommonCommand;
|
|
|
|
import com.engine.common.entity.BizLogContext;
|
|
|
|
import com.engine.common.entity.BizLogContext;
|
|
|
@ -64,6 +65,8 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
|
|
|
|
Map<String,Map<String,Object>> clcokInTimeMap = (Map<String,Map<String,Object>>)params.get("clcokInTimeMap");
|
|
|
|
Map<String,Map<String,Object>> clcokInTimeMap = (Map<String,Map<String,Object>>)params.get("clcokInTimeMap");
|
|
|
|
//班次
|
|
|
|
//班次
|
|
|
|
Map<String, Object> scheduleMap = (Map<String, Object>)params.get("scheduleMap");
|
|
|
|
Map<String, Object> scheduleMap = (Map<String, Object>)params.get("scheduleMap");
|
|
|
|
|
|
|
|
//打卡卡点
|
|
|
|
|
|
|
|
List<ClockPointDTO> clcokInTimeDataList = (List<ClockPointDTO>)params.get("clcokInTimeData");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -78,9 +81,12 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
|
|
|
|
Map<String, Object> getWorkOverTimeParam = Maps.newHashMap();
|
|
|
|
Map<String, Object> getWorkOverTimeParam = Maps.newHashMap();
|
|
|
|
//加班开始时间
|
|
|
|
//加班开始时间
|
|
|
|
String kssj = Utils.getkssjTime(scheduleMap, analysisDate);
|
|
|
|
String kssj = Utils.getkssjTime(scheduleMap, analysisDate);
|
|
|
|
|
|
|
|
ClockPointDTO startClockPointDTO = clcokInTimeDataList.stream().filter(e->e.getPointType() == ClockPointEnum.START &&
|
|
|
|
|
|
|
|
DateUtil.getTime(kssj).compareTo(DateUtil.getTime(e.getClassTime())) == 0).collect(Collectors.toList()).get(0);
|
|
|
|
//加班结束时间
|
|
|
|
//加班结束时间
|
|
|
|
String jssj = Utils.getjssjTime(scheduleMap, analysisDate);
|
|
|
|
String jssj = Utils.getjssjTime(scheduleMap, analysisDate);
|
|
|
|
|
|
|
|
ClockPointDTO endClockPointDTO = clcokInTimeDataList.stream().filter(e->e.getPointType() == ClockPointEnum.END &&
|
|
|
|
|
|
|
|
DateUtil.getTime(jssj).compareTo(DateUtil.getTime(e.getClassTime())) == 0).collect(Collectors.toList()).get(0);
|
|
|
|
//加班实际开始时间
|
|
|
|
//加班实际开始时间
|
|
|
|
String realityStartTime = "";
|
|
|
|
String realityStartTime = "";
|
|
|
|
//加班实际结束时间
|
|
|
|
//加班实际结束时间
|
|
|
@ -184,8 +190,12 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
if (DateUtil.getTime(realityStartTime).compareTo(DateUtil.getTime(kssj)) > 0) {
|
|
|
|
String kssjTime = kssj;
|
|
|
|
beLateTime = DateUtil.getBetWeenMinutes(kssj, realityStartTime);
|
|
|
|
if (startClockPointDTO.getElasticTime() != null && !startClockPointDTO.getElasticTime().equals("")){
|
|
|
|
|
|
|
|
kssjTime = startClockPointDTO.getElasticTime();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (DateUtil.getTime(realityStartTime).compareTo(DateUtil.getTime(kssjTime)) > 0) {
|
|
|
|
|
|
|
|
beLateTime = DateUtil.getBetWeenMinutes(kssjTime, realityStartTime);
|
|
|
|
List<Map<String, Object>> collect1 = anomalyList.stream().filter(e -> e.get("pointTime").equals(kssj)).collect(Collectors.toList());
|
|
|
|
List<Map<String, Object>> collect1 = anomalyList.stream().filter(e -> e.get("pointTime").equals(kssj)).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
|
|
if (!"".equals(jbwdhlfzs) && beLateTime < Integer.valueOf(jbwdhlfzs)) {
|
|
|
|
if (!"".equals(jbwdhlfzs) && beLateTime < Integer.valueOf(jbwdhlfzs)) {
|
|
|
@ -223,8 +233,12 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
if (DateUtil.getTime(realityEndime).compareTo(DateUtil.getTime(jssj)) < 0) {
|
|
|
|
String jssjTime = jssj;
|
|
|
|
leaveElaryTime = DateUtil.getBetWeenMinutes(realityEndime, jssj);
|
|
|
|
if (endClockPointDTO.getElasticTime() != null && !endClockPointDTO.getElasticTime().equals("")){
|
|
|
|
|
|
|
|
jssjTime = endClockPointDTO.getElasticTime();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (DateUtil.getTime(realityEndime).compareTo(DateUtil.getTime(jssjTime)) < 0) {
|
|
|
|
|
|
|
|
leaveElaryTime = DateUtil.getBetWeenMinutes(realityEndime, jssjTime);
|
|
|
|
List<Map<String, Object>> collect2 = anomalyList.stream().filter(e -> e.get("pointTime").equals(jssj)).collect(Collectors.toList());
|
|
|
|
List<Map<String, Object>> collect2 = anomalyList.stream().filter(e -> e.get("pointTime").equals(jssj)).collect(Collectors.toList());
|
|
|
|
if (!"".equals(jbzzhlfzs) && leaveElaryTime < Integer.valueOf(jbzzhlfzs)) {
|
|
|
|
if (!"".equals(jbzzhlfzs) && leaveElaryTime < Integer.valueOf(jbzzhlfzs)) {
|
|
|
|
leaveElaryTime = 0;
|
|
|
|
leaveElaryTime = 0;
|
|
|
|