Commit a9921d9a authored by 赵啸非's avatar 赵啸非

修改考勤计算

parent 2ba11ef2
package com.mortals.xhx.common.utils;
import cn.hutool.core.date.DateTime;
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());
int compare = DateUtil.compare(attendEnd, attendStart);
StopWatch stopWatch = new StopWatch("stopwatch attend");
for(int i=0;i<compare;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
......
......@@ -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) {
......
......@@ -30,8 +30,8 @@ Authorization: {{authToken}}
Content-Type: application/json
{
"attendanceDateStart":"2023-12-11",
"attendanceDateEnd":"2023-12-11"
"attendanceDateStart":"2023-12-01",
"attendanceDateEnd":"2023-12-31"
}
......@@ -43,7 +43,7 @@ Content-Type: application/json
{
"attendanceDateStart":"2023-12-01",
"attendanceDateEnd":"2023-12-30"
"attendanceDateEnd":"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