You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
402 lines
23 KiB
Java
402 lines
23 KiB
Java
package com.engine.attendance.attendanceanalysis.service.impl;
|
|
|
|
import com.engine.attendance.attendanceanalysis.cmd.item.*;
|
|
import com.engine.attendance.attendanceanalysis.service.AbnormalAttendanceService;
|
|
import com.engine.attendance.enums.*;
|
|
import com.engine.common.util.Utils;
|
|
import com.engine.core.impl.Service;
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Maps;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import weaver.general.Util;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
@Slf4j
|
|
public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAttendanceService {
|
|
@Override
|
|
public Map<String, Object> fullDayAbsenteeism(Map<String, Object> params) {
|
|
|
|
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public List<Map<String,Object>> beLate(Map<String, Object> params) {
|
|
//当前单条明细班次
|
|
Map<String, Object> classInfo = (Map<String, Object>)params.get("classInfo");
|
|
//当前单个打卡数据
|
|
Map<String,Object> clcokInTimeData = (Map<String, Object>)params.get("clcokInTimeData");
|
|
//考勤项目
|
|
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)params.get("attendanceItems");
|
|
//班段类型
|
|
String bdlx = Util.null2String(classInfo.get("bdlx"));
|
|
//卡点
|
|
String point = Util.null2String(params.get("point"));
|
|
//分析日期
|
|
String analysisDate = Util.null2String(params.get("analysisDate"));
|
|
//班次
|
|
List<Map<String,Object>> scheduleResult = (List<Map<String,Object>>)params.get("scheduleResult");
|
|
//人员
|
|
String userId = Util.null2String(params.get("userId"));
|
|
List<Map<String,Object>> resultList = Lists.newArrayList();
|
|
|
|
String clockInTime = clcokInTimeData.get("signdate")+" "+clcokInTimeData.get("signtime");
|
|
|
|
String classStartTime = "";
|
|
if (point.split("\\|").length > 3){
|
|
//弹性上班
|
|
classStartTime=point.split("\\|")[3];
|
|
}else {
|
|
classStartTime=point.split("\\|")[0];
|
|
}
|
|
int between = Utils.removeRestTime(classStartTime,clockInTime,scheduleResult,analysisDate);
|
|
|
|
Map<String,Object> lateParams = Maps.newHashMap();
|
|
lateParams.put("attendanceItems",attendanceItems);
|
|
lateParams.put("time",between);
|
|
lateParams.put("rqlx",classInfo.get("rqlx"));
|
|
|
|
|
|
if (ClassSegmentTypeEnum.WORK_TIME.getKey().equals(bdlx)){
|
|
//工作时段
|
|
lateParams.put("workfor",WorkForTimeEnum.WORK_TIME.getKey());
|
|
Map<String,Object> result = commandExecutor.execute(new BeLateItemCmd(lateParams));
|
|
List<Map<String,Object>> workTimeBeLateItems = (List<Map<String,Object>>)result.get("attendanceItems");
|
|
if (workTimeBeLateItems.size() == 0){
|
|
workTimeBeLateItems = (List<Map<String,Object>>)commandExecutor.execute(new AbsenteeismItemCmd(lateParams)).get("attendanceItems");
|
|
}
|
|
if (workTimeBeLateItems.size() > 0){
|
|
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
|
|
double hsl = Double.valueOf(Util.null2String(workTimeBeLateItems.get(0).get("hsl")));
|
|
String hsdw = Util.null2String(workTimeBeLateItems.get(0).get("hsdw"));
|
|
String kczgsc = Util.null2String(workTimeBeLateItems.get(0).get("kczgsc"));
|
|
if (CheckBoxEnum.CHECKED.getKey().equals(kczgsc)){
|
|
//起步扣除分钟数
|
|
int qbkcsc = Integer.valueOf(Util.null2String(workTimeBeLateItems.get(0).get("qbkcsc")));
|
|
//超出后单次累加扣除分钟数
|
|
int cckcbc = Integer.valueOf(Util.null2String(workTimeBeLateItems.get(0).get("cckcbc")));
|
|
if (between <= qbkcsc){
|
|
between = qbkcsc;
|
|
}else {
|
|
int deductionDuration = between-qbkcsc;
|
|
between = Double.valueOf(Utils.getItemduration(cckcbc,AccountingUnitEnum.MINUTES.getKey(),deductionDuration,AccountingUnitEnum.MINUTES)).intValue()+qbkcsc;
|
|
|
|
}
|
|
}
|
|
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
|
|
saveWorkTimeBeLateParam.put("item",workTimeBeLateItems.get(0).get("key"));
|
|
saveWorkTimeBeLateParam.put("itemduration",itemduration);
|
|
saveWorkTimeBeLateParam.put("betweenMinutes",between);
|
|
saveWorkTimeBeLateParam.put("itemType", AttendanceItemTypeEnum.LATE);
|
|
saveWorkTimeBeLateParam.put("hsdw",hsdw);
|
|
saveWorkTimeBeLateParam.put("hsl",hsl);
|
|
saveWorkTimeBeLateParam.put("kczgsc",kczgsc);
|
|
saveWorkTimeBeLateParam.put("classStartTime",classStartTime);
|
|
saveWorkTimeBeLateParam.put("classEndTime",clockInTime);
|
|
resultList.add(saveWorkTimeBeLateParam);
|
|
|
|
}
|
|
|
|
}else if (ClassSegmentTypeEnum.EXTENDED_OVERTIME.getKey().equals(bdlx) || ClassSegmentTypeEnum.EARLY_OVERTIME.getKey().equals(bdlx)
|
|
|| ClassSegmentTypeEnum.OVERTIME_PLAN.getKey().equals(bdlx)){
|
|
//加班
|
|
if (ClassSegmentTypeEnum.EXTENDED_OVERTIME.getKey().equals(bdlx)){
|
|
lateParams.put("workfor",WorkForTimeEnum.DELAY_TO_WORK_OVERTIME.getKey());
|
|
}else if (ClassSegmentTypeEnum.EARLY_OVERTIME.getKey().equals(bdlx)){
|
|
lateParams.put("workfor",WorkForTimeEnum.EARLY_TO_WORK_OVERTIME.getKey());
|
|
}else if (ClassSegmentTypeEnum.OVERTIME_PLAN.getKey().equals(bdlx)){
|
|
lateParams.put("workfor",WorkForTimeEnum.PLAN_WORK_OVERTIME.getKey());
|
|
}
|
|
Map<String,Object> result = commandExecutor.execute(new WorkOvertimeItemCmd(lateParams));
|
|
List<Map<String,Object>> workTimeItems = (List<Map<String,Object>>)result.get("attendanceItems");
|
|
List<Map<String,Object>> lateItems = getBeLateItems(lateParams);
|
|
if (workTimeItems.size() > 0 && lateItems.size() >0){
|
|
double hsl = Double.valueOf(Util.null2String(lateItems.get(0).get("hsl")));
|
|
String hsdw = Util.null2String(lateItems.get(0).get("hsdw"));
|
|
String jbwdhlfzs = Util.null2String(workTimeItems.get(0).get("jbwdhlfzs"));
|
|
if (!"".equals(jbwdhlfzs) && between > Integer.valueOf(jbwdhlfzs)){
|
|
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
|
|
String kczgsc = Util.null2String(lateItems.get(0).get("kczgsc"));
|
|
if (CheckBoxEnum.CHECKED.getKey().equals(kczgsc)){
|
|
//起步扣除分钟数
|
|
int qbkcsc = Integer.valueOf(Util.null2String(lateItems.get(0).get("qbkcsc")));
|
|
//超出后单次累加扣除分钟数
|
|
int cckcbc = Integer.valueOf(Util.null2String(lateItems.get(0).get("cckcbc")));
|
|
if (between <= qbkcsc){
|
|
between = qbkcsc;
|
|
}else {
|
|
int deductionDuration = between-qbkcsc;
|
|
between = Double.valueOf(Utils.getItemduration(cckcbc,AccountingUnitEnum.MINUTES.getKey(),deductionDuration,AccountingUnitEnum.MINUTES)).intValue()+qbkcsc;
|
|
|
|
}
|
|
}
|
|
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
|
|
saveWorkTimeBeLateParam.put("item",lateItems.get(0).get("key"));
|
|
saveWorkTimeBeLateParam.put("itemduration",itemduration);
|
|
saveWorkTimeBeLateParam.put("betweenMinutes",between);
|
|
saveWorkTimeBeLateParam.put("itemType", AttendanceItemTypeEnum.LATE);
|
|
saveWorkTimeBeLateParam.put("hsdw",hsdw);
|
|
saveWorkTimeBeLateParam.put("hsl",hsl);
|
|
saveWorkTimeBeLateParam.put("kczgsc",kczgsc);
|
|
saveWorkTimeBeLateParam.put("classStartTime",classStartTime);
|
|
saveWorkTimeBeLateParam.put("classEndTime",clockInTime);
|
|
resultList.add(saveWorkTimeBeLateParam);
|
|
|
|
}
|
|
}
|
|
|
|
}else if (ClassSegmentTypeEnum.ASK_FOR_LEAVE.getKey().equals(bdlx) || ClassSegmentTypeEnum.EVECTION.getKey().equals(bdlx)){
|
|
//请假、出差
|
|
Map<String,Object> result = null;
|
|
if (ClassSegmentTypeEnum.ASK_FOR_LEAVE.getKey().equals(bdlx)){
|
|
lateParams.put("workfor",WorkForTimeEnum.WORK_TIME.getKey());
|
|
result = commandExecutor.execute(new VacationItemCmd(lateParams));
|
|
}else if (ClassSegmentTypeEnum.EVECTION.getKey().equals(bdlx)){
|
|
lateParams.put("workfor",WorkForTimeEnum.WORK_TIME.getKey());
|
|
result = commandExecutor.execute(new BeAwayItemCmd(lateParams));
|
|
}
|
|
List<Map<String,Object>> beAwayItems = (List<Map<String,Object>>)result.get("attendanceItems");
|
|
List<Map<String,Object>> lateItems = getBeLateItems(lateParams);
|
|
double hsl = Double.valueOf(Util.null2String(lateItems.get(0).get("hsl")));
|
|
String hsdw = Util.null2String(lateItems.get(0).get("hsdw"));
|
|
String thfghlfzs = Util.null2String(beAwayItems.get(0).get("thfghlfzs"));
|
|
if (!"".equals(thfghlfzs) && between> Integer.valueOf(thfghlfzs)){
|
|
String kczgsc = Util.null2String(lateItems.get(0).get("kczgsc"));
|
|
if (CheckBoxEnum.CHECKED.getKey().equals(kczgsc)){
|
|
//起步扣除分钟数
|
|
int qbkcsc = Integer.valueOf(Util.null2String(lateItems.get(0).get("qbkcsc")));
|
|
//超出后单次累加扣除分钟数
|
|
int cckcbc = Integer.valueOf(Util.null2String(lateItems.get(0).get("cckcbc")));
|
|
if (between <= qbkcsc){
|
|
between = qbkcsc;
|
|
}else {
|
|
int deductionDuration = between-qbkcsc;
|
|
between = Double.valueOf(Utils.getItemduration(cckcbc,AccountingUnitEnum.MINUTES.getKey(),deductionDuration,AccountingUnitEnum.MINUTES)).intValue()+qbkcsc;
|
|
|
|
}
|
|
}
|
|
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
|
|
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
|
|
saveWorkTimeBeLateParam.put("item",lateItems.get(0).get("key"));
|
|
saveWorkTimeBeLateParam.put("itemduration",itemduration);
|
|
saveWorkTimeBeLateParam.put("betweenMinutes",between);
|
|
saveWorkTimeBeLateParam.put("itemType", AttendanceItemTypeEnum.LATE);
|
|
saveWorkTimeBeLateParam.put("hsdw",hsdw);
|
|
saveWorkTimeBeLateParam.put("kczgsc",kczgsc);
|
|
saveWorkTimeBeLateParam.put("hsl",hsl);
|
|
saveWorkTimeBeLateParam.put("classStartTime",classStartTime);
|
|
saveWorkTimeBeLateParam.put("classEndTime",clockInTime);
|
|
resultList.add(saveWorkTimeBeLateParam);
|
|
|
|
}
|
|
}
|
|
|
|
return resultList;
|
|
}
|
|
|
|
@Override
|
|
public List<Map<String,Object>> leaveEarly(Map<String, Object> params) {
|
|
//当前单条明细班次
|
|
Map<String, Object> classInfo = (Map<String, Object>)params.get("classInfo");
|
|
//当前单个打卡数据
|
|
Map<String,Object> clcokInTimeData = (Map<String, Object>)params.get("clcokInTimeData");
|
|
//考勤项目
|
|
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)params.get("attendanceItems");
|
|
List<Map<String,Object>> scheduleResult = (List<Map<String,Object>>)params.get("scheduleResult");
|
|
//班段类型
|
|
String bdlx = Util.null2String(classInfo.get("bdlx"));
|
|
//分析日期
|
|
String analysisDate = Util.null2String(params.get("analysisDate"));
|
|
//人员
|
|
String userId = Util.null2String(params.get("userId"));
|
|
//卡点
|
|
String point = Util.null2String(params.get("point"));
|
|
List<Map<String,Object>> resultList = Lists.newArrayList();
|
|
|
|
String clockInTime = clcokInTimeData.get("signdate")+" "+clcokInTimeData.get("signtime");
|
|
String classEndTime = "";
|
|
if (point.split("\\|").length > 3){
|
|
//弹性下班
|
|
classEndTime=point.split("\\|")[3];
|
|
}else {
|
|
classEndTime=point.split("\\|")[0];
|
|
}
|
|
int between = Utils.removeRestTime(clockInTime,classEndTime,scheduleResult,analysisDate);
|
|
|
|
Map<String,Object> earlyParams = Maps.newHashMap();
|
|
earlyParams.put("attendanceItems",attendanceItems);
|
|
earlyParams.put("time",between);
|
|
earlyParams.put("rqlx",classInfo.get("rqlx"));
|
|
|
|
boolean ifLeaveEarly = false;
|
|
|
|
if (ClassSegmentTypeEnum.WORK_TIME.getKey().equals(bdlx)){
|
|
//工作时段
|
|
earlyParams.put("workfor",WorkForTimeEnum.WORK_TIME.getKey());
|
|
Map<String,Object> result = commandExecutor.execute(new LeaveEarlyItemCmd(earlyParams));
|
|
List<Map<String,Object>> workTimeBeLateItems = (List<Map<String,Object>>)result.get("attendanceItems");
|
|
if (workTimeBeLateItems.size() == 0){
|
|
workTimeBeLateItems = (List<Map<String,Object>>)commandExecutor.execute(new AbsenteeismItemCmd(earlyParams)).get("attendanceItems");
|
|
}
|
|
if (workTimeBeLateItems.size() > 0){
|
|
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
|
|
double hsl = Double.valueOf(Util.null2String(workTimeBeLateItems.get(0).get("hsl")));
|
|
String hsdw = Util.null2String(workTimeBeLateItems.get(0).get("hsdw"));
|
|
String kczgsc = Util.null2String(workTimeBeLateItems.get(0).get("kczgsc"));
|
|
if (CheckBoxEnum.CHECKED.getKey().equals(kczgsc)){
|
|
//起步扣除分钟数
|
|
int qbkcsc = Integer.valueOf(Util.null2String(workTimeBeLateItems.get(0).get("qbkcsc")));
|
|
//超出后单次累加扣除分钟数
|
|
int cckcbc = Integer.valueOf(Util.null2String(workTimeBeLateItems.get(0).get("cckcbc")));
|
|
if (between <= qbkcsc){
|
|
between = qbkcsc;
|
|
}else {
|
|
int deductionDuration = between-qbkcsc;
|
|
between = Double.valueOf(Utils.getItemduration(cckcbc,AccountingUnitEnum.MINUTES.getKey(),deductionDuration,AccountingUnitEnum.MINUTES)).intValue()+qbkcsc;
|
|
|
|
}
|
|
}
|
|
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
|
|
// saveWorkTimeBeLateParam.put("userId",userId);
|
|
// saveWorkTimeBeLateParam.put("date",analysisDate);
|
|
|
|
saveWorkTimeBeLateParam.put("item",workTimeBeLateItems.get(0).get("key"));
|
|
saveWorkTimeBeLateParam.put("itemduration",itemduration);
|
|
saveWorkTimeBeLateParam.put("betweenMinutes",between);
|
|
saveWorkTimeBeLateParam.put("itemType", AttendanceItemTypeEnum.LEAVE_EARLY);
|
|
saveWorkTimeBeLateParam.put("hsdw",hsdw);
|
|
saveWorkTimeBeLateParam.put("kczgsc",kczgsc);
|
|
saveWorkTimeBeLateParam.put("hsl",hsl);
|
|
saveWorkTimeBeLateParam.put("classStartTime",clockInTime);
|
|
saveWorkTimeBeLateParam.put("classEndTime",classEndTime);
|
|
resultList.add(saveWorkTimeBeLateParam);
|
|
|
|
}
|
|
|
|
}else if (ClassSegmentTypeEnum.EXTENDED_OVERTIME.getKey().equals(bdlx) || ClassSegmentTypeEnum.EARLY_OVERTIME.getKey().equals(bdlx)
|
|
|| ClassSegmentTypeEnum.OVERTIME_PLAN.getKey().equals(bdlx)){
|
|
//加班
|
|
if (ClassSegmentTypeEnum.EXTENDED_OVERTIME.getKey().equals(bdlx)){
|
|
earlyParams.put("workfor",WorkForTimeEnum.DELAY_TO_WORK_OVERTIME.getKey());
|
|
}else if (ClassSegmentTypeEnum.EARLY_OVERTIME.getKey().equals(bdlx)){
|
|
earlyParams.put("workfor",WorkForTimeEnum.EARLY_TO_WORK_OVERTIME.getKey());
|
|
}else if (ClassSegmentTypeEnum.OVERTIME_PLAN.getKey().equals(bdlx)){
|
|
earlyParams.put("workfor",WorkForTimeEnum.PLAN_WORK_OVERTIME.getKey());
|
|
}
|
|
Map<String,Object> result = commandExecutor.execute(new WorkOvertimeItemCmd(earlyParams));
|
|
List<Map<String,Object>> workTimeItems = (List<Map<String,Object>>)result.get("attendanceItems");
|
|
List<Map<String,Object>> beEarlyItems = getBeEarlyItems(earlyParams);
|
|
if (workTimeItems.size() > 0 && beEarlyItems.size() >0){
|
|
String jbzzhlfzs = Util.null2String(workTimeItems.get(0).get("jbzzhlfzs"));
|
|
String hsdw = Util.null2String(beEarlyItems.get(0).get("hsdw"));
|
|
double hsl = Double.valueOf(Util.null2String(beEarlyItems.get(0).get("hsl")));
|
|
if (!"".equals(jbzzhlfzs) && between > Integer.valueOf(jbzzhlfzs)){
|
|
log.info("between :{},jbzzhlfzs:{}",between,jbzzhlfzs);
|
|
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
|
|
String kczgsc = Util.null2String(beEarlyItems.get(0).get("kczgsc"));
|
|
if (CheckBoxEnum.CHECKED.getKey().equals(kczgsc)){
|
|
//起步扣除分钟数
|
|
int qbkcsc = Integer.valueOf(Util.null2String(beEarlyItems.get(0).get("qbkcsc")));
|
|
//超出后单次累加扣除分钟数
|
|
int cckcbc = Integer.valueOf(Util.null2String(beEarlyItems.get(0).get("cckcbc")));
|
|
if (between <= qbkcsc){
|
|
between = qbkcsc;
|
|
}else {
|
|
int deductionDuration = between-qbkcsc;
|
|
between = Double.valueOf(Utils.getItemduration(cckcbc,AccountingUnitEnum.MINUTES.getKey(),deductionDuration,AccountingUnitEnum.MINUTES)).intValue()+qbkcsc;
|
|
|
|
}
|
|
}
|
|
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
|
|
saveWorkTimeBeLateParam.put("item",beEarlyItems.get(0).get("key"));
|
|
saveWorkTimeBeLateParam.put("itemduration",itemduration);
|
|
saveWorkTimeBeLateParam.put("betweenMinutes",between);
|
|
saveWorkTimeBeLateParam.put("itemType", AttendanceItemTypeEnum.LEAVE_EARLY);
|
|
saveWorkTimeBeLateParam.put("hsdw",hsdw);
|
|
saveWorkTimeBeLateParam.put("kczgsc",kczgsc);
|
|
saveWorkTimeBeLateParam.put("hsl",hsl);
|
|
saveWorkTimeBeLateParam.put("classStartTime",clockInTime);
|
|
saveWorkTimeBeLateParam.put("classEndTime",classEndTime);
|
|
resultList.add(saveWorkTimeBeLateParam);
|
|
|
|
}
|
|
}
|
|
|
|
}else if (ClassSegmentTypeEnum.ASK_FOR_LEAVE.getKey().equals(bdlx) || ClassSegmentTypeEnum.EVECTION.getKey().equals(bdlx)){
|
|
//请假、出差
|
|
Map<String,Object> result = null;
|
|
if (ClassSegmentTypeEnum.ASK_FOR_LEAVE.getKey().equals(bdlx)){
|
|
earlyParams.put("workfor",WorkForTimeEnum.WORK_TIME.getKey());
|
|
result = commandExecutor.execute(new VacationItemCmd(earlyParams));
|
|
}else if (ClassSegmentTypeEnum.EVECTION.getKey().equals(bdlx)){
|
|
earlyParams.put("workfor",WorkForTimeEnum.WORK_TIME.getKey());
|
|
result = commandExecutor.execute(new BeAwayItemCmd(earlyParams));
|
|
}
|
|
List<Map<String,Object>> beAwayItems = (List<Map<String,Object>>)result.get("attendanceItems");
|
|
List<Map<String,Object>> beEarlyItems = getBeEarlyItems(earlyParams);
|
|
double hsl = Double.valueOf(Util.null2String(beEarlyItems.get(0).get("hsl")));
|
|
String hsdw = Util.null2String(beEarlyItems.get(0).get("hsdw"));
|
|
String tqlghlfzs = Util.null2String(beAwayItems.get(0).get("tqlghlfzs"));
|
|
if (!"".equals(tqlghlfzs) && between> Integer.valueOf(tqlghlfzs) && beEarlyItems.size()>0){
|
|
String kczgsc = Util.null2String(beEarlyItems.get(0).get("kczgsc"));
|
|
if (CheckBoxEnum.CHECKED.getKey().equals(kczgsc)){
|
|
//起步扣除分钟数
|
|
int qbkcsc = Integer.valueOf(Util.null2String(beEarlyItems.get(0).get("qbkcsc")));
|
|
//超出后单次累加扣除分钟数
|
|
int cckcbc = Integer.valueOf(Util.null2String(beEarlyItems.get(0).get("cckcbc")));
|
|
if (between <= qbkcsc){
|
|
between = qbkcsc;
|
|
}else {
|
|
int deductionDuration = between-qbkcsc;
|
|
between = Double.valueOf(Utils.getItemduration(cckcbc,AccountingUnitEnum.MINUTES.getKey(),deductionDuration,AccountingUnitEnum.MINUTES)).intValue()+qbkcsc;
|
|
|
|
}
|
|
}
|
|
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
|
|
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
|
|
|
|
saveWorkTimeBeLateParam.put("item",beEarlyItems.get(0).get("key"));
|
|
saveWorkTimeBeLateParam.put("itemduration",itemduration);
|
|
saveWorkTimeBeLateParam.put("betweenMinutes",between);
|
|
saveWorkTimeBeLateParam.put("itemType", AttendanceItemTypeEnum.LEAVE_EARLY);
|
|
saveWorkTimeBeLateParam.put("hsdw",hsdw);
|
|
saveWorkTimeBeLateParam.put("kczgsc",kczgsc);
|
|
saveWorkTimeBeLateParam.put("hsl",hsl);
|
|
saveWorkTimeBeLateParam.put("classStartTime",clockInTime);
|
|
saveWorkTimeBeLateParam.put("classEndTime",classEndTime);
|
|
resultList.add(saveWorkTimeBeLateParam);
|
|
|
|
}
|
|
}
|
|
|
|
return resultList;
|
|
}
|
|
|
|
/**
|
|
* 获得迟到项目
|
|
* @return
|
|
*/
|
|
public List<Map<String,Object>> getBeLateItems(Map<String,Object> lateParams){
|
|
Map<String,Object> result = commandExecutor.execute(new BeLateItemCmd(lateParams));
|
|
List<Map<String,Object>> workTimeBeLateItems = (List<Map<String,Object>>)result.get("attendanceItems");
|
|
if (workTimeBeLateItems.size() == 0){
|
|
workTimeBeLateItems = (List<Map<String,Object>>)commandExecutor.execute(new AbsenteeismItemCmd(lateParams)).get("attendanceItems");
|
|
}
|
|
return workTimeBeLateItems;
|
|
}
|
|
/**
|
|
* 获得早退项目
|
|
* @return
|
|
*/
|
|
public List<Map<String,Object>> getBeEarlyItems(Map<String,Object> earlyParams){
|
|
Map<String,Object> result = commandExecutor.execute(new LeaveEarlyItemCmd(earlyParams));
|
|
List<Map<String,Object>> workTimeBeLateItems = (List<Map<String,Object>>)result.get("attendanceItems");
|
|
if (workTimeBeLateItems.size() == 0){
|
|
workTimeBeLateItems = (List<Map<String,Object>>)commandExecutor.execute(new AbsenteeismItemCmd(earlyParams)).get("attendanceItems");
|
|
}
|
|
return workTimeBeLateItems;
|
|
}
|
|
|
|
}
|