浏览代码

时间触发整体修改

cr7118@sina.cn 3 年之前
父节点
当前提交
40012fa46d

+ 15 - 5
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/common/CommonUtil.java

@@ -67,21 +67,31 @@ public class CommonUtil {
      * @return
      * @throws ParseException
      */
-    public static boolean  getDateCompare(Date changeTime , Date now) throws ParseException {
+    public static boolean  getDateCompare(Date changeTime , Date now , boolean flag) throws ParseException {
         Calendar c1 = Calendar.getInstance();
         c1.setTime(changeTime);
         Calendar c2 = Calendar.getInstance();
         c2.setTime(now);
-        if(c1.compareTo(c2)>0 ){
-            return false;
+        if(!flag){
+            if(c1.compareTo(c2)>0 ){
+                return false;
+            }else{
+                return true;
+            }
         }else{
-            return true;
+            if(c1.compareTo(c2)==-1 ){
+                return true;
+            }else{
+                return false;
+            }
         }
+
     }
 
 
 
+
     public static void main(String[] args) throws ParseException {
-        getDateCompare(getStrDate("2011-11-11 10:00" , "yyyy-MM-dd HH:mm",120) , new Date());
+     //   getDateCompare(getStrDate("2011-11-11 10:00" , "yyyy-MM-dd HH:mm",120) , new Date());
     }
 }

+ 77 - 13
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/OnsiteRemindJob.java

@@ -33,9 +33,12 @@ public class OnsiteRemindJob implements Job {
     public void createTask(ConcurrentMap<String,Object> paramMap)  {
         Integer result=0;//没什么意义只是为了不出现整体并行
         List< FutureTask<Integer>> tasks=new ArrayList<>();
-        tasks.add( getDayFutureTask(paramMap));
-        tasks.add( getWeekFutureTask(paramMap));
-        tasks.add( getMonthFutureTask(paramMap));
+        tasks.add( getDayFutureTask(paramMap,true));
+        tasks.add( getWeekFutureTask(paramMap,true));
+        tasks.add( getMonthFutureTask(paramMap,true));
+        tasks.add( getDayFutureTask(paramMap,false));
+        tasks.add( getWeekFutureTask(paramMap,false));
+        tasks.add( getMonthFutureTask(paramMap,false));
         try{
             for(FutureTask<Integer> t:tasks){
                 t.get();
@@ -51,10 +54,16 @@ public class OnsiteRemindJob implements Job {
      * @param paramMap
      * @return
      */
-    private FutureTask<Integer> getDayFutureTask(ConcurrentMap<String, Object> paramMap) {
+    private FutureTask<Integer> getDayFutureTask(ConcurrentMap<String, Object> paramMap,boolean isWork) {
         HashMap param = new HashMap();
         param.put("type_flag",0);
-        FutureTask<Integer> dayTask = new FutureTask<Integer>(new remindOnsite(paramMap,param));
+        Callable cal=null;
+        if(isWork){
+            cal=new remindOnsiteWork(paramMap,param);
+        }else{
+            cal=new remindOnsiteNoWork(paramMap,param);
+        }
+        FutureTask<Integer> dayTask = new FutureTask<Integer>(cal);
         Thread thread = new Thread(dayTask);
         thread.start();  //开启线程
         return dayTask;
@@ -65,10 +74,16 @@ public class OnsiteRemindJob implements Job {
      * @param paramMap
      * @return
      */
-    private FutureTask<Integer> getWeekFutureTask(ConcurrentMap<String, Object> paramMap) {
+    private FutureTask<Integer> getWeekFutureTask(ConcurrentMap<String, Object> paramMap,boolean isWork) {
         HashMap param = new HashMap();
         param.put("type_flag",1);
-        FutureTask<Integer> weekTask = new FutureTask<Integer>(new remindOnsite(paramMap,param));
+        Callable cal=null;
+        if(isWork){
+            cal=new remindOnsiteWork(paramMap,param);
+        }else{
+            cal=new remindOnsiteNoWork(paramMap,param);
+        }
+        FutureTask<Integer> weekTask = new FutureTask<Integer>(cal);
         Thread thread = new Thread(weekTask);
         thread.start();  //开启线程
         return weekTask;
@@ -79,10 +94,16 @@ public class OnsiteRemindJob implements Job {
      * @param paramMap
      * @return
      */
-    private FutureTask<Integer> getMonthFutureTask(ConcurrentMap<String, Object> paramMap) {
+    private FutureTask<Integer> getMonthFutureTask(ConcurrentMap<String, Object> paramMap,boolean isWork) {
         HashMap param = new HashMap();
         param.put("type_flag",2);
-        FutureTask<Integer> monthTask = new FutureTask<Integer>(new remindOnsite(paramMap,param));
+        Callable cal=null;
+        if(isWork){
+            cal=new remindOnsiteWork(paramMap,param);
+        }else{
+            cal=new remindOnsiteNoWork(paramMap,param);
+        }
+        FutureTask<Integer> monthTask = new FutureTask<Integer>(cal);
         Thread thread = new Thread(monthTask);
         thread.start();  //开启线程
         return monthTask;
@@ -91,15 +112,15 @@ public class OnsiteRemindJob implements Job {
 
 
     /**
-     * 发送提醒
+     * 发送提醒 需要工作的提醒
      */
-    public class remindOnsite implements Callable<Integer> {
+    public class remindOnsiteWork implements Callable<Integer> {
 
         private ConcurrentMap<String, Object> paramMap;
         private HashMap paramQuery;
 
 
-        public remindOnsite(ConcurrentMap<String, Object> paramMap, HashMap paramQuery) {
+        public remindOnsiteWork(ConcurrentMap<String, Object> paramMap, HashMap paramQuery) {
             this.paramMap = paramMap;
             this.paramQuery = paramQuery;
         }
@@ -121,7 +142,7 @@ public class OnsiteRemindJob implements Job {
                     day = cal.getTask_time();
                     format = "yyyy-MM-dd";
                 }
-                boolean flag = CommonUtil.getDateCompare(CommonUtil.getStrDate(day, format, 0), new Date());
+                boolean flag = CommonUtil.getDateCompare(CommonUtil.getStrDate(day, format, 0), new Date(),false);
                 if (flag) {
                     String token =String.valueOf(cal.getUser_id());
                     if(WsSessionManager.SESSION_POOL.containsKey(token)){
@@ -147,4 +168,47 @@ public class OnsiteRemindJob implements Job {
         }
     }
 
+
+
+    /**
+     * 发送提醒  没有工作的提醒
+     */
+    public class remindOnsiteNoWork implements Callable<Integer> {
+
+        private ConcurrentMap<String, Object> paramMap;
+        private HashMap paramQuery;
+
+
+        public remindOnsiteNoWork(ConcurrentMap<String, Object> paramMap, HashMap paramQuery) {
+            this.paramMap = paramMap;
+            this.paramQuery = paramQuery;
+        }
+
+        @Override
+        public Integer call() throws Exception {
+            OnsiteTaskService onsiteTaskService = (OnsiteTaskService) paramMap.get("onsiteTaskService");
+            List<OnsiteCalendar> cals = onsiteTaskService.getRemindWork(paramQuery);
+            String day = null;
+            String format = "yyyy-MM-dd HH:mm";
+            int min;
+            for (OnsiteCalendar cal : cals) {
+                if (cal.getStart_day() != null && cal.getStart_day().trim().length() > 0) {
+                    day = cal.getTask_time() + " " + cal.getStart_day();
+                    format = "yyyy-MM-dd HH:mm";
+                    min=cal.getDay_outtime()+cal.getDay_validate();
+                } else {
+                    day = cal.getTask_time();
+                    format = "yyyy-MM-dd";
+                    min=0;
+                }
+                boolean flag = CommonUtil.getDateCompare(CommonUtil.getStrDate(day, format, min), new Date(),true);
+                if (flag) {
+                         //这个需要对应根据rule 发动
+                }
+
+            }
+            return 0;
+        }
+    }
+
 }