zoukankan      html  css  js  c++  java
  • 指挥救援功能分析

    头部
    1、实时事件 事件状态 状态0:生成事件;1:启动响应;2:响应结束;3:生成案例
    2、事件关注 取关注后的事件 事件关注状态的设置
    3、联合联动 ??
    4、统计分析
    5、辅助决策 进入辅助决策页面
    6、视频监控
    7、综合查询
    8、指挥体系
    9、位置查询 输入地址进行查询,查询后在地图定位,可进行添加事件
    10、缓冲区设置 暂定去掉

    左侧
    一、基础信息
    1、事件基本信息
    名称 时间 事件 地点 类型 等级 事件描述 经纬度
    功能:
    (1)数据来源:取当前处置的事件的详细信息,不需要跨服务接口
    (2)其他说明:没有选择处理事件时此处收缩不展示,此处功能是选择处置某个事件后展示的信息
    2、缓冲区分析
    影响区县 影响乡镇 人口 人口密度
    功能:
    (1)数据来源:取当前处置的事件的缓冲区分析信息,此处功能辅助决策处填充数据,不需要跨服务接口
    (2)辅助决策页面填充、展示数据, 指挥救援展示数据
    (3)其他说明:没有选择处理事件时此处收缩不展示,此处功能是选择处置某个事件后展示的信息
    3、交通情况
    功能:
    (1)数据来源:此处功能取自gis地图分析,需要缓冲区分析,暂定5km,10km,20km,50km
    (2)其他说明:没有选择处理事件时此处收缩不展示,此处功能是选择处置某个事件后展示的信息

    二、防护目标
    1、人员密集场所
    (1)学校
    (2)宾馆饭店
    (3)文化场所
    (4)商场超市
    功能:
    (1)数据来源:取天地图或者EGIS数据,需要缓冲区分析,暂定5km,10km,20km,50km
    (2)辅助决策、指挥救援需要展示数据
    (3)其他说明:没有选择处理事件时此处收缩不展示,此处功能是选择处置某个事件后展示的信息
    2、交通场所
    (1)火车站
    (2)机场
    (3)码头
    功能:
    (1)数据来源:取天地图或者EGIS数据,需要缓冲区分析,暂定5km,10km,20km,50km
    (2)辅助决策、指挥救援需要展示数据
    (3)其他说明:没有选择处理事件时此处收缩不展示,此处功能是选择处置某个事件后展示的信息
    三、应急队伍
    按级别 按类型显示 resource_team resource_team_person resource_material
    功能:
    (1)数据来源:数据来源于资源系统数据,需要缓冲区分析,暂定5km,10km,20km,50km,缓冲区分析根据数据经纬度
    此处需要跨服务调用,调用资源服务
    (2)辅助决策处把需要调度的队伍和事件做关联、设置队伍状态、短信、语音、视频、路劲规划等操作,展示已调度的物资信息
    指挥救援展示队伍信息,包括队伍详细信息、当前位置、轨迹、沟通方式等
    (3)其他说明:没有选择处理事件时此处收缩不展示,此处功能是选择处置某个事件后展示的信息

    右侧队伍调度显示调度后的队伍信息


    四、应急物资
    实际上显示的是应急物资仓库,进入显示具体物资
    按级别 按类型 resource_repository resource_material
    功能:
    (1)数据来源:数据来源于资源系统数据,需要缓冲区分析,暂定5km,10km,20km,50km,缓冲区分析根据数据经纬度
    此处需要跨服务调用,调用资源服务
    (2)辅助决策处把需要调度的物资和事件关联、设置调度物资的仓库、物资数量信息,仓库详细信息、沟通方式,展示已调度的物资信息
    指挥救援展示调度的物资信息
    (3)其他说明:没有选择处理事件时此处收缩不展示,此处功能是选择处置某个事件后展示的信息

    右侧显示调度后物资信息

    五、应急资源
    1、医疗卫生 resource_healthdep
    2、避难场所 系统已有 resource_shelter
    3、应急专家 系统已有 resource_expert
    4、应急管理机构 EGIS有数据,确认取EGIS数据
    5、视频监控 系统集成
    6、通信机构 系统已有 resource_communication_org
    7、运输保障 系统已有 resource_transport resource_transport_exp
    8、治安维护保障 系统已有 resource_security_uphold
    9、财力保障 系统已有 resource_fund_org resource_fund
    按级别 按类型
    功能:
    (1)数据来源:数据来源于资源系统数据,需要缓冲区分析,暂定5km,10km,20km,50km,缓冲区分析根据数据经纬度
    此处需要跨服务调用,调用资源服务
    (2)辅助决策展示信息
    指挥救援展示信息
    (3)其他说明:没有选择处理事件时此处收缩不展示,此处功能是选择处置某个事件后展示的信息
    右侧
    一、实时灾情 evn_event_param表
    1、实时灾情
    功能:
    (1)数据来源:数据来源于系统数据
    (2)辅助决策添加、展示实时灾情信息
    指挥救援展示实时灾情信息
    (3)其他说明:没有选择处理事件时此处收缩不展示,此处功能是选择处置某个事件后展示的信息
    2、响应指标
    功能:
    (1)数据来源:数据来源于后台数据填充
    (2)辅助决策展示信息
    指挥救援展示实信息
    二、进展情况
    功能:
    (1)数据来源:数据来自于后台数据填充,主要有1灾情上报 2灾情评估 3 救援进展 4处置建议 5领导批示
    (2)辅助决策添加信息、展示信息
    指挥救援展示实信息

    三、情报辅助
    1、现场图片
    2、现场视频
    3、现场汇报
    4、实时视频(暂无)
    5、外部链接
    功能:
    (1)数据来源:外部链接数据来自于后台数据填充
    (2)现场图片、现场视频、现场汇报来自于后台数据填充,PC、APP
    (3)辅助决策添加信息、展示信息
    指挥救援展示实信息
    四、预警信息
    功能:
    (1)数据来源:数据来自于后台数据填充,不需要跨服务
    (2)辅助决策添加信息、展示信息
    指挥救援展示实信息

    五、舆情信息
    功能:
    (1)数据来源:数据来自于后台数据填充,不需要跨服务
    (2)辅助决策添加信息、展示信息
    指挥救援展示实信息
    六、任务管理
    标题 执行机构 执行内容 备注 完成时限 天 时 秒
    功能:
    (1)数据来源:数据来自于后台数据填充,不需要跨服务
    (2)辅助决策添加任务信息、展示任务信息
    指挥救援任务信息、展示任务信息
    底部
    一、应急救援力量分布图
    二、人员疏散路线图
    三、应急救援物资调运图
    功能:
    (1)数据来源:数据来自于后台数据填充,不需要跨服务
    (2)辅助决策添加任务信息、展示任务信息
    指挥救援展示信息


    四、应急指挥方案
    五、资源保障方案
    六、救援处置方案
    七、应急工作方案
    功能:
    (1)数据来源:数据来自于后台数据填充,不需要跨服务
    (2)辅助决策添加任务信息、展示任务信息
    指挥救援展示信息
    ===================逻辑=================================
    1、应急值班:添加初步研判按钮,根据事件类型匹配相关已经数字化后的预案,选择预案,审批,上传。
    2、辅助决策:判断是否选过预案,没有选过的话提醒选择预案,选着后,再走下面流程,根据实时灾情的参数,匹配数字化后的预案的相应指标,提醒给辅助决策人员,选择几级相应,推送给指挥官。
    ===================系统===================================
    一、事件动态
    1、信息填报
    (1)、灾情上报
    灾情上报标题
    灾情上报内容
    上报时间
    上报部门
    (2)、灾情评估
    灾情评估标题
    灾情评估内容
    上报时间
    上报部门
    (3)、救援进展
    救援进展标题
    救援进展内容
    上报时间
    上报部门
    (4)、处置建议
    处置建议标题
    处置建议内容
    上报时间
    上报部门
    (5)、领导批示
    领导批示标题
    领导批示内容
    上报时间
    上报部门
    (6)、情报辅助
    情报辅助标题
    情报辅助内容
    上报时间
    上报部门

    二、地图标绘专题图、态势图可以上传管理
    三、舆情信息列表信息
    四、灾情统计
    一、人员伤亡
    区县 乡镇 死亡 受伤 失踪 操作(乡镇统计、重置)
    五、前突队伍
    1、队伍查询 队伍出动 两个选项卡
    队伍类型 消防前突 森防前突
    队伍状态 待命中 赶赴中 已到达 已结束
    在队伍查询中关联事件
    在队伍出动中设置队伍出动状态 队伍结束时间
    六、灾情动态(部里只有地震专题有)

    系统会商
    090000

    指挥救援态势图

    应急力量分布图1
    100000
    人员疏散路线图2
    100001
    应急救援物资调运图3
    100002

    指挥救援现场情报

    现场图片 现场图片0
    110000
    现场视频 现场视频1
    110001
    现场汇报 现场文字汇报2
    110002


    任务下发

    选择了几个部门生成几条接收记录


    针对接收记录


    1、外部链接
    2、进展情况 重点关注在 字典 duty_focus 0未关注 1已关注
    3、实时灾情
    4、舆情信息
    5、预警信息
    6、态势图 带附件信息
    7、现场情报 带附件信息
    8、影响区县
    9、应急任务
    10、任务回复
    11、指挥体系
    12、视频关注 还没有做

    省厅下周计划完成
    1、视频关注
    2、指挥救援添加事件

    3、四个方案 huajun-cloud-event
    系统管理
    模板类别 sys_template_type
    应急指挥方案 emergency_command_plan 3
    资源保障方案 resource_guarantee_plan
    救援处置方案 rescue_disposal_plan
    应急工作方案 emergency_work_plan

    disposal_plan_type disposal_plan_type
    1、应急指挥方案 emergency_command_plan
    2、资源保障方案 resource_guarantee_plan
    3、救援处置方案 rescue_disposal_plan
    4、应急工作方案 emergency_work_plan
    应急指挥方案
    160000
    资源保障方案
    160001
    救援处置方案
    160002
    应急工作方案
    160003

    是否关注 duty_focus
    未关注0
    已关注1

    是否推送push_or_not
    未推送0
    推送1

    保密等级sys_security_level


    SEMP_DOC_SOURCEREPORT
    doctemplate_type


    poCtrl.setSaveFilePage("/saveTemplateModel?type=" + type + "&mesId=" + mesId);

    4、物资调度
    物资仓库 resource_repository
    物资 resource_material
    `name` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '仓库名称',
    `grade` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '仓库级别',
    `type` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '仓库类别',
    名称


    队伍调度状态 team_schedule_state
    5、队伍调度 resource_team
    待命中
    赶赴中
    已到达
    已结束

    辅助决策左侧
    在队伍详情信息页面点击【调度】按钮把队伍和事件关联起来,同时设置队伍的状态为待命中,推送状态为1,

    辅助决策右侧
    可以设置队伍队伍的状态,已达到 已结束 结束时间

    队伍状态 已调度的 未调度的 关联的事件
    team_state
    队伍状态(“0”空闲 “1”调度“)搞一个字典

    event_id


    6、预案匹配等
    预案以及响应指标逻辑
    1、应急值班:添加初步研判按钮,根据事件类型匹配相关已经数字化后的预案,选择预案,审批,上传。
    2、辅助决策:判断是否选过预案,没有选过的话提醒选择预案,
    选着后,再走下面流程,根据实时灾情的参数,匹配数字化后的预案的相应指标,
    提醒给辅助决策人员,选择几级相应,推送给指挥官。
    突发事件10000

    自然灾害11000

    事故灾难12000

    公共卫生事件13000

    社会安全事件14000

    其他突发事件19000
    event_type
    event_type

    推荐预案 RecommendPlan
    预案id 预案名称 预案适用事件类型code 预案适用事件类型name 事件id 事件name 事件类型 选定
    isRecommendPlan eventId iscurrentUse
    传参数 事件id 事件name 事件类型

    SELECT * FROM `article` where title like '正%';
    SELECT * FROM `article` where substring(title,1,1)='正';
    11000,11A00,11A01,11A02,11B00
    11000
    SELECT * FROM plan_base WHERE event_type LIKE '%11%';

    select * from plan_base where event_type REGEXP '11|11A01';
    https://blog.csdn.net/qq_39822451/article/details/105155669
    https://blog.csdn.net/qq_39390545/article/details/106414765
    https://www.cnblogs.com/javahr/p/9780650.html
    https://www.cnblogs.com/wanjun-top/p/13051547.html
    https://cloud.tencent.com/developer/article/1644999
    eventGrid
    onSelectionChanged
    dataGrid_plan
    grid_plan
    grid_plan.load({"eventtype": record.eventtypecode.substr(0,2)});
    grid_plan.setUrl("${pageContext.servletContext.contextPath}/samples/planinfo/queryDataSet");//分页
    D:HuajunCode yyjhnyj_yjczsrcmainjavacnlessyjyjczstartPlanactionPlanInfoAction.java
    @Override
    public Map<String, Object> queryDataSet(Map<String, Object> map) {
    StringBuffer sql = new StringBuffer();
    sql.append("select DISTINCT a.*,a.OID as PLANID,a.MAKEUNIT as orgname,a.PLANNAME as name, b.eventtypename as eventtypename,temp.TEMPLATEID " +
    "from pla_base a " +
    " join code_ets_eventtype b on A .EVENTTYPE = b.eventtypecode" +
    " join PLA_VER pv on a.OID = pv.PLANOID" +
    " left join bas_org org on org.ORGNAME=a.MAKEUNIT ");
    sql.append(" left join PLAN_TO_TEMPLATE temp on temp.PLANID=a.OID ");
    // sql.append("<where> 1=1");
    // sql.append(" <if test=" name != null and name != '' "> ");
    // sql.append(" and a.name = #{name} ");
    // sql.append(" </if>");
    // sql.append(" <if test=" eventType != null and eventType != '' "> ");
    // sql.append(" and a.TYPECODE2 = #{TYPECODE2} ");
    // sql.append(" </if>");
    // sql.append(" <if test=" keywords != null and keywords != '' "> ");
    // sql.append(" and a.keywords like '%${keywords}%' ");
    // sql.append(" </if>");
    // sql.append(" and a.org=#{org} ");
    // sql.append("</where>");
    sql.append(" where a.ISDEL = '0' and pv.VERSTATECODE='5' ");
    sql.append(" <if test=" makeunit != null and makeunit != '' "> ");
    sql.append(" and org.oid = #{makeunit} ");
    sql.append(" </if>");
    sql.append(" <if test=" eventtype != null and eventtype != '' "> ");
    sql.append(" and a.eventtype like '${eventtype}%'");
    sql.append(" </if>");
    if (map != null && map.size() > 0) {
    // sql.append("<where>") ;
    Set<String> keys = map.keySet();
    for (String key : keys) {
    if (!this.iskey(key) && map.get(key) != null && !"".equals(map.get(key).toString()) && !"makeunit".equals(key)) {
    sql.append(" and a." + key + " like '%${" + key + "}%' ");
    }
    }
    // sql.append(" order by a.begintime desc ") ;
    }
    sql.append(" order by a.UPDATDATE desc ");
    return this.queryForDataSet(sql.toString(), map);
    }

    public boolean iskey(String key) {
    if (list.size() <= 0) {
    list.add("pageIndex");
    list.add("pageSize");
    list.add("sortField");
    list.add("sortOrder");
    }
    return list.contains(key);
    }

    预案启动实体类 用于记录启动预案的相关信息
    PLAN_USED
    grid_plan.setUrl("${pageContext.servletContext.contextPath}/samples/planinfo/queryDataSet");//分页
    @RequestMapping("/startPlanUsed")
    @ResponseBody
    public void startPlanUsed(@RequestParam Map<String, String> map) {
    if (logger.isDebugEnabled()) {
    logger.debug("数据:" + map);
    }
    String eId = map.get("eventId");
    String pId = map.get("planId");

    PlanUsed used = new PlanUsed();
    //获取 预案
    PlaBase info = planInfoService.selectById(pId);
    if (info == null || "1".equals(info.getIsdel())) {
    return;//提示错误
    }
    Event event = eventService.queryEvent(eId);
    if (event == null) {
    return;//提示错误
    }
    PlanUsed use = planUsedService.getPlanUsed(eId, pId);

    if (use == null) {
    used.setPlanid(info.getOid());
    used.setPlanname(info.getPlanname());
    used.setAcceptid(eId);
    used.setAcceptname(event.getEventname());
    used.setIsused("1");
    used.setStarttime(new Date());
    //used.setPatch(info.getFilepath());
    used.setIscreate("0");
    List<PlanResponseLevel> planResponseLevels = planResponseLevelService.selectByPlanId(pId);
    String[] responseLevel=genResponseLevel(event, planResponseLevels);
    used.setResponselevel(responseLevel[0]);
    used.setPrewarninglevel(responseLevel[1]);
    String id = UUID.randomUUID().toString().replaceAll("-", "");
    used.setId(id);
    planUsedService.save(used);

    //给方案生成中的事件列表发送更新消息
    MKLCZMessage mm = new MKLCZMessage();
    mm.setBizType(2000);
    mm.setModeltype("startplan");
    mm.setTitle("启动预案:" + info.getPlanname());
    mm.setStartplan("启动了_" + info.getPlanname() + "");
    mm.setMessageId(Md5Util.UUID());
    mm.setSendTime(new Date());
    //发给消息服务器
    JmsSenderUtil.sendTopic(mm);
    return;
    }
    planUsedService.updatePlanUsedStatus(eId, use.getId());
    //给方案生成中的事件列表发送更新消息
    MKLCZMessage mm = new MKLCZMessage();
    // mm.setBizType(2000);
    mm.setModeltype("startplan");
    mm.setTitle("启动预案:" + info.getPlanname());
    mm.setStartplan("启动了" + info.getPlanname() + "预案");
    mm.setMessageId(Md5Util.UUID());
    mm.setSendTime(new Date());
    //发给消息服务器
    JmsSenderUtil.sendTopic(mm);
    //发给前台页面
    // webSocketServer.sendEvent("yjcz", "startplan",JsonUtil.toJson(mm));

    // MKLCZMessage mm = new MKLCZMessage();
    // mm.setBizType(2001);
    // mm.setModeltype("startplan");
    // mm.setTitle("启动预案:"+info.getName());
    // mm.setTitle("启动预案:"+info.getName());
    // mm.setStartplan("启动了"+info.getName()+"预案");
    // mm.setMessageId(Md5Util.UUID());
    //
    // mm.setSendTime(new Date());
    // 发给消息服务器
    // JmsSenderUtil.sendTopic(mm);

    //添加过程再现
    ProcreContent pr = new ProcreContent();
    pr.setItemid(UUID.randomUUID().toString().replaceAll("-", ""));
    pr.setReappid("000");
    pr.setOperatetime(new Date());
    pr.setContent("预案名称:" + info.getPlanname());
    pr.setContentid("启动预案");
    pr.setFileid("");
    pr.setContentname("启动预案");
    pr.setEventid(eId);
    pr.setEventname(event.getEventname());

    /*ProcreContent pro = new ProcreContent();
    pro.setItemid(pr.getItemid());
    pro.setReappid("000");
    pro.setOperatetime(pr.getOperatetime());
    pro.setContent(pr.getContent());
    pro.setContentid(pr.getContentid());
    pro.setFileid("");
    pro.setContentname(pr.getContentname());
    pro.setEventid(pr.getEventid());
    pro.setEventname(pr.getEventname());*/
    gczxService.saveContent(pr);
    /* gczxService.save(pr);
    gczxService.save(pro);*/
    if (logger.isDebugEnabled()) {
    logger.debug("新增过程的id:" + pr.getItemid());
    }
    }

    选择预案
    D:HuajunCode yyjhnyj_yjczsrcmainjavacnlessyjyjczeventManageactionPlanUsedAction.java
    function selectPlan(planid) {
    var grid = mini.get("eventGrid");
    var row = grid.getSelected();
    if (row) {
    var eventId = row.eventid;
    var planstart_data = {};
    planstart_data.eventId = eventId;
    planstart_data.planId = planid;
    mini.confirm("确定要选定这条预案吗?", "提醒", function (msg) {
    if (msg == 'ok') {
    $.callJson({
    url: "${pageContext.request.contextPath}/yjcz/startevent/startPlanUsed",
    data: planstart_data,
    type: 'post',
    dataType: 'json',
    success: function (data) {
    mini.alert("预案选定成功。", "提示", function () {
    //调到生成页面
    });
    },
    error: function () {
    mini.alert("error");
    }
    });
    }
    });
    } else {
    mini.alert("请先选择要处理的事件。");
    }


    }
    D:HuajunCode yyjhnyj_yjczsrcmainwebappappyjczeventManageitemRecord.jsp
    function openDealEvent(id, type) {
    var win = mini.open({
    title: '查看已启动预案信息',
    url: '${pageContext.request.contextPath}/app/yjcz/eventManage/itemRecord.jsp',
    showModal: false,
    1000,
    height: 600,
    onload: function () {
    var iframe = this.getIFrameEl();
    var data = {id: id, eventType: type};
    data.action = "show";
    iframe.contentWindow.SetData(data);
    }
    });
    }

    D:HuajunCode yyjhnyj_yjczsrcmainwebappappyjczeventManageshowPlanInfo.jsp
    function openPlan(id) {
    var win = mini.open({
    title: '查看预案信息',
    url: '${pageContext.request.contextPath}/app/yjcz/eventManage/showPlanInfo.jsp',
    showModal: false,
    680,
    height: 380,
    onload: function () {
    var iframe = this.getIFrameEl();
    var data = {id: id};
    data.action = "show";
    iframe.contentWindow.SetData(data);
    }
    });

    }

    function onSelectionChanged(e) {

    var grid = e.sender;
    var record = grid.getSelected();
    if (record) {
    grid_case.load({"eventtypecode": record.eventtypecode});
    grid_law.load({"eventType": record.eventtypecode});
    grid_nlg.load({"eventType": record.eventtypecode});
    grid_plan.load({"eventtype": record.eventtypecode.substr(0,2)});
    if (record.eventstate != 3) {
    grid_plan.on("drawcell", function (e) {
    var record = e.record;
    column = e.column;
    field = e.field;
    value = e.value;
    if (column.field == "option_plan") {
    e.cellHtml = "<a href='javascript:void(0);' onclick='openPlan("" + record.planid + "")'>查看</a>";
    }
    });
    } else {
    grid_plan.on("drawcell", function (e) {
    var record = e.record;
    column = e.column;
    field = e.field;
    value = e.value;
    if (column.field == "option_plan") {
    if(record.templateid){
    e.cellHtml = "<a href='javascript:void(0);' onclick='selectPlan("" + record.planid + "")'>选定</a> &nbsp; <a href='javascript:void(0);' onclick='openPlan("" + record.planid + "")'>查看</a>";
    }else{
    e.cellHtml = " <a href='javascript:void(0);' onclick='openPlan("" + record.planid + "")'>查看</a>";

    }
    }
    });
    }
    eventTitle.text("[" + record.eventname + "]关联信息");
    } else {
    grid_case.load();
    grid_law.load();
    grid_nlg.load();
    grid_plan.load();
    eventTitle.text("");
    }
    }
    是否已读
    readornot
    未读0 已读1

    事件分析
    事件状态 `state` varchar(2) DEFAULT '0' COMMENT '状态0:生成事件;1:启动响应; 2:响应结束;3:生成案例',
    `event_source` char(5) DEFAULT '0' COMMENT '事件来源0值守上报 2、应急指挥 3、事件添加', eventSource
    `event_focuson` char(5) DEFAULT '0' COMMENT '事件关注0否 1是 默认值0', eventFocuson

    响应级别及判定标准
    1 标识符(主键) id 主键 varchar 32 N
    2 事件id event_id varchar 32 N
    3 死亡人数 death_num varchar 50 Y
    4 受伤人数 wounder_num varchar 50 Y
    5 失踪人数 missing_num varchar 50 Y
    6 受困人数 trapped_num varchar 50 Y
    7 影响半径 influenceradius varchar 50 Y
    8 经济损失 economicloss varchar 50 Y
    9 影响范围 impact_scope varchar 200 Y

    根据事件类型、事件等级

    影响类型4大类
    自然灾害、事故灾难、公共卫生事件、社会安全事件

    事件等级
    特别重大、重大、较大、一般


    =======莱斯系统================================
    图上指挥
    http://192.168.8.201:8081/lesweb3/app/zhdd/yjcz_all.jsp?functionid=d54bd8f035c64df28da49852dc560059
    事件管理
    http://192.168.8.201:8081/hnyj_yjcz/app/yjcz/eventManage/index.jsp?functionid=7764c0de34c346708c38bce6d1e8f48c

    PLAN_RESPOND
    PLAN_RESPONSELEVEL
    PLAN_RESP_STANDARD
    PLAN_USED








    ============公司系统=======================================
    突发事件预案选择表
    semp_duty_evn_receive_plan
    semp_base_plan_base
    semp_base_plan_ver
    select t1.id, t1.plan_name,t2.plan_id,t2.id as pverid,t2.templateid, t2.make_unit, t2.publish_unit, t2.publish_date, t2.signname,t2.districts, t2.content, t2.attachment, t2.remark
    from semp_base_plan_base t1, (select a.* from semp_base_plan_ver a inner join (select max(ver_no) ver_no, plan_id from semp_base_plan_ver group by plan_id) b
    on a.ver_no = b.ver_no and a.plan_id = b.plan_id) t2
    where t1.id = t2.plan_id
    and t2.event_type like '%" + eventType + "%'

    // 匹配预案
    function matchPlan() {
    $.ajax({
    url: "sempBasePlanBaseController.do?matchPlan",
    data: {
    "eventType": "${sempDutyEvnReceive.eventType}",
    "districts": "${sempDutyEvnReceive.districts}",
    "eventId": "${sempDutyEvnReceive.id}",
    "userId": "${user.id}"
    },
    dataType: "json",
    cache: false,
    success: function (data) {
    $("#planList").empty();
    $.each(data.obj, function (index, item) {
    var title = "制作单位:" + item.makeUnit + " ";
    title += "发布单位:" + item.publishUnit + " ";
    title += "发布日期:" + moment(item.publishDate).format("YYYY年MM月DD日") + " ";
    title += "签发人:" + item.signname;
    var html = "<li ><p title='" + title + "'>" + item.planName + "</p>";
    html += "<p>";
    if (item.attachment != "") {
    html += "<span onclick=downloadPlan('" + item.attachment + "')>预案下载</span>";
    }
    if (item.templateid != "") {
    html += "<span onclick=openSzhDetail('" + item.pverid + "')>数字化详情</span>";
    }
    if (item.checked) {
    if (item.status == "1") {
    //去批示
    html += "<span onclick=createwindow('批示','sempDutyEvnReceivePlanController.do?goUpdate&id=" + item.evnPlan + "',768,500)>批示</span>";
    } else {
    //查看批示
    html += "<span onclick=createwindow('查看批示','sempDutyEvnReceivePlanController.do?goView&id=" + item.evnPlan + "',768,500)>查看批示</span>";
    }
    } else {
    html += "<span onclick=createwindow('选择批示人','sempDutyEvnReceivePlanController.do?goAdd&planId=" + item.planId + "&evnId=${sempDutyEvnReceive.id}',768,500)>预案选择</span>";
    }
    html += "</p> </li>";
    $("#planList").append(html);
    });
    $(".yjryxxb").niceScroll({cursorborder: "", cursorcolor: "rgba(0,0,0,0)"});
    }
    })
    }

    nohup java -Xms128m -Xmx512m -jar config.jar > config.log 2>&1 &



    7、响应指标

    数据来源于数字化预案的最新指标
    预案id--最新的版本id - 查询详细信息,plan_norm 响应指标表
    queryResponseCriteria
    select * from plan_base
    select id,name,remark from plan_base where id='411380b65a0ae0aabf1d0673dff98c7a'

    select * from plan_ver where plan_id='411380b65a0ae0aabf1d0673dff98c7a'

    SELECT max(ver_no) ver_no from plan_ver where plan_id='411380b65a0ae0aabf1d0673dff98c7a'

    SELECT id,max(ver_no) ver_no from plan_ver where plan_id='411380b65a0ae0aabf1d0673dff98c7a' GROUP BY id

    select * FROM plan_ver
    where plan_id='411380b65a0ae0aabf1d0673dff98c7a' and ver_no = (SELECT max(ver_no) ver_no from plan_ver where plan_id='411380b65a0ae0aabf1d0673dff98c7a');

    plan_id=411380b65a0ae0aabf1d0673dff98c7a

    plan_ver_id=bb77a5c59e257dd0247f255191fa489d


    411380b65a0ae0aabf1d0673dff98c7a
    http://192.168.8.201:8081/hnyj_yjcz/app/fzjc/sgty/sgty.jsp
    D:HuajunCode yyjhnyj_yjczsrcmainwebappappfzjcsgtysgty.jsp
    <div class="three_list_title" id="sgxx_title">
    <span class="list_title_text">响应指标</span>
    </div>
    <%--响应指标--%>
    <div class="list_content" id="sgxx_content" style="height: 230px">
    <div style="margin-top: 4px">
    <div class="re-level" style="background: #bd0004">

    </div>
    <div class="re-data">
    <div><span>死亡:</span><span id="dienum1" class="re-detail re-color"></span> <span>受伤:</span><span
    id="bruise1" class="re-detail re-color"></span></div>
    <div><span>半径:</span><span id="radius1" class="re-detail re-color"></span> <span>损失:</span><span
    id="money1" class="re-detail re-color"></span></div>
    </div>
    </div>
    <div>
    <div class="re-level" style="background: #d88b09">

    </div>
    <div class="re-data">
    <div><span>死亡:</span><span id="dienum2" class="re-detail re-color-2"></span>
    <span>受伤:</span><span id="bruise2" class="re-detail re-color-2"></span></div>
    <div><span>半径:</span><span id="radius2" class="re-detail re-color-2"></span>
    <span>损失:</span><span id="money2" class="re-detail re-color-2"></span></div>
    </div>
    </div>
    <div>
    <div class="re-level" style="background: #cad704">

    </div>
    <div class="re-data">
    <div><span>死亡:</span><span id="dienum3" class="re-detail re-color-3"></span>
    <span>受伤:</span><span id="bruise3" class="re-detail re-color-3"></span></div>
    <div><span>半径:</span><span id="radius3" class="re-detail re-color-3"></span>
    <span>损失:</span><span id="money3" class="re-detail re-color-3"></span></div>
    </div>
    </div>
    <div>
    <div class="re-level" style="background: #01b9dd">

    </div>
    <div class="re-data">
    <div><span>死亡:</span><span id="dienum4" class="re-detail re-color-4"></span>
    <span>受伤:</span><span id="bruise4" class="re-detail re-color-4"></span></div>
    <div><span>半径:</span><span id="radius4" class="re-detail re-color-4"></span>
    <span>损失:</span><span id="money4" class="re-detail re-color-4"></span></div>
    </div>
    </div>
    </div>


    8、响应级别
    http://192.168.8.201:8081/hnyj_yjcz/app/fzjc/sgty/sgty.jsp
    D:HuajunCode yyjhnyj_yjczsrcmainwebappappfzjcsgtysgty.jsp
    <div class="yuan_list2">
    <span class="yuan_text">响应级别</span>
    <a class="event_value" id="responseLevel" onclick="$('#iframe4').show();"
    style="color: #1f9bd4; cursor:pointer;"></a>
    </div>
    <iframe src="response.jsp" class="response-frame" name="prewarningFrame" id="iframe4"></iframe>
    <iframe class="response-frame" id="iframe5" style="height: 400px; 420px"></iframe>

    弹出框查询
    @Override
    public Map<String, Object> queryPlanUseAndResponse(Map<String, Object> map) {
    Map<String, Object> reData = new HashMap<String, Object>();
    Map<String, Object> planUse = planUsedDao.queryPlanUseDetail(map);
    reData.put("planUse", planUse);
    reData.put("response",planResponseLevelService.selectByPlanId(planUse.get("oid").toString()));


    return reData;
    }
    ETS_EVENT
    PLAN_USED
    pla_base
    PLAN_RESPONSELEVEL 预案响应指标
    PLAN_RESP_STANDARD 应对分级指标表
    CODE_ETS_EVENTTYPE 事件类型
    CODE_ETS_EVENTGRADE 事件等级
    PLAN_ITEM 预案节点信息

    选定的预案
    PLAN_USED

    应对分级指标表
    PLAN_RESP_STANDARD


    @Override
    public Map<String, Object> queryPlanUseDetail(Map<String, Object> map) {
    String sql = "SELECT ev.EVENTID,ev.EVENTTYPECODE,ev.eventName,ev.EVENTPOSITION,ev.EVENTCUTLINE,EV.DEATHNUMBER,EV.WOUNDNUMBER,EV.ECONOMYLOST,TO_CHAR(ev.eventhtime, 'YYYY-MM-DD HH24:MI:SS') AS eventTime,pu.responselevel" +
    " ,pi.*,rl.*,et.EVENTTYPENAME as typeName,ev.jdegree as jdegree,ev.wdegree as wdegree,eg.EVENTGRADENAME,eg.eventgradecode,et2.EVENTTYPENAME AS eventTypeName,org2.ORGNAME AS reportunit,pu.id as planusedid,plaitem.ITEMNAME" +
    " from ETS_EVENT ev" +
    " INNER JOIN PLAN_USED pu on EV.EVENTID=PU.ACCEPTID" +
    " INNER JOIN pla_base pi on PU.PLANID=pi.oid" +
    " LEFT JOIN PLAN_RESPONSELEVEL rl on pu.RESPONSELEVEL=rl.RESPONSELEVELID" +
    " INNER JOIN CODE_ETS_EVENTTYPE et on et.EVENTTYPECODE=pi.EVENTTYPE " +
    " INNER JOIN CODE_ETS_EVENTGRADE eg ON eg.EVENTGRADECODE = ev.EVENTGRADECODE" +
    " INNER JOIN CODE_ETS_EVENTTYPE et2 ON et2.EVENTTYPECODE = ev.EVENTTYPECODE" +
    " INNER JOIN bas_org org2 ON ev.REPORTUNIT = org2.OID" +
    " left join PLAN_ITEM plaitem on rl.PLANITEMID=plaitem.itemid" +
    " WHERE pu.id = #{id}";
    return this.queryForMap(sql, map);
    }





  • 相关阅读:
    Visual Studio 2019 开发 Python 及
    Delphi 的环境配置
    Delphi 的 TMS 控件安装方法
    网络爬虫-书籍与框架
    建筑行业(项目管理) BI 数据可视化分析案例
    DeepNude(一健脱衣)的算法以及通用图像生成的理论与实践研究
    matlab生成HEX文件-任意信号 大于64K长度
    SDRAM总结
    function [ binary,decimal ] = num2binary16( number )
    任意时钟分频
  • 原文地址:https://www.cnblogs.com/Jeely/p/15125028.html
Copyright © 2011-2022 走看看