From e0aab92179d98f08222ac8f6fcc85ca32342ba94 Mon Sep 17 00:00:00 2001 From: chenxu1234 <1401584727@qq.com> Date: Tue, 23 Apr 2024 17:45:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=91=E6=81=AF=E7=8F=AD=E6=89=A3=E9=99=A4?= =?UTF-8?q?=E4=BC=91=E6=81=AF=E6=97=B6=E9=95=BF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/kq/biz/KQOverTimeRuleCalBiz.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/com/engine/kq/biz/KQOverTimeRuleCalBiz.java b/src/com/engine/kq/biz/KQOverTimeRuleCalBiz.java index bf17c34..51cba68 100644 --- a/src/com/engine/kq/biz/KQOverTimeRuleCalBiz.java +++ b/src/com/engine/kq/biz/KQOverTimeRuleCalBiz.java @@ -417,6 +417,8 @@ public class KQOverTimeRuleCalBiz { // } int across_mins = 0; + String fromTimeCheck = ""; + String toTimeCheck = ""; for(int i = 0 ; i < cross_time_list.size() ;) { int cross_fromtime_index = cross_time_list.get(i); int cross_totime_index = cross_time_list.get(i + 1); @@ -449,7 +451,8 @@ public class KQOverTimeRuleCalBiz { String cross_totime = kqTimesArrayComInfo.getTimesByArrayindex(flow_cross_totime_index); String cross_fromdate = realSplitDate; String cross_todate = realSplitDate; - + fromTimeCheck = cross_fromtime; + toTimeCheck = cross_totime; boolean needSplitByTime = false; if(needSplitByTime){ // 按照加班时长转调休的 时长设置 这个逻辑如果后面要开启来可以直接用的 @@ -558,11 +561,19 @@ public class KQOverTimeRuleCalBiz { String searIdFrom = workTimeEntity.getSerialId(); //如果是休班次,加班类型为休息日加班 if (isRestSerial(searIdFrom,rs)) { - kqLog.info("原始across_mins:"+across_mins); + kqLog.info("原始across_mins:"+across_mins+"fromTimeCheck:"+fromTimeCheck+"toTimeCheck:"+toTimeCheck); String signinTimeNew = kqTimesArrayComInfo.turn48to24Time(signinTime); String signoutTimeNew = kqTimesArrayComInfo.turn48to24Time(signoutTime); + if(StringUtils.isNotBlank(fromTimeCheck)){ + signinTimeNew = fromTimeCheck; + } + + if(StringUtils.isNotBlank(toTimeCheck)){ + signoutTimeNew = toTimeCheck; + } Double newHours = recalculateOverTime(divide(String.valueOf(across_mins),"60"),searIdFrom, signinDate, signinTimeNew, signoutDate, signoutTimeNew, rs, singleRs); - across_mins = newHours.intValue()*60; + Double newMinsBy = newHours*60; + across_mins = newMinsBy.intValue(); kqLog.info("newHours:"+newHours+"mins:"+across_mins); } @@ -1014,7 +1025,8 @@ public class KQOverTimeRuleCalBiz { String signinTimeNew = kqTimesArrayComInfo.turn48to24Time(signinTime); String signoutTimeNew = kqTimesArrayComInfo.turn48to24Time(signoutTime); Double newHours = recalculateOverTime(divide(String.valueOf(mins),"60"),searIdFrom, signinDate, signinTimeNew, signoutDate, signoutTimeNew, rs, singleRs); - mins = newHours.intValue()*60; + Double newMinsBy = newHours*60; + mins = newMinsBy.intValue(); kqLog.info("newHours:"+newHours+"mins:"+mins); } @@ -3527,6 +3539,4 @@ public class KQOverTimeRuleCalBiz { bb.writeLog("====baseWriteLog-data:"+data); } - - }