Browse Source

修改提醒

cr7118@sina.cn 3 years ago
parent
commit
071294c9f0

+ 37 - 6
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/OnsiteRemindJob.java

@@ -20,6 +20,10 @@ import java.util.concurrent.FutureTask;
  */
 @DisallowConcurrentExecution
 public class OnsiteRemindJob implements Job {
+
+
+    private int remind_handle_flag=1;//设置提醒为已经处理
+    private int type=2;//接错
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         ConcurrentMap<String, Object> paramMap = (ConcurrentMap<String, Object>) jobExecutionContext.getJobDetail().getJobDataMap().get(QuartzManager.JOB_PARAM_NAME);
@@ -36,9 +40,9 @@ public class OnsiteRemindJob implements Job {
         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));
+//        tasks.add( getDayFutureTask(paramMap,false));
+//        tasks.add( getWeekFutureTask(paramMap,false));
+//        tasks.add( getMonthFutureTask(paramMap,false));
         try{
             for(FutureTask<Integer> t:tasks){
                 t.get();
@@ -48,6 +52,12 @@ public class OnsiteRemindJob implements Job {
         }
 
     }
+//            <if test="remind_task_flag != null">
+//    and  a.remind_task_flag = ${remind_task_flag}
+//        </if>
+//        <if test="remind_nowork_flag">
+//    and  a.remind_nowork_flag = ${remind_nowork_flag}
+//        </if>
 
     /**
      * day
@@ -59,8 +69,10 @@ public class OnsiteRemindJob implements Job {
         param.put("type_flag",0);
         Callable cal=null;
         if(isWork){
+            param.put("remind_task_flag",0);
             cal=new remindOnsiteWork(paramMap,param);
         }else{
+            param.put("remind_nowork_flag",0);
             cal=new remindOnsiteNoWork(paramMap,param);
         }
         FutureTask<Integer> dayTask = new FutureTask<Integer>(cal);
@@ -79,8 +91,10 @@ public class OnsiteRemindJob implements Job {
         param.put("type_flag",1);
         Callable cal=null;
         if(isWork){
+            param.put("remind_task_flag",0);
             cal=new remindOnsiteWork(paramMap,param);
         }else{
+            param.put("remind_nowork_flag",0);
             cal=new remindOnsiteNoWork(paramMap,param);
         }
         FutureTask<Integer> weekTask = new FutureTask<Integer>(cal);
@@ -99,8 +113,10 @@ public class OnsiteRemindJob implements Job {
         param.put("type_flag",2);
         Callable cal=null;
         if(isWork){
+            param.put("remind_task_flag",0);
             cal=new remindOnsiteWork(paramMap,param);
         }else{
+            param.put("remind_nowork_flag",0);
             cal=new remindOnsiteNoWork(paramMap,param);
         }
         FutureTask<Integer> monthTask = new FutureTask<Integer>(cal);
@@ -148,11 +164,11 @@ public class OnsiteRemindJob implements Job {
                     if(WsSessionManager.SESSION_POOL.containsKey(token)){
                         try {
                             WsSessionManager.SESSION_POOL.get(token).
-                                    sendMessage(new TextMessage("你有一个新工作请及时处理"));
+                                    sendMessage(new TextMessage("有一个防错巡检需要处理,请及时操作!"));
                             //update  onsite_task set ${flag}=${flagVal} where id=${onsite_task_id}
                             Map<String,Object> qm=new HashMap<>();
                             qm.put("flag","remind_task_flag");
-                            qm.put("flagVal",1);
+                            qm.put("flagVal",remind_handle_flag);
                             qm.put("onsite_task_id",cal.getOnsite_task_id());
                             onsiteTaskService.updateOnsiteRemindFlag(qm);
                         }catch (Throwable e){
@@ -203,7 +219,22 @@ public class OnsiteRemindJob implements Job {
                 }
                 boolean flag = CommonUtil.getDateCompare(CommonUtil.getStrDate(day, format, min), new Date(),true);
                 if (flag) {
-                         //这个需要对应根据rule 发动
+                    Map map=new HashMap();
+                    map.put("type",type);
+                    Long  userid=onsiteTaskService.getRemindNoworkToManager(map);
+                    if(userid!=null && userid>0){
+                        map=new HashMap();
+                        map.put("task_id",cal.getOnsite_task_id());
+                        map.put("approval_user_id",userid);
+                        map.put("task_type",type);
+                        map.put("flag","remind_nowork_flag");
+                        map.put("flagVal",remind_handle_flag);
+                        map.put("onsite_task_id",cal.getOnsite_task_id());
+                        onsiteTaskService.addRemindNowork(map);
+//                        onsiteTaskService.updateOnsiteRemindFlag(map);
+
+                        //需要推动调用这个 todo
+                    }
                 }
 
             }

+ 2 - 2
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/QuartzManager.java

@@ -30,8 +30,8 @@ public class QuartzManager {
                 trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();
                 sched.rescheduleJob(triggerKey, trigger);
             }
-//            JobKey jobKey = JobKey.jobKey(param.getJobName(),  param.getJobGroupName());
-//            sched.triggerJob(jobKey); 想马上触发打开这个
+            JobKey jobKey = JobKey.jobKey(param.getJobName(),  param.getJobGroupName());
+            sched.triggerJob(jobKey); //想马上触发打开这个
         } catch (Exception e) {
             throw new RuntimeException(e);
         }

+ 2 - 1
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/TimerTaskInit.java

@@ -33,7 +33,8 @@ public class TimerTaskInit implements CommandLineRunner {
         ConcurrentMap<String, Object> param = new ConcurrentHashMap<String, Object>();
         param.put("onsiteTaskService", onsiteTaskService);
         Scheduler sche = schedulerFactoryBean.getScheduler();
-        addOnsiteTask(param, sche);
+       // addOnsiteTask(param, sche);
+        addOnsiteRemindWork( param, sche);
     }
 
     /**

+ 16 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/model/OnsiteTaskMapper.java

@@ -10,6 +10,22 @@ import java.util.Map;
 
 @Mapper
 public interface OnsiteTaskMapper {
+
+
+    /**
+     * 添加不工作提醒信息
+     * @param map
+     * @return
+     */
+    public int addRemindNowork(Map map);
+
+    /**
+     * 获取需要提醒人
+     * @param map
+     * @return
+     */
+   public Long getRemindNoworkToManager(Map map);
+
     /**
      * 添加当天任务
      *

+ 14 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/service/OnsiteTaskService.java

@@ -8,6 +8,20 @@ import java.util.Map;
 
 public interface OnsiteTaskService {
 
+    /**
+     * 添加不工作提醒信息
+     * @param map
+     * @return
+     */
+    public int addRemindNowork(Map map);
+
+    /**
+     * 获取需要提醒人
+     * @param map
+     * @return
+     */
+    public Long getRemindNoworkToManager(Map map);
+
     /**
      * 添加当天任务
      *

+ 26 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/service/impl/OnsiteTaskServiceImp.java

@@ -14,6 +14,8 @@ import java.util.Map;
 @Service("onsiteTaskServiceImp")
 public class OnsiteTaskServiceImp implements OnsiteTaskService {
 
+
+
     @Autowired
     OnsiteTaskMapper mapper;
 
@@ -50,4 +52,28 @@ public class OnsiteTaskServiceImp implements OnsiteTaskService {
     public int updateOnsiteRemindFlag(Map<String,Object> param){
         return mapper.updateOnsiteRemindFlag(param);
     }
+
+
+
+
+    /**
+     * 获取需要提醒人
+     * @param map
+     * @return
+     */
+    public Long getRemindNoworkToManager(Map map){
+        return mapper.getRemindNoworkToManager(map);
+    }
+
+    /**
+     * 添加不工作提醒信息
+     * @param map
+     * @return
+     */
+    public int addRemindNowork(Map map){
+        int result= mapper.addRemindNowork(map);
+        mapper.updateOnsiteRemindFlag(map);
+        return result;
+
+    }
 }

