55 lines
1.7 KiB
Java
55 lines
1.7 KiB
Java
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;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import weaver.hrm.User;
|
|
import weaver.interfaces.schedule.BaseCronJob;
|
|
|
|
import java.time.LocalDate;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
@Slf4j
|
|
public class HrmSnapshotJob extends BaseCronJob {
|
|
|
|
//指定筷子时间
|
|
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");
|
|
|
|
try {
|
|
List<HrmSnapshotPO> hrmSnapshotPOS = getHrmSnapshotMapper().currentEmpData();
|
|
|
|
Date snapshotTime = StrUtil.isNotBlank(appointSnapshotTime) && SalaryDateUtil.checkDay(appointSnapshotTime) ? SalaryDateUtil.dateStrToLocalDate(appointSnapshotTime) : SalaryDateUtil.localDateToDate(LocalDate.now());
|
|
|
|
//先删除当日快照
|
|
getHrmSnapshotMapper().deleteBySnapshotTime(snapshotTime);
|
|
|
|
hrmSnapshotPOS.forEach(hrmSnapshotPO -> {
|
|
|
|
hrmSnapshotPO.setId(IdGenerator.generate());
|
|
hrmSnapshotPO.setSnapshotTime(snapshotTime);
|
|
|
|
getHrmSnapshotMapper().insertIgnoreNull(hrmSnapshotPO);
|
|
|
|
});
|
|
}catch (Exception e){
|
|
log.error("生成快照失败", e);
|
|
}
|
|
}
|
|
|
|
}
|