# 监测评估预警

# 监测预警

# 约束性指标

​ 获取【约束性指标体系】下的所有指标值信息

  1. 获取监测预警类体系--jcyjl体系列表【GET rest/monitor/v1/monitor/indicator/system/list

  2. 根据获取到的列表,取第一个的名字【不知道为啥要用名字】,去获取列表下关联的约束性指标,后台调用地址:monitor/atlas/index/indicator/data/{type}/{systemName}/{areaCode},【管控边界功能也是这个接口

    • 功能说明:指标体系下的约束性指标,根据指标评估方式,算出和规划值的差值,判断是否达标
    • 根据体系名称找到体系,找到体系下挂接的指标,保留约束性的指标
    • 根据指标集找到 对应的 单位、评估方式
    • 根据 regionCode,找到对应的 "规划类 指标体系【可能出现的问题,见下方说明】
  3. 统计行政区下预警指标数量【图中数字,GET monitor/atlas/index/indicator/warning/count/{type}/{systemName}/{areaCode}

image-20200925163429569

1、提示 体系级别为 xx 的规划体系不存在?

根据 regionCode,查找对应规划类体系时,会判断体系级别 是否包含当前行政区【体系级别管理--编辑--体系级别设置】

# 管控边界

数据来源于【模型管理系统】

image-20201018160527510

image-20201018161520986

说明:

  • undefined:代表模型名,不传使用默认值【${model.name:管控边界监测}】,如果 涉及到 这个功能目录层级调整,此处需要传入指定的 modelName,其它相关功能如:地图下钻,模型计算结果等,都需要携带 modelName 参数

  • 此处在 0430 版本后,进行功能更新,支持模型结果中字段和系统中存储字段做映射【mws_control_fields】mws_control_model(存放管控边界模型的单位)、mws_indicator_map(存放要素分布地图服务配置)通过【monitor/indicator/system/import/excel/{type}】导入

  • 代码逻辑不复杂,【逻辑上可能需要优化】

 private List<AtlasIndicatorControlDTO> getBaseLineIndicatorData(String areaCode, String systemName){
     // 从模型获取所有的数据再进行处理,在数据量大的情况下,会有超时、响应时间长
     List<EvaluationModelHttpResponseDTO> result = this.getResult(o.getId());
 }
1
2
3
4

获取模型管控边界目录:dme/api/models/v1/bycatalogpath?cn=实施监督模型:管控边界监测

获取单个模型结果:dme/api/tasks/result/v1/mv/{modelVersionCode},上一步获取的 modelVersion 类型 的 id

# 预警清单

image-20201029165236560

【POST rest/monitor/v1/monitor/list 】,调用接口也是上述 2 个接口,获取所有数据过滤后分页【数据量大性能较低】

# 体征监测

image-20201102160126713

  1. 获取监测预警类体系--jcyjl体系列表【GET rest/monitor/v1/monitor/indicator/system/list
  2. 获取指标筛选范围 【GET rest/monitor/v1/monitor/atlas/indicator/filter
    • 查询【指标属性、指标状态、适用行政区划层级】
  3. 查询 指标体系 【GET rest/monitor/v1/monitor/atlas/catalog/{systemName}
  4. 监测指标状态统计
  5. 卡片数据的获取

# 报告管理

GET rest/report/v1/view/all/report

  • 记录存储在 mws_indicator_report_manager 表中,文件在 Mongo 中
  • 查看报告:officeonline 、jacob 转 pdf、kkfileView

# 收藏夹

1、获取监测评估类体系

GET rest/monitor/v1/monitor/indicator/system/list

2、获取一个体系,获取此体系下收藏指标预警信息

GET monitor/atlas/concern/indicator/{userCode}/{ownRegion}?systemName=xxx

# 现状评估

# 成果管理

​ 档案管理系统中上传成果包,会保存信息到 mws_indicator_evaluate_task 表中

image-20201016163823943

1、【GET rest/evaluate/v1/evaluate/task/list 】获取评估任务,根据当前登录用户 region,从所有任务中筛选自己范围内的数据,取出 任务名称去重

2、【GET rest/evaluate/v1/evaluate/city/list/hasTask 】 判断当前用户到县级的所有行政区是否有成果【返回所有行政区数据,和有数据的行政区进行对比,赋值 expand 字段】

3、【POST rest/evaluate/v1/evaluate/task/region/detail】 获取列表数据【传入上一步获取的所有行政区】

# 指标查询

image-20201027213158767

1、获取年份数据【GET rest/evaluate/v1/aggregate/region/years/indicators

从 成果管理中 获取所有任务【时间倒排】,获取第一个的 起止时间,没有数据,展示 2011-2018

2、获取行政区划【GET rest/evaluate/v1/evaluate/city/list/hasTask?evaluateName=

参考"成果管理--第二条"

3、指标数据【GET rest/evaluate/v1/evaluate/indicator/list/ex/2/ /0/全部/全部

# 综合分析

image-20201027214512746

1、获取年份列表,参考“指标查询--第一条”

2、获取体系下指标列表,参考“指标查询--第三条”

# 地区评估

image-20201029131350145

1、左侧地区列表【GET rest/evaluate/v1/evaluate/city/list/ 】参考 “成果管理--第二条”

# 指标评估

image-20201029132546775

1、rest/evaluate/v1/evaluate/name/list/{type} 根据 type 值,从成果中过滤掉数据,取最新一条数据

# 项目中的问题

问题一,约束性指标中,由于缺少规划值和监测值缺少一个或多个,导致底图渲染不能渲染对应行政区数据【调整逻辑,有什么值就展示什么值】

321C877FDFB0D766C2CF095FCF4585E8

​ 通过代码定位到所在位置:

/**
 * IndicatorMonitorBizServiceImpl
  */
getMonitorMapData(String type,  Integer indicatorId, String code, String year,  String ownRegion, String systemName){
    List<DicValue> dicValues = this.getRegionTreeList(code, ownRegion);
    List<MonitorListDTO> monitorListDTOS = this.getMonitorList(indicatorId, dicValues, year, ownRegion, systemId);
}
1
2
3
4
5
6
7

image-20201015170542723

调整次数 level 值,获取指定到层级的行政区划数据【不然数据量会比较多】

2、 monitorList 方法中, 由于不存在对应值,数据被过滤掉,此时需要保留,同时修改下面代码【相信你能搞定的!不贴代码了】

image-20201015171503988