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<String, ? extends Object> map =
|
new ImmutableMap.Builder<String, String>().
|
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();
|
}
|
}
|
|
}
|