+ 2 - 2
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/websocket/WebSocketHandler.java

@@ -5,7 +5,7 @@ import org.springframework.web.socket.CloseStatus;
 import org.springframework.web.socket.TextMessage;
 import org.springframework.web.socket.WebSocketSession;
 import org.springframework.web.socket.handler.TextWebSocketHandler;
-
+//ws://127.0.0.1:8088/task/ws/pad?token=123617832 token 对应的是userid
 @Component
 public class WebSocketHandler extends TextWebSocketHandler {
 
@@ -36,7 +36,7 @@ public class WebSocketHandler extends TextWebSocketHandler {
     protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
         String payload = message.getPayload();
         Object token = session.getAttributes().get("token");
-        session.sendMessage(new TextMessage("test"));
+        session.sendMessage(new TextMessage("active"));
     }
 
     /**

+ 1 - 1
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/websocket/WebSocketHandshakeInterceptor.java

@@ -21,7 +21,7 @@ public class WebSocketHandshakeInterceptor implements HandshakeInterceptor {
     public boolean beforeHandshake(ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse, WebSocketHandler webSocketHandler, Map<String, Object> attributes) throws Exception {
 
         ServletServerHttpRequest request = (ServletServerHttpRequest) serverHttpRequest;
-        String token = request.getServletRequest().getParameter("token");
+        String token = request.getServletRequest().getParameter("token"); //目前传userid即可明文
         // des 对userid加密即可也可以是jwt测试先不做 因为pad的提醒都是工作人员,详单与这个部分需要userid,因为需要从这个信息知道这个人是谁,这样我们就可以在token
         // 这样我们就可以在任务提醒中查询后直接用key获取session推送 因为websocket只推送工作人员,所以不需要做区分同意存一个map即可
         if (token != null) {

+ 18 - 0
application-task/src/main/resources/mappers/OnsiteTaskMapper.xml

@@ -19,6 +19,17 @@
     </resultMap>
 
 
+
+
+    <insert id="addRemindNowork" >
+       insert into remind_approval_task(task_id,approval_user_id,task_type)
+       values(${task_id},${approval_user_id},${task_type})
+    </insert>
+
+    <select id="getRemindNoworkToManager" resultType="Long">
+        select b.user_id from nowork_remind_rule a ,us_user_role b  where a.type=${type}  and  a.role_id=b.role_id limit 1
+    </select>
+
     <select id="getCalenderOnsitesForType" resultMap="calendarOnsite">  <!-- todo  这个还需要状态 -->
         SELECT b.* FROM  benteler_plan a,onsite_calendar b
         WHERE
@@ -37,6 +48,13 @@
         select b.*,a.task_time ,a.id onsite_task_id
         from onsite_task a,onsite_calendar b
         where a.onsite_calendar_id=b.id and a.status=0 and b.type_flag=${type_flag}
+        and b.type_flag=${type_flag}
+        <if test="remind_task_flag != null">
+            and  a.remind_task_flag = ${remind_task_flag}
+        </if>
+        <if test="remind_nowork_flag">
+            and  a.remind_nowork_flag = ${remind_nowork_flag}
+        </if>
     </select>
 
     <update id="updateOnsiteRemindFlag" >