考勤,出勤分析加班时长统计优化,补打卡流程补打卡次数校验优化,企业日历排班结果查询权限逻辑优化

main
sy 7 months ago
parent b2c2f211b9
commit cd27abbdd9

@ -268,11 +268,12 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
*
*/
int dinnerTime = 0;
double workflowBetweenHour = Double.valueOf(String.format("%.2f", DateUtil.getBetWeenMinutes(kssj,jssj) / 60.0));
if (workflowBetweenHour <= Double.valueOf(Util.null2String(scheduleMap.get("edxss"))) && scheduleMap.get("bdlx").equals(ClassSegmentTypeEnum.OVERTIME_PLAN.getKey())){
//当为加班计划时,前台流程未扣过休息时长
dinnerTime = Utils.dinnerTime(realityStartTime, realityEndime, scheduleResult, analysisDate);
}
//20240912注释下面几行代码加班计划已经根据设置“是否扣除时间区间内的就餐休息时长”信息去除了相应时长
// double workflowBetweenHour = Double.valueOf(String.format("%.2f", DateUtil.getBetWeenMinutes(kssj,jssj) / 60.0));
// if (workflowBetweenHour <= Double.valueOf(Util.null2String(scheduleMap.get("edxss"))) && scheduleMap.get("bdlx").equals(ClassSegmentTypeEnum.OVERTIME_PLAN.getKey())){
// //当为加班计划时,前台流程未扣过休息时长
// dinnerTime = Utils.dinnerTime(realityStartTime, realityEndime, scheduleResult, analysisDate);
// }
log.debug("未扣减过的加班时长: {}", jbsc);
log.debug("beLateTime :[{}],leaveElaryTime :[{}],askForLeaveTime:[{}],evectionTime:[{}],dinnerTime:[{}]", beLateTime, leaveElaryTime, askForLeaveTime, evectionTime, dinnerTime);

@ -169,6 +169,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
String sql = "select a.list_type,b.mainid,b.empid,b.filters,b.sqltj,b.bdate,b.edate from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?";
List<Map<String,Object>> personnelGrouping = DbTools.getSqlToList(sql,userId);
boolean isFzgly = personnelGrouping.size() > 0;
personnelGrouping = personnelGrouping.stream().filter(e -> DateUtil.getTime(endTime).compareTo(DateUtil.getTime(e.get("bdate").toString())) >=0 && (Util.null2String(e.get("edate")).equals("") || DateUtil.getTime(startTime).compareTo(DateUtil.getTime(e.get("edate").toString())) <=0)).collect(Collectors.toList());
Map<String,String> userIdMap =Maps.newHashMap();
@ -218,7 +219,15 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
}
}
}
//20240913逻辑修改如果登录人非系统管理员且非人员分组管理员时可查看其下级人员
if (!isFzgly) {
//获取登录人员下级信息
String subEmpSql = "select * from hrmresource where managerid = " + userId;
List<Map<String, Object>> subEmpData = DbTools.getSqlToList(subEmpSql);
for (Map<String, Object> map : subEmpData) {
userIdMap.put(map.get("id").toString(),startTime+","+endTime);
}
}
for (int i=0;i<dataTable.size();i++){
Map<String,Object> map = dataTable.get(i);
String id = Util.null2String(map.get("id"));

@ -137,6 +137,7 @@ public class MakeUpClockInAction implements Action {
List<Map<String, Object>> item = itemsGroupById.get(bdklx);
int maxclockTimes = Integer.valueOf(item.get(0).get("xzsydcs").toString());
int clockTimes = detailDatas.size();
String doLimitClockTimes = Util.null2String(item.get(0).get("kqzqnxzsycs"));
//计入限制次数的其他项目
String hbjrdkqxm = Util.null2String(item.get(0).get("hbjrdkqxm"));
@ -152,7 +153,7 @@ public class MakeUpClockInAction implements Action {
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(e.get("dkrq").toString())) >=0).collect(Collectors.toList());
clockTimes +=existsList.size();
log.debug("clockTimes : [{}],maxclockTimes : [{}]",clockTimes,maxclockTimes);
if (clockTimes > maxclockTimes){
if (clockTimes > maxclockTimes && "1".equals(doLimitClockTimes)){
//已达到请假上限
log.error("考勤项目已达到补打卡上限");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");

Loading…
Cancel
Save