main
liuliang 7 months ago
parent 6fcbc77b70
commit 9844354412

@ -112,6 +112,8 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
String jbscbdccsqsc = Util.null2String(workTimeBeLateItems.get(0).get("jbscbdccsqsc"));
//是否扣除时间区间内的就餐休息时长
String zdkcjcxxsc = Util.null2String(workTimeBeLateItems.get(0).get("zdkcjcxxsc"));
//是否扣除时间区间内的休息段时长
String sfkcxxdsc = Util.null2String(workTimeBeLateItems.get(0).get("sfkcxxdsc"));
//晚于开始时间忽略分钟数
String jbwdhlfzs = Util.null2String(workTimeBeLateItems.get(0).get("jbwdhlfzs")).equals("") ? "0" : Util.null2String(workTimeBeLateItems.get(0).get("jbwdhlfzs"));
//早于结束时间忽略分钟数
@ -278,7 +280,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
log.debug("未扣减过的加班时长: {}", jbsc);
log.debug("beLateTime :[{}],leaveElaryTime :[{}],askForLeaveTime:[{}],evectionTime:[{}],dinnerTime:[{}]", beLateTime, leaveElaryTime, askForLeaveTime, evectionTime, dinnerTime);
BigDecimal jbscbig = new BigDecimal(jbsc);
if (CheckBoxEnum.CHECKED.getKey().equals(zdkcjcxxsc)){
if (CheckBoxEnum.CHECKED.getKey().equals(zdkcjcxxsc) || CheckBoxEnum.CHECKED.getKey().equals(sfkcxxdsc)){
//扣除就餐时长
jbsc = jbscbig.subtract(new BigDecimal(beLateTime)).subtract(new BigDecimal(leaveElaryTime)).subtract(new BigDecimal(askForLeaveTime)).subtract(new BigDecimal(evectionTime)).subtract(new BigDecimal(dinnerTime)).intValue();
}else {

@ -9,10 +9,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.CommonUtil;
import com.engine.jucailinkq.common.util.DateUtil;
import com.engine.jucailinkq.common.util.DbTools;
import com.engine.jucailinkq.common.util.Utils;
import com.engine.jucailinkq.common.util.*;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@ -49,20 +46,25 @@ public class AttendanceAnalysisJob extends BaseCronJob {
log.info("********AttendanceAnalysisJob executeDate :[{}]********",useDate);
//入职离职当天是否需要进行考勤分析。0入职离职当天均分析、1入职离职当天不分析
String leaveAndEntry = Util.null2String(ExtensionClassHolder.getGlobalSetMap().get("leaveAndEntry"));
//查询所有在职人员
String queryUserSql = "select id,departmentid,subcompanyid1,companystartdate from hrmresource where status <> '5' and status <> '4' and status <> '7'";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
String queryDepartEmployeeSql = "select resourceid ,changedate from HRMSTATUSHISTORY where type_n = 5 and changedate='"+DateUtil.beforeDay(useDate,1)+"'";
List<String> departEmployeeList = Lists.newArrayList(DbTools.getSqlToList(queryDepartEmployeeSql).stream().map(e->e.get("resourceid").toString()).collect(Collectors.toSet()));
List<List<String>> 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<String> departEmployeeList = Lists.newArrayList(DbTools.getSqlToList(queryDepartEmployeeSql).stream().map(e->e.get("resourceid").toString()).collect(Collectors.toSet()));
List<List<String>> departEmployeePartition = Lists.partition(departEmployeeList,200);
for (List<String> userIdPartition :departEmployeePartition){
String sql = "select id,departmentid,subcompanyid1,companystartdate from hrmresource where id in ("+String.join(",",userIdPartition)+")";
userList.addAll(DbTools.getSqlToList(sql));
for (List<String> userIdPartition :departEmployeePartition){
String sql = "select id,departmentid,subcompanyid1,companystartdate from hrmresource where id in ("+String.join(",",userIdPartition)+")";
userList.addAll(DbTools.getSqlToList(sql));
}
}
Map<String, Object> getAttendanceparam = Maps.newHashMap();
getAttendanceparam.put("userList",userList);
getAttendanceparam.put("executeDate",useDate);

@ -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<Map<String,Object>> 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));
}
}
}
}

Loading…
Cancel
Save