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.
60 lines
2.3 KiB
Java
60 lines
2.3 KiB
Java
package com.engine.jucailinkq.attendance.attendanceanalysis.cmd.item;
|
|
|
|
import com.engine.jucailinkq.attendance.enums.AttendanceItemTypeEnum;
|
|
import com.engine.jucailinkq.attendance.enums.WorkForTimeEnum;
|
|
import com.engine.common.biz.AbstractCommonCommand;
|
|
import com.engine.common.entity.BizLogContext;
|
|
import com.engine.core.interceptor.CommandContext;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import weaver.general.Util;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* 获取早退项目
|
|
*/
|
|
@Slf4j
|
|
public class LeaveEarlyItemCmd extends AbstractCommonCommand<Map<String,Object>> {
|
|
|
|
public LeaveEarlyItemCmd(Map<String,Object> params){
|
|
this.params=params;
|
|
}
|
|
@Override
|
|
public BizLogContext getLogContext() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public Map<String, Object> execute(CommandContext commandContext) {
|
|
//作用时段
|
|
String workfor = Util.null2String(params.get("workfor"));
|
|
//早退分钟数
|
|
int time = Util.null2String(params.get("time")).equals("")? 0:Util.getIntValue(Util.null2String(params.get("time")));
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
|
|
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)params.get("attendanceItems");
|
|
attendanceItems = attendanceItems.stream().filter(e -> {
|
|
//项目类型
|
|
String xmlx = Util.null2String(e.get("xmlx"));
|
|
//作用时段
|
|
String zysd = Util.null2String(e.get("zysd"));
|
|
//最小核算分钟数(不包含)
|
|
int zxhsl = Util.null2String(e.get("zxhsl")).equals("")?0:Util.getIntValue(Util.null2String(e.get("zxhsl")));
|
|
//最大核算分钟数(包含)
|
|
int zdhsl = Util.null2String(e.get("zdhsl")).equals("")?0:Util.getIntValue(Util.null2String(e.get("zdhsl")));
|
|
|
|
if(AttendanceItemTypeEnum.LEAVE_EARLY.getKey().equals(xmlx) && (zysd.contains(workfor) || zysd.contains(WorkForTimeEnum.ALL_TIME.getKey())) && time > zxhsl && time<=zdhsl) {
|
|
return true;
|
|
}else {
|
|
return false;
|
|
}
|
|
}).collect(Collectors.toList());
|
|
resultMap.put("attendanceItems",attendanceItems);
|
|
|
|
return resultMap;
|
|
}
|
|
}
|