package com.yihu.jw.util; import com.alibaba.fastjson.JSONObject; import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO; import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO; import com.yihu.jw.job.PrescriptionOverdueJob; import com.yihu.jw.service.channel.PrescriptionStatusUpdateService; import com.yihu.jw.util.date.DateUtil; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.Trigger; import org.springframework.scheduling.TriggerContext; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.config.ScheduledTaskRegistrar; import org.springframework.scheduling.support.CronTrigger; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; @Lazy(false) @Component @EnableScheduling public class OverdueJob implements SchedulingConfigurer { private static final Logger logger = LoggerFactory.getLogger(OverdueJob.class); private static String cron = "0 */5 * * * ?";//"0 0 0 * * ?";0 */5 * * * ? public OverdueJob(){ cron="0 */5 * * * ?"; System.out.println("初始化时的corn"+cron); } @Autowired private PrescriptionStatusUpdateService prescriptionStatusUpdateService; public String change(String corIn) { if (StringUtils.isNotBlank(corIn)) { cron = corIn; } return cron; } @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.addTriggerTask(new Runnable() { @Override public void run() { logger.info("START========OverdueJob========"); try { prescriptionStatusUpdateService.setOutPatientOver(); logger.info("END========OverdueJob========"); } catch (Exception e) { e.printStackTrace(); logger.error("END===ERROE===OverdueJob,message:"+e.getMessage()); } } }, new Trigger() { @Override public Date nextExecutionTime(TriggerContext triggerContext) { // 任务触发,可修改任务的执行周期 CronTrigger trigger = new CronTrigger(cron); System.out.println("OverdueJob任务触发,可修改任务的执行周期"+cron); Date nextExec = trigger.nextExecutionTime(triggerContext); return nextExec; } }); } }