@ -209,7 +209,7 @@ public class KQFormatData extends BaseBean {
lsParam . addAll ( format ( userId , kqDate , workTime , workFlowInfo , uuid ) ) ;
lsParam . addAll ( format ( userId , kqDate , workTime , workFlowInfo , uuid ) ) ;
}
}
// bb.writeLog("lsParam: " + lsParam);
bb . writeLog ( "lsParam: " + lsParam ) ;
if ( lsParam . size ( ) > 0 ) {
if ( lsParam . size ( ) > 0 ) {
sql = " insert into kq_format_detail( " +
sql = " insert into kq_format_detail( " +
" resourceid,kqdate,groupid,serialid,serialnumber,workbegindate,workbegintime,workenddate,workendtime,workmins," +
" resourceid,kqdate,groupid,serialid,serialnumber,workbegindate,workbegintime,workenddate,workendtime,workmins," +
@ -273,9 +273,6 @@ public class KQFormatData extends BaseBean {
}
}
// 考勤二开--出差餐补
// 考勤二开--出差餐补
String mealAllowance = getMealAllowance ( userId , kqDate ) ;
String mealAllowance = getMealAllowance ( userId , kqDate ) ;
if ( ! ( StringUtils . equals ( statAllowance , "0" ) & & StringUtils . equals ( otherStatAllowance , "0" ) ) ) {
mealAllowance = "0" ;
}
bb . writeLog ( "mealAllowance:" + mealAllowance ) ;
bb . writeLog ( "mealAllowance:" + mealAllowance ) ;
if ( StringUtils . isEmpty ( mealAllowance ) ) {
if ( StringUtils . isEmpty ( mealAllowance ) ) {
mealAllowance = "0" ;
mealAllowance = "0" ;
@ -514,7 +511,7 @@ public class KQFormatData extends BaseBean {
//取卡
//取卡
List < Object > lsCheckInfo = new KQFormatSignData ( ) . getSignInfo ( userId , signTimeScope , workTimeScope , kqDate , preDate , nextDate , kqTimesArrayComInfo , hostIps , uuid , shiftCount , shiftI ) ;
List < Object > lsCheckInfo = new KQFormatSignData ( ) . getSignInfo ( userId , signTimeScope , workTimeScope , kqDate , preDate , nextDate , kqTimesArrayComInfo , hostIps , uuid , shiftCount , shiftI ) ;
// bb.writeLog("kqformatdata lscheckinfo: " + lsCheckInfo);
bb . writeLog ( "kqformatdata lscheckinfo: " + lsCheckInfo ) ;
kqLog . info ( "lsCheckInfo" + JSONObject . toJSONString ( lsCheckInfo ) + "::userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid ) ;
kqLog . info ( "lsCheckInfo" + JSONObject . toJSONString ( lsCheckInfo ) + "::userId" + userId + "kqDate==" + kqDate + ":hostIps:" + hostIps + ":uuid::" + uuid ) ;
if ( this . writeLog ) {
if ( this . writeLog ) {
logInfo . put ( "" + weaver . systeminfo . SystemEnv . getHtmlLabelName ( 10005297 , weaver . general . ThreadVarLanguage . getLang ( ) ) + "" , signBeginDateTime ) ;
logInfo . put ( "" + weaver . systeminfo . SystemEnv . getHtmlLabelName ( 10005297 , weaver . general . ThreadVarLanguage . getLang ( ) ) + "" , signBeginDateTime ) ;
@ -527,7 +524,7 @@ public class KQFormatData extends BaseBean {
for ( int j = 0 ; lsCheckInfo ! = null & & j < lsCheckInfo . size ( ) ; j + + ) {
for ( int j = 0 ; lsCheckInfo ! = null & & j < lsCheckInfo . size ( ) ; j + + ) {
Map < String , Object > checkInfo = ( Map < String , Object > ) lsCheckInfo . get ( j ) ;
Map < String , Object > checkInfo = ( Map < String , Object > ) lsCheckInfo . get ( j ) ;
// bb.writeLog("kqformatdata checkInfo: " + checkInfo);
bb . writeLog ( "kqformatdata checkInfo: " + checkInfo ) ;
String signStatus = Util . null2String ( checkInfo . get ( "signStatus" ) ) ;
String signStatus = Util . null2String ( checkInfo . get ( "signStatus" ) ) ;
String signId = Util . null2String ( checkInfo . get ( "signId" ) ) ;
String signId = Util . null2String ( checkInfo . get ( "signId" ) ) ;
@ -725,10 +722,10 @@ public class KQFormatData extends BaseBean {
if ( workFlowInfo . get ( dateKey ) ! = null ) {
if ( workFlowInfo . get ( dateKey ) ! = null ) {
workFlow = ( List < Object > ) workFlowInfo . get ( dateKey ) ;
workFlow = ( List < Object > ) workFlowInfo . get ( dateKey ) ;
}
}
// bb.writeLog("kqformatdata workFlow: " + workFlow);
bb . writeLog ( "kqformatdata workFlow: " + workFlow ) ;
for ( int j = 0 ; workFlow ! = null & & j < workFlow . size ( ) ; j + + ) {
for ( int j = 0 ; workFlow ! = null & & j < workFlow . size ( ) ; j + + ) {
Map < String , Object > data = ( Map < String , Object > ) workFlow . get ( j ) ;
Map < String , Object > data = ( Map < String , Object > ) workFlow . get ( j ) ;
// bb.writeLog("kqformatdata workFlow data: " + workFlow);
bb . writeLog ( "kqformatdata workFlow data: " + workFlow ) ;
String flowType = Util . null2String ( data . get ( "flowtype" ) ) ;
String flowType = Util . null2String ( data . get ( "flowtype" ) ) ;
String newLeaveType = Util . null2String ( data . get ( "newleavetype" ) ) ;
String newLeaveType = Util . null2String ( data . get ( "newleavetype" ) ) ;
String signtype = Util . null2String ( data . get ( "signtype" ) ) ;
String signtype = Util . null2String ( data . get ( "signtype" ) ) ;
@ -1014,150 +1011,65 @@ public class KQFormatData extends BaseBean {
groupMap . put ( grouptype , kqgroup ) ;
groupMap . put ( grouptype , kqgroup ) ;
}
}
}
}
// bb.writeLog("groupMap: " + groupMap);
bb . writeLog ( "groupMap: " + groupMap ) ;
bb . writeLog ( "groupid: " + groupid ) ;
bb . writeLog ( "groupid: " + groupid ) ;
//获取夜班班次
List < String > nightShiftList = new ArrayList < > ( ) ;
String acqNightShiftSql = "select shift from uf_nightshiftmanage where isdelete is null or isdelete = 0" ;
rs . executeQuery ( acqNightShiftSql ) ;
while ( rs . next ( ) ) {
String shift = Util . null2String ( rs . getString ( "shift" ) ) ;
if ( StringUtils . isNotBlank ( shift ) ) {
nightShiftList . add ( shift ) ;
}
}
boolean offGood = false ;
boolean inGood = false ;
if ( StringUtils . isEmpty ( serialid ) ) {
serialid = "0" ;
}
if ( CollectionUtils . isEmpty ( nightShiftList ) | | ! nightShiftList . contains ( serialid ) ) {
for ( int j = 0 ; lsCheckInfo ! = null & & j < lsCheckInfo . size ( ) ; j + + ) {
for ( int j = 0 ; lsCheckInfo ! = null & & j < lsCheckInfo . size ( ) ; j + + ) {
bb . writeLog ( "lsCheckInfo is:" + JSONObject . toJSONString ( lsCheckInfo ) ) ;
Map < String , Object > checkInfo = ( Map < String , Object > ) lsCheckInfo . get ( j ) ;
Map < String , Object > checkInfo = ( Map < String , Object > ) lsCheckInfo . get ( j ) ;
if ( "2" . equals ( checkInfo . get ( "signType" ) ) & & ! offGood ) { //签退
if ( "2" . equals ( checkInfo . get ( "signType" ) ) ) { //签退
String signStatus = Util . null2String ( checkInfo . get ( "signStatus" ) ) ;
if ( StringUtils . isEmpty ( signStatus ) | | ! signStatus . equalsIgnoreCase ( ButtonStatusEnum . NORMAL . getStatusCode ( ) ) ) {
continue ;
}
String signDate = Util . null2String ( checkInfo . get ( "signDate" ) ) ;
String signDate = Util . null2String ( checkInfo . get ( "signDate" ) ) ;
String signTime = Util . null2String ( checkInfo . get ( "signTime" ) ) ;
String signTime = Util . null2String ( checkInfo . get ( "signTime" ) ) ;
// bb.writeLog("signDate: " + signDate);
bb . writeLog ( "signDate: " + signDate ) ;
// bb.writeLog("signTime: " + signTime);
bb . writeLog ( "signTime: " + signTime ) ;
if ( groupMap ! = null & & groupMap . size ( ) > 0 ) {
if ( groupMap ! = null & & groupMap . size ( ) > 0 ) {
for ( String grouptype : groupMap . keySet ( ) ) {
for ( String grouptype : groupMap . keySet ( ) ) {
// bb.writeLog("grouptype: " + grouptype);
bb . writeLog ( "grouptype: " + grouptype ) ;
// if ("0".equals(grouptype)) {//责任制--23点
if ( "0" . equals ( grouptype ) ) { //责任制--23点
// String kqgroups = Util.null2String(groupMap.get(grouptype));
// bb.writeLog("kqgroups: " + kqgroups);
// List<String> groupList = Arrays.asList(kqgroups.split(","));
// bb.writeLog("groupList: " + groupList);
// if(groupList.contains(groupid)) {
// //23:00
// if (signTime.length() == 5) {
// signTime = signTime + ":00";
// }
// String subsidyTime = kqDate + " 23:00:00";
// bb.writeLog("subsidyTime: " + subsidyTime);
// String outTime = signDate + " " + signTime;
// bb.writeLog("outTime: " + outTime);
// if (outTime.compareTo(subsidyTime) > 0 ) {
// zeroPointSub = 1;
// }
// }
// }
if ( "0" . equals ( grouptype ) ) { //责任制--00点
String kqgroups = Util . null2String ( groupMap . get ( grouptype ) ) ;
String kqgroups = Util . null2String ( groupMap . get ( grouptype ) ) ;
// bb.writeLog("kqgroups: " + kqgroups);
bb . writeLog ( "kqgroups: " + kqgroups ) ;
List < String > groupList = Arrays . asList ( kqgroups . split ( "," ) ) ;
List < String > groupList = Arrays . asList ( kqgroups . split ( "," ) ) ;
// bb.writeLog("groupList: " + groupList);
bb . writeLog ( "groupList: " + groupList ) ;
if ( groupList . contains ( groupid ) ) {
if ( groupList . contains ( groupid ) ) {
//00 :00
//23:00
if ( signTime . length ( ) = = 5 ) {
if ( signTime . length ( ) = = 5 ) {
signTime = signTime + ":00" ;
signTime = signTime + ":00" ;
}
}
// LocalDate date = LocalDate.parse(kqDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
// LocalDate localDate = date.plusDays(1);
// String kqDateNew = localDate.toString();
String subsidyTime = kqDate + " 23:00:00" ;
String subsidyTime = kqDate + " 23:00:00" ;
bb . writeLog ( "subsidyTime: " + subsidyTime ) ;
bb . writeLog ( "subsidyTime: " + subsidyTime ) ;
String outTime = signDate + " " + signTime ;
String outTime = signDate + " " + signTime ;
bb . writeLog ( "outTime: " + outTime ) ;
bb . writeLog ( "outTime: " + outTime ) ;
if ( outTime . compareTo ( subsidyTime ) > 0 ) {
if ( outTime . compareTo ( subsidyTime ) > 0 ) {
offGood = true ;
zeroPointSub = 1 ;
}
}
}
}
}
}
}
}
if ( "1" . equals ( checkInfo . get ( "signType" ) ) & & ! inGood ) { //签到
String signStatus = Util . null2String ( checkInfo . get ( "signStatus" ) ) ;
if ( StringUtils . isEmpty ( signStatus ) | | ! signStatus . equalsIgnoreCase ( ButtonStatusEnum . NORMAL . getStatusCode ( ) ) ) {
continue ;
}
}
String signDate = Util . null2String ( checkInfo . get ( "signDate" ) ) ;
if ( "1" . equals ( grouptype ) ) { //排班制--00点
String signTime = Util . null2String ( checkInfo . get ( "signTime" ) ) ;
bb . writeLog ( "signDate: " + signDate ) ;
bb . writeLog ( "signTime: " + signTime ) ;
if ( groupMap ! = null & & groupMap . size ( ) > 0 ) {
for ( String grouptype : groupMap . keySet ( ) ) {
bb . writeLog ( "grouptype: " + grouptype ) ;
if ( "0" . equals ( grouptype ) ) { //责任制--23点
String kqgroups = Util . null2String ( groupMap . get ( grouptype ) ) ;
String kqgroups = Util . null2String ( groupMap . get ( grouptype ) ) ;
bb . writeLog ( "kqgroups: " + kqgroups ) ;
bb . writeLog ( "kqgroups: " + kqgroups ) ;
List < String > groupList = Arrays . asList ( kqgroups . split ( "," ) ) ;
List < String > groupList = Arrays . asList ( kqgroups . split ( "," ) ) ;
bb . writeLog ( "groupList: " + groupList ) ;
bb . writeLog ( "groupList: " + groupList ) ;
if ( groupList . contains ( groupid ) ) {
if ( groupList . contains ( groupid ) ) {
//23 :00
//00:00
if ( signTime . length ( ) = = 5 ) {
if ( signTime . length ( ) = = 5 ) {
signTime = signTime + ":00" ;
signTime = signTime + ":00" ;
}
}
String subsidyTime = kqDate + " 08:30:00" ;
LocalDate date = LocalDate . parse ( kqDate , DateTimeFormatter . ofPattern ( "yyyy-MM-dd" ) ) ;
LocalDate localDate = date . plusDays ( 1 ) ;
String kqDateNew = localDate . toString ( ) ;
String subsidyTime = kqDateNew + " 00:00:00" ;
bb . writeLog ( "subsidyTime: " + subsidyTime ) ;
bb . writeLog ( "subsidyTime: " + subsidyTime ) ;
String inTime = signDate + " " + signTime ;
String outTime = signDate + " " + signTime ;
bb . writeLog ( "inTime: " + inTime ) ;
bb . writeLog ( "outTime: " + outTime ) ;
if ( subsidyTime . compareTo ( inTime ) > 0 ) {
if ( outTime . compareTo ( subsidyTime ) > 0 ) {
inGood = true ;
zeroPointSub = 1 ;
}
}
}
}
// if ("1".equals(grouptype)) {//排班制--00点
// String kqgroups = Util.null2String(groupMap.get(grouptype));
// bb.writeLog("kqgroups: " + kqgroups);
// List<String> groupList = Arrays.asList(kqgroups.split(","));
// bb.writeLog("groupList: " + groupList);
// if(groupList.contains(groupid)) {
// //00:00
// if (signTime.length() == 5) {
// signTime = signTime + ":00";
// }
// LocalDate date = LocalDate.parse(kqDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
// LocalDate localDate = date.plusDays(1);
// String kqDateNew = localDate.toString();
// String subsidyTime = kqDateNew + " 00:00:00";
// bb.writeLog("subsidyTime: " + subsidyTime);
// String outTime = signDate + " " + signTime;
// bb.writeLog("outTime: " + outTime);
// if (outTime.compareTo(subsidyTime) > 0 ) {
// zeroPointSub = 1;
// }
// }
// }
}
}
}
}
}
}
}
}
}
}
if ( offGood & & inGood ) {
zeroPointSub = 1 ;
}
}
bb . writeLog ( "zeroPointSub: " + zeroPointSub ) ;
bb . writeLog ( "zeroPointSub: " + zeroPointSub ) ;
/*考勤二开--零点补助end*/
/*考勤二开--零点补助end*/
@ -1199,7 +1111,7 @@ public class KQFormatData extends BaseBean {
params . add ( zeroPointSub ) ;
params . add ( zeroPointSub ) ;
/*考勤二开--零点补助end*/
/*考勤二开--零点补助end*/
bb . writeLog ( "params end. " ) ;
bb . writeLog ( "params : " + params ) ;
Map < String , Object > definedFieldInfo = new KQFormatBiz ( ) . getDefinedField ( ) ;
Map < String , Object > definedFieldInfo = new KQFormatBiz ( ) . getDefinedField ( ) ;
String [ ] definedFields = Util . splitString ( Util . null2String ( definedFieldInfo . get ( "definedField" ) ) , "," ) ;
String [ ] definedFields = Util . splitString ( Util . null2String ( definedFieldInfo . get ( "definedField" ) ) , "," ) ;
@ -1425,43 +1337,17 @@ public class KQFormatData extends BaseBean {
nightShiftList . add ( shift ) ;
nightShiftList . add ( shift ) ;
}
}
}
}
//获取加班时长
Map < String , Object > dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance ( userId , kqDate ) ;
// 获取责任制、排班次班次
Set < String > zrzbcSet = new HashSet < > ( ) ;
Set < String > pbzbcSet = new HashSet < > ( ) ;
String acqSql = "select kqgroup, grouptype from uf_ZeroPointSubSft" ;
rs . executeQuery ( acqSql ) ;
while ( rs . next ( ) ) {
String kqgroup = Util . null2String ( rs . getString ( "kqgroup" ) ) ;
String grouptype = Util . null2String ( rs . getString ( "grouptype" ) ) ;
if ( StringUtils . isNotBlank ( kqgroup ) & & StringUtils . equals ( grouptype , "0" ) ) {
zrzbcSet . addAll ( Arrays . asList ( kqgroup . split ( "," ) ) ) ;
}
if ( StringUtils . isNotBlank ( kqgroup ) & & StringUtils . equals ( grouptype , "1" ) ) {
pbzbcSet . addAll ( Arrays . asList ( kqgroup . split ( "," ) ) ) ;
}
}
if ( nightShiftList ! = null & nightShiftList . size ( ) > 0 ) {
if ( nightShiftList ! = null & nightShiftList . size ( ) > 0 ) {
KQGroupMemberComInfo kqGroupMemberComInfo = new KQGroupMemberComInfo ( ) ;
HostarUtil houtil = new HostarUtil ( ) ;
HostarUtil houtil = new HostarUtil ( ) ;
//先获取到出勤时长
//先获取到出勤时长
Map < String , Double > signminsMap = new HashMap < > ( ) ;
Map < String , Double > attendanceMinsMap = new HashMap < > ( ) ;
Map < String , Double > attendanceMinsMap = new HashMap < > ( ) ;
String acqAttenSql = " select resourceid, attendancemins, kqdate ,signmins from kq_format_total where resourceid in (" + userId + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'" ;
String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + userId + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'" ;
rs . executeQuery ( acqAttenSql ) ;
rs . executeQuery ( acqAttenSql ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
String resourceid = Util . null2String ( rs . getString ( "resourceid" ) ) ;
String resourceid = Util . null2String ( rs . getString ( "resourceid" ) ) ;
Double attendancemins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "attendancemins" ) ) ) ;
Double attendancemins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "attendancemins" ) ) ) ;
Double signmins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "signmins" ) ) ) ;
String kqdate = Util . null2String ( rs . getString ( "kqdate" ) ) ;
String kqdate = Util . null2String ( rs . getString ( "kqdate" ) ) ;
if ( signmins > = 0.00 ) {
signminsMap . put ( resourceid + "|" + kqdate , signmins ) ;
}
if ( attendancemins > = 0.00 ) {
if ( attendancemins > = 0.00 ) {
attendanceMinsMap . put ( resourceid + "|" + kqdate , attendancemins ) ;
attendanceMinsMap . put ( resourceid + "|" + kqdate , attendancemins ) ;
}
}
@ -1476,38 +1362,11 @@ public class KQFormatData extends BaseBean {
if ( ! nightShiftList . contains ( String . valueOf ( serialid ) ) ) {
if ( ! nightShiftList . contains ( String . valueOf ( serialid ) ) ) {
return "0" ;
return "0" ;
}
}
} else {
return "0" ;
}
}
}
}
String groupId = kqGroupMemberComInfo . getKQGroupId ( userId , kqDate ) ;
if ( ( ! CollectionUtils . isEmpty ( pbzbcSet ) ) & & pbzbcSet . contains ( groupId ) ) {
double workingDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( userId + "|" + kqDate + "|workingDayOvertime_4leave" ) ) ) ;
workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave ;
double restDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( userId + "|" + kqDate + "|restDayOvertime_4leave" ) ) ) ;
restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave ;
double holidayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( userId + "|" + kqDate + "|holidayOvertime_4leave" ) ) ) ;
holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave ;
double workingDayOvertime_nonleave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( userId + "|" + kqDate + "|workingDayOvertime_nonleave" ) ) ) ;
workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave ;
double restDayOvertime_nonleave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( userId + "|" + kqDate + "|restDayOvertime_nonleave" ) ) ) ;
restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave ;
double holidayOvertime_nonleave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( userId + "|" + kqDate + "|holidayOvertime_nonleave" ) ) ) ;
holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave ;
double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave +
workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave ;
Double attendanceMins = Util . getDoubleValue ( Util . null2String ( attendanceMinsMap . get ( userId + "|" + kqDate ) ) ) ;
Double attendanceMins = Util . getDoubleValue ( Util . null2String ( attendanceMinsMap . get ( userId + "|" + kqDate ) ) ) ;
value = ( Math . floor ( ( ( attendanceMins < 0.00 ? 0.00 : attendanceMins ) + temp ) / 60 ) > = 8.00 ) ? "1" : "0" ;
value = ( ( attendanceMins / 60 ) > = 8.00 ) ? "1" : "0" ;
}
if ( ( ! CollectionUtils . isEmpty ( zrzbcSet ) ) & & zrzbcSet . contains ( groupId ) ) {
Double signmins = Util . getDoubleValue ( Util . null2String ( signminsMap . get ( userId + "|" + kqDate ) ) ) ;
value = ( ( signmins / 60 ) > = 9.00 ) ? "1" : "0" ;
}
}
}
} catch ( Exception e ) {
} catch ( Exception e ) {
bb . writeLog ( "get NightShiftSubsidy error:" + e . getMessage ( ) ) ;
bb . writeLog ( "get NightShiftSubsidy error:" + e . getMessage ( ) ) ;
@ -1528,28 +1387,12 @@ public class KQFormatData extends BaseBean {
//获取加班时长
//获取加班时长
Map < String , Object > dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance ( userId , kqDate ) ;
Map < String , Object > dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance ( userId , kqDate ) ;
// 获取责任制、排班次班次
Set < String > zrzbcSet = new HashSet < > ( ) ;
Set < String > pbzbcSet = new HashSet < > ( ) ;
String acqSql = "select kqgroup, grouptype from uf_ZeroPointSubSft" ;
rs . executeQuery ( acqSql ) ;
while ( rs . next ( ) ) {
String kqgroup = Util . null2String ( rs . getString ( "kqgroup" ) ) ;
String grouptype = Util . null2String ( rs . getString ( "grouptype" ) ) ;
if ( StringUtils . isNotBlank ( kqgroup ) & & StringUtils . equals ( grouptype , "0" ) ) {
zrzbcSet . addAll ( Arrays . asList ( kqgroup . split ( "," ) ) ) ;
}
if ( StringUtils . isNotBlank ( kqgroup ) & & StringUtils . equals ( grouptype , "1" ) ) {
pbzbcSet . addAll ( Arrays . asList ( kqgroup . split ( "," ) ) ) ;
}
}
String otherstatsub = Util . null2String ( bb . getPropValue ( "project_hostar" , "otherstatsubcompany" ) ) ;
String otherstatsub = Util . null2String ( bb . getPropValue ( "project_hostar" , "otherstatsubcompany" ) ) ;
if ( StringUtils . isNotBlank ( otherstatsub ) ) {
if ( StringUtils . isNotBlank ( otherstatsub ) ) {
//查询该分部下的人员
//查询该分部下的人员
List < String > resIds = new ArrayList < > ( ) ;
List < String > resIds = new ArrayList < > ( ) ;
sqlWhere + = " and a.subcompanyid1 in (" + otherstatsub + ") " ;
sqlWhere + = " and a.subcompanyid1 in (" + otherstatsub + ") " ;
String acqResSql = "select a.id from hrmresource a where 1=1 " + sqlWhere ;
String acqResSql = "select a.id from hrmresource a where a.status in (0,1,2,3) " + sqlWhere ;
bb . writeLog ( "acqResSql: " + acqResSql ) ;
bb . writeLog ( "acqResSql: " + acqResSql ) ;
rs . executeQuery ( acqResSql ) ;
rs . executeQuery ( acqResSql ) ;
@ -1559,27 +1402,19 @@ public class KQFormatData extends BaseBean {
resIds . add ( id ) ;
resIds . add ( id ) ;
}
}
}
}
// bb.writeLog("resIds: " + resIds);
bb . writeLog ( "resIds: " + resIds ) ;
KQGroupMemberComInfo kqGroupMemberComInfo = new KQGroupMemberComInfo ( ) ;
if ( resIds ! = null & & resIds . size ( ) > 0 & & StringUtils . isNotBlank ( kqDate ) ) {
if ( resIds ! = null & & resIds . size ( ) > 0 & & StringUtils . isNotBlank ( kqDate ) ) {
HostarUtil houtil = new HostarUtil ( ) ;
HostarUtil houtil = new HostarUtil ( ) ;
//先获取到实际打卡时长
//先获取到出勤时长
Map < String , Double > signminsMap = new HashMap < > ( ) ;
Map < String , Double > attendanceMinsMap = new HashMap < > ( ) ;
Map < String , Double > attendanceMinsMap = new HashMap < > ( ) ;
String acqAttenSql = " select resourceid, attendancemins, kqdate ,signmins from kq_format_total where resourceid in (" + String . join ( "," , resIds ) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'" ;
String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + String . join ( "," , resIds ) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'" ;
rs . executeQuery ( acqAttenSql ) ;
rs . executeQuery ( acqAttenSql ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
String resourceid = Util . null2String ( rs . getString ( "resourceid" ) ) ;
String resourceid = Util . null2String ( rs . getString ( "resourceid" ) ) ;
Double attendancemins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "attendancemins" ) ) ) ;
Double attendancemins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "attendancemins" ) ) ) ;
Double signmins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "signmins" ) ) ) ;
String kqdate = Util . null2String ( rs . getString ( "kqdate" ) ) ;
String kqdate = Util . null2String ( rs . getString ( "kqdate" ) ) ;
if ( signmins > = 0.00 ) {
// double signTemp = signmins / 60;
// int quotient = (int) (signTemp / 6);
signminsMap . put ( resourceid + "|" + kqdate , signmins ) ;
}
if ( attendancemins > = 0.00 ) {
if ( attendancemins > = 0.00 ) {
attendanceMinsMap . put ( resourceid + "|" + kqdate , attendancemins ) ;
attendanceMinsMap . put ( resourceid + "|" + kqdate , attendancemins ) ;
}
}
@ -1683,42 +1518,18 @@ public class KQFormatData extends BaseBean {
}
}
Integer signNumber = 0 ;
Integer signNumber = 0 ;
if ( signIdList ! = null & & signIdList . size ( ) > 0 ) {
if ( signIdList ! = null & & signIdList . size ( ) > 0 ) {
String acqShowAddress = "select showaddress,addr ,signfrom from hrmschedulesign where id in (" + String . join ( "," , signIdList ) + ") " ;
String acqShowAddress = "select showaddress,addr from hrmschedulesign where id in (" + String . join ( "," , signIdList ) + ") " ;
// bb.writeLog("acqShowAddress: " + acqShowAddress);
// bb.writeLog("acqShowAddress: " + acqShowAddress);
rs . executeQuery ( acqShowAddress ) ;
rs . executeQuery ( acqShowAddress ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
String showaddress = Util . null2String ( rs . getString ( "showaddress" ) ) ;
String showaddress = Util . null2String ( rs . getString ( "showaddress" ) ) ;
String signfrom = Util . null2String ( rs . getString ( "signfrom" ) ) ;
if ( StringUtils . isEmpty ( signfrom ) | | ! StringUtils . equals ( signfrom , "e9mobile" ) ) {
signNumber = signNumber + 1 ;
}
String addr = Util . null2String ( rs . getString ( "addr" ) ) ;
String addr = Util . null2String ( rs . getString ( "addr" ) ) ;
if ( "鸿仕达" . equals ( showaddress ) | | "hostar" . equalsIgnoreCase ( showaddress ) | | "鸿仕达" . equals ( addr ) | | "hostar" . equalsIgnoreCase ( addr ) ) {
if ( "鸿仕达" . equals ( showaddress ) | | "hostar" . equalsIgnoreCase ( showaddress ) | | "鸿仕达" . equals ( addr ) | | "hostar" . equalsIgnoreCase ( addr ) ) {
signNumber = signNumber + 1 ;
signNumber = signNumber + 1 ;
}
}
if ( StringUtils . isNotEmpty ( showaddress ) & & ( showaddress . contains ( "鸿仕达" ) | | showaddress . toLowerCase ( ) . contains ( "hostar" ) ) ) {
signNumber = signNumber + 1 ;
}
if ( StringUtils . isNotEmpty ( addr ) & & ( addr . contains ( "鸿仕达" ) | | addr . toLowerCase ( ) . contains ( "hostar" ) ) ) {
signNumber = signNumber + 1 ;
}
if ( StringUtils . isNotEmpty ( showaddress ) & & ( showaddress . contains ( "台湾" ) | | showaddress . contains ( "越南" )
| | showaddress . toLowerCase ( ) . contains ( "hostar" ) | | showaddress . toLowerCase ( ) . contains ( "vinh" ) | | showaddress . toLowerCase ( ) . contains ( "ha noi" ) ) ) {
signNumber = signNumber + 1 ;
}
if ( StringUtils . isNotEmpty ( addr ) & & ( addr . contains ( "台湾" ) | | addr . contains ( "越南" )
| | addr . toLowerCase ( ) . contains ( "hostar" ) | | addr . toLowerCase ( ) . contains ( "vinh" ) | | addr . toLowerCase ( ) . contains ( "ha noi" ) ) ) {
signNumber = signNumber + 1 ;
}
}
}
}
}
String groupId = kqGroupMemberComInfo . getKQGroupId ( res , kqDate ) ;
if ( signNumber = = 0 ) {
if ( signNumber = = 0 ) {
double minValue = 0.00 ;
if ( ( ! CollectionUtils . isEmpty ( pbzbcSet ) ) & & pbzbcSet . contains ( groupId ) ) {
double workingDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|workingDayOvertime_4leave" ) ) ) ;
double workingDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|workingDayOvertime_4leave" ) ) ) ;
workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave ;
workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave ;
double restDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|restDayOvertime_4leave" ) ) ) ;
double restDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|restDayOvertime_4leave" ) ) ) ;
@ -1735,12 +1546,10 @@ public class KQFormatData extends BaseBean {
double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave +
double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave +
workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave ;
workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave ;
// bb.writeLog("-=-temp:" + temp);
Double attendanceMins = Util . getDoubleValue ( Util . null2String ( attendanceMinsMap . get ( res + "|" + kqDate ) ) ) ;
Double attendanceMins = Util . getDoubleValue ( Util . null2String ( attendanceMinsMap . get ( res + "|" + kqDate ) ) ) ;
if ( attendanceMins < 0.00 ) {
// bb.writeLog("-=-attendanceMins:" + attendanceMins);
attendanceMins = 0.00 ;
double v = Math . round ( ( ( attendanceMins < 0.00 ) ? 0.00 : attendanceMins ) + temp ) / 60.00 ;
}
minValue = attendanceMins + temp ;
double v = Math . round ( Math . max ( minValue , 0.00 ) ) / 60.00 ;
value = "0" ;
value = "0" ;
if ( v > = 4.00 & & v < 9.00 ) {
if ( v > = 4.00 & & v < 9.00 ) {
value = "1" ;
value = "1" ;
@ -1748,11 +1557,6 @@ public class KQFormatData extends BaseBean {
value = "2" ;
value = "2" ;
}
}
}
}
if ( ( ! CollectionUtils . isEmpty ( zrzbcSet ) ) & & zrzbcSet . contains ( groupId ) ) {
minValue = Util . getDoubleValue ( Util . null2String ( signminsMap . get ( res + "|" + kqDate ) ) ) ;
value = String . valueOf ( Math . floor ( ( Math . max ( minValue , 0.00 ) ) / 360 ) ) ;
}
}
}
}
}
}
}
}
@ -1840,22 +1644,6 @@ public class KQFormatData extends BaseBean {
//获取加班时长
//获取加班时长
Map < String , Object > dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance ( userId , kqDate ) ;
Map < String , Object > dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance ( userId , kqDate ) ;
// 获取责任制、排班次班次
Set < String > zrzbcSet = new HashSet < > ( ) ;
Set < String > pbzbcSet = new HashSet < > ( ) ;
String acqSql = "select kqgroup, grouptype from uf_ZeroPointSubSft" ;
rs . executeQuery ( acqSql ) ;
while ( rs . next ( ) ) {
String kqgroup = Util . null2String ( rs . getString ( "kqgroup" ) ) ;
String grouptype = Util . null2String ( rs . getString ( "grouptype" ) ) ;
if ( StringUtils . isNotBlank ( kqgroup ) & & StringUtils . equals ( grouptype , "0" ) ) {
zrzbcSet . addAll ( Arrays . asList ( kqgroup . split ( "," ) ) ) ;
}
if ( StringUtils . isNotBlank ( kqgroup ) & & StringUtils . equals ( grouptype , "1" ) ) {
pbzbcSet . addAll ( Arrays . asList ( kqgroup . split ( "," ) ) ) ;
}
}
//获取夜班班次
//获取夜班班次
List < String > nightShiftList = new ArrayList < > ( ) ;
List < String > nightShiftList = new ArrayList < > ( ) ;
String acqNightShiftSql = "select shift from uf_nightshiftmanage where isdelete is null or isdelete = 0" ;
String acqNightShiftSql = "select shift from uf_nightshiftmanage where isdelete is null or isdelete = 0" ;
@ -1872,7 +1660,7 @@ public class KQFormatData extends BaseBean {
//查询该分部下的人员
//查询该分部下的人员
List < String > resIds = new ArrayList < > ( ) ;
List < String > resIds = new ArrayList < > ( ) ;
sqlWhere + = " and a.subcompanyid1 in (" + nightshiftsub + ") " ;
sqlWhere + = " and a.subcompanyid1 in (" + nightshiftsub + ") " ;
String acqResSql = "select a.id from hrmresource a where 1=1 " + sqlWhere ;
String acqResSql = "select a.id from hrmresource a where a.status in (0,1,2,3) " + sqlWhere ;
bb . writeLog ( "acqResSql: " + acqResSql ) ;
bb . writeLog ( "acqResSql: " + acqResSql ) ;
rs . executeQuery ( acqResSql ) ;
rs . executeQuery ( acqResSql ) ;
@ -1882,26 +1670,18 @@ public class KQFormatData extends BaseBean {
resIds . add ( id ) ;
resIds . add ( id ) ;
}
}
}
}
// bb.writeLog("resIds: " + resIds);
bb . writeLog ( "resIds: " + resIds ) ;
KQGroupMemberComInfo kqGroupMemberComInfo = new KQGroupMemberComInfo ( ) ;
if ( resIds ! = null & & resIds . size ( ) > 0 ) {
if ( resIds ! = null & & resIds . size ( ) > 0 ) {
HostarUtil houtil = new HostarUtil ( ) ;
HostarUtil houtil = new HostarUtil ( ) ;
//先获取到出勤时长
//先获取到出勤时长
Map < String , Double > signminsMap = new HashMap < > ( ) ;
Map < String , Double > attendanceMinsMap = new HashMap < > ( ) ;
Map < String , Double > attendanceMinsMap = new HashMap < > ( ) ;
String acqAttenSql = " select resourceid, attendancemins, kqdate ,signmins from kq_format_total where resourceid in (" + String . join ( "," , resIds ) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'" ;
String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + String . join ( "," , resIds ) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'" ;
rs . executeQuery ( acqAttenSql ) ;
rs . executeQuery ( acqAttenSql ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
String resourceid = Util . null2String ( rs . getString ( "resourceid" ) ) ;
String resourceid = Util . null2String ( rs . getString ( "resourceid" ) ) ;
Double attendancemins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "attendancemins" ) ) ) ;
Double attendancemins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "attendancemins" ) ) ) ;
Double signmins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "signmins" ) ) ) ;
String kqdate = Util . null2String ( rs . getString ( "kqdate" ) ) ;
String kqdate = Util . null2String ( rs . getString ( "kqdate" ) ) ;
if ( signmins > = 0.00 ) {
// double signTemp = signmins / 60;
// int quotient = (int) (signTemp / 6);
signminsMap . put ( resourceid + "|" + kqdate , signmins ) ;
}
if ( attendancemins > = 0.00 ) {
if ( attendancemins > = 0.00 ) {
attendanceMinsMap . put ( resourceid + "|" + kqdate , attendancemins ) ;
attendanceMinsMap . put ( resourceid + "|" + kqdate , attendancemins ) ;
}
}
@ -1916,20 +1696,8 @@ public class KQFormatData extends BaseBean {
if ( ! nightShiftList . contains ( String . valueOf ( serialid ) ) ) {
if ( ! nightShiftList . contains ( String . valueOf ( serialid ) ) ) {
continue ;
continue ;
}
}
} else {
continue ;
}
}
}
Object groupIdObj = serialInfo . get ( "groupId" ) ;
String groupId = null ;
if ( Objects . isNull ( groupIdObj ) ) {
groupId = kqGroupMemberComInfo . getKQGroupId ( res , kqDate ) ;
} else {
groupId = groupIdObj . toString ( ) ;
}
}
if ( ( ! CollectionUtils . isEmpty ( pbzbcSet ) ) & & pbzbcSet . contains ( groupId ) ) {
double workingDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|workingDayOvertime_4leave" ) ) ) ;
double workingDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|workingDayOvertime_4leave" ) ) ) ;
workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave ;
workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave ;
double restDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|restDayOvertime_4leave" ) ) ) ;
double restDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|restDayOvertime_4leave" ) ) ) ;
@ -1946,14 +1714,11 @@ public class KQFormatData extends BaseBean {
double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave +
double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave +
workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave ;
workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave ;
// bb.writeLog("-=-temp:" + temp);
Double attendanceMins = Util . getDoubleValue ( Util . null2String ( attendanceMinsMap . get ( res + "|" + kqDate ) ) ) ;
Double attendanceMins = Util . getDoubleValue ( Util . null2String ( attendanceMinsMap . get ( res + "|" + kqDate ) ) ) ;
// bb.writeLog("-=-attendanceMins:" + attendanceMins);
value = String . valueOf ( Math . floor ( ( ( attendanceMins < 0.00 ? 0.00 : attendanceMins ) + temp ) / 300 ) ) ;
value = String . valueOf ( Math . floor ( ( ( attendanceMins < 0.00 ? 0.00 : attendanceMins ) + temp ) / 300 ) ) ;
}
}
if ( ( ! CollectionUtils . isEmpty ( zrzbcSet ) ) & & zrzbcSet . contains ( groupId ) ) {
Double signmins = Util . getDoubleValue ( Util . null2String ( signminsMap . get ( res + "|" + kqDate ) ) ) ;
value = String . valueOf ( Math . floor ( ( signmins < 0.00 ? 0.00 : signmins ) / 360 ) ) ;
}
}
}
}
}
}
}
}
@ -1996,22 +1761,6 @@ public class KQFormatData extends BaseBean {
sqlWhere + = " and a.subcompanyid1 not in (" + subComoanys + ") " ;
sqlWhere + = " and a.subcompanyid1 not in (" + subComoanys + ") " ;
}
}
// 获取责任制、排班次班次
Set < String > zrzbcSet = new HashSet < > ( ) ;
Set < String > pbzbcSet = new HashSet < > ( ) ;
String acqSql = "select kqgroup, grouptype from uf_ZeroPointSubSft" ;
rs . executeQuery ( acqSql ) ;
while ( rs . next ( ) ) {
String kqgroup = Util . null2String ( rs . getString ( "kqgroup" ) ) ;
String grouptype = Util . null2String ( rs . getString ( "grouptype" ) ) ;
if ( StringUtils . isNotBlank ( kqgroup ) & & StringUtils . equals ( grouptype , "0" ) ) {
zrzbcSet . addAll ( Arrays . asList ( kqgroup . split ( "," ) ) ) ;
}
if ( StringUtils . isNotBlank ( kqgroup ) & & StringUtils . equals ( grouptype , "1" ) ) {
pbzbcSet . addAll ( Arrays . asList ( kqgroup . split ( "," ) ) ) ;
}
}
//指定人员不享受
//指定人员不享受
List < String > noRes = new ArrayList < > ( ) ;
List < String > noRes = new ArrayList < > ( ) ;
String acqNoResSql = "select resourceid from uf_NoStatAllRes where isdelete = 0 or isdelete is null" ;
String acqNoResSql = "select resourceid from uf_NoStatAllRes where isdelete = 0 or isdelete is null" ;
@ -2028,7 +1777,7 @@ public class KQFormatData extends BaseBean {
List < String > resIds = new ArrayList < > ( ) ;
List < String > resIds = new ArrayList < > ( ) ;
String acqResSql = "select a.id from hrmresource a where 1=1 " + sqlWhere ;
String acqResSql = "select a.id from hrmresource a where a.status in (0,1,2,3) " + sqlWhere ;
bb . writeLog ( "acqResSql: " + acqResSql ) ;
bb . writeLog ( "acqResSql: " + acqResSql ) ;
rs . executeQuery ( acqResSql ) ;
rs . executeQuery ( acqResSql ) ;
@ -2038,28 +1787,21 @@ public class KQFormatData extends BaseBean {
resIds . add ( id ) ;
resIds . add ( id ) ;
}
}
}
}
// bb.writeLog("resIds: " + resIds);
bb . writeLog ( "resIds: " + resIds ) ;
if ( resIds ! = null & & resIds . size ( ) > 0 & & StringUtils . isNotBlank ( kqDate ) ) {
if ( resIds ! = null & & resIds . size ( ) > 0 & & StringUtils . isNotBlank ( kqDate ) ) {
HostarUtil houtil = new HostarUtil ( ) ;
HostarUtil houtil = new HostarUtil ( ) ;
KQGroupMemberComInfo kqGroupMemberComInfo = new KQGroupMemberComInfo ( ) ;
KQGroupMemberComInfo kqGroupMemberComInfo = new KQGroupMemberComInfo ( ) ;
//先获取到实际打卡时长
//先获取到出勤时长
Map < String , Double > signminsMap = new HashMap < > ( ) ;
Map < String , Double > attendanceMinsMap = new HashMap < > ( ) ;
Map < String , Double > attendanceMinsMap = new HashMap < > ( ) ;
String acqAttenSql = " select resourceid, attendancemins, kqdate ,signmins from kq_format_total where resourceid in (" + String . join ( "," , resIds ) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'" ;
String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + String . join ( "," , resIds ) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'" ;
rs . executeQuery ( acqAttenSql ) ;
rs . executeQuery ( acqAttenSql ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
String resourceid = Util . null2String ( rs . getString ( "resourceid" ) ) ;
String resourceid = Util . null2String ( rs . getString ( "resourceid" ) ) ;
Double attendancemins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "attendancemins" ) ) ) ;
Double attendancemins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "attendancemins" ) ) ) ;
Double signmins = Util . getDoubleValue ( Util . null2String ( rs . getString ( "signmins" ) ) ) ;
String kqdate = Util . null2String ( rs . getString ( "kqdate" ) ) ;
String kqdate = Util . null2String ( rs . getString ( "kqdate" ) ) ;
if ( signmins > = 0.00 ) {
// double signTemp = signmins / 60;
// int quotient = (int) (signTemp / 6);
signminsMap . put ( resourceid + "|" + kqdate , signmins ) ;
}
if ( attendancemins > = 0.00 ) {
if ( attendancemins > = 0.00 ) {
attendanceMinsMap . put ( resourceid + "|" + kqdate , attendancemins ) ;
attendanceMinsMap . put ( resourceid + "|" + kqdate , attendancemins ) ;
}
}
@ -2168,42 +1910,22 @@ public class KQFormatData extends BaseBean {
}
}
}
}
}
}
// bb.writeLog("signIdList: " + signIdList);
bb . writeLog ( "signIdList: " + signIdList ) ;
Integer signNumber = 0 ;
Integer signNumber = 0 ;
if ( signIdList ! = null & & signIdList . size ( ) > 0 ) {
if ( signIdList ! = null & & signIdList . size ( ) > 0 ) {
String acqShowAddress = "select showaddress,addr ,signfrom from hrmschedulesign where id in (" + String . join ( "," , signIdList ) + ") " ;
String acqShowAddress = "select showaddress,addr from hrmschedulesign where id in (" + String . join ( "," , signIdList ) + ") " ;
// bb.writeLog("acqShowAddress: " + acqShowAddress);
bb . writeLog ( "acqShowAddress: " + acqShowAddress ) ;
rs . executeQuery ( acqShowAddress ) ;
rs . executeQuery ( acqShowAddress ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
String showaddress = Util . null2String ( rs . getString ( "showaddress" ) ) ;
String showaddress = Util . null2String ( rs . getString ( "showaddress" ) ) ;
String signfrom = Util . null2String ( rs . getString ( "signfrom" ) ) ;
if ( StringUtils . isEmpty ( signfrom ) | | ! StringUtils . equals ( signfrom , "e9mobile" ) ) {
signNumber = signNumber + 1 ;
}
String addr = Util . null2String ( rs . getString ( "addr" ) ) ;
String addr = Util . null2String ( rs . getString ( "addr" ) ) ;
if ( "鸿仕达" . equals ( showaddress ) | | "hostar" . equalsIgnoreCase ( showaddress ) | | "鸿仕达" . equals ( addr ) | | "hostar" . equalsIgnoreCase ( addr ) ) {
if ( "鸿仕达" . equals ( showaddress ) | | "hostar" . equalsIgnoreCase ( showaddress ) | | "鸿仕达" . equals ( addr ) | | "hostar" . equalsIgnoreCase ( addr ) ) {
signNumber = signNumber + 1 ;
signNumber = signNumber + 1 ;
}
}
if ( StringUtils . isNotEmpty ( showaddress ) & & ( showaddress . contains ( "鸿仕达" ) | | showaddress . toLowerCase ( ) . contains ( "hostar" ) ) ) {
signNumber = signNumber + 1 ;
}
if ( StringUtils . isNotEmpty ( addr ) & & ( addr . contains ( "鸿仕达" ) | | addr . toLowerCase ( ) . contains ( "hostar" ) ) ) {
signNumber = signNumber + 1 ;
}
if ( StringUtils . isNotEmpty ( showaddress ) & & ( showaddress . contains ( "台湾" ) | | showaddress . contains ( "越南" )
| | showaddress . toLowerCase ( ) . contains ( "hostar" ) | | showaddress . toLowerCase ( ) . contains ( "vinh" ) | | showaddress . toLowerCase ( ) . contains ( "ha noi" ) ) ) {
signNumber = signNumber + 1 ;
}
if ( StringUtils . isNotEmpty ( addr ) & & ( addr . contains ( "台湾" ) | | addr . contains ( "越南" )
| | addr . toLowerCase ( ) . contains ( "hostar" ) | | addr . toLowerCase ( ) . contains ( "vinh" ) | | addr . toLowerCase ( ) . contains ( "ha noi" ) ) ) {
signNumber = signNumber + 1 ;
}
}
}
}
}
if ( signNumber = = 0 ) {
if ( signNumber = = 0 ) {
if ( ( ! CollectionUtils . isEmpty ( pbzbcSet ) ) & & pbzbcSet . contains ( groupId ) ) {
double workingDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|workingDayOvertime_4leave" ) ) ) ;
double workingDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|workingDayOvertime_4leave" ) ) ) ;
workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave ;
workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave ;
double restDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|restDayOvertime_4leave" ) ) ) ;
double restDayOvertime_4leave = Util . getDoubleValue ( Util . null2String ( dailyFlowOverTimeData . get ( res + "|" + kqDate + "|restDayOvertime_4leave" ) ) ) ;
@ -2223,11 +1945,6 @@ public class KQFormatData extends BaseBean {
Double attendanceMins = Util . getDoubleValue ( Util . null2String ( attendanceMinsMap . get ( res + "|" + kqDate ) ) ) ;
Double attendanceMins = Util . getDoubleValue ( Util . null2String ( attendanceMinsMap . get ( res + "|" + kqDate ) ) ) ;
value = String . valueOf ( Math . floor ( ( ( attendanceMins < 0.00 ? 0.00 : attendanceMins ) + temp ) / 300 ) ) ;
value = String . valueOf ( Math . floor ( ( ( attendanceMins < 0.00 ? 0.00 : attendanceMins ) + temp ) / 300 ) ) ;
}
}
if ( ( ! CollectionUtils . isEmpty ( zrzbcSet ) ) & & zrzbcSet . contains ( groupId ) ) {
Double signmins = Util . getDoubleValue ( Util . null2String ( signminsMap . get ( res + "|" + kqDate ) ) ) ;
value = String . valueOf ( Math . floor ( ( signmins < 0.00 ? 0.00 : signmins ) / 360 ) ) ;
}
}
}
}
}
}
@ -2241,48 +1958,75 @@ public class KQFormatData extends BaseBean {
String value = "0" ;
String value = "0" ;
RecordSet rs = new RecordSet ( ) ;
RecordSet rs = new RecordSet ( ) ;
String sql = "" ;
String sql = "" ;
String sqlWhere = " " ;
try {
try {
// KQLeaveRulesComInfo kqLeaveRulesComInfo = new KQLeaveRulesComInfo();
KQLeaveRulesComInfo kqLeaveRulesComInfo = new KQLeaveRulesComInfo ( ) ;
if ( id . length ( ) > 0 ) {
sqlWhere + = " and b.id in(" + id + ") " ;
}
// 首先获取出差公出流程信息
// 首先获取出差公出流程信息
// Map<String, Object> evectionMap = new HashMap<>();
Map < String , Object > evectionMap = new HashMap < > ( ) ;
String evectionTableName = Util . null2String ( bb . getPropValue ( "project_hostar" , "evectionTableName" ) ) ;
String evectionTableName = Util . null2String ( bb . getPropValue ( "project_hostar" , "evectionTableName" ) ) ;
sql = " select a.* from (" +
sql = " select d.resourceid, d.belongdate, d.longitude, d.latitude from ( " +
"select id, requestid, jd as longitude, wd as latitude from " + evectionTableName +
" select a.belongdate, b.id as resourceid, b.subcompanyid1, b.departmentid, b.managerstr, b.managerid, b.loginid, c.jd as longitude, c.wd as latitude from kq_flow_split_evection a " +
" WHERE (sjccr = '" + id + "' or ','+CAST(nbtxr AS varchar(max))+',' like '%,'+CAST(" + id + " AS varchar(10))+',%') " +
" left join hrmresource b " +
" and ksrq <='" + kqDateA + "' and (((sjjsrq is null or sjjsrq = '') and yjjsrq >= '" + kqDateA + "') or (sjjsrq is not null and sjjsrq != '' and sjjsrq >= '" + kqDateA + "'))" +
" on b.id = a.resourceid " +
") a, workflow_requestbase b WHERE a.requestId = b.requestId and b.currentnodetype != 0" ;
" left join " + evectionTableName + " c " +
" on c.requestid = a.requestid " +
" where a.belongdate >='" + kqDateA + "' and a.belongdate <='" + kqDateA + "' " + sqlWhere +
" ) d " +
" where 1=1 " ;
bb . writeLog ( "sql: " + sql ) ;
bb . writeLog ( "sql: " + sql ) ;
boolean isGoing = false ;
rs . execute ( sql ) ;
rs . execute ( sql ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
isGoing = true ;
String resourceid = Util . null2String ( rs . getString ( "resourceid" ) ) ;
String belongdate = Util . null2String ( rs . getString ( "belongdate" ) ) ;
String longitude = Util . null2String ( rs . getString ( "longitude" ) ) ;
String latitude = Util . null2String ( rs . getString ( "latitude" ) ) ;
evectionMap . put ( belongdate + "|" + resourceid , longitude + "|" + latitude ) ;
}
}
bb . writeLog ( "evectionMap: " + evectionMap ) ;
//获取外勤打卡数据
KQWorkTime kqWorkTime = new KQWorkTime ( ) ;
kqWorkTime . setIsFormat ( true ) ;
Map < String , Map < String , Object > > lsCheckInfo = new HashMap < > ( ) ;
Map < String , Map < String , Object > > lsCheckInfo = new HashMap < > ( ) ;
List < Map < String , Object > > legWorkInfos = new ArrayList < > ( ) ;
for ( String key : evectionMap . keySet ( ) ) {
String [ ] split = key . split ( "\\|" ) ;
String kqDate = split [ 0 ] ;
String userId = split [ 1 ] ;
WorkTimeEntity workTime = kqWorkTime . getWorkTime ( userId , kqDate ) ;
List < TimeScopeEntity > lsSignTime = new ArrayList < > ( ) ;
List < TimeScopeEntity > lsWorkTime = new ArrayList < > ( ) ;
if ( workTime ! = null ) {
lsSignTime = workTime . getSignTime ( ) ; //允许打卡时间
lsWorkTime = workTime . getWorkTime ( ) ; //工作时间
}
if ( isGoing ) {
//只支持一天一次上下班
String acqLegWorkSignSql = "select operate_time, longitude, latitude,address from mobile_sign where operater = ? and operate_date = '" + kqDateA + "' order by operate_time asc " ;
if ( lsWorkTime ! = null & & lsWorkTime . size ( ) = = 1 ) {
rs . executeQuery ( acqLegWorkSignSql , id ) ;
TimeScopeEntity signTimeScope = lsSignTime . get ( 0 ) ;
TimeScopeEntity workTimeScope = lsWorkTime . get ( 0 ) ;
List < Map < String , Object > > legWorkInfos = new ArrayList < > ( ) ;
//获取允许打卡时间
String signBeginTime = signTimeScope . getBeginTime ( ) ;
if ( StringUtils . isNotBlank ( signBeginTime ) ) {
signBeginTime = signBeginTime + ":00" ;
}
//获取上班时间
String workBeginTime = workTimeScope . getBeginTime ( ) ;
if ( StringUtils . isNotBlank ( workBeginTime ) ) {
workBeginTime = workBeginTime + ":00" ;
}
String acqLegWorkSignSql = "select operate_time, longitude, latitude from mobile_sign where operater = ? and operate_date = '" + kqDate + "' and operate_time >='" + signBeginTime + "' order by operate_time asc " ;
rs . executeQuery ( acqLegWorkSignSql , userId ) ;
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" ) ) ;
if ( "hostar" . equalsIgnoreCase ( address ) | | "鸿仕达" . equals ( address ) | | "增善路" . equals ( address )
| | "星圃路" . equals ( address ) | | "智慧新城" . equals ( address ) ) {
continue ;
}
if ( StringUtils . isNotEmpty ( address ) & & ( address . contains ( "鸿仕达" ) | | address . contains ( "增善路" )
| | address . contains ( "星圃路" ) | | address . contains ( "智慧新城" ) | | address . toLowerCase ( ) . contains ( "hostar" ) ) ) {
continue ;
}
if ( StringUtils . isNotEmpty ( address ) & & ( address . contains ( "台湾" ) | | address . contains ( "越南" )
| | address . toLowerCase ( ) . contains ( "hostar" ) | | address . toLowerCase ( ) . contains ( "vinh" ) | | address . toLowerCase ( ) . contains ( "ha noi" ) ) ) {
continue ;
}
if ( StringUtils . isNotBlank ( operateTime ) & & StringUtils . isNotBlank ( longitude ) & & StringUtils . isNotBlank ( latitude ) ) {
if ( StringUtils . isNotBlank ( operateTime ) & & StringUtils . isNotBlank ( longitude ) & & StringUtils . isNotBlank ( latitude ) ) {
Map < String , Object > temp = new HashMap < > ( ) ;
Map < String , Object > temp = new HashMap < > ( ) ;
temp . put ( "operateTime" , operateTime ) ;
temp . put ( "operateTime" , operateTime ) ;
@ -2291,7 +2035,7 @@ public class KQFormatData extends BaseBean {
legWorkInfos . add ( temp ) ;
legWorkInfos . add ( temp ) ;
}
}
}
}
if ( legWorkInfos ! = null & & legWorkInfos . size ( ) > 1 ) {
if ( legWorkInfos ! = null & & legWorkInfos . size ( ) > 0 ) {
String tempSignIn = "" ;
String tempSignIn = "" ;
String tempSignInLatitude = "" ;
String tempSignInLatitude = "" ;
String tempSignInLongitude = "" ;
String tempSignInLongitude = "" ;
@ -2299,10 +2043,23 @@ public class KQFormatData extends BaseBean {
String tempSignOutLongitude = "" ;
String tempSignOutLongitude = "" ;
String tempSignOut = "" ;
String tempSignOut = "" ;
Map < String , Object > checkInfo = new HashMap < > ( ) ;
Map < String , Object > checkInfo = new HashMap < > ( ) ;
if ( legWorkInfos . size ( ) = = 1 ) { //只有一笔外勤卡直接算上班
Map < String , Object > temp = legWorkInfos . get ( 0 ) ;
String operateTime = Util . null2String ( temp . get ( "operateTime" ) ) ;
String longitude = Util . null2String ( temp . get ( "longitude" ) ) ;
String latitude = Util . null2String ( temp . get ( "latitude" ) ) ;
checkInfo . put ( "signDate" , kqDate ) ; //签到签退日期
checkInfo . put ( "signInTime" , operateTime ) ; //签到时间
checkInfo . put ( "signInLatitude" , latitude ) ; //签到纬度
checkInfo . put ( "signInLongitude" , longitude ) ; //签到经度
lsCheckInfo . put ( userId + "|" + kqDate , checkInfo ) ;
} else {
for ( Map < String , Object > temp : legWorkInfos ) {
for ( Map < String , Object > temp : legWorkInfos ) {
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" ) ) ;
if ( operateTime . compareTo ( workBeginTime ) < 0 ) { //获取上班时间点之前最早的一笔卡
if ( StringUtils . isBlank ( tempSignIn ) ) {
if ( StringUtils . isBlank ( tempSignIn ) ) {
tempSignIn = operateTime ;
tempSignIn = operateTime ;
tempSignInLatitude = latitude ;
tempSignInLatitude = latitude ;
@ -2314,7 +2071,9 @@ public class KQFormatData extends BaseBean {
tempSignInLongitude = longitude ;
tempSignInLongitude = longitude ;
}
}
}
}
if ( StringUtils . isBlank ( tempSignOut ) ) {
}
if ( operateTime . compareTo ( workBeginTime ) > 0 ) { //下班卡取最晚的一笔
if ( StringUtils . isBlank ( tempSignIn ) ) {
tempSignOut = operateTime ;
tempSignOut = operateTime ;
tempSignOutLatitude = latitude ;
tempSignOutLatitude = latitude ;
tempSignOutLongitude = longitude ;
tempSignOutLongitude = longitude ;
@ -2326,15 +2085,17 @@ public class KQFormatData extends BaseBean {
}
}
}
}
}
}
// }
}
checkInfo . put ( "signDate" , kqDate A ) ; //签到签退日期
checkInfo . put ( "signDate" , kqDate ) ; //签到签退日期
checkInfo . put ( "signInTime" , tempSignIn ) ; //签到时间
checkInfo . put ( "signInTime" , tempSignIn ) ; //签到时间
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 ( "signOutLatitude" , tempSignOutLatitude ) ; //签退纬度
checkInfo . put ( "signOutLatitude" , tempSignOutLatitude ) ; //签退纬度
checkInfo . put ( "signOutLongitude" , tempSignOutLongitude ) ; //签退经度
checkInfo . put ( "signOutLongitude" , tempSignOutLongitude ) ; //签退经度
lsCheckInfo . put ( id + "|" + kqDateA , checkInfo ) ;
lsCheckInfo . put ( userId + "|" + kqDate , checkInfo ) ;
}
}
}
}
}
}
@ -2359,13 +2120,14 @@ public class KQFormatData extends BaseBean {
//根据外勤打卡数据计算餐补数据
//根据外勤打卡数据计算餐补数据
for ( String key : lsCheckInfo . keySet ( ) ) {
for ( String key : lsCheckInfo . keySet ( ) ) {
// String[] split = key.split("\\|");
String [ ] split = key . split ( "\\|" ) ;
// String userId = split[0];
String userId = split [ 0 ] ;
// String kqDate = split[1];
String kqDate = split [ 1 ] ;
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" ) ) ;
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 ) {
@ -2382,8 +2144,7 @@ public class KQFormatData extends BaseBean {
if ( StringUtils . isEmpty ( value ) | | StringUtils . equals ( value , "0" ) ) {
if ( StringUtils . isEmpty ( value ) | | StringUtils . equals ( value , "0" ) ) {
value = "1" ;
value = "1" ;
} else {
} else {
int valueT = Integer . parseInt ( value ) + 1 ;
value = String . valueOf ( Integer . parseInt ( value ) ) ;
value = String . valueOf ( valueT ) ;
}
}
}
}
}
}
@ -2411,6 +2172,10 @@ public class KQFormatData extends BaseBean {
nightShiftList . add ( shift ) ;
nightShiftList . add ( shift ) ;
}
}
}
}
rs . executeQuery ( "select zeropoint from kq_format_total where resourceid = ? and kqdate = ?" , userId , kqDate ) ;
if ( rs . next ( ) ) {
value = rs . getString ( "zeropoint" ) ;
}
//获取当天班次
//获取当天班次
KQWorkTime kqWorkTime = new KQWorkTime ( ) ;
KQWorkTime kqWorkTime = new KQWorkTime ( ) ;
Map < String , Object > serialInfo = kqWorkTime . getSerialInfo ( userId , kqDate , false ) ;
Map < String , Object > serialInfo = kqWorkTime . getSerialInfo ( userId , kqDate , false ) ;
@ -2419,15 +2184,8 @@ public class KQFormatData extends BaseBean {
if ( serialid > 0 ) {
if ( serialid > 0 ) {
if ( ( ! CollectionUtils . isEmpty ( nightShiftList ) ) & & nightShiftList . contains ( String . valueOf ( serialid ) ) ) {
if ( ( ! CollectionUtils . isEmpty ( nightShiftList ) ) & & nightShiftList . contains ( String . valueOf ( serialid ) ) ) {
value = "0" ;
value = "0" ;
} else {
rs . executeQuery ( "select zeropoint from kq_format_total where resourceid = ? and kqdate = ?" , userId , kqDate ) ;
if ( rs . next ( ) ) {
value = rs . getString ( "zeropoint" ) ;
}
}
}
}
} else {
value = "0" ;
}
}
}
} catch ( Exception e ) {
} catch ( Exception e ) {
bb . writeLog ( "get ZeroBt error:" + e . getMessage ( ) ) ;
bb . writeLog ( "get ZeroBt error:" + e . getMessage ( ) ) ;