diff --git a/reports/admin-test-env-acceptance-20260808070759.json b/reports/admin-test-env-acceptance-20260808070759.json new file mode 100644 index 000000000..f543ff10f --- /dev/null +++ b/reports/admin-test-env-acceptance-20260808070759.json @@ -0,0 +1,398 @@ +{ + "reportName": "后台管理测试环境 HTTP API 验收", + "marker": "ADMIN-API-20260808070759638", + "gateway": "http://8.163.30.128:9000", + "generatedAt": "2026-08-08T07:08:02.212Z", + "startedAt": "2026-08-08T07:07:59.638Z", + "success": true, + "fatal": null, + "summary": { + "total": 19, + "passed": 19, + "failed": 0 + }, + "modules": [ + { + "name": "overseas-storage-fees", + "startedAt": "2026-08-08T07:08:00.028Z", + "finishedAt": "2026-08-08T07:08:02.212Z", + "success": true, + "passed": 18, + "failed": 0, + "fatal": null + } + ], + "scenarios": [ + { + "name": "customer-overseas-storage-fee-lifecycle", + "module": "overseas-storage-fees", + "success": true, + "deploymentBlocked": false, + "passed": 18, + "failed": 0 + } + ], + "deploymentBlockers": [], + "createdResources": { + "overseasStorageFeeCustomer": { + "tenantId": "2085986363912081410", + "marker": "ADMIN-API-20260808070759638", + "ownedByModule": true + } + }, + "excluded": [ + { + "scope": "dashboard", + "reason": "首页为静态演示数据,不调用后端 API" + }, + { + "scope": "hidden-prototypes", + "reason": "隐藏原型页面尚无已确认后端契约" + } + ], + "securityNote": "报告不保存登录密码、Access Token、Refresh Token、图片二进制或 OCR 原文全文。", + "steps": [ + { + "module": "authentication", + "scenario": null, + "name": "平台管理员登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "08022e4a-3608-4a0a-a044-d9cf6e0be9ff, 3f9630d3-7d03-4065-91f3-98b51ec9b3a3", + "traceId": "799245d405814326b4fb662096e0ead8", + "evidence": "", + "checkedAt": "2026-08-08T07:08:00.027Z" + }, + { + "module": "overseas-storage-fees", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16172880029" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "03ecb397-ed46-4843-a596-17e190e0aa1a, 1c33fc17-a09f-4a6d-9d37-79fc2a19e912", + "traceId": "3073bdaea83a4dd79345134343fadcbd", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T07:08:00.277Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "创建海外仓费用隔离客户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2c62bbe2-5bc2-4db7-8445-53d602398e10, 7aa8dec0-1d18-41d0-9190-c92d72b35fcf", + "traceId": "3bb8c275a791436894fbb691385909cf", + "evidence": "", + "checkedAt": "2026-08-08T07:08:01.251Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "海外仓费用隔离客户创建并带 marker", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2c62bbe2-5bc2-4db7-8445-53d602398e10, 7aa8dec0-1d18-41d0-9190-c92d72b35fcf", + "traceId": "3bb8c275a791436894fbb691385909cf", + "evidence": "tenantId=2085986363912081410", + "checkedAt": "2026-08-08T07:08:01.251Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "查询客户海外仓费用配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0a80a0c0-b310-4617-b1fb-6378183c34d1, d79c7b46-9048-40e8-af13-88edc9b179c4", + "traceId": "a0c4715331204699b317ee5c28dbc902", + "evidence": "tenantId=2085986363912081410", + "checkedAt": "2026-08-08T07:08:01.505Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "客户费用配置身份、默认 USD 与9档结构正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0a80a0c0-b310-4617-b1fb-6378183c34d1, d79c7b46-9048-40e8-af13-88edc9b179c4", + "traceId": "a0c4715331204699b317ee5c28dbc902", + "evidence": "ruleId=2085986365855547394, customerId=2085986363912081410, currency=USD, tiers=9", + "checkedAt": "2026-08-08T07:08:01.506Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "请求体客户 ID 与路径不一致时安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "客户ID与路径不一致", + "requestId": "9af89e20-5c1b-4a6e-a861-478915770c86", + "traceId": "4bdb61b246624177a3d5106ab5a30c05", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:08:01.667Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "整组修改客户海外仓费用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8e4776f4-6652-444c-8c0a-e852e144f447, 78724810-dc98-4d8a-9f98-ceac1bc2c090", + "traceId": "16bc0d76c86c4b6e83d81abfaa60da3d", + "evidence": "tenantId=2085986363912081410, tiers=9", + "checkedAt": "2026-08-08T07:08:01.776Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "回查整组修改后的客户费用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3099f742-1a4d-4938-8445-da774666b6ac, 63466c28-e78f-4ccb-8c24-7ea58f284be8", + "traceId": "019f7fbcc1554a9eaa37aa26b78bbf15", + "evidence": "", + "checkedAt": "2026-08-08T07:08:01.829Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "修改后币种、价格、9档及版本整体回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3099f742-1a4d-4938-8445-da774666b6ac, 63466c28-e78f-4ccb-8c24-7ea58f284be8", + "traceId": "019f7fbcc1554a9eaa37aa26b78bbf15", + "evidence": "currency=EUR, version=1, tiers=9", + "checkedAt": "2026-08-08T07:08:01.830Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "旧 version 整组保存返回并发冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "A0409", + "message": "费用配置已被修改,请刷新后重试", + "requestId": "529b1872-a54d-47fa-93e1-a83f8b958e6b", + "traceId": "cfe282a3f62d4951b27ae93cbcf831ab", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:08:01.882Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "冲突后回查费用配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e03cb252-7e06-4cb4-8d4f-2275e78f7cd8, 82f92f72-f74d-46de-871d-e981ebfdc555", + "traceId": "5c605f53426144518bfea2eb8cfee8cf", + "evidence": "", + "checkedAt": "2026-08-08T07:08:01.927Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "冲突未造成部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e03cb252-7e06-4cb4-8d4f-2275e78f7cd8, 82f92f72-f74d-46de-871d-e981ebfdc555", + "traceId": "5c605f53426144518bfea2eb8cfee8cf", + "evidence": "version=1, unchanged=true", + "checkedAt": "2026-08-08T07:08:01.927Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "恢复本轮客户费用原始配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5c9ae1b7-7110-4f8d-ae67-6b6d5e540fea, 2ddda50c-4242-4bbc-b939-4838b3079c39", + "traceId": "1e99e9bb1b0146b3a33309e01d0304e8", + "evidence": "restore=initial", + "checkedAt": "2026-08-08T07:08:02.009Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "回查恢复后的客户费用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "97755a72-6e69-404b-b2b3-ecbc8f07ce79, 0499aa74-77c0-4549-8cc9-e4979e9fe477", + "traceId": "1debe0048ffc460a8051330d840d38dd", + "evidence": "", + "checkedAt": "2026-08-08T07:08:02.050Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "恢复后9档、USD、免费档和无上限档一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "97755a72-6e69-404b-b2b3-ecbc8f07ce79, 0499aa74-77c0-4549-8cc9-e4979e9fe477", + "traceId": "1debe0048ffc460a8051330d840d38dd", + "evidence": "currency=USD, version=2, tiers=9", + "checkedAt": "2026-08-08T07:08:02.050Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "错误客户 ID 查询安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/999999999999999999/overseas-storage-fees" + }, + "http": 200, + "code": "A0404", + "message": "海外仓费用不存在", + "requestId": "6d8fb159-9eb5-4441-b8b9-f3b56559c2b1", + "traceId": "5223ea09b0d74ac78294315a2c6f7b7f", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:08:02.092Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "清理费用隔离客户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/archive" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "24fc7ae4-5eec-446d-af30-36faeceef1aa, a5882354-26c6-40fb-bdf3-b4c84d8daa16", + "traceId": "f857e4e0ef8647909d4825baf9d4ab3c", + "evidence": "tenantId=2085986363912081410", + "checkedAt": "2026-08-08T07:08:02.212Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "费用隔离客户清理后停用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants/2085986363912081410/archive" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "24fc7ae4-5eec-446d-af30-36faeceef1aa, a5882354-26c6-40fb-bdf3-b4c84d8daa16", + "traceId": "f857e4e0ef8647909d4825baf9d4ab3c", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T07:08:02.212Z" + } + ] +} diff --git a/reports/admin-test-env-acceptance-20260808071157.json b/reports/admin-test-env-acceptance-20260808071157.json new file mode 100644 index 000000000..92e69b55d --- /dev/null +++ b/reports/admin-test-env-acceptance-20260808071157.json @@ -0,0 +1,596 @@ +{ + "reportName": "后台管理测试环境 HTTP API 验收", + "marker": "ADMIN-API-20260808071157232", + "gateway": "http://8.163.30.128:9000", + "generatedAt": "2026-08-08T07:11:58.858Z", + "startedAt": "2026-08-08T07:11:57.232Z", + "success": true, + "fatal": null, + "summary": { + "total": 30, + "passed": 30, + "failed": 0 + }, + "modules": [ + { + "name": "overseas-storage-fees", + "startedAt": "2026-08-08T07:11:57.611Z", + "finishedAt": "2026-08-08T07:11:58.858Z", + "success": true, + "passed": 29, + "failed": 0, + "fatal": null + } + ], + "scenarios": [ + { + "name": "customer-overseas-storage-fee-lifecycle", + "module": "overseas-storage-fees", + "success": true, + "deploymentBlocked": false, + "passed": 29, + "failed": 0 + } + ], + "deploymentBlockers": [], + "createdResources": { + "overseasStorageFeeCustomer": { + "tenantId": "2085987359342055425", + "marker": "ADMIN-API-20260808071157232", + "ownedByModule": true + } + }, + "excluded": [ + { + "scope": "dashboard", + "reason": "首页为静态演示数据,不调用后端 API" + }, + { + "scope": "hidden-prototypes", + "reason": "隐藏原型页面尚无已确认后端契约" + } + ], + "securityNote": "报告不保存登录密码、Access Token、Refresh Token、图片二进制或 OCR 原文全文。", + "steps": [ + { + "module": "authentication", + "scenario": null, + "name": "平台管理员登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "74f372db-9641-4b79-b630-f3031e3c1b12, 26784c66-115f-4a5c-952c-7deae51e6b9b", + "traceId": "438754ec03024b9eb43a2e425875d6db", + "evidence": "", + "checkedAt": "2026-08-08T07:11:57.610Z" + }, + { + "module": "overseas-storage-fees", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16173117612" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0e26abf8-7786-4f6e-ad14-442dd4248dfa, 49c9752d-86ac-419d-b584-93403189613c", + "traceId": "56c96ba33e1b49e892c2d89043f0f907", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T07:11:57.659Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "创建海外仓费用隔离客户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5457bda0-53c8-48c6-912b-585584cbea06, ebd253d8-ca39-4a8a-aa8c-7067f132fe50", + "traceId": "e1f4f63a431941ae96137434ba824ea0", + "evidence": "", + "checkedAt": "2026-08-08T07:11:58.076Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "海外仓费用隔离客户创建并带 marker", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5457bda0-53c8-48c6-912b-585584cbea06, ebd253d8-ca39-4a8a-aa8c-7067f132fe50", + "traceId": "e1f4f63a431941ae96137434ba824ea0", + "evidence": "tenantId=2085987359342055425", + "checkedAt": "2026-08-08T07:11:58.076Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "查询客户海外仓费用配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d0a421cf-6bad-44a7-90ca-73708bdd7511, 987f6acf-0d54-4243-9c20-8cd3b78286f5", + "traceId": "a76b181237ac4279991f76e68decc188", + "evidence": "tenantId=2085987359342055425", + "checkedAt": "2026-08-08T07:11:58.125Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "客户费用配置身份、默认 USD 与9档结构正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d0a421cf-6bad-44a7-90ca-73708bdd7511, 987f6acf-0d54-4243-9c20-8cd3b78286f5", + "traceId": "a76b181237ac4279991f76e68decc188", + "evidence": "ruleId=2085987359469387778, customerId=2085987359342055425, currency=USD, tiers=9", + "checkedAt": "2026-08-08T07:11:58.126Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "按客户查询海外仓费用规则", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987359342055425" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0f83d5cb-81d8-4552-9baa-482b21f16d09, e6f08a39-39ac-48af-b26b-940e0b872e33", + "traceId": "16905a27ddff44a394ae5f42c8a1e856", + "evidence": "tenantId=2085987359342055425", + "checkedAt": "2026-08-08T07:11:58.177Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "每个客户恰好一条规则且规则内恰好9档", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987359342055425" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0f83d5cb-81d8-4552-9baa-482b21f16d09, e6f08a39-39ac-48af-b26b-940e0b872e33", + "traceId": "16905a27ddff44a394ae5f42c8a1e856", + "evidence": "total=1, records=1, tiers=9", + "checkedAt": "2026-08-08T07:11:58.177Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "请求体客户 ID 与路径不一致时安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "客户ID与路径不一致", + "requestId": "91de1e2f-bee8-4b8c-8323-9d54926839a0", + "traceId": "d386b412d111461eb2937c65604b9773", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:11:58.206Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "非法费用类型安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "客户费用必须包含仓租5档和退货仓储费4档", + "requestId": "b7e124b3-d8d7-4402-ad4c-ab7c8d7f167b", + "traceId": "6936ef7b06344f87829ac9cffb722976", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:11:58.239Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "费用类型与计费单位不匹配安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "费用类型和计费单位不匹配", + "requestId": "50911ba2-fdd2-423d-87c0-11c3fb0e49a0", + "traceId": "d4bd4bcee678411fbe2582aa4168099f", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:11:58.279Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "阶梯区间重叠安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "阶梯必须从第1天开始且连续", + "requestId": "f31729e2-1fae-4f71-b1dc-8330639593ce", + "traceId": "6acb98e826734303b973c58755f55de4", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:11:58.312Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "阶梯区间断档安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "阶梯必须从第1天开始且连续", + "requestId": "78582d72-1bf8-444a-af47-427308db0397", + "traceId": "20e3f53de2fe428ab563423940689bb0", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:11:58.347Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "非9档整组提交安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "客户费用必须包含仓租5档和退货仓储费4档", + "requestId": "6169b4b7-79a0-49f2-ab51-1fe81d379336", + "traceId": "2bf1aa5b899740fb89970d50a576aeb2", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:11:58.370Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "负向请求后回查客户费用配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f04344b4-2333-4afd-a4dd-e2a1f66a3362, f512a82d-5265-4969-88b8-3a01faf9dfa3", + "traceId": "1b3ff4dbce264da0b7800459ba044d1f", + "evidence": "", + "checkedAt": "2026-08-08T07:11:58.412Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "所有非法整组请求均未造成部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f04344b4-2333-4afd-a4dd-e2a1f66a3362, f512a82d-5265-4969-88b8-3a01faf9dfa3", + "traceId": "1b3ff4dbce264da0b7800459ba044d1f", + "evidence": "version=0, tiers=9", + "checkedAt": "2026-08-08T07:11:58.412Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "整组修改客户海外仓费用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0521be7d-96e2-469a-bdbf-a9f8629089c4, 44ce2d0c-dc1b-4c61-a232-00276dc949c7", + "traceId": "e22d6bf1d9624ca7b7b1fe7d8385231b", + "evidence": "tenantId=2085987359342055425, tiers=9", + "checkedAt": "2026-08-08T07:11:58.471Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "回查整组修改后的客户费用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ff34e234-c735-4a27-8e38-25e5f11cb7cf, db0d76cd-8238-4029-8468-a7c4e1ff286b", + "traceId": "a9ac9c3a79f24a09884e1c4d9749ad44", + "evidence": "", + "checkedAt": "2026-08-08T07:11:58.505Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "修改后币种、价格、9档及版本整体回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ff34e234-c735-4a27-8e38-25e5f11cb7cf, db0d76cd-8238-4029-8468-a7c4e1ff286b", + "traceId": "a9ac9c3a79f24a09884e1c4d9749ad44", + "evidence": "currency=EUR, version=1, tiers=9", + "checkedAt": "2026-08-08T07:11:58.506Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "编辑后再次按客户查询唯一规则", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987359342055425" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d0067f5e-31c0-4d36-924f-b41f0b08187f, ab4823c9-7b19-41f8-a134-fe7fa0d49b57", + "traceId": "0bafdbdba66544cbad51a08b74780369", + "evidence": "", + "checkedAt": "2026-08-08T07:11:58.535Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "重复初始化结果保持幂等且编辑值未被覆盖", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987359342055425" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d0067f5e-31c0-4d36-924f-b41f0b08187f, ab4823c9-7b19-41f8-a134-fe7fa0d49b57", + "traceId": "0bafdbdba66544cbad51a08b74780369", + "evidence": "total=1, ruleId=2085987359469387778, version=1", + "checkedAt": "2026-08-08T07:11:58.536Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "旧 version 整组保存返回并发冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "A0409", + "message": "费用配置已被修改,请刷新后重试", + "requestId": "ae90d696-2b18-498f-9a0c-9abfab81174f", + "traceId": "280444f99fd84e0c8bf310cf2ea2bae5", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:11:58.573Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "冲突后回查费用配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b56643b5-7c36-4898-a8dc-0d273d9d8c79, 8c9d56cb-b3dc-407c-90e3-867ef63e0dfd", + "traceId": "20ffdfb711d34f019bd8e55b780828af", + "evidence": "", + "checkedAt": "2026-08-08T07:11:58.616Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "冲突未造成部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b56643b5-7c36-4898-a8dc-0d273d9d8c79, 8c9d56cb-b3dc-407c-90e3-867ef63e0dfd", + "traceId": "20ffdfb711d34f019bd8e55b780828af", + "evidence": "version=1, unchanged=true", + "checkedAt": "2026-08-08T07:11:58.616Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "恢复本轮客户费用原始配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "58df45db-66c2-43a9-bd33-24f70cf562eb, e13e8dca-762f-4293-8d0f-7de84a5da3c8", + "traceId": "2c0bc4985a164b3e8e5f7fbe9d35a761", + "evidence": "restore=initial", + "checkedAt": "2026-08-08T07:11:58.680Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "回查恢复后的客户费用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "689eed47-a980-4dce-88a9-1b029dbf2049, d49bc4e7-6cd0-47ae-8a49-f994ede8aab7", + "traceId": "208d5b4525bb431f88bb06a86f93bb7d", + "evidence": "", + "checkedAt": "2026-08-08T07:11:58.720Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "恢复后9档、USD、免费档和无上限档一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "689eed47-a980-4dce-88a9-1b029dbf2049, d49bc4e7-6cd0-47ae-8a49-f994ede8aab7", + "traceId": "208d5b4525bb431f88bb06a86f93bb7d", + "evidence": "currency=USD, version=2, tiers=9", + "checkedAt": "2026-08-08T07:11:58.720Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "错误客户 ID 查询安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/999999999999999999/overseas-storage-fees" + }, + "http": 200, + "code": "A0404", + "message": "海外仓费用不存在", + "requestId": "b094c65b-8a43-44d5-86a1-42df180d9af5", + "traceId": "2f9d44c21c0a4c549eadca74afdbdf34", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:11:58.748Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "清理费用隔离客户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/archive" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7e1c4ef6-f609-4b64-bf91-357768e04b1f, 1a19c372-1148-4af1-a50f-f76869b56ef5", + "traceId": "06ffb8a032a54764b5e034e47ad3cba5", + "evidence": "tenantId=2085987359342055425", + "checkedAt": "2026-08-08T07:11:58.858Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "费用隔离客户清理后停用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants/2085987359342055425/archive" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7e1c4ef6-f609-4b64-bf91-357768e04b1f, 1a19c372-1148-4af1-a50f-f76869b56ef5", + "traceId": "06ffb8a032a54764b5e034e47ad3cba5", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T07:11:58.858Z" + } + ] +} diff --git a/reports/admin-test-env-acceptance-20260808071211.json b/reports/admin-test-env-acceptance-20260808071211.json new file mode 100644 index 000000000..f71332ae3 --- /dev/null +++ b/reports/admin-test-env-acceptance-20260808071211.json @@ -0,0 +1,9608 @@ +{ + "reportName": "后台管理测试环境 HTTP API 验收", + "marker": "ADMIN-API-20260808071211341", + "gateway": "http://8.163.30.128:9000", + "generatedAt": "2026-08-08T07:12:50.546Z", + "startedAt": "2026-08-08T07:12:11.341Z", + "success": false, + "fatal": null, + "summary": { + "total": 515, + "passed": 509, + "failed": 6 + }, + "modules": [ + { + "name": "customers", + "startedAt": "2026-08-08T07:12:11.714Z", + "finishedAt": "2026-08-08T07:12:12.998Z", + "success": true, + "passed": 38, + "failed": 0, + "fatal": null + }, + { + "name": "overseas-storage-fees", + "startedAt": "2026-08-08T07:12:12.999Z", + "finishedAt": "2026-08-08T07:12:14.320Z", + "success": true, + "passed": 29, + "failed": 0, + "fatal": null + }, + { + "name": "system", + "startedAt": "2026-08-08T07:12:14.321Z", + "finishedAt": "2026-08-08T07:12:17.045Z", + "success": true, + "passed": 41, + "failed": 0, + "fatal": null + }, + { + "name": "master-data", + "startedAt": "2026-08-08T07:12:17.046Z", + "finishedAt": "2026-08-08T07:12:19.162Z", + "success": true, + "passed": 42, + "failed": 0, + "fatal": null + }, + { + "name": "orders", + "startedAt": "2026-08-08T07:12:19.163Z", + "finishedAt": "2026-08-08T07:12:24.504Z", + "success": true, + "passed": 49, + "failed": 0, + "fatal": null + }, + { + "name": "pricing", + "startedAt": "2026-08-08T07:12:24.505Z", + "finishedAt": "2026-08-08T07:12:30.965Z", + "success": true, + "passed": 26, + "failed": 0, + "fatal": null + }, + { + "name": "downloads", + "startedAt": "2026-08-08T07:12:30.966Z", + "finishedAt": "2026-08-08T07:12:35.212Z", + "success": true, + "passed": 8, + "failed": 0, + "fatal": null + }, + { + "name": "inbound-weight-ocr", + "startedAt": "2026-08-08T07:12:35.213Z", + "finishedAt": "2026-08-08T07:12:41.731Z", + "success": true, + "passed": 52, + "failed": 0, + "fatal": null + }, + { + "name": "orders-inbound-measurement-fixture", + "startedAt": "2026-08-08T07:12:41.732Z", + "finishedAt": "2026-08-08T07:12:45.273Z", + "success": true, + "passed": 49, + "failed": 0, + "fatal": null + }, + { + "name": "inbound-measurement", + "startedAt": "2026-08-08T07:12:45.274Z", + "finishedAt": "2026-08-08T07:12:46.679Z", + "success": true, + "passed": 28, + "failed": 0, + "fatal": null + }, + { + "name": "supplemental", + "startedAt": "2026-08-08T07:12:46.680Z", + "finishedAt": "2026-08-08T07:12:48.381Z", + "success": true, + "passed": 74, + "failed": 0, + "fatal": null + }, + { + "name": "supplemental-boundaries", + "startedAt": "2026-08-08T07:12:48.382Z", + "finishedAt": "2026-08-08T07:12:49.038Z", + "success": false, + "passed": 14, + "failed": 5, + "fatal": null + }, + { + "name": "ocean-bookings", + "startedAt": "2026-08-08T07:12:49.039Z", + "finishedAt": "2026-08-08T07:12:49.806Z", + "success": true, + "passed": 23, + "failed": 0, + "fatal": null + }, + { + "name": "truck-appointments", + "startedAt": "2026-08-08T07:12:49.807Z", + "finishedAt": "2026-08-08T07:12:50.545Z", + "success": false, + "passed": 35, + "failed": 1, + "fatal": null + } + ], + "scenarios": [ + { + "name": "customer-dimension-rules", + "module": "customers", + "success": true, + "deploymentBlocked": false, + "passed": 13, + "failed": 0 + }, + { + "name": "customer-overseas-storage-fee-lifecycle", + "module": "overseas-storage-fees", + "success": true, + "deploymentBlocked": false, + "passed": 29, + "failed": 0 + }, + { + "name": "price-book-lifecycle", + "module": "pricing", + "success": true, + "deploymentBlocked": false, + "passed": 26, + "failed": 0 + }, + { + "name": "weight-image-recognition-and-confirmation", + "module": "inbound-weight-ocr", + "success": true, + "deploymentBlocked": false, + "passed": 52, + "failed": 0 + }, + { + "name": "mojia-carton-measurement", + "module": "inbound-measurement", + "success": true, + "deploymentBlocked": false, + "passed": 28, + "failed": 0 + }, + { + "name": "admin-boundary-automation", + "module": "supplemental-boundaries", + "success": false, + "deploymentBlocked": true, + "passed": 14, + "failed": 5 + } + ], + "deploymentBlockers": [ + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "托盘/库位真实占用删除保护自动化缺口", + "evidence": "当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "附件引用安全边界自动化缺口", + "evidence": "当前 Controller 无附件上传/引用 API,未伪造附件成功", + "code": null, + "requestId": null, + "traceId": null + } + ], + "createdResources": { + "customer": { + "tenantId": "2085987418452381697", + "marker": "ADMIN-API-20260808071211341", + "contactPhone": "16173131715" + }, + "overseasStorageFeeCustomer": { + "tenantId": "2085987423858839554", + "marker": "ADMIN-API-20260808071211341", + "ownedByModule": true + }, + "systemPermission": { + "id": "2085987429399515137", + "code": "platform:acceptance:808071211341" + }, + "systemRole": { + "id": "2085987430087380994", + "code": "ADMIN_ACCEPT_808071211341", + "finalStatus": "DISABLED", + "retainedBecauseAssigned": true + }, + "systemUser": { + "membershipId": "2085987431689605124", + "username": "admin_accept_808071211341", + "finalStatus": "DISABLED" + }, + "warehouse": { + "id": "2085987441136680961", + "code": "AW808071211341", + "finalStatus": "INACTIVE" + }, + "location": { + "id": "2085987441929404417", + "warehouseId": "2085987441136680961", + "deleted": false + }, + "pallet": { + "id": "2085987443007340545", + "warehouseId": "2085987441136680961", + "deleted": true + }, + "expressCompany": { + "id": "2085987443904921601", + "code": "EX808071211341", + "finalStatus": "INACTIVE" + }, + "partner": { + "id": "2085987444861222913", + "code": "PT808071211341", + "finalStatus": "INACTIVE" + }, + "orders": { + "marker": "ADMIN-API-20260808071211341", + "tenantId": "10001", + "orderId": "2085987453941383169", + "productImageFileId": "2085987452364324865", + "boxTypes": [ + "SMALL", + "MEDIUM", + "LARGE", + "EXTRA_LARGE" + ], + "inboundId": "2085987466526371842", + "orderNo": "FL2085987453941383169", + "inboundCode": "RK-2085987453941383169", + "processStatus": "WAIT_MEASURE", + "taskId": "2085987466501206018" + }, + "ocrInbound": { + "tenantId": "10001", + "inboundId": "2085987466526371842", + "marker": "ADMIN-API-20260808071211341" + }, + "testInbound": { + "tenantId": "10001", + "inboundId": "2085987466526371842", + "marker": "ADMIN-API-20260808071211341" + }, + "priceBookVersion": { + "versionId": "2085987473472139265", + "marker": "ADMIN-API-20260808071211341", + "sourceSha256": "3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab" + }, + "exportTask": { + "id": "2085987499038539778" + }, + "inboundWeightOcr": { + "tenantId": "10001", + "inboundId": "2085987466526371842", + "resultIds": [ + "2085987532007845889", + "2085987541763796994" + ], + "cleaned": true + }, + "orchestrationFixtures": { + "inboundMeasurement": { + "marker": "ADMIN-API-20260808071211341-MOJIA", + "tenantId": "10001", + "orderId": "2085987546899742721", + "inboundId": "2085987554770333697" + } + }, + "inboundMeasurement": { + "marker": "ADMIN-API-20260808071211341-MOJIA", + "tenantId": "10001", + "inboundId": "2085987554770333697", + "measurementId": "2085987562945032193", + "boxCode": "RK-2085987546899742721#4-1", + "finalStatus": "APPROVED" + }, + "oceanBooking": { + "id": "2085987575880265729", + "marker": "ADMIN-API-20260808071211341", + "finalStatus": "RELEASED" + }, + "truckAppointment": { + "id": "2085987579499950082", + "marker": "ADMIN-API-20260808071211341", + "finalStatus": "CANCELLED" + } + }, + "excluded": [ + { + "scope": "dashboard", + "reason": "首页为静态演示数据,不调用后端 API" + }, + { + "scope": "hidden-prototypes", + "reason": "隐藏原型页面尚无已确认后端契约" + } + ], + "securityNote": "报告不保存登录密码、Access Token、Refresh Token、图片二进制或 OCR 原文全文。", + "steps": [ + { + "module": "authentication", + "scenario": null, + "name": "平台管理员登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "771fa58b-a826-4197-a147-f7a65d93bb13, b50a686e-8ca7-4b0a-b5c7-090fad35e5e5", + "traceId": "4bcf4f4d1dd74ba499d96ff4cb812926", + "evidence": "", + "checkedAt": "2026-08-08T07:12:11.714Z" + }, + { + "module": "customers", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16173131715" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "209147f7-5889-4d3a-972b-ba4cd631311c, 6b861ec8-f976-40f0-9a3b-8476b0e99f09", + "traceId": "2b475e41e3d445d2af66b3e1c62cac3d", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T07:12:11.760Z" + }, + { + "module": "customers", + "scenario": null, + "name": "创建客户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "35f42086-a2c4-4b85-b34e-bdece32c475c, aa8a87c0-d80c-468a-a5ba-76613d8da335", + "traceId": "8f6daaf2d4dc47239c1253f785a23db5", + "evidence": "", + "checkedAt": "2026-08-08T07:12:12.152Z" + }, + { + "module": "customers", + "scenario": null, + "name": "创建响应客户字段完整", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "35f42086-a2c4-4b85-b34e-bdece32c475c, aa8a87c0-d80c-468a-a5ba-76613d8da335", + "traceId": "8f6daaf2d4dc47239c1253f785a23db5", + "evidence": "missing=none", + "checkedAt": "2026-08-08T07:12:12.152Z" + }, + { + "module": "customers", + "scenario": null, + "name": "新客户基础字段正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "35f42086-a2c4-4b85-b34e-bdece32c475c, aa8a87c0-d80c-468a-a5ba-76613d8da335", + "traceId": "8f6daaf2d4dc47239c1253f785a23db5", + "evidence": "tenantId=2085987418452381697, status=PROFILE_REQUIRED", + "checkedAt": "2026-08-08T07:12:12.152Z" + }, + { + "module": "customers", + "scenario": "customer-owner-provisioning", + "name": "创建客户生成初始密码", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "35f42086-a2c4-4b85-b34e-bdece32c475c, aa8a87c0-d80c-468a-a5ba-76613d8da335", + "traceId": "8f6daaf2d4dc47239c1253f785a23db5", + "evidence": "generated=true, length=16", + "checkedAt": "2026-08-08T07:12:12.152Z" + }, + { + "module": "customers", + "scenario": "customer-owner-provisioning", + "name": "管理员用户名默认使用联系电话", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "35f42086-a2c4-4b85-b34e-bdece32c475c, aa8a87c0-d80c-468a-a5ba-76613d8da335", + "traceId": "8f6daaf2d4dc47239c1253f785a23db5", + "evidence": "matches=true", + "checkedAt": "2026-08-08T07:12:12.152Z" + }, + { + "module": "customers", + "scenario": null, + "name": "待完善客户的审核字段保持为空", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "35f42086-a2c4-4b85-b34e-bdece32c475c, aa8a87c0-d80c-468a-a5ba-76613d8da335", + "traceId": "8f6daaf2d4dc47239c1253f785a23db5", + "evidence": "creditCode=omitted, approvedAt=omitted", + "checkedAt": "2026-08-08T07:12:12.152Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "新客户尺寸规则可查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2ac5a64b-a327-4be1-8502-8394cd0c3781, 5bbbe350-69a3-4f21-bc1f-56e9006794f2", + "traceId": "d4ac4d42682a486c9adbdd70134e480d", + "evidence": "tenantId=2085987418452381697", + "checkedAt": "2026-08-08T07:12:12.190Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "固定四箱规顺序完整且无重复", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2ac5a64b-a327-4be1-8502-8394cd0c3781, 5bbbe350-69a3-4f21-bc1f-56e9006794f2", + "traceId": "d4ac4d42682a486c9adbdd70134e480d", + "evidence": "count=4, order=SMALL,MEDIUM,LARGE,EXTRA_LARGE", + "checkedAt": "2026-08-08T07:12:12.190Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "四箱规默认内径、加边和备注正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2ac5a64b-a327-4be1-8502-8394cd0c3781, 5bbbe350-69a3-4f21-bc1f-56e9006794f2", + "traceId": "d4ac4d42682a486c9adbdd70134e480d", + "evidence": "defaults=matched", + "checkedAt": "2026-08-08T07:12:12.190Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "客户 ID、规则 ID 为字符串且初始版本为0", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2ac5a64b-a327-4be1-8502-8394cd0c3781, 5bbbe350-69a3-4f21-bc1f-56e9006794f2", + "traceId": "d4ac4d42682a486c9adbdd70134e480d", + "evidence": "groupTenantIdType=string, rows=string/v0,string/v0,string/v0,string/v0", + "checkedAt": "2026-08-08T07:12:12.190Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "默认规则外径与 HALF_UP 三位 CBM 正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2ac5a64b-a327-4be1-8502-8394cd0c3781, 5bbbe350-69a3-4f21-bc1f-56e9006794f2", + "traceId": "d4ac4d42682a486c9adbdd70134e480d", + "evidence": "derivedRows=4", + "checkedAt": "2026-08-08T07:12:12.190Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "PUT 每行只发送约定7字段并整组保存", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2ac5a64b-a327-4be1-8502-8394cd0c3781, 5bbbe350-69a3-4f21-bc1f-56e9006794f2", + "traceId": "d4ac4d42682a486c9adbdd70134e480d", + "evidence": "fields=boxType,innerLengthCm,innerWidthCm,innerHeightCm,edgeAdditionCm,remark,version", + "checkedAt": "2026-08-08T07:12:12.190Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "一次 PUT 保存四条三位小数规则", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a158ca03-da2f-4e96-ab70-7b5a94060a92, 0cca633f-b809-46c4-899a-0a500be27096", + "traceId": "f0c8530b22ab485a8fccd247c5f0f444", + "evidence": "rows=4", + "checkedAt": "2026-08-08T07:12:12.274Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "修改后四行版本+1且派生外径/CBM正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a158ca03-da2f-4e96-ab70-7b5a94060a92, 0cca633f-b809-46c4-899a-0a500be27096", + "traceId": "f0c8530b22ab485a8fccd247c5f0f444", + "evidence": "versions=1,1,1,1", + "checkedAt": "2026-08-08T07:12:12.274Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "旧 version 重放 PUT 返回冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "A0409", + "message": "箱规尺寸配置已被修改,请刷新后重试", + "requestId": "e3b16029-769e-4a14-86c9-b22d09c5dd0a", + "traceId": "2fe73f869146482ea763a0c7a45ea634", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:12:12.302Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "冲突后重新查询四条规则", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0f11e852-a778-45f9-b2c5-bd3b81ab2f0d, 93706480-09ca-4691-b7c3-33f9aeb1cdcd", + "traceId": "6daccaa2b1c04f94a1065a977eb8b127", + "evidence": "", + "checkedAt": "2026-08-08T07:12:12.339Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "冲突请求未造成四行部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0f11e852-a778-45f9-b2c5-bd3b81ab2f0d, 93706480-09ca-4691-b7c3-33f9aeb1cdcd", + "traceId": "6daccaa2b1c04f94a1065a977eb8b127", + "evidence": "unchangedRows=4", + "checkedAt": "2026-08-08T07:12:12.339Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "恢复本轮修改前的四箱规配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b54e8ba1-c6a7-4797-b1e9-b884fefef5f0, 1d324a24-1dbf-4d21-9a77-ae0b591787cb", + "traceId": "99097666a7b74fd4b3c9708a6839a0dd", + "evidence": "restore=original-values", + "checkedAt": "2026-08-08T07:12:12.379Z" + }, + { + "module": "customers", + "scenario": "customer-dimension-rules", + "name": "尺寸规则恢复后回显与初始值一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b54e8ba1-c6a7-4797-b1e9-b884fefef5f0, 1d324a24-1dbf-4d21-9a77-ae0b591787cb", + "traceId": "99097666a7b74fd4b3c9708a6839a0dd", + "evidence": "restoredRows=4", + "checkedAt": "2026-08-08T07:12:12.379Z" + }, + { + "module": "customers", + "scenario": null, + "name": "查询客户列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants?page=1&size=20&keyword=%E5%90%8E%E5%8F%B0%E5%AE%A2%E6%88%B7%E9%AA%8C%E6%94%B6-808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5058191c-4f29-43b9-a970-1566099ef63c, 591b5df2-c304-4f6b-b70d-5b441cf32eec", + "traceId": "bd5ee5a4de044b2eb78b8ce597b6626a", + "evidence": "", + "checkedAt": "2026-08-08T07:12:12.488Z" + }, + { + "module": "customers", + "scenario": null, + "name": "列表包含新客户且字段完整", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants?page=1&size=20&keyword=%E5%90%8E%E5%8F%B0%E5%AE%A2%E6%88%B7%E9%AA%8C%E6%94%B6-808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5058191c-4f29-43b9-a970-1566099ef63c, 591b5df2-c304-4f6b-b70d-5b441cf32eec", + "traceId": "bd5ee5a4de044b2eb78b8ce597b6626a", + "evidence": "found=true, missing=none", + "checkedAt": "2026-08-08T07:12:12.488Z" + }, + { + "module": "customers", + "scenario": null, + "name": "查询客户详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f37004bc-4cfa-4eb1-a1ae-fd38f4c5b823, 3d1bc793-7354-4fb7-9536-2abf12629de7", + "traceId": "07941afe7fba47258553684c79a967da", + "evidence": "", + "checkedAt": "2026-08-08T07:12:12.526Z" + }, + { + "module": "customers", + "scenario": null, + "name": "客户详情基本信息正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f37004bc-4cfa-4eb1-a1ae-fd38f4c5b823, 3d1bc793-7354-4fb7-9536-2abf12629de7", + "traceId": "07941afe7fba47258553684c79a967da", + "evidence": "tenantId=2085987418452381697", + "checkedAt": "2026-08-08T07:12:12.526Z" + }, + { + "module": "customers", + "scenario": null, + "name": "编辑客户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "82f2b39a-da6f-4e47-b020-a5030c3683af, 4f3c3f3b-83fa-49d7-a051-cde52251613e", + "traceId": "4f10c572f2be4a85af57170bc248f6a7", + "evidence": "", + "checkedAt": "2026-08-08T07:12:12.591Z" + }, + { + "module": "customers", + "scenario": null, + "name": "客户编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "82f2b39a-da6f-4e47-b020-a5030c3683af, 4f3c3f3b-83fa-49d7-a051-cde52251613e", + "traceId": "4f10c572f2be4a85af57170bc248f6a7", + "evidence": "tenantId=2085987418452381697", + "checkedAt": "2026-08-08T07:12:12.591Z" + }, + { + "module": "customers", + "scenario": null, + "name": "回查客户编辑结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0a756389-6974-43d5-946b-da3da1e6f7f1, 948d7789-f1a3-42bf-a3c9-60ce4e3b64bc", + "traceId": "278a58ab524c46e398976e37c9fda582", + "evidence": "", + "checkedAt": "2026-08-08T07:12:12.618Z" + }, + { + "module": "customers", + "scenario": null, + "name": "客户编辑已持久化", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0a756389-6974-43d5-946b-da3da1e6f7f1, 948d7789-f1a3-42bf-a3c9-60ce4e3b64bc", + "traceId": "278a58ab524c46e398976e37c9fda582", + "evidence": "tenantId=2085987418452381697", + "checkedAt": "2026-08-08T07:12:12.618Z" + }, + { + "module": "customers", + "scenario": null, + "name": "业务概况查询资质", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987418452381697/qualifications" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "dabb1a6a-3cba-46c4-b4ff-5715e3ac18c9, 747ec198-9839-41aa-a70a-957fd1484992", + "traceId": "ffba52164b744c2ebbe363c63e72699f", + "evidence": "", + "checkedAt": "2026-08-08T07:12:12.652Z" + }, + { + "module": "customers", + "scenario": null, + "name": "资质概况结构正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987418452381697/qualifications" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "dabb1a6a-3cba-46c4-b4ff-5715e3ac18c9, 747ec198-9839-41aa-a70a-957fd1484992", + "traceId": "ffba52164b744c2ebbe363c63e72699f", + "evidence": "count=0", + "checkedAt": "2026-08-08T07:12:12.652Z" + }, + { + "module": "customers", + "scenario": null, + "name": "业务概况查询成员", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987418452381697/members" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "47de575e-2ed2-4c71-a88f-310616250893, 89568cb2-440a-438b-98e5-4ab3ea7754e2", + "traceId": "689e329177b24e4eb75442fd40d87f7e", + "evidence": "", + "checkedAt": "2026-08-08T07:12:12.690Z" + }, + { + "module": "customers", + "scenario": "customer-owner-provisioning", + "name": "联系电话账号是企业管理员", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987418452381697/members" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "47de575e-2ed2-4c71-a88f-310616250893, 89568cb2-440a-438b-98e5-4ab3ea7754e2", + "traceId": "689e329177b24e4eb75442fd40d87f7e", + "evidence": "ownerFound=true, matches=true", + "checkedAt": "2026-08-08T07:12:12.690Z" + }, + { + "module": "customers", + "scenario": null, + "name": "业务概况查询运单数量", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/tenant-counts?tenantIds=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "897f5c15-3fd4-4ad6-9750-79beea4452c1, 794e42eb-cb11-4d8c-b2cb-f643b9203d07", + "traceId": "617d6ad525804324bf93eaa74f55ec00", + "evidence": "", + "checkedAt": "2026-08-08T07:12:12.799Z" + }, + { + "module": "customers", + "scenario": null, + "name": "业务概况返回当前客户运单数", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/tenant-counts?tenantIds=2085987418452381697" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "897f5c15-3fd4-4ad6-9750-79beea4452c1, 794e42eb-cb11-4d8c-b2cb-f643b9203d07", + "traceId": "617d6ad525804324bf93eaa74f55ec00", + "evidence": "orderCount=0", + "checkedAt": "2026-08-08T07:12:12.799Z" + }, + { + "module": "customers", + "scenario": null, + "name": "查询客户运单记录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg?tenantId=2085987418452381697&page=1&size=10" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8bd1c79c-e6bd-40ad-8c1a-06851953a1c8, e7e25af9-777b-450d-afa9-38b7dfb0713e", + "traceId": "60e3ac02b8af41168c189c1fc757a58b", + "evidence": "", + "checkedAt": "2026-08-08T07:12:12.860Z" + }, + { + "module": "customers", + "scenario": null, + "name": "运单记录分页结构正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg?tenantId=2085987418452381697&page=1&size=10" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8bd1c79c-e6bd-40ad-8c1a-06851953a1c8, e7e25af9-777b-450d-afa9-38b7dfb0713e", + "traceId": "60e3ac02b8af41168c189c1fc757a58b", + "evidence": "records=0, total=0", + "checkedAt": "2026-08-08T07:12:12.860Z" + }, + { + "module": "customers", + "scenario": "customer-draft-archive", + "name": "归档测试客户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants/2085987418452381697/archive" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d88acbc2-73b1-4837-aebd-4d969ea01ff1, b840fcf9-b00b-4171-89ae-8b87f1872e73", + "traceId": "f3592940e131456daf9f9ed660a83a47", + "evidence": "tenantId=2085987418452381697", + "checkedAt": "2026-08-08T07:12:12.998Z" + }, + { + "module": "customers", + "scenario": "customer-draft-archive", + "name": "测试客户归档后处于停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants/2085987418452381697/archive" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d88acbc2-73b1-4837-aebd-4d969ea01ff1, b840fcf9-b00b-4171-89ae-8b87f1872e73", + "traceId": "f3592940e131456daf9f9ed660a83a47", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T07:12:12.998Z" + }, + { + "module": "overseas-storage-fees", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16173133000" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "984f360b-dfb1-4ab6-be70-66ef881ba75e, 98df9835-a453-4fcd-a4e8-c27dfa26ff6a", + "traceId": "cc3f1ec0b1394e5a9ceb41e1d6703e35", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T07:12:13.042Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "创建海外仓费用隔离客户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1da80181-7382-49e3-b28f-600417ff68f6, 92208736-9ac0-4068-b835-fd5fb6cce94b", + "traceId": "35ad2fd2b59e434d8a71e777bf8c8130", + "evidence": "", + "checkedAt": "2026-08-08T07:12:13.460Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "海外仓费用隔离客户创建并带 marker", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1da80181-7382-49e3-b28f-600417ff68f6, 92208736-9ac0-4068-b835-fd5fb6cce94b", + "traceId": "35ad2fd2b59e434d8a71e777bf8c8130", + "evidence": "tenantId=2085987423858839554", + "checkedAt": "2026-08-08T07:12:13.460Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "查询客户海外仓费用配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "14baf03d-7b9a-42ef-94c2-a5d1c3fe6376, 82baebaa-5190-44ba-8c8c-d62683415690", + "traceId": "7534a5e8aad04456b858a9c811e6a0ae", + "evidence": "tenantId=2085987423858839554", + "checkedAt": "2026-08-08T07:12:13.503Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "客户费用配置身份、默认 USD 与9档结构正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "14baf03d-7b9a-42ef-94c2-a5d1c3fe6376, 82baebaa-5190-44ba-8c8c-d62683415690", + "traceId": "7534a5e8aad04456b858a9c811e6a0ae", + "evidence": "ruleId=2085987423981977602, customerId=2085987423858839554, currency=USD, tiers=9", + "checkedAt": "2026-08-08T07:12:13.504Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "按客户查询海外仓费用规则", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987423858839554" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9b2df937-fe73-4dff-bcda-4ed7ba855f38, 7d2520a6-8d28-4ce5-89ed-a4dcefa88d60", + "traceId": "024fe3e7fb834f288ecae5f8238c294c", + "evidence": "tenantId=2085987423858839554", + "checkedAt": "2026-08-08T07:12:13.551Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "每个客户恰好一条规则且规则内恰好9档", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987423858839554" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9b2df937-fe73-4dff-bcda-4ed7ba855f38, 7d2520a6-8d28-4ce5-89ed-a4dcefa88d60", + "traceId": "024fe3e7fb834f288ecae5f8238c294c", + "evidence": "total=1, records=1, tiers=9", + "checkedAt": "2026-08-08T07:12:13.551Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "请求体客户 ID 与路径不一致时安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "客户ID与路径不一致", + "requestId": "336927da-f1a6-4154-8fb6-4755a481482e", + "traceId": "87826e6172bb403bbb072bdc4fea08d1", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:13.587Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "非法费用类型安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "客户费用必须包含仓租5档和退货仓储费4档", + "requestId": "cf823743-2a36-4869-895d-40a960aef020", + "traceId": "19a1f6aa16be45e2b44ce4dc2a3f30ae", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:13.621Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "费用类型与计费单位不匹配安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "费用类型和计费单位不匹配", + "requestId": "0e919915-36b2-4914-9aa6-2a7ff34c2823", + "traceId": "a823b03a1c3a4cafa4a792a333a63c27", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:13.664Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "阶梯区间重叠安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "阶梯必须从第1天开始且连续", + "requestId": "08fec9ad-348f-454c-abd9-bbe47bd8dfdb", + "traceId": "5cf6a08a713a474a9e9d532458c2ecbe", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:13.712Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "阶梯区间断档安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "阶梯必须从第1天开始且连续", + "requestId": "e22d1175-25e8-42de-9a6b-8c53fc03e4c8", + "traceId": "1b741d27477b487d946d810d2d5eaa0e", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:13.758Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "非9档整组提交安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "A0422", + "message": "客户费用必须包含仓租5档和退货仓储费4档", + "requestId": "a1f32624-60c0-4e9e-a81b-39e61cc05921", + "traceId": "f864d30aa25b410da6b5dbd58e9ba97f", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:13.789Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "负向请求后回查客户费用配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7a4bb15a-dbd4-4cda-9c74-5d3a407086f1, 79f7fe62-d8f5-4af2-8365-1123a726f130", + "traceId": "b3c3336690e44c52ad441782db876fab", + "evidence": "", + "checkedAt": "2026-08-08T07:12:13.845Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "所有非法整组请求均未造成部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7a4bb15a-dbd4-4cda-9c74-5d3a407086f1, 79f7fe62-d8f5-4af2-8365-1123a726f130", + "traceId": "b3c3336690e44c52ad441782db876fab", + "evidence": "version=0, tiers=9", + "checkedAt": "2026-08-08T07:12:13.845Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "整组修改客户海外仓费用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "160e8b83-042f-452e-9d20-ad8f3167de7a, 93dd37c3-1ae0-4f96-9636-2ede2754e6da", + "traceId": "600c1f9f8d5a4937884cf154ecc321c2", + "evidence": "tenantId=2085987423858839554, tiers=9", + "checkedAt": "2026-08-08T07:12:13.910Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "回查整组修改后的客户费用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c210b084-0405-4fc7-a3ab-8efbabc345f1, 8e011ca9-9157-46d0-b1f1-d4834d34b29c", + "traceId": "e4f2bc97081e4ef3b161eebdcfb6594c", + "evidence": "", + "checkedAt": "2026-08-08T07:12:13.938Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "修改后币种、价格、9档及版本整体回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c210b084-0405-4fc7-a3ab-8efbabc345f1, 8e011ca9-9157-46d0-b1f1-d4834d34b29c", + "traceId": "e4f2bc97081e4ef3b161eebdcfb6594c", + "evidence": "currency=EUR, version=1, tiers=9", + "checkedAt": "2026-08-08T07:12:13.938Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "编辑后再次按客户查询唯一规则", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987423858839554" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "af6f6f07-73ba-4b58-8733-0d2676a1ad63, 8f23ac51-b592-4304-b075-605a44613892", + "traceId": "7277560c0d444962bce19c414cfd9187", + "evidence": "", + "checkedAt": "2026-08-08T07:12:13.982Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "重复初始化结果保持幂等且编辑值未被覆盖", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987423858839554" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "af6f6f07-73ba-4b58-8733-0d2676a1ad63, 8f23ac51-b592-4304-b075-605a44613892", + "traceId": "7277560c0d444962bce19c414cfd9187", + "evidence": "total=1, ruleId=2085987423981977602, version=1", + "checkedAt": "2026-08-08T07:12:13.982Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "旧 version 整组保存返回并发冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "A0409", + "message": "费用配置已被修改,请刷新后重试", + "requestId": "2000ed75-c4ee-42bb-897c-4bb871b4c88c", + "traceId": "45eff089aab94a418a9695818c10a825", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:12:14.031Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "冲突后回查费用配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f6eb3d1e-5e54-40ae-a931-29c34b24c579, 33683591-cb92-45e7-a0fa-7b55fbd50cba", + "traceId": "ba3d6e0be4f54c76a94af93de8351955", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.074Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "冲突未造成部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f6eb3d1e-5e54-40ae-a931-29c34b24c579, 33683591-cb92-45e7-a0fa-7b55fbd50cba", + "traceId": "ba3d6e0be4f54c76a94af93de8351955", + "evidence": "version=1, unchanged=true", + "checkedAt": "2026-08-08T07:12:14.074Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "恢复本轮客户费用原始配置", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ddf25547-3098-4bd3-a4a9-a6acd7a6f520, 9e026fd3-a0db-474f-954d-077d52826632", + "traceId": "66a0258def03468d99e70709489c0d4c", + "evidence": "restore=initial", + "checkedAt": "2026-08-08T07:12:14.137Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "回查恢复后的客户费用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6bb8e46f-2e2b-4425-9c71-1744ec3365c1, 87ea6b88-9328-45b9-94b8-0a6ed41a301b", + "traceId": "b5ef4cdab89f44e88f2ddce381353917", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.171Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "恢复后9档、USD、免费档和无上限档一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/overseas-storage-fees" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6bb8e46f-2e2b-4425-9c71-1744ec3365c1, 87ea6b88-9328-45b9-94b8-0a6ed41a301b", + "traceId": "b5ef4cdab89f44e88f2ddce381353917", + "evidence": "currency=USD, version=2, tiers=9", + "checkedAt": "2026-08-08T07:12:14.172Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "错误客户 ID 查询安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/999999999999999999/overseas-storage-fees" + }, + "http": 200, + "code": "A0404", + "message": "海外仓费用不存在", + "requestId": "02a36918-efc4-4495-8c89-32afebbecd8f", + "traceId": "d5bf3ee1f620492a9824a88878e17512", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:12:14.212Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "清理费用隔离客户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/archive" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "53989c8f-12ec-4c3b-8064-8eabb606d77b, c17f3262-f32e-467d-a333-e302e1102682", + "traceId": "f6cd626db50e45ff87d376ea490d60d1", + "evidence": "tenantId=2085987423858839554", + "checkedAt": "2026-08-08T07:12:14.320Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "费用隔离客户清理后停用", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants/2085987423858839554/archive" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "53989c8f-12ec-4c3b-8064-8eabb606d77b, c17f3262-f32e-467d-a333-e302e1102682", + "traceId": "f6cd626db50e45ff87d376ea490d60d1", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T07:12:14.320Z" + }, + { + "module": "system", + "scenario": null, + "name": "查询菜单权限资源", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/permissions" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "056c092f-0a8e-4ddc-b2b8-afa44c3dc5ac, e99efc92-4bfd-48ad-92f5-9ccfd6b0c3ad", + "traceId": "0c9c445f3e724b1088fab360906cce3e", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.371Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限资源返回数组", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/permissions" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "056c092f-0a8e-4ddc-b2b8-afa44c3dc5ac, e99efc92-4bfd-48ad-92f5-9ccfd6b0c3ad", + "traceId": "0c9c445f3e724b1088fab360906cce3e", + "evidence": "count=151", + "checkedAt": "2026-08-08T07:12:14.371Z" + }, + { + "module": "system", + "scenario": null, + "name": "创建自定义权限资源", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/permissions" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7ae20a67-0cc0-49a6-ab25-b22e34806c41, fa2073bd-43de-46aa-a9b2-53bd51e5a22d", + "traceId": "282afc586f2348efa1ed3f9f6da63a85", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.410Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限创建字段正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/permissions" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7ae20a67-0cc0-49a6-ab25-b22e34806c41, fa2073bd-43de-46aa-a9b2-53bd51e5a22d", + "traceId": "282afc586f2348efa1ed3f9f6da63a85", + "evidence": "permissionId=2085987429399515137", + "checkedAt": "2026-08-08T07:12:14.410Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑自定义权限资源", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085987429399515137" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "02e0f273-aeb1-43a2-b65f-2ed0a4aed125, dc647126-ba8b-4825-a81a-5c58cd24464c", + "traceId": "257798df03294a3b9c92e89596f9a971", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.454Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085987429399515137" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "02e0f273-aeb1-43a2-b65f-2ed0a4aed125, dc647126-ba8b-4825-a81a-5c58cd24464c", + "traceId": "257798df03294a3b9c92e89596f9a971", + "evidence": "permissionId=2085987429399515137", + "checkedAt": "2026-08-08T07:12:14.454Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用自定义权限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085987429399515137/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "597e2207-8116-4842-a9b5-c8bf04b7897f, 54b59992-e976-4aa3-95c5-912c3df556b6", + "traceId": "5969653d6bb0467cab72e6e257eb504a", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.495Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限状态回显 DISABLED", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085987429399515137/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "597e2207-8116-4842-a9b5-c8bf04b7897f, 54b59992-e976-4aa3-95c5-912c3df556b6", + "traceId": "5969653d6bb0467cab72e6e257eb504a", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T07:12:14.495Z" + }, + { + "module": "system", + "scenario": null, + "name": "启用自定义权限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085987429399515137/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5480e3bd-9c87-40b9-a50b-0216cac247d3, 12b812fd-52c3-445a-9725-d6d8b446176b", + "traceId": "7f15120d500145869b5a78eeb4253ca7", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.537Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限状态回显 ACTIVE", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085987429399515137/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5480e3bd-9c87-40b9-a50b-0216cac247d3, 12b812fd-52c3-445a-9725-d6d8b446176b", + "traceId": "7f15120d500145869b5a78eeb4253ca7", + "evidence": "status=ACTIVE", + "checkedAt": "2026-08-08T07:12:14.537Z" + }, + { + "module": "system", + "scenario": null, + "name": "创建平台自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/roles" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e8fb6899-8af5-4117-b6dd-d04971092cd3, a91e7ad6-5146-4fac-9da2-18d0fa5c0503", + "traceId": "443daa2402b547559ccbccde1beec427", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.572Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色创建字段正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/roles" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e8fb6899-8af5-4117-b6dd-d04971092cd3, a91e7ad6-5146-4fac-9da2-18d0fa5c0503", + "traceId": "443daa2402b547559ccbccde1beec427", + "evidence": "roleId=2085987430087380994", + "checkedAt": "2026-08-08T07:12:14.572Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑平台自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085987430087380994" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e7f6ee30-d609-4864-9279-8a0270b5e0c5, b762a391-685b-450c-9cf4-fbf5c734e7ee", + "traceId": "c3e0852873c8437594c27cc7067aa26a", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.624Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085987430087380994" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e7f6ee30-d609-4864-9279-8a0270b5e0c5, b762a391-685b-450c-9cf4-fbf5c734e7ee", + "traceId": "c3e0852873c8437594c27cc7067aa26a", + "evidence": "roleId=2085987430087380994", + "checkedAt": "2026-08-08T07:12:14.624Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色全量保存权限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/permissions" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "29077630-565a-427f-a6d9-92d8ac847728, 3c3ddaf6-8aa4-46f6-a4f8-f92fbc2bb77d", + "traceId": "a7e9bcdf37714fb188de4af7c0cbebf6", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.677Z" + }, + { + "module": "system", + "scenario": null, + "name": "回查平台角色列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/roles" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8032896a-eee7-43f7-958a-327b0461c839, 7beaf869-6718-43c3-8027-3ee87e311383", + "traceId": "b100f7f4757e4f0aa6a00c961bac66f8", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.730Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色权限 ID 正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/roles" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8032896a-eee7-43f7-958a-327b0461c839, 7beaf869-6718-43c3-8027-3ee87e311383", + "traceId": "b100f7f4757e4f0aa6a00c961bac66f8", + "evidence": "permissionIds=2085987429399515137", + "checkedAt": "2026-08-08T07:12:14.730Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085987430087380994/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "832d87af-ec4c-485f-a1a3-2877cd7ba8f0, 0902adef-fb85-4bd0-94a1-6e7b199448a2", + "traceId": "d9bf93082c3a4b5ebac132dd841cae88", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.778Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色状态回显 DISABLED", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085987430087380994/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "832d87af-ec4c-485f-a1a3-2877cd7ba8f0, 0902adef-fb85-4bd0-94a1-6e7b199448a2", + "traceId": "d9bf93082c3a4b5ebac132dd841cae88", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T07:12:14.778Z" + }, + { + "module": "system", + "scenario": null, + "name": "启用自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085987430087380994/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b958eebf-31b3-4b27-acda-c42c8252f4ba, 0e51dd1d-b2f2-42cd-8923-da53db139890", + "traceId": "9571fe72190041df819dc85a35cdf144", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.822Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色状态回显 ACTIVE", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085987430087380994/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b958eebf-31b3-4b27-acda-c42c8252f4ba, 0e51dd1d-b2f2-42cd-8923-da53db139890", + "traceId": "9571fe72190041df819dc85a35cdf144", + "evidence": "status=ACTIVE", + "checkedAt": "2026-08-08T07:12:14.822Z" + }, + { + "module": "system", + "scenario": null, + "name": "查询内部用户可选平台角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/users/options" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4c1b9bb6-b12c-4026-af1c-4d651bb89afe, 45da363c-6e57-4843-9e9a-e597a06926c3", + "traceId": "56f3cb53936748a1bf4b2f67892a10c5", + "evidence": "", + "checkedAt": "2026-08-08T07:12:14.866Z" + }, + { + "module": "system", + "scenario": null, + "name": "用户选项包含平台与测试角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/users/options" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4c1b9bb6-b12c-4026-af1c-4d651bb89afe, 45da363c-6e57-4843-9e9a-e597a06926c3", + "traceId": "56f3cb53936748a1bf4b2f67892a10c5", + "evidence": "tenants=1, roles=18", + "checkedAt": "2026-08-08T07:12:14.867Z" + }, + { + "module": "system", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16173134867" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c46792c0-aa6c-454b-a9fd-5ae6bc7c74d2, 1b9b4fd5-2d80-4fa0-81e6-be4182b2e76c", + "traceId": "3b6bfded2ab04eaea0f04c8a1811c720", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T07:12:14.909Z" + }, + { + "module": "system", + "scenario": null, + "name": "创建平台内部用户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/users" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2036069a-edfb-43f0-9427-6b45ff7d8e21, 46ef74f1-1e72-4e9a-9144-290729da0fb7", + "traceId": "69288a45da7f49f48305bf87596c44a1", + "evidence": "", + "checkedAt": "2026-08-08T07:12:15.280Z" + }, + { + "module": "system", + "scenario": null, + "name": "内部用户账号、平台范围和角色正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/users" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2036069a-edfb-43f0-9427-6b45ff7d8e21, 46ef74f1-1e72-4e9a-9144-290729da0fb7", + "traceId": "69288a45da7f49f48305bf87596c44a1", + "evidence": "membershipId=2085987431689605124", + "checkedAt": "2026-08-08T07:12:15.280Z" + }, + { + "module": "system", + "scenario": null, + "name": "按账号查询平台内部用户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/users?page=1&size=20&keyword=admin_accept_808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ba71eaf1-ef03-4e18-bfd3-93a61ac68d7a, c78e1b54-9c00-4370-aef2-408723280bbb", + "traceId": "4ba129e49acd49cea412ea4b35cccd7c", + "evidence": "", + "checkedAt": "2026-08-08T07:12:15.336Z" + }, + { + "module": "system", + "scenario": null, + "name": "用户列表包含新账号且字段完整", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/users?page=1&size=20&keyword=admin_accept_808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ba71eaf1-ef03-4e18-bfd3-93a61ac68d7a, c78e1b54-9c00-4370-aef2-408723280bbb", + "traceId": "4ba129e49acd49cea412ea4b35cccd7c", + "evidence": "records=1, missing=none, lastLoginAt=omitted", + "checkedAt": "2026-08-08T07:12:15.336Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑平台内部用户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085987431689605124" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9f828f82-333d-4d78-9bdd-a44cc8f19ee0, 0b766f60-73bf-4712-958c-85964823b744", + "traceId": "5753f9dbe8594aefaabdd8ef966522ce", + "evidence": "", + "checkedAt": "2026-08-08T07:12:15.487Z" + }, + { + "module": "system", + "scenario": null, + "name": "用户编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085987431689605124" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9f828f82-333d-4d78-9bdd-a44cc8f19ee0, 0b766f60-73bf-4712-958c-85964823b744", + "traceId": "5753f9dbe8594aefaabdd8ef966522ce", + "evidence": "membershipId=2085987431689605124", + "checkedAt": "2026-08-08T07:12:15.487Z" + }, + { + "module": "system", + "scenario": null, + "name": "新建内部用户可使用初始密码登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "78470170-1737-4835-8d94-e9c062419afe, 47d9c276-4105-4629-8a32-e0a43e1b7144", + "traceId": "40c9c2d52f2e4500b0c81f322e3f791a", + "evidence": "username=admin_accept_808071211341", + "checkedAt": "2026-08-08T07:12:15.839Z" + }, + { + "module": "system", + "scenario": null, + "name": "重置平台内部用户密码", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085987431689605124/password" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7932eaec-ac6c-4a5c-b97b-8f517661e569, 32381f46-d218-4d6e-8a28-52c6e25a9543", + "traceId": "02b3ccc24b5145928a044f94d3aae06e", + "evidence": "", + "checkedAt": "2026-08-08T07:12:16.240Z" + }, + { + "module": "system", + "scenario": null, + "name": "内部用户使用重置密码登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6f2a1f37-2cbb-44b2-bac1-2a2b9a4804a9, c84c510a-28c6-4fb0-862a-db78a2a53e32", + "traceId": "ee676c1652bd4f33b33fe1b8013116bf", + "evidence": "username=admin_accept_808071211341", + "checkedAt": "2026-08-08T07:12:16.575Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用平台内部用户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085987431689605124/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8901f9dd-98c9-45f3-8f4c-f239d392bbfa, a6446a97-285a-4ce3-b413-2c54b7d4e00a", + "traceId": "f61da34eb9b2446e9c60ae633c2a34dc", + "evidence": "", + "checkedAt": "2026-08-08T07:12:16.712Z" + }, + { + "module": "system", + "scenario": null, + "name": "内部用户停用状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085987431689605124/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8901f9dd-98c9-45f3-8f4c-f239d392bbfa, a6446a97-285a-4ce3-b413-2c54b7d4e00a", + "traceId": "f61da34eb9b2446e9c60ae633c2a34dc", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T07:12:16.712Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用用户禁止登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "A0403", + "message": "账号已禁用", + "requestId": "122cbcc4-d661-4296-9d7f-d9053995f496", + "traceId": "f252083766b04a98a0cc8187fd980b47", + "evidence": "HTTP=200, code=A0403", + "checkedAt": "2026-08-08T07:12:16.745Z" + }, + { + "module": "system", + "scenario": null, + "name": "清空测试角色权限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/permissions" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d15b76fb-7c0e-4457-a6bc-af71e6f97985, 4c5ce758-cc27-43e4-bc77-0add78940c07", + "traceId": "85a6422efb234332bc7cd94c8e5a08ec", + "evidence": "", + "checkedAt": "2026-08-08T07:12:16.863Z" + }, + { + "module": "system", + "scenario": "system-role-protection", + "name": "已分配成员的角色禁止删除", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/iam/roles/2085987430087380994" + }, + "http": 200, + "code": "A0409", + "message": "角色已分配给成员,不能删除", + "requestId": "0c754461-5ae2-435c-b12f-68c9d1548558", + "traceId": "a5bfc26186764255a11ae4d7ea53bdb1", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:12:16.894Z" + }, + { + "module": "system", + "scenario": null, + "name": "清理时停用测试角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085987430087380994/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b0fe7f86-1f8d-4f98-9b6d-43a327820d98, 963f85e6-5d33-4d87-9fed-37709499eeff", + "traceId": "b096698cef50435b88899d6b7177cb01", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.010Z" + }, + { + "module": "system", + "scenario": null, + "name": "保留测试角色处于停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085987430087380994/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b0fe7f86-1f8d-4f98-9b6d-43a327820d98, 963f85e6-5d33-4d87-9fed-37709499eeff", + "traceId": "b096698cef50435b88899d6b7177cb01", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T07:12:17.010Z" + }, + { + "module": "system", + "scenario": null, + "name": "删除临时权限资源", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/iam/permissions/2085987429399515137" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "40a5983b-a8ac-45e6-8958-981701f33834, 84cfc8a5-8de8-42de-9040-c005add954c1", + "traceId": "3f9f0ac5ebd3458f9d6c44acf21dbc91", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.045Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询平台仓库列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=20" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b0bdf830-62d9-4800-a40a-4470b3a8f28a, 9b7aa32a-40cf-418b-a776-40ee7de8c8f3", + "traceId": "d4b2f185f9cd44b5b27f67737d5f4cd5", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.092Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "仓库列表分页结构正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=20" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b0bdf830-62d9-4800-a40a-4470b3a8f28a, 9b7aa32a-40cf-418b-a776-40ee7de8c8f3", + "traceId": "d4b2f185f9cd44b5b27f67737d5f4cd5", + "evidence": "total=281", + "checkedAt": "2026-08-08T07:12:17.092Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "创建平台公共仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/warehouse-admin" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "187972fe-dcf0-472f-82f6-b0916f9467dc, 15d184b6-af11-4480-bf8d-ee89c1605d12", + "traceId": "cd524136891543e6a66d469fc57d9407", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.219Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "仓库创建返回字符串兼容 ID", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/warehouse-admin" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "187972fe-dcf0-472f-82f6-b0916f9467dc, 15d184b6-af11-4480-bf8d-ee89c1605d12", + "traceId": "cd524136891543e6a66d469fc57d9407", + "evidence": "warehouseId=2085987441136680961", + "checkedAt": "2026-08-08T07:12:17.219Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询平台仓库详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085987441136680961?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "bc3c02b1-5da9-43bb-97f9-26989fd9d3eb, 4c7115b5-b074-479b-9112-591b569021a8", + "traceId": "be68192c99324b5da43b412662275b42", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.260Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "仓库详情、地址和能力正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085987441136680961?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "bc3c02b1-5da9-43bb-97f9-26989fd9d3eb, 4c7115b5-b074-479b-9112-591b569021a8", + "traceId": "be68192c99324b5da43b412662275b42", + "evidence": "addresses=1, capabilities=1", + "checkedAt": "2026-08-08T07:12:17.260Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑平台仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/warehouse-admin/2085987441136680961?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4f0e7515-1c31-43c1-8850-335f0336a2af, 7981a625-1e8f-44cd-a470-21bf5c716aa4", + "traceId": "f091d68996254fc4a96732d8544d799b", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.313Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的平台仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085987441136680961?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d4310c6b-ea34-472a-bcd2-0e82433bbe38, 2dcff7af-2fd1-4b17-8670-bf42cc1bdc20", + "traceId": "98ca7777bef74138936aa54d4b172a8d", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.340Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "仓库编辑已持久化", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085987441136680961?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d4310c6b-ea34-472a-bcd2-0e82433bbe38, 2dcff7af-2fd1-4b17-8670-bf42cc1bdc20", + "traceId": "98ca7777bef74138936aa54d4b172a8d", + "evidence": "warehouseId=2085987441136680961", + "checkedAt": "2026-08-08T07:12:17.340Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "创建仓库库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/locations?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "291b831b-e056-4a19-baf8-b0c8a4ca9ff3, 7d980363-363c-4083-8d9e-1ff6f41b8e31", + "traceId": "5de6f0d5177d47c1bccd9b06bd9df69c", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.394Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询库位详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085987441929404417?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c568e31f-3a69-4cf9-b67a-b1e6658b8ab7, 58a9352f-a0a6-4af4-a3d5-a6eec48ee005", + "traceId": "33aad4a3856e419b96305a5b61f6b6a6", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.434Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "库位详情关联正确仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085987441929404417?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c568e31f-3a69-4cf9-b67a-b1e6658b8ab7, 58a9352f-a0a6-4af4-a3d5-a6eec48ee005", + "traceId": "33aad4a3856e419b96305a5b61f6b6a6", + "evidence": "locationId=2085987441929404417", + "checkedAt": "2026-08-08T07:12:17.434Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085987441929404417?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "588c1286-3a42-4138-a547-8af9df18ea34, ee3d6dd9-7019-411b-b87e-930fe0ef0d94", + "traceId": "e53871230567453c9735e69979233cf9", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.478Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085987441929404417?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3366ab99-f8e8-46e5-be58-1add70aa25bf, 9bff2c19-447f-4eb8-9d3d-b29aae4eee8c", + "traceId": "5a5ad7150eb9421badb90ba0624a8438", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.510Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "库位编辑与版本递增正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085987441929404417?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3366ab99-f8e8-46e5-be58-1add70aa25bf, 9bff2c19-447f-4eb8-9d3d-b29aae4eee8c", + "traceId": "5a5ad7150eb9421badb90ba0624a8438", + "evidence": "version=1", + "checkedAt": "2026-08-08T07:12:17.510Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/locations/2085987441929404417/status?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "136e6d38-b16e-4ef5-a88c-cba59c814f28, 98a60945-547f-46fa-a577-9ab974b747ea", + "traceId": "60a7b692bce54a5da899cc09776c8df0", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.557Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "删除未占用测试库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/locations/2085987441929404417?tenantId=0&warehouseId=2085987441136680961&version=2" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "adff7bdb-e8d4-4033-8f7d-57db84a6a59f, cd7c31c1-1040-49ab-ae77-e1cdcb7566b1", + "traceId": "1bb249498003466d889e12b100cd27a7", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.596Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "创建仓库托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/pallets?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8db18f85-ac11-437b-84ae-f10c563f3c53, db4fc9a8-e36d-4116-86a9-593d74bbba75", + "traceId": "a903d19b7729468084e1f1cf062f642d", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.651Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询托盘详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085987443007340545?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ada80b55-dc8c-4bef-8a9b-029decff7af4, 23667911-3a49-471a-b331-9e6fb5d09bcc", + "traceId": "221904220ebd428ca2e77ef4f163380e", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.676Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "托盘详情关联正确仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085987443007340545?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ada80b55-dc8c-4bef-8a9b-029decff7af4, 23667911-3a49-471a-b331-9e6fb5d09bcc", + "traceId": "221904220ebd428ca2e77ef4f163380e", + "evidence": "palletId=2085987443007340545", + "checkedAt": "2026-08-08T07:12:17.676Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/pallets/2085987443007340545?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "01994e29-956e-4f2a-90d1-a1bcddbdbb29, 29890efb-8ada-4de3-8427-97fbfbbe74ca", + "traceId": "72d30ce7799f4aa1822d76d1d294021a", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.719Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085987443007340545?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ddcb0040-472e-49d6-a01e-7815a9752d62, bdbeab2c-aa82-46b6-9643-58b8f59b3bef", + "traceId": "06fcd1b2cf714af3867778b3b1ad6faf", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.762Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "托盘编辑已持久化", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085987443007340545?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ddcb0040-472e-49d6-a01e-7815a9752d62, bdbeab2c-aa82-46b6-9643-58b8f59b3bef", + "traceId": "06fcd1b2cf714af3867778b3b1ad6faf", + "evidence": "palletId=2085987443007340545", + "checkedAt": "2026-08-08T07:12:17.762Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "删除未使用测试托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/pallets/2085987443007340545?tenantId=0&warehouseId=2085987441136680961" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9a619630-661f-415a-9ca3-1a73306eee6c, b1cd442d-3abd-436c-a282-b32253c6bace", + "traceId": "76f5d645e9a24765b18c3c9fb8a5c059", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.815Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "创建快递公司", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/express-companies?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4bc55d8c-840e-4781-8734-73a423f2e3d9, 9cc701b4-6648-4365-8c6a-6dc8e629f4be", + "traceId": "67f99fe7d3aa4234b0e70f36875788b6", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.864Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询快递公司详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies/2085987443904921601?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b378c799-ec4a-4665-b4a8-99ccd7e2fab1, 14d20c89-29e7-435c-a8c4-ff3c70333dbd", + "traceId": "26ca9a2227034d0da4f0417369f84ad9", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.900Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "快递公司详情正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies/2085987443904921601?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b378c799-ec4a-4665-b4a8-99ccd7e2fab1, 14d20c89-29e7-435c-a8c4-ff3c70333dbd", + "traceId": "26ca9a2227034d0da4f0417369f84ad9", + "evidence": "expressId=2085987443904921601", + "checkedAt": "2026-08-08T07:12:17.900Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑快递公司", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/express-companies/2085987443904921601?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4b7ea81c-4851-4a23-875b-7dd705bc873b, 93655f49-80dd-4646-a8e1-ebd04efe8746", + "traceId": "78d1574e445c4b46a655335cf290910c", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.939Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用快递公司", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/express-companies/2085987443904921601/status?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "81b09543-ecb3-4b9f-bf15-b3b22f5cb2c4, e4263e57-5768-4eb0-8f82-a828ec4b53c0", + "traceId": "a6c06697daec494c9ed5bf15731ebe84", + "evidence": "", + "checkedAt": "2026-08-08T07:12:17.984Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "筛选快递公司列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=20&keyword=EX808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "278fd742-8d03-423a-8887-baca5749e332, 0d6d9eb1-a31e-4815-ac57-2a84571d6156", + "traceId": "bc24453ae9cf4f9c9220e17dc6383fe1", + "evidence": "", + "checkedAt": "2026-08-08T07:12:18.035Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "快递公司列表回显停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=20&keyword=EX808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "278fd742-8d03-423a-8887-baca5749e332, 0d6d9eb1-a31e-4815-ac57-2a84571d6156", + "traceId": "bc24453ae9cf4f9c9220e17dc6383fe1", + "evidence": "records=1", + "checkedAt": "2026-08-08T07:12:18.035Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "创建往来单位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/partners?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "79b392c7-e3c7-4046-940a-fc9c698de406, d7f30044-fe09-49dd-a84b-7433e1659f06", + "traceId": "5515af6a366f4b189503ae2fa73cefd7", + "evidence": "", + "checkedAt": "2026-08-08T07:12:18.097Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询往来单位详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners/2085987444861222913?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ed798619-c15c-4442-b35b-8039fb31a8f3, e4b40ef8-2315-49ad-b744-ca6349fa2bc4", + "traceId": "2a748641fa504bcf994badc0d4f713d6", + "evidence": "", + "checkedAt": "2026-08-08T07:12:18.137Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "往来单位详情正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners/2085987444861222913?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ed798619-c15c-4442-b35b-8039fb31a8f3, e4b40ef8-2315-49ad-b744-ca6349fa2bc4", + "traceId": "2a748641fa504bcf994badc0d4f713d6", + "evidence": "partnerId=2085987444861222913", + "checkedAt": "2026-08-08T07:12:18.138Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑往来单位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/partners/2085987444861222913?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a146b69f-fc05-40d8-947c-b9a2e94e8120, 5e48ee78-dfa2-444d-8cad-2cd57723b91a", + "traceId": "5f9c1199b07148edbbe5c7c67703c8d7", + "evidence": "", + "checkedAt": "2026-08-08T07:12:18.195Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用往来单位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/partners/2085987444861222913/status?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2bb4302b-0e38-49e9-a5c7-689c46dc107b, cd82875d-2d6c-40c3-990e-19576dfa2af5", + "traceId": "f2a41c614f044960bbec226b268e1d60", + "evidence": "", + "checkedAt": "2026-08-08T07:12:18.233Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "筛选往来单位列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=20&keyword=PT808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0f1189ed-11ff-4dc3-95d4-3b81d64f3e48, 88fa3416-983e-4e55-939d-0b12541f9894", + "traceId": "d01809329aab462da3ab44f4cf878d97", + "evidence": "", + "checkedAt": "2026-08-08T07:12:18.287Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "往来单位列表回显编辑与停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=20&keyword=PT808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0f1189ed-11ff-4dc3-95d4-3b81d64f3e48, 88fa3416-983e-4e55-939d-0b12541f9894", + "traceId": "d01809329aab462da3ab44f4cf878d97", + "evidence": "records=1", + "checkedAt": "2026-08-08T07:12:18.287Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "下载仓库导入模板", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/import-template" + }, + "http": 200, + "code": null, + "message": "3852 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "e982f483-84bc-4a70-8e55-879a3ac59fea, 85882001-514f-4599-aa8c-51c96379099b", + "traceId": "f6b9eb07ef3545919d4feaa30d21ce58", + "evidence": "bytes=3852, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T07:12:18.792Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "下载快递公司导入模板", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies/import-template" + }, + "http": 200, + "code": null, + "message": "3691 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "abf57615-20ef-4183-b28a-fc10b864a097, abf63d53-5499-4ebf-9f83-8829b10368ab", + "traceId": "03a31cdfcf5244f8a9372e97f87cdca2", + "evidence": "bytes=3691, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T07:12:19.078Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "下载往来单位导入模板", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners/import-template" + }, + "http": 200, + "code": null, + "message": "3829 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "9a2bfc3c-62f3-49b0-9aba-9359493c6936, 80101a6a-a316-428a-9621-7570bce69e77", + "traceId": "542ed806c540486381a1d527d6f2792c", + "evidence": "bytes=3829, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T07:12:19.128Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用测试仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/warehouse-admin/2085987441136680961/status?tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7b048216-0490-48ed-a9d6-a923c6957434, f73c8aee-5d8a-4f0b-a712-552d44e44acc", + "traceId": "d2687ff7223445f0b31aefcaa3d5a9f8", + "evidence": "", + "checkedAt": "2026-08-08T07:12:19.162Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试账号登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "15c9243f-c0fa-4117-9901-c907b4a20756, abccecf4-76e8-4084-9e18-90282181629a", + "traceId": "3a82457b06784171b23732f368122883", + "evidence": "username=merchant_admin", + "checkedAt": "2026-08-08T07:12:19.507Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询当前企业资料", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/iam/tenant/profile" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "66b06ebc-43ca-4217-8354-86eb90743b41, 991371d5-0ccc-4c5c-a52b-33841b8aff0f", + "traceId": "04baa1a659a74a88be37d4635baedcdf", + "evidence": "", + "checkedAt": "2026-08-08T07:12:19.541Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试企业已审核且客户 ID 有效", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/iam/tenant/profile" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "66b06ebc-43ca-4217-8354-86eb90743b41, 991371d5-0ccc-4c5c-a52b-33841b8aff0f", + "traceId": "04baa1a659a74a88be37d4635baedcdf", + "evidence": "tenantId=10001, status=ACTIVE", + "checkedAt": "2026-08-08T07:12:19.541Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "31324faf-0f70-46a6-b17d-59ecc55da2e4, ceceecd4-06db-4079-a352-57a5d02a53a6", + "traceId": "3825d4d0558f4822b910e6f40a75cd23", + "evidence": "tenantId=10001", + "checkedAt": "2026-08-08T07:12:19.572Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "31324faf-0f70-46a6-b17d-59ecc55da2e4, ceceecd4-06db-4079-a352-57a5d02a53a6", + "traceId": "3825d4d0558f4822b910e6f40a75cd23", + "evidence": "types=SMALL,MEDIUM,LARGE,EXTRA_LARGE", + "checkedAt": "2026-08-08T07:12:19.572Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询国内收货仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/warehouses?page=1&size=200&status=ACTIVE&warehouseType=DOMESTIC" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2c9b5d00-189e-4599-adab-6c344480d555, f90f48d9-9169-416a-b984-b8cccf72a905", + "traceId": "46ae0993b8e44a38865e1f7db5b3121f", + "evidence": "", + "checkedAt": "2026-08-08T07:12:19.607Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在可用国内收货仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/warehouses?page=1&size=200&status=ACTIVE&warehouseType=DOMESTIC" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2c9b5d00-189e-4599-adab-6c344480d555, f90f48d9-9169-416a-b984-b8cccf72a905", + "traceId": "46ae0993b8e44a38865e1f7db5b3121f", + "evidence": "count=2", + "checkedAt": "2026-08-08T07:12:19.608Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询 FBA 目的仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/warehouses?page=1&size=200&status=ACTIVE&warehouseType=FBA" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f86022b1-be5c-4a50-afe3-a4d65587bcf1, 892d08bb-00b0-4afa-87e5-659cfdfa107a", + "traceId": "84ef2649e2aa408ab5c6ee8d9e8d5c32", + "evidence": "", + "checkedAt": "2026-08-08T07:12:19.661Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在可用 FBA 目的仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/warehouses?page=1&size=200&status=ACTIVE&warehouseType=FBA" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f86022b1-be5c-4a50-afe3-a4d65587bcf1, 892d08bb-00b0-4afa-87e5-659cfdfa107a", + "traceId": "84ef2649e2aa408ab5c6ee8d9e8d5c32", + "evidence": "count=200", + "checkedAt": "2026-08-08T07:12:19.661Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询可用计费渠道", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "16e93da1-3ae4-4541-9709-70c74fc77a1f, 4d729421-689b-4ca0-b677-29c213603d14", + "traceId": "c9cd0dbc533d4c0ebd16dc41f12ceae8", + "evidence": "", + "checkedAt": "2026-08-08T07:12:19.719Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在带计价税制的可用渠道", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "16e93da1-3ae4-4541-9709-70c74fc77a1f, 4d729421-689b-4ca0-b677-29c213603d14", + "traceId": "c9cd0dbc533d4c0ebd16dc41f12ceae8", + "evidence": "count=15", + "checkedAt": "2026-08-08T07:12:19.719Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询发货客户候选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/partners/candidates?type=SHIPPER" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d159b821-fd45-44c9-8b01-bbfb2c80b409, c9a20d0b-9e98-4a7a-a87c-7a25c9030efd", + "traceId": "c0b6bcb1e3194476a88b729755182677", + "evidence": "", + "checkedAt": "2026-08-08T07:12:19.744Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Client 上传产品图片", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/files/product-images" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "43e7496c-ce8f-44e5-9234-f04f5dd5f194, c3b55ce0-ffa5-4944-828c-02d16f574d56", + "traceId": "7a103766031c4469a71885226e4f2d16", + "evidence": "contentType=image/png", + "checkedAt": "2026-08-08T07:12:19.885Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "产品图片上传返回字符串文件 ID", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/files/product-images" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "43e7496c-ce8f-44e5-9234-f04f5dd5f194, c3b55ce0-ffa5-4944-828c-02d16f574d56", + "traceId": "7a103766031c4469a71885226e4f2d16", + "evidence": "fileIdType=string, contentType=image/png", + "checkedAt": "2026-08-08T07:12:19.885Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Client 可下载本轮产品图片", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/files/product-images/2085987452364324865" + }, + "http": 200, + "code": null, + "message": null, + "requestId": "a7d19951-3bad-4972-a664-d7b3c6ec4be8, fa3c7731-7691-4625-8a91-54afccb40595", + "traceId": "55abe45a5d494882a12dc06ba51fe626", + "evidence": "bytes=68, contentType=image/png", + "checkedAt": "2026-08-08T07:12:19.913Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Client 创建四箱型隔离订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/orders/first-leg" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fe1ad4c7-2043-4020-a924-e085f86c79e2, 6b080719-1093-45cb-b675-1c593e292470", + "traceId": "8f57d3a3aa094ee0966104e8a8252949", + "evidence": "marker=ADMIN-API-20260808071211341", + "checkedAt": "2026-08-08T07:12:20.332Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 创建订单幂等重放", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/orders/first-leg" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "27f9bfc7-089d-4e34-93b2-51ab32eca228, a35e46b0-d579-4d4a-b7d3-1842a6c65f26", + "traceId": "35c158e0ad934979ab9130ca18097720", + "evidence": "", + "checkedAt": "2026-08-08T07:12:20.508Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 创建幂等结果一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/orders/first-leg" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "27f9bfc7-089d-4e34-93b2-51ab32eca228, a35e46b0-d579-4d4a-b7d3-1842a6c65f26", + "traceId": "35c158e0ad934979ab9130ca18097720", + "evidence": "orderId=2085987453941383169, replayedId=2085987453941383169", + "checkedAt": "2026-08-08T07:12:20.508Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询隔离订单草稿", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/orders/first-leg/2085987453941383169" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ca982f43-221a-4012-8c67-111dc3355285, f4bc0e14-4d78-4b1e-b21f-bd68896b5bc4", + "traceId": "cc6287cbf9a8443bb635e2c7c541d8a8", + "evidence": "", + "checkedAt": "2026-08-08T07:12:20.545Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 草稿身份、marker 和状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/orders/first-leg/2085987453941383169" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ca982f43-221a-4012-8c67-111dc3355285, f4bc0e14-4d78-4b1e-b21f-bd68896b5bc4", + "traceId": "cc6287cbf9a8443bb635e2c7c541d8a8", + "evidence": "orderNo=FL2085987453941383169, status=DRAFT", + "checkedAt": "2026-08-08T07:12:20.545Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "四箱型产品字段及图片契约完整回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/orders/first-leg/2085987453941383169" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ca982f43-221a-4012-8c67-111dc3355285, f4bc0e14-4d78-4b1e-b21f-bd68896b5bc4", + "traceId": "cc6287cbf9a8443bb635e2c7c541d8a8", + "evidence": "cargoes=4, imageFileId=2085987452364324865", + "checkedAt": "2026-08-08T07:12:20.546Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 提交隔离订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/orders/first-leg/2085987453941383169/submit" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e897d4e7-14d3-4817-9ff9-e23ddbbc174f, 96d0377d-acf5-4367-8e6d-7b5041fb3554", + "traceId": "30e8042224c842d695f4ac3b13f6e15d", + "evidence": "orderId=2085987453941383169", + "checkedAt": "2026-08-08T07:12:20.660Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 回查已提交订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/orders/first-leg/2085987453941383169" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "32fd51c3-d9d9-43cb-abe8-f5c731f9a0a8, 34769c5c-4e32-40c2-9d22-39afc84e76ad", + "traceId": "3ed015f0f56f4f1ba22ec68533f56adb", + "evidence": "", + "checkedAt": "2026-08-08T07:12:20.703Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 订单已进入待审核状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/orders/first-leg/2085987453941383169" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "32fd51c3-d9d9-43cb-abe8-f5c731f9a0a8, 34769c5c-4e32-40c2-9d22-39afc84e76ad", + "traceId": "3ed015f0f56f4f1ba22ec68533f56adb", + "evidence": "status=SUBMITTED", + "checkedAt": "2026-08-08T07:12:20.703Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询统一订单列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders?page=1&size=100&tenantId=10001&orderNo=FL2085987453941383169" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "eb0c0257-635e-4100-b597-8cb8eaa491f6, 5e2a4c7d-daad-483a-8ca0-83f91ce0cc66", + "traceId": "6ee8a0c21f994e389a1a803c9fbdeaec", + "evidence": "", + "checkedAt": "2026-08-08T07:12:20.756Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 统一订单列表只核对本轮订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders?page=1&size=100&tenantId=10001&orderNo=FL2085987453941383169" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "eb0c0257-635e-4100-b597-8cb8eaa491f6, 5e2a4c7d-daad-483a-8ca0-83f91ce0cc66", + "traceId": "6ee8a0c21f994e389a1a803c9fbdeaec", + "evidence": "orderId=2085987453941383169, found=true", + "checkedAt": "2026-08-08T07:12:20.756Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询统一订单详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/2085987453941383169?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b8b556bf-a0b2-4d2b-bfea-db0d7e239015, 1b9163fd-dca4-4602-a885-077f1a6ad4e1", + "traceId": "a4c4bc1b60b244e5a31eb95f5387b565", + "evidence": "", + "checkedAt": "2026-08-08T07:12:20.795Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 统一订单详情身份与待审核状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/2085987453941383169?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b8b556bf-a0b2-4d2b-bfea-db0d7e239015, 1b9163fd-dca4-4602-a885-077f1a6ad4e1", + "traceId": "a4c4bc1b60b244e5a31eb95f5387b565", + "evidence": "mainStatus=PENDING_REVIEW, timeline=2", + "checkedAt": "2026-08-08T07:12:20.796Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询头程订单列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg?tenantId=10001&keyword=FL2085987453941383169&page=1&size=100" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "de843e79-6782-4f32-acb1-af02a0ac5e47, 9e9695ba-69ce-4d92-bb05-787969814bfb", + "traceId": "0846a3d0bf0a46e08a9f9944bdfac817", + "evidence": "", + "checkedAt": "2026-08-08T07:12:20.844Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 头程订单列表只核对本轮订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg?tenantId=10001&keyword=FL2085987453941383169&page=1&size=100" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "de843e79-6782-4f32-acb1-af02a0ac5e47, 9e9695ba-69ce-4d92-bb05-787969814bfb", + "traceId": "0846a3d0bf0a46e08a9f9944bdfac817", + "evidence": "orderId=2085987453941383169, found=true", + "checkedAt": "2026-08-08T07:12:20.845Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询头程订单详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/2085987453941383169?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "dfb8f21e-1850-469d-8e25-cf40663b8797, 4bdaaf89-d2b8-4e32-b0d0-8eb1b564a387", + "traceId": "3e47ff221db4415cb1b1284e88a8e5fe", + "evidence": "", + "checkedAt": "2026-08-08T07:12:20.886Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 头程订单详情聚合结构完整", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/2085987453941383169?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "dfb8f21e-1850-469d-8e25-cf40663b8797, 4bdaaf89-d2b8-4e32-b0d0-8eb1b564a387", + "traceId": "3e47ff221db4415cb1b1284e88a8e5fe", + "evidence": "cargoes=4, history=2", + "checkedAt": "2026-08-08T07:12:20.886Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "四箱型产品字段及图片契约完整回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/2085987453941383169?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "dfb8f21e-1850-469d-8e25-cf40663b8797, 4bdaaf89-d2b8-4e32-b0d0-8eb1b564a387", + "traceId": "3e47ff221db4415cb1b1284e88a8e5fe", + "evidence": "cargoes=4, imageFileId=2085987452364324865", + "checkedAt": "2026-08-08T07:12:20.886Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 为本轮订单添加内部备注", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/orders/first-leg/2085987453941383169/internal-notes?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "59084dbf-11fc-4fb3-b802-fda7222c9a94, 8b6b656e-f46f-4a1a-9585-0e6c234dabf6", + "traceId": "9257ce94ec1a4440b044b26c92628eb2", + "evidence": "", + "checkedAt": "2026-08-08T07:12:20.918Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 审核通过本轮订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/orders/first-leg/2085987453941383169/approve?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "74bcbf4b-ecdd-48e9-a77c-176b89238983, ac372a03-1ef5-4e8c-b6d9-d0bcffe5906c", + "traceId": "373875e4bbd04a9cb1209d8fc532c4cb", + "evidence": "orderId=2085987453941383169", + "checkedAt": "2026-08-08T07:12:20.958Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "审核后生成隔离入库单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/2085987453941383169?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "37c0527a-80ca-4ead-b614-c84903983c86, fea7e443-aee6-4e13-9ad4-60b30d2e4a59", + "traceId": "da5ad283d2e247a5a268d4585c0fd007", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:24.202Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询本轮入库单详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987466526371842?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a74a0dec-3298-45c7-a561-74c1181f51c0, be8d2de6-cf7b-4a8b-a00d-c2c10ebe60d6", + "traceId": "c6646d0505d84f599b1900e955212d21", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:24.245Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "隔离入库单 marker 来源与可测量状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987466526371842?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a74a0dec-3298-45c7-a561-74c1181f51c0, be8d2de6-cf7b-4a8b-a00d-c2c10ebe60d6", + "traceId": "c6646d0505d84f599b1900e955212d21", + "evidence": "markerFound=true, status=WAIT_MEASURE", + "checkedAt": "2026-08-08T07:12:24.245Z" + }, + { + "module": "orders", + "scenario": null, + "name": "入库单详情包含托盘库位、文件、备注和状态历史", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987466526371842?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a74a0dec-3298-45c7-a561-74c1181f51c0, be8d2de6-cf7b-4a8b-a00d-c2c10ebe60d6", + "traceId": "c6646d0505d84f599b1900e955212d21", + "evidence": "inboundId=2085987466526371842, history=1", + "checkedAt": "2026-08-08T07:12:24.245Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询入库单列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds?tenantId=10001&inboundCode=RK-2085987453941383169&page=1&size=100" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "43be3a48-bfb5-4766-84c1-0a3dd032ab99, 612d5624-39d3-4bcd-b7ae-39343b1ee3bb", + "traceId": "28d1939c915341a1941e567e43088d3b", + "evidence": "", + "checkedAt": "2026-08-08T07:12:24.306Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 入库单列表只核对本轮入库单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds?tenantId=10001&inboundCode=RK-2085987453941383169&page=1&size=100" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "43be3a48-bfb5-4766-84c1-0a3dd032ab99, 612d5624-39d3-4bcd-b7ae-39343b1ee3bb", + "traceId": "28d1939c915341a1941e567e43088d3b", + "evidence": "inboundId=2085987466526371842, total=1", + "checkedAt": "2026-08-08T07:12:24.307Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询本轮订单履约任务", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/tasks/by-order/2085987453941383169?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6ecbc410-6ce3-449f-b75c-e321feb99ef7, f70731cf-64e3-488e-9cd1-b8f29fe66d79", + "traceId": "0776ca68f2e643e894d6660c854c8554", + "evidence": "新订单应生成可查询的履约任务", + "checkedAt": "2026-08-08T07:12:24.343Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "履约任务与本轮订单和客户一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/tasks/by-order/2085987453941383169?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6ecbc410-6ce3-449f-b75c-e321feb99ef7, f70731cf-64e3-488e-9cd1-b8f29fe66d79", + "traceId": "0776ca68f2e643e894d6660c854c8554", + "evidence": "taskId=2085987466501206018, status=PENDING_ASSIGNMENT", + "checkedAt": "2026-08-08T07:12:24.344Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询本轮履约任务分配历史", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/tasks/2085987466501206018/assignment-history?tenantId=10001&page=1&size=20" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "434ff83c-ce01-48ce-9194-ceaab2528633, deabc3a2-694f-41c7-a071-37c6b4020a1c", + "traceId": "083f56f0f6fe482eadc3a2f5f90b615a", + "evidence": "", + "checkedAt": "2026-08-08T07:12:24.384Z" + }, + { + "module": "orders", + "scenario": null, + "name": "履约分配历史分页结构正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/tasks/2085987466501206018/assignment-history?tenantId=10001&page=1&size=20" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "434ff83c-ce01-48ce-9194-ceaab2528633, deabc3a2-694f-41c7-a071-37c6b4020a1c", + "traceId": "083f56f0f6fe482eadc3a2f5f90b615a", + "evidence": "taskId=2085987466501206018, total=0", + "checkedAt": "2026-08-08T07:12:24.384Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 受理本轮订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/orders/first-leg/2085987453941383169/accept?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9c31d894-e996-4fe6-b74e-28f53b7e210a, 59fa25fb-3eec-449e-82e3-477586f07b1e", + "traceId": "6633f23a6be84fa598290287609bad5c", + "evidence": "", + "checkedAt": "2026-08-08T07:12:24.438Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 启动本轮订单履约", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/orders/first-leg/2085987453941383169/start?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8a0c3ece-94c9-4e7f-9cec-8e2d10866e0d, 9a55bf30-4bf5-4684-8118-830541fa7c27", + "traceId": "9244d307ab1b4a56abcca180b5d8c3b2", + "evidence": "", + "checkedAt": "2026-08-08T07:12:24.469Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 回查本轮订单履约状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/2085987453941383169?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6e2858b3-2b85-47d0-b12d-e93ce5fc8463, 1f3287d3-ba14-486e-8c95-4d0ab8d287e1", + "traceId": "c13d0658584d41baa667f82a70261baf", + "evidence": "", + "checkedAt": "2026-08-08T07:12:24.504Z" + }, + { + "module": "orders", + "scenario": null, + "name": "本轮订单已进入处理中且保留状态历史", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/2085987453941383169?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6e2858b3-2b85-47d0-b12d-e93ce5fc8463, 1f3287d3-ba14-486e-8c95-4d0ab8d287e1", + "traceId": "c13d0658584d41baa667f82a70261baf", + "evidence": "status=PROCESSING, history=5", + "checkedAt": "2026-08-08T07:12:24.504Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询发布前船期价格版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ad7e71c9-1409-46da-8c3b-6945223654db, 723087f6-85cc-495e-9f67-bf28810336c9", + "traceId": "366e437639fc4db5b03c896d3b90a627", + "evidence": "", + "checkedAt": "2026-08-08T07:12:24.535Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "发布前最多一份生效版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ad7e71c9-1409-46da-8c3b-6945223654db, 723087f6-85cc-495e-9f67-bf28810336c9", + "traceId": "366e437639fc4db5b03c896d3b90a627", + "evidence": "versions=15, active=1", + "checkedAt": "2026-08-08T07:12:24.536Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "船期价格测试文件已隔离", + "passed": true, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "fileName=ADMIN-API-20260808071211341-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "checkedAt": "2026-08-08T07:12:24.539Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上传并解析船期价格表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b1baff94-9386-4859-ad7b-d36753a314f4, 52fb4f1c-1ad1-423d-839c-ad41903d5517", + "traceId": "7711456a3acb4fbc945fe296ebf72881", + "evidence": "fileName=ADMIN-API-20260808071211341-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "checkedAt": "2026-08-08T07:12:28.435Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上传返回隔离的待确认版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b1baff94-9386-4859-ad7b-d36753a314f4, 52fb4f1c-1ad1-423d-839c-ad41903d5517", + "traceId": "7711456a3acb4fbc945fe296ebf72881", + "evidence": "versionId=2085987473472139265, status=PENDING_CONFIRMATION, fileName=ADMIN-API-20260808071211341-2026.08.03柏悦价格表 船期2026.08.12.xlsx, shaMatched=true", + "checkedAt": "2026-08-08T07:12:28.435Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "解析出15个固定渠道且编码唯一", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b1baff94-9386-4859-ad7b-d36753a314f4, 52fb4f1c-1ad1-423d-839c-ad41903d5517", + "traceId": "7711456a3acb4fbc945fe296ebf72881", + "evidence": "channelCount=15, unique=15, missing=none", + "checkedAt": "2026-08-08T07:12:28.435Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "解析价格行完整且可追溯到 Excel", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b1baff94-9386-4859-ad7b-d36753a314f4, 52fb4f1c-1ad1-423d-839c-ad41903d5517", + "traceId": "7711456a3acb4fbc945fe296ebf72881", + "evidence": "rateCount=2157, declared=2157, valid=true", + "checkedAt": "2026-08-08T07:12:28.435Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "解析阻断仅包含可确认的仓库映射问题", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b1baff94-9386-4859-ad7b-d36753a314f4, 52fb4f1c-1ad1-423d-839c-ad41903d5517", + "traceId": "7711456a3acb4fbc945fe296ebf72881", + "evidence": "blocking=0, unexpected=none, infrastructure=none", + "checkedAt": "2026-08-08T07:12:28.436Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上传后回查价格版本列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c856aa14-995f-4514-8f0a-921d6a30beff, 6e94a4a6-b9f3-43eb-adb2-a803933452c5", + "traceId": "95dc61e7361e47efb8b723df95d6015f", + "evidence": "", + "checkedAt": "2026-08-08T07:12:28.485Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上传只生成待确认版本且不替换当前生效版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c856aa14-995f-4514-8f0a-921d6a30beff, 6e94a4a6-b9f3-43eb-adb2-a803933452c5", + "traceId": "95dc61e7361e47efb8b723df95d6015f", + "evidence": "pending=PENDING_CONFIRMATION, activeBefore=2085962204229185537, activeAfterUpload=2085962204229185537", + "checkedAt": "2026-08-08T07:12:28.485Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询待确认版本渠道和价格预览", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books/2085987473472139265" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fa22af7c-451c-4871-8e5c-6c3b2522fa29, a9ef9f62-cc16-4d08-9ef5-d5101399def5", + "traceId": "80840f40f0a6483386d71c4d419f6fa3", + "evidence": "", + "checkedAt": "2026-08-08T07:12:28.581Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "详情与上传解析结果一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books/2085987473472139265" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fa22af7c-451c-4871-8e5c-6c3b2522fa29, a9ef9f62-cc16-4d08-9ef5-d5101399def5", + "traceId": "80840f40f0a6483386d71c4d419f6fa3", + "evidence": "versionId=2085987473472139265, channels=15, rates=2157, issues=2", + "checkedAt": "2026-08-08T07:12:28.581Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "下载原始 XLSX 且内容散列一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books/2085987473472139265/source" + }, + "http": 200, + "code": null, + "message": "1343413 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "4a26044a-084b-4b04-b1bd-72960b918052, a6ff5b14-87ba-4df8-9c1f-a2f2faca3adf, ab6d8359-d645-4320-9dd2-3b06dbf2ba0c", + "traceId": "9f18c7b0025c4b98aba3b5ed549fbbd8, 99407f9ffe7d49bfaaca4c101bb4fdcc", + "evidence": "bytes=1343413, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, zipMagic=true, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "checkedAt": "2026-08-08T07:12:28.681Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询启用的平台公共国内仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=200&status=ACTIVE&warehouseType=DOMESTIC" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cfca11e7-a55b-4aa3-a931-0c94842de605, fa921a9a-d744-4bbb-b989-c1594b1fb61f", + "traceId": "05f84fd4ed04443b8e815b5da769a5bd", + "evidence": "", + "checkedAt": "2026-08-08T07:12:28.716Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询启用的平台公共海外仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=200&status=ACTIVE&warehouseType=OVERSEAS" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f79ca0e8-4272-404d-9b21-2bedcdb0011f, 24677703-ab45-473b-8f7d-b31af7f0ed43", + "traceId": "01345e9b1d6748f198961a71cc2d2607", + "evidence": "", + "checkedAt": "2026-08-08T07:12:28.761Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "国内起运仓和目的海外仓均精确映射", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=200&status=ACTIVE&warehouseType=OVERSEAS" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f79ca0e8-4272-404d-9b21-2bedcdb0011f, 24677703-ab45-473b-8f7d-b31af7f0ed43", + "traceId": "01345e9b1d6748f198961a71cc2d2607", + "evidence": "origins=CN-DONGGUAN-01->193000000000200002,CN-YIWU-01->193000000000200001, overseas=纽约仓->193000000000200004,洛杉矶仓->193000000000200003, missing=none", + "checkedAt": "2026-08-08T07:12:28.762Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "确认仓库映射并立即生效", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books/2085987473472139265/publish" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8276266e-f36e-49e2-b061-9a2b2739c5d8, bb0bd85a-a9c9-4230-b396-b2d7466886fe", + "traceId": "7f95db87519643c1b0a03aa34a02710c", + "evidence": "versionId=2085987473472139265, originMappings=2, overseasMappings=2", + "checkedAt": "2026-08-08T07:12:30.773Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "发布后价格版本为 ACTIVE 且无阻断", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books/2085987473472139265/publish" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8276266e-f36e-49e2-b061-9a2b2739c5d8, bb0bd85a-a9c9-4230-b396-b2d7466886fe", + "traceId": "7f95db87519643c1b0a03aa34a02710c", + "evidence": "status=ACTIVE, blocking=0, publishedAt=2026-08-08T15:12:29.596, channels=15, rates=2157", + "checkedAt": "2026-08-08T07:12:30.773Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "发布后回查当前生效和历史版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4972afdf-4ae7-411a-b802-fe911fc636dd, f645befa-dde1-434a-ad9b-0f3c696ddc78", + "traceId": "9ed000b470134d9daad32cfa4db8ef9a", + "evidence": "", + "checkedAt": "2026-08-08T07:12:30.809Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "始终只有一份当前生效版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4972afdf-4ae7-411a-b802-fe911fc636dd, f645befa-dde1-434a-ad9b-0f3c696ddc78", + "traceId": "9ed000b470134d9daad32cfa4db8ef9a", + "evidence": "active=2085987473472139265", + "checkedAt": "2026-08-08T07:12:30.809Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上一生效版本已保留为历史版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4972afdf-4ae7-411a-b802-fe911fc636dd, f645befa-dde1-434a-ad9b-0f3c696ddc78", + "traceId": "9ed000b470134d9daad32cfa4db8ef9a", + "evidence": "previous=2085962204229185537, superseded=true", + "checkedAt": "2026-08-08T07:12:30.810Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询当前生效价格版本详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books/2085987473472139265" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b59c1ec3-729b-4068-bad4-6f0c11deeffa, fcd07cdc-a651-4a15-98ad-2c65bbe61775", + "traceId": "536e69ee5353482e97d98e3b83b80c0a", + "evidence": "", + "checkedAt": "2026-08-08T07:12:30.900Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "当前生效版本预览数据完整", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books/2085987473472139265" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b59c1ec3-729b-4068-bad4-6f0c11deeffa, fcd07cdc-a651-4a15-98ad-2c65bbe61775", + "traceId": "536e69ee5353482e97d98e3b83b80c0a", + "evidence": "status=ACTIVE, channels=15, rates=2157", + "checkedAt": "2026-08-08T07:12:30.900Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "已生效版本禁止重复发布", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books/2085987473472139265/publish" + }, + "http": 200, + "code": "A0409", + "message": "只有待确认上传记录可以确认并生效", + "requestId": "5a5afa64-b9b5-4778-99f7-0f3a0b1b3b25", + "traceId": "36e0b275c7d64a7fbfb0cc65570d00e7", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:12:30.938Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "重复发布被拒绝后回查版本状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fba2350d-ea56-4475-b28c-3998d7ddda05, 0dde0c78-2d38-4dae-91c5-b895bd97f79f", + "traceId": "70f6578b19b9448a85dd8844215dc186", + "evidence": "", + "checkedAt": "2026-08-08T07:12:30.965Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "重复发布未改变唯一生效版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fba2350d-ea56-4475-b28c-3998d7ddda05, 0dde0c78-2d38-4dae-91c5-b895bd97f79f", + "traceId": "70f6578b19b9448a85dd8844215dc186", + "evidence": "active=2085987473472139265", + "checkedAt": "2026-08-08T07:12:30.965Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "创建客户列表导出任务", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/export-tasks" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "39e0ca78-02ec-46e4-af37-a2019faad362, 0ba9f93d-178a-4165-85e7-c5057f53f20e", + "traceId": "bd8c51aa5c2141bab789b567498550a2", + "evidence": "", + "checkedAt": "2026-08-08T07:12:31.016Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "导出任务创建字段正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/export-tasks" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "39e0ca78-02ec-46e4-af37-a2019faad362, 0ba9f93d-178a-4165-85e7-c5057f53f20e", + "traceId": "bd8c51aa5c2141bab789b567498550a2", + "evidence": "taskId=2085987499038539778, status=PENDING", + "checkedAt": "2026-08-08T07:12:31.016Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "查询下载中心任务列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=20&exportType=CUSTOMER_LIST" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b1281677-bedc-487f-b48c-f12ea43e66ca, cbbdfebc-958f-4bc3-a997-536f5184625f", + "traceId": "c9390aa9fd7447988b63ce5c41ed9761", + "evidence": "", + "checkedAt": "2026-08-08T07:12:31.049Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "下载中心列表包含新任务", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=20&exportType=CUSTOMER_LIST" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b1281677-bedc-487f-b48c-f12ea43e66ca, cbbdfebc-958f-4bc3-a997-536f5184625f", + "traceId": "c9390aa9fd7447988b63ce5c41ed9761", + "evidence": "records=14", + "checkedAt": "2026-08-08T07:12:31.049Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "轮询导出任务直到终态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085987499038539778" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3f3b8624-1fa8-4cde-b81c-7cbe868019e5, 14483e5a-37b4-49ab-8a47-a1faf37a4770", + "traceId": "ab3215d72be94128be78446d28c11dfd", + "evidence": "status=SUCCEEDED, processedRows=0", + "checkedAt": "2026-08-08T07:12:35.148Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "查询导出任务详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085987499038539778" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3d9e778f-6b87-47fd-8c76-4d78245bcd0e, ce562e1a-f875-454c-ad4e-95fb159a2fe2", + "traceId": "ff08f55bd21742c2a878d5c529a4c0d8", + "evidence": "", + "checkedAt": "2026-08-08T07:12:35.184Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "导出详情行数和文件元数据正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085987499038539778" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3d9e778f-6b87-47fd-8c76-4d78245bcd0e, ce562e1a-f875-454c-ad4e-95fb159a2fe2", + "traceId": "ff08f55bd21742c2a878d5c529a4c0d8", + "evidence": "processedRows=0, sizeBytes=4066", + "checkedAt": "2026-08-08T07:12:35.184Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "下载并校验客户列表 XLSX", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085987499038539778/download" + }, + "http": 200, + "code": null, + "message": "4066 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "110995ba-b94c-4577-b73c-e0e57c7781c7, c6e4657e-4b4d-4a20-8cb0-b699a5238c04", + "traceId": "6a6bcf0311a547edad4eee75998b7605", + "evidence": "bytes=4066, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T07:12:35.212Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "仅选择带本轮测试标记的可编辑入库单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987466526371842?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "227a3fda-25b3-45c5-961b-f1017588aa22, bfe90264-a26a-46d9-94d8-9af5ce9f97f6", + "traceId": "92959a9ec7774735b1fadae79b4bb0ab", + "evidence": "tenantId=10001, inboundId=2085987466526371842, status=WAIT_MEASURE", + "checkedAt": "2026-08-08T07:12:35.249Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "读取 OCR 测试前重量工作区", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7bdafa54-b575-47b0-b95c-0a849c2bb3bc, 16f95f34-afe0-4a3f-9bdc-5593ea6bcbef", + "traceId": "6a40f9b803bc455494972d2758b617f0", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:35.298Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "测试入库单身份与基线可追踪", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7bdafa54-b575-47b0-b95c-0a849c2bb3bc, 16f95f34-afe0-4a3f-9bdc-5593ea6bcbef", + "traceId": "6a40f9b803bc455494972d2758b617f0", + "evidence": "existingResults=0, baselineWeight=null", + "checkedAt": "2026-08-08T07:12:35.298Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "未认证请求不能上传称重图片", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "3fab41c4-398", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T07:12:35.321Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "非图片类型被拒绝且不模拟成功", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842" + }, + "http": 200, + "code": "A0400", + "message": "称重图片仅支持JPG、PNG、BMP", + "requestId": "cbccd1a1-048b-4f66-a96b-c0e4a57cf987", + "traceId": "525e6e53cc324b0bbe2f9fe8e991e7db", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T07:12:35.349Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "超过5MB图片被拒绝", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842" + }, + "http": 200, + "code": "A0400", + "message": "称重图片不能超过5MB", + "requestId": "b953861b-798b-434b-9dd3-97aad60c13d8", + "traceId": "26b21964d3824511a66c59d06880c877", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T07:12:35.565Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "上传称重图片并执行 OCR", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d18f0c78-2404-4a0d-b682-e4dd2692adb7, a1bef624-8836-42b5-a37e-7b331da9ede2", + "traceId": "40e7fd981b0042069f79adbd90fc1d61", + "evidence": "file=orig_1cf27695-b2c3-44b3-98e3-c0be8b80f79a.JPG, size=3701469", + "checkedAt": "2026-08-08T07:12:37.895Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "上传响应保持文件 ID 字符串契约", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d18f0c78-2404-4a0d-b682-e4dd2692adb7, a1bef624-8836-42b5-a37e-7b331da9ede2", + "traceId": "40e7fd981b0042069f79adbd90fc1d61", + "evidence": "fileIdType=string, status=RECOGNIZED", + "checkedAt": "2026-08-08T07:12:37.895Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "OCR 上传响应字段完整且置信度受限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d18f0c78-2404-4a0d-b682-e4dd2692adb7, a1bef624-8836-42b5-a37e-7b331da9ede2", + "traceId": "40e7fd981b0042069f79adbd90fc1d61", + "evidence": "status=RECOGNIZED, hasWeight=true, confidence=0.50972", + "checkedAt": "2026-08-08T07:12:37.895Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "重试当前称重图片 OCR", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842/2085987521633255426/recognize" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f0ccd439-66d9-4e5b-a6e4-250aed0d01f7, c52cda42-1775-4183-b752-1b4c530db377", + "traceId": "5a97ccb7456245338118438ed49f79d3", + "evidence": "fileId=2085987521633255426", + "checkedAt": "2026-08-08T07:12:38.828Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "OCR 重试保持文件身份并返回识别契约", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842/2085987521633255426/recognize" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f0ccd439-66d9-4e5b-a6e4-250aed0d01f7, c52cda42-1775-4183-b752-1b4c530db377", + "traceId": "5a97ccb7456245338118438ed49f79d3", + "evidence": "sameFile=true, status=RECOGNIZED", + "checkedAt": "2026-08-08T07:12:38.829Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "登记 OCR 原值", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "17dfff77-6fbe-4d59-aa10-b9c8ff04ebdb, 5806b75f-6fa3-40b1-86ad-d0e1fb1a96d7", + "traceId": "5559926e4c65438cabf4e6273383b2c4", + "evidence": "fileId=2085987521633255426", + "checkedAt": "2026-08-08T07:12:38.870Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "重量结果 ID、文件 ID 和初始版本契约正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "17dfff77-6fbe-4d59-aa10-b9c8ff04ebdb, 5806b75f-6fa3-40b1-86ad-d0e1fb1a96d7", + "traceId": "5559926e4c65438cabf4e6273383b2c4", + "evidence": "resultIdType=string, fileIdType=string, version=0", + "checkedAt": "2026-08-08T07:12:38.870Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "鉴权读取原始称重图片", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842/2085987521633255426" + }, + "http": 200, + "code": null, + "message": "3701469 bytes (image/jpeg)", + "requestId": "df3234e2-0af1-483e-92f9-514fd2ec4981, acef914d-f3e6-4dc5-87ca-3c73102ef9fc", + "traceId": "95e1d0b671e64b6c9ff126f6c6db9baf", + "evidence": "contentType=image/jpeg, bytes=3701469", + "checkedAt": "2026-08-08T07:12:39.020Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "缩略图返回受限尺寸 JPEG", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842/2085987521633255426/thumbnail" + }, + "http": 200, + "code": null, + "message": "18677 bytes (image/jpeg)", + "requestId": "8a3b9a96-6c76-4aa5-81e4-d5f81b0613d2, e35e99d3-103f-4e92-a1c6-e5e718270c27", + "traceId": "f99d12b7b9794c5492af752e439dc999", + "evidence": "contentType=image/jpeg, bytes=18677, dimensions=240x320", + "checkedAt": "2026-08-08T07:12:39.474Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "登记后回查 OCR 重量结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "78abe899-4dcd-4636-aa76-785d6be9b578, e25a3fb3-05b1-437f-9f8a-f5adaa2a95a4", + "traceId": "933c0fc84ebc475d9d1bc895b693610a", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:39.500Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "工作区保留本轮 OCR 原值且未覆盖历史结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "78abe899-4dcd-4636-aa76-785d6be9b578, e25a3fb3-05b1-437f-9f8a-f5adaa2a95a4", + "traceId": "933c0fc84ebc475d9d1bc895b693610a", + "evidence": "resultFound=true, baselineCount=0, currentCount=1", + "checkedAt": "2026-08-08T07:12:39.500Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "旧版本确认返回并发冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987532007845889/confirm?tenantId=10001" + }, + "http": 200, + "code": "A0409", + "message": "数据版本已变化,请刷新后重试", + "requestId": "76ae0aa2-75fc-46a5-931a-df90abf5b066", + "traceId": "d072311a5a054bf293fb274f1e1f1eff", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:12:39.548Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "确认 OCR 重量并计入实际总毛重", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987532007845889/confirm?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c816c3d9-5214-4c0d-9d80-1326906e5f7e, 57d30747-647b-4fe7-b4f0-2a355d0bdc07", + "traceId": "02be87b1a65249498507547495fd02a8", + "evidence": "usedOriginal=true", + "checkedAt": "2026-08-08T07:12:39.595Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "确认结果状态、版本和最终KG正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987532007845889/confirm?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c816c3d9-5214-4c0d-9d80-1326906e5f7e, 57d30747-647b-4fe7-b4f0-2a355d0bdc07", + "traceId": "02be87b1a65249498507547495fd02a8", + "evidence": "status=CONFIRMED, version=1, finalKg=285.5", + "checkedAt": "2026-08-08T07:12:39.595Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "确认后回查实际总毛重", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9707c3b1-870f-4812-99ec-ddde06c7edd4, 94f2c13f-c3a6-408e-a608-3baf3eded998", + "traceId": "06e2f7be3ba14760aa1dbf11575b4425", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:39.632Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "确认后实际总毛重按服务端结果重算", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9707c3b1-870f-4812-99ec-ddde06c7edd4, 94f2c13f-c3a6-408e-a608-3baf3eded998", + "traceId": "06e2f7be3ba14760aa1dbf11575b4425", + "evidence": "baseline=null, added=285.5, actual=285.5", + "checkedAt": "2026-08-08T07:12:39.632Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "旧版本删除返回并发冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987532007845889?tenantId=10001&version=0" + }, + "http": 200, + "code": "A0409", + "message": "数据版本已变化,请刷新后重试", + "requestId": "6a11f4f3-c87c-4e32-8327-17056fa7315d", + "traceId": "1a9e563cb2bd4f94a22239a3c49bace6", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:12:39.663Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "删除本轮已确认图片及重量结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987532007845889?tenantId=10001&version=1" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1d9fa6ce-c68f-493e-8240-27dfda7c4002, a7a5371a-a4f2-4711-9df7-9d7cf733c6a1", + "traceId": "16bb560710654f64934a7629d41d443a", + "evidence": "resultId=2085987532007845889, version=1", + "checkedAt": "2026-08-08T07:12:39.722Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "删除后回查重量工作区", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ffbfd769-a43d-44be-b9af-153fc95d8252, 30a474ce-0e80-467d-9d34-a0e1e7318f89", + "traceId": "fcaa63515ba7477e983bcf6b42c12c7b", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:39.754Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "删除后结果消失且总毛重恢复基线", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ffbfd769-a43d-44be-b9af-153fc95d8252, 30a474ce-0e80-467d-9d34-a0e1e7318f89", + "traceId": "fcaa63515ba7477e983bcf6b42c12c7b", + "evidence": "resultMissing=true, baseline=null, actual=null", + "checkedAt": "2026-08-08T07:12:39.754Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "删除结果后原始图片不可再读取", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842/2085987521633255426" + }, + "http": 200, + "code": "A0404", + "message": "称重图片不存在", + "requestId": "14e8c9a4-01c2-4397-becc-210f035f9585", + "traceId": "a7e301faca434fa1ae050b5df29756b2", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:12:39.782Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "上传称重图片并执行 OCR", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d419da55-0dc6-413b-9a3e-82cb71d9245e, 130fc231-7923-4ac0-8c62-343e37a61932", + "traceId": "3812f818be114d45846cc19e1042a794", + "evidence": "file=orig_1cf27695-b2c3-44b3-98e3-c0be8b80f79a.JPG, size=3701469", + "checkedAt": "2026-08-08T07:12:41.165Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "上传响应保持文件 ID 字符串契约", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d419da55-0dc6-413b-9a3e-82cb71d9245e, 130fc231-7923-4ac0-8c62-343e37a61932", + "traceId": "3812f818be114d45846cc19e1042a794", + "evidence": "fileIdType=string, status=RECOGNIZED", + "checkedAt": "2026-08-08T07:12:41.166Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "OCR 上传响应字段完整且置信度受限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d419da55-0dc6-413b-9a3e-82cb71d9245e, 130fc231-7923-4ac0-8c62-343e37a61932", + "traceId": "3812f818be114d45846cc19e1042a794", + "evidence": "status=RECOGNIZED, hasWeight=true, confidence=0.50972", + "checkedAt": "2026-08-08T07:12:41.166Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "登记人工录入重量结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "51135b43-ad2a-4557-858c-1d52361b22b9, 45509893-24e0-4e0f-b23b-3a5b8c06acfe", + "traceId": "3325649ddb3f4492a1e8fd2028f9ebdf", + "evidence": "fileId=2085987537739382786", + "checkedAt": "2026-08-08T07:12:41.195Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "重量结果 ID、文件 ID 和初始版本契约正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "51135b43-ad2a-4557-858c-1d52361b22b9, 45509893-24e0-4e0f-b23b-3a5b8c06acfe", + "traceId": "3325649ddb3f4492a1e8fd2028f9ebdf", + "evidence": "resultIdType=string, fileIdType=string, version=0", + "checkedAt": "2026-08-08T07:12:41.195Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "零重量确认被拒绝", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987541763796994/confirm?tenantId=10001" + }, + "http": 200, + "code": "A0422", + "message": "adjustedWeightValue: must be greater than or equal to 0.001", + "requestId": "c589780b-7b9a-4214-9526-9d54520a1de4", + "traceId": "7fce62559d9e480dac4fb5e1ebebe2b8", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:41.271Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "零重量确认被拒绝后回查工作区", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2f43f393-283b-4192-b902-ffe76da6e6fe, c99a02ef-7c14-413c-a9d2-eb66bbfdf531", + "traceId": "e51e3d705c5a4e1fb72022541994ecde", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:41.313Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "零重量确认被拒绝未改变重量结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2f43f393-283b-4192-b902-ffe76da6e6fe, c99a02ef-7c14-413c-a9d2-eb66bbfdf531", + "traceId": "e51e3d705c5a4e1fb72022541994ecde", + "evidence": "version=0, status=NEEDS_MANUAL", + "checkedAt": "2026-08-08T07:12:41.313Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "负重量确认被拒绝", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987541763796994/confirm?tenantId=10001" + }, + "http": 200, + "code": "A0422", + "message": "adjustedWeightValue: must be greater than or equal to 0.001", + "requestId": "aabbdd6d-db3c-4f18-8526-9cb4d14be20d", + "traceId": "f97679dc8113478286cca2ee5fba5410", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:41.338Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "负重量确认被拒绝后回查工作区", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6ddec478-d3c3-47ea-b01e-e1ba1bb135e0, 1118b5a1-d36d-4026-9684-a75c89528690", + "traceId": "b16caf7d324c4089b7545f9574a7483c", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:41.378Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "负重量确认被拒绝未改变重量结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6ddec478-d3c3-47ea-b01e-e1ba1bb135e0, 1118b5a1-d36d-4026-9684-a75c89528690", + "traceId": "b16caf7d324c4089b7545f9574a7483c", + "evidence": "version=0, status=NEEDS_MANUAL", + "checkedAt": "2026-08-08T07:12:41.378Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "LB 0.001换算为零后被拒绝", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987541763796994/confirm?tenantId=10001" + }, + "http": 200, + "code": "A0422", + "message": "换算后重量不能小于 0.001 KG", + "requestId": "6807ae91-6a71-49a1-b257-24cf543979db", + "traceId": "d2c1a8337d8f4987989793f08d6aa96a", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:41.417Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "LB 0.001换算为零后被拒绝后回查工作区", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "83cb7826-ea60-48ff-b961-a8b02ee9ada7, 39e6bc37-4a47-4dd5-9919-8811437ebda6", + "traceId": "fc4a070ef172427e94f0f6eb09bbdb48", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:41.455Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "LB 0.001换算为零后被拒绝未改变重量结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "83cb7826-ea60-48ff-b961-a8b02ee9ada7, 39e6bc37-4a47-4dd5-9919-8811437ebda6", + "traceId": "fc4a070ef172427e94f0f6eb09bbdb48", + "evidence": "version=0, status=NEEDS_MANUAL", + "checkedAt": "2026-08-08T07:12:41.455Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "超出15位整数重量被拒绝", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987541763796994/confirm?tenantId=10001" + }, + "http": 200, + "code": "A0422", + "message": "adjustedWeightValue: numeric value out of bounds (<15 digits>.<3 digits> expected)", + "requestId": "417a6cab-f212-47ec-bf52-07e4c7613cdc", + "traceId": "e1b14fc7edbb409ab78ceab8937e324f", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:41.486Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "超出15位整数重量被拒绝后回查工作区", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "bc1820d9-bdcf-4048-8deb-6d2cfa1efab6, 8079c209-8d79-47c6-844a-3d4ce1fba61f", + "traceId": "1295a8199cf4477d9215bf5c44d5c5d4", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:41.517Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "超出15位整数重量被拒绝未改变重量结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "bc1820d9-bdcf-4048-8deb-6d2cfa1efab6, 8079c209-8d79-47c6-844a-3d4ce1fba61f", + "traceId": "1295a8199cf4477d9215bf5c44d5c5d4", + "evidence": "version=0, status=NEEDS_MANUAL", + "checkedAt": "2026-08-08T07:12:41.517Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "人工改重与确认原子完成", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987541763796994/confirm?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8600eab4-1d6a-4a6d-8105-414467d571fc, b471fb2b-7972-4039-9e0e-04a45112c7ff", + "traceId": "ad050376fab74837b88d8cf2055d619f", + "evidence": "adjusted=10.125 LB", + "checkedAt": "2026-08-08T07:12:41.560Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "LB 人工改重保留输入并正确换算最终KG", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987541763796994/confirm?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8600eab4-1d6a-4a6d-8105-414467d571fc, b471fb2b-7972-4039-9e0e-04a45112c7ff", + "traceId": "ad050376fab74837b88d8cf2055d619f", + "evidence": "adjusted=10.125 LB, finalKg=4.593, expectedKg=4.593", + "checkedAt": "2026-08-08T07:12:41.560Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "删除本轮人工改重图片及结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/weight-results/2085987541763796994?tenantId=10001&version=2" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "58dd8907-7438-4612-a554-e363358bc823, 3dc9e605-1a76-43a2-aab6-8cd5995fd68e", + "traceId": "1f75f2406d034ec28680c92abd1aef0c", + "evidence": "resultId=2085987541763796994, version=2", + "checkedAt": "2026-08-08T07:12:41.615Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "删除后回查重量工作区", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6421d67f-173e-4e12-a5b6-7af7e9065961, 1a3d6b3c-b5a6-43c0-9ce7-65aec58e81e4", + "traceId": "223ad069f2ea406a9e63368d1de3f6b8", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:41.652Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "删除后结果消失且总毛重恢复基线", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6421d67f-173e-4e12-a5b6-7af7e9065961, 1a3d6b3c-b5a6-43c0-9ce7-65aec58e81e4", + "traceId": "223ad069f2ea406a9e63368d1de3f6b8", + "evidence": "resultMissing=true, baseline=null, actual=null", + "checkedAt": "2026-08-08T07:12:41.652Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "删除结果后原始图片不可再读取", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/measurements/10001/2085987466526371842/2085987537739382786" + }, + "http": 200, + "code": "A0404", + "message": "称重图片不存在", + "requestId": "ec267c57-afa1-46e6-b5f5-cde24376a629", + "traceId": "5ce6ca3ff0a247ce9ea32b4eadbbd5a2", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:12:41.688Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "最终清理后回查重量工作区", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4343ff74-7270-4946-9c9b-fb07bdb6fa0f, 64de239f-52f6-4de1-a920-fe5da7eb02be", + "traceId": "c5643856a96c466f898bc9ad434d65a3", + "evidence": "inboundId=2085987466526371842", + "checkedAt": "2026-08-08T07:12:41.731Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "仅清理本轮结果且订单总毛重恢复运行前基线", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987466526371842/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4343ff74-7270-4946-9c9b-fb07bdb6fa0f, 64de239f-52f6-4de1-a920-fe5da7eb02be", + "traceId": "c5643856a96c466f898bc9ad434d65a3", + "evidence": "leftovers=0, baseline=null, actual=null", + "checkedAt": "2026-08-08T07:12:41.731Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试账号登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ee5d818c-b586-442d-bb8c-bddf782ba87d, 31fec0ab-f8f9-4b70-abfd-6d992de7888d", + "traceId": "d8edb005977a4a1988ff3b308c8aeb9a", + "evidence": "username=merchant_admin", + "checkedAt": "2026-08-08T07:12:42.083Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询当前企业资料", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/iam/tenant/profile" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cd753782-a422-4a7c-b6a9-1b14f51bfbac, cee51c35-634d-4e16-8165-cbe2d3ead33c", + "traceId": "8fce1ef0ce48469295c6650b0fcbf99e", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.113Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试企业已审核且客户 ID 有效", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/iam/tenant/profile" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cd753782-a422-4a7c-b6a9-1b14f51bfbac, cee51c35-634d-4e16-8165-cbe2d3ead33c", + "traceId": "8fce1ef0ce48469295c6650b0fcbf99e", + "evidence": "tenantId=10001, status=ACTIVE", + "checkedAt": "2026-08-08T07:12:42.113Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9b38f1a9-bfd4-4d7b-8749-25dae6c8e472, a18d1987-4607-49e9-8e52-18c5aaa4d90d", + "traceId": "942da80278e640b9afd67dc6580ce7a4", + "evidence": "tenantId=10001", + "checkedAt": "2026-08-08T07:12:42.134Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9b38f1a9-bfd4-4d7b-8749-25dae6c8e472, a18d1987-4607-49e9-8e52-18c5aaa4d90d", + "traceId": "942da80278e640b9afd67dc6580ce7a4", + "evidence": "types=SMALL,MEDIUM,LARGE,EXTRA_LARGE", + "checkedAt": "2026-08-08T07:12:42.134Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询国内收货仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/warehouses?page=1&size=200&status=ACTIVE&warehouseType=DOMESTIC" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cdc5a087-a2d9-441b-9e56-c873237254d9, 84ffd7ff-99b4-409a-88ff-09e80266fbb1", + "traceId": "0faf2fe1d71f4f02941ec8a0c209054f", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.163Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在可用国内收货仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/warehouses?page=1&size=200&status=ACTIVE&warehouseType=DOMESTIC" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cdc5a087-a2d9-441b-9e56-c873237254d9, 84ffd7ff-99b4-409a-88ff-09e80266fbb1", + "traceId": "0faf2fe1d71f4f02941ec8a0c209054f", + "evidence": "count=2", + "checkedAt": "2026-08-08T07:12:42.163Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询 FBA 目的仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/warehouses?page=1&size=200&status=ACTIVE&warehouseType=FBA" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fd6e36b1-27ea-4022-8c10-adfdab420abd, bdce8ed6-a13b-4ac6-813d-9e36879e4946", + "traceId": "9b9eba2b51644d94bf304cf8ce7a5f12", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.225Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在可用 FBA 目的仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/warehouses?page=1&size=200&status=ACTIVE&warehouseType=FBA" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fd6e36b1-27ea-4022-8c10-adfdab420abd, bdce8ed6-a13b-4ac6-813d-9e36879e4946", + "traceId": "9b9eba2b51644d94bf304cf8ce7a5f12", + "evidence": "count=200", + "checkedAt": "2026-08-08T07:12:42.226Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询可用计费渠道", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f80aa5aa-aa5d-47e2-aa0a-e2b6b6dd680b, ebf090ee-ef36-4420-a1ab-6a55f66f138a", + "traceId": "ad06fb9460de41848f44541073c5d6ea", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.257Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在带计价税制的可用渠道", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f80aa5aa-aa5d-47e2-aa0a-e2b6b6dd680b, ebf090ee-ef36-4420-a1ab-6a55f66f138a", + "traceId": "ad06fb9460de41848f44541073c5d6ea", + "evidence": "count=15", + "checkedAt": "2026-08-08T07:12:42.257Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询发货客户候选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/partners/candidates?type=SHIPPER" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "07ecfd20-24d6-4e28-b499-3eb8d141356e, a5642b94-7299-4d63-8087-7da336bc012e", + "traceId": "45199b12635f45efb9ee5c3217f4b6a7", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.286Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Client 上传产品图片", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/files/product-images" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b57fc008-2993-4d00-9846-f1fb2b6d1af9, 65560b4c-a5c4-40a5-be5c-28d1c3677781", + "traceId": "79fb0a171b2b4bd2bad6de41822fc664", + "evidence": "contentType=image/png", + "checkedAt": "2026-08-08T07:12:42.322Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "产品图片上传返回字符串文件 ID", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/files/product-images" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b57fc008-2993-4d00-9846-f1fb2b6d1af9, 65560b4c-a5c4-40a5-be5c-28d1c3677781", + "traceId": "79fb0a171b2b4bd2bad6de41822fc664", + "evidence": "fileIdType=string, contentType=image/png", + "checkedAt": "2026-08-08T07:12:42.322Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Client 可下载本轮产品图片", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/files/product-images/2085987546471923713" + }, + "http": 200, + "code": null, + "message": null, + "requestId": "98f2be7b-1e30-4c56-b499-5972d97d738f, 3b7bae50-d80c-4eff-934a-7233f4f2d817", + "traceId": "bd5995cdbf3141f49c89c132e695fe8b", + "evidence": "bytes=68, contentType=image/png", + "checkedAt": "2026-08-08T07:12:42.343Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Client 创建四箱型隔离订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/orders/first-leg" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c55ab1b0-8d44-4ba5-931c-ba244adb5c79, 65a46c25-b112-4d10-a8bd-90ea3c08f516", + "traceId": "83c5eb35845b4d93826853a8c76b8cea", + "evidence": "marker=ADMIN-API-20260808071211341-MOJIA", + "checkedAt": "2026-08-08T07:12:42.433Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 创建订单幂等重放", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/orders/first-leg" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d5b5ef03-d0de-4893-a506-ee8c788db577, d074b4f2-3ad4-4cb2-8724-74c40f1d4ed0", + "traceId": "de218426c5154d8e972656dcdf5c8f67", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.476Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 创建幂等结果一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/orders/first-leg" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d5b5ef03-d0de-4893-a506-ee8c788db577, d074b4f2-3ad4-4cb2-8724-74c40f1d4ed0", + "traceId": "de218426c5154d8e972656dcdf5c8f67", + "evidence": "orderId=2085987546899742721, replayedId=2085987546899742721", + "checkedAt": "2026-08-08T07:12:42.476Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询隔离订单草稿", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/orders/first-leg/2085987546899742721" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2188f736-b7f6-40bc-866c-99d8b3923b8e, 6f96c271-099c-4232-b54f-338eca9776fb", + "traceId": "643e77fba8134f93a19315a027cc4730", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.504Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 草稿身份、marker 和状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/orders/first-leg/2085987546899742721" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2188f736-b7f6-40bc-866c-99d8b3923b8e, 6f96c271-099c-4232-b54f-338eca9776fb", + "traceId": "643e77fba8134f93a19315a027cc4730", + "evidence": "orderNo=FL2085987546899742721, status=DRAFT", + "checkedAt": "2026-08-08T07:12:42.504Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "四箱型产品字段及图片契约完整回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/orders/first-leg/2085987546899742721" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2188f736-b7f6-40bc-866c-99d8b3923b8e, 6f96c271-099c-4232-b54f-338eca9776fb", + "traceId": "643e77fba8134f93a19315a027cc4730", + "evidence": "cargoes=4, imageFileId=2085987546471923713", + "checkedAt": "2026-08-08T07:12:42.504Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 提交隔离订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/merchant/v1/orders/first-leg/2085987546899742721/submit" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9e690597-0644-4d72-a9ae-8bb82f0023b2, e613b0a1-d99b-4985-8b04-90c321243281", + "traceId": "3de51bf2bc8a40e39074477f20427074", + "evidence": "orderId=2085987546899742721", + "checkedAt": "2026-08-08T07:12:42.585Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 回查已提交订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/orders/first-leg/2085987546899742721" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "84877c27-e678-43e0-b37c-e8733f795a9c, 30566678-033c-4d6f-b877-47734baae319", + "traceId": "e29154fd301543fc83835a69b237c04f", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.614Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 订单已进入待审核状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/orders/first-leg/2085987546899742721" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "84877c27-e678-43e0-b37c-e8733f795a9c, 30566678-033c-4d6f-b877-47734baae319", + "traceId": "e29154fd301543fc83835a69b237c04f", + "evidence": "status=SUBMITTED", + "checkedAt": "2026-08-08T07:12:42.615Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询统一订单列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders?page=1&size=100&tenantId=10001&orderNo=FL2085987546899742721" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e1f26964-4567-4893-8822-80c96df6fcfa, d16ae16e-b77b-4537-902d-4060ede21a85", + "traceId": "c36ea9740d174d4c86f0e606fc2e9e96", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.656Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 统一订单列表只核对本轮订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders?page=1&size=100&tenantId=10001&orderNo=FL2085987546899742721" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e1f26964-4567-4893-8822-80c96df6fcfa, d16ae16e-b77b-4537-902d-4060ede21a85", + "traceId": "c36ea9740d174d4c86f0e606fc2e9e96", + "evidence": "orderId=2085987546899742721, found=true", + "checkedAt": "2026-08-08T07:12:42.656Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询统一订单详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/2085987546899742721?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "06d5bdf0-95b7-4ce2-9170-cd12c62735ca, 8a1d4725-431c-418a-9663-4cb7b806e56f", + "traceId": "39fb98a15bac4ae29f62748e41d4bec0", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.696Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 统一订单详情身份与待审核状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/2085987546899742721?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "06d5bdf0-95b7-4ce2-9170-cd12c62735ca, 8a1d4725-431c-418a-9663-4cb7b806e56f", + "traceId": "39fb98a15bac4ae29f62748e41d4bec0", + "evidence": "mainStatus=PENDING_REVIEW, timeline=2", + "checkedAt": "2026-08-08T07:12:42.696Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询头程订单列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg?tenantId=10001&keyword=FL2085987546899742721&page=1&size=100" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8b056fe9-a1eb-4e06-a99d-e2fd287da0f4, eb860230-72c5-4ca9-8f31-2d846bbdda28", + "traceId": "e038924ecbdd4e3c9aa425536b95e63a", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.726Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 头程订单列表只核对本轮订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg?tenantId=10001&keyword=FL2085987546899742721&page=1&size=100" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8b056fe9-a1eb-4e06-a99d-e2fd287da0f4, eb860230-72c5-4ca9-8f31-2d846bbdda28", + "traceId": "e038924ecbdd4e3c9aa425536b95e63a", + "evidence": "orderId=2085987546899742721, found=true", + "checkedAt": "2026-08-08T07:12:42.726Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询头程订单详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/2085987546899742721?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "42842dba-9fe0-40f7-b421-8f312aaf9a24, dc9949ae-ffbd-42e3-b858-0489d78f1ec6", + "traceId": "576e06dfdcb04e45a99e2779095ff63c", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.757Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 头程订单详情聚合结构完整", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/2085987546899742721?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "42842dba-9fe0-40f7-b421-8f312aaf9a24, dc9949ae-ffbd-42e3-b858-0489d78f1ec6", + "traceId": "576e06dfdcb04e45a99e2779095ff63c", + "evidence": "cargoes=4, history=2", + "checkedAt": "2026-08-08T07:12:42.757Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "四箱型产品字段及图片契约完整回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/2085987546899742721?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "42842dba-9fe0-40f7-b421-8f312aaf9a24, dc9949ae-ffbd-42e3-b858-0489d78f1ec6", + "traceId": "576e06dfdcb04e45a99e2779095ff63c", + "evidence": "cargoes=4, imageFileId=2085987546471923713", + "checkedAt": "2026-08-08T07:12:42.757Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 为本轮订单添加内部备注", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/orders/first-leg/2085987546899742721/internal-notes?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6ff75867-f479-42c9-81a5-c0901c69b517, 3df29182-5fea-4b27-9225-e1bc41681e1a", + "traceId": "2a9b509748d7408eb6d9af9344675150", + "evidence": "", + "checkedAt": "2026-08-08T07:12:42.789Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 审核通过本轮订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/orders/first-leg/2085987546899742721/approve?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2e95435b-35d3-483c-a4e2-0646b560c764, 5d20306b-242b-4373-8dc5-1d4499ee7d3c", + "traceId": "62b04d7496384a42b8c3dcbb9fca2fc0", + "evidence": "orderId=2085987546899742721", + "checkedAt": "2026-08-08T07:12:42.822Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "审核后生成隔离入库单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/2085987546899742721?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1edc30c3-5610-49f4-8586-f6029e968255, 3549d7ca-cfb1-4510-b0cf-3157b67ad883", + "traceId": "180b94c713054c5d9dd030298c80cae8", + "evidence": "inboundId=2085987554770333697", + "checkedAt": "2026-08-08T07:12:44.999Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询本轮入库单详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987554770333697?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9321ac3c-9683-41e2-a0ab-d7a77d8feb6f, 1b4f0c9c-79e6-405e-970a-266e320f3cd8", + "traceId": "c6f3f939e16a4f2c9aeed301d162c085", + "evidence": "inboundId=2085987554770333697", + "checkedAt": "2026-08-08T07:12:45.040Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "隔离入库单 marker 来源与可测量状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987554770333697?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9321ac3c-9683-41e2-a0ab-d7a77d8feb6f, 1b4f0c9c-79e6-405e-970a-266e320f3cd8", + "traceId": "c6f3f939e16a4f2c9aeed301d162c085", + "evidence": "markerFound=true, status=WAIT_MEASURE", + "checkedAt": "2026-08-08T07:12:45.040Z" + }, + { + "module": "orders", + "scenario": null, + "name": "入库单详情包含托盘库位、文件、备注和状态历史", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987554770333697?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9321ac3c-9683-41e2-a0ab-d7a77d8feb6f, 1b4f0c9c-79e6-405e-970a-266e320f3cd8", + "traceId": "c6f3f939e16a4f2c9aeed301d162c085", + "evidence": "inboundId=2085987554770333697, history=1", + "checkedAt": "2026-08-08T07:12:45.040Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询入库单列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds?tenantId=10001&inboundCode=RK-2085987546899742721&page=1&size=100" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9f8aaac8-b00e-429b-a7ef-e8d6a4681578, 9011aa25-ce9f-48be-b420-1c9e148e2414", + "traceId": "d58faf87d6d944e492c36ebd623bb103", + "evidence": "", + "checkedAt": "2026-08-08T07:12:45.073Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 入库单列表只核对本轮入库单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds?tenantId=10001&inboundCode=RK-2085987546899742721&page=1&size=100" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9f8aaac8-b00e-429b-a7ef-e8d6a4681578, 9011aa25-ce9f-48be-b420-1c9e148e2414", + "traceId": "d58faf87d6d944e492c36ebd623bb103", + "evidence": "inboundId=2085987554770333697, total=1", + "checkedAt": "2026-08-08T07:12:45.073Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询本轮订单履约任务", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/tasks/by-order/2085987546899742721?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cb95b956-4cfb-4f2e-91fe-cfb8e78979dd, 115fdbce-985e-478f-a602-ade946c4033a", + "traceId": "4f4e898b96dc402485b8fead7bffda33", + "evidence": "新订单应生成可查询的履约任务", + "checkedAt": "2026-08-08T07:12:45.110Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "履约任务与本轮订单和客户一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/tasks/by-order/2085987546899742721?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cb95b956-4cfb-4f2e-91fe-cfb8e78979dd, 115fdbce-985e-478f-a602-ade946c4033a", + "traceId": "4f4e898b96dc402485b8fead7bffda33", + "evidence": "taskId=2085987554761945089, status=PENDING_ASSIGNMENT", + "checkedAt": "2026-08-08T07:12:45.110Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 查询本轮履约任务分配历史", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/tasks/2085987554761945089/assignment-history?tenantId=10001&page=1&size=20" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d90cc9c5-ba5e-4b5a-9609-2a7ec72d3af6, 5129049e-8144-4713-929b-9e8d0671f442", + "traceId": "448e7cef5385489d8e88867ad11beee4", + "evidence": "", + "checkedAt": "2026-08-08T07:12:45.149Z" + }, + { + "module": "orders", + "scenario": null, + "name": "履约分配历史分页结构正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/tasks/2085987554761945089/assignment-history?tenantId=10001&page=1&size=20" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d90cc9c5-ba5e-4b5a-9609-2a7ec72d3af6, 5129049e-8144-4713-929b-9e8d0671f442", + "traceId": "448e7cef5385489d8e88867ad11beee4", + "evidence": "taskId=2085987554761945089, total=0", + "checkedAt": "2026-08-08T07:12:45.149Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 受理本轮订单", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/orders/first-leg/2085987546899742721/accept?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "66daae95-44a2-447b-bd64-86b303101a5c, e6994cd8-b46a-4b3d-bfe3-05b48465f93c", + "traceId": "7456104ed92c455e8da24d05f7b53827", + "evidence": "", + "checkedAt": "2026-08-08T07:12:45.194Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 启动本轮订单履约", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/orders/first-leg/2085987546899742721/start?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a8d0751e-09e5-417b-a7a1-c2ce8cc85a5a, fd2156ff-9b84-48dd-9f86-f0228acbb381", + "traceId": "f9082d635de6457fac11c57fcaf6ce58", + "evidence": "", + "checkedAt": "2026-08-08T07:12:45.227Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Admin 回查本轮订单履约状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/2085987546899742721?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "22d29c2d-1aab-4305-821a-183e4576943c, 506306e5-0c3a-4fa7-bb9c-700f5d36f0bf", + "traceId": "37df56401e224eda98ed5b41840c34e5", + "evidence": "", + "checkedAt": "2026-08-08T07:12:45.272Z" + }, + { + "module": "orders", + "scenario": null, + "name": "本轮订单已进入处理中且保留状态历史", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/first-leg/2085987546899742721?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "22d29c2d-1aab-4305-821a-183e4576943c, 506306e5-0c3a-4fa7-bb9c-700f5d36f0bf", + "traceId": "37df56401e224eda98ed5b41840c34e5", + "evidence": "status=PROCESSING, history=5", + "checkedAt": "2026-08-08T07:12:45.272Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "查询隔离入库单详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987554770333697?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e0f03419-0322-4fcd-8cd5-4b166cc72a6b, 679cf80e-82c0-4d74-9c7d-bee6007e2202", + "traceId": "482b9dff2eaa4e3c8361cd115729c649", + "evidence": "inboundId=2085987554770333697, tenantId=10001", + "checkedAt": "2026-08-08T07:12:45.314Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "隔离入库单身份与可测量状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987554770333697?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e0f03419-0322-4fcd-8cd5-4b166cc72a6b, 679cf80e-82c0-4d74-9c7d-bee6007e2202", + "traceId": "482b9dff2eaa4e3c8361cd115729c649", + "evidence": "identity=true, status=WAIT_MEASURE", + "checkedAt": "2026-08-08T07:12:45.314Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "生成箱唛 PDF 并冻结稳定箱码", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/inbounds/2085987554770333697/carton-label-pdf?tenantId=10001" + }, + "http": 200, + "code": null, + "message": "13891 bytes (application/pdf)", + "requestId": "4b86b7b3-f327-4ece-b6b6-fde9b67e483f, 710e8f76-349c-40a5-8250-5b629164b341, f92edefb-b55a-44c1-8545-8a0ac1baf589", + "traceId": "8975da9a590c46ce88e73a95b9a98b1c, 015b67f45dd343b6b18e5aad6345a11b", + "evidence": "contentType=application/pdf, bytes=13891", + "checkedAt": "2026-08-08T07:12:45.797Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "首次打印后回查冻结箱数", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987554770333697?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "23235f8f-0c67-4be2-9fc2-1f79c4631000, 0e61073c-2bb4-4bf9-9f97-de8f5d9ea9b5", + "traceId": "a37545cf064b454f888e9bb7017028ce", + "evidence": "", + "checkedAt": "2026-08-08T07:12:45.830Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "首次打印按订单货物冻结原始总箱数", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987554770333697?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "23235f8f-0c67-4be2-9fc2-1f79c4631000, 0e61073c-2bb4-4bf9-9f97-de8f5d9ea9b5", + "traceId": "a37545cf064b454f888e9bb7017028ce", + "evidence": "inboundCodeStable=true, totalPackageCount=4", + "checkedAt": "2026-08-08T07:12:45.830Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "重复整单打印复用已冻结箱码映射", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/inbounds/2085987554770333697/carton-label-pdf?tenantId=10001" + }, + "http": 200, + "code": null, + "message": "13891 bytes (application/pdf)", + "requestId": "762733bf-60f1-4eca-a9aa-bb7fc4927c6f, 48de6071-3942-41be-900d-af95e5622afb, e1a7b7db-b49e-404d-8ad9-445796ff7dd7", + "traceId": "5c171e977c4f48c4a8171cc5fe0fe3b1, f2896118f36c47ba8dc289749c073123", + "evidence": "boxCode=RK-2085987546899742721#4-1, contentType=application/pdf, bytes=13891", + "checkedAt": "2026-08-08T07:12:46.002Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "指定第1箱补打复用已冻结箱码映射", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/inbounds/2085987554770333697/carton-label-pdf?tenantId=10001&cartonIndex=1" + }, + "http": 200, + "code": null, + "message": "7644 bytes (application/pdf)", + "requestId": "bbfbf12f-da0d-42df-9a66-1a4a06c66397, 6c69c149-0609-4756-87f1-8884db301356, 22352c8f-4ba0-47dc-8f39-6bb4297b2ec3", + "traceId": "8e4b3cc4630c41bba1d786e68a8c3cbd, ba974e6a907e4a39bbe29218732ae89e", + "evidence": "boxCode=RK-2085987546899742721#4-1, cartonIndex=1, contentType=application/pdf, bytes=7644", + "checkedAt": "2026-08-08T07:12:46.168Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "模拟墨家首次扫描单箱", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/carton-scans?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ddfa69a9-a19a-462d-8978-d689b80dbe06, 8836b1f1-a07b-4390-97cf-1034609a13cd", + "traceId": "9f2da44aa47540ebb0565ee814522736", + "evidence": "boxCode=RK-2085987546899742721#4-1, machineNo=MJ-ADMIN-E2E-01", + "checkedAt": "2026-08-08T07:12:46.258Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "首次扫描新增一条且默认代表1箱", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/carton-scans?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ddfa69a9-a19a-462d-8978-d689b80dbe06, 8836b1f1-a07b-4390-97cf-1034609a13cd", + "traceId": "9f2da44aa47540ebb0565ee814522736", + "evidence": "created=true, confirmedPackageCount=1", + "checkedAt": "2026-08-08T07:12:46.258Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "重复打印及指定箱补打后原箱码仍可解析", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/carton-scans?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ddfa69a9-a19a-462d-8978-d689b80dbe06, 8836b1f1-a07b-4390-97cf-1034609a13cd", + "traceId": "9f2da44aa47540ebb0565ee814522736", + "evidence": "boxCodeStable=true, resolvedInboundId=2085987554770333697", + "checkedAt": "2026-08-08T07:12:46.258Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "查询箱级测量详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "89771f0d-00bc-4079-981d-8d82710195b9, 8ad18ae9-237a-4978-b763-81baed8de1cf", + "traceId": "7fbde2ca4036406883b815a66a140852", + "evidence": "measurementId=2085987562945032193", + "checkedAt": "2026-08-08T07:12:46.286Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "箱级查询回显箱码、尺寸、图片与设备信息", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "89771f0d-00bc-4079-981d-8d82710195b9, 8ad18ae9-237a-4978-b763-81baed8de1cf", + "traceId": "7fbde2ca4036406883b815a66a140852", + "evidence": "itemFound=true, imageFileId=2085987562867458049", + "checkedAt": "2026-08-08T07:12:46.286Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "人工确认当前测量代表箱数", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/items/2085987562957615106/confirmed-package-count?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "02422fb9-5ef4-48e2-b470-81335f94ec87, cd231092-90d2-4a05-92a1-86044ca05f8f", + "traceId": "74e5ece869a749848c38ba568274903c", + "evidence": "confirmedPackageCount=4", + "checkedAt": "2026-08-08T07:12:46.335Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "人工箱数更新且测量版本递增", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/items/2085987562957615106/confirmed-package-count?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "02422fb9-5ef4-48e2-b470-81335f94ec87, cd231092-90d2-4a05-92a1-86044ca05f8f", + "traceId": "74e5ece869a749848c38ba568274903c", + "evidence": "version=2", + "checkedAt": "2026-08-08T07:12:46.335Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "同箱号重新扫描覆盖当前记录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/carton-scans?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9bdf3890-763f-4cec-8c2e-f4e9f43fea01, 9f6af636-3860-42ad-92a4-28e3ecac8ae1", + "traceId": "70ad1ab6ca7547bea2d9c2814bd7ceb5", + "evidence": "boxCode=RK-2085987546899742721#4-1, machineNo=MJ-ADMIN-E2E-02", + "checkedAt": "2026-08-08T07:12:46.401Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "覆盖保留同一条记录和人工箱数", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/carton-scans?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9bdf3890-763f-4cec-8c2e-f4e9f43fea01, 9f6af636-3860-42ad-92a4-28e3ecac8ae1", + "traceId": "70ad1ab6ca7547bea2d9c2814bd7ceb5", + "evidence": "sameItem=true, confirmedPackageCount=4", + "checkedAt": "2026-08-08T07:12:46.401Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "回查覆盖后的尺寸与体积结果", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0300567c-eb1f-4b8f-9bf6-0a2732e273ee, 64eeac19-0a43-40cb-8df4-b5db7f7e7f1a", + "traceId": "a785bd09bf5c4fc7845e17ce97484d10", + "evidence": "", + "checkedAt": "2026-08-08T07:12:46.426Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "覆盖尺寸、箱数和服务端体积公式正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0300567c-eb1f-4b8f-9bf6-0a2732e273ee, 64eeac19-0a43-40cb-8df4-b5db7f7e7f1a", + "traceId": "a785bd09bf5c4fc7845e17ce97484d10", + "evidence": "weightedOuter=64x54x54, unitVolume=0.187, totalVolume=0.748, volumeWeight=124.916, girth=204.5", + "checkedAt": "2026-08-08T07:12:46.426Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "保存同一测量批次草稿", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/draft?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "91fc7727-685d-49b5-996c-0c8475bb704b, 2bfd5dbb-3ccf-4e58-8451-b9bd7d2f4bb2", + "traceId": "ba16fd49660c4a0aa04b4824687d7b13", + "evidence": "measurementId=2085987562945032193, items=1", + "checkedAt": "2026-08-08T07:12:46.492Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "草稿沿用批次并递增版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/draft?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "91fc7727-685d-49b5-996c-0c8475bb704b, 2bfd5dbb-3ccf-4e58-8451-b9bd7d2f4bb2", + "traceId": "ba16fd49660c4a0aa04b4824687d7b13", + "evidence": "status=DRAFT, version=4", + "checkedAt": "2026-08-08T07:12:46.493Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "提交测量审核", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/submit?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6f91fbd4-b986-41af-8fe0-b9c149d46c58, e47c4cac-365a-4cc4-b663-f90fb6c1b7e8", + "traceId": "099e019fd2c24f758401dc0da0f9476f", + "evidence": "measurementId=2085987562945032193", + "checkedAt": "2026-08-08T07:12:46.537Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "提交后进入待测量审核状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/submit?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6f91fbd4-b986-41af-8fe0-b9c149d46c58, e47c4cac-365a-4cc4-b663-f90fb6c1b7e8", + "traceId": "099e019fd2c24f758401dc0da0f9476f", + "evidence": "processStatus=MEASURE_PENDING, reviewStatus=PENDING", + "checkedAt": "2026-08-08T07:12:46.537Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "测量提交后拒绝设备覆盖并返回中文提示", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement/carton-scans?tenantId=10001" + }, + "http": 200, + "code": "A0409", + "message": "测量已提交,设备不能新增或覆盖数据", + "requestId": "ff77f66d-b4a0-4169-bc94-7ac9d62fa629", + "traceId": "36956dc5d61b4413bd315f2e7e131c68", + "evidence": "HTTP=200, code=A0409, chineseMessage=true", + "checkedAt": "2026-08-08T07:12:46.570Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "审核前读取最新入库单版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987554770333697?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e8985013-123b-405a-8caa-572b451278bd, f5b25b60-b346-4b87-9f58-fa2a0756f0db", + "traceId": "4f77b0e10fb541dfb3d78d710a9af2a7", + "evidence": "", + "checkedAt": "2026-08-08T07:12:46.604Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "审核前状态和版本有效", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/inbounds/2085987554770333697?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e8985013-123b-405a-8caa-572b451278bd, f5b25b60-b346-4b87-9f58-fa2a0756f0db", + "traceId": "4f77b0e10fb541dfb3d78d710a9af2a7", + "evidence": "status=MEASURE_PENDING, version=1", + "checkedAt": "2026-08-08T07:12:46.604Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "Admin 审核通过墨家测量", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/inbounds/2085987554770333697/measurements/approve?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ac2c71b3-dca9-4163-9327-27a3c0fbcaf5, f97634d0-a525-48c0-8235-b4d0bf80fb72", + "traceId": "85468c839afe4b5fad8b071ad67e1497", + "evidence": "measurementId=2085987562945032193", + "checkedAt": "2026-08-08T07:12:46.648Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "查询审核后的最终测量状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0a506c9d-24f0-4280-82ca-1e66b52965da, 7dbaccd1-82c9-401e-8a55-2a0e799f1d1f", + "traceId": "1c7300b6574846a0942bc0605e381ba4", + "evidence": "", + "checkedAt": "2026-08-08T07:12:46.678Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "审核后入库与测量状态闭环且结果未变化", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/inbounds/2085987554770333697/measurement?tenantId=10001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0a506c9d-24f0-4280-82ca-1e66b52965da, 7dbaccd1-82c9-401e-8a55-2a0e799f1d1f", + "traceId": "1c7300b6574846a0942bc0605e381ba4", + "evidence": "processStatus=INBOUNDED, measurementStatus=APPROVED, packages=4", + "checkedAt": "2026-08-08T07:12:46.678Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "order-service 状态响应使用统一成功体", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "364ee6b7-4614-4b70-b03e-475f77e65367, 8dabcc5e-eb07-4ff4-8cdd-3f435bdad721", + "traceId": "0fc390d46b8d41f2a0a92f7593977333", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T07:12:46.704Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "order-service 状态字段完整且 readiness 语义明确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "364ee6b7-4614-4b70-b03e-475f77e65367, 8dabcc5e-eb07-4ff4-8cdd-3f435bdad721", + "traceId": "0fc390d46b8d41f2a0a92f7593977333", + "evidence": "service=order-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T07:12:46.705Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "firstleg-service 状态响应使用统一成功体", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "11186198-3c97-4e5c-a8c3-cef9af35f88f, 7f7ae33d-8d84-44b4-a2c5-a0791dc07ee3", + "traceId": "1e4dd44b04ca465d9c4f994287c46803", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T07:12:46.740Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "firstleg-service 状态字段完整且 readiness 语义明确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "11186198-3c97-4e5c-a8c3-cef9af35f88f, 7f7ae33d-8d84-44b4-a2c5-a0791dc07ee3", + "traceId": "1e4dd44b04ca465d9c4f994287c46803", + "evidence": "service=firstleg-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T07:12:46.740Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "file-service 状态响应使用统一成功体", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ff119cc6-d0df-4b66-a379-81e584a9b142, cd6122bd-2cdc-4635-b574-60a2ba55801e", + "traceId": "b11395a1db2744fa817cc380cb36c23b", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T07:12:46.764Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "file-service 状态字段完整且 readiness 语义明确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ff119cc6-d0df-4b66-a379-81e584a9b142, cd6122bd-2cdc-4635-b574-60a2ba55801e", + "traceId": "b11395a1db2744fa817cc380cb36c23b", + "evidence": "service=file-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T07:12:46.765Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "warehouse-service 状态响应使用统一成功体", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouses/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8b25807a-d2f2-4e43-aa32-160dffd2d5c8, 3ae55fef-fad5-4548-9a87-4fd8ea0402e5", + "traceId": "2307961df6be44eda2e20746e50f755e", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T07:12:46.808Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "warehouse-service 状态字段完整且 readiness 语义明确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouses/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8b25807a-d2f2-4e43-aa32-160dffd2d5c8, 3ae55fef-fad5-4548-9a87-4fd8ea0402e5", + "traceId": "2307961df6be44eda2e20746e50f755e", + "evidence": "service=warehouse-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T07:12:46.808Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "平台接口未携带令牌返回 401", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/status" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "b16bc7a4-479", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T07:12:46.838Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "平台接口伪造令牌返回 401", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/status" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "3fab41c4-480", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T07:12:46.852Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "未认证请求不返回业务成功码", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/status" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "b16bc7a4-481", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T07:12:46.868Z" + }, + { + "module": "supplemental", + "scenario": "master-data-readonly", + "name": "仓库分页查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=5&status=ACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7847545b-50ee-4022-acf7-31774d0710c5, ce3d75c4-e900-4526-9e84-52e82001f7fa", + "traceId": "dda6c12f8de44713b259cc81a420a0db", + "evidence": "path=/api/platform/v1/warehouse-admin?page=1&size=5&status=ACTIVE", + "checkedAt": "2026-08-08T07:12:46.897Z" + }, + { + "module": "supplemental", + "scenario": "master-data-readonly", + "name": "仓库分页结构与记录数组正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=5&status=ACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7847545b-50ee-4022-acf7-31774d0710c5, ce3d75c4-e900-4526-9e84-52e82001f7fa", + "traceId": "dda6c12f8de44713b259cc81a420a0db", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T07:12:46.897Z" + }, + { + "module": "supplemental", + "scenario": "master-data-readonly", + "name": "仓库筛选分页查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=5&tenantId=0&warehouseType=FBA" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a758fa66-a5d8-42bd-bf6d-8c4fab21ec77, 1f864cbd-19b8-4494-8bbe-3089b9fd7a89", + "traceId": "382a7ebdfd1043ad925b37a65a3226ba", + "evidence": "path=/api/platform/v1/warehouse-admin?page=1&size=5&tenantId=0&warehouseType=FBA", + "checkedAt": "2026-08-08T07:12:46.934Z" + }, + { + "module": "supplemental", + "scenario": "master-data-readonly", + "name": "仓库筛选分页结构与记录数组正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=5&tenantId=0&warehouseType=FBA" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a758fa66-a5d8-42bd-bf6d-8c4fab21ec77, 1f864cbd-19b8-4494-8bbe-3089b9fd7a89", + "traceId": "382a7ebdfd1043ad925b37a65a3226ba", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T07:12:46.935Z" + }, + { + "module": "supplemental", + "scenario": "master-data-readonly", + "name": "仓库非法状态安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=5&status=NOT_A_STATUS" + }, + "http": 200, + "code": "A0422", + "message": "status: must match \"ACTIVE|INACTIVE\"", + "requestId": "f28ebc4c-048a-49be-870d-5b3b2e360ee4", + "traceId": "a66ac02ea6a84a99a01a6625e98f98e2", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:46.996Z" + }, + { + "module": "supplemental", + "scenario": "master-data-readonly", + "name": "仓库客户作用域安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin?page=1&size=5&tenantId=10001" + }, + "http": 200, + "code": "A0400", + "message": "Platform resource scope must be 0 / 平台公共资源作用域必须为0", + "requestId": "0fa1d755-b687-4153-84f8-cc35ab3fba4c", + "traceId": "259cf3a8239949e3a29b0c4b6175396e", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T07:12:47.034Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "库位分页查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations?page=1&size=5&tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "12c7c60e-9d6e-4540-abd6-1d94d83cae86, 6efc6017-b523-4bcc-84a6-08e3d3cc3bfa", + "traceId": "5b2121dd4d6243d896d1795f199e93dc", + "evidence": "path=/api/platform/v1/locations?page=1&size=5&tenantId=0", + "checkedAt": "2026-08-08T07:12:47.080Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "库位分页结构与记录数组正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations?page=1&size=5&tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "12c7c60e-9d6e-4540-abd6-1d94d83cae86, 6efc6017-b523-4bcc-84a6-08e3d3cc3bfa", + "traceId": "5b2121dd4d6243d896d1795f199e93dc", + "evidence": "records=3, current=1, size=5", + "checkedAt": "2026-08-08T07:12:47.080Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "托盘分页查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets?page=1&size=5&tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "32d9cef1-7afc-4c42-9e2d-6e2a22a52da3, 7b11d5cf-dddb-44f2-b979-d791d2482ae7", + "traceId": "712f4f0198984676b06e9c1672589f6d", + "evidence": "path=/api/platform/v1/pallets?page=1&size=5&tenantId=0", + "checkedAt": "2026-08-08T07:12:47.118Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "托盘分页结构与记录数组正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets?page=1&size=5&tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "32d9cef1-7afc-4c42-9e2d-6e2a22a52da3, 7b11d5cf-dddb-44f2-b979-d791d2482ae7", + "traceId": "712f4f0198984676b06e9c1672589f6d", + "evidence": "records=3, current=1, size=5", + "checkedAt": "2026-08-08T07:12:47.118Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "库位仓库筛选分页查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations?page=1&size=5&tenantId=0&warehouseId=193000000000000001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "16f7046a-f71b-4e5f-ae14-266bb03d4513, c3291bb2-c5e8-4046-9c45-80d5324391d8", + "traceId": "3c54e486345e4e3d893b9bfbc3ddf77e", + "evidence": "path=/api/platform/v1/locations?page=1&size=5&tenantId=0&warehouseId=193000000000000001", + "checkedAt": "2026-08-08T07:12:47.146Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "库位仓库筛选分页结构与记录数组正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations?page=1&size=5&tenantId=0&warehouseId=193000000000000001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "16f7046a-f71b-4e5f-ae14-266bb03d4513, c3291bb2-c5e8-4046-9c45-80d5324391d8", + "traceId": "3c54e486345e4e3d893b9bfbc3ddf77e", + "evidence": "records=0, current=1, size=5", + "checkedAt": "2026-08-08T07:12:47.146Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "托盘仓库筛选分页查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets?page=1&size=5&tenantId=0&warehouseId=193000000000000001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8a45565f-b0fa-4552-9abe-a073d5983627, 76172f31-da4d-441e-b0dc-2132283b658b", + "traceId": "fcc13b9f1cb946ff91393c532f89e4b3", + "evidence": "path=/api/platform/v1/pallets?page=1&size=5&tenantId=0&warehouseId=193000000000000001", + "checkedAt": "2026-08-08T07:12:47.175Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "托盘仓库筛选分页结构与记录数组正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets?page=1&size=5&tenantId=0&warehouseId=193000000000000001" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8a45565f-b0fa-4552-9abe-a073d5983627, 76172f31-da4d-441e-b0dc-2132283b658b", + "traceId": "fcc13b9f1cb946ff91393c532f89e4b3", + "evidence": "records=0, current=1, size=5", + "checkedAt": "2026-08-08T07:12:47.175Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "库位客户作用域安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations?page=1&size=5&tenantId=10001" + }, + "http": 200, + "code": "A0400", + "message": "平台公共资源作用域必须为0", + "requestId": "2b3a1bbc-4bad-4ccd-bc7b-ce25578ea9b3", + "traceId": "9a314610a187425cb77aa8ac9b388e4a", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T07:12:47.203Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "托盘客户作用域安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets?page=1&size=5&tenantId=10001" + }, + "http": 200, + "code": "A0400", + "message": "平台公共资源作用域必须为0", + "requestId": "3d1f4585-7a48-4dde-a420-a4e86a8ff846", + "traceId": "66d3bbe02b0e42fd9e590f83c1381692", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T07:12:47.232Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "库位非法状态安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations?page=1&size=5&tenantId=0&status=ALLOCATED" + }, + "http": 200, + "code": "A0422", + "message": "status: must match \"^(AVAILABLE|RESERVED|OCCUPIED|DISABLED)$\"", + "requestId": "11ba55b3-3f87-4859-b2cc-55f1241b9b41", + "traceId": "f59f985352594d8999f6a2a8360a0897", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:47.268Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "库位过期版本/不存在资源不泄露或误修改数据", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/999999999999?tenantId=0&warehouseId=999999999999" + }, + "http": 200, + "code": "A0404", + "message": "库位不存在或超出当前企业仓库数据范围", + "requestId": "b106cd73-40d8-4ddc-9842-0afd0e832185", + "traceId": "2bf8872fe1c4491a83e1f7afba5e0993", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:12:47.298Z" + }, + { + "module": "supplemental", + "scenario": "warehouse-resources", + "name": "托盘占用资源保护边界不泄露或误修改数据", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/999999999999?tenantId=0&warehouseId=999999999999" + }, + "http": 200, + "code": "A0404", + "message": "托盘不存在或不属于当前租户和仓库", + "requestId": "bbb1a3b3-02a3-4d44-a49e-48d082856b76", + "traceId": "eeb403fbf9554d3f9334a44dd094a640", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:12:47.334Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "快递公司分页查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=ACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "65e557e0-3e0b-4908-be92-e81cf404b227, 51017a02-4dc5-4239-b429-13b652c8a34c", + "traceId": "953ce97eec21456e851a74dde7f7947a", + "evidence": "path=/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=ACTIVE", + "checkedAt": "2026-08-08T07:12:47.361Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "快递公司分页结构与记录数组正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=ACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "65e557e0-3e0b-4908-be92-e81cf404b227, 51017a02-4dc5-4239-b429-13b652c8a34c", + "traceId": "953ce97eec21456e851a74dde7f7947a", + "evidence": "records=4, current=1, size=5", + "checkedAt": "2026-08-08T07:12:47.361Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "快递公司停用筛选分页查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "82b59428-00cd-46b3-9270-3408209c38c0, ff2aa358-7aa9-46cb-bb98-cb7117ede117", + "traceId": "6a6ec433a57c4c96b3e9c432a3623a77", + "evidence": "path=/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=INACTIVE", + "checkedAt": "2026-08-08T07:12:47.393Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "快递公司停用筛选分页结构与记录数组正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "82b59428-00cd-46b3-9270-3408209c38c0, ff2aa358-7aa9-46cb-bb98-cb7117ede117", + "traceId": "6a6ec433a57c4c96b3e9c432a3623a77", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T07:12:47.393Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "快递公司状态枚举过滤不混入其他状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "82b59428-00cd-46b3-9270-3408209c38c0, ff2aa358-7aa9-46cb-bb98-cb7117ede117", + "traceId": "6a6ec433a57c4c96b3e9c432a3623a77", + "evidence": "records=5", + "checkedAt": "2026-08-08T07:12:47.393Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "快递公司无效筛选参数安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=UNKNOWN" + }, + "http": 200, + "code": "A0422", + "message": "status: must match \"^(ACTIVE|INACTIVE)$\"", + "requestId": "0e62b952-e1b7-4df8-b71d-5ff2d7d59a16", + "traceId": "87f2899a0e964f2fa71fabfd9b28855d", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:47.414Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "往来单位分页查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=5&tenantId=0&status=ACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b003e153-ac94-4324-9479-eae4595b95fd, 481c8af7-dff7-453f-9499-18b5441fe212", + "traceId": "0679809ef1df46e6bfcbfc6b444c6072", + "evidence": "path=/api/platform/v1/partners?page=1&size=5&tenantId=0&status=ACTIVE", + "checkedAt": "2026-08-08T07:12:47.460Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "往来单位分页结构与记录数组正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=5&tenantId=0&status=ACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b003e153-ac94-4324-9479-eae4595b95fd, 481c8af7-dff7-453f-9499-18b5441fe212", + "traceId": "0679809ef1df46e6bfcbfc6b444c6072", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T07:12:47.460Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "往来单位停用筛选分页查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=5&tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d200471e-9d8e-4ac9-97e6-75b1d20c415f, a596f15d-bb40-42fe-a738-beab77fadbc6", + "traceId": "1b3a8d78596246e3be2908cb1f31a2a9", + "evidence": "path=/api/platform/v1/partners?page=1&size=5&tenantId=0&status=INACTIVE", + "checkedAt": "2026-08-08T07:12:47.492Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "往来单位停用筛选分页结构与记录数组正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=5&tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d200471e-9d8e-4ac9-97e6-75b1d20c415f, a596f15d-bb40-42fe-a738-beab77fadbc6", + "traceId": "1b3a8d78596246e3be2908cb1f31a2a9", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T07:12:47.492Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "往来单位状态枚举过滤不混入其他状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=5&tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d200471e-9d8e-4ac9-97e6-75b1d20c415f, a596f15d-bb40-42fe-a738-beab77fadbc6", + "traceId": "1b3a8d78596246e3be2908cb1f31a2a9", + "evidence": "records=5", + "checkedAt": "2026-08-08T07:12:47.492Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "往来单位无效筛选参数安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=5&tenantId=0&types=UNKNOWN_TYPE" + }, + "http": 200, + "code": "A0422", + "message": "types[0]: must match \"^(CUSTOMER|SUPPLIER|CARRIER|CUSTOMS_BROKER|SHIPPER|CONSIGNEE)$\"", + "requestId": "17540525-f8ee-47ce-b954-1dcabc441784", + "traceId": "5d30b89e9f364f368cb6f5440ee0adce", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:47.514Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "仓库导入模板为 XLSX 且不记录二进制", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/import-template" + }, + "http": 200, + "code": null, + "message": "3853 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "587a5cc1-2f9d-47b9-ae22-a5525857a579, cb0bdb46-2fad-4b78-bb29-da8d5377b583", + "traceId": "72a8491cb0304ffbb7635cab74fb725b", + "evidence": "HTTP=200, bytes=3853, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T07:12:47.571Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "快递公司导入模板为 XLSX 且不记录二进制", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies/import-template" + }, + "http": 200, + "code": null, + "message": "3692 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "74d32e1e-852b-4680-8f20-cc0e63bd36c9, 6ae64628-d8df-40a2-9b1b-b0a6a392a7bd", + "traceId": "ddfbdd3b05964a86bf71c57eaac012ba", + "evidence": "HTTP=200, bytes=3692, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T07:12:47.634Z" + }, + { + "module": "supplemental", + "scenario": "shared-master-data", + "name": "往来单位导入模板为 XLSX 且不记录二进制", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners/import-template" + }, + "http": 200, + "code": null, + "message": "3830 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "8c4c580c-3ae1-4c6a-b043-32aae7cdcf99, 69d93df9-0d2a-4588-a9f0-a31a4b5e0b91", + "traceId": "53ae3dd457c4437b8c6fa7a63810e174", + "evidence": "HTTP=200, bytes=3830, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T07:12:47.678Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 PENDING_CONFIRMATION 状态过滤", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=PENDING_CONFIRMATION" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fa4c2605-d0d9-4006-815b-970b4a448929, 3e1495e2-ff14-47a5-879b-08a22ee81b14", + "traceId": "ac5ca10ffe5643dcb1ecac919d78a33f", + "evidence": "count=1", + "checkedAt": "2026-08-08T07:12:47.702Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 PENDING_CONFIRMATION 结果状态一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=PENDING_CONFIRMATION" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fa4c2605-d0d9-4006-815b-970b4a448929, 3e1495e2-ff14-47a5-879b-08a22ee81b14", + "traceId": "ac5ca10ffe5643dcb1ecac919d78a33f", + "evidence": "count=1", + "checkedAt": "2026-08-08T07:12:47.703Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 ACTIVE 状态过滤", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "14ba3320-54ba-4b8f-97b5-a840a9638930, 72f0c31e-4507-463e-abdb-84ea3f6a79c5", + "traceId": "324786eecd324abeae55cf9ff7a319dc", + "evidence": "count=1", + "checkedAt": "2026-08-08T07:12:47.735Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 ACTIVE 结果状态一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "14ba3320-54ba-4b8f-97b5-a840a9638930, 72f0c31e-4507-463e-abdb-84ea3f6a79c5", + "traceId": "324786eecd324abeae55cf9ff7a319dc", + "evidence": "count=1", + "checkedAt": "2026-08-08T07:12:47.735Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 SUPERSEDED 状态过滤", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=SUPERSEDED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "48e5f812-f551-430b-b861-20d52b099726, 3beac2a5-3b38-48be-b783-8b7487658f84", + "traceId": "36b60c50284e4d19833f21fee969d491", + "evidence": "count=10", + "checkedAt": "2026-08-08T07:12:47.764Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 SUPERSEDED 结果状态一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=SUPERSEDED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "48e5f812-f551-430b-b861-20d52b099726, 3beac2a5-3b38-48be-b783-8b7487658f84", + "traceId": "36b60c50284e4d19833f21fee969d491", + "evidence": "count=10", + "checkedAt": "2026-08-08T07:12:47.764Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "读取现有生效价格版本用于下载安全检查", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2678a2d3-1eac-4118-abe0-cb889439dbf7, 4e20815e-8f99-4bba-89ab-238d62cdae13", + "traceId": "68a5449f3ea64e2fa6060a94d96256c6", + "evidence": "", + "checkedAt": "2026-08-08T07:12:47.799Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "现有生效价格源文件下载为 XLSX", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books/2085987473472139265/source" + }, + "http": 200, + "code": null, + "message": "1343413 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "823e20c9-3b8d-4501-8ca5-70b5f51b41ac, 4f050a5e-70c1-4ece-8017-3877d0d01df3, 8e75c33a-320f-4d35-86e5-02d7308612e6", + "traceId": "0537596bdecd40e38a1a11f707e5aa0c, a0faf6b8f1a740609e2802fbee45421d", + "evidence": "versionId=2085987473472139265, bytes=1343413, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T07:12:47.917Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "下载中心 PENDING 状态分页", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=5&status=PENDING" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e694fc5d-9b5b-4296-a71a-9d8572c7c3a5, dcfefa7a-02f7-4c29-81aa-4dccb323b51b", + "traceId": "c0d7f84087c64771b3371d5861350c0d", + "evidence": "", + "checkedAt": "2026-08-08T07:12:47.945Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "下载中心 PENDING 过滤结果状态一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=5&status=PENDING" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e694fc5d-9b5b-4296-a71a-9d8572c7c3a5, dcfefa7a-02f7-4c29-81aa-4dccb323b51b", + "traceId": "c0d7f84087c64771b3371d5861350c0d", + "evidence": "records=0", + "checkedAt": "2026-08-08T07:12:47.945Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "下载中心 RUNNING 状态分页", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=5&status=RUNNING" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "45819daa-47c7-4f9d-961e-63383252ee68, 3e49830d-23e7-4925-a769-855853dceacd", + "traceId": "c05676b3f0a94b1c915457e7d5be4d28", + "evidence": "", + "checkedAt": "2026-08-08T07:12:47.969Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "下载中心 RUNNING 过滤结果状态一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=5&status=RUNNING" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "45819daa-47c7-4f9d-961e-63383252ee68, 3e49830d-23e7-4925-a769-855853dceacd", + "traceId": "c05676b3f0a94b1c915457e7d5be4d28", + "evidence": "records=0", + "checkedAt": "2026-08-08T07:12:47.969Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "下载中心 SUCCEEDED 状态分页", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=5&status=SUCCEEDED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a5c6aebe-78c4-42c0-ad10-aa1801346536, 0f5aa614-4589-429a-b6b7-440863751f3f", + "traceId": "dbc151637b7e4acea78a021f83335f8b", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.002Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "下载中心 SUCCEEDED 过滤结果状态一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=5&status=SUCCEEDED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a5c6aebe-78c4-42c0-ad10-aa1801346536, 0f5aa614-4589-429a-b6b7-440863751f3f", + "traceId": "dbc151637b7e4acea78a021f83335f8b", + "evidence": "records=5", + "checkedAt": "2026-08-08T07:12:48.003Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "下载中心 FAILED 状态分页", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=5&status=FAILED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a65d5f1f-4933-45f6-ae81-f38fe2aa1979, 3c629106-6ada-464f-99b2-02748673d59c", + "traceId": "eb3d9ae1152b4bdeb5d8a3322e2421c6", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.033Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "下载中心 FAILED 过滤结果状态一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=5&status=FAILED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a65d5f1f-4933-45f6-ae81-f38fe2aa1979, 3c629106-6ada-464f-99b2-02748673d59c", + "traceId": "eb3d9ae1152b4bdeb5d8a3322e2421c6", + "evidence": "records=0", + "checkedAt": "2026-08-08T07:12:48.033Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "下载中心 EXPIRED 状态分页", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=5&status=EXPIRED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c6a5cbfb-82b7-4dae-81e2-2de3a32a8c51, a2b42a7b-8873-409d-adf5-686e20bc195b", + "traceId": "3144d5b5ba3a40d9b7c6aa6e4df7ca59", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.072Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "下载中心 EXPIRED 过滤结果状态一致", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=1&size=5&status=EXPIRED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c6a5cbfb-82b7-4dae-81e2-2de3a32a8c51, a2b42a7b-8873-409d-adf5-686e20bc195b", + "traceId": "3144d5b5ba3a40d9b7c6aa6e4df7ca59", + "evidence": "records=0", + "checkedAt": "2026-08-08T07:12:48.072Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "不存在下载任务详情安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/999999999999" + }, + "http": 200, + "code": "A0404", + "message": "导出任务不存在", + "requestId": "42d275b5-aad5-4bd1-8f6e-3b4ca7d9cd0c", + "traceId": "bfd2f2b7c0cd479f8f158b7a227640e2", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:12:48.093Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "不存在下载任务文件安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/999999999999/download" + }, + "http": 200, + "code": "A0404", + "message": "导出任务不存在", + "requestId": "17fd6735-86f0-4cd6-8692-5583a9aca330", + "traceId": "0f0c2a642bde4f0b915389161812fe64", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:12:48.126Z" + }, + { + "module": "supplemental", + "scenario": "download-readonly", + "name": "未授权下载请求被拒绝", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/999999999999/download" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "3fab41c4-516", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T07:12:48.148Z" + }, + { + "module": "supplemental", + "scenario": "iam-readonly", + "name": "平台用户只读列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/users?page=1&size=5" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "33c453f8-7fe0-455c-ae58-4b300512b4fc, 786cdd5c-1007-4d15-a078-27d52f8c44f0", + "traceId": "eb7617ef1155449ca26cee61cd026844", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.227Z" + }, + { + "module": "supplemental", + "scenario": "iam-readonly", + "name": "平台用户列表结构正确且包含内置保护标识", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/users?page=1&size=5" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "33c453f8-7fe0-455c-ae58-4b300512b4fc, 786cdd5c-1007-4d15-a078-27d52f8c44f0", + "traceId": "eb7617ef1155449ca26cee61cd026844", + "evidence": "records=5, builtInField=protectedAccount", + "checkedAt": "2026-08-08T07:12:48.228Z" + }, + { + "module": "supplemental", + "scenario": "iam-readonly", + "name": "平台角色只读列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/roles" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "79317802-59ae-4adc-9ce4-6676654775fe, 2550d51b-7a3d-42ec-9b2b-9007f8fc6dc6", + "traceId": "7b73a4f578bc46fe8a1a400fd9f1a858", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.285Z" + }, + { + "module": "supplemental", + "scenario": "iam-readonly", + "name": "平台角色列表结构正确且包含内置保护标识", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/roles" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "79317802-59ae-4adc-9ce4-6676654775fe, 2550d51b-7a3d-42ec-9b2b-9007f8fc6dc6", + "traceId": "7b73a4f578bc46fe8a1a400fd9f1a858", + "evidence": "records=18, builtInField=roleType", + "checkedAt": "2026-08-08T07:12:48.285Z" + }, + { + "module": "supplemental", + "scenario": "iam-readonly", + "name": "菜单权限只读列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/permissions" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f839049c-8282-4d6b-abc1-83c9578693bc, 7528a762-ed20-4cbc-a18a-5598c5f300d7", + "traceId": "255a114f024344e8b422ea732ca67269", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.322Z" + }, + { + "module": "supplemental", + "scenario": "iam-readonly", + "name": "菜单权限列表结构正确且包含内置保护标识", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/permissions" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f839049c-8282-4d6b-abc1-83c9578693bc, 7528a762-ed20-4cbc-a18a-5598c5f300d7", + "traceId": "255a114f024344e8b422ea732ca67269", + "evidence": "records=151, builtInField=builtIn", + "checkedAt": "2026-08-08T07:12:48.322Z" + }, + { + "module": "supplemental", + "scenario": "iam-readonly", + "name": "角色列表伪造令牌拒绝访问", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/roles" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "3fab41c4-520", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T07:12:48.352Z" + }, + { + "module": "supplemental", + "scenario": "iam-readonly", + "name": "菜单权限未携带令牌拒绝访问", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/permissions" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "b16bc7a4-521", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T07:12:48.381Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "创建边界验收隔离仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/warehouse-admin" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b4ef52f4-f3a3-40b1-8806-fd2edc6d070f, e40b1653-8537-49da-8773-fa589a2ecf35", + "traceId": "8646e5474c4249e7a76da223e88fa246", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.435Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "创建边界验收隔离库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/locations?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "54ae84d4-1f6e-4331-8c0e-24ff42966f96, 4ea35510-9ef5-4b73-a5e4-4fe811b3566b", + "traceId": "c92b5e2acb9c4db19991d3473fb8a7fb", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.477Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "读取隔离库位版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085987572296761345?tenantId=0&warehouseId=2085987572099629058" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "bc6f02b0-226c-4cda-bf79-e5c9bb8e1bf5, 7bb4ddc8-de85-42ee-8a32-0fdbc5fa692a", + "traceId": "e19016e6593a4a6b898855eb8599611b", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.514Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "更新隔离库位以推进版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085987572296761345?tenantId=0&warehouseId=2085987572099629058" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "71ec1871-69df-4429-b793-7a6f54256e47, cedf573f-5d9d-45aa-b9cd-c7674f7ed827", + "traceId": "271ded8c50f14d50aa4489d97affc6a0", + "evidence": "version=0", + "checkedAt": "2026-08-08T07:12:48.554Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位旧 version PUT 返回冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085987572296761345?tenantId=0&warehouseId=2085987572099629058" + }, + "http": 200, + "code": "A0409", + "message": "库位已被其他操作修改,请刷新后重试", + "requestId": "3614b8e6-17d6-4795-9aa5-d60ce0649d13", + "traceId": "368d68f4bc61409bb6bf17c8f5bff7e6", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:12:48.598Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "冲突后回查库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085987572296761345?tenantId=0&warehouseId=2085987572099629058" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "339e3ead-223f-411e-b028-e0e61236a1ff, 326c9789-f86a-44e6-8888-32d8e8dc8a7d", + "traceId": "fae85c6f93bb4c9c82edf78e46937b63", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.628Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位冲突未造成部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085987572296761345?tenantId=0&warehouseId=2085987572099629058" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "339e3ead-223f-411e-b028-e0e61236a1ff, 326c9789-f86a-44e6-8888-32d8e8dc8a7d", + "traceId": "fae85c6f93bb4c9c82edf78e46937b63", + "evidence": "name=边界库位-编辑", + "checkedAt": "2026-08-08T07:12:48.628Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "托盘/库位真实占用删除保护自动化缺口", + "passed": false, + "deploymentBlocker": true, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源", + "checkedAt": "2026-08-08T07:12:48.628Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "import-boundaries", + "name": "仓库空文件安全失败且不模拟导入成功", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/warehouse-admin/import?tenantId=0&dryRun=true" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c65fe8eb-10a2-4254-91e8-2ebbd6418d2f, 3c410598-a7bd-4429-a033-a4030f51fb2c", + "traceId": "51ab76b40f72453eb2f7cf6acde33155", + "evidence": "HTTP=200, code=200, bytes=0", + "checkedAt": "2026-08-08T07:12:48.675Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "import-boundaries", + "name": "仓库缺列伪 XLSX安全失败且不模拟导入成功", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/warehouse-admin/import?tenantId=0&dryRun=true" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1573730e-329d-496a-afba-57657735b9ed, a2eb8859-b605-481f-8f3e-828e282b296f", + "traceId": "c6cbca62550d44fa8f43cccea30bcb74", + "evidence": "HTTP=200, code=200, bytes=6", + "checkedAt": "2026-08-08T07:12:48.715Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "import-boundaries", + "name": "快递公司错误扩展名安全失败且不模拟导入成功", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/express-companies/import?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "554ac226-4eaf-4db8-9e65-5a7f72bba68b, 85b0907f-7dfa-4347-957f-55b4346b6c20", + "traceId": "b8112a35e7f141dfa49825b11785e428", + "evidence": "HTTP=200, code=200, bytes=27", + "checkedAt": "2026-08-08T07:12:48.757Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "import-boundaries", + "name": "往来单位非 XLSX安全失败且不模拟导入成功", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/partners/import?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "84ab7c84-bdd7-4cb8-bd65-814bb9856e46, f2a04f6a-3841-4081-8a1d-df7ee0896a97", + "traceId": "b7216b6d343a4316b66971d0f58055a9", + "evidence": "HTTP=200, code=200, bytes=27", + "checkedAt": "2026-08-08T07:12:48.782Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "错误客户海外仓费用 ID 安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/999999999999999999/overseas-storage-fees" + }, + "http": 200, + "code": "A0404", + "message": "海外仓费用不存在", + "requestId": "bb622bff-e6b9-416d-af57-ae0d3e01b9e5", + "traceId": "bcd3ad02819e4071a14db40bfffd13fa", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:12:48.814Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位列表未授权边界响应正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations?page=1&size=1&tenantId=0" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "b16bc7a4-533", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T07:12:48.834Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "下载中心非法页码边界响应正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks?page=0&size=1" + }, + "http": 200, + "code": "A0422", + "message": "page.page: must be greater than or equal to 1", + "requestId": "5932ddd0-5efa-44cd-965f-e1e0376a6f51", + "traceId": "07ef43cced6e48018fd87e7a7355297c", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T07:12:48.869Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "船期价格非法状态边界响应正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=INVALID" + }, + "http": 200, + "code": "A0400", + "message": "Bad request", + "requestId": "f07a4d25-dc1a-432e-8637-f86784ce92b2", + "traceId": "544ffa2356564636a703dcb12b78f072", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T07:12:48.906Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "停用隔离库位以便清理", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/locations/2085987572296761345/status?tenantId=0&warehouseId=2085987572099629058" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6a91889d-1eb4-4473-b6d7-611ca295e130, bec2b48d-a5ca-4f3f-a986-99ee40be3b3b", + "traceId": "23cfb0ec45724512922d7c919bf21f52", + "evidence": "", + "checkedAt": "2026-08-08T07:12:48.961Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "删除隔离库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/locations/2085987572296761345?tenantId=0&warehouseId=2085987572099629058&version=2" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f38cd884-af76-4f01-8e25-7fb7322728a5, 9c9ebebe-1daf-42e5-8064-d97ee38a14a9", + "traceId": "d485887c3e8e412188f3a517cae26e85", + "evidence": "", + "checkedAt": "2026-08-08T07:12:49.004Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "停用隔离仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/warehouse-admin/2085987572099629058/status?tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "39b91855-00e1-462f-9992-1e47260274d2, 2279462a-8891-4d88-8a79-e196dd22e73f", + "traceId": "6d0e034df93f4c929c8e0a76a121567b", + "evidence": "", + "checkedAt": "2026-08-08T07:12:49.038Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱列表分页与 keyword 查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings?page=1&size=5&keyword=ADMIN-API-20260808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7dc0f7d8-f1b8-4261-8d70-7a6591120a46, 2df53e77-53b4-4ad1-bf31-3ddeb9ad5721", + "traceId": "c8d73a5454604d5b893d4ccf067cfcb7", + "evidence": "", + "checkedAt": "2026-08-08T07:12:49.084Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱列表分页结构正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings?page=1&size=5&keyword=ADMIN-API-20260808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7dc0f7d8-f1b8-4261-8d70-7a6591120a46, 2df53e77-53b4-4ad1-bf31-3ddeb9ad5721", + "traceId": "c8d73a5454604d5b893d4ccf067cfcb7", + "evidence": "records=0", + "checkedAt": "2026-08-08T07:12:49.084Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱 DRAFT 状态筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings?page=1&size=5&status=DRAFT" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fc83aa9f-bfc8-46a3-8fb0-a5d0296b89a3, 2c8cc765-cad6-49c3-bb42-8253677c66e5", + "traceId": "a2a37ab99b524625860bf60d4ba87113", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:49.123Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱 SUBMITTED 状态筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings?page=1&size=5&status=SUBMITTED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cc0917b7-2ecc-447d-ba53-da16e8ea8e43, 6905a49b-5dfc-47e0-a781-d3fb8d08209a", + "traceId": "4370896889204f708ff2acc3c1753582", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:49.165Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱 CONFIRMED 状态筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings?page=1&size=5&status=CONFIRMED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "72d166fa-c125-4c91-9533-d78683542275, b53cb1d0-b3e2-42d8-97e2-4656419fcb0d", + "traceId": "97aba0ef2e864d49a14310d712a6c4e3", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:49.200Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱 RELEASED 状态筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings?page=1&size=5&status=RELEASED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "10d21dbf-9bc6-478e-a445-13113ed5bfea, 38e2051b-83ad-48be-9624-c0658ea70019", + "traceId": "7879c721a06b43d796c6000bba27afe3", + "evidence": "HTTP=200, code=200, records=1", + "checkedAt": "2026-08-08T07:12:49.233Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱 FAILED 状态筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings?page=1&size=5&status=FAILED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "df7b9f08-063a-428b-b040-c8f3f9dea283, dac0031d-3859-44c0-8b1b-9f517045cf6b", + "traceId": "80ff0d1c5e5e49f4a35e53e31171c41a", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:49.257Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱 CANCELLED 状态筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings?page=1&size=5&status=CANCELLED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "bbfd7b2a-3abe-427c-8a15-be52f4214bf9, 332c2751-9c90-45b7-ae90-135709281b3a", + "traceId": "25d67d0f841d446a97331c2b066f6843", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:49.301Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "创建隔离海运订舱", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/ocean-bookings" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5f5ee4bf-b4f8-4b02-bf17-0165bbe57fb5, 02ab33ba-3f84-4e3e-a743-8ba2cf823410", + "traceId": "2f745c910d794216a8445e77359b36e4", + "evidence": "key=ADMIN-API-20260808071211341-ocean-create", + "checkedAt": "2026-08-08T07:12:49.340Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱 DTO 字段、DRAFT 和9类关联字段完整", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/ocean-bookings" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5f5ee4bf-b4f8-4b02-bf17-0165bbe57fb5, 02ab33ba-3f84-4e3e-a743-8ba2cf823410", + "traceId": "2f745c910d794216a8445e77359b36e4", + "evidence": "bookingId=2085987575880265729, parties=3, requirements=1", + "checkedAt": "2026-08-08T07:12:49.340Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "创建 Idempotency-Key 重放返回同一订舱", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/ocean-bookings" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "de17ab67-a3fa-40af-8061-6b5038845bc6, b5a3f81a-b8ee-48e2-a258-07bf5bec5a2e", + "traceId": "a9e32282557e477bb719d729744b3d91", + "evidence": "first=2085987575880265729, replay=2085987575880265729", + "checkedAt": "2026-08-08T07:12:49.377Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "编辑 DRAFT 订舱", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f3d02ea4-c41f-403f-9978-092ca6c63f57, feb7876f-c904-411b-a1af-cb6daa885595", + "traceId": "6772b91f51a14c8381f93b0444fe0815", + "evidence": "version=0", + "checkedAt": "2026-08-08T07:12:49.422Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱旧版本编辑返回冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729" + }, + "http": 200, + "code": "A0409", + "message": "数据已被其他人修改,请刷新后重试", + "requestId": "5fd21f23-72a5-48b9-96c8-0e1139d80af2", + "traceId": "5336f8410227429288bf71e776f34d03", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:12:49.450Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "冲突后回查订舱", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fbc8e1ca-cdf6-4c13-8aeb-7f988ea0963b, b4e26b07-0d19-4c4f-a5d5-ab52da00e6e4", + "traceId": "764dec01ad3c4508999c50fe9e06d6d5", + "evidence": "", + "checkedAt": "2026-08-08T07:12:49.483Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱冲突未部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fbc8e1ca-cdf6-4c13-8aeb-7f988ea0963b, b4e26b07-0d19-4c4f-a5d5-ab52da00e6e4", + "traceId": "764dec01ad3c4508999c50fe9e06d6d5", + "evidence": "vessel=编辑船-8071211341", + "checkedAt": "2026-08-08T07:12:49.483Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "提交订舱", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729/submit" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "97d0b7d4-a486-4ff0-a473-01d107ed8e8b, 27f92de4-1fc8-4d4c-9957-83da45451a33", + "traceId": "96afcb12610548ed98c435d79b1df0bf", + "evidence": "status=SUBMITTED", + "checkedAt": "2026-08-08T07:12:49.532Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "确认订舱", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729/confirm" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c73bc763-cb14-4d70-bacb-9f3c2cbd2847, 40ad930b-77ac-454c-9ea4-fe4232712411", + "traceId": "7152734e2c864df991803864c743f1f1", + "evidence": "status=CONFIRMED", + "checkedAt": "2026-08-08T07:12:49.580Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "申请改船", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729/change-request" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "50c6996d-f28c-4445-b349-e16e3b3ded72, e022af49-8f6a-43ce-9d16-b148bd5e785b", + "traceId": "4c8834962c344bd7a803e580eb170a0e", + "evidence": "", + "checkedAt": "2026-08-08T07:12:49.624Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "确认改船", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729/change-confirm" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f43ead49-3aba-4afc-8549-0d671b372806, 1aa26bf7-228a-47fe-8aaf-dfcc4ad524e6", + "traceId": "4f4ce426f6f5431088bb45aef898bd31", + "evidence": "status=CONFIRMED", + "checkedAt": "2026-08-08T07:12:49.671Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "放舱", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729/release" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c209f98a-9e5e-4a7a-b4cd-f4f71f703d11, dbbee054-eb8a-47b2-8728-b08148518487", + "traceId": "61f7c305f5e44992bef106141739c518", + "evidence": "status=RELEASED", + "checkedAt": "2026-08-08T07:12:49.717Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "回查 RELEASED 订舱详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "129123a2-e364-48a4-9e4e-22e7389d8ce8, 3fcc74c7-864c-46bf-929b-5583cffc68cb", + "traceId": "1d29997881a54894b4edc6e3491c5ac3", + "evidence": "", + "checkedAt": "2026-08-08T07:12:49.760Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "订舱状态历史、审计操作者和终态完整", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings/2085987575880265729" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "129123a2-e364-48a4-9e4e-22e7389d8ce8, 3fcc74c7-864c-46bf-929b-5583cffc68cb", + "traceId": "1d29997881a54894b4edc6e3491c5ac3", + "evidence": "status=RELEASED, histories=6", + "checkedAt": "2026-08-08T07:12:49.760Z" + }, + { + "module": "ocean-bookings", + "scenario": "ocean-booking-lifecycle", + "name": "不存在订舱详情安全失败", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/ocean-bookings/999999999999999999" + }, + "http": 200, + "code": "A0404", + "message": "订舱单不存在", + "requestId": "f6a86c68-0607-451f-ac77-08756b974316", + "traceId": "0d3152e6cf2e4b2992431f7012652025", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T07:12:49.806Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约分页 keyword 查询", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&keyword=ADMIN-API-20260808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "11527c8c-910e-4f6c-8bb5-c6f2cd13c85a, 5c5ce05c-21e1-4d3b-953f-0f37261bac9d", + "traceId": "670e8a108f3248e59571e0615ade2b85", + "evidence": "", + "checkedAt": "2026-08-08T07:12:49.844Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约分页结构正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&keyword=ADMIN-API-20260808071211341" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "11527c8c-910e-4f6c-8bb5-c6f2cd13c85a, 5c5ce05c-21e1-4d3b-953f-0f37261bac9d", + "traceId": "670e8a108f3248e59571e0615ade2b85", + "evidence": "records=0", + "checkedAt": "2026-08-08T07:12:49.844Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 DRAFT 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=DRAFT" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fd9cc543-2ace-4b30-88c3-9b3d7fb270f7, ae28668d-3b95-4e72-8d8d-a684ec67f17d", + "traceId": "12e57c66d99e4ca59359b78ae2cea853", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:49.864Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 PENDING_DISPATCH 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=PENDING_DISPATCH" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2d9173ad-f8a7-4bb6-aabd-3892c8e0be9a, f247feba-63f6-41a4-ba05-0ab9135ca630", + "traceId": "03784010fbe54abe8ec450a293ab91bf", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:49.891Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 DISPATCHED 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=DISPATCHED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1d477d21-37d0-4fd5-9fa2-b6fc7b449a0e, c86aa1a5-d643-4fe8-925a-a928ab7b711a", + "traceId": "c4dbe56247a048cdac5ff5e3a20c2a34", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:49.921Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 PICKUP_IN_PROGRESS 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=PICKUP_IN_PROGRESS" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "87fbbac4-383d-4fd5-bb7d-03b5003d8d18, 1b0dbd9a-7f1c-4abd-a97c-f87e3878104c", + "traceId": "7bac7418b39d4c9491498454db0759ea", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:49.953Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 ARRIVED_WAREHOUSE 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=ARRIVED_WAREHOUSE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "96083ebb-9624-485f-9842-0266943dcc82, da526de4-4fe1-43b1-940f-72f7601c35a0", + "traceId": "df8093d9adb2466db852067cde3fc033", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:49.984Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 LOADING 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=LOADING" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "eabde20a-c4ca-413a-8620-7921a1ae2a44, 81fc39b5-21a5-420e-9f57-073000d65b90", + "traceId": "c045a3be103f46cbafe04d227a54e5e6", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:50.006Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 DEPARTED 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=DEPARTED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c280e1c3-0e24-4a54-a76c-ba08edc7d386, 7af5e75e-e9e5-4a9b-ac81-92db3bf23584", + "traceId": "ba4f421b069f4deb9dcd5eb64b8cda75", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:50.031Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 COMPLETED 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=COMPLETED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b3cc80bd-4b35-4ddd-8c1b-256e47bb07cd, db6dff68-7a50-4369-9258-52cf126adb38", + "traceId": "b45925f379b64d0b878814d662a13069", + "evidence": "HTTP=200, code=200, records=1", + "checkedAt": "2026-08-08T07:12:50.065Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 RESCHEDULED 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=RESCHEDULED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "801b74a0-5666-4e10-a3c8-3dcc57aa9d16, f30c4d6a-6cd1-44e1-969f-9df3a9692438", + "traceId": "66bb129292dd46ff901fca720e47bc93", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:50.094Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 EXCEPTION 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=EXCEPTION" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a8e2f514-42ff-4e72-a8fe-02b06f5516a7, 5912531e-ca38-4cf9-9ee0-86c586e4bde6", + "traceId": "e3a2087608b94edab4e4d932b935e6ab", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:50.125Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约 CANCELLED 筛选", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments?page=1&size=5&status=CANCELLED" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f63bc605-1eb3-4a73-a22f-d9f112e71d9d, 7e90af9b-ee12-47f0-a715-301a454ae29e", + "traceId": "1a590610d6ad40dc83ce7ce473aa9409", + "evidence": "HTTP=200, code=200, records=0", + "checkedAt": "2026-08-08T07:12:50.162Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "创建隔离拖车预约", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4e709e04-8cb1-4674-ae61-afff18f57be3, e5e41bdb-54b9-4911-a189-4713ba55c95b", + "traceId": "01a04265549241c788d740259c062982", + "evidence": "", + "checkedAt": "2026-08-08T07:12:50.194Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约费用、司机车辆和地址字段完整", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4e709e04-8cb1-4674-ae61-afff18f57be3, e5e41bdb-54b9-4911-a189-4713ba55c95b", + "traceId": "01a04265549241c788d740259c062982", + "evidence": "id=2085987579499950082, status=DRAFT", + "checkedAt": "2026-08-08T07:12:50.194Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "编辑拖车预约", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/truck-appointments/2085987579499950082" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7148bc08-d69f-4125-b359-2c8b725baa95, 817ca120-a905-43a4-b39a-6dbc57e72df4", + "traceId": "0cd081b039b547aabb092979b4f76da0", + "evidence": "version=0", + "checkedAt": "2026-08-08T07:12:50.220Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约旧版本编辑返回冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/truck-appointments/2085987579499950082" + }, + "http": 200, + "code": "A0409", + "message": "版本已变化,请刷新后重试", + "requestId": "a476f2ca-6b90-432d-a378-ee228a065074", + "traceId": "665abecb47134fed8e037ca30ddfd43f", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T07:12:50.251Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "冲突后回查拖车预约", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments/2085987579499950082" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4e85e1cb-788f-455d-aa2a-707065ca65b4, 0d6ec9c9-3ddc-4949-8885-3fb863324058", + "traceId": "13b94848a2284405be776281ef75ce5b", + "evidence": "", + "checkedAt": "2026-08-08T07:12:50.285Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约冲突未部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments/2085987579499950082" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4e85e1cb-788f-455d-aa2a-707065ca65b4, 0d6ec9c9-3ddc-4949-8885-3fb863324058", + "traceId": "13b94848a2284405be776281ef75ce5b", + "evidence": "vehicleNo=粤C-211341", + "checkedAt": "2026-08-08T07:12:50.286Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "提交预约", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/submit" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b8aa2e39-48da-475b-880b-51d11dd3563e, 776ce2c8-b37e-4f5a-8050-ac9625c289a7", + "traceId": "eb8f026fc8d349d68f8b15914961f9a4", + "evidence": "", + "checkedAt": "2026-08-08T07:12:50.320Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "提交预约 状态返回", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/submit" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b8aa2e39-48da-475b-880b-51d11dd3563e, 776ce2c8-b37e-4f5a-8050-ac9625c289a7", + "traceId": "eb8f026fc8d349d68f8b15914961f9a4", + "evidence": "status=PENDING_DISPATCH", + "checkedAt": "2026-08-08T07:12:50.320Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "派车", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/dispatch" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3296ad1d-7739-4ddd-a534-786d2c325a44, c2645501-f25f-4829-b169-3c61b615109e", + "traceId": "eda9ba48f937422baf0a40d5faffde39", + "evidence": "", + "checkedAt": "2026-08-08T07:12:50.351Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "派车 状态返回", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/dispatch" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3296ad1d-7739-4ddd-a534-786d2c325a44, c2645501-f25f-4829-b169-3c61b615109e", + "traceId": "eda9ba48f937422baf0a40d5faffde39", + "evidence": "status=DISPATCHED", + "checkedAt": "2026-08-08T07:12:50.351Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "开始提货", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/pickup" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e7c24990-7f88-4490-925b-da03031a09ca, 2a89f9a6-c9f8-4bcd-b0a4-7fb492a3ad3f", + "traceId": "f410f033ed7b49a0bbc191cfd15b92ce", + "evidence": "", + "checkedAt": "2026-08-08T07:12:50.385Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "开始提货 状态返回", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/pickup" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e7c24990-7f88-4490-925b-da03031a09ca, 2a89f9a6-c9f8-4bcd-b0a4-7fb492a3ad3f", + "traceId": "f410f033ed7b49a0bbc191cfd15b92ce", + "evidence": "status=PICKUP_IN_PROGRESS", + "checkedAt": "2026-08-08T07:12:50.385Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "到仓", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/arrive" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9c20bed8-917f-4785-8bf8-4edb460897da, d198d08a-9f12-45af-8fb6-16dddfcfd4c8", + "traceId": "8abd129d28504423923ce9bd73eb012d", + "evidence": "", + "checkedAt": "2026-08-08T07:12:50.426Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "到仓 状态返回", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/arrive" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9c20bed8-917f-4785-8bf8-4edb460897da, d198d08a-9f12-45af-8fb6-16dddfcfd4c8", + "traceId": "8abd129d28504423923ce9bd73eb012d", + "evidence": "status=ARRIVED_WAREHOUSE", + "checkedAt": "2026-08-08T07:12:50.426Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "开始装货", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/load" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2f8ed6c9-8325-4d94-94f8-523224876718, 018f688c-229d-4a4f-8db1-00d0d2baf312", + "traceId": "b5ced233c84f46ff929733cf263ac219", + "evidence": "", + "checkedAt": "2026-08-08T07:12:50.457Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "开始装货 状态返回", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/load" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2f8ed6c9-8325-4d94-94f8-523224876718, 018f688c-229d-4a4f-8db1-00d0d2baf312", + "traceId": "b5ced233c84f46ff929733cf263ac219", + "evidence": "status=LOADING", + "checkedAt": "2026-08-08T07:12:50.458Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "离场", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/depart" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "366cc3dc-f4be-45b3-a58d-d5f78b309055, 82c5eb1f-5570-4803-91b3-88d35850b8d4", + "traceId": "eb7c638f468c4cb299306346062f82c6", + "evidence": "", + "checkedAt": "2026-08-08T07:12:50.489Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "离场 状态返回", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/depart" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "366cc3dc-f4be-45b3-a58d-d5f78b309055, 82c5eb1f-5570-4803-91b3-88d35850b8d4", + "traceId": "eb7c638f468c4cb299306346062f82c6", + "evidence": "status=DEPARTED", + "checkedAt": "2026-08-08T07:12:50.489Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "完成", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/complete" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3d495a9f-147b-4804-b2f9-edd131b4ec30, 34dcc1e6-ce85-4c5b-b6e1-42e67f79813b", + "traceId": "0fd16113428043698b8ede544a618217", + "evidence": "", + "checkedAt": "2026-08-08T07:12:50.521Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "完成 状态返回", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/truck-appointments/2085987579499950082/complete" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3d495a9f-147b-4804-b2f9-edd131b4ec30, 34dcc1e6-ce85-4c5b-b6e1-42e67f79813b", + "traceId": "0fd16113428043698b8ede544a618217", + "evidence": "status=COMPLETED", + "checkedAt": "2026-08-08T07:12:50.521Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "回查 COMPLETED 拖车预约", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments/2085987579499950082" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "00c20af8-7daf-4512-bdcf-9f4ffdd1caf6, 7d21ac51-c9f0-41d6-811d-2a64721d0e88", + "traceId": "a2965cf630964a67a299b9b913f089f8", + "evidence": "", + "checkedAt": "2026-08-08T07:12:50.545Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "拖车预约状态终态和费用快照正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/truck-appointments/2085987579499950082" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "00c20af8-7daf-4512-bdcf-9f4ffdd1caf6, 7d21ac51-c9f0-41d6-811d-2a64721d0e88", + "traceId": "a2965cf630964a67a299b9b913f089f8", + "evidence": "status=COMPLETED", + "checkedAt": "2026-08-08T07:12:50.545Z" + }, + { + "module": "truck-appointments", + "scenario": "truck-appointment-lifecycle", + "name": "附件引用安全边界自动化缺口", + "passed": false, + "deploymentBlocker": true, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "当前 Controller 无附件上传/引用 API,未伪造附件成功", + "checkedAt": "2026-08-08T07:12:50.545Z" + } + ] +} diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 000000000..d392e2f1c --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,68 @@ +# 后端全量回归 + +## 入口 + +在 `baiyue-firstleg` 根目录执行: + +```powershell +.\scripts\backend-full-regression.ps1 +``` + +## 前端全量回归 + +`frontend-full-regression.ps1` 只编排本地 Admin/Client 的 `pnpm test` 与 `pnpm typecheck`,不调用 Gateway、不部署、不连接数据库。 + +```powershell +.\scripts\frontend-full-regression.ps1 -DryRun +.\scripts\frontend-full-regression.ps1 +.\scripts\frontend-full-regression.ps1 -SkipAdmin +.\scripts\frontend-full-regression.ps1 -SkipClient +``` + +脚本会检查 `pnpm` 和目标应用的 `package.json`;任一命令失败时立即透传退出码,不能同时跳过 Admin 和 Client。 + +脚本固定运行: + +```text +mvn -f <仓库根>/pom.xml -pl order,firstleg -am test +``` + +这会先构建公共依赖,再运行 `order` 与 `firstleg` 的全部 Maven 测试。覆盖包括: + +- 三期 Ocean Booking Controller/Service/Mapper/SQL 契约; +- 三期 Truck Appointment Controller/Service/Mapper 契约、状态机、乐观锁和幂等操作; +- 二期 `WAIT_SPLIT` 的 firstleg 查询、order 统一查询及筛选语义; +- 拣货/预装/装柜模型映射与既有 Smart Loading/Split 契约。 + +## Dry-run + +```powershell +.\scripts\backend-full-regression.ps1 -DryRun +``` + +Dry-run 只检查根 `pom.xml` 和关键回归测试文件并打印 Maven 命令,不启动 Java 服务,不请求 Gateway,不连接或写入任何数据库。 + +## 现有相关脚本与边界 + +### 本地 MySQL 全量验收 + +正式入口是 `local-db-full-acceptance.ps1`,只允许连接本机 `127.0.0.1` 或 `localhost`,默认端口 `3306`;测试库 `8.163.30.128` 会立即以退出码 2 拒绝。脚本固定校验统一 SQL SHA-256 `E86BB8DE105E9B59736FFCD180CBA902F2E3F5032C7EFF2E3DC3B24B289360A0` 和 7803 行。 + +```powershell +.\local-db-full-acceptance.ps1 -DryRun +.\local-db-full-acceptance.ps1 +``` + +Dry-run 只校验 SQL 输入并打印空库、复跑、两类 picking 旧结构、WAIT_SPLIT/IAM、海外仓旧结构、中断恢复和最终结构的执行顺序,不启动 MySQL、不写库。真实运行每阶段写入 `.codex-tmp/p23-04-acceptance/acceptance-run-*.log`,不使用 `--force`,任一 SQL 错误立即停止并透传退出码,最后执行 `verify-final.sql`。脚本不保存或传入数据库密码,使用本机默认认证环境。 + +仓库中 `phase2-test-env-acceptance.ps1`、`admin-test-env-acceptance.mjs`、`client-test-env-acceptance.mjs`、`export-center-test-env-acceptance.ps1` 等属于测试环境/API 验收脚本;它们可能读取或写入测试环境数据,不由本入口调用。`migrate-local-qualification-file.ps1`、`local-env.ps1` 等是环境/迁移辅助脚本,也不由本入口调用。 + +本入口不读取数据库凭据、不执行 MySQL、HTTP、迁移、DDL、INSERT/UPDATE/DELETE,也不启动 Nacos、Gateway 或业务服务。需要数据库矩阵时必须单独运行受控验收流程。 + +## 退出码 + +- `0`:dry-run 检查通过或 Maven 全量测试通过; +- `2`:仓库根 pom 或关键测试文件缺失,脚本未启动 Maven; +- 其他非零值:原样透传 Maven 失败退出码。 + +脚本不设置 `MAVEN_OPTS`、数据库 URL 或测试账号;环境参数仅为可选的 `$MavenCommand`(默认 `mvn`),用于指定本机 Maven 可执行文件。 diff --git a/scripts/admin-test-env-acceptance.mjs b/scripts/admin-test-env-acceptance.mjs index 31e4293cd..358ac842d 100644 --- a/scripts/admin-test-env-acceptance.mjs +++ b/scripts/admin-test-env-acceptance.mjs @@ -11,7 +11,7 @@ import process from 'node:process' const DEFAULT_GATEWAY = 'http://8.163.30.128:9000' const DEFAULT_USERNAME = 'platform_admin' const DEFAULT_PASSWORD = 'ChangeMe123!' -const DEFAULT_MODULES = ['customers', 'overseas-storage-fees', 'system', 'master-data', 'orders', 'pricing', 'downloads', 'inbound-weight-ocr', 'inbound-measurement', 'supplemental', 'supplemental-boundaries', 'ocean-bookings', 'truck-appointments'] +const DEFAULT_MODULES = ['customers', 'overseas-storage-fees', 'system', 'master-data', 'orders', 'pricing', 'downloads', 'inbound-weight-ocr', 'inbound-measurement', 'supplemental', 'supplemental-boundaries', 'ocean-bookings', 'truck-appointments', 'service-center-flow'] const WEIGHT_IMAGE_PATH = 'C:/Users/BY-OY/Desktop/上传图片包/测量图片/测量图片/orig_1cf27695-b2c3-44b3-98e3-c0be8b80f79a.JPG' const CUSTOMER_FIELDS = [ 'id', 'tenantCode', 'tenantName', 'status', 'legalName', 'legalRepresentative', @@ -92,6 +92,7 @@ class AcceptanceRun { this.scenarios = [] this.createdResources = {} this.deploymentBlockers = [] + this.coverageGaps = [] this.context = {} this.token = '' this.fatal = null @@ -158,6 +159,10 @@ class AcceptanceRun { return step.passed } + addCoverageGap(module, scenario, name, reason, category = 'not-implemented') { + this.coverageGaps.push({ module, scenario, name, reason, category }) + } + apiSuccess(module, name, response, evidence = '', options = {}) { const passed = response.http === 200 && String(response.body?.code) === '200' this.addStep(module, name, response, passed, evidence, options) @@ -478,6 +483,7 @@ class AcceptanceRun { success: this.fatal === null && failed === 0, fatal: this.fatal, summary: { total: this.steps.length, passed: this.steps.length - failed, failed }, modules: this.modules, scenarios: this.scenarios, deploymentBlockers: this.deploymentBlockers, + coverageGaps: this.coverageGaps, createdResources: this.createdResources, excluded: [ { scope: 'dashboard', reason: '首页为静态演示数据,不调用后端 API' }, diff --git a/scripts/admin-test-env-modules/master-data.mjs b/scripts/admin-test-env-modules/master-data.mjs index 03b49feef..78425d5ad 100644 --- a/scripts/admin-test-env-modules/master-data.mjs +++ b/scripts/admin-test-env-modules/master-data.mjs @@ -5,6 +5,21 @@ function xlsxOk(response) { && response.bytes[0] === 0x50 && response.bytes[1] === 0x4b } +async function uploadTemplate(context, path, bytes, fileName) { + const form = new FormData() + form.append('file', new Blob([bytes], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), fileName) + try { + const response = await fetch(`${context.options.gateway}${path}`, { + method: 'POST', headers: { Accept: 'application/json', Authorization: `Bearer ${context.token}` }, + body: form, signal: AbortSignal.timeout(60_000), + }) + const raw = await response.text(); let body = null + try { body = raw ? JSON.parse(raw) : null } catch { /* bounded evidence only */ } + return { method: 'POST', path, http: response.status, body, raw: body === null ? raw.slice(0, 500) : null, + requestId: body?.requestId || response.headers.get('x-request-id'), traceId: body?.traceId || response.headers.get('x-trace-id') } + } catch (error) { return { method: 'POST', path, http: 0, body: null, raw: String(error), requestId: null, traceId: null } } +} + export async function run(context) { const module = 'master-data' const suffix = context.marker.replace(/\D/g, '').slice(-12) @@ -150,8 +165,30 @@ export async function run(context) { const response = await context.requestBinary('GET', path) context.addStep(module, `下载${name}导入模板`, response, xlsxOk(response), `bytes=${response.bytes?.length ?? 0}, contentType=${response.contentType || 'missing'}`) + if (xlsxOk(response)) { + const importPath = `${path.replace('/import-template', '/import')}?tenantId=0&dryRun=true` + const first = await uploadTemplate(context, importPath, response.bytes, `${context.marker}-${name}.xlsx`) + const firstData = first.body?.data + context.addStep(module, `${name}合法模板 dryRun 导入契约`, first, + first.http === 200 && String(first.body?.code) === '200', + `HTTP=${first.http}, code=${first.body?.code ?? 'missing'}, rows=${firstData?.totalRows ?? 'n/a'}, parserSuccess=${firstData?.success ?? 'n/a'}`, + { scenario: 'valid-import', deploymentBlocker: first.http === 404 || first.http === 405 || first.http === 503 }) + const second = await uploadTemplate(context, importPath, response.bytes, `${context.marker}-${name}-replay.xlsx`) + context.addStep(module, `${name}合法模板重复 dryRun 幂等结果稳定`, second, + second.http === 200 && String(second.body?.code) === '200' + && second.body?.data?.totalRows === firstData?.totalRows && second.body?.data?.importedRows === firstData?.importedRows, + `firstRows=${firstData?.totalRows ?? 'n/a'}, replayRows=${second.body?.data?.totalRows ?? 'n/a'}`, + { scenario: 'valid-import', deploymentBlocker: second.http === 404 || second.http === 405 || second.http === 503 }) + context.addCoverageGap(module, 'valid-import', `${name}带数据行的合法 XLSX 写入`, + '当前验收运行时无 XLSX 写入依赖;仅上传真实服务模板做解析/重复结果稳定性验证,未伪造数据行或写入主数据', 'runtime-dependency') + } else { + context.addCoverageGap(module, 'valid-import', `${name}合法 XLSX 导入`, '模板下载契约不可用,无法安全取得真实字段模板;未构造伪 XLSX', 'deployment') + } } + context.addCoverageGap(module, 'optimistic-lock', '仓库/托盘/快递/往来单位旧 version 冲突', + '真实 DTO 未声明 version/expectedVersion 字段,不能伪造并发冲突断言;库位版本已由 supplemental-boundaries 覆盖', 'contract-gap') + const disableWarehouseResponse = await context.request('PATCH', `/api/platform/v1/warehouse-admin/${warehouseId}/status?tenantId=0&status=INACTIVE`) context.apiSuccess(module, '停用测试仓库', disableWarehouseResponse) } diff --git a/scripts/admin-test-env-modules/service-center-flow.mjs b/scripts/admin-test-env-modules/service-center-flow.mjs new file mode 100644 index 000000000..4d0e84898 --- /dev/null +++ b/scripts/admin-test-env-modules/service-center-flow.mjs @@ -0,0 +1,45 @@ +const MODULE = 'service-center-flow' +const OPTIONS = { scenario: 'service-center-cross-flow', deploymentBlocker: true } +const OCEAN = '/api/platform/v1/ocean-bookings' +const TRUCK = '/api/platform/v1/truck-appointments' + +function id(value) { return value == null ? '' : String(value) } +function codeOf(response) { return response?.body?.code == null ? 'missing' : String(response.body.code) } + +export async function run(context) { + const ocean = context.createdResources?.oceanBooking + if (!ocean?.id || ocean.finalStatus !== 'RELEASED') { + context.addStep(MODULE, '跨服务链路前置订舱终态可用', null, false, + '本轮海运订舱模块未返回 RELEASED 隔离记录,未伪造关联拖车预约', OPTIONS) + return + } + + const suffix = context.marker.replace(/\D/g, '').slice(-10) + const customerId = Number(context.context?.customerId || 10001) + const payload = { + outboundOrderId: null, oceanBookingId: Number(ocean.id), containerBookingId: null, loadingPlanId: null, + warehouseId: Number(context.createdResources?.warehouse?.id || context.context?.warehouseId || 193000000000000001), + customerId, customerName: `服务中心链路客户-${suffix}`, carrierId: null, carrierName: `链路承运商-${suffix}`, + fleetContact: '链路车队联系人', fleetPhone: '13800000007', driverName: '链路司机', driverPhone: '13800000008', + driverIdCard: null, vehicleNo: `粤D-${suffix.slice(-6)}`, storeName: `链路门店-${suffix}`, storeContact: '链路联系人', + storePhone: '13800000009', storeAddress: '深圳市南山区链路地址', storeCity: '深圳市', storeZipcode: '518000', + packageCount: 1, grossWeightKg: 1, volumeCbm: 0.1, palletCount: 0, poNo: `FLOW-PO-${suffix}`, + plannedLoadingAt: '2026-09-03T08:00:00', transitMinutes: 60, payableAmount: 1, receivableAmount: 2, + currency: 'RMB', remark: context.marker, expectedVersion: 0, + } + const response = await context.request('POST', TRUCK, payload) + const appointment = context.apiSuccess(MODULE, '创建关联海运订舱的拖车预约', response, `oceanBookingId=${ocean.id}`, OPTIONS) + const appointmentId = id(appointment?.id) + context.assert(MODULE, '拖车预约关联订舱 ID、版本和审计字段完整', response, + Boolean(appointmentId) && id(appointment?.oceanBookingId) === id(ocean.id) && Number.isFinite(Number(appointment?.version)) + && Boolean(appointment?.createdAt || appointment?.createdBy || appointment?.operatorName), + `appointmentId=${appointmentId || 'missing'}, oceanBookingId=${appointment?.oceanBookingId || 'missing'}, version=${appointment?.version ?? 'missing'}`, OPTIONS) + if (!appointmentId) return + context.createdResources.serviceCenterFlow = { appointmentId, oceanBookingId: ocean.id, marker: context.marker, finalStatus: 'CANCELLED' } + const action = await context.request('POST', `${TRUCK}/${appointmentId}/cancel`, { expectedVersion: Number(appointment.version), reason: context.marker }) + const cancelled = context.apiSuccess(MODULE, '取消跨服务链路拖车预约', action, '', OPTIONS) + context.assert(MODULE, '跨服务链路安全终态为 CANCELLED', action, cancelled?.status === 'CANCELLED', `status=${cancelled?.status || 'missing'}`, OPTIONS) + const detail = await context.request('GET', `${TRUCK}/${appointmentId}`) + const final = context.apiSuccess(MODULE, '回查跨服务链路审计历史', detail, '', OPTIONS) + context.assert(MODULE, '跨服务链路状态历史存在', detail, Array.isArray(final?.histories) && final.histories.length >= 1, `histories=${final?.histories?.length ?? 'n/a'}`, OPTIONS) +} diff --git a/scripts/admin-test-env-modules/supplemental-boundaries.mjs b/scripts/admin-test-env-modules/supplemental-boundaries.mjs index bc99c3f62..7ca47c5ae 100644 --- a/scripts/admin-test-env-modules/supplemental-boundaries.mjs +++ b/scripts/admin-test-env-modules/supplemental-boundaries.mjs @@ -89,8 +89,8 @@ export async function run(context) { // Public APIs do not expose a safe way to create a real occupied pallet/ // location association without an inbound allocation fixture. Keep this as // an explicit automation gap instead of claiming a deletion-protection pass. - context.addStep(MODULE, '托盘/库位真实占用删除保护自动化缺口', null, false, - '当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源', OPTIONS) + context.addCoverageGap(MODULE, 'resource-occupancy', '托盘/库位真实占用删除保护', + '当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源', 'no-public-fixture-api') // Import boundary probes use only in-memory bytes and dry-run where supported. const bogusXlsx = new Uint8Array([0x50, 0x4b, 0x03, 0x04, 0x00, 0x00]) diff --git a/scripts/backend-full-regression.ps1 b/scripts/backend-full-regression.ps1 new file mode 100644 index 000000000..f633af92b --- /dev/null +++ b/scripts/backend-full-regression.ps1 @@ -0,0 +1,54 @@ +[CmdletBinding()] +param( + [switch]$DryRun, + [string]$MavenCommand = "mvn" +) + +$ErrorActionPreference = "Stop" +$repoRoot = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path +$pom = Join-Path $repoRoot "pom.xml" +$requiredTests = @( + "firstleg/src/test/java/com/baiyue/firstleg/oceanbooking/controller/PlatformOceanBookingControllerContractTest.java", + "firstleg/src/test/java/com/baiyue/firstleg/oceanbooking/service/OceanBookingServiceTest.java", + "firstleg/src/test/java/com/baiyue/firstleg/repository/TruckAppointmentMapperContractTest.java", + "firstleg/src/test/java/com/baiyue/firstleg/service/TruckAppointmentServiceTest.java", + "firstleg/src/test/java/com/baiyue/firstleg/controller/TruckAppointmentControllerContractTest.java", + "firstleg/src/test/java/com/baiyue/firstleg/service/UnifiedInboundQueryServiceTest.java", + "order/src/test/java/com/baiyue/order/service/UnifiedOrderQueryServiceTest.java" +) +$mavenArgs = @("-f", $pom, "-pl", "order,firstleg", "-am", "test") + +Write-Host "Backend regression root: $repoRoot" +Write-Host "Scope: order + firstleg Maven reactor (includes all module tests)" +Write-Host "Database/API access: none" + +if (-not (Test-Path -LiteralPath $pom)) { + Write-Error "Missing Maven pom: $pom" + exit 2 +} + +$missing = @($requiredTests | Where-Object { -not (Test-Path -LiteralPath (Join-Path $repoRoot $_)) }) +if ($missing.Count -gt 0) { + Write-Error ("Missing required regression coverage:`n" + ($missing -join "`n")) + exit 2 +} + +Write-Host ("Command: {0} {1}" -f $MavenCommand, ($mavenArgs -join " ")) +if ($DryRun) { + Write-Host "DRY-RUN PASS: prerequisites and coverage files are present; Maven was not started." + exit 0 +} + +Push-Location $repoRoot +try { + & $MavenCommand @mavenArgs + $code = $LASTEXITCODE +} finally { + Pop-Location +} +if ($code -ne 0) { + Write-Error "Maven regression failed with exit code $code" + exit $code +} +Write-Host "Backend regression PASS" +exit 0 diff --git a/scripts/frontend-full-regression.ps1 b/scripts/frontend-full-regression.ps1 new file mode 100644 index 000000000..bacde7fa6 --- /dev/null +++ b/scripts/frontend-full-regression.ps1 @@ -0,0 +1,40 @@ +[CmdletBinding()] +param( + [switch]$DryRun, + [switch]$SkipAdmin, + [switch]$SkipClient +) + +$ErrorActionPreference = 'Stop' +$repoRoot = (Resolve-Path (Join-Path $PSScriptRoot '../..')).Path + +function Invoke-FrontendStep { + param([string]$Name, [string]$Directory, [string]$Task) + $display = "pnpm --dir `"$Directory`" $Task" + Write-Host " [$Name] $display" + if ($DryRun) { return } + & pnpm --dir $Directory $Task + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } +} + +if ($SkipAdmin -and $SkipClient) { Write-Error 'At least one of Admin or Client must be selected.'; exit 2 } +if (-not (Get-Command pnpm -ErrorAction SilentlyContinue)) { Write-Error 'pnpm was not found on PATH.'; exit 2 } + +$targets = @() +if (-not $SkipAdmin) { $targets += @{ Name = 'Admin'; Directory = Join-Path $repoRoot 'apps/admin-web' } } +if (-not $SkipClient) { $targets += @{ Name = 'Client'; Directory = Join-Path $repoRoot 'apps/client-web' } } + +Write-Host 'Frontend full regression (local only)' +Write-Host "Repository: $repoRoot" +Write-Host "Mode: $(if ($DryRun) { 'DryRun' } else { 'Execute' })" +Write-Host 'Gateway/database/deployment: not used' + +foreach ($target in $targets) { + $packageJson = Join-Path $target.Directory 'package.json' + if (-not (Test-Path -LiteralPath $packageJson)) { Write-Error "$($target.Name) package.json not found: $packageJson"; exit 2 } + Write-Host "[$($target.Name)]" + Invoke-FrontendStep 'test' $target.Directory 'test' + Invoke-FrontendStep 'typecheck' $target.Directory 'typecheck' +} + +Write-Host 'Frontend regression completed.' diff --git a/scripts/local-db-full-acceptance.ps1 b/scripts/local-db-full-acceptance.ps1 new file mode 100644 index 000000000..d5419d8d4 --- /dev/null +++ b/scripts/local-db-full-acceptance.ps1 @@ -0,0 +1,65 @@ +param( + [switch]$DryRun, + [Alias('Host')][string]$TargetHost = '127.0.0.1', + [int]$Port = 3306, + [string]$InputPath, + [string]$MysqlExe = 'C:\Program Files\MySQL\MySQL Server 8.4\bin\mysql.exe', + [string]$User = 'root' +) + +$ErrorActionPreference = 'Stop' +$Repo = (Resolve-Path (Join-Path $PSScriptRoot '..')).Path +$Workspace = (Resolve-Path (Join-Path $Repo '..')).Path +$Acceptance = Join-Path $Workspace '.codex-tmp\p23-04-acceptance' +$ExpectedSha256 = 'E86BB8DE105E9B59736FFCD180CBA902F2E3F5032C7EFF2E3DC3B24B289360A0' +$ExpectedLines = 7803 + +if ($TargetHost -notin @('127.0.0.1', 'localhost')) { + [Console]::Error.WriteLine('Refusing non-local database; only 127.0.0.1 or localhost is allowed.') + exit 2 +} +if ([string]::IsNullOrWhiteSpace($InputPath)) { + $InputPath = (Get-ChildItem (Join-Path $Repo 'deploy\sql') -Filter '*MySQL8.sql' -File | + Where-Object { $_.Length -gt 100000 } | Select-Object -First 1).FullName +} +if (-not (Test-Path -LiteralPath $InputPath)) { + [Console]::Error.WriteLine("InputPath does not exist: $InputPath") + exit 2 +} +$actual = ((Get-FileHash -Algorithm SHA256 -LiteralPath $InputPath).Hash).Trim().ToUpperInvariant() +$lines = [System.IO.File]::ReadAllLines($InputPath).Length +if ($actual -ne $ExpectedSha256 -or $lines -ne $ExpectedLines) { + [Console]::Error.WriteLine("Unified SQL snapshot mismatch: $actual/$lines") + exit 2 +} + +$sequence = @( + 'empty: base.sql', 'replay: base.sql + input.sql + input.sql', + 'smart-old: fixture-smart-old.sql', 'inbound-old: fixture-inbound-old.sql', + 'waitsplit-iam: fixture-test-shape.sql', 'overseas-old: fixture-overseas-old.sql', + 'overseas-missing-objects: fixture-overseas-missing-objects.sql', + 'interrupted-recovery: fixture-interrupted.sql', 'final-structure: verify-final.sql') +Write-Output "SQL SHA-256: $actual / lines: $lines" +Write-Output "Target: $TargetHost`:$Port" +Write-Output 'Fixture order:' +$sequence | ForEach-Object { Write-Output " $_" } +if ($DryRun) { Write-Output 'DRY-RUN PASS (mysql not started; no database writes)'; exit 0 } + +$run = 0 +function Invoke-Stage([string]$Name, [string]$File) { + $script = Join-Path $Acceptance $File + $log = Join-Path $Acceptance ("acceptance-run-{0:D2}-{1}.log" -f $script:run, $Name) + $script:run++ + if (-not (Test-Path -LiteralPath $script)) { [Console]::Error.WriteLine("Script does not exist: $script"); return 2 } + & $MysqlExe '--protocol=TCP' "--host=$TargetHost" "--port=$Port" "--user=$User" '--database=mysql' '--batch' ("--execute=source " + $script.Replace('\','/')) *> $log + return $LASTEXITCODE +} + +$calls = @( + @('empty','base.sql'), @('replay-reset','base.sql'), @('replay-1','input.sql'), @('replay-2','input.sql'), + @('smart-old','fixture-smart-old.sql'), @('inbound-old','fixture-inbound-old.sql'), @('waitsplit-iam','fixture-test-shape.sql'), + @('overseas-old','fixture-overseas-old.sql'), @('overseas-missing','fixture-overseas-missing-objects.sql'), + @('interrupted','fixture-interrupted.sql'), @('final-verify','verify-final.sql')) +foreach ($call in $calls) { $code = Invoke-Stage $call[0] $call[1]; if ($code -ne 0) { exit $code } } +Write-Output 'FULL LOCAL ACCEPTANCE PASS' +exit 0