漏打卡增加作用时段,加班考虑弹性

zm_dev
liuliang 8 months ago
parent 5dba6041f9
commit b1506101e8

@ -1,5 +1,6 @@
package com.engine.jucailinkq.attendance.attendanceanalysis.cmd.workovertime; package com.engine.jucailinkq.attendance.attendanceanalysis.cmd.workovertime;
import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO;
import com.engine.jucailinkq.attendance.enums.*; import com.engine.jucailinkq.attendance.enums.*;
import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext; import com.engine.common.entity.BizLogContext;
@ -64,6 +65,8 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
Map<String,Map<String,Object>> clcokInTimeMap = (Map<String,Map<String,Object>>)params.get("clcokInTimeMap"); Map<String,Map<String,Object>> clcokInTimeMap = (Map<String,Map<String,Object>>)params.get("clcokInTimeMap");
//班次 //班次
Map<String, Object> scheduleMap = (Map<String, Object>)params.get("scheduleMap"); Map<String, Object> scheduleMap = (Map<String, Object>)params.get("scheduleMap");
//打卡卡点
List<ClockPointDTO> clcokInTimeDataList = (List<ClockPointDTO>)params.get("clcokInTimeData");
@ -78,9 +81,12 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
Map<String, Object> getWorkOverTimeParam = Maps.newHashMap(); Map<String, Object> getWorkOverTimeParam = Maps.newHashMap();
//加班开始时间 //加班开始时间
String kssj = Utils.getkssjTime(scheduleMap, analysisDate); String kssj = Utils.getkssjTime(scheduleMap, analysisDate);
ClockPointDTO startClockPointDTO = clcokInTimeDataList.stream().filter(e->e.getPointType() == ClockPointEnum.START &&
DateUtil.getTime(kssj).compareTo(DateUtil.getTime(e.getClassTime())) == 0).collect(Collectors.toList()).get(0);
//加班结束时间 //加班结束时间
String jssj = Utils.getjssjTime(scheduleMap, analysisDate); String jssj = Utils.getjssjTime(scheduleMap, analysisDate);
ClockPointDTO endClockPointDTO = clcokInTimeDataList.stream().filter(e->e.getPointType() == ClockPointEnum.END &&
DateUtil.getTime(jssj).compareTo(DateUtil.getTime(e.getClassTime())) == 0).collect(Collectors.toList()).get(0);
//加班实际开始时间 //加班实际开始时间
String realityStartTime = ""; String realityStartTime = "";
//加班实际结束时间 //加班实际结束时间
@ -184,8 +190,12 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
} }
} }
} else { } else {
if (DateUtil.getTime(realityStartTime).compareTo(DateUtil.getTime(kssj)) > 0) { String kssjTime = kssj;
beLateTime = DateUtil.getBetWeenMinutes(kssj, realityStartTime); if (startClockPointDTO.getElasticTime() != null && !startClockPointDTO.getElasticTime().equals("")){
kssjTime = startClockPointDTO.getElasticTime();
}
if (DateUtil.getTime(realityStartTime).compareTo(DateUtil.getTime(kssjTime)) > 0) {
beLateTime = DateUtil.getBetWeenMinutes(kssjTime, realityStartTime);
List<Map<String, Object>> collect1 = anomalyList.stream().filter(e -> e.get("pointTime").equals(kssj)).collect(Collectors.toList()); List<Map<String, Object>> collect1 = anomalyList.stream().filter(e -> e.get("pointTime").equals(kssj)).collect(Collectors.toList());
if (!"".equals(jbwdhlfzs) && beLateTime < Integer.valueOf(jbwdhlfzs)) { if (!"".equals(jbwdhlfzs) && beLateTime < Integer.valueOf(jbwdhlfzs)) {
@ -223,8 +233,12 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
} }
} }
} else { } else {
if (DateUtil.getTime(realityEndime).compareTo(DateUtil.getTime(jssj)) < 0) { String jssjTime = jssj;
leaveElaryTime = DateUtil.getBetWeenMinutes(realityEndime, jssj); if (endClockPointDTO.getElasticTime() != null && !endClockPointDTO.getElasticTime().equals("")){
jssjTime = endClockPointDTO.getElasticTime();
}
if (DateUtil.getTime(realityEndime).compareTo(DateUtil.getTime(jssjTime)) < 0) {
leaveElaryTime = DateUtil.getBetWeenMinutes(realityEndime, jssjTime);
List<Map<String, Object>> collect2 = anomalyList.stream().filter(e -> e.get("pointTime").equals(jssj)).collect(Collectors.toList()); List<Map<String, Object>> collect2 = anomalyList.stream().filter(e -> e.get("pointTime").equals(jssj)).collect(Collectors.toList());
if (!"".equals(jbzzhlfzs) && leaveElaryTime < Integer.valueOf(jbzzhlfzs)) { if (!"".equals(jbzzhlfzs) && leaveElaryTime < Integer.valueOf(jbzzhlfzs)) {
leaveElaryTime = 0; leaveElaryTime = 0;

@ -42,15 +42,16 @@ public class ForgetClockInServiceImpl extends Service implements ForgetClockInSe
String workFor = Utils.getWorkFor(bdlx); String workFor = Utils.getWorkFor(bdlx);
params.put("workfor",workFor); params.put("workfor",workFor);
params.put("key",SystemItemEnum.MISSING_CLOCK_IN.getKey()); params.put("key",SystemItemEnum.MISSING_CLOCK_IN.getKey());
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)params.get("attendanceItems");
Map<String,Object> result = commandExecutor.execute(new ForGetClockItemCmd(params));
List<Map<String,Object>> resultList = Lists.newArrayList(); List<Map<String,Object>> resultList = Lists.newArrayList();
List<Map<String,Object>> forgerAttendanceItems = (List<Map<String,Object>>)result.get("attendanceItems"); attendanceItems = attendanceItems.stream().filter(e->e.get("key").equals(SystemItemEnum.MISSING_CLOCK_IN.getKey())).collect(Collectors.toList());
if (forgerAttendanceItems.size() > 0){ if (attendanceItems.size() > 0){
Map<String,Object> forgetParam = Maps.newHashMap(); Map<String,Object> forgetParam = Maps.newHashMap();
forgetParam.put("item", forgerAttendanceItems.get(0).get("key")); forgetParam.put("item", SystemItemEnum.MISSING_CLOCK_IN.getKey());
forgetParam.put("itemduration", 1); forgetParam.put("itemduration", 1);
forgetParam.put("itemType", AttendanceItemTypeEnum.MISSE_CARD); forgetParam.put("itemType", AttendanceItemTypeEnum.MISSE_CARD);
forgetParam.put("zysd",attendanceItems.get(0).get("zysd"));
forgetParam.put("kczgsc", CheckBoxEnum.CHECKED.getKey()); forgetParam.put("kczgsc", CheckBoxEnum.CHECKED.getKey());
resultList.add(forgetParam); resultList.add(forgetParam);
} }

@ -49,8 +49,8 @@ public class AttendanceanalysisAction {
log.info("********AttendanceAnalysisJob start********"); log.info("********AttendanceAnalysisJob start********");
Map<String,Object> paramMap = ParamUtil.request2Map(request); Map<String,Object> paramMap = ParamUtil.request2Map(request);
// Map<String,Object> paramMap = Maps.newHashMap(); // Map<String,Object> paramMap = Maps.newHashMap();
// paramMap.put("startDate","2024-08-11"); // paramMap.put("startDate","2024-08-21");
// paramMap.put("endDate","2024-08-11"); // paramMap.put("endDate","2024-08-21");
// paramMap.put("userIds","81"); // paramMap.put("userIds","81");
String startDate = Util.null2String(paramMap.get("startDate")); String startDate = Util.null2String(paramMap.get("startDate"));

@ -107,8 +107,15 @@ public class UpdateAttendanceResultWrapper extends Service {
iforgetClockIn.get(0).put("pointTime",pointTime); iforgetClockIn.get(0).put("pointTime",pointTime);
iforgetClockIn.get(0).put("pointType",clcokInTimedto.getPointType()); iforgetClockIn.get(0).put("pointType",clcokInTimedto.getPointType());
iforgetClockIn.get(0).put("bdlx",classInfo.get("bdlx")); iforgetClockIn.get(0).put("bdlx",classInfo.get("bdlx"));
iforgetClockIn.get(0).put("record",clcokInTimedto.isRecord());
iforgetClockIn.get(0).put("clcokInTimeData",clcokInTimeData); iforgetClockIn.get(0).put("clcokInTimeData",clcokInTimeData);
String workfor = Util.null2String(classInfo.get("bdlx"));
String zysd = Util.null2String(iforgetClockIn.get(0).get("zysd"));
if (zysd.contains(workfor) || zysd.contains(WorkForTimeEnum.ALL_TIME.getKey())){
iforgetClockIn.get(0).put("record",clcokInTimedto.isRecord());
}else {
iforgetClockIn.get(0).put("record",false);
}
resultList.add(iforgetClockIn.get(0)); resultList.add(iforgetClockIn.get(0));
} }

@ -41,7 +41,7 @@ public class VocationServiceImpl extends Service implements VocationService {
List<Map<String,Object>> dataList = Lists.newArrayList(); List<Map<String,Object>> dataList = Lists.newArrayList();
for (List<String> list : userPartions){ for (List<String> list : userPartions){
String querySql = sql + String.join(",",list) +")"; String querySql = sql + String.join(",",list) +")";
log.info("querySql : [{}]",querySql); log.debug("querySql : [{}]",querySql);
List<Map<String,Object>> resultList = DbTools.getSqlToListKeySmallLetter(querySql); List<Map<String,Object>> resultList = DbTools.getSqlToListKeySmallLetter(querySql);
resultList = resultList.stream().filter(e->"HrmCustomFieldByInfoType".equals(e.get("scope")) || "".equals(Util.null2String(e.get("scope")))).collect(Collectors.toList()); resultList = resultList.stream().filter(e->"HrmCustomFieldByInfoType".equals(e.get("scope")) || "".equals(Util.null2String(e.get("scope")))).collect(Collectors.toList());
dataList.addAll(resultList); dataList.addAll(resultList);
@ -64,7 +64,7 @@ public class VocationServiceImpl extends Service implements VocationService {
needGenerateVocationMap.put(Util.null2String(map.get("key")),vocationMap.get(map.get("key"))); needGenerateVocationMap.put(Util.null2String(map.get("key")),vocationMap.get(map.get("key")));
} }
} }
log.info("VocationServiceImpl userId:{}, userList:{}",userId,userIdMap.get(userId)); log.debug("VocationServiceImpl userId:{}, userList:{}",userId,userIdMap.get(userId));
for (Map.Entry<String, Object> e:needGenerateVocationMap.entrySet()){ for (Map.Entry<String, Object> e:needGenerateVocationMap.entrySet()){
if (e.getValue() != null && ((List<Map<String,Object>>)e.getValue()).size() > 0){ if (e.getValue() != null && ((List<Map<String,Object>>)e.getValue()).size() > 0){
Map<String,Object> vocationParam = Maps.newHashMap(); Map<String,Object> vocationParam = Maps.newHashMap();

@ -619,7 +619,7 @@ public class VocationCommonUtil {
break; break;
} }
} }
log.info("need adjust askforleave detail2 data : [{}]",ids); log.debug("need adjust askforleave detail2 data : [{}]",ids);
if (ids.size() > 0){ if (ids.size() > 0){
updatesql = "update uf_jcl_kq_qjjl_dt2 set jqye=? where id in ("+String.join(",",ids)+")"; updatesql = "update uf_jcl_kq_qjjl_dt2 set jqye=? where id in ("+String.join(",",ids)+")";
DbTools.update(updatesql,currentHolidayId); DbTools.update(updatesql,currentHolidayId);

Loading…
Cancel
Save