Browse Source

事件详情页面的可用资源为当前主办协办的可用资源

459242451@qq.com 3 years ago
parent
commit
adce7a4c89

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

@@ -110,7 +110,7 @@ public class NoticeInfoListiner {
                 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.setDes("新增处置方案:" + incidentTaskVo.getTaskName() + " 并发送");
                 incidentProcess.setIncidentStatus(3);
                 incidentProcess.setIncidentId(incidentTaskVo.getIncidentId());
                 messageUser = incidentTaskVo.getExprJson();

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

@@ -132,7 +132,7 @@ public class IncidentController extends BaseController {
     @ApiOperation("获取事件基础详细信息")
 //    @PreAuthorize("@ss.hasPermi('zhdd:incident:query')")
     @GetMapping("/{id}")
-    @Security
+//    @Security
     public AjaxResult<Map<String, Object>> getInfo(@NotNull(message = "主键不能为空")
                                                    @PathVariable("id") String id) {
         Map<String, Object> map = new HashMap<>();
@@ -199,7 +199,7 @@ public class IncidentController extends BaseController {
         }
         map.put("process", list);
         // 物资使用情况
-        map.put("resource", resourceDetailService.queryResourceAvailable());
+        map.put("resource", resourceDetailService.queryResourceAvailable(id));
         return AjaxResult.success(map);
     }
 

+ 0 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/ResourceController.java

@@ -102,7 +102,6 @@ public class ResourceController extends BaseController {
      * 导出应急资源列表
      */
     @ApiOperation("导出应急资源列表")
-//    @PreAuthorize("@ss.hasPermi('zhdd:resource:export')")
     @Log(title = "应急资源", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
     public void export(@Validated ResourceBo bo, HttpServletResponse response) {

+ 3 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/Incident.java

@@ -144,6 +144,7 @@ public class Incident implements Serializable {
     private Integer status;
 
     private String commander;
+    private String commanderText;
 
     private String commanderUser;
 
@@ -151,6 +152,7 @@ public class Incident implements Serializable {
      * 主办单位
      */
     private String madinDept;
+    private String madinDeptText;
 
     private String madinDeptUser;
 
@@ -158,6 +160,7 @@ public class Incident implements Serializable {
      * 协办单位 多个数据用,分割
      */
     private String assistDept;
+    private String assistDeptText;
 
     private String assistDeptUser;
 

+ 1 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/Resource.java

@@ -65,6 +65,7 @@ public class Resource implements Serializable {
      * 管理单位
      */
     private String manageUnit;
+    private String manageUnitId;
 
     private String deptId;
 

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

@@ -129,9 +129,11 @@ public class IncidentBo extends BaseEntity {
     /**
      * 事件状态 1:预警,2:事件 3:归档
      */
-    @ApiModelProperty(value = "事件状态 1:预警,2:事件 3:归档")
+    @ApiModelProperty(value = "事件状态 2:待派发 3:事件处置 4:归档 5:忽略")
     private Integer status;
 
+    private String statuss;
+
     @ApiModelProperty(value = "总指挥")
     private String commander;
 

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

@@ -71,9 +71,10 @@ public class ResourceBo extends BaseEntity {
      * 管理单位
      */
     @ApiModelProperty(value = "管理单位")
-    @NotBlank(message = "manageUnit不能为空", groups = {AddGroup.class, EditGroup.class})
     private String manageUnit;
 
+    private String manageUnitId;
+
     private String deptId;
 
     private List<String> deptIds;

+ 4 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentVo.java

@@ -135,6 +135,8 @@ public class IncidentVo {
     @ApiModelProperty(value = "总指挥")
     private String commander;
 
+    private String commanderText;
+
     @ApiModelProperty(value = "总指挥用户结构")
     private String commanderUser;
 
@@ -144,6 +146,7 @@ public class IncidentVo {
     @Excel(name = "主办单位")
     @ApiModelProperty("主办单位")
     private String madinDept;
+    private String madinDeptText;
 
     @ApiModelProperty(value = "主办单位用户结构")
     private String madinDeptUser;
@@ -154,6 +157,7 @@ public class IncidentVo {
     @Excel(name = "协办单位 多个数据用,分割")
     @ApiModelProperty("协办单位 多个数据用,分割")
     private String assistDept;
+    private String assistDeptText;
 
     @ApiModelProperty(value = "协办单位用户结构")
     private String assistDeptUser;

+ 1 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/ResourceVo.java

@@ -74,6 +74,7 @@ public class ResourceVo {
     @Excel(name = "管理单位")
     @ApiModelProperty("管理单位")
     private String manageUnit;
+    private String manageUnitId;
 
     private String deptId;
 

+ 1 - 1
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/ResourceDetailMapper.java

@@ -18,5 +18,5 @@ public interface ResourceDetailMapper extends BaseMapperPlus<ResourceDetail> {
 
     List<Resource> searchWarehouseByGoods(ResourceDetailBo bo);
 
-    List<JSONObject> queryResourceAvailable();
+    List<JSONObject> queryResourceAvailable(List<String> resourceId);
 }

+ 1 - 1
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IResourceDetailService.java

@@ -62,5 +62,5 @@ public interface IResourceDetailService extends IServicePlus<ResourceDetail, Res
 
     List<ResourceVo> searchWarehouseByGoods(ResourceDetailBo bo);
 
-    List<JSONObject> queryResourceAvailable();
+    List<JSONObject> queryResourceAvailable(String id);
 }

+ 3 - 3
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/DhServiceImpl.java

@@ -59,7 +59,7 @@ public class DhServiceImpl implements IDhService {
     public String authorize() {
         // 从大华接口获取token
         String token = "";
-        String userName = "shujuceshi";
+        String userName = "jtj01";
         JSONObject jsonOne = new JSONObject();
         jsonOne.set("userName", userName);
         jsonOne.set("clientType", "other");
@@ -76,7 +76,7 @@ public class DhServiceImpl implements IDhService {
             String realm = postOneJson.getStr("realm");
             String encryptType = postOneJson.getStr("encryptType");
             // 第二次交互
-            String password = "Admin123";
+            String password = "dh123456";
             String signature = SecureUtil.md5(
                 SecureUtil.md5(userName + ":" + realm + ":" +
                     SecureUtil.md5(
@@ -97,7 +97,7 @@ public class DhServiceImpl implements IDhService {
                     duration = 120;
                 }
                 // 存入redis缓存
-                RedisUtils.setCacheObject(Constants.CACHE_DH_TOKEN, token, Convert.toInt(duration * 0.7), TimeUnit.SECONDS);
+                RedisUtils.setCacheObject(Constants.CACHE_DH_TOKEN, token, Convert.toInt(duration), TimeUnit.SECONDS);
 //                RedisUtils.setCacheObject(Constants.CACHE_DH_TOKEN_REFRESH, token);
             } else {
                 log.error("大华=第二次创建会话失败:{}", postTwoJson);

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

@@ -8,6 +8,8 @@ import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
 import com.ruoyi.common.core.page.PagePlus;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -15,6 +17,8 @@ import com.ruoyi.common.exception.ServiceException;
 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.ISysUserService;
 import com.ruoyi.zhdd.domain.Incident;
 import com.ruoyi.zhdd.domain.bo.IncidentBo;
 import com.ruoyi.zhdd.domain.bo.IncidentProcessBo;
@@ -31,9 +35,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.sql.Timestamp;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 事件基础Service业务层处理
@@ -48,6 +54,10 @@ public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Inciden
     @Autowired
     private IIncidentProcessService incidentProcessService;
     @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private ISysDeptService sysDeptService;
+    @Autowired
     private IPlanService planService;
     @Autowired
     private IIncidentTaskService incidentTaskService;
@@ -85,6 +95,9 @@ public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Inciden
         lqw.eq(StringUtils.isNotBlank(bo.getExprJson()), Incident::getExprJson, bo.getExprJson());
         lqw.like(StringUtils.isNotBlank(bo.getName()), Incident::getName, bo.getName());
         lqw.eq(bo.getStatus() != null, Incident::getStatus, bo.getStatus());
+        if (StrUtil.isNotBlank(bo.getStatuss())) {
+            lqw.in(Incident::getStatus, Arrays.stream(bo.getStatuss().split(",")).map(Integer::parseInt).collect(Collectors.toList()));
+        }
         lqw.eq(bo.getMadinDept() != null, Incident::getMadinDept, bo.getMadinDept());
         lqw.eq(StringUtils.isNotBlank(bo.getAssistDept()), Incident::getAssistDept, bo.getAssistDept());
         if (params.get("beginTime") != null && params.get("endTime") != null) {
@@ -138,6 +151,26 @@ public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Inciden
                 throw new ServiceException("请选择主办单位!");
             }
             jsonObject.set("des", "事件派发");
+            // 冗余总指挥、主办、协办部门数据
+            if (StrUtil.isNotBlank(bo.getCommander())) {
+                SysUser commanderText = sysUserService.selectUserById(bo.getCommander());
+                if (commanderText != null) {
+                    update.setCommanderText(commanderText.getNickName());
+                }
+            }
+            if (StrUtil.isNotBlank(bo.getMadinDept())) {
+                SysDept sysDept = sysDeptService.selectDeptById(bo.getMadinDept());
+                if (sysDept != null) {
+                    update.setMadinDeptText(sysDept.getDeptName());
+                }
+            }
+            if (StrUtil.isNotBlank(bo.getAssistDept())) {
+                List<SysDept> sysDepts = sysDeptService.listByIds(Arrays.asList(bo.getAssistDept().split(",")));
+                if (sysDepts != null && sysDepts.size() > 0) {
+                    update.setAssistDeptText(sysDepts.stream().map(SysDept::getDeptName).collect(Collectors.joining(",")));
+                }
+            }
+
 //            // 查询初始设置的处置方案
 //            List<PlanTask> planTask = planService.queryTask(bo.getMadinDept(), bo.getType(), bo.getLevel());
 //            List<IncidentTask> incidentTasks = new ArrayList<>();

+ 45 - 2
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/ResourceDetailServiceImpl.java

@@ -2,6 +2,8 @@ package com.ruoyi.zhdd.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -14,15 +16,21 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.zhdd.domain.Resource;
 import com.ruoyi.zhdd.domain.ResourceDetail;
 import com.ruoyi.zhdd.domain.bo.ResourceDetailBo;
+import com.ruoyi.zhdd.domain.vo.IncidentVo;
 import com.ruoyi.zhdd.domain.vo.ResourceDetailVo;
 import com.ruoyi.zhdd.domain.vo.ResourceVo;
 import com.ruoyi.zhdd.mapper.ResourceDetailMapper;
+import com.ruoyi.zhdd.service.IIncidentService;
 import com.ruoyi.zhdd.service.IResourceDetailService;
+import com.ruoyi.zhdd.service.IResourceService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 应急资源明细Service业务层处理
@@ -33,6 +41,11 @@ import java.util.Map;
 @Service
 public class ResourceDetailServiceImpl extends ServicePlusImpl<ResourceDetailMapper, ResourceDetail, ResourceDetailVo> implements IResourceDetailService {
 
+    @Autowired
+    private IIncidentService incidentService;
+    @Autowired
+    private IResourceService resourceService;
+
     @Override
     public ResourceDetailVo queryById(String id) {
         return getVoById(id);
@@ -98,8 +111,38 @@ public class ResourceDetailServiceImpl extends ServicePlusImpl<ResourceDetailMap
         return BeanCopyUtils.listCopy(list, new CopyOptions(), ResourceVo.class);
     }
 
+    /**
+     * 根据事件id查询主办和协办单位,再查询可用资源
+     *
+     * @param id
+     * @return
+     */
     @Override
-    public List<JSONObject> queryResourceAvailable() {
-        return baseMapper.queryResourceAvailable();
+    public List<JSONObject> queryResourceAvailable(String id) {
+        IncidentVo incidentVo = incidentService.queryById(id);
+        if (incidentVo == null) {
+            return new ArrayList<>();
+        }
+        // 查询主办协办部门
+        String madinDept = incidentVo.getMadinDept();
+        String assistDept = incidentVo.getAssistDept();
+        List<String> deptList = new ArrayList<>();
+        if (StrUtil.isNotBlank(madinDept)) {
+            CollUtil.addAll(deptList, madinDept);
+        }
+        if (StrUtil.isNotBlank(assistDept)) {
+            CollUtil.addAll(deptList, assistDept.split(","));
+        }
+        if (deptList.size() == 0) {
+            return new ArrayList<>();
+        }
+        // 查询对应的资源id
+        List<Resource> list = resourceService.list(Wrappers.<Resource>lambdaQuery().in(Resource::getManageUnitId, deptList));
+        if (list == null || list.size() == 0) {
+            return new ArrayList<>();
+        }
+        List<String> collect = list.stream().map(Resource::getId).distinct().collect(Collectors.toList());
+        return baseMapper.queryResourceAvailable(collect);
     }
+
 }

+ 19 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/ResourceServiceImpl.java

@@ -2,13 +2,16 @@ package com.ruoyi.zhdd.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
 import com.ruoyi.common.core.page.PagePlus;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.zhdd.domain.Resource;
 import com.ruoyi.zhdd.domain.ResourceDetail;
 import com.ruoyi.zhdd.domain.bo.ResourceBo;
@@ -37,6 +40,8 @@ public class ResourceServiceImpl extends ServicePlusImpl<ResourceMapper, Resourc
 
     @Autowired
     private IResourceDetailService resourceDetailService;
+    @Autowired
+    private ISysDeptService sysDeptService;
 
     @Override
     public ResourceVo queryById(String id) {
@@ -127,6 +132,13 @@ public class ResourceServiceImpl extends ServicePlusImpl<ResourceMapper, Resourc
             bo.setName(bo.getName().toUpperCase());
         }
         Resource add = BeanUtil.toBean(bo, Resource.class);
+        if (StrUtil.isNotBlank(add.getManageUnitId())) {
+            // 查询管理单位对应的名称
+            SysDept sysDept = sysDeptService.selectDeptById(add.getManageUnitId());
+            if (sysDept != null) {
+                add.setManageUnit(sysDept.getDeptName());
+            }
+        }
         boolean save = save(add);
         if (save) {
             if (bo.getResourceDetailList() != null && bo.getResourceDetailList().size() > 0) {
@@ -157,6 +169,13 @@ public class ResourceServiceImpl extends ServicePlusImpl<ResourceMapper, Resourc
             bo.setName(bo.getName().toUpperCase());
         }
         Resource update = BeanUtil.toBean(bo, Resource.class);
+        if (StrUtil.isNotBlank(update.getManageUnitId())) {
+            // 查询管理单位对应的名称
+            SysDept sysDept = sysDeptService.selectDeptById(update.getManageUnitId());
+            if (sysDept != null) {
+                update.setManageUnit(sysDept.getDeptName());
+            }
+        }
         boolean save = updateById(update);
         if (save) {
             if (bo.getResourceDetailList() != null && bo.getResourceDetailList().size() > 0) {

+ 9 - 4
ruoyi-zhdd/src/main/resources/mapper/zhdd/ResourceDetailMapper.xml

@@ -39,12 +39,17 @@
 
     <select id="queryResourceAvailable" resultType="cn.hutool.json.JSONObject">
         select name,
-               sum(num)           as num,
-               sum(available_num) as availableNum,
-               to_char(max(create_time), 'yyyy-mm-dd HH24:MI') as time
+        sum(num) as num,
+        sum(available_num) as availableNum,
+        unit,
+        to_char(max(create_time), 'yyyy-mm-dd HH24:MI') as time
         from b_resource_detail
         where del_flag = '0'
-        group by name
+        and resource_id in
+        <foreach collection="list" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        group by name, unit
     </select>
 
 </mapper>