/onemap{ code: 200, msg: "操作成功", data: {...} }GET /onemap/stats
页面顶部显示"单位数 / 在建工程 / 已建工程"
响应:
{
"unitCount": 128,
"buildingCount": 45,
"builtCount": 312
}
数据来源: | 字段 | 表 | 条件 | |------|---|------| | unitCount | att_org_base | status = '0' | | buildingCount | att_eng_base | eng_stat IS NULL / '' / '在建' | | builtCount | att_eng_base | eng_stat = '已建' / '完工' |
GET /onemap/trend
左侧"安全指标趋势分析"折线图
响应:
{
"quarters": ["2024-Q1", "2024-Q2", "2024-Q3", "2024-Q4"],
"series": [
{ "name": "隐患排查率", "data": [85.2, 87.5, 89.1, 91.3] },
{ "name": "隐患整改率", "data": [76.8, 80.2, 82.5, 85.0] },
{ "name": "危险源辨识率", "data": [92.1, 93.5, 94.2, 95.0] },
{ "name": "应急预案率", "data": [68.0, 68.0, 68.0, 68.0] },
{ "name": "安责险购买率", "data": [55.3, 58.7, 62.1, 65.0] }
]
}
数据来源: | 指标 | 表 | 字段 | 说明 | |------|---|------|------| | 隐患排查率 | t_busi_hidd_eva | pcl | 按 start_date 提取季度,取平均 | | 隐患整改率 | t_busi_hidd_eva | hidd_zgl | 同上 | | 危险源辨识率 | t_busi_haz_eva | haz_bsl | 同上 | | 应急预案率 | t_busi_plan_count | zh_plan+zx_plan+xc_plan / org_num | 全局固定值 | | 安责险购买率 | t_busi_insure_eva | bxl | 按 start_date 提取季度,取平均 |
⚠️ 若表不存在,对应指标返回空数组,前端显示空白
GET /onemap/eng-types
左侧"工程情况"柱状图
响应:
{
"build": [
{ "key": "reservoir", "name": "水库", "count": 1207 },
{ "key": "dike", "name": "堤防", "count": 792 }
],
"built": [
{ "key": "reservoir", "name": "水库", "count": 45000 },
{ "key": "dike", "name": "堤防", "count": 8000 }
]
}
数据来源: att_eng_base 按 eng_type + eng_stat 分组统计
工程类型映射: | key | 中文 | |-----|------| | res | 水库 | | waga | 水闸 | | pust | 泵站 | | hyst | 水电站 | | irr | 灌区 | | dike | 堤防 | | wadi | 引调水 | | sd | 淤地坝 | | cws | 农村供水 | | othe | 其他 |
GET /onemap/eng-list?keyword=&engType=
双击工程情况卡片进入工程列表页
参数: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | keyword | string | 否 | 工程名称模糊搜索 | | engType | string | 否 | 工程类型筛选 |
响应:
{
"rows": [
{
"id": "a1b2c3...",
"name": "旬邑县蚂蚁沟水库工程",
"code": "610429000050",
"engType": "水库",
"status": "build",
"lng": 108.29,
"lat": 35.12,
"unit": "旬邑县水利工作队",
"areaCode": "610429",
"source": "系统填报"
}
],
"total": 1
}
数据来源: att_eng_base LEFT JOIN att_org_ext(关联管理单位名称)
GET /onemap/eng-detail?id=
单击工程列表项弹出详情卡片
参数: id — 工程 GUID
响应:
{
"id": "a1b2c3...",
"name": "旬邑县蚂蚁沟水库工程",
"engType": "水库",
"source": "系统填报",
"status": "已建",
"startDate": "2020-01-01",
"endDate": "2022-12-31",
"importance": "重要",
"scale": "中型",
"area": "610429",
"location": "无",
"lng": 108.29,
"lat": 35.12,
"damType": "无",
"floodStandard": "50",
"deadWaterLevel": "无",
"totalCapacity": "1200",
"manageUnit": "旬邑县水利工作队",
"waterDept": "无",
"responsiblePersons": [
{ "type": "工程主要负责人", "name": "张三", "phone": "138xxxx1234" },
{ "type": "分管安全负责人", "name": "无", "phone": "无" }
],
"safetyStatus": [
{ "name": "安全生产许可证", "value": "无" },
{ "name": "安全生产标准化", "value": "无" }
]
}
数据来源: | 字段 | 表 | 说明 | |------|---|------| | 基础信息 | att_eng_base | 通过 guid 查询 | | manageUnit / waterDept | att_org_ext | 通过 org_rest 关联 | | responsiblePersons | att_org_ext | 法人、分管安全、安全联系人、应急联系人 | | safetyStatus | att_org_ext | 许可证、标准化等级、证书编号、资质等级 |
GET /onemap/hazards
右侧"危险源信息"4 个 Tab 切换饼图
响应:
{
"hazardGrade": [{ "name": "一般危险源", "value": 120 }],
"riskGrade": [{ "name": "低风险", "value": 80 }],
"monitor": [{ "name": "视频监控", "value": 95 }],
"control": [{ "name": "已管控", "value": 110 }]
}
| Tab | 表 | 分组字段 |
|---|---|---|
| 危险源等级 | obj_haz | hidd_grad(1→一般危险源,2→重大危险源) |
| 风险等级 | obj_haz | risk_grad |
| 监测监控 | obj_haz | monitor_means |
| 危险源管控 | obj_haz | if_control(Y→已管控) |
GET /onemap/hiddens
右侧"隐患信息"2 个 Tab 切换饼图
响应:
{
"hiddGrade": [{ "name": "一般隐患", "value": 200 }],
"rectify": [{ "name": "已整改", "value": 180 }, { "name": "未整改", "value": 20 }]
}
| Tab | 表 | 分组字段 |
|---|---|---|
| 隐患等级 | obj_hidd | hidd_grad(1→一般隐患,2→重大隐患) |
| 隐患整改 | obj_hidd | hidd_stat(0→未整改,1→整改中,2→已整改) |
GET /onemap/emergency
右侧"应急预案信息"2 个 Tab
响应:
{
"planType": [
{ "name": "综合预案", "value": 50 },
{ "name": "专项预案", "value": 120 },
{ "name": "现场处置方案", "value": 200 }
],
"drill": [
{ "name": "已演练", "value": 80 },
{ "name": "未演练", "value": 290 }
]
}
⚠️
t_busi_plan_count表不存在时返回空数组
GET /onemap/insurance
右侧"安责险信息"柱状图
响应:
{
"years": ["2022", "2023", "2024"],
"rate": [55.3, 62.1, 68.5]
}
⚠️
t_busi_insure_eva表不存在时返回空数组
GET /onemap/units
顶部统计"单位数"点击后进入单位列表页
响应:
{
"gov": [
{
"id": "xxx",
"name": "水利部",
"type": "水行政主管单位",
"creditCode": "11100000000012345X",
"area": "全国",
"address": "北京市",
"lng": 116.38,
"lat": 39.91
}
],
"company": [
{ "id": "xxx", "name": "xxx公司", "type": "生产经营单位", "..." }
]
}
数据来源: att_org_base JOIN att_org_ext,按 wiun_prop 分类
GET /onemap/unit-detail?id=
单击单位列表项弹出详情卡片
参数: id — 单位 org_guid
响应:
{
"id": "xxx",
"name": "水利部",
"creditCode": "11100000000012345X",
"type": "水行政主管单位",
"area": "xxx",
"address": "北京市",
"adminArea": "全国",
"standardLevel": "一级",
"fundSource": "财政拨款",
"employeeCount": "150",
"lng": 116.38,
"lat": 39.91,
"responsiblePersons": [...],
"safetyStatus": [...]
}
数据来源: att_org_ext 单表查询
GET /onemap/safety
勾选"安全生产现状"图层时,给省级多边形染色
响应:
{
"provinces": [
{ "code": "110000", "risk": "low" },
{ "code": "410000", "risk": "serious" }
]
}
数据来源: att_ad_base 按省级分组,统计 att_org_ext 机构数量划分风险
GET /onemap/safety-province?code=
单击省级多边形弹出详情浮窗
参数: code — 省级行政区划码(如 410000)
响应:
{
"hazIdentRate": 0,
"hazControlRate": 85.5,
"hiddInvestRate": 0,
"hiddRectRate": 0,
"planReportRate": 0,
"planDrillRate": 0,
"insureRate": 0
}
部分指标因表不存在暂返回 0
GET /onemap/safety-children?code=
双击省级 → 加载市级;双击市级 → 加载县级
参数: code — 父级行政区划码(如 410000 查市级,410100 查县级)
响应:
[
{
"code": "410100",
"name": "郑州市",
"grad": 2,
"minLng": 112.82,
"minLat": 34.12,
"maxLng": 114.28,
"maxLat": 34.98,
"avgHazRate": 88.5,
"avgPcl": 76.2,
"avgHiddZgl": 92.1,
"risk": "normal"
}
]
数据来源: | 字段 | 表 | 说明 | |------|---|------| | code/name/grad/bbox | att_ad_base | 按 up_ad_guid 查子级 | | avgHazRate | t_busi_haz_eva | LEFT JOIN,按 AVG(haz_bsl) | | avgPcl | t_busi_hidd_eva | LEFT JOIN,按 AVG(pcl) | | avgHiddZgl | t_busi_hidd_eva | LEFT JOIN,按 AVG(hidd_zgl) | | risk | 计算得出 | 基于 avgHazRate + avgPcl 划分风险等级 |
┌─────────────────────────────────────────────────────┐
│ 页面加载 │
│ ├─ GET /onemap/stats → 顶部统计 │
│ ├─ GET /onemap/trend → 趋势折线图 │
│ ├─ GET /onemap/eng-types → 工程柱状图 │
│ ├─ GET /onemap/eng-list → 工程列表 │
│ ├─ GET /onemap/hazards → 危险源饼图 │
│ ├─ GET /onemap/hiddens → 隐患饼图 │
│ ├─ GET /onemap/emergency → 应急饼图 │
│ └─ GET /onemap/insurance → 保险柱状图 │
├─────────────────────────────────────────────────────┤
│ 勾选"安全生产现状"图层 │
│ ├─ 前端加载 /geojson/provinces.geojson │
│ └─ GET /onemap/safety → 省级风险染色 │
├─────────────────────────────────────────────────────┤
│ 单击省级多边形 │
│ └─ GET /onemap/safety-province?code=xx → 详情弹窗 │
├─────────────────────────────────────────────────────┤
│ 双击省级多边形 │
│ ├─ 前端加载 /geojson/cities/{code}.json │
│ └─ GET /onemap/safety-children?code=xx → 市级染色 │
├─────────────────────────────────────────────────────┤
│ 单击市级多边形 │
│ └─ GET /onemap/safety-children?parentCode=xx │
│ → .find(code) → 详情弹窗 │
├─────────────────────────────────────────────────────┤
│ 双击市级多边形 │
│ ├─ 前端加载 /geojson/counties/{code}.json │
│ └─ GET /onemap/safety-children?code=xx → 县级染色 │
└─────────────────────────────────────────────────────┘