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.
106 lines
4.9 KiB
Java
106 lines
4.9 KiB
Java
1 year ago
|
package com.engine.attendance.workflow.cmd;
|
||
|
|
||
|
import com.engine.common.biz.AbstractCommonCommand;
|
||
|
import com.engine.common.entity.BizLogContext;
|
||
|
import com.engine.common.util.CommonUtil;
|
||
|
import com.engine.common.util.DateUtil;
|
||
|
import com.engine.common.util.DbTools;
|
||
|
import com.engine.common.util.Utils;
|
||
|
import com.engine.core.interceptor.CommandContext;
|
||
|
import com.google.common.collect.Lists;
|
||
|
import com.google.common.collect.Maps;
|
||
|
import lombok.extern.slf4j.Slf4j;
|
||
|
import weaver.general.Util;
|
||
|
import weaver.hrm.company.DepartmentComInfo;
|
||
|
import java.time.LocalDateTime;
|
||
|
import java.util.List;
|
||
|
import java.util.Map;
|
||
|
import java.util.Set;
|
||
|
import java.util.stream.Collectors;
|
||
|
|
||
|
@Slf4j
|
||
|
public class GetKqCycleTimeIntervalCmd extends AbstractCommonCommand<Map<String, Object>> {
|
||
|
|
||
|
public GetKqCycleTimeIntervalCmd(Map<String, Object> params){
|
||
|
this.params = params;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public BizLogContext getLogContext() {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public Map<String, Object> execute(CommandContext commandContext) {
|
||
|
String userId = Util.null2String(params.get("userId"));
|
||
|
String submitDates = Util.null2String(params.get("submitDate"));
|
||
|
log.info("GetKqCycleTimeIntervalCmd userId:[{}],submitDates:[{}]",userId,submitDates);
|
||
|
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqzqmc");
|
||
|
|
||
|
Set<String> attendanceSetIdsSets = CommonUtil.getDataIds(userId,modeId,null,null);
|
||
|
log.info("attendanceSetIdsSets : {}",attendanceSetIdsSets);
|
||
|
|
||
|
|
||
|
String sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?";
|
||
|
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,userId);
|
||
|
String deptid = Util.null2String(departMentMap.get("departmentid"));
|
||
|
String pdeptids = "";
|
||
|
List<Map<String,Object>> dateList = Lists.newArrayList();
|
||
|
Map<String,Object> resultMap = Maps.newHashMap();
|
||
|
resultMap.put("status",true);
|
||
|
resultMap.put("data",dateList);
|
||
|
try {
|
||
|
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids);
|
||
|
pdeptids = deptid + pdeptids;
|
||
|
log.info("pdeptids : [{}]",pdeptids);
|
||
|
LocalDateTime nowLocalDateTime = DateUtil.getTime(submitDates);
|
||
|
int nowyear = nowLocalDateTime.getYear();
|
||
|
int nowMonth = nowLocalDateTime.getMonth().getValue();
|
||
|
|
||
|
LocalDateTime beforeLocalDateTime = DateUtil.getTime(submitDates).minusMonths(1);
|
||
|
int beforeYear = beforeLocalDateTime.getYear();
|
||
|
int beforeMonth = beforeLocalDateTime.getMonth().getValue();
|
||
|
|
||
|
sql = "select a.zt,a.ksrq,a.jsrq,a.gzrq,a.gzsj,b.zt dtzt,b.tsbm,b.gzrq dtgzrq,b.gzsj dtgzsj from uf_jcl_kq_kqzq a left join uf_jcl_kq_kqzq_dt1 b on a.id=b.mainid where a.mc=? and (a.nd=? and a.yf=? or a.nd=? and a.yf=?)";
|
||
|
if (attendanceSetIdsSets.toArray().length == 0){
|
||
|
resultMap.put("status",false);
|
||
|
return resultMap;
|
||
|
}
|
||
|
List<Map<String,Object>> list = DbTools.getSqlToList(sql,attendanceSetIdsSets.toArray()[0],nowyear,nowMonth,beforeYear,beforeMonth);
|
||
|
|
||
|
log.info("GetKqCycleTimeIntervalCmd list : [{}]",list);
|
||
|
for (Map<String,Object> dataMap : list){
|
||
|
String tsbm = Util.null2String(dataMap.get("tsbm"));
|
||
|
if (!"".equals(tsbm) && CommonUtil.ifContainStr(pdeptids,tsbm,",")){
|
||
|
//人员在特殊部门里
|
||
|
String gzrq = Util.null2String(dataMap.get("dtgzrq")) +" "+Util.null2String(dataMap.get("dtgzsj")) +":00";
|
||
|
if (DateUtil.getTime(submitDates).compareTo(DateUtil.getTime(gzrq))<=0){
|
||
|
Map<String,Object> date = Maps.newHashMap();
|
||
|
date.put("startDate",dataMap.get("ksrq"));
|
||
|
date.put("endDate",dataMap.get("jsrq"));
|
||
|
dateList.add(date);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for (Map<String,Object> dataMap : list){
|
||
|
String gzrq = Util.null2String(dataMap.get("gzrq")) +" "+Util.null2String(dataMap.get("gzsj")) +":00";
|
||
|
if (DateUtil.getTime(submitDates).compareTo(DateUtil.getTime(gzrq))<=0){
|
||
|
Map<String,Object> date = Maps.newHashMap();
|
||
|
List<Map<String,Object>> filterDate = dateList.stream().filter(e->e.get("startDate").equals(dataMap.get("ksrq"))).collect(Collectors.toList());
|
||
|
if (filterDate.size() == 0){
|
||
|
date.put("startDate",dataMap.get("ksrq"));
|
||
|
date.put("endDate",dataMap.get("jsrq"));
|
||
|
dateList.add(date);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}catch (Exception e){
|
||
|
log.error("catch error :{}",e);
|
||
|
}
|
||
|
log.info("GetKqCycleTimeIntervalCmd dateList : [{}]",dateList);
|
||
|
|
||
|
return resultMap;
|
||
|
}
|
||
|
}
|