对应 后端执行票 —— 工单关联标记口径统一(设备维度 vs 时间线)。本文件提供下一步验收命令,本轮未执行编译、测试或真实环境复验;当前仅完成源码实施与静态检查。
后端实施提交:894402a,已推送 origin/master。维护者裁定:报警与工单一对一,重复关联明确失败。
在 E:\pipe-ner-server 根目录执行(需用户明确要求运行验证):
mvn -o -pl pipe-network-service/zksy-admin -am '-Dtest=Cockpit*Test,BusinessCockpit*Test' '-Dsurefire.failIfNoSpecifiedTests=false' test
必须记录提交版本、BUILD SUCCESS、实际测试数、Failures/Errors/Skipped。新增 CockpitWorkOrderAssociationContractTest 含 7 个测试方法,贯穿控制器、服务及真实适配器,覆盖三入口正关联一致、报警单号别名与 SQL 条件、未关联 false/null、同设备工单不串联、未知工单、重复关联正反序均失败,以及真实数据库异常转换;既有适配器测试已补共享反查的数据桩。若离线依赖不齐,记录缺失依赖后按环境实际情况处理,不把未执行视为通过。
确认运行实例已加载本票提交,记录实例启动时间/版本。历史联调环境为 http://192.168.110.96:8301,本轮没有确认其当前运行状态;以下命令须在部署后执行:
$base = 'http://192.168.110.96:8301/api/cockpit/v1'
$orderCode = 'WO202610101511303516'
$alarmCode = 'cd57be42bd18d02f7d3390fb98539b93'
$deviceCode = '21119740'
$deviceResponse = Invoke-RestMethod "$base/equipments/$deviceCode/work-orders" -TimeoutSec 60
$alarmResponse = Invoke-RestMethod "$base/events/ALARM/$alarmCode/work-orders" -TimeoutSec 60
$timelineResponse = Invoke-RestMethod "$base/work-orders/$orderCode/timeline" -TimeoutSec 60
$deviceOrders = @($deviceResponse.data.workOrders | Where-Object workOrderCode -EQ $orderCode)
$alarmOrders = @($alarmResponse.data.workOrders | Where-Object workOrderCode -EQ $orderCode)
if ($deviceOrders.Count -ne 1 -or $alarmOrders.Count -ne 1) {
throw '目标工单在设备/报警端点中缺失或重复,不能判定一致性通过'
}
$orders = @($deviceOrders[0], $alarmOrders[0], $timelineResponse.data.workOrder)
$expectedAssociation = $deviceOrders[0].eventAssociation
foreach ($order in $orders) {
if ($null -eq $order -or $order.workOrderCode -ne $orderCode -or
$order.associatedWithCurrentEvent -ne $true -or
$null -eq $order.eventAssociation -or
$order.eventAssociation.eventSource -ne 'ALARM' -or
$order.eventAssociation.eventCode -ne $alarmCode -or
$order.eventAssociation.associatedAt -ne $expectedAssociation.associatedAt) {
throw '三端点关联标记或关联信息不一致'
}
}
$orders | Select-Object workOrderCode, associatedWithCurrentEvent, eventAssociation | ConvertTo-Json -Depth 5
若样本已被外部系统删除或解除关联,先说明真实数据变化,不能改用 mock 冒充该工单的部署验收。未关联工单须另选真实无报警引用样本:设备与时间线均显式 false/null,报警维度不返回该工单。
维护者已裁定一对一,重复关联报错。如有现成真实重复关联样本,其设备工单、两个 ALARM 查询和时间线均应 HTTP 500 + SERVER_ERROR,不得返回成功的首条关联。若无此真实样本,先以新增契约测试覆盖;不要为复验修改真实关联数据。
编译、测试、目标真实样本复验与提交推送均有真实证据后,写回执行票正文和 resolution comment,关闭并调用 deck_issue_report,最后在所属 map 的 Decisions so far 追加票名链接与一句结论。任何一项缺证据则保留开放,明确下一步。