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

2 years ago
package com.engine.attendance.attendanceanalysis.cmd.item;
2 years ago
2 years ago
import com.engine.attendance.enums.AttendanceItemTypeEnum;
2 years ago
import com.engine.attendance.enums.WorkForTimeEnum;
2 years ago
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
2 years ago
import lombok.extern.slf4j.Slf4j;
2 years ago
import weaver.general.Util;
2 years ago
import java.util.HashMap;
2 years ago
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
2 years ago
*
2 years ago
*/
2 years ago
@Slf4j
2 years ago
public class BeLateItemCmd extends AbstractCommonCommand<Map<String,Object>> {
2 years ago
@Override
public BizLogContext getLogContext() {
return null;
}
2 years ago
public BeLateItemCmd(Map<String,Object> params){
2 years ago
this.params=params;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
//作用时段
String workfor = Util.null2String(params.get("workfor"));
2 years ago
//迟到分钟数
2 years ago
int time = Util.null2String(params.get("time")).equals("")? 0:Util.getIntValue(Util.null2String(params.get("time")));
Map<String, Object> resultMap = new HashMap<>();
2 years ago
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)params.get("attendanceItems");
2 years ago
attendanceItems = attendanceItems.stream().filter(e -> {
2 years ago
//项目类型
String xmlx = Util.null2String(e.get("xmlx"));
//作用时段
String zysd = Util.null2String(e.get("zysd"));
//最小核算分钟数(不包含)
2 years ago
int zxhsl = Util.null2String(e.get("zxhsl")).equals("")?0:Util.getIntValue(Util.null2String(e.get("zxhsl")));
2 years ago
//最大核算分钟数(包含)
2 years ago
int zdhsl = Util.null2String(e.get("zdhsl")).equals("")?0:Util.getIntValue(Util.null2String(e.get("zdhsl")));
2 years ago
2 years ago
if(AttendanceItemTypeEnum.LATE.getKey().equals(xmlx) && (zysd.contains(workfor) || zysd.contains(WorkForTimeEnum.ALL_TIME.getKey())) && time > zxhsl && time<=zdhsl) {
2 years ago
return true;
2 years ago
}else {
return false;
2 years ago
}
}).collect(Collectors.toList());
2 years ago
log.info("absenteeismCmd attendanceItems : [{}]",attendanceItems);
resultMap.put("attendanceItems",attendanceItems);
2 years ago
2 years ago
return resultMap;
2 years ago
}
}