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 { ...@@ -12,7 +12,7 @@ public class StartService implements IApplicationStartedService {
@Override @Override
public void start() { public void start() {
ThreadPool.getInstance().init(20); ThreadPool.getInstance().init(10);
} }
@Override @Override
......
...@@ -9,11 +9,13 @@ import com.mortals.framework.model.Context; ...@@ -9,11 +9,13 @@ import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol; import com.mortals.framework.model.OrderCol;
import com.mortals.framework.service.ICacheService; import com.mortals.framework.service.ICacheService;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
import com.mortals.framework.util.ThreadPool;
import com.mortals.framework.utils.ServletUtils; import com.mortals.framework.utils.ServletUtils;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.base.system.upload.service.UploadService; import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.keys.RedisCacheKeys; 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.AttendanceClassEntity;
import com.mortals.xhx.module.attendance.model.AttendanceExportRecordEntity; import com.mortals.xhx.module.attendance.model.AttendanceExportRecordEntity;
import com.mortals.xhx.module.attendance.model.AttendanceGroupEntity; import com.mortals.xhx.module.attendance.model.AttendanceGroupEntity;
...@@ -142,7 +144,9 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro ...@@ -142,7 +144,9 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro
if (ObjectUtils.isEmpty(hikEntity.getAttendanceDateStart())) { if (ObjectUtils.isEmpty(hikEntity.getAttendanceDateStart())) {
throw new AppException("请选择开始日期"); 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 + "成功"); model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】"); this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception e) { } catch (Exception e) {
......
...@@ -30,8 +30,8 @@ Authorization: {{authToken}} ...@@ -30,8 +30,8 @@ Authorization: {{authToken}}
Content-Type: application/json Content-Type: application/json
{ {
"attendanceDateStart":"2023-12-11", "attendanceDateStart":"2023-12-01",
"attendanceDateEnd":"2023-12-11" "attendanceDateEnd":"2023-12-31"
} }
...@@ -43,7 +43,7 @@ Content-Type: application/json ...@@ -43,7 +43,7 @@ Content-Type: application/json
{ {
"attendanceDateStart":"2023-12-01", "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