From dee385500397b52cc6d8f639be15671bbdebb41e Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 17 May 2023 14:22:03 +0800 Subject: [PATCH] =?UTF-8?q?KQFormatData=20=E7=94=B3=E8=AF=B7=E6=BA=90?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/kq/biz/KQFormatData.java | 361 ++++++++++++------------ 1 file changed, 180 insertions(+), 181 deletions(-) diff --git a/src/com/engine/kq/biz/KQFormatData.java b/src/com/engine/kq/biz/KQFormatData.java index 60c5a95..f9eca7d 100644 --- a/src/com/engine/kq/biz/KQFormatData.java +++ b/src/com/engine/kq/biz/KQFormatData.java @@ -31,7 +31,7 @@ public class KQFormatData extends BaseBean { private String today = DateUtil.getCurrentDate(); private KQLog kqLog = new KQLog(); private boolean writeLog = false; - private LinkedHashMap logInfo = new LinkedHashMap<>(); + private LinkedHashMap logInfo = new LinkedHashMap<>(); /*** * 该方法不允许直接调用 @@ -51,7 +51,7 @@ public class KQFormatData extends BaseBean { try { kqLog.info("formatKqDate in userId=" + userId + "kqDate==" + kqDate); if (DateUtil.timeInterval(kqDate, today) < 0) {//今天之后的无需处理 - kqLog.info("今天之后的无需处理的数据:resourceid==" + userId + "kqdate==" + kqDate + "today==" + today); + kqLog.info("今天之后的无需处理的数据:resourceid=="+userId+"kqdate=="+kqDate+"today=="+today); return resultMap; } String uuid = UUID.randomUUID().toString(); @@ -62,37 +62,37 @@ public class KQFormatData extends BaseBean { KQFlowDataBiz kqFlowDataBiz = new KQFlowDataBiz.FlowDataParamBuilder().resourceidParam(userId).fromDateParam(kqDate).toDateParam(kqDateNext).build(); Map workFlowInfo = new HashMap<>();//userid|date--工作流程 - kqFlowDataBiz.getAllFlowData(workFlowInfo, false); + kqFlowDataBiz.getAllFlowData(workFlowInfo,false); WorkTimeEntity workTime = kqWorkTime.getWorkTime(userId, kqDate); - kqLog.info("userId:" + userId + ":kqDate:" + kqDate + ":formatKqDate workTime=" + JSONObject.toJSONString(workTime) + "::uuid::" + uuid); - kqLog.info("userId:" + userId + ":kqDate:" + kqDate + ":formatKqDate workFlowInfo=" + JSONObject.toJSONString(workFlowInfo) + "::uuid::" + uuid); - - if (this.writeLog) { - logInfo.put("userId", userId); - logInfo.put("kqDate", kqDate); - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(16253, weaver.general.ThreadVarLanguage.getLang()) + "", workTime); - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(126871, weaver.general.ThreadVarLanguage.getLang()) + "", workFlowInfo); + kqLog.info("userId:"+userId+":kqDate:"+kqDate+":formatKqDate workTime=" + JSONObject.toJSONString(workTime)+"::uuid::"+uuid); + kqLog.info("userId:"+userId+":kqDate:"+kqDate+":formatKqDate workFlowInfo=" + JSONObject.toJSONString(workFlowInfo)+"::uuid::"+uuid); + + if(this.writeLog) { + logInfo.put("userId",userId); + logInfo.put("kqDate",kqDate); + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(16253,weaver.general.ThreadVarLanguage.getLang())+"",workTime); + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(126871,weaver.general.ThreadVarLanguage.getLang())+"",workFlowInfo); } new KQFormatBiz().delFormatData(userId, kqDate); String excludecount = Util.null2String(kqGroupComInfo.getExcludecount(workTime.getGroupId()));//是否参与考勤报表统计 if (workTime.getIsExclude()) {//无需考勤人员没有异常状态 - if (!excludecount.equals("1")) { - kqLog.info("无需考勤人员没有异常状态 workTime.getIsExclude()=" + workTime.getIsExclude() + "excludecount==" + excludecount); + if(!excludecount.equals("1")){ + kqLog.info("无需考勤人员没有异常状态 workTime.getIsExclude()="+workTime.getIsExclude()+"excludecount=="+excludecount); return resultMap; } } - if (Util.null2String(workTime.getGroupId()).length() == 0) { + if( Util.null2String(workTime.getGroupId()).length()==0){ //没有考勤组不需格式化 return resultMap; } if (workTime == null || workTime.getWorkMins() == 0) { kqLog.info("workTime == null || workTime.getWorkMins() == 0 插入空记录"); nonlsParam = new ArrayList<>(); - formatNonWork(userId, kqDate, nonlsParam, workTime, workFlowInfo); + formatNonWork(userId, kqDate,nonlsParam,workTime, workFlowInfo); - if (!nonlsParam.isEmpty()) { + if(!nonlsParam.isEmpty()){ sql = " insert into kq_format_detail(resourceid,kqdate,groupid,serialnumber,signindate,signintime,signinid,signoutdate,signouttime,signoutid,leaveMins,leaveinfo,evectionMins,outMins)values(?,?,?,?,?,?,?,?,?,?,?,?,?,?) "; rs.executeUpdate(sql, nonlsParam); @@ -115,8 +115,8 @@ public class KQFormatData extends BaseBean { " group by resourceid,kqdate,b.subcompanyid1,b.departmentid,b.jobtitle,groupid,serialid,workmins"; rs.executeUpdate(sql, userId, kqDate); } - } else { - Map definedFieldInfo = new KQFormatBiz().getDefinedField(); + }else{ + Map definedFieldInfo = new KQFormatBiz().getDefinedField(); String definedField = ""; String definedParam = ""; String definedParamSum = ""; @@ -126,7 +126,7 @@ public class KQFormatData extends BaseBean { definedField = Util.null2String(definedFieldInfo.get("definedField")); definedParam = Util.null2String(definedFieldInfo.get("definedParam")); definedParamSum = Util.null2String(definedFieldInfo.get("definedParamSum")); - lsParam.addAll(format(userId, kqDate, workTime, workFlowInfo, uuid)); + lsParam.addAll(format(userId, kqDate, workTime, workFlowInfo,uuid)); } if (lsParam.size() > 0) { @@ -134,18 +134,18 @@ public class KQFormatData extends BaseBean { " resourceid,kqdate,groupid,serialid,serialnumber,workbegindate,workbegintime,workenddate,workendtime,workmins," + " signindate,signintime,signinid,signoutdate,signouttime,signoutid,signMins," + " attendanceMins,belatemins,graveBeLateMins,leaveearlymins,graveLeaveEarlyMins,absenteeismmins,forgotcheckMins," + - " leaveMins,leaveinfo,evectionMins,outMins,forgotbeginworkcheckmins,otherinfo" + (definedField.length() > 0 ? "," + definedField + "" : "") + ") " + - " values(?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?,?" + (definedField.length() > 0 ? "," + definedParam + "" : "") + ")"; + " leaveMins,leaveinfo,evectionMins,outMins,forgotbeginworkcheckmins,otherinfo"+(definedField.length()>0?","+definedField+"":"")+") " + + " values(?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?,?"+(definedField.length()>0?","+definedParam+"":"")+")"; for (int i = 0; i < lsParam.size(); i++) { List param = lsParam.get(i); boolean isok = rs.executeUpdate(sql, param); - kqLog.info("插入记录:userId:" + userId + ":kqDate:" + kqDate + ":param:" + JSON.toJSONString(param) + ":isok:" + isok + "::uuid::" + uuid); + kqLog.info("插入记录:userId:"+userId+":kqDate:"+kqDate+":param:"+JSON.toJSONString(param)+":isok:"+isok+"::uuid::"+uuid); } sql = " insert into kq_format_total(resourceid,kqdate,subcompanyid,departmentid,jobtitle,groupid,serialid,workdays,workmins," + " attendancedays,attendancemins,signdays,signmins,belate,belatemins,gravebelate,gravebelatemins,leaveeearly,leaveearlymins,graveleaveearly," + " graveleaveearlymins,absenteeism,absenteeismmins,forgotcheck,forgotcheckmins," + - " leaveMins,evectionMins,outMins,forgotbeginworkcheck,forgotbeginworkcheckmins" + (definedField.length() > 0 ? "," + definedField + "" : "") + ") " + + " leaveMins,evectionMins,outMins,forgotbeginworkcheck,forgotbeginworkcheckmins"+(definedField.length()>0?","+definedField+"":"")+") " + " select a.resourceid,kqdate,b.subcompanyid1,b.departmentid,b.jobtitle,groupid,serialid," + " case when sum(workmins)>0 then 1 end as workdays, sum(workmins) as workmins," + " cast(sum(attendanceMins)AS decimal(10, 2))/sum(workmins) as attendancedays, sum(attendanceMins) as attendanceMins," + @@ -158,14 +158,14 @@ public class KQFormatData extends BaseBean { " sum(case when forgotcheckmins> 0 then 1 else 0 end) as forgotcheck,sum(forgotcheckmins) as forgotcheckmins,sum(leaveMins) as leaveMins," + " sum(evectionMins) as evectionMins,sum(outMins) as outMins, " + " sum(case when forgotbeginworkcheckmins> 0 then 1 else 0 end) as forgotbeginworkcheck,sum(forgotbeginworkcheckmins) as forgotbeginworkcheckmins " + - (definedField.length() > 0 ? "," + definedParamSum + "" : "") + + (definedField.length()>0?","+definedParamSum+"":"")+ " from kq_format_detail a, hrmresource b" + " where a.resourceid = b.id and resourceid = ? and kqdate=?" + " group by resourceid,kqdate,b.subcompanyid1,b.departmentid,b.jobtitle,groupid,serialid"; rs.executeUpdate(sql, userId, kqDate); } } - } catch (Exception e) { + }catch (Exception e) { writeLog(e); kqLog.info(e); } @@ -178,7 +178,7 @@ public class KQFormatData extends BaseBean { List params = null; try { KQSettingsComInfo kqSettingsComInfo = new KQSettingsComInfo(); - String nosign_is_absent = Util.null2String(kqSettingsComInfo.getMain_val("nosign_is_absent"), "1"); + String nosign_is_absent = Util.null2String(kqSettingsComInfo.getMain_val("nosign_is_absent"),"1"); KQTimesArrayComInfo kqTimesArrayComInfo = new KQTimesArrayComInfo(); KQFormatShiftRule kqFormatShiftRule = new KQFormatShiftRule(); String preDate = DateUtil.addDate(kqDate, -1);//上一天日期 @@ -186,7 +186,7 @@ public class KQFormatData extends BaseBean { String dateKey = userId + "|" + kqDate; String nextDateKey = userId + "|" + nextDate; ArrayList hostIps = InitServer.getRealIp(); - kqLog.info("format in >>>>>userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid); + kqLog.info("format in >>>>>userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid); boolean oneSign = false; List lsSignTime = new ArrayList<>(); List lsWorkTime = new ArrayList<>(); @@ -197,7 +197,7 @@ public class KQFormatData extends BaseBean { lsSignTime = workTime.getSignTime();//允许打卡时间 lsWorkTime = workTime.getWorkTime();//工作时间 lsRestTime = workTime.getRestTime();//休息时段时间 - oneSign = lsWorkTime != null && lsWorkTime.size() == 1; + oneSign = lsWorkTime!=null&&lsWorkTime.size()==1; } int[] dayMins = new int[2880];//一天所有分钟数 @@ -206,7 +206,7 @@ public class KQFormatData extends BaseBean { params = new ArrayList<>(); TimeScopeEntity signTimeScope = lsSignTime.get(i); TimeScopeEntity workTimeScope = lsWorkTime.get(i); - TimeScopeEntity restTimeScope = lsRestTime.isEmpty() ? null : lsRestTime.get(i); + TimeScopeEntity restTimeScope = lsRestTime.isEmpty()?null:lsRestTime.get(i); String workBeginTime = Util.null2String(workTimeScope.getBeginTime()); String ori_workBeginTime = workBeginTime; int workBeginIdx = kqTimesArrayComInfo.getArrayindexByTimes(workBeginTime); @@ -243,8 +243,8 @@ public class KQFormatData extends BaseBean { int graveLeaveEarlyMins = 0; int absenteeismMins = 0; int leaveMins = 0;//请假时长 - Map leaveInfo = new HashMap<>();//请假信息 - Map otherinfo = new HashMap<>();//存一些用得到的信息 + Map leaveInfo = new HashMap<>();//请假信息 + Map otherinfo = new HashMap<>();//存一些用得到的信息 int evectionMins = 0;//出差时长 int outMins = 0;//公出时长 int otherMins = 0;//异常流程时长 @@ -258,24 +258,24 @@ public class KQFormatData extends BaseBean { int signInTimeOutdx4Sign = -1; String signBeginDateTime = signTimeScope.getBeginTimeAcross() ? nextDate : kqDate; - if (signTimeScope.isBeginTimePreAcross()) { + if(signTimeScope.isBeginTimePreAcross()){ signBeginDateTime = preDate; } - signBeginDateTime += " " + kqTimesArrayComInfo.turn48to24Time(signTimeScope.getBeginTime()) + ":00"; + signBeginDateTime+=" "+kqTimesArrayComInfo.turn48to24Time(signTimeScope.getBeginTime())+":00"; String signEndDateTime = signTimeScope.getEndTimeAcross() ? nextDate : kqDate; - signEndDateTime += " " + kqTimesArrayComInfo.turn48to24Time(signTimeScope.getEndTime()) + ":59"; + signEndDateTime+=" "+kqTimesArrayComInfo.turn48to24Time(signTimeScope.getEndTime())+":59"; String workBeginDateTime = workTimeScope.getBeginTimeAcross() ? nextDate : kqDate; - workBeginDateTime += " " + kqTimesArrayComInfo.turn48to24Time(workTimeScope.getBeginTime()) + ":00"; + workBeginDateTime+=" "+kqTimesArrayComInfo.turn48to24Time(workTimeScope.getBeginTime())+":00"; String workEndDateTime = workTimeScope.getEndTimeAcross() ? nextDate : kqDate; - workEndDateTime += " " + kqTimesArrayComInfo.turn48to24Time(workTimeScope.getEndTime()) + ":00"; + workEndDateTime+=" "+kqTimesArrayComInfo.turn48to24Time(workTimeScope.getEndTime())+":00"; - kqLog.info("signBeginDateTime" + signBeginDateTime + "::userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid); - kqLog.info("signEndDateTime" + signEndDateTime + "::userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid); - kqLog.info("workBeginDateTime" + workBeginDateTime + "::userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid); - kqLog.info("workEndDateTime" + workEndDateTime + "::userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid); + kqLog.info("signBeginDateTime" + signBeginDateTime+"::userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid); + kqLog.info("signEndDateTime" + signEndDateTime+"::userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid); + kqLog.info("workBeginDateTime" + workBeginDateTime+"::userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid); + kqLog.info("workEndDateTime" + workEndDateTime+"::userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid); Map shifRuleMap = Maps.newHashMap(); - if (oneSign) { + if(oneSign){ //个性化设置只支持一天一次上下班 ShiftInfoBean shiftInfoBean = new ShiftInfoBean(); shiftInfoBean.setSplitDate(kqDate); @@ -283,28 +283,28 @@ public class KQFormatData extends BaseBean { shiftInfoBean.setSignTime(lsSignTime); shiftInfoBean.setWorkTime(lsWorkTime); List logList = Lists.newArrayList(); - KQShiftRuleInfoBiz.getShiftRuleInfo(shiftInfoBean, userId, shifRuleMap, logList); - if (!shifRuleMap.isEmpty()) { - if (!logList.isEmpty()) { + KQShiftRuleInfoBiz.getShiftRuleInfo(shiftInfoBean, userId, shifRuleMap,logList); + if(!shifRuleMap.isEmpty()){ + if(!logList.isEmpty()){ otherinfo.put("logList", logList); } otherinfo.put("shiftRule", shifRuleMap); - if (shifRuleMap.containsKey("shift_beginworktime")) { + if(shifRuleMap.containsKey("shift_beginworktime")){ String shift_beginworktime = Util.null2String(shifRuleMap.get("shift_beginworktime")); - if (shift_beginworktime.length() > 0) { + if(shift_beginworktime.length() > 0){ workBeginTime = Util.null2String(shift_beginworktime); workBeginIdx = kqTimesArrayComInfo.getArrayindexByTimes(workBeginTime); workTimeScope.setBeginTime(workBeginTime); - workTimeScope.setBeginTimeAcross(workBeginIdx >= 1440 ? true : false); + workTimeScope.setBeginTimeAcross(workBeginIdx>=1440?true:false); } } - if (shifRuleMap.containsKey("shift_endworktime")) { + if(shifRuleMap.containsKey("shift_endworktime")){ String shift_endworktime = Util.null2String(shifRuleMap.get("shift_endworktime")); - if (shift_endworktime.length() > 0) { + if(shift_endworktime.length() > 0){ workEndTime = Util.null2String(shift_endworktime); workEndIdx = kqTimesArrayComInfo.getArrayindexByTimes(workEndTime); workTimeScope.setEndTime(workEndTime); - workTimeScope.setEndTimeAcross(workEndIdx >= 1440 ? true : false); + workTimeScope.setEndTimeAcross(workEndIdx>=1440?true:false); } } } @@ -313,14 +313,14 @@ public class KQFormatData extends BaseBean { kqLog.info("个性化之后 workBeginDateTime" + workBeginDateTime); kqLog.info("个性化之后 workEndDateTime" + workEndDateTime); } - List lsCheckInfo = new KQFormatSignData().getSignInfo(userId, signTimeScope, workTimeScope, kqDate, preDate, nextDate, kqTimesArrayComInfo, hostIps, uuid); - kqLog.info("lsCheckInfo" + JSONObject.toJSONString(lsCheckInfo) + "::userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid); - if (this.writeLog) { - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(10005297, weaver.general.ThreadVarLanguage.getLang()) + "", signBeginDateTime); - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(10005298, weaver.general.ThreadVarLanguage.getLang()) + "", signEndDateTime); - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(1940, weaver.general.ThreadVarLanguage.getLang()) + "", workBeginDateTime); - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(10005299, weaver.general.ThreadVarLanguage.getLang()) + "", workEndDateTime); - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(10005300, weaver.general.ThreadVarLanguage.getLang()) + "", lsCheckInfo); + List lsCheckInfo = new KQFormatSignData().getSignInfo(userId,signTimeScope,workTimeScope,kqDate,preDate,nextDate,kqTimesArrayComInfo,hostIps,uuid); + kqLog.info("lsCheckInfo" + JSONObject.toJSONString(lsCheckInfo)+"::userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid); + if(this.writeLog) { + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10005297,weaver.general.ThreadVarLanguage.getLang())+"",signBeginDateTime); + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10005298,weaver.general.ThreadVarLanguage.getLang())+"",signEndDateTime); + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(1940,weaver.general.ThreadVarLanguage.getLang())+"",workBeginDateTime); + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10005299,weaver.general.ThreadVarLanguage.getLang())+"",workEndDateTime); + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10005300,weaver.general.ThreadVarLanguage.getLang())+"",lsCheckInfo); } for (int j = 0; lsCheckInfo != null && j < lsCheckInfo.size(); j++) { Map checkInfo = (Map) lsCheckInfo.get(j); @@ -332,122 +332,122 @@ public class KQFormatData extends BaseBean { String deduct_signofftime = Util.null2String(checkInfo.get("deduct_signofftime")); String flow_signInTime = ""; String flow_signOutTime = ""; - if (kqDate.compareTo(signDate) < 0) endIdx += 1440; + if(kqDate.compareTo(signDate) < 0)endIdx+=1440; if (signTime.length() > 8) { signTime = signTime.substring(0, 8); } if (checkInfo.get("signType").equals("1")) {//签到 checkIn++; //如果流程抵扣存在,打卡时长也存在,那么相互比较得到出勤时长和打卡时长 暂不这样处理,还是按照漏签的逻辑来处理 - if (signTime.length() > 0) { + if(signTime.length() > 0){ signInTimeIndx4Sign = kqTimesArrayComInfo.getArrayindexByTimes(signTime); } signInId = signId; signInDate = signDate; signInTime = signTime; signInTimeIndx = kqTimesArrayComInfo.getArrayindexByTimes(signInTime); - if (deduct_signintime.length() > 0) { - if (signTime.length() > 0) { - if (deduct_signintime.compareTo(signTime) < 0) { + if(deduct_signintime.length() > 0){ + if(signTime.length() > 0){ + if(deduct_signintime.compareTo(signTime) < 0){ flow_signInTime = deduct_signintime; } - } else { + }else{ flow_signInTime = deduct_signintime; } } - if (flow_signInTime.length() > 0) { + if(flow_signInTime.length() > 0){ flowSignInTimeIndx = kqTimesArrayComInfo.getArrayindexByTimes(flow_signInTime); } - if (kqDate.compareTo(signDate) < 0) { + if(kqDate.compareTo(signDate) < 0) { signInTimeIndx += 1440; flowSignInTimeIndx += 1440; - } else if (kqDate.compareTo(signDate) > 0) { + }else if(kqDate.compareTo(signDate) > 0){ signInTimeIndx -= 1440; - signInTimeIndx = signInTimeIndx < 0 ? 0 : signInTimeIndx; + signInTimeIndx = signInTimeIndx < 0 ? 0 : signInTimeIndx; flowSignInTimeIndx -= 1440; - flowSignInTimeIndx = flowSignInTimeIndx < 0 ? 0 : flowSignInTimeIndx; + flowSignInTimeIndx = flowSignInTimeIndx < 0 ? 0 : flowSignInTimeIndx; } - if (oneSign) { - if (workBeginIdx > signInTimeIndx) { - earlyInMins = workBeginIdx - signInTimeIndx; + if(oneSign){ + if(workBeginIdx>signInTimeIndx) { + earlyInMins = workBeginIdx-signInTimeIndx; } } } else if (checkInfo.get("signType").equals("2")) {//签退 checkOut++; //如果流程抵扣存在,打卡时长也存在,那么相互比较得到出勤时长和打卡时长 暂不这样处理,还是按照漏签的逻辑来处理 - if (signTime.length() > 0) { + if(signTime.length() > 0){ signInTimeOutdx4Sign = kqTimesArrayComInfo.getArrayindexByTimes(signTime); } signOutId = signId; signOutDate = signDate; signOutTime = signTime; signInTimeOutdx = kqTimesArrayComInfo.getArrayindexByTimes(signOutTime); - if (deduct_signofftime.length() > 0) { - if (signTime.length() > 0) { - if (deduct_signofftime.compareTo(signTime) > 0) { + if(deduct_signofftime.length() > 0){ + if(signTime.length() > 0){ + if(deduct_signofftime.compareTo(signTime) > 0){ flow_signOutTime = deduct_signofftime; } - } else { + }else{ flow_signOutTime = deduct_signofftime; } } - if (flow_signOutTime.length() > 0) { + if(flow_signOutTime.length() > 0){ signInTimeOutdx = kqTimesArrayComInfo.getArrayindexByTimes(flow_signOutTime); } - if (kqDate.compareTo(signDate) < 0) { - signInTimeOutdx += 1440; - } else if (kqDate.compareTo(signDate) > 0) { + if(kqDate.compareTo(signDate) < 0){ + signInTimeOutdx+=1440; + }else if(kqDate.compareTo(signDate) > 0){ signInTimeOutdx -= 1440; - signInTimeOutdx = signInTimeOutdx < 0 ? 0 : signInTimeOutdx; + signInTimeOutdx = signInTimeOutdx < 0 ? 0 : signInTimeOutdx; } - if (oneSign) { - if (signInTimeOutdx > workEndIdx) { - lateOutMins = signInTimeOutdx - workEndIdx; + if(oneSign){ + if(signInTimeOutdx>workEndIdx) { + lateOutMins = signInTimeOutdx-workEndIdx; } } } if (checkInfo.get("signType").equals("1")) {//签到 - if (signTime.length() > 0) { - String signMinTime = signTime.substring(0, 5) + ":00"; + if(signTime.length() > 0){ + String signMinTime = signTime.substring(0,5)+":00"; endIdx = kqTimesArrayComInfo.getArrayindexByTimes(signTime); - if (signTime.compareTo(signMinTime) > 0) { + if(signTime.compareTo(signMinTime) > 0){ //如果签到时间是带秒的且是迟到,那么签到时间多一秒和多一分钟是一样的 endIdx += 1; signInTimeIndx = signInTimeIndx + 1;//如果是带秒的打卡数据不应该影响流程抵扣的数据的下标 } - if (kqDate.compareTo(signDate) < 0) { - endIdx += 1440; - } else if (kqDate.compareTo(signDate) > 0) { + if(kqDate.compareTo(signDate) < 0){ + endIdx+=1440; + }else if(kqDate.compareTo(signDate) > 0){ endIdx -= 1440; - endIdx = endIdx < 0 ? 0 : endIdx; + endIdx = endIdx < 0 ? 0 : endIdx; } if (endIdx > workBeginIdx) { - if (flow_signInTime.length() > 0) { - if (flowSignInTimeIndx > workBeginIdx) { + if(flow_signInTime.length() > 0){ + if(flowSignInTimeIndx > workBeginIdx){ //增加一个判断,流程抵扣打卡如果开启了并且有抵扣上班打卡,那么也就不是迟到了 Arrays.fill(dayMins, workBeginIdx, endIdx, 2);//迟到时段标识 2 } - } else { + }else{ Arrays.fill(dayMins, workBeginIdx, endIdx, 2);//迟到时段标识 2 } } } } else if (checkInfo.get("signType").equals("2")) {//签退 - if (signTime.length() > 0) { + if(signTime.length() > 0){ beginIdx = kqTimesArrayComInfo.getArrayindexByTimes(signTime); - if (StringUtils.isNotBlank(signDate) && signDate.compareTo(kqDate) > 0) { - beginIdx += 1440; - } else if (kqDate.compareTo(signDate) > 0) { + if(StringUtils.isNotBlank(signDate) && signDate.compareTo(kqDate) > 0){ + beginIdx+=1440; + }else if(kqDate.compareTo(signDate) > 0){ beginIdx -= 1440; - beginIdx = beginIdx < 0 ? 0 : beginIdx; + beginIdx = beginIdx < 0 ? 0 : beginIdx; } if (workEndIdx > beginIdx) { - if (flow_signOutTime.length() > 0) { + if(flow_signOutTime.length() > 0){ if (workEndIdx > signInTimeOutdx) { //增加一个判断,流程抵扣打卡如果开启了并且有抵扣下班打卡,那么也就不是早退了 Arrays.fill(dayMins, beginIdx, workEndIdx, 3);//早退时段标识 3 } - } else { + }else{ Arrays.fill(dayMins, beginIdx, workEndIdx, 3);//早退时段标识 3 } @@ -457,22 +457,22 @@ public class KQFormatData extends BaseBean { } //打卡时长=签退时间-签到时间(有签到签退才计算) - if (checkIn == 1 && checkOut == 1) { - if (signInTimeIndx4Sign > -1 && signInTimeOutdx4Sign > -1) { - if (DateUtil.dayDiff(signInDate, signOutDate) == 0) {//同一天签到和签退 - signMins = signInTimeOutdx4Sign - signInTimeIndx4Sign; - } else if (DateUtil.dayDiff(signInDate, signOutDate) == 1) {//第一天签到,第二天签退 - if (signInTimeOutdx4Sign < signInTimeIndx4Sign) { + if(checkIn==1&&checkOut==1){ + if(signInTimeIndx4Sign > -1 && signInTimeOutdx4Sign > -1){ + if(DateUtil.dayDiff(signInDate,signOutDate)==0){//同一天签到和签退 + signMins=signInTimeOutdx4Sign - signInTimeIndx4Sign; + }else if(DateUtil.dayDiff(signInDate,signOutDate)==1) {//第一天签到,第二天签退 + if(signInTimeOutdx4Sign 0) {//漏签(有签到无签退) - if (signInTimeIndx > -1) { + if(signInTimeIndx > -1){ if (workEndIdx > signInTimeIndx) { //漏签就是从本次时段内的打卡到下班点 //上班漏签应该是从签到到签到结束时间,不过这里可以不用管,只是一个次数 @@ -492,7 +492,7 @@ public class KQFormatData extends BaseBean { //签到晚于本次时段结束时间,也算漏签 forgotCheckMins++; } - } else if (flowSignInTimeIndx > -1) { + }else if(flowSignInTimeIndx > -1){ if (workEndIdx > flowSignInTimeIndx) { //漏签就是从本次时段内的打卡到下班点 //上班漏签应该是从签到到签到结束时间,不过这里可以不用管,只是一个次数 @@ -505,11 +505,11 @@ public class KQFormatData extends BaseBean { } if (checkIn == 0 && checkOut > 0) {//漏签(有签退无签到) - if (signInTimeOutdx > 0) { - if (workBeginIdx < signInTimeOutdx) { + if(signInTimeOutdx > 0){ + if(workBeginIdx < signInTimeOutdx) { //下班漏签应该是从签退到签退开始时间,不过这里可以不用管,只是一个次数 Arrays.fill(dayMins, workBeginIdx, signInTimeOutdx, 66);//下班漏签时段标识 66,66呼应前面的漏签的6 - } else { + }else{ //这种数据理论上不会存在,也记下吧 forgotBeginWorkCheckMins++; } @@ -533,29 +533,29 @@ public class KQFormatData extends BaseBean { continue; } - if (flowType.equals(FlowReportTypeEnum.EVECTION.getFlowType())) { + if(flowType.equals(FlowReportTypeEnum.EVECTION.getFlowType())){ Arrays.fill(dayMins, beginIdx, endIdx, 7);//出差抵扣时段标识 7 - } else if (flowType.equals(FlowReportTypeEnum.OUT.getFlowType())) { + }else if(flowType.equals(FlowReportTypeEnum.OUT.getFlowType())){ Arrays.fill(dayMins, beginIdx, endIdx, 8);//公出抵扣时段标识 8 - } else if (flowType.equalsIgnoreCase(FlowReportTypeEnum.LEAVE.getFlowType())) { + }else if(flowType.equalsIgnoreCase(FlowReportTypeEnum.LEAVE.getFlowType())){ if (endIdx > beginIdx) { Arrays.fill(dayMins, beginIdx, endIdx, 5);//流程抵扣时段标识 5 int tmpBeginIdx = beginIdx; int tmpEndIdx = endIdx; Integer val = 0; - if (leaveInfo.get(newLeaveType) == null) { - leaveInfo.put(newLeaveType, val); - } else { + if(leaveInfo.get(newLeaveType)==null){ + leaveInfo.put(newLeaveType,val); + }else{ val = (Integer) leaveInfo.get(newLeaveType); } - if (beginIdx < workBeginIdx) tmpBeginIdx = workBeginIdx; - if (endIdx > workEndIdx) tmpEndIdx = endIdx; - if (tmpEndIdx > tmpBeginIdx) { - leaveInfo.put(newLeaveType, val + (tmpEndIdx - tmpBeginIdx)); + if(beginIdxworkEndIdx)tmpEndIdx=endIdx; + if(tmpEndIdx>tmpBeginIdx){ + leaveInfo.put(newLeaveType,val+(tmpEndIdx-tmpBeginIdx)); } } - } else { + }else{ if (endIdx > beginIdx) { Arrays.fill(dayMins, beginIdx, endIdx, 99);//异常流程抵扣时段标识99 } @@ -572,21 +572,21 @@ public class KQFormatData extends BaseBean { for (int j = 0; workFlow != null && j < workFlow.size(); j++) { Map data = (Map) workFlow.get(j); String flowType = Util.null2String(data.get("flowtype")); - beginIdx = kqTimesArrayComInfo.getArrayindexByTimes(Util.null2String(data.get("begintime"))) + 1440; - endIdx = kqTimesArrayComInfo.getArrayindexByTimes(Util.null2String(data.get("endtime"))) + 1440; - if (endIdx >= 2880) { + beginIdx = kqTimesArrayComInfo.getArrayindexByTimes(Util.null2String(data.get("begintime")))+1440; + endIdx = kqTimesArrayComInfo.getArrayindexByTimes(Util.null2String(data.get("endtime")))+1440; + if(endIdx>=2880){ endIdx = 2880; } - if (flowType.equals(FlowReportTypeEnum.EVECTION.getFlowType())) { + if(flowType.equals(FlowReportTypeEnum.EVECTION.getFlowType())){ Arrays.fill(dayMins, beginIdx, endIdx, 7);//出差抵扣时段标识 7 - } else if (flowType.equals(FlowReportTypeEnum.OUT.getFlowType())) { + }else if(flowType.equals(FlowReportTypeEnum.OUT.getFlowType())){ Arrays.fill(dayMins, beginIdx, endIdx, 8);//公出抵扣时段标识 8 - } else if (flowType.equalsIgnoreCase(FlowReportTypeEnum.LEAVE.getFlowType())) { + }else if(flowType.equalsIgnoreCase(FlowReportTypeEnum.LEAVE.getFlowType())){ if (endIdx > beginIdx) { Arrays.fill(dayMins, beginIdx, endIdx, 5);//流程抵扣时段标识 5 } - } else { + }else{ if (endIdx > beginIdx) { Arrays.fill(dayMins, beginIdx, endIdx, 99);//异常流程抵扣时段标识99 } @@ -594,14 +594,14 @@ public class KQFormatData extends BaseBean { } } - if (restTimeScope != null) { + if (restTimeScope!=null) { String restBeginTime = Util.null2String(restTimeScope.getBeginTime()); String restEndTime = Util.null2String(restTimeScope.getEndTime()); beginIdx = kqTimesArrayComInfo.getArrayindexByTimes(restBeginTime); endIdx = kqTimesArrayComInfo.getArrayindexByTimes(restEndTime); if (endIdx > beginIdx) { Arrays.fill(dayMins, beginIdx, endIdx, -1);//休息时间 - workMins = workMins - (endIdx - beginIdx); + workMins = workMins-(endIdx-beginIdx); } } @@ -642,7 +642,7 @@ public class KQFormatData extends BaseBean { } } - if (forgotCheckMins == 1 && beLateMins == 0 && tmpAttendanceMins == 0) {//forgotCheckMins==1表示下班后漏签,不是迟到,流程已完全抵扣异常 + if(forgotCheckMins == 1 && beLateMins==0 && tmpAttendanceMins==0){//forgotCheckMins==1表示下班后漏签,不是迟到,流程已完全抵扣异常 forgotCheckMins = 0; } @@ -657,14 +657,14 @@ public class KQFormatData extends BaseBean { kqShiftRuleEntity.setEarlyInMins(earlyInMins); kqShiftRuleEntity.setLateOutMins(lateOutMins); kqLog.info("人性化规则处理前数据" + JSONObject.toJSONString(kqShiftRuleEntity)); - if (this.writeLog) { - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(10005301, weaver.general.ThreadVarLanguage.getLang()) + "", kqShiftRuleEntity); + if(this.writeLog) { + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10005301,weaver.general.ThreadVarLanguage.getLang())+"",kqShiftRuleEntity); } //人性化规则 - kqShiftRuleEntity = kqFormatShiftRule.doShiftRule(workTime, kqShiftRuleEntity); + kqShiftRuleEntity = kqFormatShiftRule.doShiftRule(workTime,kqShiftRuleEntity); kqLog.info("人性化规则处理后数据" + JSONObject.toJSONString(kqShiftRuleEntity)); - if (this.writeLog) { - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(10005302, weaver.general.ThreadVarLanguage.getLang()) + "", kqShiftRuleEntity); + if(this.writeLog) { + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10005302,weaver.general.ThreadVarLanguage.getLang())+"",kqShiftRuleEntity); } beLateMins = kqShiftRuleEntity.getBelatemins(); graveBeLateMins = kqShiftRuleEntity.getGravebelatemins(); @@ -674,8 +674,8 @@ public class KQFormatData extends BaseBean { forgotCheckMins = kqShiftRuleEntity.getForgotcheckmins(); forgotBeginWorkCheckMins = kqShiftRuleEntity.getForgotBeginWorkCheckMins(); - boolean beforeBegin = !new KQFormatBiz().needCal(workBeginDate, workBeginTime); - if (beforeBegin) {//还未到上班时间,不用计算任何状态 + boolean beforeBegin = !new KQFormatBiz().needCal(workBeginDate,workBeginTime); + if(beforeBegin) {//还未到上班时间,不用计算任何状态 kqLog.writeLog("还未到上班时间,不用计算任何状态"); beLateMins = 0; graveBeLateMins = 0; @@ -684,7 +684,7 @@ public class KQFormatData extends BaseBean { absenteeismMins = 0; forgotCheckMins = 0; forgotBeginWorkCheckMins = 0; - } else if (!new KQFormatBiz().needCal(workEndDate, workEndTime)) {//还未到下班时间 + }else if(!new KQFormatBiz().needCal(workEndDate,workEndTime)) {//还未到下班时间 kqLog.writeLog("还未到上班时间"); leaveEarlyMins = 0; graveLeaveEarlyMins = 0; @@ -702,19 +702,19 @@ public class KQFormatData extends BaseBean { } //计算实际出勤时间(出差公出算出勤)=应出勤-旷工-请假-迟到-早退 - attendanceMins = workMins - absenteeismMins - leaveMins - beLateMins - graveBeLateMins - leaveEarlyMins - graveLeaveEarlyMins; + attendanceMins = workMins - absenteeismMins-leaveMins-beLateMins-graveBeLateMins-leaveEarlyMins-graveLeaveEarlyMins; // 如果没有开启"漏签是否算实际出勤"开关,则漏签不算实际出勤时长 - if ("0".equals(nosign_is_absent)) { - attendanceMins = attendanceMins - forgotCheckMins - forgotBeginWorkCheckMins; + if("0".equals(nosign_is_absent)) { + attendanceMins = attendanceMins-forgotCheckMins-forgotBeginWorkCheckMins; } - if (beforeBegin || attendanceMins < 0) {//还未到上班时间,不用计算任何状体 + if(beforeBegin || attendanceMins < 0) {//还未到上班时间,不用计算任何状体 attendanceMins = 0; } - kqLog.info("实际出勤计算公式" + "实际出勤=应出勤- 旷工-请假-迟到-早退 userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid); - kqLog.info("实际出勤计算结果" + attendanceMins + "=" + workMins + "- " + absenteeismMins + "-" + leaveMins + "-" + (beLateMins + graveBeLateMins) + "-" + (leaveEarlyMins - graveLeaveEarlyMins) + " userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid); - if (this.writeLog) { - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(10005303, weaver.general.ThreadVarLanguage.getLang()) + "", "" + weaver.systeminfo.SystemEnv.getHtmlLabelName(130566, weaver.general.ThreadVarLanguage.getLang()) + "=" + weaver.systeminfo.SystemEnv.getHtmlLabelName(132056, weaver.general.ThreadVarLanguage.getLang()) + "- " + weaver.systeminfo.SystemEnv.getHtmlLabelName(20085, weaver.general.ThreadVarLanguage.getLang()) + "-" + weaver.systeminfo.SystemEnv.getHtmlLabelName(670, weaver.general.ThreadVarLanguage.getLang()) + "-" + weaver.systeminfo.SystemEnv.getHtmlLabelName(20081, weaver.general.ThreadVarLanguage.getLang()) + "-" + weaver.systeminfo.SystemEnv.getHtmlLabelName(20082, weaver.general.ThreadVarLanguage.getLang()) + ""); - logInfo.put("" + weaver.systeminfo.SystemEnv.getHtmlLabelName(10005304, weaver.general.ThreadVarLanguage.getLang()) + "", attendanceMins + "=" + workMins + "- " + absenteeismMins + "-" + leaveMins + "-" + (beLateMins + graveBeLateMins) + "-" + (leaveEarlyMins - graveLeaveEarlyMins)); + kqLog.info("实际出勤计算公式" + "实际出勤=应出勤- 旷工-请假-迟到-早退 userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid); + kqLog.info("实际出勤计算结果" + attendanceMins + "=" + workMins + "- " + absenteeismMins + "-" + leaveMins + "-" + (beLateMins + graveBeLateMins) + "-" + (leaveEarlyMins - graveLeaveEarlyMins)+" userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid); + if(this.writeLog) { + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10005303,weaver.general.ThreadVarLanguage.getLang())+"",""+weaver.systeminfo.SystemEnv.getHtmlLabelName(130566,weaver.general.ThreadVarLanguage.getLang())+"="+weaver.systeminfo.SystemEnv.getHtmlLabelName(132056,weaver.general.ThreadVarLanguage.getLang())+"- "+weaver.systeminfo.SystemEnv.getHtmlLabelName(20085,weaver.general.ThreadVarLanguage.getLang())+"-"+weaver.systeminfo.SystemEnv.getHtmlLabelName(670,weaver.general.ThreadVarLanguage.getLang())+"-"+weaver.systeminfo.SystemEnv.getHtmlLabelName(20081,weaver.general.ThreadVarLanguage.getLang())+"-"+weaver.systeminfo.SystemEnv.getHtmlLabelName(20082,weaver.general.ThreadVarLanguage.getLang())+""); + logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10005304,weaver.general.ThreadVarLanguage.getLang())+"",attendanceMins+"="+workMins+"- "+absenteeismMins+"-"+leaveMins+"-"+(beLateMins+graveBeLateMins)+"-"+(leaveEarlyMins-graveLeaveEarlyMins)); } //判断当天考勤状态 // if (beLateMins > 0) { @@ -748,8 +748,8 @@ public class KQFormatData extends BaseBean { params.add(signOutDate); params.add(signOutTime); params.add(signOutId.length() == 0 ? null : signOutId); - kqLog.info("format in >>>>>userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid - + ":signInDate:" + signInDate + ":signInTime::" + signInTime + ":signOutDate:" + signOutDate + ":signOutTime::" + signOutTime); + kqLog.info("format in >>>>>userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid + +":signInDate:"+signInDate+":signInTime::"+signInTime+":signOutDate:"+signOutDate+":signOutTime::"+signOutTime); params.add(signMins); params.add(attendanceMins); params.add(beLateMins); @@ -765,15 +765,15 @@ public class KQFormatData extends BaseBean { params.add(forgotBeginWorkCheckMins); params.add(JSONObject.toJSONString(otherinfo)); - Map definedFieldInfo = new KQFormatBiz().getDefinedField(); - String[] definedFields = Util.splitString(Util.null2String(definedFieldInfo.get("definedField")), ","); + Map definedFieldInfo = new KQFormatBiz().getDefinedField(); + String[] definedFields = Util.splitString(Util.null2String(definedFieldInfo.get("definedField")),","); KQReportFieldComInfo kqReportFieldComInfo = new KQReportFieldComInfo(); - for (int tmpIdx = 0; tmpIdx < definedFields.length; tmpIdx++) { + for (int tmpIdx = 0; tmpIdx>>>>userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid - + ":params:" + JSON.toJSONString(params)); + kqLog.info("format in >>>>>userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid + +":params:"+JSON.toJSONString(params)); lsParam.add(params); } } catch (Exception e) { @@ -809,7 +809,7 @@ public class KQFormatData extends BaseBean { this.writeLog = writeLog; } - public Map getLogInfo() { + public Map getLogInfo() { return logInfo; } @@ -835,7 +835,6 @@ public class KQFormatData extends BaseBean { /** * 非工作日格式化考勤报表 - * * @param userId * @param kqDate * @param nonlsParam @@ -852,7 +851,7 @@ public class KQFormatData extends BaseBean { int beginIdx = 0; int endIdx = 0; int leaveMins = 0;//请假时长 - Map leaveInfo = new HashMap<>();//请假信息 + Map leaveInfo = new HashMap<>();//请假信息 int evectionMins = 0;//出差时长 int outMins = 0;//公出时长 int otherMins = 0;//异常流程时长 @@ -878,7 +877,7 @@ public class KQFormatData extends BaseBean { next_lsSignTime = next_lsSignTime != null ? next_lsSignTime : new ArrayList<>(); } - List lsCheckInfo = new KQFormatSignData().getNonWorkSignInfo(userId, preDate, kqDate, pre_lsSignTime, next_lsSignTime); + List lsCheckInfo = new KQFormatSignData().getNonWorkSignInfo(userId,preDate,kqDate,pre_lsSignTime,next_lsSignTime); for (int j = 0; lsCheckInfo != null && j < lsCheckInfo.size(); j++) { Map checkInfo = (Map) lsCheckInfo.get(j); @@ -907,26 +906,26 @@ public class KQFormatData extends BaseBean { String newLeaveType = Util.null2String(data.get("newleavetype")); beginIdx = kqTimesArrayComInfo.getArrayindexByTimes(Util.null2String(data.get("begintime"))); endIdx = kqTimesArrayComInfo.getArrayindexByTimes(Util.null2String(data.get("endtime"))); - if (flowType.equals(FlowReportTypeEnum.EVECTION.getFlowType())) { + if(flowType.equals(FlowReportTypeEnum.EVECTION.getFlowType())){ Arrays.fill(dayMins, beginIdx, endIdx, 7);//出差抵扣时段标识 7 - } else if (flowType.equals(FlowReportTypeEnum.OUT.getFlowType())) { + }else if(flowType.equals(FlowReportTypeEnum.OUT.getFlowType())){ Arrays.fill(dayMins, beginIdx, endIdx, 8);//公出抵扣时段标识 8 - } else if (flowType.equalsIgnoreCase(FlowReportTypeEnum.LEAVE.getFlowType())) { + }else if(flowType.equalsIgnoreCase(FlowReportTypeEnum.LEAVE.getFlowType())){ if (endIdx > beginIdx) { Arrays.fill(dayMins, beginIdx, endIdx, 5);//流程抵扣时段标识 5 int tmpBeginIdx = beginIdx; int tmpEndIdx = endIdx; Integer val = 0; - if (leaveInfo.get(newLeaveType) == null) { - leaveInfo.put(newLeaveType, val); - } else { + if(leaveInfo.get(newLeaveType)==null){ + leaveInfo.put(newLeaveType,val); + }else{ val = (Integer) leaveInfo.get(newLeaveType); } - if (tmpEndIdx > tmpBeginIdx) { - leaveInfo.put(newLeaveType, val + (tmpEndIdx - tmpBeginIdx)); + if(tmpEndIdx>tmpBeginIdx){ + leaveInfo.put(newLeaveType,val+(tmpEndIdx-tmpBeginIdx)); } } - } else { + }else{ if (endIdx > beginIdx) { Arrays.fill(dayMins, beginIdx, endIdx, 99);//异常流程抵扣时段标识99 }