77 lines
2.9 KiB
Java
77 lines
2.9 KiB
Java
|
|
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);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|