增加worker_month_attendance统计考勤时是否忽略员工打卡时的“进/出”方向标识,1忽略0不忽略
This commit is contained in:
parent
38342059c9
commit
5429de0196
@ -76,4 +76,9 @@ public class ProjectConfig implements Serializable {
|
||||
private java.lang.Integer workTicketBindCamera;
|
||||
@ApiModelProperty(value = "1开启人脸录入时的人脸检测识别功能0不开启")
|
||||
private java.lang.Integer enableWorkerFaceCheck;
|
||||
/**
|
||||
* worker_month_attendance统计考勤时是否忽略员工打卡时的“进/出”方向标识,1忽略0不忽略
|
||||
*/
|
||||
@ApiModelProperty(value = "worker_month_attendance统计考勤时是否忽略员工打卡时的“进/出”方向标识,1忽略0不忽略")
|
||||
private java.lang.Integer ignoreWorkerMonthAttendanceInOut;
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.worker.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@ -10,7 +11,9 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl;
|
||||
import com.zhgd.xmgl.modules.govtapi.GovtOpenApiService;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.project.entity.ProjectConfig;
|
||||
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
|
||||
import com.zhgd.xmgl.modules.project.service.IProjectConfigService;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerAttendanceRule;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerMonthAttendanceDuration;
|
||||
@ -21,7 +24,6 @@ import com.zhgd.xmgl.util.DateUtils;
|
||||
import com.zhgd.xmgl.util.EnvironmentUtil;
|
||||
import com.zhgd.xmgl.util.JxlExcelUtils;
|
||||
import com.zhgd.xmgl.util.ReflectUtils;
|
||||
import lombok.extern.log4j.Log4j;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang.math.NumberUtils;
|
||||
@ -529,6 +531,9 @@ public class WorkerMonthAttendanceStatisticsServiceImpl extends ServiceImpl<Work
|
||||
}
|
||||
}
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IProjectConfigService projectConfigService;
|
||||
|
||||
//判断考勤情况
|
||||
public Map<String, Integer> getWorkerAttendanceType(String personSn, Long workerAttendanceRuleId, String passTime) {
|
||||
@ -562,11 +567,14 @@ public class WorkerMonthAttendanceStatisticsServiceImpl extends ServiceImpl<Work
|
||||
//结果集按时间DESC
|
||||
List<EntityMap> list = workerAttendanceMapper.selectOneWorkerAttendance(param);
|
||||
if (list != null && !list.isEmpty()) {
|
||||
ProjectConfig config = projectConfigService.getOne(new LambdaQueryWrapper<ProjectConfig>()
|
||||
.eq(ProjectConfig::getProjectSn, list.get(0).get("projectSn")));
|
||||
boolean ignoreInOut = config != null && Objects.equals(config.getIgnoreWorkerMonthAttendanceInOut(), 1);
|
||||
String maxTime = null;
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
EntityMap map = list.get(i);
|
||||
//2:出
|
||||
if (map.get("passType") != null && map.get("createTime") != null && NumberUtils.toInt(map.get("passType").toString()) == 2) {
|
||||
if (map.get("createTime") != null && (ignoreInOut || (map.get("passType") != null && NumberUtils.toInt(map.get("passType").toString()) == 2))) {
|
||||
maxTime = map.get("createTime").toString();
|
||||
break;
|
||||
}
|
||||
@ -575,9 +583,11 @@ public class WorkerMonthAttendanceStatisticsServiceImpl extends ServiceImpl<Work
|
||||
for (int i = (list.size() - 1); i >= 0; i--) {
|
||||
Map<String, Object> map = list.get(i);
|
||||
//1:进
|
||||
if (map.get("passType") != null && map.get("createTime") != null && NumberUtils.toInt(map.get("passType").toString()) == 1) {
|
||||
minTime = map.get("createTime").toString();
|
||||
break;
|
||||
if (map.get("createTime") != null && (ignoreInOut || (map.get("passType") != null && NumberUtils.toInt(map.get("passType").toString()) == 1))) {
|
||||
if (!Objects.equals(maxTime, map.get("createTime").toString())) {
|
||||
minTime = map.get("createTime").toString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
String startTimes = null;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user