package com.ruoyi.system.task.jobs; import com.google.common.collect.ImmutableMap; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.system.model.TCommunityActivity; import com.ruoyi.system.model.TQuestionnaire; import com.ruoyi.system.task.base.AbstractJob; import com.ruoyi.system.task.base.QuartzManager; import com.ruoyi.system.task.base.TimeJobType; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import java.time.LocalDateTime; import java.util.Map; import java.util.Objects; /** * 问卷调查 * @author Administrator * */ public class QuestionnairePush extends AbstractJob { public static final String name = "questionnairePush_"; @Override public void execute(JobExecutionContext context) throws JobExecutionException { JobDataMap maps = context.getMergedJobDataMap(); String questionnaireId = maps.getString("id"); String type = maps.getString("type"); try { TQuestionnaire questionnaire = questionnaireService.getById(questionnaireId); if(Objects.isNull(questionnaire)){ return; } LocalDateTime startTime = questionnaire.getStartTime(); LocalDateTime endTime = questionnaire.getEndTime(); LocalDateTime now = LocalDateTime.now(); if("1".equals(type) && now.compareTo(startTime) > -1 && now.compareTo(endTime) < 1){ questionnaire.setStatus(2); // 添加定时任务 Map map = new ImmutableMap.Builder(). put("id", questionnaire.getId()).put("type","2") .build(); QuartzManager.addJob( QuestionnairePush.class, (DeliberationVotePush.name+questionnaire.getId()).toUpperCase(), TimeJobType.QUESTIONNAIRE_PUSH, DateUtils.localDateTimeToDate(questionnaire.getEndTime()), map ); } if("2".equals(type) && now.isAfter(endTime)){ questionnaire.setStatus(3); } questionnaireService.updateById(questionnaire); }catch(Exception e){ e.printStackTrace(); } } }