Bläddra i källkod

增加执行日志的场景

459242451@qq.com 3 år sedan
förälder
incheckning
5645fc3ba5

+ 39 - 30
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/NoticeInfoListiner.java

@@ -68,12 +68,14 @@ public class NoticeInfoListiner {
             String text = "未知";
             String messageUser = "";
             IncidentProcess incidentProcess = new IncidentProcess();
+            boolean sendFlag = true;
+            incidentProcess.setStatus(1);
             if ("A".equals(type)) {
                 IncidentVo incidentVo = incidentService.queryById(msg.substring(1));
                 title = StrUtil.concat(true, "应急事件:", incidentVo.getName());
                 synopsis = "请查看应急事件";
                 text = StrUtil.concat(true, incidentVo.getAddr(), "发生应急事件,请关注消息,做好应急准备");
-                incidentProcess.setDes("事件报");
+                incidentProcess.setDes("事件报");
                 incidentProcess.setIncidentStatus(1);
                 incidentProcess.setIncidentId(msg.substring(1));
                 messageUser = incidentVo.getExprJson();
@@ -84,46 +86,50 @@ public class NoticeInfoListiner {
                 title = "应急处置";
                 synopsis = "请查看应急处置方案";
                 text = StrUtil.concat(true, "请查看", incidentVo.getName(), "事件的", incidentTaskVo.getTaskName(), "方案");
-                incidentProcess.setDes("发送处置方案");
+                incidentProcess.setDes("新增处置方案:" + incidentTaskVo.getTaskName() + ",并发送");
                 incidentProcess.setIncidentStatus(3);
                 incidentProcess.setIncidentId(incidentTaskVo.getIncidentId());
                 messageUser = incidentTaskVo.getExprJson();
             }
             if (StrUtil.isBlank(messageUser)) {
+                sendFlag = false;
                 log.info("无发送人员");
-                return;
+                incidentProcess.setDes("新增处置方案");
+                // 发送的标识,用于是否去查询已读未读人员的
+                incidentProcess.setStatus(0);
             }
             List<MessagePushUser> messagePushUsers = JSONUtil.toList(messageUser, MessagePushUser.class);
-            incidentProcess.setStatus(1);
             incidentProcessService.save(incidentProcess);
-            messagePushBo.setMsTitle(title);
-            messagePushBo.setMsSynopsis(synopsis);
-            messagePushBo.setMsText(text);
-            messagePushBo.setMsNo(incidentProcess.getId());
-            messagePushBo.setMessageReadInfoList(messagePushUsers);
-            if (!"dev".equals(env)) {
-                feignNoticeInfoService.messagePush(messagePushBo);
-            }
-            // 查询发送用户的手机号
-            List<String> collect = messagePushUsers.stream().map(MessagePushUser::getUserId).collect(Collectors.toList());
-            List<SysUser> list = sysUserService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, collect));
-            // 组装短信内容
-            List<SmsOutbox> smsOutboxes = new ArrayList<>();
-            for (SysUser sysUser : list) {
-                if (StrUtil.isNotBlank(sysUser.getPhonenumber()) && Validator.isMobile(sysUser.getPhonenumber())) {
-                    SmsOutbox smsOutbox = new SmsOutbox();
-                    smsOutbox.setDestaddr(sysUser.getPhonenumber());
-                    smsOutbox.setMessagecontent("有新的应急事件或应急方案,请注意查看!");
-                    smsOutbox.setRequesttime(new Date());
-                    smsOutboxes.add(smsOutbox);
+            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);
                 }
+                // 查询发送用户的手机号
+                List<String> collect = messagePushUsers.stream().map(MessagePushUser::getUserId).collect(Collectors.toList());
+                List<SysUser> list = sysUserService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, collect));
+                // 组装短信内容
+                List<SmsOutbox> smsOutboxes = new ArrayList<>();
+                for (SysUser sysUser : list) {
+                    if (StrUtil.isNotBlank(sysUser.getPhonenumber()) && Validator.isMobile(sysUser.getPhonenumber())) {
+                        SmsOutbox smsOutbox = new SmsOutbox();
+                        smsOutbox.setDestaddr(sysUser.getPhonenumber());
+                        smsOutbox.setMessagecontent("有新的应急事件或应急方案,请注意查看!");
+                        smsOutbox.setRequesttime(new Date());
+                        smsOutboxes.add(smsOutbox);
+                    }
+                }
+                if (!"dev".equals(env)) {
+                    smsOutboxService.saveBatch(smsOutboxes);
+                }
+                log.debug("发送短信:{}", smsOutboxes);
+                log.info("发送消息体 => {}", messagePushBo);
+                log.info("订阅事件消息 => {}", msg);
             }
-            if (!"dev".equals(env)) {
-                smsOutboxService.saveBatch(smsOutboxes);
-            }
-            log.debug("发送短信:{}", smsOutboxes);
-            log.info("发送消息体 => {}", messagePushBo);
-            log.info("订阅事件消息 => {}", msg);
         });
     }
 
