出差流程没有外勤打卡不计算考勤

dev
chenwei 12 months ago
parent 10fed99c1f
commit c06d466f5c

@ -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*/

@ -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{

@ -544,14 +544,14 @@ public class ExportDailyExcelCmd extends AbstractCommonCommand<Map<String, Objec
data.add(fieldValue);
}
}else if(fieldName.equals("overtime")){
fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id +"|"+kqdate+ "|workingDayOvertime_nonleave")));
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("workingDayOvertime_nonleave"))));
fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id +"|"+kqdate+ "|restDayOvertime_nonleave")));
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("restDayOvertime_nonleave"))));
fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id +"|"+kqdate+ "|holidayOvertime_nonleave")));
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("holidayOvertime_nonleave"))));
// fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id +"|"+kqdate+ "|workingDayOvertime_nonleave")));
// data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("workingDayOvertime_nonleave"))));
//
// fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id +"|"+kqdate+ "|restDayOvertime_nonleave")));
// data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("restDayOvertime_nonleave"))));
//
// fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id +"|"+kqdate+ "|holidayOvertime_nonleave")));
// data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("holidayOvertime_nonleave"))));
fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id +"|"+kqdate+ "|workingDayOvertime_4leave")));
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("workingDayOvertime_4leave"))));
@ -806,7 +806,8 @@ public class ExportDailyExcelCmd extends AbstractCommonCommand<Map<String, Objec
}
}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<overtimeChild.length;i++){
String id = overtimeChild[i];
title = new HashMap();

@ -524,14 +524,14 @@ public class ExportExcelCmd extends AbstractCommonCommand<Map<String, Object>> {
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<Map<String, Object>> {
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<overtimeChild.length;i++){
String id = overtimeChild[i];
title = new HashMap();

@ -233,6 +233,10 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
} else {
sql = " select " + sql;
}
boolean isneedcal = KQSettingsBiz.getKqformatAccurate();
params.put("isneedcal",isneedcal?"1":"0");
Map<String,Object> flowData = kqReportBiz.getDailyFlowData(params,user);
Map<String,String> serialdata = new HashMap<>();
/*考勤二开--转事假start*/
@ -713,7 +717,8 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
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<overtimeChild.length;i++){
String id = overtimeChild[i];
column = new HashMap();

@ -834,7 +834,8 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
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<overtimeChild.length;i++){
String id = overtimeChild[i];
column = new HashMap();

@ -61,7 +61,9 @@ public class SskjUtil {
long NTime =df.parse(newTime).getTime();
//从对象中拿到时间
long OTime = df.parse(oldTime).getTime();
diff=(NTime-OTime)/1000/60;
//分钟数30向下取整
long temp = (NTime-OTime) /1000 /60;
diff = (Integer.parseInt(String.valueOf(temp)) / 30) * 30;
}catch (Exception e) {
basebean.writeLog("SskjUtil getTime Exception: " + e);
}

Loading…
Cancel
Save