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.

104 lines
4.3 KiB
Java

1 year ago
package com.engine.attendance.vacation.cmd;
import com.engine.attendance.component.persongroup.job.scheduling.tactics.RegularScheduling;
import com.engine.attendance.vacation.job.holidaygeneration.tactics.HolidayGenerationWay;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
1 year ago
import com.engine.common.util.DbTools;
1 year ago
import com.engine.common.util.Utils;
import com.engine.core.interceptor.CommandContext;
1 year ago
import com.google.common.collect.Lists;
11 months ago
import com.google.common.collect.Maps;
1 year ago
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import java.util.List;
import java.util.Map;
1 year ago
import java.util.stream.Collectors;
1 year ago
@Slf4j
public class VocationCmd extends AbstractCommonCommand<Map<String,Object>> {
@Override
public BizLogContext getLogContext() {
return null;
}
public VocationCmd(Map<String,Object> params){
this.params=params;
}
private List<HolidayGenerationWay> rulers;
{
rulers = new Utils<HolidayGenerationWay>().getAllClassByInterface(HolidayGenerationWay.class);
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
List<Map<String,Object>> vocationList = (List<Map<String,Object>>)params.get("vocationList");
11 months ago
List<Map<String,Object>> userList = (List<Map<String,Object>>)params.get("userList");
List<Map<String,Object>> userfilter = userList.stream().filter(e->"-1".equals(e.get("scopeid"))).collect(Collectors.toList());
Map<String,Object> userMap = userfilter.size()>0?userfilter.get(0):Maps.newHashMap();
1 year ago
1 year ago
for (Map<String,Object> vocation : vocationList){
10 months ago
log.debug("qsrq : [{}],yjzd : [{}]",vocation.get("qsrq"),vocation.get("yjzd"));
11 months ago
String qsrq = Util.null2String(vocation.get("qsrq")).toLowerCase();
String yjzd = Util.null2String(vocation.get("yjzd")).toLowerCase();
String ljcrglyfslwz = Util.null2String(vocation.get("ljcrglyfslwz"));
String qsrqValue = Util.null2String(userMap.get(qsrq));
String yjzdValue = Util.null2String(userMap.get(yjzd));
String ljcrglyfslwzValue = Util.null2String(userMap.get(ljcrglyfslwz));
if ("".equals(qsrqValue)){
for (Map<String,Object> map: userList){
qsrqValue = Util.null2String(map.get(qsrq));
if (!"".equals(qsrqValue)){
break;
}
}
}
if ("".equals(yjzdValue)){
for (Map<String,Object> map: userList){
yjzdValue = Util.null2String(map.get(yjzd));
if (!"".equals(yjzdValue)){
break;
}
}
}
if ("".equals(ljcrglyfslwzValue)){
for (Map<String,Object> map: userList){
ljcrglyfslwzValue = Util.null2String(map.get(ljcrglyfslwz));
if (!"".equals(ljcrglyfslwzValue)){
break;
}
}
}
vocation.put("qsrqValue",qsrqValue);
vocation.put("yjzdValue",yjzdValue);
vocation.put("ljcrglyfslwzValue",ljcrglyfslwzValue);
1 year ago
vocation.put("zyzValue",getUserIds(vocation));
1 year ago
}
log.info("VocationCmd params: [{}]",params);
1 year ago
String edfffs = Util.null2String(vocationList.get(0).get("edfffs"));
for (HolidayGenerationWay holidayGenerationWay :rulers){
if (holidayGenerationWay.support(Integer.valueOf(edfffs))){
holidayGenerationWay.compute(params);
}
}
return null;
}
1 year ago
public List<String> getUserIds(Map<String,Object> vocation){
List<String> userIds = Lists.newArrayList();
String edyj = Util.null2String(vocation.get("edyj"));
if (edyj.equals("3") || edyj.equals("4")){
String zyz = Util.null2String(vocation.get("zyz"));
zyz = zyz.replace("","and");
zyz = zyz.replace("","or");
List<Map<String,Object>> dataList = DbTools.getSqlToList(zyz);
userIds = dataList.stream().map(e->Util.null2String(e.get("id"))).collect(Collectors.toList());
}
return userIds;
}
1 year ago
}