@ -25,6 +25,8 @@ import weaver.general.Util;
import java.text.DecimalFormat ;
import java.text.DecimalFormat ;
import java.text.DecimalFormatSymbols ;
import java.text.DecimalFormatSymbols ;
import java.text.SimpleDateFormat ;
import java.text.SimpleDateFormat ;
import java.time.LocalDate ;
import java.time.format.DateTimeFormatter ;
import java.util.ArrayList ;
import java.util.ArrayList ;
import java.util.Arrays ;
import java.util.Arrays ;
import java.util.Date ;
import java.util.Date ;
@ -1045,14 +1047,27 @@ public class HandleCBDataThread extends BaseBean implements Runnable{
Map < String , Map < String , Object > > lsCheckInfo = new HashMap < > ( ) ;
Map < String , Map < String , Object > > lsCheckInfo = new HashMap < > ( ) ;
List < Map < String , Object > > legWorkInfos = new ArrayList < > ( ) ;
List < Map < String , Object > > legWorkInfos = new ArrayList < > ( ) ;
// 解析日期字符串为LocalDate对象
LocalDate date = LocalDate . parse ( kqDateA , DateTimeFormatter . ISO_DATE ) ;
// 获取后一天的日期
LocalDate nextDay = date . plusDays ( 1 ) ;
// 将后一天的日期转换为字符串
String kqDateB = nextDay . format ( DateTimeFormatter . ISO_DATE ) ;
String dateParamA = kqDateA + " 05:00:00" ;
String dateParamB = kqDateB + " 04:59:59" ;
if ( isGoing ) {
if ( isGoing ) {
String acqLegWorkSignSql = "select operate_time, longitude, latitude,address from mobile_sign where operater = ? and operate_date = '" + kqDateA + "' order by operate_time asc " ;
// String acqLegWorkSignSql = "select operate_time, longitude, latitude,address from mobile_sign where operater = ? and operate_date = '" + kqDateA + "' order by operate_time asc ";
String acqLegWorkSignSql = "select operate_time, longitude, latitude,address,operate_date,CONCAT(operate_date, ' ', operate_time) as dateTimeNew from mobile_sign " +
"where operater = ? and CAST(operate_date + ' ' + operate_time AS datetime) >= CAST('" + dateParamA + "' AS datetime) " +
"and CAST(operate_date + ' ' + operate_time AS datetime) <= CAST('" + dateParamB + "' AS datetime) " ;
rs . executeQuery ( acqLegWorkSignSql , id ) ;
rs . executeQuery ( acqLegWorkSignSql , id ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
String operateTime = Util . null2String ( rs . getString ( "operate_time" ) ) ;
String operateTime = Util . null2String ( rs . getString ( "operate_time" ) ) ;
String longitude = Util . null2String ( rs . getString ( "longitude" ) ) ;
String longitude = Util . null2String ( rs . getString ( "longitude" ) ) ;
String latitude = Util . null2String ( rs . getString ( "latitude" ) ) ;
String latitude = Util . null2String ( rs . getString ( "latitude" ) ) ;
String address = Util . null2String ( rs . getString ( "address" ) ) ;
String address = Util . null2String ( rs . getString ( "address" ) ) ;
String dateTimeNew = Util . null2String ( rs . getString ( "dateTimeNew" ) ) ;
if ( "hostar" . equalsIgnoreCase ( address ) | | "鸿仕达" . equals ( address ) | | "增善路" . equals ( address )
if ( "hostar" . equalsIgnoreCase ( address ) | | "鸿仕达" . equals ( address ) | | "增善路" . equals ( address )
| | "星圃路" . equals ( address ) | | "智慧新城" . equals ( address ) ) {
| | "星圃路" . equals ( address ) | | "智慧新城" . equals ( address ) ) {
@ -1072,11 +1087,14 @@ public class HandleCBDataThread extends BaseBean implements Runnable{
temp . put ( "operateTime" , operateTime ) ;
temp . put ( "operateTime" , operateTime ) ;
temp . put ( "longitude" , longitude ) ;
temp . put ( "longitude" , longitude ) ;
temp . put ( "latitude" , latitude ) ;
temp . put ( "latitude" , latitude ) ;
temp . put ( "dateTimeNew" , dateTimeNew ) ;
legWorkInfos . add ( temp ) ;
legWorkInfos . add ( temp ) ;
}
}
}
}
if ( legWorkInfos ! = null & & legWorkInfos . size ( ) > 1 ) {
if ( legWorkInfos ! = null & & legWorkInfos . size ( ) > 1 ) {
String tempSignIn = "" ;
String tempSignIn = "" ;
String tempSignInDateTime = "" ;
String tempSignOutDateTime = "" ;
String tempSignInLatitude = "" ;
String tempSignInLatitude = "" ;
String tempSignInLongitude = "" ;
String tempSignInLongitude = "" ;
String tempSignOutLatitude = "" ;
String tempSignOutLatitude = "" ;
@ -1087,24 +1105,29 @@ public class HandleCBDataThread extends BaseBean implements Runnable{
String operateTime = Util . null2String ( temp . get ( "operateTime" ) ) ;
String operateTime = Util . null2String ( temp . get ( "operateTime" ) ) ;
String longitude = Util . null2String ( temp . get ( "longitude" ) ) ;
String longitude = Util . null2String ( temp . get ( "longitude" ) ) ;
String latitude = Util . null2String ( temp . get ( "latitude" ) ) ;
String latitude = Util . null2String ( temp . get ( "latitude" ) ) ;
String dateTimeNew = Util . null2String ( temp . get ( "dateTimeNew" ) ) ;
if ( StringUtils . isBlank ( tempSignIn ) ) {
if ( StringUtils . isBlank ( tempSignIn ) ) {
tempSignIn = operateTime ;
tempSignIn = operateTime ;
tempSignInLatitude = latitude ;
tempSignInLatitude = latitude ;
tempSignInLongitude = longitude ;
tempSignInLongitude = longitude ;
tempSignInDateTime = dateTimeNew ;
} else {
} else {
if ( operateTime . compareTo ( tempSignIn ) < 0 ) {
if ( dateTimeNew . compareTo ( tempSignIn DateTime ) < 0 ) {
tempSignIn = operateTime ;
tempSignIn = operateTime ;
tempSignInLatitude = latitude ;
tempSignInLatitude = latitude ;
tempSignInLongitude = longitude ;
tempSignInLongitude = longitude ;
tempSignInDateTime = dateTimeNew ;
}
}
}
}
if ( StringUtils . isBlank ( tempSignOut ) ) {
if ( StringUtils . isBlank ( tempSignOut ) ) {
tempSignOut = operateTime ;
tempSignOut = operateTime ;
tempSignOutDateTime = dateTimeNew ;
tempSignOutLatitude = latitude ;
tempSignOutLatitude = latitude ;
tempSignOutLongitude = longitude ;
tempSignOutLongitude = longitude ;
} else {
} else {
if ( operateTime . compareTo ( tempSignOut ) > 0 ) {
if ( dateTimeNew . compareTo ( tempSignOut DateTime ) > 0 ) {
tempSignOut = operateTime ;
tempSignOut = operateTime ;
tempSignOutDateTime = dateTimeNew ;
tempSignOutLatitude = latitude ;
tempSignOutLatitude = latitude ;
tempSignOutLongitude = longitude ;
tempSignOutLongitude = longitude ;
}
}
@ -1113,9 +1136,11 @@ public class HandleCBDataThread extends BaseBean implements Runnable{
// }
// }
checkInfo . put ( "signDate" , kqDateA ) ; //签到签退日期
checkInfo . put ( "signDate" , kqDateA ) ; //签到签退日期
checkInfo . put ( "signInTime" , tempSignIn ) ; //签到时间
checkInfo . put ( "signInTime" , tempSignIn ) ; //签到时间
checkInfo . put ( "signInDateTime" , tempSignInDateTime ) ; //签到日期时间
checkInfo . put ( "signInLatitude" , tempSignInLatitude ) ; //签到纬度
checkInfo . put ( "signInLatitude" , tempSignInLatitude ) ; //签到纬度
checkInfo . put ( "signInLongitude" , tempSignInLongitude ) ; //签到经度
checkInfo . put ( "signInLongitude" , tempSignInLongitude ) ; //签到经度
checkInfo . put ( "signOutTime" , tempSignOut ) ; //签退时间
checkInfo . put ( "signOutTime" , tempSignOut ) ; //签退时间
checkInfo . put ( "signOutDateTime" , tempSignOutDateTime ) ; //签退日期时间
checkInfo . put ( "signOutLatitude" , tempSignOutLatitude ) ; //签退纬度
checkInfo . put ( "signOutLatitude" , tempSignOutLatitude ) ; //签退纬度
checkInfo . put ( "signOutLongitude" , tempSignOutLongitude ) ; //签退经度
checkInfo . put ( "signOutLongitude" , tempSignOutLongitude ) ; //签退经度
lsCheckInfo . put ( id + "|" + kqDateA , checkInfo ) ;
lsCheckInfo . put ( id + "|" + kqDateA , checkInfo ) ;
@ -1149,20 +1174,27 @@ public class HandleCBDataThread extends BaseBean implements Runnable{
Map < String , Object > temp = lsCheckInfo . get ( key ) ;
Map < String , Object > temp = lsCheckInfo . get ( key ) ;
String signInTime = Util . null2String ( temp . get ( "signInTime" ) ) ;
String signInTime = Util . null2String ( temp . get ( "signInTime" ) ) ;
String signOutTime = Util . null2String ( temp . get ( "signOutTime" ) ) ;
String signOutTime = Util . null2String ( temp . get ( "signOutTime" ) ) ;
String signInDateTime = Util . null2String ( temp . get ( "signInDateTime" ) ) ;
String signOutDateTime = Util . null2String ( temp . get ( "signOutDateTime" ) ) ;
String signDate = Util . null2String ( temp . get ( "signDate" ) ) ;
if ( StringUtils . isNotBlank ( signInTime ) & & StringUtils . isNotBlank ( signOutTime ) ) {
if ( StringUtils . isNotBlank ( signInTime ) & & StringUtils . isNotBlank ( signOutTime ) ) {
for ( Map < String , String > me : MealMap ) {
for ( Map < String , String > me : MealMap ) {
String startTime = me . get ( "startTime" ) ;
String startTime = me . get ( "startTime" ) ;
String startDateTime = "" ;
String endTime = me . get ( "endTime" ) ;
String endTime = me . get ( "endTime" ) ;
String endDateTime = "" ;
if ( StringUtils . isNotBlank ( startTime ) & & StringUtils . isNotBlank ( endTime ) ) {
if ( StringUtils . isNotBlank ( startTime ) & & StringUtils . isNotBlank ( endTime ) ) {
startTime = startTime + ":00" ;
startTime = startTime + ":00" ;
endTime = endTime + ":00" ;
endTime = endTime + ":00" ;
startDateTime = signDate + " " + startTime ;
endDateTime = signDate + " " + endTime ;
}
}
if ( ( signIn Time. compareTo ( start Time) < = 0 ) & & ( signOut Time. compareTo ( end Time) > = 0 ) ) {
if ( ( signIn Date Time. compareTo ( start Date Time) < = 0 ) & & ( signOut Date Time. compareTo ( end Date Time) > = 0 ) ) {
if ( StringUtils . isEmpty ( value ) | | StringUtils . equals ( value , "0" ) ) {
if ( StringUtils . isEmpty ( value ) | | StringUtils . equals ( value , "0" ) ) {
value = "1" ;
value = "1" ;
} else {
} else {