459242451@qq.com 3 yıl önce
ebeveyn
işleme
23b908e084

+ 47 - 12
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/NoticeInfoListiner.java

@@ -11,10 +11,12 @@ import com.ruoyi.common.utils.RedisUtils;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.zhdd.domain.IncidentProcess;
 import com.ruoyi.zhdd.domain.SmsOutbox;
+import com.ruoyi.zhdd.domain.bo.BacklogMessagePushBo;
 import com.ruoyi.zhdd.domain.bo.MessagePushBo;
 import com.ruoyi.zhdd.domain.bo.MessagePushUser;
 import com.ruoyi.zhdd.domain.vo.IncidentTaskVo;
 import com.ruoyi.zhdd.domain.vo.IncidentVo;
+import com.ruoyi.zhdd.feign.FeignBacklogInfoService;
 import com.ruoyi.zhdd.feign.FeignNoticeInfoService;
 import com.ruoyi.zhdd.service.IIncidentProcessService;
 import com.ruoyi.zhdd.service.IIncidentService;
@@ -45,6 +47,7 @@ import java.util.stream.Collectors;
 public class NoticeInfoListiner {
 
     private final FeignNoticeInfoService feignNoticeInfoService;
+    private final FeignBacklogInfoService feignBacklogInfoService;
     private final IIncidentService incidentService;
     private final IIncidentTaskService incidentTaskService;
     private final IIncidentProcessService incidentProcessService;
@@ -76,10 +79,17 @@ public class NoticeInfoListiner {
             String synopsis = "未知";
             String text = "未知";
             String messageUser = "";
+            String incidentId = "";
+            String url = "";
             IncidentProcess incidentProcess = new IncidentProcess();
             boolean sendFlag = true;
-            incidentProcess.setStatus(1);
-            if ("A".equals(type)) {
+
+            if ("1".equals(messageType)) {
+                incidentProcess.setStatus(1);
+            } else if ("2".equals(messageType) || "3".equals(messageType)) {
+                incidentProcess.setStatus(2);
+            }
+            /*if ("A".equals(type)) {
                 IncidentVo incidentVo = incidentService.queryById(msg.substring(2));
                 title = StrUtil.concat(true, "应急事件:", incidentVo.getName());
                 synopsis = "请查看应急事件";
@@ -88,18 +98,26 @@ public class NoticeInfoListiner {
                 incidentProcess.setIncidentStatus(1);
                 incidentProcess.setIncidentId(msg.substring(2));
                 messageUser = incidentVo.getExprJson();
-            } else if ("B".equals(type)) {
+            } else*/
+            if ("B".equals(type)) {
                 // 查询处置方案
                 IncidentTaskVo incidentTaskVo = incidentTaskService.queryById(msg.substring(2));
                 log.info("查询的处置方案:{}", incidentTaskVo);
+                incidentId = incidentTaskVo.getIncidentId();
                 IncidentVo incidentVo = incidentService.queryById(incidentTaskVo.getIncidentId());
                 title = "应急处置";
                 synopsis = "请查看应急处置方案";
                 text = StrUtil.concat(true, "请查看", incidentVo.getName(), "事件的", incidentTaskVo.getTaskName(), "方案");
+                url = "http://sqmb.xt.wenhq.top:8083/#/status/3/detail?id=" + incidentId;
                 incidentProcess.setDes("新增处置方案:" + incidentTaskVo.getTaskName() + ",并发送");
                 incidentProcess.setIncidentStatus(3);
                 incidentProcess.setIncidentId(incidentTaskVo.getIncidentId());
                 messageUser = incidentTaskVo.getExprJson();
+                if ("3".equals(messageType)) {
+                    title = "应急资源维护";
+                    text = incidentTaskVo.getTaskName();
+                    url = "http://sqmb.xt.wenhq.top:8083/#/warehouse/detail";
+                }
             }
             if (StrUtil.isBlank(messageUser)) {
                 sendFlag = false;
@@ -111,14 +129,32 @@ public class NoticeInfoListiner {
             List<MessagePushUser> messagePushUsers = JSONUtil.toList(messageUser, MessagePushUser.class);
             incidentProcessService.save(incidentProcess);
             if (sendFlag) {
-                messagePushBo.setMsTitle(title);
-                messagePushBo.setMsSynopsis(synopsis);
-                messagePushBo.setMsText(text);
-                messagePushBo.setMsNo(incidentProcess.getId());
-                messagePushBo.setMessageReadInfoList(messagePushUsers);
-                if (!"dev".equals(env)) {
-                    feignNoticeInfoService.messagePush(messagePushBo);
+                if ("1".equals(messageType)) {
+                    // 普通消息
+                    messagePushBo.setMsTitle(title);
+                    messagePushBo.setMsSynopsis(synopsis);
+                    messagePushBo.setMsText(text);
+                    messagePushBo.setMsNo(incidentProcess.getId());
+                    messagePushBo.setMessageReadInfoList(messagePushUsers);
+                    log.info("发送普通消息 => {}", messagePushBo);
+                    if (!"dev".equals(env)) {
+                        feignNoticeInfoService.messagePush(messagePushBo);
+                    }
+                } else if ("2".equals(messageType) || "3".equals(messageType)) {
+                    // 应急处置待办
+                    BacklogMessagePushBo backlogMessagePushBo = new BacklogMessagePushBo();
+                    backlogMessagePushBo.setUuid(incidentProcess.getId());
+                    backlogMessagePushBo.setTitle(title);
+                    backlogMessagePushBo.setText(text);
+                    backlogMessagePushBo.setUrl(url);
+                    List<String> userIds = messagePushUsers.stream().map(MessagePushUser::getUserId).collect(Collectors.toList());
+                    backlogMessagePushBo.setUserId(userIds);
+                    log.info("待办消息发送 => {}", backlogMessagePushBo);
+                    if (!"dev".equals(env)) {
+                        feignBacklogInfoService.backlogMessagePush(backlogMessagePushBo);
+                    }
                 }
+
                 // 查询发送用户的手机号
                 List<String> collect = messagePushUsers.stream().map(MessagePushUser::getUserId).collect(Collectors.toList());
                 List<SysUser> list = sysUserService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, collect));
@@ -135,9 +171,8 @@ public class NoticeInfoListiner {
                 }
                 if (!"dev".equals(env)) {
                     smsOutboxService.saveBatch(smsOutboxes);
+                    log.debug("发送短信 => {}", smsOutboxes);
                 }
-                log.debug("发送短信:{}", smsOutboxes);
-                log.info("发送消息体 => {}", messagePushBo);
             }
         });
     }

+ 3 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/IncidentController.java

@@ -108,6 +108,9 @@ public class IncidentController extends BaseController {
     @GetMapping("/list")
     @Security
     public TableDataInfo<IncidentVo> list(@Validated(QueryGroup.class) IncidentBo bo) {
+        if ("app".equals(bo.getQuerySource())) {
+            bo.setStatus(3);
+        }
         return iIncidentService.queryPageList(bo);
     }
 

+ 1 - 1
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/BacklogMessagePushBo.java

@@ -33,5 +33,5 @@ public class BacklogMessagePushBo {
     // 跳转的详情页面地址
     private String url;
     // 发送的用户
-    private List<MessagePushUser> userId;
+    private List<String> userId;
 }