Browse Source

调整定时生成任务逻辑

Levi 3 years ago
parent
commit
6a3d360521

+ 16 - 43
application-task/src/main/java/com/factory/init/FirstTaskJob.java

@@ -1,6 +1,7 @@
 package com.factory.init;
 
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -46,73 +47,45 @@ public class FirstTaskJob implements Job {
      */
     public void createTask(ConcurrentMap<String, Object> paramMap) {
     	ExecutorService executorService = (ExecutorService) paramMap.get("executorService");
-        List<Callable<Integer>> tasks = new ArrayList<>();
-        tasks.add(getFirstFutureTask(paramMap));
-        tasks.add(get200FutureTask(paramMap));
         try {
-        	List<Future<Integer>> rlist = executorService.invokeAll(tasks);
-            for (Future<Integer> t : rlist) {
-            	t.get();
-            }//等等所有线程结束
+            Future<Integer> future = executorService.submit(new AddTaskWorker(paramMap));
+            future.get();
         } catch (Throwable e) {
         	log.error("createTask生产任务出错",e);
         }
 
     }
 
-    /**
-     * day
-     *
-     * @param paramMap
-     * @return
-     */
-    private Callable<Integer> getFirstFutureTask(ConcurrentMap<String, Object> paramMap) {
-    	Callable<Integer> task = new AddTaskWorker(paramMap, 0);
-        return task;
-    }
-
-    /**
-     * 200
-     *
-     * @param paramMap
-     * @return
-     */
-    private Callable<Integer> get200FutureTask(ConcurrentMap<String, Object> paramMap) {
-    	Callable<Integer> task = new AddTaskWorker(paramMap, 1);
-        return task;
-    }
-
-
     /**
      * 生产任务
      */
     public class AddTaskWorker implements Callable<Integer> {
 
         private ConcurrentMap<String, Object> paramMap;
-        private Integer typeFlag;
 
 
-        public AddTaskWorker(ConcurrentMap<String, Object> paramMap, Integer typeFlag) {
+        public AddTaskWorker(ConcurrentMap<String, Object> paramMap) {
             this.paramMap = paramMap;
-            this.typeFlag = typeFlag;
         }
 
         @Override
         public Integer call() {
             FirstTaskService firstTaskService = (FirstTaskService) paramMap.get("firstTaskService");
             LocalDate now = LocalDate.now();
-            Map<String,Object> param = new HashMap<>();
-            param.put("typeFlag", typeFlag);
-            param.put("date", now);
-            List<FirstCalendar> cals = firstTaskService.getCalenderFirstForType(param);
+            List<FirstCalendar> cals = firstTaskService.getCalenderFirstForType();
             for (FirstCalendar cal : cals) {
                 try {
-                    // TODO 添加不同类型添加一个task代码
-                    FirstTask task = new FirstTask();
-                    task.setTask_time(now);
-                    task.setFirst_article_calendar_id(cal.getId());
-                    task.setType_flag(typeFlag);
-                    firstTaskService.insertFirstTask(task);
+                    String typeFlag = cal.getTypeFlag();
+                    String[] typeFlags = typeFlag.split(",");
+                    if(typeFlags!=null && typeFlags.length>0){
+                        for(String t:typeFlags){
+                            FirstTask task = new FirstTask();
+                            task.setTask_time(now);
+                            task.setFirst_article_calendar_id(cal.getId());
+                            task.setType_flag(Integer.parseInt(t));
+                            firstTaskService.insertFirstTask(task);
+                        }
+                    }
                 } catch (Throwable e) {
                     log.error("addTask生产任务出错",e);
                 }

+ 1 - 2
application-task/src/main/java/com/factory/mapper/FirstTaskMapper.java

@@ -17,10 +17,9 @@ public interface FirstTaskMapper {
     /**
      * 获取对应的规则
      *
-     * @param typeFlag
      * @return
      */
-    List<FirstCalendar> getCalenderFirstForType(Map<String, Object> param);
+    List<FirstCalendar> getCalenderFirstForType();
 
 
     /**

+ 1 - 2
application-task/src/main/java/com/factory/service/FirstTaskService.java

@@ -12,10 +12,9 @@ public interface FirstTaskService {
     /**
      * 获取对应的规则
      *
-     * @param typeFlag
      * @return
      */
-    List<FirstCalendar> getCalenderFirstForType(Map<String, Object> param);
+    List<FirstCalendar> getCalenderFirstForType();
 
     /**
      * 添加当天任务

+ 2 - 3
application-task/src/main/java/com/factory/service/impl/FirstTaskServiceImp.java

@@ -32,12 +32,11 @@ public class FirstTaskServiceImp implements FirstTaskService {
     /**
      * 获取对应的规则
      *
-     * @param typeFlag
      * @return
      */
     @Override
-    public List<FirstCalendar> getCalenderFirstForType(Map<String, Object> param) {
-        return firstTaskMapper.getCalenderFirstForType(param);
+    public List<FirstCalendar> getCalenderFirstForType() {
+        return firstTaskMapper.getCalenderFirstForType();
     }
 
     /**

+ 5 - 5
application-task/src/main/resources/mappers/FirstTaskMapper.xml

@@ -79,11 +79,11 @@
     </select>
 
 
-    <select id="getCalenderFirstForType" parameterType="map" resultType="com.factory.base.entity.task.FirstCalendar">
+    <select id="getCalenderFirstForType" resultType="com.factory.base.entity.task.FirstCalendar">
         SELECT b.id,b.type_flag as typeFlag
         FROM benteler_plan a
-             join first_article_calendar b on a.id = b.benteler_plan_id and FIND_IN_SET(#{typeFlag},b.type_flag)
-             left join first_article_task fat on b.id = fat.first_article_calendar_id and fat.task_time = #{date}
+             join first_article_calendar b on a.id = b.benteler_plan_id
+             left join first_article_task fat on b.id = fat.first_article_calendar_id and fat.task_time = now()
         WHERE 
           a.plan_type = 1
           and a.status = 4
@@ -95,11 +95,11 @@
 
     <insert id="insertFirstTask" parameterType="com.factory.base.entity.task.FirstTask">
         insert into first_article_task(first_article_calendar_id, task_time,type_flag)
-        values (#{first_article_calendar_id}, #{task_time},#{type_flag});
+        values (#{first_article_calendar_id}, #{task_time},#{type_flag})
     </insert>
     <insert id="insertFirstTaskKey" parameterType="com.factory.base.entity.task.FirstTask">
         insert into first_article_task_key(first_article_calendar_id, task_time,type_flag)
-        values (#{first_article_calendar_id}, #{task_time},#{type_flag});
+        values (#{first_article_calendar_id}, #{task_time},#{type_flag})
     </insert>
 
     <select id="getRemindWork" resultType="com.factory.base.entity.task.FirstCalendar">