Merge branch 'dev' into dev-chenwnj

dev-chenwnj
chenwei 1 year ago
commit 2066506e17

@ -2,24 +2,29 @@ package com.engine.kq.biz;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cloudstore.dev.api.util.Util_DataMap;
import com.engine.kq.biz.chain.shiftinfo.ShiftInfoBean; import com.engine.kq.biz.chain.shiftinfo.ShiftInfoBean;
import com.engine.kq.cmd.attendanceButton.ButtonStatusEnum;
import com.engine.kq.entity.KQShiftRuleEntity; import com.engine.kq.entity.KQShiftRuleEntity;
import com.engine.kq.entity.TimeScopeEntity; import com.engine.kq.entity.TimeScopeEntity;
import com.engine.kq.entity.TimeSignScopeEntity;
import com.engine.kq.entity.WorkTimeEntity; import com.engine.kq.entity.WorkTimeEntity;
import com.engine.kq.enums.FlowReportTypeEnum; import com.engine.kq.enums.FlowReportTypeEnum;
import com.engine.kq.log.KQLog; import com.engine.kq.log.KQLog;
import com.engine.kq.util.UtilKQ;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.googlecode.aviator.AviatorEvaluator; import com.googlecode.aviator.AviatorEvaluator;
import com.googlecode.aviator.Expression; import com.googlecode.aviator.Expression;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import weaver.common.DateUtil; import weaver.common.DateUtil;
import weaver.conn.BatchRecordSet; import weaver.conn.BatchRecordSet;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.file.Prop;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.general.InitServer; import weaver.general.InitServer;
import weaver.general.Util; import weaver.general.Util;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -310,9 +315,28 @@ public class KQFormatData extends BaseBean {
int[] dayMins = new int[2880];//一天所有分钟数 int[] dayMins = new int[2880];//一天所有分钟数
Arrays.fill(dayMins, -1); Arrays.fill(dayMins, -1);
// 一天4次打卡单独做判断 // 一天4次打卡单独做判断如果是上午下班打卡和下午上班打卡时间重叠那么上午的下班卡取最早的下午的上班卡取最晚的。用shiftCount是否等于-1判断-1就走标准不重叠。2就表示重叠走新的逻辑
int shiftCount = lsWorkTime == null ? 0 : lsWorkTime.size(); int shiftCount = lsWorkTime == null ? 0 : lsWorkTime.size();
int shiftI = 0; int shiftI = 0;
String signEndDateTimeZero = "";
for (int i = 0; lsWorkTime != null && i < lsWorkTime.size(); i++) {
shiftI = i;
TimeScopeEntity signTimeScope = lsSignTime.get(i);
TimeScopeEntity workTimeScope = lsWorkTime.get(i);
String signBeginDateTime = signTimeScope.getBeginTimeAcross() ? nextDate : kqDate;
if(signTimeScope.isBeginTimePreAcross()){
signBeginDateTime = preDate;
}
signBeginDateTime+=" "+kqTimesArrayComInfo.turn48to24Time(signTimeScope.getBeginTime())+":00";
String signEndDateTime = signTimeScope.getEndTimeAcross() ? nextDate : kqDate;
signEndDateTime+=" "+kqTimesArrayComInfo.turn48to24Time(signTimeScope.getEndTime())+":59";
if (shiftCount == 2 && shiftI == 0) {
signEndDateTimeZero = signEndDateTime;
}
if (shiftCount == 2 && shiftI == 1) {
shiftCount = signBeginDateTime.compareTo(signEndDateTimeZero) <= 0 ? shiftCount : -1;
}
}
for (int i = 0; lsWorkTime != null && i < lsWorkTime.size(); i++) { for (int i = 0; lsWorkTime != null && i < lsWorkTime.size(); i++) {
shiftI = i; shiftI = i;
params = new ArrayList<>(); params = new ArrayList<>();
@ -591,7 +615,7 @@ public class KQFormatData extends BaseBean {
if(signInTimeOutdx4Sign<signInTimeIndx4Sign){ if(signInTimeOutdx4Sign<signInTimeIndx4Sign){
signMins = 1440 + signInTimeOutdx4Sign - signInTimeIndx4Sign; signMins = 1440 + signInTimeOutdx4Sign - signInTimeIndx4Sign;
}else{ }else{
signMins = signInTimeOutdx4Sign - signInTimeIndx4Sign; signMins = 1440 + signInTimeOutdx4Sign - signInTimeIndx4Sign;
} }
} }
}else{ }else{
@ -670,6 +694,12 @@ public class KQFormatData extends BaseBean {
int tmpBeginIdx = beginIdx; int tmpBeginIdx = beginIdx;
int tmpEndIdx = endIdx; int tmpEndIdx = endIdx;
Integer val = 0; Integer val = 0;
if(beginIdx>=workEndIdx){
continue;
}
if(endIdx<=workBeginIdx){
continue;
}
if(leaveInfo.get(newLeaveType)==null){ if(leaveInfo.get(newLeaveType)==null){
leaveInfo.put(newLeaveType,val); leaveInfo.put(newLeaveType,val);
}else{ }else{
@ -854,7 +884,7 @@ public class KQFormatData extends BaseBean {
forgotCheckMins = 0; forgotCheckMins = 0;
forgotBeginWorkCheckMins = 0; forgotBeginWorkCheckMins = 0;
} }
//允许下班不打卡 ,如果上班也没有打卡,那么算漏签 //允许下班不打卡 ,如果上班也没有打卡,那么算上班旷工0.5天
if (isoffdutyfreecheck) { if (isoffdutyfreecheck) {
if (checkIn == 0) {//(无签到),就会有上班漏签,如果有下班卡,那么上班漏签 if (checkIn == 0) {//(无签到),就会有上班漏签,如果有下班卡,那么上班漏签
if(forgotBeginWorkCheckMins==0&&absenteeismMins>0){ if(forgotBeginWorkCheckMins==0&&absenteeismMins>0){

Loading…
Cancel
Save