diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java index dfdedb4..64e61c7 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java @@ -112,6 +112,8 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand> userList = DbTools.getSqlToList(queryUserSql); - String queryDepartEmployeeSql = "select resourceid ,changedate from HRMSTATUSHISTORY where type_n = 5 and changedate='"+DateUtil.beforeDay(useDate,1)+"'"; - List departEmployeeList = Lists.newArrayList(DbTools.getSqlToList(queryDepartEmployeeSql).stream().map(e->e.get("resourceid").toString()).collect(Collectors.toSet())); - List> departEmployeePartition = Lists.partition(departEmployeeList,200); + if ("0".equals(leaveAndEntry) || leaveAndEntry.equals("")){ + String queryDepartEmployeeSql = "select resourceid ,changedate from HRMSTATUSHISTORY where type_n = 5 and changedate='"+DateUtil.beforeDay(useDate,1)+"'"; + List departEmployeeList = Lists.newArrayList(DbTools.getSqlToList(queryDepartEmployeeSql).stream().map(e->e.get("resourceid").toString()).collect(Collectors.toSet())); + List> departEmployeePartition = Lists.partition(departEmployeeList,200); - for (List userIdPartition :departEmployeePartition){ - String sql = "select id,departmentid,subcompanyid1,companystartdate from hrmresource where id in ("+String.join(",",userIdPartition)+")"; - userList.addAll(DbTools.getSqlToList(sql)); + for (List userIdPartition :departEmployeePartition){ + String sql = "select id,departmentid,subcompanyid1,companystartdate from hrmresource where id in ("+String.join(",",userIdPartition)+")"; + userList.addAll(DbTools.getSqlToList(sql)); + } } - Map getAttendanceparam = Maps.newHashMap(); getAttendanceparam.put("userList",userList); getAttendanceparam.put("executeDate",useDate); diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.java index b75bb40..e6d9b76 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.java @@ -8,10 +8,7 @@ import com.engine.jucailinkq.attendance.attendanceplan.service.impl.AttendancePl import com.engine.jucailinkq.attendance.workflow.service.AllowanceService; import com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl; import com.engine.common.util.*; -import com.engine.jucailinkq.common.util.ApiReturnTools; -import com.engine.jucailinkq.common.util.CommonUtil; -import com.engine.jucailinkq.common.util.DateUtil; -import com.engine.jucailinkq.common.util.DbTools; +import com.engine.jucailinkq.common.util.*; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; @@ -66,6 +63,9 @@ public class AttendanceanalysisAction { //初始化扩展类 CommonUtil.initExtensionClassHolder(); + //入职离职当天是否需要进行考勤分析。0:入职离职当天均分析、1:入职离职当天不分析 + String leaveAndEntry = Util.null2String(ExtensionClassHolder.getGlobalSetMap().get("leaveAndEntry")); + if ("".equals(userIds)){ String queryUserSql = "select id,companystartdate from hrmresource where status <> '5' and status <> '4' and status <> '7'"; List> userList = DbTools.getSqlToList(queryUserSql); @@ -133,9 +133,16 @@ public class AttendanceanalysisAction { for (int i=0; i<=betweenDays;i++){ String date = DateUtil.AfterDay(startDate,i); - if (("".equals(companystartDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(companystartDate))>=0) - && ("".equals(terminationDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(terminationDate)) <=0)){ - attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap,workHourItems,clockInTimeMap,attendaceResultMap.get(date)); + if (leaveAndEntry.equals("1")){ + if (("".equals(companystartDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(companystartDate))>0) + && ("".equals(terminationDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(terminationDate)) <0)){ + attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap,workHourItems,clockInTimeMap,attendaceResultMap.get(date)); + } + }else { + if (("".equals(companystartDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(companystartDate))>=0) + && ("".equals(terminationDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(terminationDate)) <=0)){ + attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap,workHourItems,clockInTimeMap,attendaceResultMap.get(date)); + } } } allowanceService.addAllowanceRecords(paramMap); @@ -210,11 +217,20 @@ public class AttendanceanalysisAction { for (int i=0; i<=betweenDays;i++){ String date = DateUtil.AfterDay(startDate,i); - if (("".equals(companystartDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(companystartDate))>=0) - && ("".equals(terminationDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(terminationDate)) <=0)){ - log.info("***********analysis userId:{},analysisDate:{} start***********", userId, date); - attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap,workHourItems,clockInTimeMap,attendaceResultMap.get(date)); - + if (leaveAndEntry.equals("1")){ + if (("".equals(companystartDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(companystartDate))>0) + && ("".equals(terminationDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(terminationDate)) <0)){ + log.info("***********analysis userId:{},analysisDate:{} start***********", userId, date); + attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap,workHourItems,clockInTimeMap,attendaceResultMap.get(date)); + + } + }else { + if (("".equals(companystartDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(companystartDate))>=0) + && ("".equals(terminationDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(terminationDate)) <=0)){ + log.info("***********analysis userId:{},analysisDate:{} start***********", userId, date); + attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap,workHourItems,clockInTimeMap,attendaceResultMap.get(date)); + + } } } }