459242451@qq.com 2 năm trước cách đây
mục cha
commit
27a6aca01d

+ 13 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.controller.system;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.annotation.Security;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -10,6 +11,9 @@ import com.ruoyi.common.utils.UserUtil;
 import com.ruoyi.framework.web.service.SysLoginService;
 import com.ruoyi.framework.web.service.SysPermissionService;
 import com.ruoyi.system.service.ISysMenuService;
+import com.ruoyi.zhdd.domain.Resource;
+import com.ruoyi.zhdd.domain.vo.ResourceVo;
+import com.ruoyi.zhdd.service.IResourceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -37,6 +41,9 @@ public class SysLoginController {
     @Autowired
     private SysPermissionService permissionService;
 
+    @Autowired
+    private IResourceService resourceService;
+
     /**
      * 登录方法
      *
@@ -70,6 +77,12 @@ public class SysLoginController {
         ajax.put("user", user);
         ajax.put("roles", roles);
         ajax.put("permissions", permissions);
+        // 查询用户所创建过的应急资源
+        ResourceVo resource = resourceService.getVoOne(Wrappers.<Resource>lambdaQuery()
+            .eq(Resource::getCreateBy, user.getUserName())
+            .orderByDesc(Resource::getUpdateTime)
+            .last("limit 1"));
+        ajax.put("resource", resource);
         return AjaxResult.success(ajax);
     }
 

+ 8 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/NoticeInfoListiner.java

@@ -118,7 +118,14 @@ public class NoticeInfoListiner {
                 title = StrUtil.concat(true, incidentVo.getName());
                 synopsis = "请查看派发应急事件消息";
                 content = getDetail(incidentVo).toString();
-                incidentProcess.setDes("事件派发主办单位");
+                // 组装主办单位人员数据
+                String madinTaskUser = incidentVo.getMadinTaskUser();
+                String madinUserText = "";
+                if (StrUtil.isNotBlank(madinTaskUser)) {
+                    List<MessagePushUser> messagePushUsers = JSONUtil.toList(madinTaskUser, MessagePushUser.class);
+                    madinUserText = messagePushUsers.stream().map(MessagePushUser::getNickName).collect(Collectors.joining(","));
+                }
+                incidentProcess.setDes(StrUtil.concat(true, "派发给", incidentVo.getMadinDeptText(), "主办单位的", madinUserText));
                 incidentProcess.setIncidentStatus(2);
                 incidentProcess.setIncidentId(msg.substring(2));
                 messageUser = JSONUtil.toJsonStr(CollUtil.unionDistinct(JSONUtil.toList(incidentVo.getMadinTaskUser(), MessagePushUser.class),

+ 36 - 9
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/IncidentController.java

@@ -226,7 +226,7 @@ public class IncidentController extends BaseController {
         if (!"dev".equals(env)) {
             for (IncidentProcess incidentProcess : list) {
                 // 处理首次派发和首页处理的时间
-                if (StrUtil.isBlank(distributeTime) && incidentProcess.getIncidentStatus() == 2 && StrUtil.contains(incidentProcess.getDes(), "事件派发")) {
+                if (StrUtil.isBlank(distributeTime) && incidentProcess.getIncidentStatus() == 2 && StrUtil.contains(incidentProcess.getDes(), "派发")) {
                     distributeTime = DateUtil.formatDateTime(incidentProcess.getCreateTime());
                 }
                 if (StrUtil.isBlank(dealTime) && incidentProcess.getIncidentStatus() == 3) {
@@ -554,10 +554,43 @@ public class IncidentController extends BaseController {
             // 查询处置过程
             List<IncidentProcess> incidentProcess = processService.list(Wrappers.<IncidentProcess>lambdaQuery()
                 .eq(IncidentProcess::getIncidentId, id).orderByAsc(IncidentProcess::getCreateTime));
+            // 先处理数据中反馈的顺序
+            Map<String, List<IncidentProcess>> collect = incidentProcess.stream().filter(a -> StrUtil.isNotBlank(a.getTaskId())).collect(Collectors.groupingBy(IncidentProcess::getTaskId));
+            List<IncidentProcess> newIncidentProcess = new ArrayList<>();
+            Set<String> existTaskId = new HashSet<>();
             for (IncidentProcess process : incidentProcess) {
-                process.setCreateTimeText(DateUtil.formatDateTime(process.getCreateTime()));
+                if (existTaskId.size() > 0 && existTaskId.contains(process.getTaskId())) {
+                    continue;
+                }
+                if (collect.get(process.getTaskId()) != null) {
+                    newIncidentProcess.addAll(collect.get(process.getTaskId()));
+                    collect.remove(process.getTaskId());
+                    existTaskId.add(process.getTaskId());
+                } else {
+                    newIncidentProcess.add(process);
+                }
+            }
+            log.info("调整顺序后的执行日志:{}", newIncidentProcess);
+
+            String tempTaskId = "";
+            for (IncidentProcess process : newIncidentProcess) {
+                if (StrUtil.isNotBlank(process.getTaskId()) && StrUtil.equals(process.getTaskId(), tempTaskId)) {
+                    // 处理反馈的人员
+                    String userName = "";
+                    if (StrUtil.isNotBlank(process.getCreateBy())) {
+                        SysUser sysUser = sysUserService.selectUserByUserName(process.getCreateBy());
+                        if (sysUser != null) {
+                            userName = "反馈人员:" + sysUser.getNickName() + "  ";
+                        }
+                    }
+                    process.setDes(StrUtil.concat(true, DateUtil.formatDateTime(process.getCreateTime()), "  ", userName, process.getDes()));
+                    process.setCreateTimeText("");
+                } else {
+                    process.setCreateTimeText(DateUtil.formatDateTime(process.getCreateTime()));
+                }
+                tempTaskId = process.getTaskId();
             }
-            map.put("process", incidentProcess);
+            map.put("process", newIncidentProcess);
         }
 
         String fileName = "incident_log_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".docx";
@@ -635,11 +668,5 @@ public class IncidentController extends BaseController {
         file.delete();
     }
 
-    public static void main(String[] args) {
-        Set<String> set = new HashSet<>();
-        set.add("common");
-        set.add("read");
-        System.out.println(CollUtil.containsAny(set, CollUtil.newHashSet("admin", "update")));
-    }
 
 }

+ 12 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/IncidentServiceImpl.java

@@ -19,6 +19,7 @@ import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.RedisUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.service.ISysDeptService;
+import com.ruoyi.system.service.ISysDictDataService;
 import com.ruoyi.zhdd.domain.Incident;
 import com.ruoyi.zhdd.domain.IncidentProcess;
 import com.ruoyi.zhdd.domain.IncidentTask;
@@ -75,6 +76,8 @@ public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Inciden
     private IPlanService iPlanService;
     @Autowired
     private IPlanTaskService planTaskService;
+    @Autowired
+    private ISysDictDataService sysDictDataService;
 
     @Override
     public IncidentVo queryById(String id) {
@@ -430,6 +433,15 @@ public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Inciden
                             task.setSendFlag("2");
                             incidentTaskService.insertByBo(task);
                         }
+                        // 生成日志
+                        JSONObject sendJsonObject = new JSONObject();
+                        sendJsonObject.set("incidentId", update.getId());
+                        sendJsonObject.set("incidentStatus", "3");
+                        String dept = sysDictDataService.selectDictLabel("zhdd_org_upload", bo.getPlanDept());
+                        String type = sysDictDataService.selectDictLabel("zhdd_incident_type", Convert.toStr(bo.getType()));
+                        String level = sysDictDataService.selectDictLabel("zhdd_incident_level", Convert.toStr(bo.getLevel()));
+                        sendJsonObject.set("des", StrUtil.concat(true, "选择了", dept, "来源", type, "类型", level, "等级的预案"));
+                        RedisUtils.publish(Constants.PROCESS_RECORD, sendJsonObject);
                     }
                 }
             }