@ -64,116 +64,122 @@ public class AttendanceAnalysisWrapper extends Service {
for ( String analysisDate : analysisDateList ) {
/**获得人员考勤项目*/
Map < String , Object > getAttendacneParamMap = Maps . newHashMap ( ) ;
getAttendacneParamMap . put ( "userId" , userId ) ;
getAttendacneParamMap . put ( "departmentId" , departmentid ) ;
getAttendacneParamMap . put ( "subCompanyId" , subcompanyid1 ) ;
getAttendacneParamMap . put ( "anysisyDate" , analysisDate ) ;
getAttendacneParamMap . put ( "seclevel" , analysisParam . get ( "seclevel" ) ) ;
getAttendacneParamMap . putAll ( attendancePlanMap ) ;
/ * *
* 获 得 综 合 工 时
* /
List < Map < String , Object > > workHourItems = Lists . newArrayList ( ) ;
List < Map < String , String > > analysisDateWorkingHourList = comprehensiveWorkingHourList . stream ( ) . filter ( e - > {
if ( ( ! "" . equals ( Util . null2String ( e . get ( "bdate" ) ) ) & & DateUtil . getTime ( analysisDate ) . compareTo ( DateUtil . getTime ( e . get ( "bdate" ) ) ) < 0 ) | |
( ! "" . equals ( Util . null2String ( e . get ( "edate" ) ) ) & & DateUtil . getTime ( analysisDate ) . compareTo ( DateUtil . getTime ( e . get ( "edate" ) ) ) > 0 ) ) {
return false ;
} else {
return true ;
}
} ) . collect ( Collectors . toList ( ) ) ;
if ( analysisDateWorkingHourList . size ( ) > 0 ) {
analysisDateWorkingHourList = analysisDateWorkingHourList . stream ( ) . sorted ( Comparator . comparing ( e - > Integer . valueOf ( e . get ( "priority" ) ) ) ) . collect ( Collectors . toList ( ) ) ;
if ( workingHourGroupBy . get ( analysisDateWorkingHourList . get ( 0 ) . get ( "dataid" ) ) ! = null & &
workingHourGroupBy . get ( analysisDateWorkingHourList . get ( 0 ) . get ( "dataid" ) ) . size ( ) > 0 ) {
workHourItems . addAll ( workingHourGroupBy . get ( analysisDateWorkingHourList . get ( 0 ) . get ( "dataid" ) ) ) ;
try {
/**获得人员考勤项目*/
Map < String , Object > getAttendacneParamMap = Maps . newHashMap ( ) ;
getAttendacneParamMap . put ( "userId" , userId ) ;
getAttendacneParamMap . put ( "departmentId" , departmentid ) ;
getAttendacneParamMap . put ( "subCompanyId" , subcompanyid1 ) ;
getAttendacneParamMap . put ( "anysisyDate" , analysisDate ) ;
getAttendacneParamMap . put ( "seclevel" , analysisParam . get ( "seclevel" ) ) ;
getAttendacneParamMap . putAll ( attendancePlanMap ) ;
/ * *
* 获 得 综 合 工 时
* /
List < Map < String , Object > > workHourItems = Lists . newArrayList ( ) ;
List < Map < String , String > > analysisDateWorkingHourList = comprehensiveWorkingHourList . stream ( ) . filter ( e - > {
if ( ( ! "" . equals ( Util . null2String ( e . get ( "bdate" ) ) ) & & DateUtil . getTime ( analysisDate ) . compareTo ( DateUtil . getTime ( e . get ( "bdate" ) ) ) < 0 ) | |
( ! "" . equals ( Util . null2String ( e . get ( "edate" ) ) ) & & DateUtil . getTime ( analysisDate ) . compareTo ( DateUtil . getTime ( e . get ( "edate" ) ) ) > 0 ) ) {
return false ;
} else {
return true ;
}
} ) . collect ( Collectors . toList ( ) ) ;
if ( analysisDateWorkingHourList . size ( ) > 0 ) {
analysisDateWorkingHourList = analysisDateWorkingHourList . stream ( ) . sorted ( Comparator . comparing ( e - > Integer . valueOf ( e . get ( "priority" ) ) ) ) . collect ( Collectors . toList ( ) ) ;
if ( workingHourGroupBy . get ( analysisDateWorkingHourList . get ( 0 ) . get ( "dataid" ) ) ! = null & &
workingHourGroupBy . get ( analysisDateWorkingHourList . get ( 0 ) . get ( "dataid" ) ) . size ( ) > 0 ) {
workHourItems . addAll ( workingHourGroupBy . get ( analysisDateWorkingHourList . get ( 0 ) . get ( "dataid" ) ) ) ;
}
}
}
/** 获取人员班次*/
Map < String , Object > classesParamMap = Maps . newHashMap ( ) ;
classesParamMap . put ( "startDate" , analysisDate ) ;
classesParamMap . put ( "endDate" , analysisDate ) ;
classesParamMap . put ( "pbdx" , userId ) ;
classesParamMap . put ( "clockInTimeMap" , clockInTimeMap ) ;
classesParamMap . put ( "clockInData" , dataList ) ;
classesParamMap . put ( "allScheduleList" , analysisParam . get ( "allScheduleList" ) ) ;
classesParamMap . put ( "allClassInfoList" , analysisParam . get ( "allClassInfoList" ) ) ;
classesParamMap . put ( "allOverPlanList" , analysisParam . get ( "allOverPlanList" ) ) ;
classesParamMap . put ( "attendaceResultMap" , attendaceResultMap ) ;
classesParamMap . put ( "evectionList" , analysisParam . get ( "evectionList" ) ) ;
classesParamMap . put ( "askforList" , analysisParam . get ( "askforList" ) ) ;
classesParamMap . put ( "hxbzList" , analysisParam . get ( "hxbzList" ) ) ;
List < Map < String , Object > > analysisDateAttendaceResult = attendaceResultMap . get ( analysisDate ) ;
List < Map < String , Object > > analysisDateAttendanceItems = Lists . newArrayList ( ) ;
Map < String , Object > schedulMap = null ;
if ( analysisDateAttendaceResult = = null | | analysisDateAttendaceResult . size ( ) = = 0 | | ( ! CheckBoxEnum . CHECKED . getKey ( ) . equals ( analysisDateAttendaceResult . get ( 0 ) . get ( "sgsj" ) ) & &
! "3" . equals ( analysisDateAttendaceResult . get ( 0 ) . get ( "sjzt" ) ) ) ) {
/** 获取人员班次*/
Map < String , Object > classesParamMap = Maps . newHashMap ( ) ;
classesParamMap . put ( "startDate" , analysisDate ) ;
classesParamMap . put ( "endDate" , analysisDate ) ;
classesParamMap . put ( "pbdx" , userId ) ;
classesParamMap . put ( "clockInTimeMap" , clockInTimeMap ) ;
classesParamMap . put ( "clockInData" , dataList ) ;
classesParamMap . put ( "allScheduleList" , analysisParam . get ( "allScheduleList" ) ) ;
classesParamMap . put ( "allClassInfoList" , analysisParam . get ( "allClassInfoList" ) ) ;
classesParamMap . put ( "allOverPlanList" , analysisParam . get ( "allOverPlanList" ) ) ;
classesParamMap . put ( "attendaceResultMap" , attendaceResultMap ) ;
classesParamMap . put ( "evectionList" , analysisParam . get ( "evectionList" ) ) ;
classesParamMap . put ( "askforList" , analysisParam . get ( "askforList" ) ) ;
classesParamMap . put ( "hxbzList" , analysisParam . get ( "hxbzList" ) ) ;
List < Map < String , Object > > analysisDateAttendaceResult = attendaceResultMap . get ( analysisDate ) ;
List < Map < String , Object > > analysisDateAttendanceItems = Lists . newArrayList ( ) ;
Map < String , Object > schedulMap = null ;
if ( analysisDateAttendaceResult = = null | | analysisDateAttendaceResult . size ( ) = = 0 | | ( ! CheckBoxEnum . CHECKED . getKey ( ) . equals ( analysisDateAttendaceResult . get ( 0 ) . get ( "sgsj" ) ) & &
! "3" . equals ( analysisDateAttendaceResult . get ( 0 ) . get ( "sjzt" ) ) ) ) {
/**人员换了部门,需班次、分部、部门继续走老的*/
if ( analysisDateAttendaceResult ! = null & & analysisDateAttendaceResult . size ( ) > 0 & & ( ! analysisDateAttendaceResult . get ( 0 ) . get ( "fbid" ) . equals ( subcompanyid1 ) | | ! analysisDateAttendaceResult . get ( 0 ) . get ( "bm" ) . equals ( departmentid ) ) ) {
String olddepartmentid = analysisDateAttendaceResult . get ( 0 ) . get ( "bm" ) . toString ( ) ;
String oldsubCompanyid = analysisDateAttendaceResult . get ( 0 ) . get ( "fbid" ) . toString ( ) ;
//旧的考勤项目
getAttendacneParamMap . put ( "departmentId" , olddepartmentid ) ;
getAttendacneParamMap . put ( "subCompanyId" , oldsubCompanyid ) ;
Map < String , Object > attendanceItemresultMap = utilService . getAttendanceItems ( getAttendacneParamMap ) ;
Set < String > attendanceItems = ( Set < String > ) attendanceItemresultMap . get ( "attendanceItems" ) ;
for ( String attendanceItemId : attendanceItems ) {
if ( attendanceItemGroupByPlan . get ( attendanceItemId ) ! = null & &
attendanceItemGroupByPlan . get ( attendanceItemId ) . size ( ) > 0 ) {
analysisDateAttendanceItems . addAll ( attendanceItemGroupByPlan . get ( attendanceItemId ) ) ;
if ( analysisDateAttendaceResult ! = null & & analysisDateAttendaceResult . size ( ) > 0 & & ( ! analysisDateAttendaceResult . get ( 0 ) . get ( "fbid" ) . equals ( subcompanyid1 ) | | ! analysisDateAttendaceResult . get ( 0 ) . get ( "bm" ) . equals ( departmentid ) ) ) {
String olddepartmentid = analysisDateAttendaceResult . get ( 0 ) . get ( "bm" ) . toString ( ) ;
String oldsubCompanyid = analysisDateAttendaceResult . get ( 0 ) . get ( "fbid" ) . toString ( ) ;
//旧的考勤项目
getAttendacneParamMap . put ( "departmentId" , olddepartmentid ) ;
getAttendacneParamMap . put ( "subCompanyId" , oldsubCompanyid ) ;
Map < String , Object > attendanceItemresultMap = utilService . getAttendanceItems ( getAttendacneParamMap ) ;
Set < String > attendanceItems = ( Set < String > ) attendanceItemresultMap . get ( "attendanceItems" ) ;
for ( String attendanceItemId : attendanceItems ) {
if ( attendanceItemGroupByPlan . get ( attendanceItemId ) ! = null & &
attendanceItemGroupByPlan . get ( attendanceItemId ) . size ( ) > 0 ) {
analysisDateAttendanceItems . addAll ( attendanceItemGroupByPlan . get ( attendanceItemId ) ) ;
}
}
}
analysisDateAttendanceItems . addAll ( generalAttendanceItems ) ;
//旧的综合工时
Map < String , Object > workhour personOrganzation Map = ( Map < String , Object > ) analysisParam . get ( "workhour personOrganzation Map") ;
Map < String , Object > workhour departMent Map = ( Map < String , Object > ) analysisParam . get ( "workhour departMent Map") ;
Map < String , Object > workhoursubCompanyMap = ( Map < String , Object > ) analysisParam . get ( "workhoursubCompanyMap" ) ;
//旧的班次
classesParamMap . put ( "old departmentid", olddepartment id) ;
classesParamMap . put ( " oldsubCompanyid", oldsubCompanyid ) ;
classesParamMap . put ( "attendanceItems" , analysisDateAttendanceItems ) ;
schedulMap = utilService . getSchedulingInFormation ( classesParamMap ) ;
} else {
Map < String , Object > attendanceItemresultMap = utilService . getAttendanceItems ( getAttendacneParamMap ) ;
Set < String > attendanceItems = ( Set < String > ) attendanceItemresultMap . get ( "attendanceItems" ) ;
for ( String attendanceItemId : attendanceItems ) {
if ( attendanceItemGroupByPlan . get ( attendanceItemId ) ! = null & &
a ttendanceItemGroupByPlan. get ( attendanceItemId ) .size ( ) > 0 ) {
analysisDateAttendanceItems . addAll ( attendanceItemGroupByPlan . get ( attendanceItemId ) ) ;
analysisDateAttendanceItems . addAll ( generalAttendanceItems ) ;
//旧的综合工时
Map < String , Object > workhourpersonOrganzationMap = ( Map < String , Object > ) analysisParam . get ( "workhourpersonOrganzationMap" ) ;
Map < String , Object > workhour departMent Map = ( Map < String , Object > ) analysisParam . get ( "workhour departMent Map") ;
Map < String , Object > workhour subCompany Map = ( Map < String , Object > ) analysisParam . get ( "workhour subCompany Map") ;
//旧的班次
classesParamMap . put ( "olddepartmentid" , olddepartmentid ) ;
classesParamMap . put ( "old subCompanyid", oldsubCompany id) ;
classesParamMap . put ( " attendanceItems", analysisDateAttendanceItems ) ;
schedulMap = utilService . getSchedulingInFormation ( classesParamMap ) ;
} else {
Map < String , Object > attendanceItemresultMap = utilService . getAttendanceItems ( getAttendacneParamMap ) ;
Set < String > attendanceItems = ( Set < String > ) attendanceItemresultMap . get ( "attendanceItems" ) ;
for ( String attendanceItemId : attendanceItems ) {
if ( attendanceItemGroupByPlan . get ( attendanceItemId ) ! = null & &
attendanceItemGroupByPlan . get ( attendanceItemId ) . size ( ) > 0 ) {
a nalysisDateAttendanceItems. addAll ( a ttendanceItemGroupByPlan. get ( attendanceItemId ) );
}
}
analysisDateAttendanceItems . addAll ( generalAttendanceItems ) ;
classesParamMap . put ( "attendanceItems" , analysisDateAttendanceItems ) ;
schedulMap = utilService . getSchedulingInFormation ( classesParamMap ) ;
}
analysisDateAttendanceItems . addAll ( generalAttendanceItems ) ;
classesParamMap . put ( "attendanceItems" , analysisDateAttendanceItems ) ;
schedulMap = utilService . getSchedulingInFormation ( classesParamMap ) ;
Map < String , List < Map < String , Object > > > schedulingResultsMap = ( Map < String , List < Map < String , Object > > > ) schedulMap . get ( "schedulingResultsMap" ) ;
Map < String , Object > getClockTimeParam = Maps . newHashMap ( ) ;
getClockTimeParam . put ( "date" , analysisDate ) ;
getClockTimeParam . put ( "clockInTimeList" , dataList ) ;
getClockTimeParam . put ( "clockInTimeCollect" , collect ) ;
getClockTimeParam . put ( "schedulingResultCollect" , schedulingResultsMap ) ;
getClockTimeParam . put ( "clockInTimeMap" , clockInTimeMap ) ;
getClockTimeParam . put ( "userId" , userId ) ;
//打卡数据
List < Map < String , Object > > analysisDateClockInTimeList = utilService . getClockInTime ( getClockTimeParam ) ;
//分析考勤
Map < String , Object > recordDataTime1 = analysis ( userId , analysisDate , analysisDateClockInTimeList , schedulingResultsMap . get ( analysisDate ) , analysisDateAttendanceItems , workHourItems , ( Map < String , Object > ) schedulMap . get ( "clockInTimeDataMap" ) ,
( List < Map < String , Object > > ) analysisParam . get ( "evectionList" ) , ( List < Map < String , Object > > ) analysisParam . get ( "askforList" ) ) ;
clockInTimeMap . put ( analysisDate , recordDataTime1 ) ;
}
Map < String , List < Map < String , Object > > > schedulingResultsMap = ( Map < String , List < Map < String , Object > > > ) schedulMap . get ( "schedulingResultsMap" ) ;
Map < String , Object > getClockTimeParam = Maps . newHashMap ( ) ;
getClockTimeParam . put ( "date" , analysisDate ) ;
getClockTimeParam . put ( "clockInTimeList" , dataList ) ;
getClockTimeParam . put ( "clockInTimeCollect" , collect ) ;
getClockTimeParam . put ( "schedulingResultCollect" , schedulingResultsMap ) ;
getClockTimeParam . put ( "clockInTimeMap" , clockInTimeMap ) ;
getClockTimeParam . put ( "userId" , userId ) ;
//打卡数据
List < Map < String , Object > > analysisDateClockInTimeList = utilService . getClockInTime ( getClockTimeParam ) ;
//分析考勤
Map < String , Object > recordDataTime1 = analysis ( userId , analysisDate , analysisDateClockInTimeList , schedulingResultsMap . get ( analysisDate ) , analysisDateAttendanceItems , workHourItems , ( Map < String , Object > ) schedulMap . get ( "clockInTimeDataMap" ) ,
( List < Map < String , Object > > ) analysisParam . get ( "evectionList" ) , ( List < Map < String , Object > > ) analysisParam . get ( "askforList" ) ) ;
clockInTimeMap . put ( analysisDate , recordDataTime1 ) ;
} catch ( Exception e ) {
log . error ( "AttendanceAnalysisJob userId:[{}],analysisDate: [{}]" , userId , analysisDate ) ;
log . error ( "AttendanceAnalysisJob error : [{}]" , e ) ;
}
}
}