diff --git a/src/com/engine/kq/job/SynClockInTimeJob.java b/src/com/engine/kq/job/SynClockInTimeJob.java
index 1a86515..29e16bc 100644
--- a/src/com/engine/kq/job/SynClockInTimeJob.java
+++ b/src/com/engine/kq/job/SynClockInTimeJob.java
@@ -1,11 +1,22 @@
package com.engine.kq.job;
+import com.alibaba.fastjson.JSON;
+import com.engine.kq.biz.KQShiftOnOffWorkSectionComInfo;
+import com.engine.kq.biz.KQShiftRestTimeSectionComInfo;
+import com.engine.kq.biz.KQWorkTime;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.interfaces.schedule.BaseCronJob;
import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
import java.util.*;
/**
@@ -16,6 +27,11 @@ import java.util.*;
* @Description
*/
public class SynClockInTimeJob extends BaseCronJob {
+ /**
+ * 日期时间格式化
+ */
+ private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
+
@Override
public void execute() {
@@ -49,6 +65,11 @@ public class SynClockInTimeJob extends BaseCronJob {
boolean bool = rs1.executeUpdate("update uf_jbtz set zzdksj=?,zwdkrq=? where id=?",earlystarttime,afterendtime,mainid);
if(bool){
rs.writeLog(userid+ " ------------ "+ kssj +" ------------ "+ jsrq +" ---------- "+ bool);
+ // 计算有效时长
+ rs.writeLog("计算有效时长开始");
+ String gzrq = Util.null2String(rs.getString("gzrq"));
+ updateEffectiveDuration(mainid, userid, gzrq, earlystarttime, afterendtime);
+ rs.writeLog("计算有效时长结束");
}
}
}catch(Exception e){
@@ -58,6 +79,172 @@ public class SynClockInTimeJob extends BaseCronJob {
rs.writeLog("---------- end to syn overtime work card time ----------");
}
+
+ /**
+ * 更新加班台账表,有效时长字段
+ *
+ * 导入的加班数据增加根据班次的最早最晚打卡时间取交集,按照系统的加班单和打卡数据取交集处理
+ *
+ * @param mainId 当前数据ID
+ * @param userId 加班人ID
+ * @param gzrq 归属日志
+ * @param earlyStartTime 最早打卡时间
+ * @param afterEndTime 最晚打卡时间
+ */
+ private void updateEffectiveDuration(String mainId, String userId, String gzrq, String earlyStartTime, String afterEndTime) {
+ RecordSet recordSet = new RecordSet();
+ try {
+ KQWorkTime kqWorkTime = new KQWorkTime();
+ Map serialInfo = kqWorkTime.getSerialInfo(userId, gzrq, false, true);
+ recordSet.writeLog("userId==" + userId + ",serialInfo===" + JSON.toJSONString(serialInfo));
+ String serialId = Util.null2String(serialInfo.get(gzrq));
+ List