Commit 51db094a authored by 姬鋆屾's avatar 姬鋆屾
parents 01273f8b e88567ca
package com.mortals.xhx.common.utils;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity;
import com.mortals.xhx.module.attendance.service.AttendanceRecordHikService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StopWatch;
@AllArgsConstructor
@Slf4j
public class AddAttendThread implements Runnable {
private AttendanceRecordHikService hikService;
private AttendanceRecordHikEntity hikEntity;
private Context context;
@Override
public void run() {
log.info("考勤计算开始!");
try {
//天数区间分段计算
DateTime attendStart = DateUtil.parseDate(hikEntity.getAttendanceDateStart());
DateTime attendEnd = DateUtil.parseDate(hikEntity.getAttendanceDateEnd());
Long compare = DateUtil.between(attendEnd, attendStart, DateUnit.DAY);
StopWatch stopWatch = new StopWatch("stopwatch attend");
log.info("考勤计算天数区间:{}", compare);
for (int i = 0; i <= compare.intValue(); i++) {
DateTime curDate = DateUtil.offsetDay(attendStart, i);
log.info("考勤计算日期:{}", curDate.toDateStr());
stopWatch.start("执行本地方法");
hikEntity.setAttendanceDateStart(curDate.toDateStr());
hikEntity.setAttendanceDateEnd(curDate.toDateStr());
hikService.addAttendanceRecordByQuery(hikEntity, context);
stopWatch.stop();
log.info("考勤计算日期:{} 完成,耗时:{}ms", curDate.toDateStr(), stopWatch.getLastTaskTimeMillis());
}
} catch (Exception e) {
log.error("考勤计算失败!", e);
}
log.info("考勤计算结束!");
}
}
......@@ -12,7 +12,7 @@ public class StartService implements IApplicationStartedService {
@Override
public void start() {
ThreadPool.getInstance().init(20);
ThreadPool.getInstance().init(10);
}
@Override
......
......@@ -87,7 +87,7 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
if (ObjectUtils.isEmpty(deptEntity)) {
deptEntity = new DeptEntity();
deptEntity.initAttrValue();
if (ObjectUtils.isEmpty(deptEntityParent)) {
if (!ObjectUtils.isEmpty(deptEntityParent)) {
deptEntity.setParentId(deptEntityParent.getId());
}
deptEntity.setDeptName(orgInfo.getOrgName());
......
......@@ -178,10 +178,10 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
recordDetailEntity.setShiftsName(classDetailEntity.getClassName());
recordDetailEntity.setGoWorkResult(GoWorkResultEnum.缺卡.getValue());
recordDetailEntity.setGoWorkDate(DateUtil.parse(commonData.getDateStr() + " " + DateUtil.formatTime(classDetailEntity.getGoWorkDate())));
//recordDetailEntity.setGoWorkDate(DateUtil.parse(commonData.getDateStr() + " " + DateUtil.formatTime(classDetailEntity.getGoWorkDate())));
recordDetailEntity.setOffWorkResult(GoWorkResultEnum.缺卡.getValue());
recordDetailEntity.setOffWorkDate(DateUtil.parse(commonData.getDateStr() + " " + DateUtil.formatTime(classDetailEntity.getOffWorkDate())));
//recordDetailEntity.setOffWorkDate(DateUtil.parse(commonData.getDateStr() + " " + DateUtil.formatTime(classDetailEntity.getOffWorkDate())));
recordDetailEntity.setOrderNum(orderNum);
commonData.getDetailEntityList().add(recordDetailEntity);
......@@ -352,7 +352,7 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
errorEntity.setShiftsName(recordDetailEntity.getShiftsName());
errorEntity.setProcessStatus(YesNoEnum.NO.getValue());
errorEntity.setCreateTime(new Date());
errorEntity.setCreateUserId(context.getUser().getId());
errorEntity.setCreateUserId(1L);
Date goWorkDate = attendanceClassDetailEntity.getGoWorkDate();
errorEntity.setGoOffDateTime(DateUtil.parseDateTime(dateStr + " " + DateUtil.formatTime(goWorkDate)).toJdkDate());
if (!ObjectUtils.isEmpty(recordDetailEntity.getGoWorkDate())) {
......@@ -382,7 +382,7 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
errorEntity.setShiftsName(recordDetailEntity.getShiftsName());
errorEntity.setProcessStatus(YesNoEnum.NO.getValue());
errorEntity.setCreateTime(new Date());
errorEntity.setCreateUserId(context.getUser().getId());
errorEntity.setCreateUserId(context==null?1L:context.getUser().getId());
Date offWorkDate = attendanceClassDetailEntity.getOffWorkDate();
errorEntity.setGoOffDateTime(DateUtil.parseDateTime(dateStr + " " + DateUtil.formatTime(offWorkDate)).toJdkDate());
if (!ObjectUtils.isEmpty(recordDetailEntity.getOffWorkDate())) {
......
......@@ -9,11 +9,13 @@ import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.util.StringUtils;
import com.mortals.framework.util.ThreadPool;
import com.mortals.framework.utils.ServletUtils;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.keys.RedisCacheKeys;
import com.mortals.xhx.common.utils.AddAttendThread;
import com.mortals.xhx.module.attendance.model.AttendanceClassEntity;
import com.mortals.xhx.module.attendance.model.AttendanceExportRecordEntity;
import com.mortals.xhx.module.attendance.model.AttendanceGroupEntity;
......@@ -142,7 +144,9 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro
if (ObjectUtils.isEmpty(hikEntity.getAttendanceDateStart())) {
throw new AppException("请选择开始日期");
}
hikService.addAttendanceRecordByQuery(hikEntity, getContext());
AddAttendThread addAttendThread = new AddAttendThread(hikService, hikEntity, getContext());
ThreadPool.getInstance().execute(addAttendThread);
//hikService.addAttendanceRecordByQuery(hikEntity, getContext());
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception e) {
......
......@@ -147,7 +147,6 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
staffQuery.setStatusNotList(Arrays.asList(StaffSatusEnum.离职.getValue()));
Map<String, StaffEntity> staffCollect = this.find(staffQuery).stream().collect(Collectors.toMap(x -> x.getWorkNum(), y -> y, (o, n) -> n));
List<PersonInfo> personInfoList = personRest.getData().getList();
for (PersonInfo personInfo : personInfoList) {
if (ObjectUtils.isEmpty(personInfo.getJobNo())) {
......@@ -156,7 +155,6 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
}
if (staffCollect.containsKey(personInfo.getJobNo())) {
staffCollect.remove(personInfo.getJobNo());
}
StaffEntity staffEntity = this.getExtCache(StrUtil.padPre(personInfo.getJobNo(), 8, "0"));
......@@ -180,7 +178,6 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
staffEntity.setCreateUserId(1L);
staffEntity.setCreateTime(new Date());
this.save(staffEntity);
} else {
//更新
if (!ObjectUtils.isEmpty(deptEntity)) {
......@@ -203,7 +200,6 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
if (staffCollect.size() > 0) {
//需要将此人员变更为离职
staffCollect.entrySet().stream().forEach(item -> {
String key = item.getKey();
if (!ObjectUtils.isEmpty(key)) {
StaffEntity staff = item.getValue();
......
......@@ -24,6 +24,15 @@ Content-Type: application/json
{}
###海康考勤打卡记录计算
POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord
Authorization: {{authToken}}
Content-Type: application/json
{
"attendanceDateStart":"2023-12-01",
"attendanceDateEnd":"2024-01-11"
}
......@@ -34,7 +43,7 @@ Content-Type: application/json
{
"attendanceDateStart":"2023-12-01",
"attendanceDateEnd":"2023-12-30"
"attendanceDateEnd":"2023-12-31"
}
......@@ -43,7 +52,7 @@ POST {{baseUrl}}//attendance/stat/summary
Authorization: {{authToken}}
Content-Type: application/json
{"summaryTimeStart":"2024-01-01","summaryTimeEnd":"2024-01-03"}
{"summaryTimeStart":"2023-12-01","summaryTimeEnd":"2023-12-31"}
###短信设置编辑
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment