refactor(oa): 重构薪资提醒调度器包结构

- 将 OaSalaryRemindScheduler 类从 service.impl 包移动到 task 包
- 更新包声明以反映新的类位置
- 保持原有功能和逻辑不变
This commit is contained in:
2025-12-06 14:01:57 +08:00
parent 7638f68988
commit 71fe1fe646

View File

@@ -0,0 +1,65 @@
package com.ruoyi.oa.task;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.OaSalaryMaster;
import com.ruoyi.oa.domain.SysOaRemind;
import com.ruoyi.oa.mapper.OaSalaryMasterMapper;
import com.ruoyi.oa.mapper.SysOaRemindMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@RequiredArgsConstructor
@Service
public class OaSalaryRemindScheduler {
private final OaSalaryMasterMapper salaryMasterMapper;
private final SysOaRemindMapper remindMapper;
// 老板用户ID
private static final Long BOSS_USER_ID = 1859252208375152641L;
// 每天凌晨1点执行
@Scheduled(cron = "0 0 1 * * ?")
public void generateSalaryReminds() {
// 查询未审批(0)且未删除(0)的工资主表
LambdaQueryWrapper<OaSalaryMaster> salaryWrapper = Wrappers.lambdaQuery();
salaryWrapper.eq(OaSalaryMaster::getSalaryStatus, 0)
.eq(OaSalaryMaster::getDelFlag, 0L);
List<OaSalaryMaster> pendingSalaries = salaryMasterMapper.selectList(salaryWrapper);
Date now = new Date();
for (OaSalaryMaster master : pendingSalaries) {
SysOaRemind remind = new SysOaRemind();
remind.setRemindType("salary");
remind.setDetailId(master.getMasterId());
remind.setTargetUserId(BOSS_USER_ID);
remind.setTaskTitle("工资审批提醒");
StringBuilder content = new StringBuilder();
if (master.getUnitName() != null) {
content.append(master.getUnitName()).append(" ");
}
if (master.getSalaryPeriod() != null) {
content.append(master.getSalaryPeriod()).append(" ");
}
content.append("工资待审批");
remind.setContent(content.toString());
remind.setTaskStatus("0");
remind.setTaskTime(null);
Date threeDaysLater = new Date(now.getTime() + 3L * 24 * 60 * 60 * 1000);
remind.setEndTime(threeDaysLater);
remind.setCreateBy(master.getCreateBy());
remind.setCreateTime(now);
remind.setUpdateBy("admin");
remind.setAccessory(null);
remind.setRemark(master.getRemark());
remindMapper.insert(remind);
}
}
}