@ -2,6 +2,7 @@ package com.engine.kqsolution.service.impl;
import cn.hutool.core.thread.ThreadUtil ;
import com.alibaba.fastjson.JSON ;
import com.engine.core.impl.Service ;
import com.engine.kq.biz.KQShiftManagementComInfo ;
import com.engine.kq.biz.KQWorkTime ;
@ -17,11 +18,13 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils ;
import weaver.conn.RecordSet ;
import weaver.conn.RecordSetTrans ;
import weaver.general.BaseBean ;
import weaver.general.Util ;
import weaver.hrm.resource.ResourceComInfo ;
import java.text.DecimalFormat ;
import java.time.LocalDate ;
import java.time.LocalDateTime ;
import java.time.format.DateTimeFormatter ;
import java.util.ArrayList ;
import java.util.HashMap ;
@ -155,6 +158,7 @@ public class SignDataSummaryServiceImpl extends Service implements SignDataSumma
@SneakyThrows
private Map < String , Object > saveSignData ( List < SignDataPO > list , SignDataParams signDataParams ) {
Map < String , Object > data = new HashMap < > ( 4 ) ;
BaseBean bb = new BaseBean ( ) ;
DecimalFormat decimalFormat = new DecimalFormat ( "0.00" ) ;
RecordSetTrans rst = new RecordSetTrans ( ) ;
RecordSet rs = new RecordSet ( ) ;
@ -202,9 +206,11 @@ public class SignDataSummaryServiceImpl extends Service implements SignDataSumma
item . getSignInTime ( ) , item . getSignOutDate ( ) , item . getSignOutTime ( ) , item . getSignHours ( ) , item . getWorkHours ( ) , item . getId ( ) ) ;
}
} else {
//同一考勤日期执行多次
rst . executeUpdate ( "delete from uf_kqgs where kqrq = ? and zt = 0" , signDataParams . getAttendanceDate ( ) ) ;
//获取锁定状态数据
List < Integer > idList = new ArrayList < > ( ) ;
rs . executeQuery ( " select xm from uf_kqgs where kqrq = ?" , signDataParams . getAttendanceDate ( ) ) ;
@ -216,14 +222,18 @@ public class SignDataSummaryServiceImpl extends Service implements SignDataSumma
. filter ( p - > ! idList . contains ( p . getResourceId ( ) ) )
. collect ( Collectors . toList ( ) ) ;
for ( SignDataPO item : list ) {
rst . executeUpdate ( "insert into uf_kqgs(formmodeid,xm,kqy,kqrq,zt,fb,bm,gw,qdrq,qdsj,qtrq,qtsj,dkgssc,sjgssc) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)" , signDataParams . getFormModeId ( ) , item . getResourceId ( ) ,
item . getAttendanceMonth ( ) , item . getAttendanceDate ( ) , item . getStatus ( ) , item . getCompany ( ) , item . getDepartment ( ) ,
item . getJobTitle ( ) , item . getSignInDate ( ) , item . getSignInTime ( ) , item . getSignOutDate ( ) , item . getSignOutTime ( ) ,
item . getSignHours ( ) , item . getWorkHours ( ) ) ;
rst . executeUpdate ( "insert into uf_kqgs(formmodeid,xm,kqy,kqrq,zt,fb,bm,gw,qdrq,qdsj,qtrq,qtsj,dkgssc,sjgssc) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)" , signDataParams . getFormModeId ( ) , item . getResourceId ( ) ,
item . getAttendanceMonth ( ) , item . getAttendanceDate ( ) , item . getStatus ( ) , item . getCompany ( ) , item . getDepartment ( ) ,
item . getJobTitle ( ) , item . getSignInDate ( ) , item . getSignInTime ( ) , item . getSignOutDate ( ) , item . getSignOutTime ( ) ,
item . getSignHours ( ) , item . getWorkHours ( ) ) ;
}
}
rst . commit ( ) ;
bb . writeLog ( "定时任务同步全部执行成功" ) ;
data . put ( "count" , list . size ( ) ) ;
} catch ( Exception e ) {
rst . rollback ( ) ;
@ -238,6 +248,7 @@ public class SignDataSummaryServiceImpl extends Service implements SignDataSumma
* /
private List < SignDataPO > buildSignData ( SignDataParams signDataParams ) {
RecordSet rs = new RecordSet ( ) ;
BaseBean bb = new BaseBean ( ) ;
List < SignDataPO > pos = new ArrayList < > ( ) ;
String formatYearMonth = getFormatLocalDate ( LocalDate . now ( ) , MONTH_FORMATTER_PATTERN ) ;
if ( StringUtil . isNotEmpty ( signDataParams . getAttendanceDate ( ) ) ) {
@ -292,9 +303,16 @@ public class SignDataSummaryServiceImpl extends Service implements SignDataSumma
. signOutTime ( signOutTime )
. signMins ( Util . null2String ( rs . getString ( "signMins" ) ) )
. build ( ) ;
bb . writeLog ( "同步数据详情" + JSON . toJSONString ( build ) ) ;
pos . add ( build ) ;
}
}
//日志
LocalDateTime now = LocalDateTime . now ( ) ;
DateTimeFormatter formatter = DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm" ) ;
String formattedDateTime = now . format ( formatter ) ;
bb . writeLog ( "打卡数据同步执行时间:" + formattedDateTime + "==数据size:" + pos . size ( ) ) ;
return pos ;
}