自动同步考勤定时任务

This commit is contained in:
Harryxzy 2023-10-09 14:10:09 +08:00
parent dada3a0633
commit d69aa46e33
1 changed files with 76 additions and 0 deletions

View File

@ -0,0 +1,76 @@
package com.engine.salary.timer;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.datacollection.param.AttendQuoteCheckOperationParam;
import com.engine.salary.entity.datacollection.param.AttendQuoteDataSyncParam;
import com.engine.salary.entity.salarysob.po.SalarySobPO;
import com.engine.salary.service.SalarySobService;
import com.engine.salary.service.impl.SalarySobServiceImpl;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.wrapper.AttendQuoteDataWrapper;
import com.engine.salary.wrapper.AttendQuoteWrapper;
import org.apache.commons.lang3.StringUtils;
import weaver.general.BaseBean;
import weaver.hrm.User;
import weaver.interfaces.schedule.BaseCronJob;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
/**
* @author Harryxzy
* @ClassName AutoSyncAttendQuoteData
* @date 2023/08/11 9:53
* @description 自动同步所有薪资账套的考勤引用
*/
public class AutoSyncAttendQuoteDataJob extends BaseCronJob {
private String date;
private SalarySobService getSalarySobService(User user) {
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
}
private AttendQuoteWrapper getAttendQuoteWrapper(User user) {
return ServiceUtil.getService(AttendQuoteWrapper.class, user);
}
private AttendQuoteDataWrapper getAttendQuoteDataWrapper(User user) {
return ServiceUtil.getService(AttendQuoteDataWrapper.class, user);
}
@Override
public void execute() {
User tempUser = new User();
tempUser.setUid(1);
tempUser.setLoginid("sysadmin");
// 获取所有的薪资账套
List<SalarySobPO> salarySobList = getSalarySobService(tempUser).listAll();
LocalDate localDate = SalaryDateUtil.dateToLocalDate(new Date());
localDate.plusMonths(-1);
if (StringUtils.isNotBlank(date)) {
localDate = SalaryDateUtil.dateToLocalDate(SalaryDateUtil.dateStrToLocalDate(date));
}
String dateStr = SalaryDateUtil.getFormatYearMonth(localDate);
BaseBean baseBean = new BaseBean();
// 循环所有的账套
salarySobList.stream().forEach(sob -> {
// 校验是否可以操作
Boolean canSync = getAttendQuoteWrapper(tempUser).checkOperation(AttendQuoteCheckOperationParam.builder()
.salarySobId(sob.getId())
.salaryYearMonthStr(dateStr)
.build());
if (canSync) {
// 同步数据
try {
getAttendQuoteDataWrapper(tempUser).syncAttendQuoteData(AttendQuoteDataSyncParam.builder()
.salarySobId(sob.getId())
.salaryYearMonth(dateStr)
.build());
} catch (Exception e) {
baseBean.writeLog("自动同步考勤数据出错:"+ e);
}
}
});
}
}