فهرست منبع

长沙湘雅代码修改

shiyue 3 سال پیش
والد
کامیت
279cc52486
1فایلهای تغییر یافته به همراه72 افزوده شده و 0 حذف شده
  1. 72 0
      src/main/java/com/diagbot/task/ViewOldTask.java

+ 72 - 0
src/main/java/com/diagbot/task/ViewOldTask.java

@@ -0,0 +1,72 @@
+package com.diagbot.task;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.SysTaskCron;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.SysTaskCronFacade;
+import com.diagbot.facade.ViewFacade;
+import com.diagbot.facade.data.ABasDeptInfoFacade;
+import com.diagbot.util.StringUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+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 java.time.LocalDateTime;
+import java.util.Date;
+
+@Configuration      //1.主要用于标记配置类,兼备Component的效果。
+@EnableScheduling   // 2.开启定时任务
+@Slf4j
+public class ViewOldTask implements SchedulingConfigurer{
+
+	@Autowired
+    private SysTaskCronFacade sysTaskCronFacade;
+
+    private SysTaskCron taskDate = new SysTaskCron();
+
+    @Autowired
+	private ABasDeptInfoFacade aBasDeptInfoFacade;
+
+    @Autowired
+    private ViewFacade viewFacade;
+
+    /**
+     * 执行定时任务.
+     */
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+        taskRegistrar.addTriggerTask(new Runnable() {
+            @Override
+            public void run() {
+                //1.添加任务内容(Runnable)
+                if (null != taskDate
+                        && taskDate.getIsDeleted().equals(IsDeleteEnum.N.getKey())
+                        && taskDate.getIsUsed().equals(1)) {
+                    log.info("执行动态定时任务: " + LocalDateTime.now().toLocalTime());
+                    System.out.println("aaaaaaaaaaaaaaaaaaaaaaaa");
+                    viewFacade.execute(taskDate.getParam());
+                }
+            }
+        }, new Trigger() {
+            @Override
+            public Date nextExecutionTime(TriggerContext triggerContext) {
+                //2.1 从数据库获取执行周期
+                taskDate = sysTaskCronFacade.getOne(new QueryWrapper<SysTaskCron>()
+                        .eq("cron_code", "ViewOldTASK"), false);
+                String cron = "0 0 23 * * ? ";
+                //2.2 合法性校验.
+                if (null != taskDate && StringUtil.isNotBlank(taskDate.getCron())) {
+                    cron = taskDate.getCron();
+                }
+                CronTrigger trigger = new CronTrigger(cron);
+                return trigger.nextExecutionTime(triggerContext);
+            }
+        });
+    }
+}