2023-10-09 14:10:09 +08:00
|
|
|
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;
|
2023-10-09 14:34:18 +08:00
|
|
|
import org.apache.commons.lang3.math.NumberUtils;
|
2023-10-09 14:10:09 +08:00
|
|
|
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 自动同步所有薪资账套的考勤引用
|
|
|
|
|
*/
|
2023-10-09 14:34:18 +08:00
|
|
|
public class AutoSyncAttendQuoteJob extends BaseCronJob {
|
2023-10-09 14:10:09 +08:00
|
|
|
|
2023-10-09 14:34:18 +08:00
|
|
|
private String preMonth;
|
2023-10-09 14:10:09 +08:00
|
|
|
|
|
|
|
|
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());
|
2023-10-09 14:34:18 +08:00
|
|
|
|
|
|
|
|
int preMonthValue = -1;
|
|
|
|
|
if (preMonth != null && NumberUtils.isCreatable(preMonth)) {
|
|
|
|
|
preMonthValue = -1 * Integer.valueOf(preMonth);
|
2023-10-09 14:10:09 +08:00
|
|
|
}
|
2023-10-09 14:34:18 +08:00
|
|
|
localDate = localDate.plusMonths(preMonthValue);
|
|
|
|
|
|
2023-10-09 14:10:09 +08:00
|
|
|
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 {
|
2023-10-09 14:34:18 +08:00
|
|
|
baseBean.writeLog("自动同步考勤数据开始:"+ sob.getId()+","+dateStr);
|
2023-10-09 14:10:09 +08:00
|
|
|
getAttendQuoteDataWrapper(tempUser).syncAttendQuoteData(AttendQuoteDataSyncParam.builder()
|
|
|
|
|
.salarySobId(sob.getId())
|
|
|
|
|
.salaryYearMonth(dateStr)
|
|
|
|
|
.build());
|
2023-10-09 14:34:18 +08:00
|
|
|
baseBean.writeLog("自动同步考勤数据结束:"+ sob.getId()+","+dateStr);
|
2023-10-09 14:10:09 +08:00
|
|
|
} catch (Exception e) {
|
|
|
|
|
baseBean.writeLog("自动同步考勤数据出错:"+ e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|