@@ -137,6 +143,8 @@ public class NoticeInfoListiner {
             IncidentProcess incidentProcess = new IncidentProcess();
             if (incidentStatus == 2) {
                 des = "转为事件";
+            } else if (incidentStatus == 1) {
+                des = "事件续报";
             } else if (incidentStatus == 4) {
                 des = "事件归档";
             } else if (incidentStatus == 5) {
@@ -146,6 +154,7 @@ public class NoticeInfoListiner {
             incidentProcess.setIncidentStatus(incidentStatus);
             incidentProcess.setIncidentId(incidentId);
             incidentProcess.setStatus(0);
+            log.info("保存事件处置执行日志:{}", incidentProcess);
             incidentProcessService.save(incidentProcess);
         });
     }

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

@@ -156,7 +156,6 @@ public class IncidentController extends BaseController {
                 if (incidentProcess.getStatus() == 1) {
                     // 查询阅读情况
                     JSONObject o = feignNoticeInfoService.messagePushInfoList("1", "2", incidentProcess.getId());
-                    System.out.println(o);
                     // 解析
                     if (ObjectUtil.isNotEmpty(o)) {
                         Integer total = o.getInt("total");
@@ -231,7 +230,7 @@ public class IncidentController extends BaseController {
     }
 
     @ApiOperation("新增事件方案")
-    @Log(title = "事件方案", businessType = BusinessType.INSERT)
+//    @Log(title = "事件方案", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping("/task")
     public AjaxResult<Void> addTask(@Validated(AddGroup.class) @RequestBody IncidentTasksBo bo) {
@@ -239,7 +238,7 @@ public class IncidentController extends BaseController {
     }
 
     @ApiOperation("删除事件方案")
-    @Log(title = "事件方案", businessType = BusinessType.DELETE)
+//    @Log(title = "事件方案", businessType = BusinessType.DELETE)
     @DeleteMapping("/task/{ids}")
     public AjaxResult<Void> removeTask(@NotEmpty(message = "主键不能为空")
                                        @PathVariable String[] ids) {

+ 24 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/IncidentTaskServiceImpl.java

@@ -2,6 +2,7 @@ package com.ruoyi.zhdd.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -18,6 +19,7 @@ import com.ruoyi.zhdd.domain.bo.IncidentTaskBo;
 import com.ruoyi.zhdd.domain.bo.IncidentTasksBo;
 import com.ruoyi.zhdd.domain.vo.IncidentTaskVo;
 import com.ruoyi.zhdd.mapper.IncidentTaskMapper;
+import com.ruoyi.zhdd.service.IIncidentProcessService;
 import com.ruoyi.zhdd.service.IIncidentTaskCommandService;
 import com.ruoyi.zhdd.service.IIncidentTaskPersonService;
 import com.ruoyi.zhdd.service.IIncidentTaskService;
@@ -44,6 +46,8 @@ public class IncidentTaskServiceImpl extends ServicePlusImpl<IncidentTaskMapper,
     private IIncidentTaskPersonService incidentTaskPersonService;
     @Autowired
     private IIncidentTaskCommandService incidentTaskCommandService;
+    @Autowired
+    private IIncidentProcessService incidentProcessService;
 
     @Override
     public IncidentTaskVo queryById(String id) {
@@ -102,6 +106,14 @@ public class IncidentTaskServiceImpl extends ServicePlusImpl<IncidentTaskMapper,
             RedisUtils.publish(Constants.NOTICE_PUSH, "B" + add.getId(), msg -> {
                 log.info("发布应急方案消息 => " + msg);
             });
+        } else {
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.set("des", "新增处置方案:" + bo.getTaskName());
+            jsonObject.set("incidentId", bo.getIncidentId());
+            jsonObject.set("incidentStatus", 3);
+            RedisUtils.publish(Constants.PROCESS_RECORD, jsonObject, msg -> {
+                log.info("事件处置方案新增消息 => " + msg);
+            });
         }
         return true;
     }
@@ -140,6 +152,18 @@ public class IncidentTaskServiceImpl extends ServicePlusImpl<IncidentTaskMapper,
         if (isValid) {
             //TODO 做一些业务上的校验,判断是否需要校验
         }
+        // 查询处置方案。默认这边只有一个id
+        String id = ids.iterator().next();
+        IncidentTaskVo incidentTaskVo = queryById(id);
+        if (incidentTaskVo != null) {
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.set("des", "处置方案:" + incidentTaskVo.getTaskName() + "删除");
+            jsonObject.set("incidentId", id);
+            jsonObject.set("incidentStatus", 3);
+            RedisUtils.publish(Constants.PROCESS_RECORD, jsonObject, msg -> {
+                log.info("事件处置方案删除消息 => " + msg);
+            });
+        }
         return removeByIds(ids);
     }
 }