TaskRemindJob.java 3.1 KB
package com.skua.modules.equipment.quartz;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists;
import com.skua.core.util.push.MessageEntity;
import com.skua.modules.alarmtmp.entity.AlarmRecordHistory;
import com.skua.modules.equipment.entity.EquipmentMaintainTask;
import com.skua.modules.equipment.service.IEquipmentInfoService;
import com.skua.modules.equipment.service.IEquipmentMaintainTaskService;
import com.skua.modules.system.service.WebNoticePushServiceExt;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @program: skboot
 * @description: 人员任务提醒定时任务
 * @author: zhanglei
 * @create: 2025/03/08 16:05:05
 */
@Slf4j
@Component
public class TaskRemindJob implements Job {

    @Autowired
    private IEquipmentMaintainTaskService equipmentMaintainTaskService;

    @Autowired
    private WebNoticePushServiceExt webNoticePushServiceExt;

    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        log.info("人员任务提醒定时任务开始");
        //当前时间
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        //一小时后时间
        LocalDateTime oneHourLater = now.plus(1, ChronoUnit.HOURS);
        String startTime = now.format(formatter);
        String endTime = oneHourLater.format(formatter);
        startTime = "2025-04-07 00:00:00";
        endTime = "2025-04-08 23:59:59";
        List<Map<String, Object>> wbList = getWbList(startTime,endTime);
        //推送维保消息
        pushWbMessage(wbList);

        log.info("人员任务提醒定时任务结束");
    }

    private boolean pushWbMessage(List<Map<String, Object>> wbList) {
        for (Map<String, Object> wbMap : wbList) {
            //获取用户列表后做消息推送
            MessageEntity messageEntity = new MessageEntity();
            messageEntity.setMessageTitle("流程审批消息");
            messageEntity.setMessageBody("您有一条【" + wbMap.get("taskName") + "】维保任务需要完成,请及时处理");
            messageEntity.setReceiveUser(null);
            messageEntity.setReceiveUserCid(null);
            messageEntity.setSendUser("系统");
            messageEntity.setForwardTag("maintain");
            webNoticePushServiceExt.pushMessage(messageEntity, "maintain", "M");
        }
        return true;
    }

    //maintain_plan_name 计划名称' maintainer_id` 维保人
    private List<Map<String, Object>> getWbList(String startTime, String endTime) {
        List<Map<String, Object>> list = new ArrayList<>();
        list = equipmentMaintainTaskService.getList(startTime, endTime);
        return list;
    }


}