@ -16,9 +16,10 @@ import java.util.*;
public class OutSignSyncAction implements Action {
BaseBean bb = new BaseBean ( ) ;
@Override
public String execute ( RequestInfo requestInfo ) {
bb . writeLog ( "OutSignSyncAction-start" ) ;
String startDate = "" ;
String endDate = "" ;
String resourceid = "" ;
@ -55,6 +56,7 @@ public class OutSignSyncAction implements Action {
if ( StringUtils . isNotBlank ( nbtxr ) ) {
resourceid = resourceid + "," + nbtxr ;
}
bb . writeLog ( "OutSignSyncAction-" + resourceid ) ;
RecordSet rs = new RecordSet ( ) ;
List < String > infos = new ArrayList < > ( ) ;
String acqOutSignSql = "select a.id, c.signinfo " +
@ -67,9 +69,10 @@ public class OutSignSyncAction implements Action {
String signinfo = Util . null2String ( rs . getString ( "signinfo" ) ) ;
infos . add ( signinfo ) ;
}
bb . writeLog ( "OutSignSyncAction-infos-" + infos ) ;
for ( String inf : infos ) {
if ( inf ! = null ) {
if ( inf ! = null ) {
Map < String , Object > in = mapStringToMap ( inf ) ;
String userId = Util . null2String ( in . get ( "userId" ) ) ;
String userType = Util . null2String ( in . get ( "userType" ) ) ;
@ -87,25 +90,25 @@ public class OutSignSyncAction implements Action {
String deviceInfo = Util . null2String ( in . get ( "deviceInfo" ) ) ;
String belongdateIsNull = Util . null2String ( in . get ( "belongdateIsNull" ) ) ;
String punchSql = "insert into HrmScheduleSign(userId,userType,signType,signDate,signTime,clientAddress,isInCom,timeZone,belongdate,signfrom,longitude,latitude,addr,deviceInfo,isdev) " +
String punchSql = "insert into HrmScheduleSign(userId,userType,signType,signDate,signTime,clientAddress,isInCom,timeZone,belongdate,signfrom,longitude,latitude,addr,deviceInfo,isdev) " +
" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" ;
boolean isok = rs . executeUpdate ( punchSql , resourceid , userType , signType , signDate , signTime , clientAddress , isInCom ,
timeZone , belongdate , signfrom , longitude , latitude , address , deviceInfo , "1" ) ;
boolean isok = rs . executeUpdate ( punchSql , resourceid , userType , signType , signDate , signTime , clientAddress , isInCom ,
timeZone , belongdate , signfrom , longitude , latitude , address , deviceInfo , "1" ) ;
bb . writeLog ( "isok: " + isok ) ;
//同步更新考勤数据到考勤报表
if ( "true" . equals ( belongdateIsNull ) ) {
if ( "true" . equals ( belongdateIsNull ) ) {
//外勤签到没有归属日期,遇到跨天班次打卡可能归属前一天,需要格式化前一天考勤
bb . writeLog ( "PunchOutButtonCmd:userId:" + userId + ":belongdate:" + DateUtil . getYesterday ( ) ) ;
new KQFormatBiz ( ) . formatDate ( "" + userId , DateUtil . getYesterday ( ) ) ;
bb . writeLog ( "PunchOutButtonCmd:userId:" + userId + ":belongdate:" + DateUtil . getYesterday ( ) ) ;
new KQFormatBiz ( ) . formatDate ( "" + userId , DateUtil . getYesterday ( ) ) ;
}
bb . writeLog ( "PunchOutButtonCmd:userId:" + userId + ":belongdate:" + ( belongdate . length ( ) = = 0 ? DateUtil . getCurrentDate ( ) : belongdate ) ) ;
if ( belongdate . length ( ) = = 0 ) {
bb . writeLog ( "PunchOutButtonCmd:userId:" + userId + ":belongdate:" + ( belongdate . length ( ) = = 0 ? DateUtil . getCurrentDate ( ) : belongdate ) ) ;
if ( belongdate . length ( ) = = 0 ) {
//外勤签到没有归属日期,遇到跨天班次打卡可能归属前一天,需要格式化前一天考勤
new KQFormatBiz ( ) . formatDate ( "" + userId , DateUtil . getYesterday ( ) ) ;
new KQFormatBiz ( ) . formatDate ( "" + userId , DateUtil . getYesterday ( ) ) ;
}
new KQFormatBiz ( ) . formatDate ( "" + userId , ( belongdate . length ( ) = = 0 ? DateUtil . getCurrentDate ( ) : belongdate ) ) ;
new KQFormatBiz ( ) . formatDate ( "" + userId , ( belongdate . length ( ) = = 0 ? DateUtil . getCurrentDate ( ) : belongdate ) ) ;
//外勤签到转的考勤 处理加班规则
SplitActionUtil . pushOverTimeTasksAll ( belongdate , belongdate , "" + userId ) ;
SplitActionUtil . pushOverTimeTasksAll ( belongdate , belongdate , "" + userId ) ;
}
}
@ -118,10 +121,10 @@ public class OutSignSyncAction implements Action {
return Action . SUCCESS ;
}
public static Map < String , Object > mapStringToMap ( String str ) {
str = str . substring ( 1 , str . length ( ) - 1 ) ;
public static Map < String , Object > mapStringToMap ( String str ) {
str = str . substring ( 1 , str . length ( ) - 1 ) ;
String [ ] strs = str . split ( "," ) ;
Map < String , Object > map = new HashMap < > ( ) ;
Map < String , Object > map = new HashMap < > ( ) ;
for ( String string : strs ) {
String key = string . split ( "=" ) [ 0 ] ;
String value = string . split ( "=" ) [ 1 ] ;