Merge remote-tracking branch 'origin/main'
commit
021d2afe3e
File diff suppressed because one or more lines are too long
@ -0,0 +1,70 @@
|
|||||||
|
package com.engine.jucailinkq.attendance.attendanceanalysis.cmd;
|
||||||
|
|
||||||
|
import com.engine.common.biz.AbstractCommonCommand;
|
||||||
|
import com.engine.common.entity.BizLogContext;
|
||||||
|
import com.engine.core.interceptor.CommandContext;
|
||||||
|
import com.engine.jucailinkq.common.cmd.GetPersonBySuitOrganzationCmd;
|
||||||
|
import com.engine.jucailinkq.common.util.DateUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DbTools;
|
||||||
|
import com.engine.jucailinkq.common.util.Utils;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
|
import weaver.general.Util;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
public class GetAttendanceCycleCmd extends AbstractCommonCommand<Map<String,Object>> {
|
||||||
|
|
||||||
|
public GetAttendanceCycleCmd(Map<String,Object> params){
|
||||||
|
this.params=params;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BizLogContext getLogContext() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> execute(CommandContext commandContext) {
|
||||||
|
List<Map<String,Object>> userList = (List<Map<String,Object>>)params.get("userList");
|
||||||
|
String executeDate = Util.null2String(params.get("executeDate"));
|
||||||
|
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqzqmc");
|
||||||
|
params.put("modeId",modeId);
|
||||||
|
Map<String,List<String>> userToDateMap = Maps.newHashMap();
|
||||||
|
Map<String,Object> person = new GetPersonBySuitOrganzationCmd(params).execute(commandContext);
|
||||||
|
Set<String> attendanceCycleSet = Sets.newHashSet();
|
||||||
|
Set<String> subcompanyids = userList.stream().map(e->e.get("subcompanyid1").toString()).collect(Collectors.toSet());
|
||||||
|
Map<String,String> subcompanyToAttendanceCycleMap = Maps.newHashMap();
|
||||||
|
for (String subcompanyid :subcompanyids){
|
||||||
|
String attendanceCycle = Utils.getDefaultAttendanceCycle(subcompanyid);
|
||||||
|
subcompanyToAttendanceCycleMap.put(subcompanyid,attendanceCycle);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Map<String,Object> userMap : userList){
|
||||||
|
String id = Util.null2String(userMap.get("id"));
|
||||||
|
String subcompanyid1 =Util.null2String(userMap.get("subcompanyid1"));
|
||||||
|
String attendanceCycle = person.get(id)==null?subcompanyToAttendanceCycleMap.get(subcompanyid1):person.get(id).toString();
|
||||||
|
if ("".equals(attendanceCycle)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
attendanceCycleSet.add(attendanceCycle);
|
||||||
|
}
|
||||||
|
String sql = "select mc,ksrq,jsrq from uf_jcl_kq_kqzq where mc in ("+String.join(",",attendanceCycleSet)+") and gzrq<=? and zt <> '2'";
|
||||||
|
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,executeDate,executeDate);
|
||||||
|
Map<String,List<Map<String,Object>>> dataCollect = dataList.stream().collect(Collectors.groupingBy(e->e.get("mc").toString()));
|
||||||
|
for (Map<String,Object> userMap : userList){
|
||||||
|
List<String> dateList = Lists.newArrayList();
|
||||||
|
dateList.add(DateUtil.beforeDay(executeDate,1));
|
||||||
|
dateList.add(DateUtil.beforeDay(executeDate,2));
|
||||||
|
String id = Util.null2String(userMap.get("id"));
|
||||||
|
userToDateMap.put(id,dateList);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue