zm_dev
liuliang 1 year ago
parent 33341430f6
commit dec7a29dc4

@ -9,6 +9,8 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import weaver.general.Util;
import java.time.ZoneOffset;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -95,51 +97,304 @@ public class GetClockInTimeCmd extends AbstractCommonCommand<Map<String,Object>>
/**
*
*
* @param beforeNeedGetDateScheduling
* @param beforeNeedGetDateList
* @param beforeNeedGetDateList
* @param needGetDateScheduling
* @param needGetDateList
* @param needGetDateList
* @return
*/
public List<Map<String,Object>> computeStartTime(List<Map<String,Object>> beforeNeedGetDateScheduling,List<Map<String,Object>> beforeNeedGetDateList,
List<Map<String,Object>> needGetDateScheduling,List<Map<String,Object>> needGetDateList){
List<Map<String,Object>> needGetDateScheduling,List<Map<String,Object>> needGetDateList,String needGetDate){
//前一天是否跨天 1:跨天
String beforesfkt = Util.null2String(beforeNeedGetDateScheduling.get(0).get("sfkt"));
//当天是否跨天 1跨天
String nowsfkt = Util.null2String(needGetDateScheduling.get(0).get("sfkt"));
if (!"1".equals(beforesfkt) && !"1".equals(nowsfkt)){
return needGetDateList;
}else if ("1".equals(beforesfkt) && !"1".equals(nowsfkt)){
if ("1".equals(beforesfkt) && !"1".equals(nowsfkt)){
//前一天跨天,当天没有跨天
beforeNeedGetDateScheduling = beforeNeedGetDateScheduling.stream().filter(e -> {
if (ClassSegmentTypeEnum.WORK_TIME.getKey().equals(e.get("bdlx")) ||
ClassSegmentTypeEnum.EARLY_OVERTIME.getKey().equals(e.get("bdlx")) || ClassSegmentTypeEnum.EXTENDED_OVERTIME.getKey().equals(e.get("bdlx"))){
return true;
}else {
return false;
}
}).collect(Collectors.toList());
Map<String,Object> lastDataMap = beforeNeedGetDateScheduling.get(beforeNeedGetDateScheduling.size()-1);
//昨天的最晚打卡数据在今天,今天剔除昨天的打卡数据
needGetDateList = computeStartTimeRemove(beforeNeedGetDateScheduling,needGetDateList,needGetDate);
}else if (!"1".equals(beforesfkt) && "1".equals(nowsfkt)){
//前一天没有跨天,当天跨天
//今天的最早打卡数据在昨天,今天的打卡数据里添加昨天的打卡数据
needGetDateList = computeStartTimeAdd(beforeNeedGetDateScheduling,beforeNeedGetDateList,needGetDateScheduling,needGetDateList,needGetDate);
}else if ("1".equals(beforesfkt) && "1".equals(nowsfkt)){
//前一天跨天,当天也跨天
/** 前一天 */
beforeNeedGetDateScheduling = beforeNeedGetDateScheduling.stream().filter(e -> "1".equals(Util.null2String(e.get("jsdk")))).collect(Collectors.toList());
Map<String,Object> lastDataMap = beforeNeedGetDateScheduling.get(beforeNeedGetDateScheduling.size()-1);
String beforekssj = needGetDate +" "+Util.null2String(lastDataMap.get("dtkssj"));
String beforejssj = needGetDate +" "+Util.null2String(lastDataMap.get("dtjssj"));
/** 当天 */
needGetDateScheduling = needGetDateScheduling.stream().filter(e -> "1".equals(Util.null2String(e.get("ksdk")))).collect(Collectors.toList());
Map<String,Object> firstDataMap = needGetDateScheduling.get(0);
//判断最早日期是否跨天
String nowkssj = needGetDate +" "+Util.null2String(firstDataMap.get("dtkssj"));
String nowjssj = needGetDate +" "+Util.null2String(firstDataMap.get("dtjssj"));
if (DateUtil.getTime(beforekssj).compareTo(DateUtil.getTime(beforejssj)) > 0 &&
DateUtil.getTime(nowkssj).compareTo(DateUtil.getTime(nowjssj)) > 0){
//前一天的最晚打卡时间在今天,今天的最早打卡时间在昨天
/** 目前没有这种情况,会造成数据混乱,无法判定时间归属哪一天。逻辑待定**/
}else if (DateUtil.getTime(beforekssj).compareTo(DateUtil.getTime(beforejssj)) <= 0 &&
DateUtil.getTime(nowkssj).compareTo(DateUtil.getTime(nowjssj)) > 0){
//今天的最早打卡数据在昨天
needGetDateList = computeStartTimeAdd(beforeNeedGetDateScheduling,beforeNeedGetDateList,needGetDateScheduling,needGetDateList,needGetDate);
}else if (DateUtil.getTime(beforekssj).compareTo(DateUtil.getTime(beforejssj)) > 0 && DateUtil.getTime(nowkssj).compareTo(DateUtil.getTime(nowjssj)) <= 0){
//昨天的最晚打卡数据在今天
needGetDateList = computeStartTimeRemove(beforeNeedGetDateScheduling,needGetDateList,needGetDate);
}
}
return null;
return needGetDateList;
}
/**
/***
*
* @param afterNeedGetDateScheduling
* @param afterNeedGetDateList
* @param needGetDateScheduling
* @param needGetDateList
* @param needGetDate
* @return
*/
public List<Map<String,Object>> computeEndTime(List<Map<String,Object>> beforeNeedGetDateScheduling,List<Map<String,Object>> beforeNeedGetDateList,
List<Map<String,Object>> needGetDateScheduling,List<Map<String,Object>> needGetDateList){
public List<Map<String,Object>> computeEndTime(List<Map<String,Object>> afterNeedGetDateScheduling,List<Map<String,Object>> afterNeedGetDateList,
List<Map<String,Object>> needGetDateScheduling,List<Map<String,Object>> needGetDateList,String needGetDate){
//后一天是否跨天 1:跨天
String aftersfkt = Util.null2String(afterNeedGetDateScheduling.get(0).get("sfkt"));
//当天是否跨天 1跨天
String nowsfkt = Util.null2String(needGetDateScheduling.get(0).get("sfkt"));
if ("1".equals(aftersfkt) && !"1".equals(nowsfkt)){
//后一天跨天,当天没有跨天
//后一天的最早开始时间在今天
needGetDateList = computeEndTimeRemove(afterNeedGetDateScheduling,needGetDateScheduling,needGetDateList,needGetDate);
return null;
}else if (!"1".equals(aftersfkt) && "1".equals(nowsfkt)){
//后没有跨天,当天跨天
//今天的最晚打卡数据在后一天,添加今天里面后一天的打卡数据
needGetDateList = computeEndTimeAdd(afterNeedGetDateList,needGetDateScheduling,needGetDateList,needGetDate);
}else if ("1".equals(aftersfkt) && "1".equals(nowsfkt)){
//前后2天都跨天
/** 当天 **/
needGetDateScheduling = needGetDateScheduling.stream().filter(e -> "1".equals(Util.null2String(e.get("ksdk")))).collect(Collectors.toList());
Map<String,Object> endNeedGetDateSchedule = needGetDateScheduling.get(needGetDateScheduling.size()-1);
//判断最晚打卡时间是否跨天
String nowkssj = needGetDate +" "+Util.null2String(endNeedGetDateSchedule.get("dtkssj"));
String nowjssj = needGetDate +" "+Util.null2String(endNeedGetDateSchedule.get("dtjssj"));
/** 后天 **/
afterNeedGetDateScheduling = afterNeedGetDateScheduling.stream().filter(e -> "1".equals(Util.null2String(e.get("ksdk")))).collect(Collectors.toList());
Map<String,Object> firstDataMap = afterNeedGetDateScheduling.get(0);
String afterkssj = needGetDate +" "+Util.null2String(firstDataMap.get("dtkssj"));
String afterjssj = needGetDate +" "+Util.null2String(firstDataMap.get("dtjssj"));
if (DateUtil.getTime(afterkssj).compareTo(DateUtil.getTime(afterjssj)) > 0 &&
DateUtil.getTime(nowkssj).compareTo(DateUtil.getTime(nowjssj)) > 0){
//前一天的最晚打卡时间在今天,今天的最早打卡时间在昨天
/** 目前没有这种情况,会造成数据混乱,无法判定时间归属哪一天。逻辑待定**/
}else if (DateUtil.getTime(afterkssj).compareTo(DateUtil.getTime(afterkssj)) <= 0 &&
DateUtil.getTime(nowkssj).compareTo(DateUtil.getTime(nowjssj)) > 0){
//今天的最晚打卡数据在后一天
needGetDateList = computeEndTimeAdd(afterNeedGetDateList,needGetDateScheduling,needGetDateList,needGetDate);
}else if (DateUtil.getTime(afterkssj).compareTo(DateUtil.getTime(afterkssj)) > 0 && DateUtil.getTime(nowkssj).compareTo(DateUtil.getTime(nowjssj)) <= 0){
//后一天的最早开始时间在今天
needGetDateList = computeEndTimeRemove(afterNeedGetDateScheduling,needGetDateScheduling,needGetDateList,needGetDate);
}
}
return needGetDateList;
}
/**
*
* @param afterNeedGetDateScheduling
* @param needGetDateScheduling
* @param needGetDateList
* @return
*/
public List<Map<String,Object>> computeEndTimeRemove(List<Map<String,Object>> afterNeedGetDateScheduling,
List<Map<String,Object>> needGetDateScheduling,List<Map<String,Object>> needGetDateList,String needGetDate){
//获得需要打卡的
afterNeedGetDateScheduling = afterNeedGetDateScheduling.stream().filter(e -> "1".equals(Util.null2String(e.get("ksdk")))).collect(Collectors.toList());
Map<String,Object> firstDataMap = afterNeedGetDateScheduling.get(0);
needGetDateScheduling = needGetDateScheduling.stream().filter(e -> "1".equals(Util.null2String(e.get("ksdk")))).collect(Collectors.toList());
Map<String,Object> endNeedGetDateSchedule = needGetDateScheduling.get(needGetDateScheduling.size()-1);
//判断最早日期是否跨天
String kssj = needGetDate +" "+Util.null2String(firstDataMap.get("dtkssj"));
String jssj = needGetDate +" "+Util.null2String(firstDataMap.get("dtjssj"));
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(jssj)) > 0){
//最早打卡日期跨天
}
return needGetDateList;
}
/**
*
* @param afterNeedGetDateList
* @param needGetDateScheduling
* @param needGetDateList
* @param needGetDate
* @return
*/
public List<Map<String,Object>> computeEndTimeAdd(List<Map<String,Object>> afterNeedGetDateList,
List<Map<String,Object>> needGetDateScheduling,List<Map<String,Object>> needGetDateList,String needGetDate){
needGetDateScheduling = needGetDateScheduling.stream().filter(e -> "1".equals(Util.null2String(e.get("ksdk")))).collect(Collectors.toList());
Map<String,Object> endNeedGetDateSchedule = needGetDateScheduling.get(needGetDateScheduling.size()-1);
//判断最晚打卡时间是否跨天
String kssj = needGetDate +" "+Util.null2String(endNeedGetDateSchedule.get("dtkssj"));
String jssj = needGetDate +" "+Util.null2String(endNeedGetDateSchedule.get("dtjssj"));
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(jssj)) > 0){
//结束时间
jssj = DateUtil.AfterDay(needGetDate,1) +" "+endNeedGetDateSchedule.get("dtjssj");
//推后打卡分钟数
long thdkfzs = Util.null2String(endNeedGetDateSchedule.get("thdkfzs")).equals("") ? 0:Long.valueOf(Util.null2String(endNeedGetDateSchedule.get("thdkfzs")));
String latestTime = DateUtil.AfterMinutes(jssj,thdkfzs);
for (int i=afterNeedGetDateList.size()-1;i>=0;i--){
//前一天的打卡数据集合里在当天最早打卡日期之后的都属于当天
String dateTime = afterNeedGetDateList.get(i).get("signdate")+" "+afterNeedGetDateList.get(i).get("signtime");
if (DateUtil.getTime(jssj).compareTo(DateUtil.getTime(dateTime)) >=0){
needGetDateList.add(afterNeedGetDateList.get(i));
}
if (DateUtil.getTime(jssj).compareTo(DateUtil.getTime(dateTime)) <0 &&
DateUtil.getTime(latestTime).compareTo(DateUtil.getTime(dateTime)) >=0){
needGetDateList.add(afterNeedGetDateList.get(i));
break;
}
}
//排序
needGetDateList = needGetDateList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
}
return needGetDateList;
}
/**
*
* @param beforeNeedGetDateScheduling
* @param needGetDateList
* @param needGetDate
* @return
*/
public List<Map<String,Object>> computeStartTimeRemove(List<Map<String,Object>> beforeNeedGetDateScheduling,List<Map<String,Object>> needGetDateList,String needGetDate){
//获得需要打卡的
beforeNeedGetDateScheduling = beforeNeedGetDateScheduling.stream().filter(e -> "1".equals(Util.null2String(e.get("jsdk")))).collect(Collectors.toList());
Map<String,Object> lastDataMap = beforeNeedGetDateScheduling.get(beforeNeedGetDateScheduling.size()-1);
String kssj = needGetDate +" "+Util.null2String(lastDataMap.get("dtkssj"));
String jssj = needGetDate +" "+Util.null2String(lastDataMap.get("dtjssj"));
List<Map<String,Object>> resultList = Lists.newArrayList();
//昨天的最晚打卡数据在今天
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(jssj)) > 0){
//最后打卡日期跨天
jssj = needGetDate +" "+lastDataMap.get("dtjssj");
//最大打卡时间
long thdkfzs = Util.null2String(lastDataMap.get("thdkfzs")).equals("") ? 0:Long.valueOf(Util.null2String(lastDataMap.get("thdkfzs")));
String mostTime = DateUtil.AfterMinutes(jssj,thdkfzs);
for (Map<String,Object> date : needGetDateList){
//前一天最后打卡日期之前的打卡数据都归属前一天,进行过滤
String dateTime = date.get("signdate")+" "+date.get("signtime");
if (DateUtil.getTime(jssj).compareTo(DateUtil.getTime(dateTime)) <=0){
resultList.add(date);
}
}
Map<String,Object> resultMap = resultList.stream().min(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).get();
String minTime = resultMap.get("signdate")+" "+resultMap.get("signtime");
if (DateUtil.getTime(mostTime).compareTo(DateUtil.getTime(minTime)) >=0){
//当天第一比时间在,最后打卡日期之后,最长延迟打卡时间之前的,归属前一天
resultList.remove(resultMap);
}
needGetDateList = resultList;
}
return needGetDateList;
}
/**
*
* @param beforeNeedGetDateList
* @param needGetDateScheduling
* @param needGetDateList
* @param needGetDate
* @return
*/
public List<Map<String,Object>> computeStartTimeAdd(List<Map<String,Object>> beforeNeedGetDateScheduling,List<Map<String,Object>> beforeNeedGetDateList,
List<Map<String,Object>> needGetDateScheduling,List<Map<String,Object>> needGetDateList,String needGetDate){
//获得需要打卡的
needGetDateScheduling = needGetDateScheduling.stream().filter(e -> "1".equals(Util.null2String(e.get("ksdk")))).collect(Collectors.toList());
Map<String,Object> firstDataMap = needGetDateScheduling.get(0);
beforeNeedGetDateScheduling = beforeNeedGetDateScheduling.stream().filter(e -> "1".equals(Util.null2String(e.get("jsdk")))).collect(Collectors.toList());
Map<String,Object> lastDataMap = beforeNeedGetDateScheduling.get(beforeNeedGetDateScheduling.size()-1);
//判断最早日期是否跨天
String kssj = needGetDate +" "+Util.null2String(firstDataMap.get("dtkssj"));
String jssj = needGetDate +" "+Util.null2String(firstDataMap.get("dtjssj"));
//今天的最早打卡数据在昨天
if(DateUtil.getTime(kssj).compareTo(DateUtil.getTime(jssj)) > 0){
//最早打卡日期
kssj = DateUtil.beforeDay(needGetDate,1) +" "+firstDataMap.get("dtkssj");
//最早打卡时间
long tqdkfzs = Util.null2String(firstDataMap.get("tqdkfzs")).equals("") ? 0:Long.valueOf(Util.null2String(firstDataMap.get("tqdkfzs")));
String earliestTime = DateUtil.beforeMinutes(kssj,tqdkfzs);
//前一天最晚打卡日期
String beforejssj = DateUtil.beforeDay(needGetDate,1) + " "+Util.null2String(lastDataMap.get("dtjssj"));
//前一天最晚延迟打卡日期
long beforethdkfzs = Util.null2String(firstDataMap.get("thdkfzs")).equals("") ? 0:Long.valueOf(Util.null2String(firstDataMap.get("thdkfzs")));
String lastestTime = DateUtil.AfterMinutes(jssj,beforethdkfzs);
List<Map<String,Object>> beforeleaveDate = Lists.newArrayList();
for (Map<String,Object> map : beforeNeedGetDateList){
String dateTime = map.get("signdate")+" "+map.get("signtime");
if (DateUtil.getTime(beforejssj).compareTo(DateUtil.getTime(dateTime)) <=0){
beforeleaveDate.add(map);
}
}
if (beforeleaveDate.size() > 0){
String dateTime = beforeleaveDate.get(0).get("signdate")+" "+beforeleaveDate.get(0).get("signtime");
if (DateUtil.getTime(beforejssj).compareTo(DateUtil.getTime(dateTime)) <=0 && DateUtil.getTime(lastestTime).compareTo(DateUtil.getTime(dateTime)) >=0){
beforeleaveDate.remove(0);
}
}
for (int i=beforeleaveDate.size()-1;i>=0;i--){
//前一天的打卡数据集合里在当天最早打卡日期之后的都属于当天
String dateTime = beforeNeedGetDateList.get(i).get("signdate")+" "+beforeNeedGetDateList.get(i).get("signtime");
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(dateTime)) <=0){
needGetDateList.add(beforeNeedGetDateList.get(i));
}
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(dateTime)) >0 &&
DateUtil.getTime(earliestTime).compareTo(DateUtil.getTime(dateTime)) <=0){
//取前一天
needGetDateList.add(beforeNeedGetDateList.get(i));
break;
}
}
//排序
needGetDateList = needGetDateList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
}
return needGetDateList;
}
}

@ -26,7 +26,7 @@ public class AttendanceAnalysisJob extends BaseCronJob {
log.info("********AttendanceAnalysisJob start********");
String beforeThreeDayDate = DateUtil.getCurrentDateMinusDay(3);
String beforeOneDayDate = DateUtil.getCurrentDateMinusDay(1);
String sql = "select userid,signdate,signtime from hrmschedulesign where isincom=1 and signdate >= ? and signdate <= ?";
String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and signdate >= ? and signdate <= ?";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,beforeThreeDayDate,beforeOneDayDate);

@ -16,6 +16,7 @@ public interface UtilService {
/**
*
*
* @param params
* @return
*/

@ -24,6 +24,7 @@ public class UtilServiceImpl extends Service implements UtilService {
@Override
public Map<String, List<Map<String,Object>>> getSchedulingInFormation(Map<String, Object> params) {
/** 班次信息*/
Map<String,Object> schedulingResultsMap = schedulingResultsService.queryDataTable(params);
List<Map<String,Object>> schedulingResultsList = (List<Map<String,Object>>)schedulingResultsMap.get("data");
Map<String,String> schedulingMap = schedulingResultsList.stream().collect(Collectors.toMap(e-> Util.null2String(e.get("bcxx")), e->Util.null2String(e.get("bcrq"))));
@ -40,6 +41,11 @@ public class UtilServiceImpl extends Service implements UtilService {
dataMap.entrySet().forEach(e -> {
resultMap.put(schedulingMap.get(e.getKey()),e.getValue());
});
/** 加班计划*/
log.info("SchedulingResults : [{}]",resultMap);
return resultMap;
}

@ -33,6 +33,17 @@ public class DateUtil {
return localDateTime.plusDays(day).format(yyyyMMdd);
}
public static String beforeMinutes(String time,long minutes){
LocalDateTime localDateTime = LocalDate.parse(time, yyyyMMddHHmm).atStartOfDay();
return localDateTime.minusDays(minutes).format(yyyyMMddHHmm);
}
public static String AfterMinutes(String time,long minutes){
LocalDateTime localDateTime = LocalDate.parse(time, yyyyMMddHHmm).atStartOfDay();
return localDateTime.plusMinutes(minutes).format(yyyyMMddHHmm);
}
public static String nowMonth(String time){
LocalDateTime localDateTime = LocalDate.parse(time, yyyyMMdd).atStartOfDay();
return localDateTime.format(yyyyMM);
@ -63,13 +74,13 @@ public class DateUtil {
int length = time.length();
switch (length){
case 7:
return LocalDate.parse(time, yyyyMM).atStartOfDay();
return LocalDateTime.parse(time, yyyyMM);
case 10:
return LocalDate.parse(time, yyyyMMdd).atStartOfDay();
return LocalDateTime.parse(time, yyyyMMdd);
case 19:
return LocalDate.parse(time, yyyyMMddHHmmss).atStartOfDay();
return LocalDateTime.parse(time, yyyyMMddHHmmss);
case 16:
return LocalDate.parse(time, yyyyMMddHHmm).atStartOfDay();
return LocalDateTime.parse(time, yyyyMMddHHmm);
}
return null;
}

Binary file not shown.

@ -3,12 +3,15 @@
import com.engine.attendance.attendanceanalysis.cmd.AbsenteeismCmd;
import com.engine.attendance.enums.SystemItemEnum;
import com.engine.common.util.DateUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import weaver.general.Util;
import java.time.LocalDate;
import java.time.ZoneOffset;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.stream.Collectors;
public class Test {
@ -20,26 +23,51 @@ public class Test {
// map.put("zysd","1");
// map.put("zxhsl","60");
// map.put("zdhsl","180");
// map.put("signdate","2023-10-31");
// map.put("signtime","08:55:16");
// Map<String,Object> map2 = new HashMap<>();
// map2.put("xmlx","2");
// map2.put("zysd","1");
// map2.put("zxhsl","60");
// map2.put("zdhsl","180");
// map2.put("zysd","2");
// map2.put("signdate","2023-11-31");
// map2.put("signtime","12:55:16");
// Map<String,Object> map3 = new HashMap<>();
// map3.put("xmlx","2");
// map3.put("xmlx","3");
// map3.put("zysd","1");
// map3.put("zxhsl","0");
// map3.put("zdhsl","60");
// map3.put("signdate","2023-10-31");
// map3.put("signtime","13:55:16");
// attendanceItems.add(map);
// attendanceItems.add(map2);
// attendanceItems.add(map3);
// params.put("attendanceItems",attendanceItems);
// params.put("workfor","1");
// params.put("time","50");
//// params.put("attendanceItems",attendanceItems);
//// params.put("workfor","1");
//// params.put("time","50");
//
//// List<Map<String,Object>> dataList = attendanceItems.stream().filter(e->"1".equals(e.get("zysd"))).collect(Collectors.toList());
//// System.out.println(dataList);
// // Map<String,Object> resultMap = attendanceItems.stream().min(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).get();
//
// List<Map<String,Object>> resultList = attendanceItems.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
// attendanceItems.remove(resultMap);
// System.out.println(resultList);
// new AbsenteeismCmd(params).execute(null);
// for (int i=0;i<5;i++){
// if (i == 3){
// break;
// }
// System.out.println(i);
// }
// System.out.println("aaaa");
System.out.println(DateUtil.AfterDay("2023-10-27",1));
//System.out.println(Util.getIntValue(""));
List<Map<String,Object>> beforeleaveDate = Lists.newArrayList();
for (int i=beforeleaveDate.size()-1;i>=0;i--){
System.out.println(123123);
}
// System.out.println(DateUtil.getTime("2023-10-30 23:00").compareTo(DateUtil.getTime("2023-10-30 22:01")));
//System.out.println(DateUtil.beforeDay("2023-10-31",1));
// List<Map<String,Object>> personGroupOrganizationList = Lists.newArrayList();
// personGroupOrganizationList.add(new HashMap(){{put("dx","4-夜班人员");}});
// personGroupOrganizationList.add(new HashMap(){{put("dx","8-测试条件录入");}});

Loading…
Cancel
Save