Commit 411c566f authored by 廖旭伟's avatar 廖旭伟

请假审批通过后统计考勤汇总

parent 0eccc2d6
package com.mortals.xhx.common.utils; package com.mortals.xhx.common.utils;
import com.mortals.framework.util.DateUtils; import com.mortals.framework.util.DateUtils;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity; import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity;
import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery; import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery;
import com.mortals.xhx.module.attendance.service.AttendanceStatService; import com.mortals.xhx.module.attendance.service.AttendanceStatService;
...@@ -12,6 +13,11 @@ import lombok.NonNull; ...@@ -12,6 +13,11 @@ import lombok.NonNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/** /**
* 考勤核查后续处理线程 * 考勤核查后续处理线程
* *
...@@ -24,16 +30,38 @@ public class AttendSummaryThread implements Runnable { ...@@ -24,16 +30,38 @@ public class AttendSummaryThread implements Runnable {
@NonNull @NonNull
private AttendanceStatService attendanceStatService; private AttendanceStatService attendanceStatService;
@NonNull @NonNull
private AttendanceRecordErrorEntity entity; private AttendanceSummaryQuery query;
@Override @Override
public void run() { public void run() {
AttendanceSummaryQuery query = new AttendanceSummaryQuery(); // AttendanceSummaryQuery query = new AttendanceSummaryQuery();
query.setStaffId(entity.getStaffId()); // query.setStaffId(entity.getStaffId());
query.setSummaryTime(DateUtils.getStrDate(entity.getErrorDateTime())); // query.setSummaryTime(DateUtils.getStrDate(entity.getErrorDateTime()));
if (StringUtils.isNotEmpty(query.getSummaryTimeStart()) && StringUtils.isNotEmpty(query.getSummaryTimeEnd())) {
List<String> dateList = getDatesBetween(query.getSummaryTimeStart(), query.getSummaryTimeEnd());
for (String day : dateList) {
AttendanceSummaryQuery temp = new AttendanceSummaryQuery(day);
attendanceStatService.doAttendanceSummary(temp);
}
} else {
attendanceStatService.doAttendanceSummary(query); attendanceStatService.doAttendanceSummary(query);
}
} }
private List<String> getDatesBetween(String startDateStr, String endDateStr) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate startDate = LocalDate.parse(startDateStr, formatter);
LocalDate endDate = LocalDate.parse(endDateStr, formatter);
List<String> dates = new ArrayList<>();
//这里是判断开始日期是否在结束日期之后或者=结束日期
while (startDate.isBefore(endDate) || startDate.isEqual(endDate)) {
String add = startDate.format(formatter);
dates.add(add);
startDate = startDate.plusDays(1);
}
return dates;
}
} }
package com.mortals.xhx.module.attendance.service.impl; package com.mortals.xhx.module.attendance.service.impl;
import com.mortals.framework.util.DateUtils;
import com.mortals.framework.util.ThreadPool;
import com.mortals.xhx.common.utils.AttendSummaryThread;
import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery;
import com.mortals.xhx.module.attendance.service.AttendanceStatService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -16,4 +22,19 @@ import com.mortals.xhx.module.attendance.service.AttendanceLeaveRecordService; ...@@ -16,4 +22,19 @@ import com.mortals.xhx.module.attendance.service.AttendanceLeaveRecordService;
@Service("attendanceLeaveRecordService") @Service("attendanceLeaveRecordService")
public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<AttendanceLeaveRecordDao, AttendanceLeaveRecordEntity, Long> implements AttendanceLeaveRecordService { public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<AttendanceLeaveRecordDao, AttendanceLeaveRecordEntity, Long> implements AttendanceLeaveRecordService {
@Autowired
private AttendanceStatService attendanceStatService;
@Override
protected void updateAfter(AttendanceLeaveRecordEntity entity, Context context) throws AppException {
super.updateAfter(entity,context);
if(entity.getAuditResult()==1){
AttendanceSummaryQuery query = new AttendanceSummaryQuery();
query.setStaffId(entity.getLeavePersonId());
query.setSummaryTimeStart(DateUtils.getStrDate(entity.getStartTime()));
query.setSummaryTimeEnd(DateUtils.getStrDate(entity.getEndTime()));
AttendSummaryThread summaryThread = new AttendSummaryThread(attendanceStatService, query);
ThreadPool.getInstance().execute(summaryThread);
}
}
} }
\ No newline at end of file
...@@ -148,13 +148,11 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At ...@@ -148,13 +148,11 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
//异常处理后重新汇总考勤 //异常处理后重新汇总考勤
if(StringUtils.isNotEmpty(entity.getProcessResult())) { if(StringUtils.isNotEmpty(entity.getProcessResult())) {
AttendSummaryThread summaryThread = new AttendSummaryThread(attendanceStatService, entity); AttendanceSummaryQuery query = new AttendanceSummaryQuery();
ThreadPool.getInstance().execute(summaryThread);
/* AttendanceSummaryQuery query = new AttendanceSummaryQuery();
query.setStaffId(entity.getStaffId()); query.setStaffId(entity.getStaffId());
query.setSummaryTime(DateUtils.getStrDate(entity.getErrorDateTime())); query.setSummaryTime(DateUtils.getStrDate(entity.getErrorDateTime()));
attendanceStatService.doAttendanceSummary(query);*/ AttendSummaryThread summaryThread = new AttendSummaryThread(attendanceStatService, query);
ThreadPool.getInstance().execute(summaryThread);
} }
} }
} }
......
...@@ -155,7 +155,7 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc ...@@ -155,7 +155,7 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
if (StringUtils.isEmpty(query.getSummaryTime())) { if (StringUtils.isEmpty(query.getSummaryTime())) {
Calendar now = Calendar.getInstance(); Calendar now = Calendar.getInstance();
now.setTime(new Date()); now.setTime(new Date());
now.add(Calendar.DAY_OF_MONTH, -1); //默认查最近30天数据 now.add(Calendar.DAY_OF_MONTH, -1); //默认查前一天数据
query.setSummaryTime(DateUtils.getStrDate(now.getTime())); query.setSummaryTime(DateUtils.getStrDate(now.getTime()));
} }
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
......
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