jianghaodi 2 年之前
父节点
当前提交
ff8138303f

+ 11 - 0
src/main/java/com/diagbot/service/DataConsistencyService.java

@@ -0,0 +1,11 @@
+package com.diagbot.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * @author jianghaodi
+ * @create 2022/10/11 15:07
+ */
+@Service
+public interface DataConsistencyService{
+}

+ 16 - 0
src/main/java/com/diagbot/service/impl/DataConsistencyServiceImpl.java

@@ -0,0 +1,16 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.service.DataConsistencyService;
+
+/**
+ * @author jianghaodi
+ * @create 2022/10/11 15:08
+ */
+public class DataConsistencyServiceImpl implements DataConsistencyService {
+
+    public void consoleConsistency(String startDate,String endDate) {
+
+
+
+    }
+}

+ 82 - 0
src/main/java/com/diagbot/task/DataConsistencyTask.java

@@ -0,0 +1,82 @@
+package com.diagbot.task;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+import com.diagbot.facade.data.ABehospitalInfoFacade;
+import com.diagbot.service.impl.DataConsistencyServiceImpl;
+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 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.util.StringUtil;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Configuration      //1.主要用于标记配置类,兼备Component的效果。
+@EnableScheduling   // 2.开启定时任务
+@Slf4j
+public class DataConsistencyTask implements SchedulingConfigurer{
+    @Autowired
+    private SysTaskCronFacade sysTaskCronFacade;
+
+    private SysTaskCron task001 = new SysTaskCron();
+
+    @Autowired
+    private ABehospitalInfoFacade aBehospitalInfoFacade;
+    @Autowired
+    private DataConsistencyServiceImpl dataConsistencyService;
+
+    /**
+     * 执行定时任务.
+     */
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+        taskRegistrar.addTriggerTask(new Runnable() {
+            @Override
+            public void run() {
+                //1.添加任务内容(Runnable)
+                if (null != task001
+                        && task001.getIsDeleted().equals(IsDeleteEnum.N.getKey())
+                        && task001.getIsUsed().equals(1)) {
+                    log.info("执行动态定时任务: " + LocalDateTime.now().toLocalTime());
+                    LocalDate localDate = LocalDate.now();
+                    LocalDate localDate1 = localDate.minusDays(2);
+                    String endDate = localDate1.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                    String startDate = "2022-10-01";
+
+
+                    //dataConsistencyService.consoleConsistency();
+                }
+            }
+        }, new Trigger() {
+            @Override
+            public Date nextExecutionTime(TriggerContext triggerContext) {
+                //2.1 从数据库获取执行周期
+                task001 = sysTaskCronFacade.getOne(new QueryWrapper<SysTaskCron>()
+                        .eq("cron_code", "DataConsistencyTask"), false);
+                String cron = "0 0/1 * * * ?";
+                //2.2 合法性校验.
+                if (null != task001 && StringUtil.isNotBlank(task001.getCron())) {
+                    cron = task001.getCron();
+                }
+                CronTrigger trigger = new CronTrigger(cron);
+                return trigger.nextExecutionTime(triggerContext);
+            }
+        });
+    }
+}