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> { public LeaveEarlyItemCmd(Map params){ this.params=params; } @Override public BizLogContext getLogContext() { return null; } @Override public Map 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 resultMap = new HashMap<>(); List> attendanceItems = (List>)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; } }