weaver-hrm-salary/src/com/engine/salary/timer/HrmSnapshotJob.java

55 lines
1.7 KiB
Java
Raw Normal View History

2024-12-03 16:39:02 +08:00
package com.engine.salary.timer;
import cn.hutool.core.util.StrUtil;
import com.engine.salary.entity.hrm.po.HrmSnapshotPO;
import com.engine.salary.mapper.hrm.HrmSnapshotMapper;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.db.IdGenerator;
import com.engine.salary.util.db.MapperProxyFactory;
2024-12-06 16:00:05 +08:00
import lombok.extern.slf4j.Slf4j;
2024-12-03 16:39:02 +08:00
import weaver.hrm.User;
import weaver.interfaces.schedule.BaseCronJob;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
2024-12-06 16:00:05 +08:00
@Slf4j
2024-12-03 16:39:02 +08:00
public class HrmSnapshotJob extends BaseCronJob {
2024-12-06 16:00:05 +08:00
//指定筷子时间
2024-12-03 16:39:02 +08:00
private String appointSnapshotTime;
private HrmSnapshotMapper getHrmSnapshotMapper() {
return MapperProxyFactory.getProxy(HrmSnapshotMapper.class);
}
@Override
public void execute() {
User user = new User();
user.setUid(1);
user.setLoginid("sysadmin");
2024-12-06 16:00:05 +08:00
try {
List<HrmSnapshotPO> hrmSnapshotPOS = getHrmSnapshotMapper().currentEmpData();
2024-12-03 16:39:02 +08:00
2024-12-06 16:00:05 +08:00
Date snapshotTime = StrUtil.isNotBlank(appointSnapshotTime) && SalaryDateUtil.checkDay(appointSnapshotTime) ? SalaryDateUtil.dateStrToLocalDate(appointSnapshotTime) : SalaryDateUtil.localDateToDate(LocalDate.now());
2024-12-03 16:39:02 +08:00
2024-12-06 16:00:05 +08:00
//先删除当日快照
getHrmSnapshotMapper().deleteBySnapshotTime(snapshotTime);
2024-12-03 16:39:02 +08:00
2024-12-06 16:00:05 +08:00
hrmSnapshotPOS.forEach(hrmSnapshotPO -> {
2024-12-03 16:39:02 +08:00
2024-12-06 16:00:05 +08:00
hrmSnapshotPO.setId(IdGenerator.generate());
hrmSnapshotPO.setSnapshotTime(snapshotTime);
2024-12-03 16:39:02 +08:00
2024-12-06 16:00:05 +08:00
getHrmSnapshotMapper().insertIgnoreNull(hrmSnapshotPO);
2024-12-03 16:39:02 +08:00
2024-12-06 16:00:05 +08:00
});
}catch (Exception e){
log.error("生成快照失败", e);
}
2024-12-03 16:39:02 +08:00
}
}