diff --git a/src/com/engine/kq/biz/KQFormatData.java b/src/com/engine/kq/biz/KQFormatData.java index 5242ed9..2db7629 100644 --- a/src/com/engine/kq/biz/KQFormatData.java +++ b/src/com/engine/kq/biz/KQFormatData.java @@ -871,16 +871,26 @@ public class KQFormatData extends BaseBean { } bb.writeLog("attendanceMins: " + attendanceMins); + bb.writeLog("absenteeismMins: " + absenteeismMins); bb.writeLog("beLateMins: " + beLateMins); bb.writeLog("leaveMins: " + leaveMins); + bb.writeLog("evectionMins: " + evectionMins); + bb.writeLog("outMins: " + outMins); bb.writeLog("-----连班行政岗二开end-----"); /*考勤二开--值夜班班次的考勤人员,第二天排了行政班,在8:05之前打卡,行政班就算正常考勤end*/ //考勤二开--取消漏签,改为旷工(规则:工作时长就是480,直接全天旷工)start + bb.writeLog("absenteeismMins: " + absenteeismMins); if ( forgotCheckMins > 0) { - absenteeismMins = 480; + //优化:请假,出差,公出存在数据时,旷工时长需要扣减 forgotCheckMins = 0; attendanceMins = 0; + if (evectionMins == 0 && leaveMins == 0 && outMins == 0) { + absenteeismMins = 480; + } else { + absenteeismMins = 480 - leaveMins - evectionMins - outMins; + } + } else { //计算实际出勤时间(出差公出算出勤)=应出勤-旷工-请假-迟到-早退 attendanceMins = workMins - absenteeismMins-leaveMins-beLateMins-graveBeLateMins-leaveEarlyMins-graveLeaveEarlyMins; @@ -905,7 +915,9 @@ public class KQFormatData extends BaseBean { rs.executeUpdate(delSql ); //迟到、早退(注意严重迟到、严重早退的情况) belateMins--迟到 graveBeLateMins--严重迟到 leaveEarlyMins--早退 graveLeaveEarlyMins--严重早退 String changeBeforeData = "beLateMins:" + beLateMins + "graveBeLateMins:" + graveBeLateMins + "leaveEarlyMins:" + leaveEarlyMins + "graveLeaveEarlyMins:" + graveLeaveEarlyMins; + bb.writeLog("changeBeforeData: " + changeBeforeData); int abnormalMins = beLateMins + graveBeLateMins + leaveEarlyMins + graveLeaveEarlyMins; + bb.writeLog("abnormalMins: " + abnormalMins); if ( abnormalMins > 0 && abnormalMins <= 30 ) { beLateMins = 0; graveBeLateMins = 0; @@ -947,8 +959,19 @@ public class KQFormatData extends BaseBean { } if ( abnormalMins > 120) { absenteeismMins = 240; + beLateMins = 0; + graveBeLateMins = 0; + leaveEarlyMins = 0; + graveLeaveEarlyMins = 0; } //计算实际出勤时间(出差公出算出勤)=应出勤-旷工-请假-迟到-早退 + bb.writeLog("workMins: " + workMins); + bb.writeLog("absenteeismMins: " + absenteeismMins); + bb.writeLog("leaveMins: " + leaveMins); + bb.writeLog("beLateMins: " + beLateMins); + bb.writeLog("graveBeLateMins: " + graveBeLateMins); + bb.writeLog("leaveEarlyMins: " + leaveEarlyMins); + bb.writeLog("graveLeaveEarlyMins: " + graveLeaveEarlyMins); attendanceMins = workMins - absenteeismMins-leaveMins-beLateMins-graveBeLateMins-leaveEarlyMins-graveLeaveEarlyMins; // ssutil.customLog(); /*考勤二开--阶梯式记旷工end*/ diff --git a/src/com/engine/kq/biz/KQReportBiz.java b/src/com/engine/kq/biz/KQReportBiz.java index d2ffc77..a9c61f2 100644 --- a/src/com/engine/kq/biz/KQReportBiz.java +++ b/src/com/engine/kq/biz/KQReportBiz.java @@ -3223,7 +3223,7 @@ public class KQReportBiz extends BaseBean { } } if(text.equals("")){ - boolean needCal = new KQFormatBiz().needCal(workdate,worktime); + boolean needCal = new KQFormatBiz().needCal(workdate,worktime,isneedcal); text = needCal?SystemEnv.getHtmlLabelName(225, user.getLanguage()):""; } }else{ diff --git a/src/com/engine/kq/cmd/report/ExportDailyExcelCmd.java b/src/com/engine/kq/cmd/report/ExportDailyExcelCmd.java index b4215b9..8ffc2a7 100644 --- a/src/com/engine/kq/cmd/report/ExportDailyExcelCmd.java +++ b/src/com/engine/kq/cmd/report/ExportDailyExcelCmd.java @@ -544,14 +544,14 @@ public class ExportDailyExcelCmd extends AbstractCommonCommand> { continue; } else if(fieldName.equals("overtime")){ - fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|workingDayOvertime_nonleave"))); - data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("workingDayOvertime_nonleave")))); - - fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|restDayOvertime_nonleave"))); - data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("restDayOvertime_nonleave")))); - - fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|holidayOvertime_nonleave"))); - data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("holidayOvertime_nonleave")))); +// fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|workingDayOvertime_nonleave"))); +// data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("workingDayOvertime_nonleave")))); +// +// fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|restDayOvertime_nonleave"))); +// data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("restDayOvertime_nonleave")))); +// +// fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|holidayOvertime_nonleave"))); +// data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("holidayOvertime_nonleave")))); fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|workingDayOvertime_4leave"))); data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("workingDayOvertime_4leave")))); @@ -789,7 +789,8 @@ public class ExportExcelCmd extends AbstractCommonCommand> { titleList.add(title); } }else if(parentid.equals("overtime")){ - String[] overtimeChild = {"overtime_nonleave","overtime_4leave","overtimeTotal"}; +// String[] overtimeChild = {"overtime_nonleave","overtime_4leave","overtimeTotal"}; + String[] overtimeChild = {"overtime_4leave","overtimeTotal"}; for(int i=0;i flowData = kqReportBiz.getDailyFlowData(params,user); Map serialdata = new HashMap<>(); /*考勤二开--转事假start*/ @@ -713,7 +717,8 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand> { lsChildColumns.add(column); } }else if(parentid.equals("overtime")){ - String[] overtimeChild = {"overtime_nonleave","overtime_4leave","overtimeTotal"}; +// String[] overtimeChild = {"overtime_nonleave","overtime_4leave","overtimeTotal"}; + String[] overtimeChild = {"overtime_4leave","overtimeTotal"}; for(int i=0;i