manual-verify-pipe-type-namespace.md 6.9 KB

人工核验步骤:管网编码与设施类型命名空间

适用范围:管网编码 0/1 映射与设备边界设施类型命名空间 的后端修复 740d896。本说明对应 2026-10-12 数据快照;后续业务数据增长时,先用当时的数据重新核定计数。详见基线卡片 05。

核验前准备(约 2 分钟)

  1. 打开你部署的前端地址下的 /cockpit。8301 是后端接口端口,不是前端页面地址。
  2. 确认页面使用 real 数据源,接口实际请求到 http://192.168.110.96:8301/api/cockpit/v1/。按 F12 打开开发者工具 → Network(网络)→ Fetch/XHR,刷新页面,检查 Request URL。
  3. 清空行业、片区、设施类型等筛选,回到全量范围。记录核验时间、前后端版本和请求参数。不要用 mock 页面或仍带筛选的数字与下表比较。
  4. 核验只涉及浏览页面和 GET 请求,无需创建、修改或删除业务数据。

本次核验基准

管网原始编码 行业 设施类型码 中文名 条数
0 GAS(燃气) GAS_PIPE 燃气管线 537
1 DRAINAGE(排水) DRAINAGE_PIPE 排水管线 3735
2 WATER_SUPPLY(供水) WATER_PIPE 供水管线 996
合计 5268

这是管网条数,不能与包含其它设施的总数直接比较。旧界面显示 1001 是历史异常现象,不作为当前各端点总数的统一期望。

步骤 1:基础档案(页面 + 响应,约 2 分钟)

切换到基础设施模式,查看基础档案的设施总数与类型分布。在 Network 中找到 infrastructure/base-archives,打开 Response(响应):

  • data.facilityTypeDistribution 的 code/name/count 应包含:GAS_PIPE/燃气管线/537、DRAINAGE_PIPE/排水管线/3735、WATER_PIPE/供水管线/996。
  • 三类管网相加应为 5268;data.totals.facilityCount 应为 5278。
  • data.excluded.unknownTypeCount 应为 0。注意:修复前适配器直接丢弃部分管网,这个计数也可能为 0,因此必须同时核对三类条数。
  • 若界面展示与同一次请求的响应不同,记录为前端消费问题;不要将其误判为后端映射未修复。

步骤 2:总体概览(约 2 分钟)

切换总体概览,查看基础设施分区,并检查 overview/infrastructure 的响应:

响应字段 期望
data.totals.facilityCount 5276
data.industries 中 GAS 的 facilityCount 537
同上 WATER_SUPPLY 1004
同上 DRAINAGE 3735
同上 MANHOLE 0
data.excluded.unknownTypeCount 0(修复前为 5268)

总体概览的 5276 = 5268 管网 + 3 水厂 + 5 供水泵站。它不包含基础档案里的 2 处排水工程设施,所以比基础档案少 2 是预期行为。

步骤 3:设施命名空间(接口检查,约 2 分钟)

设备边界不一定有独立可见面板,可直接在浏览器打开下面的只读接口,或使用下方 PowerShell 命令:

http://192.168.110.96:8301/api/cockpit/v1/device-boundary

核对 data.facilities[] 中的设施:

  • facilityType.code/name 只能使用管网语义:GAS_PIPE/燃气管线、DRAINAGE_PIPE/排水管线、WATER_PIPE/供水管线。
  • industry 分别为 GAS、DRAINAGE、WATER_SUPPLY,formalScope 应为 true。
  • 管网设施不得被标为“供水设备”“排水设备”“燃气设备”。这些名称出现在 data.devices[] 的监测设备类型里可以正常,不要将设备清单与设施清单混淆。
  • data.statistics.facilityCount=5268,unknownTypeCount=0,行业设施数分别为 537/3735/996。

关键记忆:network_type=1 是排水管网,而 equipment_type.id=1 是供水设备,两者不能共用数字编码去查类型。

步骤 4:管理信息与运行信息(约 2 分钟)

基础设施模式 → 管理信息,检查 infrastructure/management-information:

  • data.totals.facilityCount=5273、equipmentCount=7。
  • data.districtIndustry 的未分区行:GAS 537、DRAINAGE 3735、WATER_SUPPLY 998(996 管网 + 2 水源地)、MANHOLE 3(窨井)。
  • data.excluded.unknownIndustryCount=0。管网没有权威片区字段,因此归未分区是正确行为。

检查 infrastructure/operating-information:

  • 在 data.industries[].metrics[] 中,仅统计 metricCode 以 _pipe_network_length 结尾的条目;应为 GAS 537、WATER_SUPPLY 996、DRAINAGE 3735,合计 5268。
  • data.excluded.unknownIndustryCount=0。指标条数是管道数量,不是长度值;长度单位以响应的 unit 为准(此指标为 m),不要把它当 km。
  • 页面可能聚合指标,未必展示 5268 行明细;此项以响应统计为准。

可选:用 PowerShell 一次输出核心核对项

以下命令只发 GET 请求,可在 Windows PowerShell 中复制执行:

$base = 'http://192.168.110.96:8301/api/cockpit/v1'
function Get-CockpitData($path) {
    $r = Invoke-RestMethod "$base/$path" -TimeoutSec 60
    if ($r.code -ne 200 -or $null -eq $r.data) {
        throw "接口失败:$path,业务 code=$($r.code)"
    }
    return $r.data
}
$a = Get-CockpitData 'infrastructure/base-archives'
$a.facilityTypeDistribution | Where-Object {
    $_.code -in @('GAS_PIPE', 'WATER_PIPE', 'DRAINAGE_PIPE')
} | Format-Table code,name,count
"基础档案总数=$($a.totals.facilityCount),未知类型=$($a.excluded.unknownTypeCount)"

$o = Get-CockpitData 'overview/infrastructure'
"概览总数=$($o.totals.facilityCount),未知类型=$($o.excluded.unknownTypeCount)"
$o.industries | Select-Object code,facilityCount | Format-Table

$b = Get-CockpitData 'device-boundary'
$b.facilities | Group-Object {
    "$($_.facilityType.code)|$($_.facilityType.name)|$($_.industry)"
} | Select-Object Name,Count | Format-Table
"设备边界设施数=$($b.statistics.facilityCount),未知类型=$($b.statistics.unknownTypeCount)"

判定与记录

三类管网合计一致、名称与行业正确、未知计数为 0,且页面与其实际请求响应一致,才能判定本次管网映射核验通过。固定数字仅对应本次快照;数据新增后应重新建立基准,不将正常变化判成回归。

记录项 填写
时间、页面地址、版本
行业/片区/类型筛选是否清空
基础档案:三类管网数、总数
概览:行业设施数、未知类型数
设备边界:设施名称与行业是否正确
管理信息:未分区计数;运行信息:管网指标条数
页面与响应是否一致;异常截图或响应
操作人、结论(通过/未通过)

完整界面与模式阶段验收继续归前端真实接口联调与阶段收口;本说明不代表该阶段已全部收口。