@ -115,7 +115,7 @@ public class KQFormatData extends BaseBean {
//没有考勤组不需格式化
return resultMap ;
}
if ( workTime = = null | | workTime . getWorkMins ( ) = = 0 ) {
if ( workTime = = null | | ( workTime . getWorkMins ( ) = = 0 & & workTime . getRestShift ( ) ! = 1 ) ) {
kqLog . info ( "workTime == null || workTime.getWorkMins() == 0 插入空记录" ) ;
nonlsParam = new ArrayList < > ( ) ;
formatNonWork ( userId , kqDate , nonlsParam , workTime , workFlowInfo ) ;
@ -143,6 +143,58 @@ public class KQFormatData extends BaseBean {
" group by resourceid,kqdate,b.subcompanyid1,b.departmentid,b.jobtitle,groupid,serialid,workmins" ;
rs . executeUpdate ( sql , userId , kqDate ) ;
}
} else if ( workTime . getWorkMins ( ) = = 0 & & workTime . getRestShift ( ) = = 1 ) {
Map < String , Object > definedFieldInfo = new KQFormatBiz ( ) . getDefinedField ( ) ;
String definedField = "" ;
String definedParam = "" ;
String definedParamSum = "" ;
if ( workTime . getKQType ( ) . equals ( "3" ) ) { //自由工时
lsParam . addAll ( kqFormatFreeData . format ( userId , kqDate , workFlowInfo ) ) ;
} else {
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 ) ) ;
}
if ( lsParam . size ( ) > 0 ) {
sql = " insert into kq_format_detail( " +
" 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,zeropoint" + ( definedField . length ( ) > 0 ? "," + definedField + "" : "" ) + ") " +
" values(?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?" + ( definedField . length ( ) > 0 ? "," + definedParam + "" : "" ) + ")" ;
for ( int i = 0 ; i < lsParam . size ( ) ; i + + ) {
List < Object > param = lsParam . get ( i ) ;
boolean isok = rs . executeUpdate ( sql , param ) ;
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,zeropoint" + ( 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," +
" 0 as attendancedays, sum(attendanceMins) as attendanceMins," +
" 0 as signdays, sum(signmins) as signmins," +
" sum(case when belatemins> 0 then 1 else 0 end) as belate,sum(belatemins) as belatemins," +
" sum(case when graveBeLateMins> 0 then 1 else 0 end) as graveBeLate,sum(graveBeLateMins) as graveBeLateMins," +
" sum(case when leaveearlymins> 0 then 1 else 0 end) as leaveearly,sum(leaveearlymins) as leaveearlymins," +
" sum(case when graveLeaveEarlyMins> 0 then 1 else 0 end) as graveLeaveEarly,sum(graveLeaveEarlyMins) as graveLeaveEarlyMins, " +
" sum(case when absenteeismmins> 0 then 1 else 0 end) as absenteeism,sum(absenteeismmins) as absenteeismmins," +
" 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,sum(zeropoint) as zeropoint " +
( 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" ;
boolean isok2 = rs . executeUpdate ( sql , userId , kqDate ) ;
kqLog . info ( "插入记录2新:userId:" + userId + ":kqDate:" + kqDate + ":isok:" + isok2 ) ;
kqLog . info ( "sqlTotal:" + sql ) ;
}
} else {
Map < String , Object > definedFieldInfo = new KQFormatBiz ( ) . getDefinedField ( ) ;
String definedField = "" ;
@ -305,11 +357,13 @@ public class KQFormatData extends BaseBean {
bb . writeLog ( "format.groupId:" + workTime . getGroupId ( ) + "format.serialId:" + workTime . getSerialId ( ) ) ;
int workminsNew = 0 ;
if ( workTime ! = null ) {
lsSignTime = workTime . getSignTime ( ) ; //允许打卡时间
lsWorkTime = workTime . getWorkTime ( ) ; //工作时间
lsRestTime = workTime . getRestTime ( ) ; //休息时段时间
oneSign = lsWorkTime ! = null & & lsWorkTime . size ( ) = = 1 ;
workminsNew = workTime . getWorkMins ( ) ;
}
int [ ] dayMins = new int [ 2880 ] ; //一天所有分钟数
@ -874,7 +928,7 @@ public class KQFormatData extends BaseBean {
forgotCheckMins = 0 ;
}
if ( work Time. getIsExclude ( ) ) { //无需考勤人员没有异常状态
if ( work minsNew = = 0 | | work Time. getIsExclude ( ) ) { //无需考勤人员没有异常状态
beLateMins = 0 ;
graveBeLateMins = 0 ;
leaveEarlyMins = 0 ;
@ -914,6 +968,10 @@ public class KQFormatData extends BaseBean {
if ( "0" . equals ( nosign_is_absent ) ) {
attendanceMins = attendanceMins - forgotCheckMins - forgotBeginWorkCheckMins ;
}
if ( workminsNew = = 0 ) {
attendanceMins = 0 ;
workMins = 0 ;
}
if ( beforeBegin | | attendanceMins < 0 ) { //还未到上班时间,不用计算任何状体
attendanceMins = 0 ;
}