@ -10,10 +10,12 @@ import com.engine.jucailinkq.attendance.enums.ClassSegmentTypeEnum;
import com.engine.jucailinkq.common.util.CommonUtil ;
import com.engine.jucailinkq.common.util.DateUtil ;
import com.engine.common.util.ServiceUtil ;
import com.engine.jucailinkq.common.util.ExtensionClassHolder ;
import com.engine.jucailinkq.common.util.Utils ;
import com.engine.core.impl.Service ;
import com.google.common.collect.Lists ;
import com.google.common.collect.Maps ;
import com.google.common.collect.Sets ;
import lombok.extern.slf4j.Slf4j ;
import weaver.general.Util ;
@ -21,6 +23,7 @@ import java.time.ZoneOffset;
import java.util.Comparator ;
import java.util.List ;
import java.util.Map ;
import java.util.Set ;
import java.util.stream.Collectors ;
/ * *
@ -43,26 +46,18 @@ public class AttendanceAnalysisWrapper extends Service {
log . debug ( "***********analysis userId:{} analysisDate:{} start***********" , userId , analysisDateList ) ;
log . debug ( "clockInTimeDate : [{}]" , dataList ) ;
String beforeTwoDayDateDate = DateUtil . beforeDay ( analysisDateList . get ( 0 ) , 2 ) ;
/** 打卡数据 */
Map < String , List < Map < String , Object > > > collect = Maps . newHashMap ( ) ;
if ( dataList ! = null & & dataList . size ( ) > 0 ) {
collect = dataList . stream ( ) . collect ( Collectors . groupingBy ( e - > Util . null2String ( e . get ( "signdate" ) ) ) ) ;
}
String departmentid = Util . null2String ( analysisParam . get ( "departmentId" ) ) ;
String subcompanyid1 = Util . null2String ( analysisParam . get ( "subCompanyId" ) ) ;
Map < String , String > attendancePlanMap = ( Map < String , String > ) analysisParam . get ( "attendancePlanMap" ) ;
List < Map < String , Object > > generalAttendanceItems = ( List < Map < String , Object > > ) analysisParam . get ( "generalAttendanceItems" ) ;
List < Map < String , String > > attendancePlanList = ( List < Map < String , String > > ) analysisParam . get ( "attendancePlanList" ) ;
Map < String , List < Map < String , Object > > > attendanceItemGroupByPlan = ( Map < String , List < Map < String , Object > > > ) analysisParam . get ( "attendanceItemGroupByPlan" ) ;
/**获得人员考勤项目*/
// List<Map<String, Object>> attendanceItems =Lists.newArrayList();
// for (Map<String,String> attendancePlan :attendancePlanList){
// if (attendanceItemGroupByPlan.get(attendancePlan.get("dataid")) != null &&
// attendanceItemGroupByPlan.get(attendancePlan.get("dataid")).size()>0){
// attendanceItems.addAll(attendanceItemGroupByPlan.get(attendancePlan.get("dataid")));
// }
// }
// attendanceItems.addAll(generalAttendanceItems);
/**获得综合工时*/
List < Map < String , String > > comprehensiveWorkingHourList = ( List < Map < String , String > > ) analysisParam . get ( "comprehensiveWorkingHourList" ) ;
Map < String , List < Map < String , Object > > > workingHourGroupBy = ( Map < String , List < Map < String , Object > > > ) analysisParam . get ( "workingHourGroupBy" ) ;
@ -70,22 +65,13 @@ public class AttendanceAnalysisWrapper extends Service {
for ( String analysisDate : analysisDateList ) {
/**获得人员考勤项目*/
List < Map < String , String > > analysisDateAttendancePlanList = attendancePlanList . 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 ( ) ) ;
List < Map < String , Object > > analysisDateAttendanceItems = Lists . newArrayList ( ) ;
for ( Map < String , String > attendancePlan : analysisDateAttendancePlanList ) {
if ( attendanceItemGroupByPlan . get ( attendancePlan . get ( "dataid" ) ) ! = null & &
attendanceItemGroupByPlan . get ( attendancePlan . get ( "dataid" ) ) . size ( ) > 0 ) {
analysisDateAttendanceItems . addAll ( attendanceItemGroupByPlan . get ( attendancePlan . get ( "dataid" ) ) ) ;
}
}
analysisDateAttendanceItems . addAll ( generalAttendanceItems ) ;
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 ) ;
/ * *
* 获 得 综 合 工 时
@ -107,17 +93,12 @@ public class AttendanceAnalysisWrapper extends Service {
}
}
List < Map < String , Object > > analysisDateAttendaceResult = attendaceResultMap . get ( analysisDate ) ;
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 ( "attendanceItems" , analysisDateAttendanceItems ) ;
classesParamMap . put ( "clockInData" , dataList ) ;
classesParamMap . put ( "allScheduleList" , analysisParam . get ( "allScheduleList" ) ) ;
classesParamMap . put ( "allClassInfoList" , analysisParam . get ( "allClassInfoList" ) ) ;
@ -126,7 +107,57 @@ public class AttendanceAnalysisWrapper extends Service {
classesParamMap . put ( "evectionList" , analysisParam . get ( "evectionList" ) ) ;
classesParamMap . put ( "askforList" , analysisParam . get ( "askforList" ) ) ;
classesParamMap . put ( "hxbzList" , analysisParam . get ( "hxbzList" ) ) ;
Map < String , Object > schedulMap = utilService . getSchedulingInFormation ( classesParamMap ) ;
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 ) ) ;
}
}
analysisDateAttendanceItems . addAll ( generalAttendanceItems ) ;
//旧的综合工时
Map < String , Object > workhourpersonOrganzationMap = ( Map < String , Object > ) analysisParam . get ( "workhourpersonOrganzationMap" ) ;
Map < String , Object > workhourdepartMentMap = ( Map < String , Object > ) analysisParam . get ( "workhourdepartMentMap" ) ;
Map < String , Object > workhoursubCompanyMap = ( Map < String , Object > ) analysisParam . get ( "workhoursubCompanyMap" ) ;
//旧的班次
classesParamMap . put ( "olddepartmentid" , olddepartmentid ) ;
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 & &
attendanceItemGroupByPlan . get ( attendanceItemId ) . size ( ) > 0 ) {
analysisDateAttendanceItems . addAll ( attendanceItemGroupByPlan . get ( attendanceItemId ) ) ;
}
}
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 ( ) ;
@ -158,38 +189,36 @@ public class AttendanceAnalysisWrapper extends Service {
log . debug ( "***********analysis userId:{},analysisDate:{} start***********" , userId , analysisDate ) ;
log . debug ( "clockInTimeDate : [{}]" , dataList ) ;
List < Map < String , Object > > attendaceResult = attendaceResultMap . get ( analysisDate ) ;
log . debug ( "attendaceResult : [{}]" , attendaceResult ) ;
if ( attendaceResult ! = null & & attendaceResult . size ( ) > 0 & & ( CheckBoxEnum . CHECKED . getKey ( ) . equals ( attendaceResult . get ( 0 ) . get ( "sgsj" ) ) | |
"3" . equals ( attendaceResult . get ( 0 ) . get ( "sjzt" ) ) ) ) {
return ;
}
Map < String , List < Map < String , Object > > > collect = Maps . newHashMap ( ) ;
if ( dataList ! = null & & dataList . size ( ) > 0 ) {
collect = dataList . stream ( ) . collect ( Collectors . groupingBy ( e - > Util . null2String ( e . get ( "signdate" ) ) ) ) ;
}
List < Map < String , Object > > generalAttendanceItems = ( List < Map < String , Object > > ) analysisParam . get ( "generalAttendanceItems" ) ;
List < Map < String , String > > attendancePlanList = ( List < Map < String , String > > ) analysisParam . get ( "attendancePlanList" ) ;
Map < String , String > attendancePlanMap = ( Map < String , String > ) analysisParam . get ( "attendancePlanMap" ) ;
Map < String , List < Map < String , Object > > > attendanceItemGroupByPlan = ( Map < String , List < Map < String , Object > > > ) analysisParam . get ( "attendanceItemGroupByPlan" ) ;
List < Map < String , String > > comprehensiveWorkingHourList = ( List < Map < String , String > > ) analysisParam . get ( "comprehensiveWorkingHourList" ) ;
Map < String , List < Map < String , Object > > > workingHourGroupBy = ( Map < String , List < Map < String , Object > > > ) analysisParam . get ( "workingHourGroupBy" ) ;
String departmentid = Util . null2String ( analysisParam . get ( "departmentId" ) ) ;
String subcompanyid1 = Util . null2String ( analysisParam . get ( "subCompanyId" ) ) ;
/**获得人员考勤项目*/
List < Map < String , String > > analysisDateAttendancePlanList = attendancePlanList . 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 ( ) ) ;
List < Map < String , Object > > analysisDateAttendanceItems = Lists . newArrayList ( ) ;
for ( Map < String , String > attendancePlan : analysisDateAttendancePlanList ) {
if ( attendanceItemGroupByPlan . get ( attendancePlan . get ( "dataid" ) ) ! = null & &
attendanceItemGroupByPlan . get ( attendancePlan . get ( "dataid" ) ) . size ( ) > 0 ) {
analysisDateAttendanceItems . addAll ( attendanceItemGroupByPlan . get ( attendancePlan . get ( "dataid" ) ) ) ;
}
}
analysisDateAttendanceItems . addAll ( generalAttendanceItems ) ;
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 ) ;
/ * *
* 获 得 综 合 工 时
@ -217,7 +246,6 @@ public class AttendanceAnalysisWrapper extends Service {
classesParamMap . put ( "endDate" , analysisDate ) ;
classesParamMap . put ( "pbdx" , userId ) ;
classesParamMap . put ( "clockInTimeMap" , clockInTimeMap ) ;
classesParamMap . put ( "attendanceItems" , analysisDateAttendanceItems ) ;
classesParamMap . put ( "clockInData" , dataList ) ;
classesParamMap . put ( "allScheduleList" , analysisParam . get ( "allScheduleList" ) ) ;
classesParamMap . put ( "allClassInfoList" , analysisParam . get ( "allClassInfoList" ) ) ;
@ -226,7 +254,55 @@ public class AttendanceAnalysisWrapper extends Service {
classesParamMap . put ( "evectionList" , analysisParam . get ( "evectionList" ) ) ;
classesParamMap . put ( "askforList" , analysisParam . get ( "askforList" ) ) ;
classesParamMap . put ( "hxbzList" , analysisParam . get ( "hxbzList" ) ) ;
Map < String , Object > schedulMap = utilService . getSchedulingInFormation ( classesParamMap ) ;
Map < String , Object > schedulMap = null ;
List < Map < String , Object > > analysisDateAttendanceItems = Lists . newArrayList ( ) ;
/**人员换了部门,需班次、分部、部门继续走老的*/
if ( attendaceResult ! = null & & attendaceResult . size ( ) > 0 & & ( ! attendaceResult . get ( 0 ) . get ( "fbid" ) . equals ( subcompanyid1 ) | | ! attendaceResult . get ( 0 ) . get ( "bm" ) . equals ( departmentid ) ) ) {
String olddepartmentid = attendaceResult . get ( 0 ) . get ( "bm" ) . toString ( ) ;
String oldsubCompanyid = attendaceResult . 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 > workhourpersonOrganzationMap = ( Map < String , Object > ) analysisParam . get ( "workhourpersonOrganzationMap" ) ;
Map < String , Object > workhourdepartMentMap = ( Map < String , Object > ) analysisParam . get ( "workhourdepartMentMap" ) ;
Map < String , Object > workhoursubCompanyMap = ( Map < String , Object > ) analysisParam . get ( "workhoursubCompanyMap" ) ;
//旧的班次
classesParamMap . put ( "olddepartmentid" , olddepartmentid ) ;
classesParamMap . put ( "oldsubCompanyid" , oldsubCompanyid ) ;
classesParamMap . put ( "attendanceItems" , analysisDateAttendanceItems ) ;
schedulMap = utilService . getSchedulingInFormation ( classesParamMap ) ;
} else {
classesParamMap . put ( "attendanceItems" , analysisDateAttendanceItems ) ;
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 ) ;
classesParamMap . put ( "attendanceItems" , analysisDateAttendanceItems ) ;
schedulMap = utilService . getSchedulingInFormation ( classesParamMap ) ;
}
Map < String , List < Map < String , Object > > > schedulingResultsMap = ( Map < String , List < Map < String , Object > > > ) schedulMap . get ( "schedulingResultsMap" ) ;