From 374ceed493dd0bfeb31eeddb2f542e3f3f2e2cf3 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Sat, 8 Aug 2026 13:46:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/sql/头程数据库统一增量-MySQL8.sql | 175 +- reports/admin-isolation-rerun.json | 612 +++ reports/admin-supplemental-boundaries.json | 426 ++ ...-test-env-acceptance-boundaries-rerun.json | 4322 +++++++++++++++++ .../admin-test-env-acceptance-boundaries.json | 4322 +++++++++++++++++ ...n-test-env-acceptance-isolation-final.json | 4322 +++++++++++++++++ scripts/admin-test-env-acceptance.mjs | 2 +- .../supplemental-boundaries.mjs | 137 + .../OverseasStorageFeeSqlContractTest.java | 31 + 9 files changed, 14332 insertions(+), 17 deletions(-) create mode 100644 reports/admin-isolation-rerun.json create mode 100644 reports/admin-supplemental-boundaries.json create mode 100644 reports/admin-test-env-acceptance-boundaries-rerun.json create mode 100644 reports/admin-test-env-acceptance-boundaries.json create mode 100644 reports/admin-test-env-acceptance-isolation-final.json create mode 100644 scripts/admin-test-env-modules/supplemental-boundaries.mjs diff --git a/deploy/sql/头程数据库统一增量-MySQL8.sql b/deploy/sql/头程数据库统一增量-MySQL8.sql index 895daf789..f6f9122a8 100644 --- a/deploy/sql/头程数据库统一增量-MySQL8.sql +++ b/deploy/sql/头程数据库统一增量-MySQL8.sql @@ -4001,22 +4001,123 @@ CREATE TABLE IF NOT EXISTS wh_overseas_storage_fee_tier ( ) ENGINE=InnoDB COMMENT='海外仓阶梯仓储费明细'; -- 兼容已存在的旧版海外仓费用表:补齐新字段及免费档/无上限档约束。 -ALTER TABLE wh_overseas_storage_fee_rule - ADD COLUMN IF NOT EXISTS initialization_key VARCHAR(191) NULL COMMENT '初始化幂等键'; -ALTER TABLE wh_overseas_storage_fee_tier - ADD COLUMN IF NOT EXISTS fee_type VARCHAR(32) NOT NULL DEFAULT 'STORAGE' COMMENT '费用类型', - ADD COLUMN IF NOT EXISTS billing_unit VARCHAR(16) NOT NULL DEFAULT 'CBM' COMMENT '计费单位'; -ALTER TABLE wh_overseas_storage_fee_tier - MODIFY COLUMN end_day SMALLINT UNSIGNED NULL COMMENT '结束天,含边界;NULL表示以上', - MODIFY COLUMN unit_price DECIMAL(18,6) NOT NULL COMMENT '仓储费标准,可为0'; -ALTER TABLE wh_overseas_storage_fee_tier - DROP CHECK chk_overseas_fee_tier_days, - DROP CHECK chk_overseas_fee_tier_price, - ADD CONSTRAINT chk_overseas_fee_tier_days CHECK (start_day >= 1 AND (end_day IS NULL OR end_day >= start_day)), - ADD CONSTRAINT chk_overseas_fee_tier_price CHECK (unit_price >= 0); -ALTER TABLE wh_overseas_storage_fee_tier - DROP INDEX uk_overseas_fee_tier_start, - ADD UNIQUE KEY uk_overseas_fee_tier_start (rule_id, fee_type, active_start_day); +DROP PROCEDURE IF EXISTS migrate_overseas_storage_fee_schema; +DELIMITER $$ +CREATE PROCEDURE migrate_overseas_storage_fee_schema() +BEGIN + IF NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = DATABASE() + AND table_name = 'wh_overseas_storage_fee_rule' + AND column_name = 'initialization_key' + ) THEN + SET @overseas_fee_ddl = + 'ALTER TABLE wh_overseas_storage_fee_rule ADD COLUMN initialization_key VARCHAR(191) NULL COMMENT ''初始化幂等键'''; + PREPARE overseas_fee_statement FROM @overseas_fee_ddl; + EXECUTE overseas_fee_statement; + DEALLOCATE PREPARE overseas_fee_statement; + END IF; + IF NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = DATABASE() + AND table_name = 'wh_overseas_storage_fee_tier' + AND column_name = 'fee_type' + ) THEN + SET @overseas_fee_ddl = + 'ALTER TABLE wh_overseas_storage_fee_tier ADD COLUMN fee_type VARCHAR(32) NOT NULL DEFAULT ''STORAGE'' COMMENT ''费用类型'''; + PREPARE overseas_fee_statement FROM @overseas_fee_ddl; + EXECUTE overseas_fee_statement; + DEALLOCATE PREPARE overseas_fee_statement; + END IF; + IF NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = DATABASE() + AND table_name = 'wh_overseas_storage_fee_tier' + AND column_name = 'billing_unit' + ) THEN + SET @overseas_fee_ddl = + 'ALTER TABLE wh_overseas_storage_fee_tier ADD COLUMN billing_unit VARCHAR(16) NOT NULL DEFAULT ''CBM'' COMMENT ''计费单位'''; + PREPARE overseas_fee_statement FROM @overseas_fee_ddl; + EXECUTE overseas_fee_statement; + DEALLOCATE PREPARE overseas_fee_statement; + END IF; + + ALTER TABLE wh_overseas_storage_fee_tier + MODIFY COLUMN end_day SMALLINT UNSIGNED NULL COMMENT '结束天,含边界;NULL表示以上', + MODIFY COLUMN unit_price DECIMAL(18,6) NOT NULL COMMENT '仓储费标准,可为0'; + + IF EXISTS ( + SELECT 1 FROM wh_overseas_storage_fee_tier + WHERE start_day < 1 + OR (end_day IS NOT NULL AND end_day < start_day) + OR unit_price < 0 + ) THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'Warehouse 迁移失败:海外仓费用阶梯存在非法天数或负价格'; + END IF; + IF EXISTS ( + SELECT 1 + FROM wh_overseas_storage_fee_tier + WHERE active_start_day IS NOT NULL + GROUP BY rule_id, fee_type, active_start_day + HAVING COUNT(*) > 1 + ) THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'Warehouse 迁移失败:海外仓费用阶梯目标唯一键存在重复数据'; + END IF; + + IF EXISTS ( + SELECT 1 FROM information_schema.table_constraints + WHERE constraint_schema = DATABASE() + AND table_name = 'wh_overseas_storage_fee_tier' + AND constraint_name = 'chk_overseas_fee_tier_days' + AND constraint_type = 'CHECK' + ) THEN + ALTER TABLE wh_overseas_storage_fee_tier DROP CHECK chk_overseas_fee_tier_days; + END IF; + IF EXISTS ( + SELECT 1 FROM information_schema.table_constraints + WHERE constraint_schema = DATABASE() + AND table_name = 'wh_overseas_storage_fee_tier' + AND constraint_name = 'chk_overseas_fee_tier_price' + AND constraint_type = 'CHECK' + ) THEN + ALTER TABLE wh_overseas_storage_fee_tier DROP CHECK chk_overseas_fee_tier_price; + END IF; + ALTER TABLE wh_overseas_storage_fee_tier + ADD CONSTRAINT chk_overseas_fee_tier_days + CHECK (start_day >= 1 AND (end_day IS NULL OR end_day >= start_day)), + ADD CONSTRAINT chk_overseas_fee_tier_price CHECK (unit_price >= 0); + + IF NOT EXISTS ( + SELECT 1 + FROM ( + SELECT index_name, non_unique, + GROUP_CONCAT(column_name ORDER BY seq_in_index SEPARATOR ',') AS index_columns + FROM information_schema.statistics + WHERE table_schema = DATABASE() + AND table_name = 'wh_overseas_storage_fee_tier' + AND index_name = 'uk_overseas_fee_tier_start' + GROUP BY index_name, non_unique + ) existing_index + WHERE non_unique = 0 + AND index_columns = 'rule_id,fee_type,active_start_day' + ) THEN + IF EXISTS ( + SELECT 1 FROM information_schema.statistics + WHERE table_schema = DATABASE() + AND table_name = 'wh_overseas_storage_fee_tier' + AND index_name = 'uk_overseas_fee_tier_start' + ) THEN + ALTER TABLE wh_overseas_storage_fee_tier DROP INDEX uk_overseas_fee_tier_start; + END IF; + ALTER TABLE wh_overseas_storage_fee_tier + ADD UNIQUE KEY uk_overseas_fee_tier_start (rule_id, fee_type, active_start_day); + END IF; +END$$ +DELIMITER ; +CALL migrate_overseas_storage_fee_schema(); +DROP PROCEDURE IF EXISTS migrate_overseas_storage_fee_schema; USE baiyue_iam; INSERT INTO iam_permission ( @@ -4066,12 +4167,54 @@ BEGIN END IF; IF (SELECT COUNT(DISTINCT index_name) FROM information_schema.statistics WHERE table_schema = 'baiyue_warehouse' + AND table_name IN ('wh_overseas_storage_fee_rule', 'wh_overseas_storage_fee_tier') AND index_name IN ('uk_overseas_fee_active_customer', 'idx_overseas_fee_page', 'idx_overseas_fee_customer_name', 'uk_overseas_fee_tier_start', 'idx_overseas_fee_tier_rule')) <> 5 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '统一迁移失败:海外仓阶梯费用索引未完整创建'; END IF; + IF (SELECT COUNT(*) FROM information_schema.columns + WHERE table_schema = 'baiyue_warehouse' + AND table_name = 'wh_overseas_storage_fee_rule' + AND column_name = 'initialization_key' + AND LOWER(column_type) = 'varchar(191)' + AND is_nullable = 'YES' AND column_default IS NULL) <> 1 + OR (SELECT COUNT(*) FROM information_schema.columns + WHERE table_schema = 'baiyue_warehouse' + AND table_name = 'wh_overseas_storage_fee_tier' + AND ((column_name = 'fee_type' AND LOWER(column_type) = 'varchar(32)' + AND is_nullable = 'NO' AND column_default = 'STORAGE') + OR (column_name = 'billing_unit' AND LOWER(column_type) = 'varchar(16)' + AND is_nullable = 'NO' AND column_default = 'CBM') + OR (column_name = 'end_day' AND LOWER(column_type) = 'smallint unsigned' + AND is_nullable = 'YES' AND column_default IS NULL) + OR (column_name = 'unit_price' AND LOWER(column_type) = 'decimal(18,6)' + AND is_nullable = 'NO'))) <> 4 THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = '统一迁移失败:海外仓阶梯费用字段签名不正确'; + END IF; + IF (SELECT COUNT(*) + FROM ( + SELECT non_unique, + GROUP_CONCAT(column_name ORDER BY seq_in_index SEPARATOR ',') AS index_columns + FROM information_schema.statistics + WHERE table_schema = 'baiyue_warehouse' + AND table_name = 'wh_overseas_storage_fee_tier' + AND index_name = 'uk_overseas_fee_tier_start' + GROUP BY index_name, non_unique + ) exact_index + WHERE non_unique = 0 + AND index_columns = 'rule_id,fee_type,active_start_day') <> 1 + OR (SELECT COUNT(*) FROM information_schema.table_constraints + WHERE constraint_schema = 'baiyue_warehouse' + AND table_name = 'wh_overseas_storage_fee_tier' + AND constraint_type = 'CHECK' + AND constraint_name IN ('chk_overseas_fee_tier_days', + 'chk_overseas_fee_tier_price')) <> 2 THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = '统一迁移失败:海外仓阶梯费用唯一键或 CHECK 结构不正确'; + END IF; IF (SELECT COUNT(DISTINCT permission_code) FROM baiyue_iam.iam_permission WHERE tenant_id = 0 AND status = 'ACTIVE' AND deleted = 0 AND permission_code IN ( diff --git a/reports/admin-isolation-rerun.json b/reports/admin-isolation-rerun.json new file mode 100644 index 000000000..81217d3ab --- /dev/null +++ b/reports/admin-isolation-rerun.json @@ -0,0 +1,612 @@ +{ + "reportName": "后台管理测试环境 HTTP API 验收", + "marker": "ADMIN-API-20260808054354368", + "gateway": "http://8.163.30.128:9000", + "generatedAt": "2026-08-08T05:43:55.898Z", + "startedAt": "2026-08-08T05:43:54.368Z", + "success": false, + "fatal": null, + "summary": { + "total": 27, + "passed": 15, + "failed": 12 + }, + "modules": [ + { + "name": "orders", + "startedAt": "2026-08-08T05:43:54.747Z", + "finishedAt": "2026-08-08T05:43:55.309Z", + "success": false, + "passed": 7, + "failed": 5, + "fatal": "缺少创建测试订单所需的可用渠道" + }, + { + "name": "inbound-weight-ocr", + "startedAt": "2026-08-08T05:43:55.310Z", + "finishedAt": "2026-08-08T05:43:55.373Z", + "success": false, + "passed": 0, + "failed": 1, + "fatal": null + }, + { + "name": "orders-inbound-measurement-fixture", + "startedAt": "2026-08-08T05:43:55.373Z", + "finishedAt": "2026-08-08T05:43:55.896Z", + "success": false, + "passed": 7, + "failed": 5, + "fatal": "缺少创建测试订单所需的可用渠道" + }, + { + "name": "inbound-measurement", + "startedAt": "2026-08-08T05:43:55.897Z", + "finishedAt": "2026-08-08T05:43:55.898Z", + "success": false, + "passed": 0, + "failed": 1, + "fatal": null + } + ], + "scenarios": [ + { + "name": "weight-image-recognition-and-confirmation", + "module": "inbound-weight-ocr", + "success": false, + "deploymentBlocked": false, + "passed": 0, + "failed": 1 + }, + { + "name": "mojia-carton-measurement", + "module": "inbound-measurement", + "success": false, + "deploymentBlocked": true, + "passed": 0, + "failed": 1 + } + ], + "deploymentBlockers": [ + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "evidence": "tenantId=10001", + "code": null, + "requestId": "369dc88c-363", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "evidence": "types=missing", + "code": null, + "requestId": "369dc88c-363", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "evidence": "tenantId=10001", + "code": null, + "requestId": "369dc88c-371", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "evidence": "types=missing", + "code": null, + "requestId": "369dc88c-371", + "traceId": null + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "取得隔离的待测量入库单", + "evidence": "orders 模块未提供 marker=ADMIN-API-20260808054354368-MOJIA 的 inboundId/tenantId;为避免修改随机历史订单,本模块停止写入", + "code": null, + "requestId": null, + "traceId": null + } + ], + "createdResources": { + "orchestrationFixtures": { + "inboundMeasurement": { + "marker": "ADMIN-API-20260808054354368-MOJIA", + "failed": 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": "265addfa-988b-48a8-8c80-5e69c2024b17, 675070cb-a2d6-4eb1-898e-c1e4c0d4354b", + "traceId": "4dd7905ad59341619a7094372897f3c5", + "evidence": "", + "checkedAt": "2026-08-08T05:43:54.746Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试账号登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d58ac1e6-0e1b-4f36-83a9-94b267ee2261, 4d853cc1-fb5a-472e-b969-80258d453ce0", + "traceId": "efcdac52e87d4777a18077b7b70b2181", + "evidence": "username=merchant_admin", + "checkedAt": "2026-08-08T05:43:55.097Z" + }, + { + "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": "102db2f5-4d47-4eb3-bb37-0740b445bc4d, 86f76b5d-2537-4bf3-a521-5af39a70d9b3", + "traceId": "1c6762dc4dbd4e33ba9078ab8854ac35", + "evidence": "", + "checkedAt": "2026-08-08T05:43:55.145Z" + }, + { + "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": "102db2f5-4d47-4eb3-bb37-0740b445bc4d, 86f76b5d-2537-4bf3-a521-5af39a70d9b3", + "traceId": "1c6762dc4dbd4e33ba9078ab8854ac35", + "evidence": "tenantId=10001, status=ACTIVE", + "checkedAt": "2026-08-08T05:43:55.145Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "369dc88c-363", + "traceId": null, + "evidence": "tenantId=10001", + "checkedAt": "2026-08-08T05:43:55.168Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "369dc88c-363", + "traceId": null, + "evidence": "types=missing", + "checkedAt": "2026-08-08T05:43:55.168Z" + }, + { + "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": "5df3d448-b678-42e7-a872-8cad35fdb1bf, 9b4309fd-f21e-4390-b8d5-d3e3b1dbfdc3", + "traceId": "14295af99925417c8cac9ba5017e5382", + "evidence": "", + "checkedAt": "2026-08-08T05:43:55.209Z" + }, + { + "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": "5df3d448-b678-42e7-a872-8cad35fdb1bf, 9b4309fd-f21e-4390-b8d5-d3e3b1dbfdc3", + "traceId": "14295af99925417c8cac9ba5017e5382", + "evidence": "count=2", + "checkedAt": "2026-08-08T05:43:55.209Z" + }, + { + "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": "c1b8251c-5430-4664-8e72-b57854c6f398, bc5c512f-f283-4fc8-96b3-0e387533f0ee", + "traceId": "946b84ea56024e6cab7954005c917330", + "evidence": "", + "checkedAt": "2026-08-08T05:43:55.274Z" + }, + { + "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": "c1b8251c-5430-4664-8e72-b57854c6f398, bc5c512f-f283-4fc8-96b3-0e387533f0ee", + "traceId": "946b84ea56024e6cab7954005c917330", + "evidence": "count=200", + "checkedAt": "2026-08-08T05:43:55.274Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询可用计费渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "b399112a-366", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:43:55.309Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在带计价税制的可用渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "b399112a-366", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:43:55.309Z" + }, + { + "module": "orders", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "缺少创建测试订单所需的可用渠道", + "checkedAt": "2026-08-08T05:43:55.309Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "仅选择带本轮测试标记的可编辑入库单", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "marker=ADMIN-API-20260808054354368, 未找到本轮创建且状态为 WAIT_MEASURE/MEASURING/MEASURE_REJECTED 的入库单", + "checkedAt": "2026-08-08T05:43:55.373Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试账号登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fa0f753e-136e-470f-8739-a373d982e200, b5f2f773-8ea7-43de-9670-dfc00fa0e5aa", + "traceId": "49349e4462484491b675c501291f82aa", + "evidence": "username=merchant_admin", + "checkedAt": "2026-08-08T05:43:55.710Z" + }, + { + "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": "2362b5a0-5c32-4220-bb13-7d559054b9fa, 49cbadb9-dacb-498a-8586-566d492637aa", + "traceId": "7be0232daa6243cbbf8be4cbe5278d29", + "evidence": "", + "checkedAt": "2026-08-08T05:43:55.748Z" + }, + { + "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": "2362b5a0-5c32-4220-bb13-7d559054b9fa, 49cbadb9-dacb-498a-8586-566d492637aa", + "traceId": "7be0232daa6243cbbf8be4cbe5278d29", + "evidence": "tenantId=10001, status=ACTIVE", + "checkedAt": "2026-08-08T05:43:55.748Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "369dc88c-371", + "traceId": null, + "evidence": "tenantId=10001", + "checkedAt": "2026-08-08T05:43:55.774Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "369dc88c-371", + "traceId": null, + "evidence": "types=missing", + "checkedAt": "2026-08-08T05:43:55.774Z" + }, + { + "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": "04497201-663d-4373-b09a-a69da2390a3f, 04fc3e2e-081e-404a-a3e8-3f95e1d7fbb0", + "traceId": "86e92a3f196b4671a9a6c583fdc7f2b8", + "evidence": "", + "checkedAt": "2026-08-08T05:43:55.812Z" + }, + { + "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": "04497201-663d-4373-b09a-a69da2390a3f, 04fc3e2e-081e-404a-a3e8-3f95e1d7fbb0", + "traceId": "86e92a3f196b4671a9a6c583fdc7f2b8", + "evidence": "count=2", + "checkedAt": "2026-08-08T05:43:55.813Z" + }, + { + "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": "77abe5aa-19f3-41b2-8cff-b8ebc75344a1, 3df48e12-971d-4e45-9abb-8be49cb0c6e6", + "traceId": "b79177fee34143a3b87da6ea489444a4", + "evidence": "", + "checkedAt": "2026-08-08T05:43:55.866Z" + }, + { + "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": "77abe5aa-19f3-41b2-8cff-b8ebc75344a1, 3df48e12-971d-4e45-9abb-8be49cb0c6e6", + "traceId": "b79177fee34143a3b87da6ea489444a4", + "evidence": "count=200", + "checkedAt": "2026-08-08T05:43:55.866Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询可用计费渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "b399112a-374", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:43:55.896Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在带计价税制的可用渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "b399112a-374", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:43:55.896Z" + }, + { + "module": "orders-inbound-measurement-fixture", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "缺少创建测试订单所需的可用渠道", + "checkedAt": "2026-08-08T05:43:55.896Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "取得隔离的待测量入库单", + "passed": false, + "deploymentBlocker": true, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "orders 模块未提供 marker=ADMIN-API-20260808054354368-MOJIA 的 inboundId/tenantId;为避免修改随机历史订单,本模块停止写入", + "checkedAt": "2026-08-08T05:43:55.898Z" + } + ] +} diff --git a/reports/admin-supplemental-boundaries.json b/reports/admin-supplemental-boundaries.json new file mode 100644 index 000000000..47e824500 --- /dev/null +++ b/reports/admin-supplemental-boundaries.json @@ -0,0 +1,426 @@ +{ + "reportName": "后台管理测试环境 HTTP API 验收", + "marker": "ADMIN-API-20260808053940400", + "gateway": "http://8.163.30.128:9000", + "generatedAt": "2026-08-08T05:39:42.568Z", + "startedAt": "2026-08-08T05:39:40.400Z", + "success": false, + "fatal": null, + "summary": { + "total": 20, + "passed": 14, + "failed": 6 + }, + "modules": [ + { + "name": "supplemental-boundaries", + "startedAt": "2026-08-08T05:39:40.888Z", + "finishedAt": "2026-08-08T05:39:42.568Z", + "success": false, + "passed": 13, + "failed": 6, + "fatal": null + } + ], + "scenarios": [ + { + "name": "admin-boundary-automation", + "module": "supplemental-boundaries", + "success": false, + "deploymentBlocked": true, + "passed": 13, + "failed": 6 + } + ], + "deploymentBlockers": [ + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "托盘/库位真实占用删除保护自动化缺口", + "evidence": "当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "船期价格非法状态边界响应正确", + "evidence": "HTTP=503, code=missing", + "code": null, + "requestId": "8588809e-50", + "traceId": null + } + ], + "createdResources": {}, + "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": "59e62f5a-a19a-481e-a9ef-4e7da203bad0, c17f4a61-3a7b-4c0d-9e81-3b4991ce3c40", + "traceId": "190e5ac2b5be439b9d19e56d06eb0246", + "evidence": "", + "checkedAt": "2026-08-08T05:39:40.886Z" + }, + { + "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": "9e6150b0-9cb4-4c92-b78b-9077c673108b, c864a23e-4c96-4e70-a8de-1aba95ee0b62", + "traceId": "38f6146c977e4b62b3d8c1c1c63d4c9e", + "evidence": "", + "checkedAt": "2026-08-08T05:39:41.092Z" + }, + { + "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": "129bf3a7-b7fa-459e-86f6-def0a3c4b9ea, d547468c-6949-4fa9-b211-f2cfe54dc813", + "traceId": "c2b5020e43884096840999908cc41d12", + "evidence": "", + "checkedAt": "2026-08-08T05:39:41.193Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "读取隔离库位版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8f4bfb34-ba8c-446d-9306-9e46bf42a940, 8f51b111-9683-4ef6-9a67-b1cf1478105b", + "traceId": "7174f84fdd8d4fbaa73728f35b2835a5", + "evidence": "", + "checkedAt": "2026-08-08T05:39:41.247Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "更新隔离库位以推进版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1a2c4f72-7904-47b4-aedc-e4fad8fc439b, d4a63cbf-2fb1-4ce4-a68c-8fa22b8823da", + "traceId": "f8d11c13de5c4dfc973c447a537a0af3", + "evidence": "version=0", + "checkedAt": "2026-08-08T05:39:41.313Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位旧 version PUT 返回冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874" + }, + "http": 200, + "code": "A0409", + "message": "库位已被其他操作修改,请刷新后重试", + "requestId": "c431047d-9ae5-4884-b697-e0aa4e7efa81", + "traceId": "c0bed96d902b4f85b921bd2a75f7502c", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T05:39:41.365Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "冲突后回查库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9ed0db1a-7baf-40c7-9fa2-25171421f0cf, cba60cdf-3160-49a7-86e1-b7c9f1a12774", + "traceId": "6223aae1c5e547b18e1f9851aaae822a", + "evidence": "", + "checkedAt": "2026-08-08T05:39:41.415Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位冲突未造成部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9ed0db1a-7baf-40c7-9fa2-25171421f0cf, cba60cdf-3160-49a7-86e1-b7c9f1a12774", + "traceId": "6223aae1c5e547b18e1f9851aaae822a", + "evidence": "name=边界库位-编辑", + "checkedAt": "2026-08-08T05:39:41.415Z" + }, + { + "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-08T05:39:41.415Z" + }, + { + "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": "43673cd0-7cfa-4df8-979d-69811460f20a, 4fe85980-bff6-4efd-abd6-12731c0dbc64", + "traceId": "31abe2fc66c042149a2c27f9212b5d0d", + "evidence": "HTTP=200, code=200, bytes=0", + "checkedAt": "2026-08-08T05:39:41.486Z" + }, + { + "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": "29f0d6a5-c5a3-4be7-bc4b-2e2dc78e9e61, e2d41aa3-dfaa-4297-85fc-d7262cb28979", + "traceId": "d0276db3a031414bb66659d5a35f75c5", + "evidence": "HTTP=200, code=200, bytes=6", + "checkedAt": "2026-08-08T05:39:41.612Z" + }, + { + "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": "0df47055-d23d-4d2a-a4d0-d273c043beaa, 491dab6e-0fcf-41dd-9bbc-90726e9b8081", + "traceId": "77cb6c065dbc4c808c481ddcc40bd4c1", + "evidence": "HTTP=200, code=200, bytes=27", + "checkedAt": "2026-08-08T05:39:41.651Z" + }, + { + "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": "bd5fd0ad-a772-4141-8e62-7900e689a801, 6bf285d4-f212-4697-bb67-8be0b4f062a1", + "traceId": "bb9116a22f144153a6ba6b2c4062465b", + "evidence": "HTTP=200, code=200, bytes=27", + "checkedAt": "2026-08-08T05:39:41.686Z" + }, + { + "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": "S0500", + "message": "Internal server error", + "requestId": "27956363-1cd8-49c9-9c5c-f2e3a172bdab", + "traceId": "5c1894c4d5af4633b201b5bdfc0d9cc8", + "evidence": "HTTP=200, code=S0500", + "checkedAt": "2026-08-08T05:39:41.729Z" + }, + { + "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": "8588809e-48", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:39:41.763Z" + }, + { + "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": "62163d22-4c08-4f42-8f41-b37a9e030479", + "traceId": "1969a2349eda4dc487aae32454b81665", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:39:42.210Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "船期价格非法状态边界响应正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=INVALID" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "8588809e-50", + "traceId": null, + "evidence": "HTTP=503, code=missing", + "checkedAt": "2026-08-08T05:39:42.325Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "停用隔离库位以便清理", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/locations/2085964137512353794/status?tenantId=0&warehouseId=2085964137071951874" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6866d82d-457a-4270-bc94-81a25f14caef, 33e987a8-7b79-4dcb-a3a9-8930683cc200", + "traceId": "86ee5c486dd24e8392296db09e07d8f8", + "evidence": "", + "checkedAt": "2026-08-08T05:39:42.410Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "删除隔离库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874&version=2" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7f84fc98-7a21-4748-b605-b4ae4dd4b9f2, 4f3fdb6e-fda6-4781-9c09-19b32517061e", + "traceId": "752b78a1938845eb99d4a9970b16b871", + "evidence": "", + "checkedAt": "2026-08-08T05:39:42.496Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "停用隔离仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/warehouse-admin/2085964137071951874/status?tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "44111f4f-669b-4c90-84cb-1328d0431543, 486b37d3-b302-4bdf-9c1b-62edc6621831", + "traceId": "150ae3f066df4da8b4c56fa5fa5c46f2", + "evidence": "", + "checkedAt": "2026-08-08T05:39:42.568Z" + } + ] +} diff --git a/reports/admin-test-env-acceptance-boundaries-rerun.json b/reports/admin-test-env-acceptance-boundaries-rerun.json new file mode 100644 index 000000000..1535860f0 --- /dev/null +++ b/reports/admin-test-env-acceptance-boundaries-rerun.json @@ -0,0 +1,4322 @@ +{ + "reportName": "后台管理测试环境 HTTP API 验收", + "marker": "ADMIN-API-20260808054048141", + "gateway": "http://8.163.30.128:9000", + "generatedAt": "2026-08-08T05:41:01.873Z", + "startedAt": "2026-08-08T05:40:48.141Z", + "success": false, + "fatal": null, + "summary": { + "total": 222, + "passed": 186, + "failed": 36 + }, + "modules": [ + { + "name": "customers", + "startedAt": "2026-08-08T05:40:48.588Z", + "finishedAt": "2026-08-08T05:40:48.841Z", + "success": false, + "passed": 1, + "failed": 2, + "fatal": "创建客户失败,后续客户模块无法继续" + }, + { + "name": "overseas-storage-fees", + "startedAt": "2026-08-08T05:40:48.843Z", + "finishedAt": "2026-08-08T05:40:49.020Z", + "success": false, + "passed": 1, + "failed": 3, + "fatal": null + }, + { + "name": "system", + "startedAt": "2026-08-08T05:40:49.020Z", + "finishedAt": "2026-08-08T05:40:52.525Z", + "success": true, + "passed": 41, + "failed": 0, + "fatal": null + }, + { + "name": "master-data", + "startedAt": "2026-08-08T05:40:52.526Z", + "finishedAt": "2026-08-08T05:40:53.849Z", + "success": true, + "passed": 42, + "failed": 0, + "fatal": null + }, + { + "name": "orders", + "startedAt": "2026-08-08T05:40:53.850Z", + "finishedAt": "2026-08-08T05:40:54.445Z", + "success": false, + "passed": 7, + "failed": 5, + "fatal": "缺少创建测试订单所需的可用渠道" + }, + { + "name": "pricing", + "startedAt": "2026-08-08T05:40:54.447Z", + "finishedAt": "2026-08-08T05:40:54.500Z", + "success": false, + "passed": 1, + "failed": 3, + "fatal": null + }, + { + "name": "downloads", + "startedAt": "2026-08-08T05:40:54.501Z", + "finishedAt": "2026-08-08T05:40:58.796Z", + "success": true, + "passed": 8, + "failed": 0, + "fatal": null + }, + { + "name": "inbound-weight-ocr", + "startedAt": "2026-08-08T05:40:58.798Z", + "finishedAt": "2026-08-08T05:40:58.857Z", + "success": false, + "passed": 0, + "failed": 1, + "fatal": null + }, + { + "name": "orders-inbound-measurement-fixture", + "startedAt": "2026-08-08T05:40:58.858Z", + "finishedAt": "2026-08-08T05:40:59.438Z", + "success": false, + "passed": 7, + "failed": 5, + "fatal": "缺少创建测试订单所需的可用渠道" + }, + { + "name": "inbound-measurement", + "startedAt": "2026-08-08T05:40:59.439Z", + "finishedAt": "2026-08-08T05:40:59.440Z", + "success": false, + "passed": 0, + "failed": 1, + "fatal": null + }, + { + "name": "supplemental", + "startedAt": "2026-08-08T05:40:59.441Z", + "finishedAt": "2026-08-08T05:41:01.217Z", + "success": false, + "passed": 64, + "failed": 10, + "fatal": null + }, + { + "name": "supplemental-boundaries", + "startedAt": "2026-08-08T05:41:01.218Z", + "finishedAt": "2026-08-08T05:41:01.873Z", + "success": false, + "passed": 13, + "failed": 6, + "fatal": null + } + ], + "scenarios": [ + { + "name": "price-book-lifecycle", + "module": "pricing", + "success": false, + "deploymentBlocked": true, + "passed": 1, + "failed": 3 + }, + { + "name": "weight-image-recognition-and-confirmation", + "module": "inbound-weight-ocr", + "success": false, + "deploymentBlocked": false, + "passed": 0, + "failed": 1 + }, + { + "name": "mojia-carton-measurement", + "module": "inbound-measurement", + "success": false, + "deploymentBlocked": true, + "passed": 0, + "failed": 1 + }, + { + "name": "admin-boundary-automation", + "module": "supplemental-boundaries", + "success": false, + "deploymentBlocked": true, + "passed": 13, + "failed": 6 + } + ], + "deploymentBlockers": [ + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "创建海外仓费用隔离客户", + "evidence": "", + "code": "S0503", + "requestId": "59bbb0b9-01c2-48d3-bdd5-b41c1e72a10a", + "traceId": "811c1d7c20884a3aae1127ced8eab993" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "海外仓费用隔离客户创建并带 marker", + "evidence": "tenantId=missing", + "code": "S0503", + "requestId": "59bbb0b9-01c2-48d3-bdd5-b41c1e72a10a", + "traceId": "811c1d7c20884a3aae1127ced8eab993" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "取得本轮客户 ID", + "evidence": "未找到可隔离客户,禁止使用历史客户", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "evidence": "tenantId=10001", + "code": null, + "requestId": "10bf8220-268", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "evidence": "types=missing", + "code": null, + "requestId": "10bf8220-268", + "traceId": null + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询发布前船期价格版本", + "evidence": "", + "code": null, + "requestId": "10bf8220-272", + "traceId": null + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "发布前最多一份生效版本", + "evidence": "versions=n/a, active=0", + "code": null, + "requestId": "10bf8220-272", + "traceId": null + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上传并解析船期价格表", + "evidence": "fileName=ADMIN-API-20260808054048141-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "code": null, + "requestId": "10bf8220-273", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "evidence": "tenantId=10001", + "code": null, + "requestId": "763ae69d-284", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "evidence": "types=missing", + "code": null, + "requestId": "763ae69d-284", + "traceId": null + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "取得隔离的待测量入库单", + "evidence": "orders 模块未提供 marker=ADMIN-API-20260808054048141-MOJIA 的 inboundId/tenantId;为避免修改随机历史订单,本模块停止写入", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "存在可供安全下载核验的生效价格版本", + "evidence": "当前无 ACTIVE 价格版本,无法安全执行源文件下载核验", + "code": null, + "requestId": "763ae69d-320", + "traceId": null + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "托盘/库位真实占用删除保护自动化缺口", + "evidence": "当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "船期价格非法状态边界响应正确", + "evidence": "HTTP=503, code=missing", + "code": null, + "requestId": "10bf8220-347", + "traceId": null + } + ], + "createdResources": { + "systemPermission": { + "id": "2085964422648025090", + "code": "platform:acceptance:808054048141" + }, + "systemRole": { + "id": "2085964424170557441", + "code": "ADMIN_ACCEPT_808054048141", + "finalStatus": "DISABLED", + "retainedBecauseAssigned": true + }, + "systemUser": { + "membershipId": "2085964427207233539", + "username": "admin_accept_808054048141", + "finalStatus": "DISABLED" + }, + "warehouse": { + "id": "2085964437182791681", + "code": "AW808054048141", + "finalStatus": "INACTIVE" + }, + "location": { + "id": "2085964437849686017", + "warehouseId": "2085964437182791681", + "deleted": false + }, + "pallet": { + "id": "2085964438961176578", + "warehouseId": "2085964437182791681", + "deleted": true + }, + "expressCompany": { + "id": "2085964439862951938", + "code": "EX808054048141", + "finalStatus": "INACTIVE" + }, + "partner": { + "id": "2085964440781504514", + "code": "PT808054048141", + "finalStatus": "INACTIVE" + }, + "exportTask": { + "id": "2085964445231153154" + }, + "orchestrationFixtures": { + "inboundMeasurement": { + "marker": "ADMIN-API-20260808054048141-MOJIA", + "failed": 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": "c4cdf7f7-c876-4498-a156-b3183c517801, 73820475-0413-406b-816a-2127bd87a12b", + "traceId": "c55ed7b8b0e743f9b46cf2ca60e5b98c", + "evidence": "", + "checkedAt": "2026-08-08T05:40:48.588Z" + }, + { + "module": "customers", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16167648588" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cbb87ea5-3826-4f24-b6f6-2095008aa15b, 8962697a-b46d-45c4-8a34-913f057c5ae2", + "traceId": "4303826ef524443883aee2b1e63d1ba1", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T05:40:48.762Z" + }, + { + "module": "customers", + "scenario": null, + "name": "创建客户", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "S0503", + "message": "4条默认箱规尺寸初始化失败,已重试 3 次: [503] during [POST] to [http://firstleg-service/internal/firstleg/v1/customer-dimension-configs/defaults] [CustomerDimensionRuleClient#initialize(String,InitializationRequest)]: [Load balancer does not contain an instance for the service firstleg-service]", + "requestId": "4f64ab1b-5e47-40a3-9bb9-fe5a55f4056a", + "traceId": "557293d2592c40b1bf92d38c712f4337", + "evidence": "", + "checkedAt": "2026-08-08T05:40:48.841Z" + }, + { + "module": "customers", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "创建客户失败,后续客户模块无法继续", + "checkedAt": "2026-08-08T05:40:48.841Z" + }, + { + "module": "overseas-storage-fees", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16167648843" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a9f161eb-1aaf-4232-95f9-2efecb567fc3, 77a6740c-238d-4bc4-a67c-9049b54dc61e", + "traceId": "6ba1fe9d89514bef8d9297404aa809d8", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T05:40:48.927Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "创建海外仓费用隔离客户", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "S0503", + "message": "4条默认箱规尺寸初始化失败,已重试 3 次: [503] during [POST] to [http://firstleg-service/internal/firstleg/v1/customer-dimension-configs/defaults] [CustomerDimensionRuleClient#initialize(String,InitializationRequest)]: [Load balancer does not contain an instance for the service firstleg-service]", + "requestId": "59bbb0b9-01c2-48d3-bdd5-b41c1e72a10a", + "traceId": "811c1d7c20884a3aae1127ced8eab993", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.019Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "海外仓费用隔离客户创建并带 marker", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "S0503", + "message": "4条默认箱规尺寸初始化失败,已重试 3 次: [503] during [POST] to [http://firstleg-service/internal/firstleg/v1/customer-dimension-configs/defaults] [CustomerDimensionRuleClient#initialize(String,InitializationRequest)]: [Load balancer does not contain an instance for the service firstleg-service]", + "requestId": "59bbb0b9-01c2-48d3-bdd5-b41c1e72a10a", + "traceId": "811c1d7c20884a3aae1127ced8eab993", + "evidence": "tenantId=missing", + "checkedAt": "2026-08-08T05:40:49.019Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "取得本轮客户 ID", + "passed": false, + "deploymentBlocker": true, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "未找到可隔离客户,禁止使用历史客户", + "checkedAt": "2026-08-08T05:40:49.020Z" + }, + { + "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": "94482e41-8e01-4d64-8418-519f3a60eecc, 9f2206ce-bf67-4b7a-ae1a-986b74d9cf5a", + "traceId": "ebd089ddca1841629855084aa582765d", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.114Z" + }, + { + "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": "94482e41-8e01-4d64-8418-519f3a60eecc, 9f2206ce-bf67-4b7a-ae1a-986b74d9cf5a", + "traceId": "ebd089ddca1841629855084aa582765d", + "evidence": "count=136", + "checkedAt": "2026-08-08T05:40:49.114Z" + }, + { + "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": "8de7feaf-d72e-4835-b8b1-f97040608bc1, c8338842-84ed-4428-9ba4-cb185dabd6fd", + "traceId": "bc4b64b4acc344a9bb8432a316764f7c", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.195Z" + }, + { + "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": "8de7feaf-d72e-4835-b8b1-f97040608bc1, c8338842-84ed-4428-9ba4-cb185dabd6fd", + "traceId": "bc4b64b4acc344a9bb8432a316764f7c", + "evidence": "permissionId=2085964422648025090", + "checkedAt": "2026-08-08T05:40:49.195Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑自定义权限资源", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964422648025090" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2f66ded3-3fa0-41b4-97b1-90acfd3e31d9, a9d42b11-dd2e-4a55-b0a2-00491a5bd5bb", + "traceId": "3089b76f085842619d3ed4a73cf114ed", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.288Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964422648025090" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2f66ded3-3fa0-41b4-97b1-90acfd3e31d9, a9d42b11-dd2e-4a55-b0a2-00491a5bd5bb", + "traceId": "3089b76f085842619d3ed4a73cf114ed", + "evidence": "permissionId=2085964422648025090", + "checkedAt": "2026-08-08T05:40:49.288Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用自定义权限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964422648025090/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3c6027aa-e1d0-47da-80a4-272d3283040b, 1b3062b7-ab19-412b-899e-ad6cd957621c", + "traceId": "96bd483604c24ee597e3c9903b41cd4f", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.372Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限状态回显 DISABLED", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964422648025090/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3c6027aa-e1d0-47da-80a4-272d3283040b, 1b3062b7-ab19-412b-899e-ad6cd957621c", + "traceId": "96bd483604c24ee597e3c9903b41cd4f", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:40:49.372Z" + }, + { + "module": "system", + "scenario": null, + "name": "启用自定义权限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964422648025090/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5a374566-400c-447e-b853-65abdd70bcf6, 0b1344ee-7f52-45b7-8dfb-6d512950f71b", + "traceId": "02ed7cad5ec14eec9309a92c5a5db8e5", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.466Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限状态回显 ACTIVE", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964422648025090/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5a374566-400c-447e-b853-65abdd70bcf6, 0b1344ee-7f52-45b7-8dfb-6d512950f71b", + "traceId": "02ed7cad5ec14eec9309a92c5a5db8e5", + "evidence": "status=ACTIVE", + "checkedAt": "2026-08-08T05:40:49.466Z" + }, + { + "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": "505bee17-9d3e-402d-8c86-ce8912469fc0, cea71295-cfaa-4672-bedd-534b8d02ee61", + "traceId": "272be57be1f54746903416a70b118616", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.556Z" + }, + { + "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": "505bee17-9d3e-402d-8c86-ce8912469fc0, cea71295-cfaa-4672-bedd-534b8d02ee61", + "traceId": "272be57be1f54746903416a70b118616", + "evidence": "roleId=2085964424170557441", + "checkedAt": "2026-08-08T05:40:49.556Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑平台自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964424170557441" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "dfecb559-21bb-4c7f-b078-61afaec09aa1, 46804454-2280-428d-8fba-243935d0f889", + "traceId": "efba02fec54648959e8e4e422c88c98c", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.648Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964424170557441" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "dfecb559-21bb-4c7f-b078-61afaec09aa1, 46804454-2280-428d-8fba-243935d0f889", + "traceId": "efba02fec54648959e8e4e422c88c98c", + "evidence": "roleId=2085964424170557441", + "checkedAt": "2026-08-08T05:40:49.648Z" + }, + { + "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": "15531634-3703-4662-af01-aaa16c8d4ac9, 8d106709-d314-4679-9e34-3d5f0813ca8d", + "traceId": "91aa4f8d5ebe48378333484b4baae053", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.743Z" + }, + { + "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": "748b930b-4a09-4851-8925-9c0f1fd5319c, 698acc60-eab6-4f3a-abed-aecbee46840d", + "traceId": "98174434572645a6a8bfc477b5724cf3", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.828Z" + }, + { + "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": "748b930b-4a09-4851-8925-9c0f1fd5319c, 698acc60-eab6-4f3a-abed-aecbee46840d", + "traceId": "98174434572645a6a8bfc477b5724cf3", + "evidence": "permissionIds=2085964422648025090", + "checkedAt": "2026-08-08T05:40:49.828Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964424170557441/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "07f2c1fa-ca48-4abe-b1ca-085dfd9d4898, c1c098c8-17f0-4955-9133-e74e3877939e", + "traceId": "aea0c1f246bc4ea29c02ba5b01c18aa7", + "evidence": "", + "checkedAt": "2026-08-08T05:40:49.917Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色状态回显 DISABLED", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964424170557441/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "07f2c1fa-ca48-4abe-b1ca-085dfd9d4898, c1c098c8-17f0-4955-9133-e74e3877939e", + "traceId": "aea0c1f246bc4ea29c02ba5b01c18aa7", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:40:49.917Z" + }, + { + "module": "system", + "scenario": null, + "name": "启用自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964424170557441/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "645ec931-ffb1-44a3-8b05-2b24d30aeb63, 365e0ce9-fbd5-4948-9c52-7e294f95deab", + "traceId": "2f5dd771ef604345acb736bd67687619", + "evidence": "", + "checkedAt": "2026-08-08T05:40:50.006Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色状态回显 ACTIVE", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964424170557441/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "645ec931-ffb1-44a3-8b05-2b24d30aeb63, 365e0ce9-fbd5-4948-9c52-7e294f95deab", + "traceId": "2f5dd771ef604345acb736bd67687619", + "evidence": "status=ACTIVE", + "checkedAt": "2026-08-08T05:40:50.006Z" + }, + { + "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": "0b851da5-154e-4b5f-ba68-99a8a3b79be0, b95ab885-b507-4607-95fe-ef584a05251c", + "traceId": "32448398e64a4cdca9962a1c43512558", + "evidence": "", + "checkedAt": "2026-08-08T05:40:50.097Z" + }, + { + "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": "0b851da5-154e-4b5f-ba68-99a8a3b79be0, b95ab885-b507-4607-95fe-ef584a05251c", + "traceId": "32448398e64a4cdca9962a1c43512558", + "evidence": "tenants=1, roles=16", + "checkedAt": "2026-08-08T05:40:50.098Z" + }, + { + "module": "system", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16167650098" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5185fe51-ab98-47b8-8a05-5b5d8359e285, 18533da4-fb37-47e9-b396-bf62a664c184", + "traceId": "ea47cd7479aa402692b5486a94cce290", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T05:40:50.188Z" + }, + { + "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": "eae33874-4031-47ad-b886-07b41fcf2dbf, 79148c3b-be84-489d-94b7-92f4db7f1409", + "traceId": "62f1e905556644e98b8d2e9d1c58cefc", + "evidence": "", + "checkedAt": "2026-08-08T05:40:50.585Z" + }, + { + "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": "eae33874-4031-47ad-b886-07b41fcf2dbf, 79148c3b-be84-489d-94b7-92f4db7f1409", + "traceId": "62f1e905556644e98b8d2e9d1c58cefc", + "evidence": "membershipId=2085964427207233539", + "checkedAt": "2026-08-08T05:40:50.585Z" + }, + { + "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_808054048141" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "123bbdb3-f2fe-4bcc-93fd-ae11a450123b, 3c52266b-87c1-416d-bfe9-e7e085a00e74", + "traceId": "0d3f0b5841e24633ad68109e55dacae8", + "evidence": "", + "checkedAt": "2026-08-08T05:40:50.624Z" + }, + { + "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_808054048141" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "123bbdb3-f2fe-4bcc-93fd-ae11a450123b, 3c52266b-87c1-416d-bfe9-e7e085a00e74", + "traceId": "0d3f0b5841e24633ad68109e55dacae8", + "evidence": "records=1, missing=none, lastLoginAt=omitted", + "checkedAt": "2026-08-08T05:40:50.624Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑平台内部用户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085964427207233539" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0bf1164d-24ba-460c-98c8-e9f14ae0a73e, 5fd81353-08fb-4c22-b45e-33a049ebaf26", + "traceId": "af585b9afe1b4a8ba12fefa9075bf80e", + "evidence": "", + "checkedAt": "2026-08-08T05:40:50.796Z" + }, + { + "module": "system", + "scenario": null, + "name": "用户编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085964427207233539" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0bf1164d-24ba-460c-98c8-e9f14ae0a73e, 5fd81353-08fb-4c22-b45e-33a049ebaf26", + "traceId": "af585b9afe1b4a8ba12fefa9075bf80e", + "evidence": "membershipId=2085964427207233539", + "checkedAt": "2026-08-08T05:40:50.796Z" + }, + { + "module": "system", + "scenario": null, + "name": "新建内部用户可使用初始密码登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6d491a69-2c8b-4c26-9d10-44c298d8e28d, c89dab2d-739f-4742-add8-4efa6a6f358e", + "traceId": "42e7fa9ddc834880b0595e270998f0c2", + "evidence": "username=admin_accept_808054048141", + "checkedAt": "2026-08-08T05:40:51.135Z" + }, + { + "module": "system", + "scenario": null, + "name": "重置平台内部用户密码", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085964427207233539/password" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f6d1c57b-35eb-4049-bba2-fb965bfc68bc, 2161e1cb-ed8b-4aa5-8fbb-0bb5fcecd262", + "traceId": "4222043e502a4f1bb901494aa9d5be05", + "evidence": "", + "checkedAt": "2026-08-08T05:40:51.569Z" + }, + { + "module": "system", + "scenario": null, + "name": "内部用户使用重置密码登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a7f281ad-d991-484c-812b-7622415eb510, 6fb13065-aa50-4166-aedc-11585787775e", + "traceId": "641bc4d8a9d84cfa9536e2601b222e4f", + "evidence": "username=admin_accept_808054048141", + "checkedAt": "2026-08-08T05:40:51.918Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用平台内部用户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085964427207233539/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b8fe6fe0-f05f-4c94-8d3a-b8a59b48052a, b2a91e75-e119-44ba-afc9-2faa65271ba7", + "traceId": "8f7c82090c074361a7d09ed2f4daa752", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.143Z" + }, + { + "module": "system", + "scenario": null, + "name": "内部用户停用状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085964427207233539/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b8fe6fe0-f05f-4c94-8d3a-b8a59b48052a, b2a91e75-e119-44ba-afc9-2faa65271ba7", + "traceId": "8f7c82090c074361a7d09ed2f4daa752", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:40:52.143Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用用户禁止登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "A0403", + "message": "账号已禁用", + "requestId": "3a55a099-6234-4b54-b335-0525cfa3e3fa", + "traceId": "bfd6699dd086451caeeb5625d8565288", + "evidence": "HTTP=200, code=A0403", + "checkedAt": "2026-08-08T05:40:52.173Z" + }, + { + "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": "fd94929a-b6d1-4db5-801a-60c52dcccc9e, e9f9a099-38be-486a-868b-bd236a22aad1", + "traceId": "3ed9e18e9547454190616e2b930df764", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.316Z" + }, + { + "module": "system", + "scenario": "system-role-protection", + "name": "已分配成员的角色禁止删除", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/iam/roles/2085964424170557441" + }, + "http": 200, + "code": "A0409", + "message": "角色已分配给成员,不能删除", + "requestId": "2736da51-9fd5-439b-aa65-391a3dc029a7", + "traceId": "1ef09bdb0e1b48f4bea20521eb7fe220", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T05:40:52.346Z" + }, + { + "module": "system", + "scenario": null, + "name": "清理时停用测试角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964424170557441/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d4dc22c5-1331-4604-9d0c-e370be826773, ff0b3d3c-d79f-4c0d-b3be-b7acc1e90c3e", + "traceId": "dcbf6d6e70df46998ec39fbbf7d25a10", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.484Z" + }, + { + "module": "system", + "scenario": null, + "name": "保留测试角色处于停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964424170557441/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d4dc22c5-1331-4604-9d0c-e370be826773, ff0b3d3c-d79f-4c0d-b3be-b7acc1e90c3e", + "traceId": "dcbf6d6e70df46998ec39fbbf7d25a10", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:40:52.484Z" + }, + { + "module": "system", + "scenario": null, + "name": "删除临时权限资源", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/iam/permissions/2085964422648025090" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f69a36b1-8173-43b1-a04f-620823cb9198, 4d60b732-8873-4e7c-83d9-e42657c4b3ea", + "traceId": "a93b4d51ca69454ca318aada899aeb01", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.525Z" + }, + { + "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": "3f0e0543-84e1-47a0-ac9a-f4ea31954669, 7e6de4f6-6d41-4622-82db-30e9cee501ba", + "traceId": "a6df5b7b325240f487761b2c86dee032", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.582Z" + }, + { + "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": "3f0e0543-84e1-47a0-ac9a-f4ea31954669, 7e6de4f6-6d41-4622-82db-30e9cee501ba", + "traceId": "a6df5b7b325240f487761b2c86dee032", + "evidence": "total=277", + "checkedAt": "2026-08-08T05:40:52.582Z" + }, + { + "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": "ca08c3de-99cc-47a4-85b0-74f72c3ead7f, 17facbf2-e0c9-48ea-b089-b4fe2f789d75", + "traceId": "2c017b1c47964a6e8eaa420595057b62", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.619Z" + }, + { + "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": "ca08c3de-99cc-47a4-85b0-74f72c3ead7f, 17facbf2-e0c9-48ea-b089-b4fe2f789d75", + "traceId": "2c017b1c47964a6e8eaa420595057b62", + "evidence": "warehouseId=2085964437182791681", + "checkedAt": "2026-08-08T05:40:52.619Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询平台仓库详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085964437182791681?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5ddc4164-8db5-4679-be09-051fe1208f8d, dc856cef-64f1-40a5-8e42-6081280a05d6", + "traceId": "b82cf75883e54264939a0ae37f2f1cb4", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.659Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "仓库详情、地址和能力正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085964437182791681?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5ddc4164-8db5-4679-be09-051fe1208f8d, dc856cef-64f1-40a5-8e42-6081280a05d6", + "traceId": "b82cf75883e54264939a0ae37f2f1cb4", + "evidence": "addresses=1, capabilities=1", + "checkedAt": "2026-08-08T05:40:52.659Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑平台仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/warehouse-admin/2085964437182791681?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "36ca2820-6745-4980-8b2f-d655e10cedc3, 9c9fb7a4-74ef-43ff-95e3-2a1f0695d46c", + "traceId": "ac528d271b214046b9b4f1298523dbac", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.703Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的平台仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085964437182791681?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e7dddcf1-7e64-48e9-bf66-41713a1f3f22, aa6f89cb-ce25-4d3a-9ef4-1f39b8cd44c8", + "traceId": "46b4c7dbb035407f97f5eed7b9d67f50", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.736Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "仓库编辑已持久化", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085964437182791681?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e7dddcf1-7e64-48e9-bf66-41713a1f3f22, aa6f89cb-ce25-4d3a-9ef4-1f39b8cd44c8", + "traceId": "46b4c7dbb035407f97f5eed7b9d67f50", + "evidence": "warehouseId=2085964437182791681", + "checkedAt": "2026-08-08T05:40:52.736Z" + }, + { + "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": "df0b41b9-90ff-470a-9fc9-64d490615b46, 25d1a2e9-6929-4ccb-96ef-57f5889cccb2", + "traceId": "2f50f99e54524985aec93a2838194fee", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.774Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询库位详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964437849686017?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "40fdbfd2-83e4-400e-b1a1-2446ff190718, a39e8e31-0f70-45db-933f-34a8c631b6cf", + "traceId": "72fb96b6ae4e48bd919e252616f74885", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.815Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "库位详情关联正确仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964437849686017?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "40fdbfd2-83e4-400e-b1a1-2446ff190718, a39e8e31-0f70-45db-933f-34a8c631b6cf", + "traceId": "72fb96b6ae4e48bd919e252616f74885", + "evidence": "locationId=2085964437849686017", + "checkedAt": "2026-08-08T05:40:52.815Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085964437849686017?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fd917153-51ac-491d-99b6-e9d05b1e2acd, 0558bc0b-a97e-4ab9-baed-5006ac185dd8", + "traceId": "64616ad7dd0d413ca2ea5666bbf208ff", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.874Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964437849686017?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2de37ad4-9eff-41dd-9794-400d869d7843, 96234fba-ed4e-4e47-9add-f8f8b8ae78c8", + "traceId": "b8b01722cccc4d72bfa136c27dc9c9d4", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.909Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "库位编辑与版本递增正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964437849686017?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2de37ad4-9eff-41dd-9794-400d869d7843, 96234fba-ed4e-4e47-9add-f8f8b8ae78c8", + "traceId": "b8b01722cccc4d72bfa136c27dc9c9d4", + "evidence": "version=1", + "checkedAt": "2026-08-08T05:40:52.909Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/locations/2085964437849686017/status?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b829dade-009e-4151-88af-ea867c2441e8, d53888a5-5c90-4287-a422-d27572da2102", + "traceId": "9a15b527f3ac464087ecf066771413d4", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.945Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "删除未占用测试库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/locations/2085964437849686017?tenantId=0&warehouseId=2085964437182791681&version=2" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a992c458-3e43-46f5-b2fa-d8c0b861f01f, b2bb9230-f6ca-4da6-be64-13201d1c5780", + "traceId": "4be9612a8baa4fc9b19ee1917927bb6d", + "evidence": "", + "checkedAt": "2026-08-08T05:40:52.992Z" + }, + { + "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": "b9e314d4-b42b-4782-b703-567817e08d80, b43a19c9-6028-400e-a7b7-ee1e5aacee41", + "traceId": "0f46442dbce340e1ab2665991f05adac", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.040Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询托盘详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085964438961176578?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8d96830c-1afd-4924-8ef5-de4b8bb1f58f, 4603391e-bcb4-4c20-895b-3c030bb52d9f", + "traceId": "99e60a844bf84d3bb0ac83de3ced39be", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.067Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "托盘详情关联正确仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085964438961176578?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8d96830c-1afd-4924-8ef5-de4b8bb1f58f, 4603391e-bcb4-4c20-895b-3c030bb52d9f", + "traceId": "99e60a844bf84d3bb0ac83de3ced39be", + "evidence": "palletId=2085964438961176578", + "checkedAt": "2026-08-08T05:40:53.067Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/pallets/2085964438961176578?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1ea07ea5-6b76-4739-8f0b-2df040028d44, 9abdbf48-2ba1-4d6e-8599-66a92d064e01", + "traceId": "c05b97ccbd344e8d9e808d1304260bc0", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.115Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085964438961176578?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "06680759-1e43-41d8-8101-40d4d3e09acd, 1e5ab44d-28c6-4af3-9964-074fd6e3ff56", + "traceId": "5db37477a5e349c0b8d56fb20bc55849", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.167Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "托盘编辑已持久化", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085964438961176578?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "06680759-1e43-41d8-8101-40d4d3e09acd, 1e5ab44d-28c6-4af3-9964-074fd6e3ff56", + "traceId": "5db37477a5e349c0b8d56fb20bc55849", + "evidence": "palletId=2085964438961176578", + "checkedAt": "2026-08-08T05:40:53.167Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "删除未使用测试托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/pallets/2085964438961176578?tenantId=0&warehouseId=2085964437182791681" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7702396a-c566-4dbe-b7bc-fed047efd198, b1d559a3-205f-49d5-90cf-9a865aeceb18", + "traceId": "03f536df4e5041c1a6b91a39637aea06", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.206Z" + }, + { + "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": "3570260b-e181-46b5-add9-6f5cb4379634, 81b83a29-0c84-40c4-a02d-c8b03be62a27", + "traceId": "6c9296c637c84eaab6ce037b84096767", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.254Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询快递公司详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies/2085964439862951938?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a02b0491-ccd2-4bf3-9aeb-1f05c149110a, 985f3f09-c788-4aaa-b2b7-41db32579fe5", + "traceId": "ac317868ed7142b19e3d6b62bdd783bc", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.292Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "快递公司详情正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies/2085964439862951938?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a02b0491-ccd2-4bf3-9aeb-1f05c149110a, 985f3f09-c788-4aaa-b2b7-41db32579fe5", + "traceId": "ac317868ed7142b19e3d6b62bdd783bc", + "evidence": "expressId=2085964439862951938", + "checkedAt": "2026-08-08T05:40:53.292Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑快递公司", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/express-companies/2085964439862951938?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "193b454b-9cbb-4a16-a00a-f37b7d4d8a4d, 6ed0585f-47bb-4b5c-b4f9-7b1122349ec8", + "traceId": "8c49ecdb1ca540a5b3cfcc6ccb835fb6", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.335Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用快递公司", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/express-companies/2085964439862951938/status?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6222e8dc-529b-49e0-965a-2c09914167cd, 33d05614-975b-4d85-88ad-555584a04057", + "traceId": "2292f2d50c064d46a26aabbc6b151879", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.383Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "筛选快递公司列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=20&keyword=EX808054048141" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cfb40983-7a14-44b4-9175-4c475a2fcd8a, ec27d5bc-23b7-4df0-aa65-a75d342c300c", + "traceId": "d3be921ee372481e97326b4982d8a014", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.424Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "快递公司列表回显停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=20&keyword=EX808054048141" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cfb40983-7a14-44b4-9175-4c475a2fcd8a, ec27d5bc-23b7-4df0-aa65-a75d342c300c", + "traceId": "d3be921ee372481e97326b4982d8a014", + "evidence": "records=1", + "checkedAt": "2026-08-08T05:40:53.424Z" + }, + { + "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": "6e7f6455-6136-4b84-8dc4-a797e81caa09, 874e1d48-eb70-4550-b014-7f0fc68b39ac", + "traceId": "745cb93d1c57443abebe64b7340c0a2c", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.475Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询往来单位详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners/2085964440781504514?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c78ffa95-b746-480a-bccd-d6fa543fcd49, a23d6ddc-715b-4773-89ff-d737aa5bf705", + "traceId": "9248844e7c8646bb85b679d66ba0284e", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.511Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "往来单位详情正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners/2085964440781504514?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c78ffa95-b746-480a-bccd-d6fa543fcd49, a23d6ddc-715b-4773-89ff-d737aa5bf705", + "traceId": "9248844e7c8646bb85b679d66ba0284e", + "evidence": "partnerId=2085964440781504514", + "checkedAt": "2026-08-08T05:40:53.511Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑往来单位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/partners/2085964440781504514?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "812be4f3-004a-45be-b362-6d9f9384d9cf, 95695062-f93e-4423-a896-5b1310a8f377", + "traceId": "d62654d868d54cc0afa634c668f16766", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.564Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用往来单位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/partners/2085964440781504514/status?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "794efaa0-605d-4527-8e5d-69bb55875a3c, a56854af-429a-4455-a126-050e615a0c51", + "traceId": "3c37c5f18cde483694f0e776ec0f3d8c", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.620Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "筛选往来单位列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=20&keyword=PT808054048141" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "93aed713-c27d-43bc-ba2c-666496a49299, b0fa63a8-cc65-44a1-983d-360906b25bab", + "traceId": "ad6f0e92a43f4374ad364e8cba3c6e93", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.657Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "往来单位列表回显编辑与停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=20&keyword=PT808054048141" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "93aed713-c27d-43bc-ba2c-666496a49299, b0fa63a8-cc65-44a1-983d-360906b25bab", + "traceId": "ad6f0e92a43f4374ad364e8cba3c6e93", + "evidence": "records=1", + "checkedAt": "2026-08-08T05:40:53.658Z" + }, + { + "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": "e778090a-f423-4bef-9b34-71f0ff4e28f6, d69f0e55-1d37-4bb8-a69e-d7d45c8e21c4", + "traceId": "4ab6c074ade44fc09ae710f91a352a87", + "evidence": "bytes=3852, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:53.707Z" + }, + { + "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": "1eb3998e-e428-46a9-a4c7-cc600a6c0598, 35383b31-d76d-4968-b2e3-e3ee4323b004", + "traceId": "8ea14d8df097424e9ddb99998abce6ad", + "evidence": "bytes=3691, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:53.768Z" + }, + { + "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": "3830 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "94f99e6d-29a2-4816-910c-8172f0214729, 7f3650bb-9357-4d7f-a671-1b90e0facb9c", + "traceId": "30833998f2774d48b02b469e8cdf859c", + "evidence": "bytes=3830, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:53.811Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用测试仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/warehouse-admin/2085964437182791681/status?tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "41c8bf31-5b5c-47d8-a7cb-dec59630545a, 2395b4df-bccc-4bd3-abe4-f52098875471", + "traceId": "028bde406c45449ab614b0e522034bfe", + "evidence": "", + "checkedAt": "2026-08-08T05:40:53.849Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试账号登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9bad388e-0781-46ff-ad3d-a15c769eecc8, 2a5587ae-6835-4e34-949a-dccdd45f5310", + "traceId": "d33598496c5d4d93bce9625ce969d461", + "evidence": "username=merchant_admin", + "checkedAt": "2026-08-08T05:40:54.223Z" + }, + { + "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": "f26c99c8-689a-49b0-8c1a-78f5cfc22859, 4adbed25-5612-4405-980d-0692126d1f89", + "traceId": "7033e2dfb5734e1b8f49cc2ef9e068b5", + "evidence": "", + "checkedAt": "2026-08-08T05:40:54.263Z" + }, + { + "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": "f26c99c8-689a-49b0-8c1a-78f5cfc22859, 4adbed25-5612-4405-980d-0692126d1f89", + "traceId": "7033e2dfb5734e1b8f49cc2ef9e068b5", + "evidence": "tenantId=10001, status=ACTIVE", + "checkedAt": "2026-08-08T05:40:54.263Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-268", + "traceId": null, + "evidence": "tenantId=10001", + "checkedAt": "2026-08-08T05:40:54.294Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-268", + "traceId": null, + "evidence": "types=missing", + "checkedAt": "2026-08-08T05:40:54.294Z" + }, + { + "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": "3f32f3e5-4809-437e-8831-f221822a8b64, 1eab65e8-1864-4152-939b-db5546393bbb", + "traceId": "8419b27a6877479fb8e68af22efb4a20", + "evidence": "", + "checkedAt": "2026-08-08T05:40:54.329Z" + }, + { + "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": "3f32f3e5-4809-437e-8831-f221822a8b64, 1eab65e8-1864-4152-939b-db5546393bbb", + "traceId": "8419b27a6877479fb8e68af22efb4a20", + "evidence": "count=2", + "checkedAt": "2026-08-08T05:40:54.329Z" + }, + { + "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": "ef3b01d1-ff35-430a-a378-85f33cafb637, c3aaae44-5469-4f5e-b04c-b33475ccc16a", + "traceId": "fea9f4d2a46d4e3da37609ecf8970e19", + "evidence": "", + "checkedAt": "2026-08-08T05:40:54.414Z" + }, + { + "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": "ef3b01d1-ff35-430a-a378-85f33cafb637, c3aaae44-5469-4f5e-b04c-b33475ccc16a", + "traceId": "fea9f4d2a46d4e3da37609ecf8970e19", + "evidence": "count=200", + "checkedAt": "2026-08-08T05:40:54.414Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询可用计费渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "41dff0fa-271", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:40:54.445Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在带计价税制的可用渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "41dff0fa-271", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:40:54.445Z" + }, + { + "module": "orders", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "缺少创建测试订单所需的可用渠道", + "checkedAt": "2026-08-08T05:40:54.445Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询发布前船期价格版本", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-272", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:40:54.476Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "发布前最多一份生效版本", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-272", + "traceId": null, + "evidence": "versions=n/a, active=0", + "checkedAt": "2026-08-08T05:40:54.476Z" + }, + { + "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-20260808054048141-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "checkedAt": "2026-08-08T05:40:54.479Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上传并解析船期价格表", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-273", + "traceId": null, + "evidence": "fileName=ADMIN-API-20260808054048141-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "checkedAt": "2026-08-08T05:40:54.499Z" + }, + { + "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": "ecfec2bd-d707-40a6-93e7-02ee9b6b579f, 2450dd64-f174-4f06-965f-76bd84c37d5b", + "traceId": "4367818468484ec3906250b602e4c34b", + "evidence": "", + "checkedAt": "2026-08-08T05:40:54.550Z" + }, + { + "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": "ecfec2bd-d707-40a6-93e7-02ee9b6b579f, 2450dd64-f174-4f06-965f-76bd84c37d5b", + "traceId": "4367818468484ec3906250b602e4c34b", + "evidence": "taskId=2085964445231153154, status=PENDING", + "checkedAt": "2026-08-08T05:40:54.550Z" + }, + { + "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": "abc97c8f-474b-4ad4-ac6b-1ba4d2202c2f, 0c9cc0dd-fa57-4340-a7f3-e861025a5025", + "traceId": "04a6b625a37a4ca08759226baa5646dd", + "evidence": "", + "checkedAt": "2026-08-08T05:40:54.597Z" + }, + { + "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": "abc97c8f-474b-4ad4-ac6b-1ba4d2202c2f, 0c9cc0dd-fa57-4340-a7f3-e861025a5025", + "traceId": "04a6b625a37a4ca08759226baa5646dd", + "evidence": "records=12", + "checkedAt": "2026-08-08T05:40:54.597Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "轮询导出任务直到终态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085964445231153154" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e7513d1b-e8ab-40f8-94c7-fe08cfc9e21a, 5201eda3-7184-4bbf-b8b4-0c0582d64e43", + "traceId": "9e81b04d6cdc49438dea3302c92fa8d5", + "evidence": "status=SUCCEEDED, processedRows=0", + "checkedAt": "2026-08-08T05:40:58.718Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "查询导出任务详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085964445231153154" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d83769df-478e-445a-8359-006a60a847b7, 48873d05-f2ea-4410-9efc-93df6b46751f", + "traceId": "e1221382351142f3848347fb9d88017f", + "evidence": "", + "checkedAt": "2026-08-08T05:40:58.763Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "导出详情行数和文件元数据正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085964445231153154" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d83769df-478e-445a-8359-006a60a847b7, 48873d05-f2ea-4410-9efc-93df6b46751f", + "traceId": "e1221382351142f3848347fb9d88017f", + "evidence": "processedRows=0, sizeBytes=4067", + "checkedAt": "2026-08-08T05:40:58.763Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "下载并校验客户列表 XLSX", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085964445231153154/download" + }, + "http": 200, + "code": null, + "message": "4067 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "f19027f0-a8b9-4871-a0f9-9a4d52c9cc90, 19b87789-11d5-473f-b7dc-b2ade6d22f68", + "traceId": "1478e270a9104fb0b9ff466a4dedac66", + "evidence": "bytes=4067, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:58.796Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "仅选择带本轮测试标记的可编辑入库单", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "marker=ADMIN-API-20260808054048141, 未找到本轮创建且状态为 WAIT_MEASURE/MEASURING/MEASURE_REJECTED 的入库单", + "checkedAt": "2026-08-08T05:40:58.857Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试账号登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "667daf12-885d-41e1-a3ee-2810c0222ea8, 589cc4b9-fef7-4cc6-8aed-5d85762556b4", + "traceId": "4e68ce82f8104cf19c01b009ad9c87be", + "evidence": "username=merchant_admin", + "checkedAt": "2026-08-08T05:40:59.228Z" + }, + { + "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": "0f7c11bd-b89c-40ec-bfb3-886c2b24b85e, 6ddc2ee0-656b-44d8-9169-48fa6e75782a", + "traceId": "163641e470cb45b5bd0ee717572d1a5f", + "evidence": "", + "checkedAt": "2026-08-08T05:40:59.261Z" + }, + { + "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": "0f7c11bd-b89c-40ec-bfb3-886c2b24b85e, 6ddc2ee0-656b-44d8-9169-48fa6e75782a", + "traceId": "163641e470cb45b5bd0ee717572d1a5f", + "evidence": "tenantId=10001, status=ACTIVE", + "checkedAt": "2026-08-08T05:40:59.261Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "763ae69d-284", + "traceId": null, + "evidence": "tenantId=10001", + "checkedAt": "2026-08-08T05:40:59.285Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "763ae69d-284", + "traceId": null, + "evidence": "types=missing", + "checkedAt": "2026-08-08T05:40:59.285Z" + }, + { + "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": "6c957c39-d0f1-4c39-ac43-16a9beffbf47, 89a4fadc-9e51-47cd-a055-ef12e5abd7b5", + "traceId": "272146fd9cb04933b36bf4ae0603af50", + "evidence": "", + "checkedAt": "2026-08-08T05:40:59.328Z" + }, + { + "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": "6c957c39-d0f1-4c39-ac43-16a9beffbf47, 89a4fadc-9e51-47cd-a055-ef12e5abd7b5", + "traceId": "272146fd9cb04933b36bf4ae0603af50", + "evidence": "count=2", + "checkedAt": "2026-08-08T05:40:59.328Z" + }, + { + "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": "3ec5554e-9a83-4498-9c8a-d335928e9989, ae8c945f-c804-42c2-9f14-25856646a024", + "traceId": "1b37257ae5334b27b8042ba282d6dd93", + "evidence": "", + "checkedAt": "2026-08-08T05:40:59.408Z" + }, + { + "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": "3ec5554e-9a83-4498-9c8a-d335928e9989, ae8c945f-c804-42c2-9f14-25856646a024", + "traceId": "1b37257ae5334b27b8042ba282d6dd93", + "evidence": "count=200", + "checkedAt": "2026-08-08T05:40:59.408Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询可用计费渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-287", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:40:59.438Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在带计价税制的可用渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-287", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:40:59.438Z" + }, + { + "module": "orders-inbound-measurement-fixture", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "缺少创建测试订单所需的可用渠道", + "checkedAt": "2026-08-08T05:40:59.438Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "取得隔离的待测量入库单", + "passed": false, + "deploymentBlocker": true, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "orders 模块未提供 marker=ADMIN-API-20260808054048141-MOJIA 的 inboundId/tenantId;为避免修改随机历史订单,本模块停止写入", + "checkedAt": "2026-08-08T05:40:59.440Z" + }, + { + "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": "7873f812-8bf4-4bbf-8f83-2ebb57d8d862, e9d7fa35-44ee-4892-86a0-b82b6785b6fe", + "traceId": "6c55279b5bdc4d5690b36ae39e05775e", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T05:40:59.479Z" + }, + { + "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": "7873f812-8bf4-4bbf-8f83-2ebb57d8d862, e9d7fa35-44ee-4892-86a0-b82b6785b6fe", + "traceId": "6c55279b5bdc4d5690b36ae39e05775e", + "evidence": "service=order-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T05:40:59.479Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "firstleg-service 状态响应使用统一成功体", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/status" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-289", + "traceId": null, + "evidence": "HTTP=503, code=missing", + "checkedAt": "2026-08-08T05:40:59.499Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "firstleg-service 状态字段完整且 readiness 语义明确", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/status" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-289", + "traceId": null, + "evidence": "service=missing, status=missing, readiness=invalid", + "checkedAt": "2026-08-08T05:40:59.499Z" + }, + { + "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": "f2cd786e-3fea-4116-9a79-69e05e81549d, 13307cfc-03b6-40a3-a18b-28ff6cc97389", + "traceId": "b78b455ebdea40919834cfd3eb6ada23", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T05:40:59.537Z" + }, + { + "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": "f2cd786e-3fea-4116-9a79-69e05e81549d, 13307cfc-03b6-40a3-a18b-28ff6cc97389", + "traceId": "b78b455ebdea40919834cfd3eb6ada23", + "evidence": "service=file-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T05:40:59.538Z" + }, + { + "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": "809064c2-6dc6-42d1-be50-7dc95a87bf23, 08d50801-1996-4e4b-be08-51997e522d3a", + "traceId": "d1c7fd5d940e4802843951c97daff141", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T05:40:59.573Z" + }, + { + "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": "809064c2-6dc6-42d1-be50-7dc95a87bf23, 08d50801-1996-4e4b-be08-51997e522d3a", + "traceId": "d1c7fd5d940e4802843951c97daff141", + "evidence": "service=warehouse-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T05:40:59.573Z" + }, + { + "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": "763ae69d-292", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:40:59.589Z" + }, + { + "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": "10bf8220-293", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:40:59.618Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "未认证请求不返回业务成功码", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/status" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "763ae69d-294", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:40:59.636Z" + }, + { + "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": "021016f6-a6b8-47c9-bf0f-348f0536b4de, bf5a5234-3a1d-4842-a477-7897368b3958", + "traceId": "a9849cef125c451086dc8e9c11f3057f", + "evidence": "path=/api/platform/v1/warehouse-admin?page=1&size=5&status=ACTIVE", + "checkedAt": "2026-08-08T05:40:59.671Z" + }, + { + "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": "021016f6-a6b8-47c9-bf0f-348f0536b4de, bf5a5234-3a1d-4842-a477-7897368b3958", + "traceId": "a9849cef125c451086dc8e9c11f3057f", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:40:59.672Z" + }, + { + "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": "ed70a87a-bf92-42fb-8478-b3529d99745a, bcd7921d-4a76-4bd2-9f1c-f117fab30a47", + "traceId": "696e714af9e844b5b22ecffa8dc5176a", + "evidence": "path=/api/platform/v1/warehouse-admin?page=1&size=5&tenantId=0&warehouseType=FBA", + "checkedAt": "2026-08-08T05:40:59.722Z" + }, + { + "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": "ed70a87a-bf92-42fb-8478-b3529d99745a, bcd7921d-4a76-4bd2-9f1c-f117fab30a47", + "traceId": "696e714af9e844b5b22ecffa8dc5176a", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:40:59.722Z" + }, + { + "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": "5e3948c3-296a-4add-a5a2-241c92692f46", + "traceId": "b7aa7ace3f3d4d20b682dbee73ed8ae5", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:40:59.786Z" + }, + { + "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": "60ece3b5-e301-497d-8e0e-3bfa7438ed2d", + "traceId": "ff294c9fef93492aad3a4499427b8286", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T05:40:59.819Z" + }, + { + "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": "aae49900-2030-4702-8c30-f3115243f181, 21b3e7f5-5ebe-432e-af27-919a43557631", + "traceId": "6cf64516ecb04073ada397ac4cf07396", + "evidence": "path=/api/platform/v1/locations?page=1&size=5&tenantId=0", + "checkedAt": "2026-08-08T05:40:59.849Z" + }, + { + "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": "aae49900-2030-4702-8c30-f3115243f181, 21b3e7f5-5ebe-432e-af27-919a43557631", + "traceId": "6cf64516ecb04073ada397ac4cf07396", + "evidence": "records=3, current=1, size=5", + "checkedAt": "2026-08-08T05:40:59.849Z" + }, + { + "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": "8da0748b-d405-476e-87c1-7fec162dfa4e, ee491363-d0d3-4039-af21-1515127f3107", + "traceId": "8dd54e9db1db472bbe54a56c5d8d703b", + "evidence": "path=/api/platform/v1/pallets?page=1&size=5&tenantId=0", + "checkedAt": "2026-08-08T05:40:59.879Z" + }, + { + "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": "8da0748b-d405-476e-87c1-7fec162dfa4e, ee491363-d0d3-4039-af21-1515127f3107", + "traceId": "8dd54e9db1db472bbe54a56c5d8d703b", + "evidence": "records=3, current=1, size=5", + "checkedAt": "2026-08-08T05:40:59.880Z" + }, + { + "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": "20c4ea08-fb31-4f23-9b97-15d0fe6d1fda, 80f14487-df4e-47dc-834a-c266c0c4401a", + "traceId": "486fe66b6a3540cebc7f6d6f312445b7", + "evidence": "path=/api/platform/v1/locations?page=1&size=5&tenantId=0&warehouseId=193000000000000001", + "checkedAt": "2026-08-08T05:40:59.918Z" + }, + { + "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": "20c4ea08-fb31-4f23-9b97-15d0fe6d1fda, 80f14487-df4e-47dc-834a-c266c0c4401a", + "traceId": "486fe66b6a3540cebc7f6d6f312445b7", + "evidence": "records=0, current=1, size=5", + "checkedAt": "2026-08-08T05:40:59.918Z" + }, + { + "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": "84b7822d-b485-4801-a10d-5a80c4994278, 1583143c-86e8-4221-ae62-ee60937453ae", + "traceId": "834c96d85182479082e2f50b18ffedbf", + "evidence": "path=/api/platform/v1/pallets?page=1&size=5&tenantId=0&warehouseId=193000000000000001", + "checkedAt": "2026-08-08T05:40:59.949Z" + }, + { + "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": "84b7822d-b485-4801-a10d-5a80c4994278, 1583143c-86e8-4221-ae62-ee60937453ae", + "traceId": "834c96d85182479082e2f50b18ffedbf", + "evidence": "records=0, current=1, size=5", + "checkedAt": "2026-08-08T05:40:59.949Z" + }, + { + "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": "630d028b-4ea1-42a1-b9f3-6ed41b1e69b9", + "traceId": "5085dd3f2645488e89a82ae1302da181", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T05:40:59.990Z" + }, + { + "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": "e3daf892-045f-442f-bddb-345ddae33324", + "traceId": "dcd29926a97d490eb711d6770f0d546f", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T05:41:00.020Z" + }, + { + "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": "19ae561d-36f1-40c4-83e4-1ff2fb1ede7b", + "traceId": "f8d847be409340408ee7997ae17f0a42", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:41:00.051Z" + }, + { + "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": "5fabda75-332a-4909-98a4-f98e5c596973", + "traceId": "3267daf28e55490fb52f3721e10728d4", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:41:00.078Z" + }, + { + "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": "c1a91f47-b207-4877-b4e1-61c8b71d65d9", + "traceId": "5c3a6ea4825c46198c56d6a8d88dc104", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:41:00.113Z" + }, + { + "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": "61487fe0-a7aa-42bd-8d6a-02892aa46cd6, e2e63d48-11d2-4877-8d51-91b30b7d88c5", + "traceId": "8b353f4ca55d403791e4669840efad1b", + "evidence": "path=/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=ACTIVE", + "checkedAt": "2026-08-08T05:41:00.151Z" + }, + { + "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": "61487fe0-a7aa-42bd-8d6a-02892aa46cd6, e2e63d48-11d2-4877-8d51-91b30b7d88c5", + "traceId": "8b353f4ca55d403791e4669840efad1b", + "evidence": "records=4, current=1, size=5", + "checkedAt": "2026-08-08T05:41:00.151Z" + }, + { + "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": "4bedc5a7-0432-47ab-b162-0e53f1155a3b, 78c2b35b-e87e-47b1-a3c1-69f78c413935", + "traceId": "41b58103161a4c50a5b54bee98e952bb", + "evidence": "path=/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=INACTIVE", + "checkedAt": "2026-08-08T05:41:00.197Z" + }, + { + "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": "4bedc5a7-0432-47ab-b162-0e53f1155a3b, 78c2b35b-e87e-47b1-a3c1-69f78c413935", + "traceId": "41b58103161a4c50a5b54bee98e952bb", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:41:00.197Z" + }, + { + "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": "4bedc5a7-0432-47ab-b162-0e53f1155a3b, 78c2b35b-e87e-47b1-a3c1-69f78c413935", + "traceId": "41b58103161a4c50a5b54bee98e952bb", + "evidence": "records=5", + "checkedAt": "2026-08-08T05:41:00.197Z" + }, + { + "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": "b7f61568-f8ae-4403-9917-46589e58e9fe", + "traceId": "d0c96241d0af451aba167948b32e5f95", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:41:00.241Z" + }, + { + "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": "9090e9f1-b78f-46c0-9efd-00d7aa066249, 2d9077cd-0ab7-4e20-99a8-e6f08103c389", + "traceId": "e18f71a1248d43da862062e508aa0ade", + "evidence": "path=/api/platform/v1/partners?page=1&size=5&tenantId=0&status=ACTIVE", + "checkedAt": "2026-08-08T05:41:00.273Z" + }, + { + "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": "9090e9f1-b78f-46c0-9efd-00d7aa066249, 2d9077cd-0ab7-4e20-99a8-e6f08103c389", + "traceId": "e18f71a1248d43da862062e508aa0ade", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:41:00.273Z" + }, + { + "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": "13ce3973-3c8d-472c-b678-776f460ef461, b894b8e0-d595-4b9f-be30-c15ab9546bca", + "traceId": "24a1f6e5415b498a83be00d2dd9b8a8d", + "evidence": "path=/api/platform/v1/partners?page=1&size=5&tenantId=0&status=INACTIVE", + "checkedAt": "2026-08-08T05:41:00.306Z" + }, + { + "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": "13ce3973-3c8d-472c-b678-776f460ef461, b894b8e0-d595-4b9f-be30-c15ab9546bca", + "traceId": "24a1f6e5415b498a83be00d2dd9b8a8d", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:41:00.306Z" + }, + { + "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": "13ce3973-3c8d-472c-b678-776f460ef461, b894b8e0-d595-4b9f-be30-c15ab9546bca", + "traceId": "24a1f6e5415b498a83be00d2dd9b8a8d", + "evidence": "records=5", + "checkedAt": "2026-08-08T05:41:00.306Z" + }, + { + "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": "13a9b8d2-ab7b-497c-a2e4-bc7a8debdcf1", + "traceId": "ed53a1cc021f4b678d70f6d43f74c72d", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:41:00.347Z" + }, + { + "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": "7f544a13-7920-4adc-81b6-64def7fc2960, 9c7481e9-9086-4127-8671-1316d58a0c04", + "traceId": "0e38e6655fa04fb5849053a837e48db5", + "evidence": "HTTP=200, bytes=3853, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:41:00.394Z" + }, + { + "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": "f1af0493-b27f-4d12-9f16-08c889647621, fe9f312f-3a30-4138-9189-dc90f781595c", + "traceId": "c7816eef81bb4b60a4f222c78ee4ab3c", + "evidence": "HTTP=200, bytes=3692, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:41:00.451Z" + }, + { + "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": "f4f98080-91d6-43b1-9c92-9119e50453c9, 5e51a281-f000-4173-ab42-2855b6dfd477", + "traceId": "93726a0eb6134259b20e6d71b3ae31bd", + "evidence": "HTTP=200, bytes=3830, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:41:00.503Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 PENDING_CONFIRMATION 状态过滤", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=PENDING_CONFIRMATION" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-317", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:41:00.526Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 PENDING_CONFIRMATION 结果状态一致", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=PENDING_CONFIRMATION" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-317", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:41:00.526Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 ACTIVE 状态过滤", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "763ae69d-318", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:41:00.558Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 ACTIVE 结果状态一致", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "763ae69d-318", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:41:00.558Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 SUPERSEDED 状态过滤", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=SUPERSEDED" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-319", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:41:00.589Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 SUPERSEDED 结果状态一致", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=SUPERSEDED" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-319", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:41:00.589Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "读取现有生效价格版本用于下载安全检查", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "763ae69d-320", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:41:00.608Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "存在可供安全下载核验的生效价格版本", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "763ae69d-320", + "traceId": null, + "evidence": "当前无 ACTIVE 价格版本,无法安全执行源文件下载核验", + "checkedAt": "2026-08-08T05:41:00.608Z" + }, + { + "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": "4f8d6b4f-ac35-4789-a71e-ef5fe7c694c8, 72f39c35-ea23-49ef-8d5d-6cdfdef7beb2", + "traceId": "f3a68716ad394c5f89593335e58298df", + "evidence": "", + "checkedAt": "2026-08-08T05:41:00.648Z" + }, + { + "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": "4f8d6b4f-ac35-4789-a71e-ef5fe7c694c8, 72f39c35-ea23-49ef-8d5d-6cdfdef7beb2", + "traceId": "f3a68716ad394c5f89593335e58298df", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:41:00.648Z" + }, + { + "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": "20e8e445-5264-4e7c-a494-18dd5c24c298, e9992ce4-59e4-4b96-9cc7-a817a0164fb3", + "traceId": "5ce2f9b42e694dd5bfdcf33e5f2da5c6", + "evidence": "", + "checkedAt": "2026-08-08T05:41:00.694Z" + }, + { + "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": "20e8e445-5264-4e7c-a494-18dd5c24c298, e9992ce4-59e4-4b96-9cc7-a817a0164fb3", + "traceId": "5ce2f9b42e694dd5bfdcf33e5f2da5c6", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:41:00.694Z" + }, + { + "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": "f0c5d3cc-6210-4bda-bf0c-73bbb7683b09, f3165d40-133b-4d4b-9933-8e5784539f39", + "traceId": "14109984e70a4bf093776fd67d0101a7", + "evidence": "", + "checkedAt": "2026-08-08T05:41:00.743Z" + }, + { + "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": "f0c5d3cc-6210-4bda-bf0c-73bbb7683b09, f3165d40-133b-4d4b-9933-8e5784539f39", + "traceId": "14109984e70a4bf093776fd67d0101a7", + "evidence": "records=5", + "checkedAt": "2026-08-08T05:41:00.743Z" + }, + { + "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": "14850093-aea2-4095-9cc1-ca2e4c5df688, 4cc5de91-0c89-484b-a9dc-0a803be573d1", + "traceId": "38b26995e7ec4482b369a94065736944", + "evidence": "", + "checkedAt": "2026-08-08T05:41:00.786Z" + }, + { + "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": "14850093-aea2-4095-9cc1-ca2e4c5df688, 4cc5de91-0c89-484b-a9dc-0a803be573d1", + "traceId": "38b26995e7ec4482b369a94065736944", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:41:00.786Z" + }, + { + "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": "278d8531-2ac1-47ba-a249-5b98ecef86df, 20a866cd-41b0-4eb9-886f-f9d9adfc9ab4", + "traceId": "c399af882b234073a51c9f7dca1c720a", + "evidence": "", + "checkedAt": "2026-08-08T05:41:00.831Z" + }, + { + "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": "278d8531-2ac1-47ba-a249-5b98ecef86df, 20a866cd-41b0-4eb9-886f-f9d9adfc9ab4", + "traceId": "c399af882b234073a51c9f7dca1c720a", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:41:00.831Z" + }, + { + "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": "7726106a-1393-47a2-9f3b-ad658319c5ad", + "traceId": "ab37359ca82e48baa2cb977d3d8b8d12", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:41:00.878Z" + }, + { + "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": "d556a348-a200-41c4-98a1-4c89faa6f12e", + "traceId": "f2b9418d681246eabba3ac29bddcdff4", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:41:00.922Z" + }, + { + "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": "763ae69d-328", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:41:00.938Z" + }, + { + "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": "bebff7ae-4baf-4e09-83de-4414f8b2b22d, 68b94e6f-328a-46f0-a7a1-5e9a9f4cacd8", + "traceId": "1c10e9656b8b4e3b81ec78278253660d", + "evidence": "", + "checkedAt": "2026-08-08T05:41:01.054Z" + }, + { + "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": "bebff7ae-4baf-4e09-83de-4414f8b2b22d, 68b94e6f-328a-46f0-a7a1-5e9a9f4cacd8", + "traceId": "1c10e9656b8b4e3b81ec78278253660d", + "evidence": "records=5, builtInField=protectedAccount", + "checkedAt": "2026-08-08T05:41:01.054Z" + }, + { + "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": "ed80d242-dff0-49c2-a140-bc02360a8852, e4f3c3be-b5f7-4728-98d5-99f577fc57c4", + "traceId": "5bbd4d75483544a9a4dcf2d7704ecc41", + "evidence": "", + "checkedAt": "2026-08-08T05:41:01.114Z" + }, + { + "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": "ed80d242-dff0-49c2-a140-bc02360a8852, e4f3c3be-b5f7-4728-98d5-99f577fc57c4", + "traceId": "5bbd4d75483544a9a4dcf2d7704ecc41", + "evidence": "records=16, builtInField=roleType", + "checkedAt": "2026-08-08T05:41:01.114Z" + }, + { + "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": "5ce3fccd-5dc0-4a85-b62f-9ad08c4a1b30, a03478e1-c3bb-428a-84ea-d46b38d65a07", + "traceId": "f7bf63c51b354a6d935b2fb6b91d4c68", + "evidence": "", + "checkedAt": "2026-08-08T05:41:01.165Z" + }, + { + "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": "5ce3fccd-5dc0-4a85-b62f-9ad08c4a1b30, a03478e1-c3bb-428a-84ea-d46b38d65a07", + "traceId": "f7bf63c51b354a6d935b2fb6b91d4c68", + "evidence": "records=136, builtInField=builtIn", + "checkedAt": "2026-08-08T05:41:01.165Z" + }, + { + "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": "763ae69d-332", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:41:01.186Z" + }, + { + "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": "10bf8220-333", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:41:01.217Z" + }, + { + "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": "99348469-b0aa-4c01-88f0-2615482c3d01, 15b3a0dd-8606-4155-8453-e110f26aa8cb", + "traceId": "30aa59f4d4f24d099f844bf8d2e30ffc", + "evidence": "", + "checkedAt": "2026-08-08T05:41:01.291Z" + }, + { + "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": "a7114d76-f83f-4ece-a196-03201f8a3560, 205fbeea-c11d-40a5-9587-aa477d999a0f", + "traceId": "70c12104ccb449a387535b7573a388bd", + "evidence": "", + "checkedAt": "2026-08-08T05:41:01.334Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "读取隔离库位版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964473752928258?tenantId=0&warehouseId=2085964473526435842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1e0b39c4-633e-4aa7-a5a3-4ded8cd0cce5, eabdc6be-c304-4e22-8256-868f2ae9aab0", + "traceId": "1e3e9846e89741b78f9eafa487cf4722", + "evidence": "", + "checkedAt": "2026-08-08T05:41:01.372Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "更新隔离库位以推进版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085964473752928258?tenantId=0&warehouseId=2085964473526435842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d5754892-1a9e-4b31-8cb7-2a9e449a079c, 08d9bd86-f6f7-441b-9c6d-f95f4d1ddab4", + "traceId": "dd8197ecd5d84eeca51102d511e57197", + "evidence": "version=0", + "checkedAt": "2026-08-08T05:41:01.426Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位旧 version PUT 返回冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085964473752928258?tenantId=0&warehouseId=2085964473526435842" + }, + "http": 200, + "code": "A0409", + "message": "库位已被其他操作修改,请刷新后重试", + "requestId": "f07ddc66-40c8-4861-89eb-bf676b108695", + "traceId": "11fa7257048a4ee59f4efc6c13b86265", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T05:41:01.469Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "冲突后回查库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964473752928258?tenantId=0&warehouseId=2085964473526435842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "85f57a79-f436-489d-98af-b0b8af7d4a51, 98c3ac2e-7453-4bce-b1ee-664dc0632bdb", + "traceId": "6045fa4012e1452982de6decd7f703ec", + "evidence": "", + "checkedAt": "2026-08-08T05:41:01.508Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位冲突未造成部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964473752928258?tenantId=0&warehouseId=2085964473526435842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "85f57a79-f436-489d-98af-b0b8af7d4a51, 98c3ac2e-7453-4bce-b1ee-664dc0632bdb", + "traceId": "6045fa4012e1452982de6decd7f703ec", + "evidence": "name=边界库位-编辑", + "checkedAt": "2026-08-08T05:41:01.509Z" + }, + { + "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-08T05:41:01.509Z" + }, + { + "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": "fed1d75b-5e20-4e69-af23-1eb8447aa23f, 94f426bb-23eb-4a8b-90aa-f6e8b6270e26", + "traceId": "bccea658bc4c4010b6819092cde45dfa", + "evidence": "HTTP=200, code=200, bytes=0", + "checkedAt": "2026-08-08T05:41:01.534Z" + }, + { + "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": "94a73ff6-f24a-46a4-92fd-a3090372acb2, 1614305f-5b6d-4188-8431-7d89e4e0e042", + "traceId": "d6d35cdfe94845c2b25bc47ba4237362", + "evidence": "HTTP=200, code=200, bytes=6", + "checkedAt": "2026-08-08T05:41:01.570Z" + }, + { + "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": "3463c292-cba5-4c3d-94b5-0ef59cd0d2fd, c5bfc452-da1b-4d76-87ee-fb957380f108", + "traceId": "af832d42741242b480e5d03d7499a904", + "evidence": "HTTP=200, code=200, bytes=27", + "checkedAt": "2026-08-08T05:41:01.606Z" + }, + { + "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": "012138a3-4a0a-4b27-8b79-7ef273e07faf, 829fbf13-88c2-471c-8f67-baa7ca6f63af", + "traceId": "42af5b3a228444f785b9a2856f4de674", + "evidence": "HTTP=200, code=200, bytes=27", + "checkedAt": "2026-08-08T05:41:01.634Z" + }, + { + "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": "S0500", + "message": "Internal server error", + "requestId": "e31d7030-fe4b-4c5c-a56f-8eb23dce1549", + "traceId": "12142c1d53184504a9021bcdb9dbb9f9", + "evidence": "HTTP=200, code=S0500", + "checkedAt": "2026-08-08T05:41:01.669Z" + }, + { + "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": "10bf8220-345", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:41:01.685Z" + }, + { + "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": "dde3c5d5-42d2-4cb4-a014-95f3d5c2415f", + "traceId": "283eb5e0e2b848c09d53ec9c52794b24", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:41:01.728Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "船期价格非法状态边界响应正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=INVALID" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "10bf8220-347", + "traceId": null, + "evidence": "HTTP=503, code=missing", + "checkedAt": "2026-08-08T05:41:01.754Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "停用隔离库位以便清理", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/locations/2085964473752928258/status?tenantId=0&warehouseId=2085964473526435842" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6c062e9d-52b0-4603-a176-9ce9c6aac5a6, ed159a8f-afe0-4c49-a4d6-cf44737453b0", + "traceId": "7be2c41a45cd4999be9cf9e40a7a43d1", + "evidence": "", + "checkedAt": "2026-08-08T05:41:01.802Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "删除隔离库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/locations/2085964473752928258?tenantId=0&warehouseId=2085964473526435842&version=2" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ab3997a5-92f8-4e47-991c-657714999a5e, 7e1a6d39-d0a7-40d7-aef7-ed870a849676", + "traceId": "ad6bd284315b4f5eab48310ceac21de8", + "evidence": "", + "checkedAt": "2026-08-08T05:41:01.842Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "停用隔离仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/warehouse-admin/2085964473526435842/status?tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0a86e708-b443-4109-902d-1e36db382a24, 18cc830d-524c-45fd-ab77-c32cc0e24f41", + "traceId": "e4d155e9c4314fc6a69844304f102a3c", + "evidence": "", + "checkedAt": "2026-08-08T05:41:01.873Z" + } + ] +} diff --git a/reports/admin-test-env-acceptance-boundaries.json b/reports/admin-test-env-acceptance-boundaries.json new file mode 100644 index 000000000..57b340106 --- /dev/null +++ b/reports/admin-test-env-acceptance-boundaries.json @@ -0,0 +1,4322 @@ +{ + "reportName": "后台管理测试环境 HTTP API 验收", + "marker": "ADMIN-API-20260808054000515", + "gateway": "http://8.163.30.128:9000", + "generatedAt": "2026-08-08T05:40:17.285Z", + "startedAt": "2026-08-08T05:40:00.515Z", + "success": false, + "fatal": null, + "summary": { + "total": 222, + "passed": 186, + "failed": 36 + }, + "modules": [ + { + "name": "customers", + "startedAt": "2026-08-08T05:40:00.949Z", + "finishedAt": "2026-08-08T05:40:01.460Z", + "success": false, + "passed": 1, + "failed": 2, + "fatal": "创建客户失败,后续客户模块无法继续" + }, + { + "name": "overseas-storage-fees", + "startedAt": "2026-08-08T05:40:01.462Z", + "finishedAt": "2026-08-08T05:40:01.585Z", + "success": false, + "passed": 1, + "failed": 3, + "fatal": null + }, + { + "name": "system", + "startedAt": "2026-08-08T05:40:01.586Z", + "finishedAt": "2026-08-08T05:40:06.341Z", + "success": true, + "passed": 41, + "failed": 0, + "fatal": null + }, + { + "name": "master-data", + "startedAt": "2026-08-08T05:40:06.342Z", + "finishedAt": "2026-08-08T05:40:08.739Z", + "success": true, + "passed": 42, + "failed": 0, + "fatal": null + }, + { + "name": "orders", + "startedAt": "2026-08-08T05:40:08.740Z", + "finishedAt": "2026-08-08T05:40:09.298Z", + "success": false, + "passed": 7, + "failed": 5, + "fatal": "缺少创建测试订单所需的可用渠道" + }, + { + "name": "pricing", + "startedAt": "2026-08-08T05:40:09.300Z", + "finishedAt": "2026-08-08T05:40:09.352Z", + "success": false, + "passed": 1, + "failed": 3, + "fatal": null + }, + { + "name": "downloads", + "startedAt": "2026-08-08T05:40:09.353Z", + "finishedAt": "2026-08-08T05:40:13.885Z", + "success": true, + "passed": 8, + "failed": 0, + "fatal": null + }, + { + "name": "inbound-weight-ocr", + "startedAt": "2026-08-08T05:40:13.886Z", + "finishedAt": "2026-08-08T05:40:13.949Z", + "success": false, + "passed": 0, + "failed": 1, + "fatal": null + }, + { + "name": "orders-inbound-measurement-fixture", + "startedAt": "2026-08-08T05:40:13.949Z", + "finishedAt": "2026-08-08T05:40:14.538Z", + "success": false, + "passed": 7, + "failed": 5, + "fatal": "缺少创建测试订单所需的可用渠道" + }, + { + "name": "inbound-measurement", + "startedAt": "2026-08-08T05:40:14.539Z", + "finishedAt": "2026-08-08T05:40:14.540Z", + "success": false, + "passed": 0, + "failed": 1, + "fatal": null + }, + { + "name": "supplemental", + "startedAt": "2026-08-08T05:40:14.541Z", + "finishedAt": "2026-08-08T05:40:16.541Z", + "success": false, + "passed": 64, + "failed": 10, + "fatal": null + }, + { + "name": "supplemental-boundaries", + "startedAt": "2026-08-08T05:40:16.542Z", + "finishedAt": "2026-08-08T05:40:17.285Z", + "success": false, + "passed": 13, + "failed": 6, + "fatal": null + } + ], + "scenarios": [ + { + "name": "price-book-lifecycle", + "module": "pricing", + "success": false, + "deploymentBlocked": true, + "passed": 1, + "failed": 3 + }, + { + "name": "weight-image-recognition-and-confirmation", + "module": "inbound-weight-ocr", + "success": false, + "deploymentBlocked": false, + "passed": 0, + "failed": 1 + }, + { + "name": "mojia-carton-measurement", + "module": "inbound-measurement", + "success": false, + "deploymentBlocked": true, + "passed": 0, + "failed": 1 + }, + { + "name": "admin-boundary-automation", + "module": "supplemental-boundaries", + "success": false, + "deploymentBlocked": true, + "passed": 13, + "failed": 6 + } + ], + "deploymentBlockers": [ + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "创建海外仓费用隔离客户", + "evidence": "", + "code": "S0503", + "requestId": "53e9b76b-8999-4ee3-86bd-cbcb4668e53b", + "traceId": "55c64ed1e703448ca9ccdeb8b4fcd1a9" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "海外仓费用隔离客户创建并带 marker", + "evidence": "tenantId=missing", + "code": "S0503", + "requestId": "53e9b76b-8999-4ee3-86bd-cbcb4668e53b", + "traceId": "55c64ed1e703448ca9ccdeb8b4fcd1a9" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "取得本轮客户 ID", + "evidence": "未找到可隔离客户,禁止使用历史客户", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "evidence": "tenantId=10001", + "code": null, + "requestId": "68255a91-120", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "evidence": "types=missing", + "code": null, + "requestId": "68255a91-120", + "traceId": null + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询发布前船期价格版本", + "evidence": "", + "code": null, + "requestId": "68255a91-124", + "traceId": null + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "发布前最多一份生效版本", + "evidence": "versions=n/a, active=0", + "code": null, + "requestId": "68255a91-124", + "traceId": null + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上传并解析船期价格表", + "evidence": "fileName=ADMIN-API-20260808054000515-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "code": null, + "requestId": "68255a91-125", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "evidence": "tenantId=10001", + "code": null, + "requestId": "90622ddd-137", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "evidence": "types=missing", + "code": null, + "requestId": "90622ddd-137", + "traceId": null + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "取得隔离的待测量入库单", + "evidence": "orders 模块未提供 marker=ADMIN-API-20260808054000515-MOJIA 的 inboundId/tenantId;为避免修改随机历史订单,本模块停止写入", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "存在可供安全下载核验的生效价格版本", + "evidence": "当前无 ACTIVE 价格版本,无法安全执行源文件下载核验", + "code": null, + "requestId": "90622ddd-173", + "traceId": null + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "托盘/库位真实占用删除保护自动化缺口", + "evidence": "当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "船期价格非法状态边界响应正确", + "evidence": "HTTP=503, code=missing", + "code": null, + "requestId": "68255a91-200", + "traceId": null + } + ], + "createdResources": { + "systemPermission": { + "id": "2085964223871569921", + "code": "platform:acceptance:808054000515" + }, + "systemRole": { + "id": "2085964225096306689", + "code": "ADMIN_ACCEPT_808054000515", + "finalStatus": "DISABLED", + "retainedBecauseAssigned": true + }, + "systemUser": { + "membershipId": "2085964227713552387", + "username": "admin_accept_808054000515", + "finalStatus": "DISABLED" + }, + "warehouse": { + "id": "2085964243724713986", + "code": "AW808054000515", + "finalStatus": "INACTIVE" + }, + "location": { + "id": "2085964244869758977", + "warehouseId": "2085964243724713986", + "deleted": false + }, + "pallet": { + "id": "2085964246165798913", + "warehouseId": "2085964243724713986", + "deleted": true + }, + "expressCompany": { + "id": "2085964247382147073", + "code": "EX808054000515", + "finalStatus": "INACTIVE" + }, + "partner": { + "id": "2085964248594300929", + "code": "PT808054000515", + "finalStatus": "INACTIVE" + }, + "exportTask": { + "id": "2085964256038682626" + }, + "orchestrationFixtures": { + "inboundMeasurement": { + "marker": "ADMIN-API-20260808054000515-MOJIA", + "failed": 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": "c5635b66-56ed-4582-9a2b-958277e2b902, 26e13eb7-920a-4e39-aeb7-d6112493ee5d", + "traceId": "e0da33e171bc4d848a03aa5dfb36ee70", + "evidence": "", + "checkedAt": "2026-08-08T05:40:00.948Z" + }, + { + "module": "customers", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16167600949" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "925f9c72-caec-4519-8d7d-f2aa4ed72fab, a69a4054-1b74-4ebc-a1f9-9f38b4020622", + "traceId": "335f70c2c5584ef196b4a97b6d247413", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T05:40:01.204Z" + }, + { + "module": "customers", + "scenario": null, + "name": "创建客户", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "S0503", + "message": "4条默认箱规尺寸初始化失败,已重试 3 次: [503] during [POST] to [http://firstleg-service/internal/firstleg/v1/customer-dimension-configs/defaults] [CustomerDimensionRuleClient#initialize(String,InitializationRequest)]: [Load balancer does not contain an instance for the service firstleg-service]", + "requestId": "b9527f97-0ef9-485b-8a88-9d54a7ba98af", + "traceId": "d53b081ea6e747999ee0c9c6a162a959", + "evidence": "", + "checkedAt": "2026-08-08T05:40:01.460Z" + }, + { + "module": "customers", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "创建客户失败,后续客户模块无法继续", + "checkedAt": "2026-08-08T05:40:01.460Z" + }, + { + "module": "overseas-storage-fees", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16167601462" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "75941903-6dfd-44ad-b374-482cca5da256, 4ef3885f-eed4-40b0-b3b5-5636402e0926", + "traceId": "09560216733245d0aefdbba8c01d8cd1", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T05:40:01.501Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "创建海外仓费用隔离客户", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "S0503", + "message": "4条默认箱规尺寸初始化失败,已重试 3 次: [503] during [POST] to [http://firstleg-service/internal/firstleg/v1/customer-dimension-configs/defaults] [CustomerDimensionRuleClient#initialize(String,InitializationRequest)]: [Load balancer does not contain an instance for the service firstleg-service]", + "requestId": "53e9b76b-8999-4ee3-86bd-cbcb4668e53b", + "traceId": "55c64ed1e703448ca9ccdeb8b4fcd1a9", + "evidence": "", + "checkedAt": "2026-08-08T05:40:01.585Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "海外仓费用隔离客户创建并带 marker", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "S0503", + "message": "4条默认箱规尺寸初始化失败,已重试 3 次: [503] during [POST] to [http://firstleg-service/internal/firstleg/v1/customer-dimension-configs/defaults] [CustomerDimensionRuleClient#initialize(String,InitializationRequest)]: [Load balancer does not contain an instance for the service firstleg-service]", + "requestId": "53e9b76b-8999-4ee3-86bd-cbcb4668e53b", + "traceId": "55c64ed1e703448ca9ccdeb8b4fcd1a9", + "evidence": "tenantId=missing", + "checkedAt": "2026-08-08T05:40:01.585Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "取得本轮客户 ID", + "passed": false, + "deploymentBlocker": true, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "未找到可隔离客户,禁止使用历史客户", + "checkedAt": "2026-08-08T05:40:01.585Z" + }, + { + "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": "8e6f004b-d1c1-420b-942e-bf285462a9a3, c96d02c0-23e0-48b0-99cc-9de834a850e9", + "traceId": "436dad80259b45c7b893c517fdfa9ed9", + "evidence": "", + "checkedAt": "2026-08-08T05:40:01.691Z" + }, + { + "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": "8e6f004b-d1c1-420b-942e-bf285462a9a3, c96d02c0-23e0-48b0-99cc-9de834a850e9", + "traceId": "436dad80259b45c7b893c517fdfa9ed9", + "evidence": "count=136", + "checkedAt": "2026-08-08T05:40:01.691Z" + }, + { + "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": "4cf03d22-914f-4fac-87f7-9723656ce553, 98da66a9-1d6a-4232-8388-aa57728a41e5", + "traceId": "4a641f1e6c52421e962c1060995b378a", + "evidence": "", + "checkedAt": "2026-08-08T05:40:01.774Z" + }, + { + "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": "4cf03d22-914f-4fac-87f7-9723656ce553, 98da66a9-1d6a-4232-8388-aa57728a41e5", + "traceId": "4a641f1e6c52421e962c1060995b378a", + "evidence": "permissionId=2085964223871569921", + "checkedAt": "2026-08-08T05:40:01.774Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑自定义权限资源", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964223871569921" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2cdf6318-00cf-424a-b2ae-a1cbe33dccbe, d63cd282-057b-4bbd-afb9-66b246712054", + "traceId": "634ddf26dcbd4830b7781bb2ad864bea", + "evidence": "", + "checkedAt": "2026-08-08T05:40:01.860Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964223871569921" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "2cdf6318-00cf-424a-b2ae-a1cbe33dccbe, d63cd282-057b-4bbd-afb9-66b246712054", + "traceId": "634ddf26dcbd4830b7781bb2ad864bea", + "evidence": "permissionId=2085964223871569921", + "checkedAt": "2026-08-08T05:40:01.860Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用自定义权限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964223871569921/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "dad82630-ee90-46c0-9a9d-e0689b59d9bc, 35f2034e-31d7-4286-ab5a-10fca2860be3", + "traceId": "714cd3d243b0436f89551051134c7107", + "evidence": "", + "checkedAt": "2026-08-08T05:40:01.926Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限状态回显 DISABLED", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964223871569921/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "dad82630-ee90-46c0-9a9d-e0689b59d9bc, 35f2034e-31d7-4286-ab5a-10fca2860be3", + "traceId": "714cd3d243b0436f89551051134c7107", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:40:01.926Z" + }, + { + "module": "system", + "scenario": null, + "name": "启用自定义权限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964223871569921/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4dd973e1-62b6-4dbc-b5f1-14566f0125e8, dde726a1-c005-4152-a0be-eb5a6d50989d", + "traceId": "0ed3c979c4114ab7969111fa67913a85", + "evidence": "", + "checkedAt": "2026-08-08T05:40:01.988Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限状态回显 ACTIVE", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085964223871569921/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4dd973e1-62b6-4dbc-b5f1-14566f0125e8, dde726a1-c005-4152-a0be-eb5a6d50989d", + "traceId": "0ed3c979c4114ab7969111fa67913a85", + "evidence": "status=ACTIVE", + "checkedAt": "2026-08-08T05:40:01.988Z" + }, + { + "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": "59d51560-c288-4fae-8181-c45562ab5731, f30e5810-d612-45d6-ba02-8b7dcc670363", + "traceId": "40e7578974954dd6a0d6ff77f6f8a353", + "evidence": "", + "checkedAt": "2026-08-08T05:40:02.068Z" + }, + { + "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": "59d51560-c288-4fae-8181-c45562ab5731, f30e5810-d612-45d6-ba02-8b7dcc670363", + "traceId": "40e7578974954dd6a0d6ff77f6f8a353", + "evidence": "roleId=2085964225096306689", + "checkedAt": "2026-08-08T05:40:02.068Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑平台自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964225096306689" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7da2e249-44c8-49bb-b76c-e05fdb46ac5f, a0d2e544-e947-4d3a-a8b8-bbd0211f504f", + "traceId": "7d4302e2473649609e44565c35f2a0bb", + "evidence": "", + "checkedAt": "2026-08-08T05:40:02.162Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964225096306689" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7da2e249-44c8-49bb-b76c-e05fdb46ac5f, a0d2e544-e947-4d3a-a8b8-bbd0211f504f", + "traceId": "7d4302e2473649609e44565c35f2a0bb", + "evidence": "roleId=2085964225096306689", + "checkedAt": "2026-08-08T05:40:02.162Z" + }, + { + "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": "83a935d6-9558-4295-914b-f4027196ca72, 685a7cd5-0a89-4f48-a07c-778c0f62517f", + "traceId": "016203536b9e4bee8f359774a009b7d9", + "evidence": "", + "checkedAt": "2026-08-08T05:40:02.248Z" + }, + { + "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": "90ad09e2-1591-4b8c-9260-d5648b0f7258, 087f2bfb-46ac-4dd6-93b1-10f13dde21de", + "traceId": "0bdc5a1e68b0454e855ffaad605809f7", + "evidence": "", + "checkedAt": "2026-08-08T05:40:02.376Z" + }, + { + "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": "90ad09e2-1591-4b8c-9260-d5648b0f7258, 087f2bfb-46ac-4dd6-93b1-10f13dde21de", + "traceId": "0bdc5a1e68b0454e855ffaad605809f7", + "evidence": "permissionIds=2085964223871569921", + "checkedAt": "2026-08-08T05:40:02.376Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964225096306689/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4ae5e509-f776-4d63-a113-7a9d48163873, bb1b0cf8-870f-4ce2-b66a-01e0ecd8c75a", + "traceId": "c037b8493d1f4eb5af90cddc95743cf0", + "evidence": "", + "checkedAt": "2026-08-08T05:40:02.440Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色状态回显 DISABLED", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964225096306689/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4ae5e509-f776-4d63-a113-7a9d48163873, bb1b0cf8-870f-4ce2-b66a-01e0ecd8c75a", + "traceId": "c037b8493d1f4eb5af90cddc95743cf0", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:40:02.440Z" + }, + { + "module": "system", + "scenario": null, + "name": "启用自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964225096306689/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d1bb4784-ebcb-4381-a27c-921f38722b69, c54f2626-341e-4170-afb6-d1d0b139e755", + "traceId": "9374979807754295a0959255a92cb31e", + "evidence": "", + "checkedAt": "2026-08-08T05:40:02.503Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色状态回显 ACTIVE", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964225096306689/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d1bb4784-ebcb-4381-a27c-921f38722b69, c54f2626-341e-4170-afb6-d1d0b139e755", + "traceId": "9374979807754295a0959255a92cb31e", + "evidence": "status=ACTIVE", + "checkedAt": "2026-08-08T05:40:02.503Z" + }, + { + "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": "26dc16c7-6a13-408b-b909-7ffc38d9f387, 4524f781-e7f9-4999-9632-7cc47aa34582", + "traceId": "92293f152bed4008865377359f7fadbf", + "evidence": "", + "checkedAt": "2026-08-08T05:40:02.570Z" + }, + { + "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": "26dc16c7-6a13-408b-b909-7ffc38d9f387, 4524f781-e7f9-4999-9632-7cc47aa34582", + "traceId": "92293f152bed4008865377359f7fadbf", + "evidence": "tenants=1, roles=15", + "checkedAt": "2026-08-08T05:40:02.570Z" + }, + { + "module": "system", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16167602570" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "57360cb7-74cb-4e82-9ead-2dc0c6509250, 4f3e7170-0599-49aa-a1f4-6d9d5f0858a2", + "traceId": "2e84980746f2477bb21f1689168c7205", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T05:40:02.614Z" + }, + { + "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": "3e81fa86-acea-4ec7-8d90-b0f4f755eea3, 54ce1100-b041-44b3-bea5-4e960f8bc3f8", + "traceId": "da3c21125ef247968a0b94ff80bd019a", + "evidence": "", + "checkedAt": "2026-08-08T05:40:03.140Z" + }, + { + "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": "3e81fa86-acea-4ec7-8d90-b0f4f755eea3, 54ce1100-b041-44b3-bea5-4e960f8bc3f8", + "traceId": "da3c21125ef247968a0b94ff80bd019a", + "evidence": "membershipId=2085964227713552387", + "checkedAt": "2026-08-08T05:40:03.140Z" + }, + { + "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_808054000515" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f140cff1-4247-47d4-b840-86cf2ee02cc9, 3f0d201a-fefe-4e93-978d-fd5ef80fc938", + "traceId": "b0d134f7b6e34821a379478579b2c548", + "evidence": "", + "checkedAt": "2026-08-08T05:40:03.226Z" + }, + { + "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_808054000515" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f140cff1-4247-47d4-b840-86cf2ee02cc9, 3f0d201a-fefe-4e93-978d-fd5ef80fc938", + "traceId": "b0d134f7b6e34821a379478579b2c548", + "evidence": "records=1, missing=none, lastLoginAt=omitted", + "checkedAt": "2026-08-08T05:40:03.227Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑平台内部用户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085964227713552387" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "41c2e0b5-3f1c-4d93-90e0-6229757f5f84, bf211666-c30b-4e61-8e4f-549fd7e17099", + "traceId": "16703c9b85c64cbbadfe6abf3c680dd7", + "evidence": "", + "checkedAt": "2026-08-08T05:40:03.788Z" + }, + { + "module": "system", + "scenario": null, + "name": "用户编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085964227713552387" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "41c2e0b5-3f1c-4d93-90e0-6229757f5f84, bf211666-c30b-4e61-8e4f-549fd7e17099", + "traceId": "16703c9b85c64cbbadfe6abf3c680dd7", + "evidence": "membershipId=2085964227713552387", + "checkedAt": "2026-08-08T05:40:03.788Z" + }, + { + "module": "system", + "scenario": null, + "name": "新建内部用户可使用初始密码登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "dd95c05c-94e2-4412-b22d-20b249bef23d, 79fd5250-f5e1-4896-87b9-7b0972d747e6", + "traceId": "ea3db74bf5f3498b84c604c92ff14e63", + "evidence": "username=admin_accept_808054000515", + "checkedAt": "2026-08-08T05:40:04.185Z" + }, + { + "module": "system", + "scenario": null, + "name": "重置平台内部用户密码", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085964227713552387/password" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "69aa04fd-cf10-4d6b-8be5-cd34bb757aca, 6ee5eddd-670e-4487-b4cd-29f8122358fc", + "traceId": "47e8b0af33f0401682dc9f5b8311c70d", + "evidence": "", + "checkedAt": "2026-08-08T05:40:04.785Z" + }, + { + "module": "system", + "scenario": null, + "name": "内部用户使用重置密码登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ac81eb40-191f-4c6c-8ebc-d7ffa8f0768d, 29a60980-b434-446d-92df-88ec0cdeb083", + "traceId": "9ff84ec153fe44b99640105b67d305bf", + "evidence": "username=admin_accept_808054000515", + "checkedAt": "2026-08-08T05:40:05.176Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用平台内部用户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085964227713552387/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "63984386-3c52-4e61-a7bd-e610bc3ce33e, 3c558d0f-0bda-407b-85d3-002aa75176f3", + "traceId": "d5ad0ea144d44e53a6bfd6abb3352781", + "evidence": "", + "checkedAt": "2026-08-08T05:40:05.475Z" + }, + { + "module": "system", + "scenario": null, + "name": "内部用户停用状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085964227713552387/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "63984386-3c52-4e61-a7bd-e610bc3ce33e, 3c558d0f-0bda-407b-85d3-002aa75176f3", + "traceId": "d5ad0ea144d44e53a6bfd6abb3352781", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:40:05.475Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用用户禁止登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "A0403", + "message": "账号已禁用", + "requestId": "b9b4c525-60ca-4776-9dff-cc8c65599e53", + "traceId": "50cc73499a9d4eebb93f8a9a53ad871d", + "evidence": "HTTP=200, code=A0403", + "checkedAt": "2026-08-08T05:40:05.531Z" + }, + { + "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": "6cf09002-fd8f-47ad-8b16-220582e9adbf, 728ba948-9874-4781-bc0f-13e1e7f0da78", + "traceId": "ad5b5acf545c4e5bbe8e201cbfca45cf", + "evidence": "", + "checkedAt": "2026-08-08T05:40:05.862Z" + }, + { + "module": "system", + "scenario": "system-role-protection", + "name": "已分配成员的角色禁止删除", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/iam/roles/2085964225096306689" + }, + "http": 200, + "code": "A0409", + "message": "角色已分配给成员,不能删除", + "requestId": "31a216c9-7046-47a7-a188-ae882c91feef", + "traceId": "74607b69343743ca921d401badc7fd2f", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T05:40:05.914Z" + }, + { + "module": "system", + "scenario": null, + "name": "清理时停用测试角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964225096306689/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1121fcb7-b58e-4308-9415-6f842b35a894, f83841bc-4cfe-435f-a350-f980d33b2fcd", + "traceId": "c028c3bfaf824b2abc89caad11b0d137", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.281Z" + }, + { + "module": "system", + "scenario": null, + "name": "保留测试角色处于停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085964225096306689/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1121fcb7-b58e-4308-9415-6f842b35a894, f83841bc-4cfe-435f-a350-f980d33b2fcd", + "traceId": "c028c3bfaf824b2abc89caad11b0d137", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:40:06.281Z" + }, + { + "module": "system", + "scenario": null, + "name": "删除临时权限资源", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/iam/permissions/2085964223871569921" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0afdf7a9-7697-4004-84c4-3c12014db28e, ce4db4c1-398a-443f-8d25-a9359273fec8", + "traceId": "3be6c91b642145708adcdd411a90c3d6", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.341Z" + }, + { + "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": "2087ac78-ef83-4c97-a5d8-0e46b67925ab, 3efad733-3a23-4229-bf6c-57cdd1ac9b5e", + "traceId": "a13a01ed6ee94092bb206c9002f4d322", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.448Z" + }, + { + "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": "2087ac78-ef83-4c97-a5d8-0e46b67925ab, 3efad733-3a23-4229-bf6c-57cdd1ac9b5e", + "traceId": "a13a01ed6ee94092bb206c9002f4d322", + "evidence": "total=275", + "checkedAt": "2026-08-08T05:40:06.448Z" + }, + { + "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": "bcff79b6-2f58-4c55-8876-3e4305a6f71a, 380cc1e4-5a66-434b-a603-6ebbaac9cf9f", + "traceId": "6262f688a11b4308bd46cfc692050e12", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.504Z" + }, + { + "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": "bcff79b6-2f58-4c55-8876-3e4305a6f71a, 380cc1e4-5a66-434b-a603-6ebbaac9cf9f", + "traceId": "6262f688a11b4308bd46cfc692050e12", + "evidence": "warehouseId=2085964243724713986", + "checkedAt": "2026-08-08T05:40:06.504Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询平台仓库详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085964243724713986?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "85240276-c946-4417-b6e5-74c8c1d130fc, 7fdaad9e-e92b-484e-b3c2-64d9cba119e5", + "traceId": "d6ac01e82bdb473da0571792210466e4", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.585Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "仓库详情、地址和能力正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085964243724713986?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "85240276-c946-4417-b6e5-74c8c1d130fc, 7fdaad9e-e92b-484e-b3c2-64d9cba119e5", + "traceId": "d6ac01e82bdb473da0571792210466e4", + "evidence": "addresses=1, capabilities=1", + "checkedAt": "2026-08-08T05:40:06.585Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑平台仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/warehouse-admin/2085964243724713986?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d868e14a-b699-4da8-b6cc-b126fcf69e22, f33aaf12-d869-4afb-aa98-5021c35cb26e", + "traceId": "12c66e59e1f842d1b9f13edf088d3857", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.662Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的平台仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085964243724713986?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "53312b3f-899e-4e52-a76e-c559123861ef, 101374f0-2edf-4b1d-92bb-99fed9309b26", + "traceId": "ba5f98b111da4c6980c73933616aa77e", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.716Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "仓库编辑已持久化", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085964243724713986?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "53312b3f-899e-4e52-a76e-c559123861ef, 101374f0-2edf-4b1d-92bb-99fed9309b26", + "traceId": "ba5f98b111da4c6980c73933616aa77e", + "evidence": "warehouseId=2085964243724713986", + "checkedAt": "2026-08-08T05:40:06.716Z" + }, + { + "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": "401d1510-c16d-4438-a73c-82dbc868790c, 66b05577-f2e1-4d97-a0dd-cdd870b68558", + "traceId": "d7e8dfeba10343dd967619615e5ebb77", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.768Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询库位详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964244869758977?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8df93cbb-86a3-43bc-807b-2877971b2480, 81545dfc-524d-437d-8fe0-1c667e6fc186", + "traceId": "7bc3a09afc9c4db5828155730efad965", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.809Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "库位详情关联正确仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964244869758977?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "8df93cbb-86a3-43bc-807b-2877971b2480, 81545dfc-524d-437d-8fe0-1c667e6fc186", + "traceId": "7bc3a09afc9c4db5828155730efad965", + "evidence": "locationId=2085964244869758977", + "checkedAt": "2026-08-08T05:40:06.809Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085964244869758977?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "69aa58cb-abe6-41c0-94c8-5a085809c4e5, 21b8151d-f714-4f3f-a483-ecffde3fb6c0", + "traceId": "5698e47fbf1f4fc9a41262977cb84ea2", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.864Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964244869758977?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "83936355-4b49-4829-80a9-3bd4b57904c4, 6b2f5491-053b-4c0d-a136-4dd47ace1afd", + "traceId": "7fbfcc33d45340568d9bea81efb90f54", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.908Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "库位编辑与版本递增正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964244869758977?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "83936355-4b49-4829-80a9-3bd4b57904c4, 6b2f5491-053b-4c0d-a136-4dd47ace1afd", + "traceId": "7fbfcc33d45340568d9bea81efb90f54", + "evidence": "version=1", + "checkedAt": "2026-08-08T05:40:06.909Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/locations/2085964244869758977/status?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "509583af-4503-45a0-8d23-daaded696053, ab556440-36f0-4b21-a37f-8848a57d4076", + "traceId": "0cea9f2f17214887896dbeb112f88921", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.955Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "删除未占用测试库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/locations/2085964244869758977?tenantId=0&warehouseId=2085964243724713986&version=2" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "13e2052e-e20f-481a-95ff-50be87915616, 1e2fffce-7377-4063-87dd-ee218098df74", + "traceId": "3c278258540845b78b8d1c6df509c4d5", + "evidence": "", + "checkedAt": "2026-08-08T05:40:06.998Z" + }, + { + "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": "76756293-386c-4977-a30b-7a35e1dbdca9, 2cbf0765-fdaa-4a16-bb8a-7d076d75c13d", + "traceId": "3451250a976941c4a76250acd7978dd1", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.077Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询托盘详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085964246165798913?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d7aa031c-4dd5-4972-bf47-a53f2c27bf43, 8e6f7640-d125-4e73-80d2-8d1025c5b403", + "traceId": "f4a1344ad3714e3a993bf85b919259e6", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.126Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "托盘详情关联正确仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085964246165798913?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d7aa031c-4dd5-4972-bf47-a53f2c27bf43, 8e6f7640-d125-4e73-80d2-8d1025c5b403", + "traceId": "f4a1344ad3714e3a993bf85b919259e6", + "evidence": "palletId=2085964246165798913", + "checkedAt": "2026-08-08T05:40:07.126Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/pallets/2085964246165798913?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9e9d2ae1-ece0-4abc-9d21-cabc57fe4b46, ef7665ff-5bdd-48b0-b3a7-eb47c085bbec", + "traceId": "9c1fd99c6d4c4a97bc49f7ea9c1092fe", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.178Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085964246165798913?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "22645415-6004-4a38-9949-80e6dbfb248e, 910dad51-295e-4de0-9aac-4550c8c99f26", + "traceId": "c5c0959566de460ba3b01e8c4036dbec", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.227Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "托盘编辑已持久化", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085964246165798913?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "22645415-6004-4a38-9949-80e6dbfb248e, 910dad51-295e-4de0-9aac-4550c8c99f26", + "traceId": "c5c0959566de460ba3b01e8c4036dbec", + "evidence": "palletId=2085964246165798913", + "checkedAt": "2026-08-08T05:40:07.227Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "删除未使用测试托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/pallets/2085964246165798913?tenantId=0&warehouseId=2085964243724713986" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3712f684-dd12-4b33-bb01-39d8bf600712, a9ea3550-97e4-4834-82f6-56e373abf109", + "traceId": "a50b3a8bdab1496a9aad43f4b2a86eaa", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.298Z" + }, + { + "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": "d872e798-d6d5-41bf-a3fa-17169172982f, 87e1d021-2569-4d84-b042-1fe2108cecd4", + "traceId": "6bf9848c526542a6bcdc063421e80283", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.369Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询快递公司详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies/2085964247382147073?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b28eaf3e-250b-4755-806c-7c224490911b, 336498a0-bac5-44a8-a3f7-022c0353d3bf", + "traceId": "2d82bf77cf834dd88b42987cee433e2c", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.413Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "快递公司详情正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies/2085964247382147073?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "b28eaf3e-250b-4755-806c-7c224490911b, 336498a0-bac5-44a8-a3f7-022c0353d3bf", + "traceId": "2d82bf77cf834dd88b42987cee433e2c", + "evidence": "expressId=2085964247382147073", + "checkedAt": "2026-08-08T05:40:07.413Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑快递公司", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/express-companies/2085964247382147073?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ab8817f6-266a-4a54-9997-caece751366b, 673944aa-b25b-4760-99b5-45cd0a82e004", + "traceId": "4db983ad51b547e2bb0e3f0ab732a349", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.473Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用快递公司", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/express-companies/2085964247382147073/status?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4c811773-5f67-4038-8e7c-3ed54236f0df, 3d96c216-9199-4519-9fa4-e60ca49ac4cd", + "traceId": "3d6d5c0b5f614b7db30ad7b3c1b3c356", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.518Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "筛选快递公司列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=20&keyword=EX808054000515" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ae29b5f6-a154-4718-ac8f-160c0ebf963e, 85f7bd40-c7a2-4471-b1a2-649edd644e20", + "traceId": "8f54ac2fb24f466ea1c87e56d1bafff2", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.570Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "快递公司列表回显停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=20&keyword=EX808054000515" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ae29b5f6-a154-4718-ac8f-160c0ebf963e, 85f7bd40-c7a2-4471-b1a2-649edd644e20", + "traceId": "8f54ac2fb24f466ea1c87e56d1bafff2", + "evidence": "records=1", + "checkedAt": "2026-08-08T05:40:07.570Z" + }, + { + "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": "bd3d5f54-9a56-4ddc-af34-9a23c4305b2e, 73014b88-08e6-4c88-8a1b-e1bb1f32b771", + "traceId": "2decefabda0c499194de9b1754217f6e", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.657Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询往来单位详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners/2085964248594300929?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9eec8833-7c80-4601-9ff9-e37cf96cb2d2, c7aca125-8d85-4d83-a5f6-9998a4bff32a", + "traceId": "743d45c34b9a4610a7b2b0a145980aec", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.707Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "往来单位详情正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners/2085964248594300929?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9eec8833-7c80-4601-9ff9-e37cf96cb2d2, c7aca125-8d85-4d83-a5f6-9998a4bff32a", + "traceId": "743d45c34b9a4610a7b2b0a145980aec", + "evidence": "partnerId=2085964248594300929", + "checkedAt": "2026-08-08T05:40:07.707Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑往来单位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/partners/2085964248594300929?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "308f4723-388d-4e0e-9351-b9f0c8d9ac5f, d7facfdd-bbdb-46fd-8995-faa89781ff87", + "traceId": "a14a825e12c44e8ba6575be4a4ad44aa", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.778Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用往来单位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/partners/2085964248594300929/status?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1d3b15a3-68e9-4fac-a20f-afe7b81e08cd, 07f2851c-daf2-47ba-9aaf-0b2890948efb", + "traceId": "d3db2cded1cc4db48e63b519c8290692", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.832Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "筛选往来单位列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=20&keyword=PT808054000515" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "aed4ac92-d9ee-495d-bfbb-e8b2d2b3da29, f1d22e5b-7d1f-4d31-9789-2ef39afe99e3", + "traceId": "08891415a4384de8ae96f794cff68170", + "evidence": "", + "checkedAt": "2026-08-08T05:40:07.875Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "往来单位列表回显编辑与停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=20&keyword=PT808054000515" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "aed4ac92-d9ee-495d-bfbb-e8b2d2b3da29, f1d22e5b-7d1f-4d31-9789-2ef39afe99e3", + "traceId": "08891415a4384de8ae96f794cff68170", + "evidence": "records=1", + "checkedAt": "2026-08-08T05:40:07.875Z" + }, + { + "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": "3853 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "264e624d-115f-4387-aaa4-81182307b745, 2a24b2dd-ef4a-4138-a7d5-b1603ebe8833", + "traceId": "1ae8eb5e24034e20a42cd3e07519d44f", + "evidence": "bytes=3853, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:08.372Z" + }, + { + "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": "3692 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "1df709eb-312a-4fdf-9dd2-a32366862a87, 2360e48f-25b6-4095-959e-bdbbd077d026", + "traceId": "72805bdcccb24895b0c928d04d4dfa81", + "evidence": "bytes=3692, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:08.655Z" + }, + { + "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": "3830 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "310b90ad-9970-4dd0-ae53-ed8113f48be6, be0c9a8e-d7db-47c1-a401-005df5223ebc", + "traceId": "20fbb043fad54aa9b3e82f8924050f1f", + "evidence": "bytes=3830, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:08.704Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用测试仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/warehouse-admin/2085964243724713986/status?tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fd4e9210-e2db-430e-aa8f-956f55b69a37, 19352759-65ea-4b6d-bfea-a0220563fa4a", + "traceId": "e9515ebcaaac476c95f7c806d882053e", + "evidence": "", + "checkedAt": "2026-08-08T05:40:08.739Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试账号登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "bcf01372-22b9-45a0-bd08-e4109f1d2c0a, 8cc48ba9-282d-4973-a6d5-563b9f4d66a3", + "traceId": "9f8f50ac73574c969e6846792ffbffa0", + "evidence": "username=merchant_admin", + "checkedAt": "2026-08-08T05:40:09.092Z" + }, + { + "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": "2a1dd5ce-4247-4a73-818f-a7856e8b2d05, 14a9bc6d-57c2-452d-84db-9bc6c95eda70", + "traceId": "522266eb7eb14b22acb607f9e7f80acc", + "evidence": "", + "checkedAt": "2026-08-08T05:40:09.120Z" + }, + { + "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": "2a1dd5ce-4247-4a73-818f-a7856e8b2d05, 14a9bc6d-57c2-452d-84db-9bc6c95eda70", + "traceId": "522266eb7eb14b22acb607f9e7f80acc", + "evidence": "tenantId=10001, status=ACTIVE", + "checkedAt": "2026-08-08T05:40:09.120Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-120", + "traceId": null, + "evidence": "tenantId=10001", + "checkedAt": "2026-08-08T05:40:09.145Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-120", + "traceId": null, + "evidence": "types=missing", + "checkedAt": "2026-08-08T05:40:09.145Z" + }, + { + "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": "fc26ca5a-daf1-40a8-aff3-3ffeaa152fe8, c58ff247-ca04-4d46-8075-7e8bf2bc09ec", + "traceId": "3b5668b0099f4c82b214c245834360fc", + "evidence": "", + "checkedAt": "2026-08-08T05:40:09.187Z" + }, + { + "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": "fc26ca5a-daf1-40a8-aff3-3ffeaa152fe8, c58ff247-ca04-4d46-8075-7e8bf2bc09ec", + "traceId": "3b5668b0099f4c82b214c245834360fc", + "evidence": "count=2", + "checkedAt": "2026-08-08T05:40:09.187Z" + }, + { + "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": "6da39a14-2096-4103-bec0-d5498a2fcf50, c4645767-098d-4350-a713-2d9f10bd4d63", + "traceId": "a3a21691230f46ea8c9fb5c17c5222c7", + "evidence": "", + "checkedAt": "2026-08-08T05:40:09.269Z" + }, + { + "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": "6da39a14-2096-4103-bec0-d5498a2fcf50, c4645767-098d-4350-a713-2d9f10bd4d63", + "traceId": "a3a21691230f46ea8c9fb5c17c5222c7", + "evidence": "count=200", + "checkedAt": "2026-08-08T05:40:09.269Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询可用计费渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "bea8b385-123", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:40:09.298Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在带计价税制的可用渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "bea8b385-123", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:40:09.298Z" + }, + { + "module": "orders", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "缺少创建测试订单所需的可用渠道", + "checkedAt": "2026-08-08T05:40:09.298Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询发布前船期价格版本", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-124", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:40:09.328Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "发布前最多一份生效版本", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-124", + "traceId": null, + "evidence": "versions=n/a, active=0", + "checkedAt": "2026-08-08T05:40:09.328Z" + }, + { + "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-20260808054000515-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "checkedAt": "2026-08-08T05:40:09.331Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上传并解析船期价格表", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-125", + "traceId": null, + "evidence": "fileName=ADMIN-API-20260808054000515-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "checkedAt": "2026-08-08T05:40:09.352Z" + }, + { + "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": "40f90214-fc69-449a-8af4-b4dd746edbfc, cf59bbfc-bf3c-4b55-b68d-41bca4de3dda", + "traceId": "337517f2136b445192d6b39270fd3bac", + "evidence": "", + "checkedAt": "2026-08-08T05:40:09.478Z" + }, + { + "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": "40f90214-fc69-449a-8af4-b4dd746edbfc, cf59bbfc-bf3c-4b55-b68d-41bca4de3dda", + "traceId": "337517f2136b445192d6b39270fd3bac", + "evidence": "taskId=2085964256038682626, status=PENDING", + "checkedAt": "2026-08-08T05:40:09.478Z" + }, + { + "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": "1c14e337-1d4b-4568-8dab-45b2bddad88a, 5e8967fe-0bc4-4973-b4c6-2ca6b57a64e5", + "traceId": "65324354866c457aba3e22c1d2522c3a", + "evidence": "", + "checkedAt": "2026-08-08T05:40:09.648Z" + }, + { + "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": "1c14e337-1d4b-4568-8dab-45b2bddad88a, 5e8967fe-0bc4-4973-b4c6-2ca6b57a64e5", + "traceId": "65324354866c457aba3e22c1d2522c3a", + "evidence": "records=11", + "checkedAt": "2026-08-08T05:40:09.648Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "轮询导出任务直到终态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085964256038682626" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "32ccd0a3-dd5d-4550-8ee9-aa30432b64b7, 62595283-e230-47f8-998b-0dbd4e86ada0", + "traceId": "aca13a5a13914765a9685e339e4b4294", + "evidence": "status=SUCCEEDED, processedRows=0", + "checkedAt": "2026-08-08T05:40:13.765Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "查询导出任务详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085964256038682626" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3b8b705d-bc6a-4f59-b08d-e1f1160498f1, 1c3097c7-ada5-4e01-952c-eb57a7a38912", + "traceId": "4e544e988c6b4d3788e28236f92fef9d", + "evidence": "", + "checkedAt": "2026-08-08T05:40:13.818Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "导出详情行数和文件元数据正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085964256038682626" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3b8b705d-bc6a-4f59-b08d-e1f1160498f1, 1c3097c7-ada5-4e01-952c-eb57a7a38912", + "traceId": "4e544e988c6b4d3788e28236f92fef9d", + "evidence": "processedRows=0, sizeBytes=4066", + "checkedAt": "2026-08-08T05:40:13.818Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "下载并校验客户列表 XLSX", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085964256038682626/download" + }, + "http": 200, + "code": null, + "message": "4066 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "ee675798-3433-4ef7-814f-0fdb492099a1, c7eec141-a00a-4e05-bbcf-f6fe8294849a", + "traceId": "6cf9b9d07c1b4fd8a2f6162f7f3e4a0c", + "evidence": "bytes=4066, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:13.885Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "仅选择带本轮测试标记的可编辑入库单", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "marker=ADMIN-API-20260808054000515, 未找到本轮创建且状态为 WAIT_MEASURE/MEASURING/MEASURE_REJECTED 的入库单", + "checkedAt": "2026-08-08T05:40:13.949Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试账号登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e7cac67c-188d-4053-977b-cfc87fc7cd1a, a821cb3e-51fe-423a-9281-3d5320870530", + "traceId": "20cbb29f75d147498014ae9c629f4e2b", + "evidence": "username=merchant_admin", + "checkedAt": "2026-08-08T05:40:14.326Z" + }, + { + "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": "d5f1e5e1-c6ff-448d-90d7-ac7895e33543, 9e66d3ee-87e7-4c6e-83a1-3bea528c091b", + "traceId": "41d622ec26b54246ad3236f3a7291f28", + "evidence": "", + "checkedAt": "2026-08-08T05:40:14.358Z" + }, + { + "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": "d5f1e5e1-c6ff-448d-90d7-ac7895e33543, 9e66d3ee-87e7-4c6e-83a1-3bea528c091b", + "traceId": "41d622ec26b54246ad3236f3a7291f28", + "evidence": "tenantId=10001, status=ACTIVE", + "checkedAt": "2026-08-08T05:40:14.358Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "90622ddd-137", + "traceId": null, + "evidence": "tenantId=10001", + "checkedAt": "2026-08-08T05:40:14.381Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "90622ddd-137", + "traceId": null, + "evidence": "types=missing", + "checkedAt": "2026-08-08T05:40:14.381Z" + }, + { + "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": "3b115321-b621-47b9-8bb8-6f5fec0f8fd1, 3b66ca14-86d1-452a-b7d0-2dab7c3ca500", + "traceId": "da12475ef0494c0889c20fa1d44ca50f", + "evidence": "", + "checkedAt": "2026-08-08T05:40:14.428Z" + }, + { + "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": "3b115321-b621-47b9-8bb8-6f5fec0f8fd1, 3b66ca14-86d1-452a-b7d0-2dab7c3ca500", + "traceId": "da12475ef0494c0889c20fa1d44ca50f", + "evidence": "count=2", + "checkedAt": "2026-08-08T05:40:14.429Z" + }, + { + "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": "bedd41ab-7c30-4285-b46b-ef9dc056337b, eb792902-db7c-4ae1-bab5-9e5f64e940e5", + "traceId": "2d472a9e4c444a97aba557efb8f551ce", + "evidence": "", + "checkedAt": "2026-08-08T05:40:14.511Z" + }, + { + "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": "bedd41ab-7c30-4285-b46b-ef9dc056337b, eb792902-db7c-4ae1-bab5-9e5f64e940e5", + "traceId": "2d472a9e4c444a97aba557efb8f551ce", + "evidence": "count=200", + "checkedAt": "2026-08-08T05:40:14.511Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询可用计费渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-140", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:40:14.538Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在带计价税制的可用渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-140", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:40:14.538Z" + }, + { + "module": "orders-inbound-measurement-fixture", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "缺少创建测试订单所需的可用渠道", + "checkedAt": "2026-08-08T05:40:14.538Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "取得隔离的待测量入库单", + "passed": false, + "deploymentBlocker": true, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "orders 模块未提供 marker=ADMIN-API-20260808054000515-MOJIA 的 inboundId/tenantId;为避免修改随机历史订单,本模块停止写入", + "checkedAt": "2026-08-08T05:40:14.540Z" + }, + { + "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": "f19b4008-726d-42d2-be44-b46bf6e4ffb8, 3a7f2f2d-8bc0-43c4-927b-f6932b097feb", + "traceId": "8077128db26b4bb589c055971861cf38", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T05:40:14.574Z" + }, + { + "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": "f19b4008-726d-42d2-be44-b46bf6e4ffb8, 3a7f2f2d-8bc0-43c4-927b-f6932b097feb", + "traceId": "8077128db26b4bb589c055971861cf38", + "evidence": "service=order-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T05:40:14.574Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "firstleg-service 状态响应使用统一成功体", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/status" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-142", + "traceId": null, + "evidence": "HTTP=503, code=missing", + "checkedAt": "2026-08-08T05:40:14.601Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "firstleg-service 状态字段完整且 readiness 语义明确", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/status" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-142", + "traceId": null, + "evidence": "service=missing, status=missing, readiness=invalid", + "checkedAt": "2026-08-08T05:40:14.601Z" + }, + { + "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": "68268009-a1ff-48c3-a8ea-c951732bee0b, 3b155a92-8150-4427-afeb-60afcc9f16f7", + "traceId": "0d5ec1f0111d47e68f3582920fd5d71c", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T05:40:14.640Z" + }, + { + "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": "68268009-a1ff-48c3-a8ea-c951732bee0b, 3b155a92-8150-4427-afeb-60afcc9f16f7", + "traceId": "0d5ec1f0111d47e68f3582920fd5d71c", + "evidence": "service=file-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T05:40:14.640Z" + }, + { + "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": "1ccd5eab-dc36-4460-93cf-50571ab68290, 67829d6c-714a-4942-ba29-afb0f5e7ea4a", + "traceId": "909e93dabc37440786505c73afc5d936", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T05:40:14.699Z" + }, + { + "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": "1ccd5eab-dc36-4460-93cf-50571ab68290, 67829d6c-714a-4942-ba29-afb0f5e7ea4a", + "traceId": "909e93dabc37440786505c73afc5d936", + "evidence": "service=warehouse-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T05:40:14.699Z" + }, + { + "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": "90622ddd-145", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:40:14.718Z" + }, + { + "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": "68255a91-146", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:40:14.750Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "未认证请求不返回业务成功码", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/status" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "90622ddd-147", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:40:14.780Z" + }, + { + "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": "23d7f2ad-7e6c-4289-ba72-8b8ec0e2bac9, 7e46ce2a-e228-4c1f-80ed-b9206cc1635d", + "traceId": "3f86e1f2b6fd439f97d08977b446c4e6", + "evidence": "path=/api/platform/v1/warehouse-admin?page=1&size=5&status=ACTIVE", + "checkedAt": "2026-08-08T05:40:14.821Z" + }, + { + "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": "23d7f2ad-7e6c-4289-ba72-8b8ec0e2bac9, 7e46ce2a-e228-4c1f-80ed-b9206cc1635d", + "traceId": "3f86e1f2b6fd439f97d08977b446c4e6", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:40:14.821Z" + }, + { + "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": "3cda7cb1-d02a-493f-a368-ac595be42ea0, 4900b66d-227e-4f3f-94c5-6fdb85efdd0d", + "traceId": "a07c16d7d3414154b61bf290fb17e36d", + "evidence": "path=/api/platform/v1/warehouse-admin?page=1&size=5&tenantId=0&warehouseType=FBA", + "checkedAt": "2026-08-08T05:40:14.873Z" + }, + { + "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": "3cda7cb1-d02a-493f-a368-ac595be42ea0, 4900b66d-227e-4f3f-94c5-6fdb85efdd0d", + "traceId": "a07c16d7d3414154b61bf290fb17e36d", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:40:14.873Z" + }, + { + "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": "9efa4828-ee6b-4282-ae44-aec2a4209515", + "traceId": "4b2b1f9fa3fd449bb3829c7f356abc91", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:40:14.952Z" + }, + { + "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": "ead98c0e-b7c1-487c-a032-c65debe36964", + "traceId": "61657899763047b2a593f87cde1fefa6", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T05:40:15.002Z" + }, + { + "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": "35bd969f-86c2-4c86-9b1e-64ef410eb26b, d49c02f6-664a-40cf-b2d0-5d147e5d8885", + "traceId": "33d25bbc116f4f4ba3237a187e834a2a", + "evidence": "path=/api/platform/v1/locations?page=1&size=5&tenantId=0", + "checkedAt": "2026-08-08T05:40:15.073Z" + }, + { + "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": "35bd969f-86c2-4c86-9b1e-64ef410eb26b, d49c02f6-664a-40cf-b2d0-5d147e5d8885", + "traceId": "33d25bbc116f4f4ba3237a187e834a2a", + "evidence": "records=3, current=1, size=5", + "checkedAt": "2026-08-08T05:40:15.073Z" + }, + { + "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": "f2b14322-bd37-4e7f-b3ea-0cff65fd6fb7, 0e62d0ac-c295-48c6-b4c8-c049c5a6dfa6", + "traceId": "8e3330d1157042cc980a245dc8543471", + "evidence": "path=/api/platform/v1/pallets?page=1&size=5&tenantId=0", + "checkedAt": "2026-08-08T05:40:15.140Z" + }, + { + "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": "f2b14322-bd37-4e7f-b3ea-0cff65fd6fb7, 0e62d0ac-c295-48c6-b4c8-c049c5a6dfa6", + "traceId": "8e3330d1157042cc980a245dc8543471", + "evidence": "records=3, current=1, size=5", + "checkedAt": "2026-08-08T05:40:15.140Z" + }, + { + "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": "e4a162d0-218f-4845-8bdf-4550e9d3b084, b58daa6d-2657-4ac5-935e-15dcfcfd45d6", + "traceId": "9f7e64be21b245b49a5e69ec91af7c30", + "evidence": "path=/api/platform/v1/locations?page=1&size=5&tenantId=0&warehouseId=193000000000000001", + "checkedAt": "2026-08-08T05:40:15.198Z" + }, + { + "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": "e4a162d0-218f-4845-8bdf-4550e9d3b084, b58daa6d-2657-4ac5-935e-15dcfcfd45d6", + "traceId": "9f7e64be21b245b49a5e69ec91af7c30", + "evidence": "records=0, current=1, size=5", + "checkedAt": "2026-08-08T05:40:15.198Z" + }, + { + "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": "37877bab-05b2-4622-92c5-2fc2c1bd982a, f3038602-e966-45d6-b7e7-5e1076010bd0", + "traceId": "4ea90baf91054523984ed27447fdfdc7", + "evidence": "path=/api/platform/v1/pallets?page=1&size=5&tenantId=0&warehouseId=193000000000000001", + "checkedAt": "2026-08-08T05:40:15.237Z" + }, + { + "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": "37877bab-05b2-4622-92c5-2fc2c1bd982a, f3038602-e966-45d6-b7e7-5e1076010bd0", + "traceId": "4ea90baf91054523984ed27447fdfdc7", + "evidence": "records=0, current=1, size=5", + "checkedAt": "2026-08-08T05:40:15.237Z" + }, + { + "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": "9c933721-589a-4540-8c66-ffbe08524855", + "traceId": "b3fe7ebf052a4c4598ac3c5e1e19da25", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T05:40:15.276Z" + }, + { + "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": "7509033c-8978-4608-ba8e-87460dc33a18", + "traceId": "eef5004d00d847959b6678d7fe204efa", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T05:40:15.304Z" + }, + { + "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": "836ad68c-57fd-4b07-bd9a-2ef0b203a76a", + "traceId": "6eee4ee26d4e44b3b4d3818c76593945", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:40:15.337Z" + }, + { + "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": "ee08e5b7-91ab-4b1a-a554-d34d117a40b6", + "traceId": "5946ac7fec954f878b5025419c888949", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:40:15.366Z" + }, + { + "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": "2ea6063b-094a-49f8-9672-180ee754b8a2", + "traceId": "06ceb110f8384b0a9d0a95b705659e4c", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:40:15.411Z" + }, + { + "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": "5a9a12a4-5c13-4604-b705-6fb889a0db97, 2771859e-3547-4f65-b003-465348594520", + "traceId": "376db13b0cc44c97b28b51659ee7fe10", + "evidence": "path=/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=ACTIVE", + "checkedAt": "2026-08-08T05:40:15.456Z" + }, + { + "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": "5a9a12a4-5c13-4604-b705-6fb889a0db97, 2771859e-3547-4f65-b003-465348594520", + "traceId": "376db13b0cc44c97b28b51659ee7fe10", + "evidence": "records=4, current=1, size=5", + "checkedAt": "2026-08-08T05:40:15.456Z" + }, + { + "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": "11c87a79-6e00-45b7-bb48-7d549e54f8e6, a37239df-2688-49fd-acf3-9fb831494b5f", + "traceId": "31c8ac5b6b674c6ebd90f1481d022d8d", + "evidence": "path=/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=INACTIVE", + "checkedAt": "2026-08-08T05:40:15.503Z" + }, + { + "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": "11c87a79-6e00-45b7-bb48-7d549e54f8e6, a37239df-2688-49fd-acf3-9fb831494b5f", + "traceId": "31c8ac5b6b674c6ebd90f1481d022d8d", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:40:15.503Z" + }, + { + "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": "11c87a79-6e00-45b7-bb48-7d549e54f8e6, a37239df-2688-49fd-acf3-9fb831494b5f", + "traceId": "31c8ac5b6b674c6ebd90f1481d022d8d", + "evidence": "records=5", + "checkedAt": "2026-08-08T05:40:15.503Z" + }, + { + "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": "18c51af0-f270-4d8a-9b9e-7759be22344e", + "traceId": "e1b840dafa264e7bac1326328132b258", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:40:15.545Z" + }, + { + "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": "87ec49da-c784-4878-b62b-b96306545709, c09cc1c0-2a7a-4ece-b0cc-5e15a38fe6e1", + "traceId": "96ec40b01c1f4128b05868b122ff2cc3", + "evidence": "path=/api/platform/v1/partners?page=1&size=5&tenantId=0&status=ACTIVE", + "checkedAt": "2026-08-08T05:40:15.599Z" + }, + { + "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": "87ec49da-c784-4878-b62b-b96306545709, c09cc1c0-2a7a-4ece-b0cc-5e15a38fe6e1", + "traceId": "96ec40b01c1f4128b05868b122ff2cc3", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:40:15.599Z" + }, + { + "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": "f2839890-bbf6-4192-a6c2-ee6ecfe6fedd, 54176d1b-59d8-4030-a00a-ffd293fbc352", + "traceId": "de546311696f4835b53241de61b7306d", + "evidence": "path=/api/platform/v1/partners?page=1&size=5&tenantId=0&status=INACTIVE", + "checkedAt": "2026-08-08T05:40:15.655Z" + }, + { + "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": "f2839890-bbf6-4192-a6c2-ee6ecfe6fedd, 54176d1b-59d8-4030-a00a-ffd293fbc352", + "traceId": "de546311696f4835b53241de61b7306d", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:40:15.655Z" + }, + { + "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": "f2839890-bbf6-4192-a6c2-ee6ecfe6fedd, 54176d1b-59d8-4030-a00a-ffd293fbc352", + "traceId": "de546311696f4835b53241de61b7306d", + "evidence": "records=5", + "checkedAt": "2026-08-08T05:40:15.656Z" + }, + { + "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": "1ed643e1-def8-4bf0-ad49-c8461c9d5e57", + "traceId": "e835876d91b3422780788e9d1e3df3ec", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:40:15.696Z" + }, + { + "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": "3852 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "53ec1d5c-bf54-41bd-a82f-c9e4ceca4576, c1b2b30d-6a41-4de2-aa05-cb66ab64f8c4", + "traceId": "33ba830478744f0792dbf1b31f48a179", + "evidence": "HTTP=200, bytes=3852, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:15.746Z" + }, + { + "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": "3691 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "31db4115-3aeb-4c1e-becc-810babb64fb3, b0e8f764-4166-4522-ade5-b7a6ac9448a9", + "traceId": "abbeb7976875481abede7dee1cd8b169", + "evidence": "HTTP=200, bytes=3691, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:15.798Z" + }, + { + "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": "3829 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "61e2c088-21a9-4e37-92d8-7cbe3f57e583, cd4445cc-b1d6-4720-915a-7bacd60ddc82", + "traceId": "3ede47e3b80849c28b090391bec1acc2", + "evidence": "HTTP=200, bytes=3829, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:40:15.870Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 PENDING_CONFIRMATION 状态过滤", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=PENDING_CONFIRMATION" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-170", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:40:15.893Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 PENDING_CONFIRMATION 结果状态一致", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=PENDING_CONFIRMATION" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-170", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:40:15.893Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 ACTIVE 状态过滤", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "90622ddd-171", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:40:15.923Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 ACTIVE 结果状态一致", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "90622ddd-171", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:40:15.923Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 SUPERSEDED 状态过滤", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=SUPERSEDED" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-172", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:40:15.953Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 SUPERSEDED 结果状态一致", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=SUPERSEDED" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-172", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:40:15.954Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "读取现有生效价格版本用于下载安全检查", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "90622ddd-173", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:40:15.984Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "存在可供安全下载核验的生效价格版本", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "90622ddd-173", + "traceId": null, + "evidence": "当前无 ACTIVE 价格版本,无法安全执行源文件下载核验", + "checkedAt": "2026-08-08T05:40:15.984Z" + }, + { + "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": "3f7a73be-c29a-4c91-add2-50b0d745c720, d4a99ee5-595f-44f2-b44a-d02b76995bf3", + "traceId": "7ca32d9620484736bff20c2b6b5cd942", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.027Z" + }, + { + "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": "3f7a73be-c29a-4c91-add2-50b0d745c720, d4a99ee5-595f-44f2-b44a-d02b76995bf3", + "traceId": "7ca32d9620484736bff20c2b6b5cd942", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:40:16.027Z" + }, + { + "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": "3d8d81d0-2955-43d9-9f6a-f46ea3588371, 0aee6007-8341-458b-add6-eced0504e57d", + "traceId": "9416f1dbfeb949f285c9f13c4995b3c3", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.068Z" + }, + { + "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": "3d8d81d0-2955-43d9-9f6a-f46ea3588371, 0aee6007-8341-458b-add6-eced0504e57d", + "traceId": "9416f1dbfeb949f285c9f13c4995b3c3", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:40:16.068Z" + }, + { + "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": "eb630cc3-847a-4989-a2ee-4d2fd72444a8, 1b45e099-7f13-4cab-ac53-cf59bf1be18a", + "traceId": "cb02928801b440ce90613a080588bf53", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.113Z" + }, + { + "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": "eb630cc3-847a-4989-a2ee-4d2fd72444a8, 1b45e099-7f13-4cab-ac53-cf59bf1be18a", + "traceId": "cb02928801b440ce90613a080588bf53", + "evidence": "records=5", + "checkedAt": "2026-08-08T05:40:16.113Z" + }, + { + "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": "f6936cc2-067c-4c9e-af99-c02a0228a8f7, 142d46c5-70e9-42ce-9a50-4c34f654e7ba", + "traceId": "689656a7f2344be1ab6ea2a3796d19a1", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.146Z" + }, + { + "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": "f6936cc2-067c-4c9e-af99-c02a0228a8f7, 142d46c5-70e9-42ce-9a50-4c34f654e7ba", + "traceId": "689656a7f2344be1ab6ea2a3796d19a1", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:40:16.146Z" + }, + { + "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": "d70781b9-c108-4828-8885-3f520a5c2b9a, 3e499444-1311-4501-9e8f-4f6cd928f81c", + "traceId": "6b2e5109643c4f4fa82b44786fdee0a8", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.194Z" + }, + { + "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": "d70781b9-c108-4828-8885-3f520a5c2b9a, 3e499444-1311-4501-9e8f-4f6cd928f81c", + "traceId": "6b2e5109643c4f4fa82b44786fdee0a8", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:40:16.194Z" + }, + { + "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": "c17444d4-a8f9-40c8-9f88-c23c4a50443c", + "traceId": "dc43916648bd499d8b9fa48a2bc5b6ad", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:40:16.228Z" + }, + { + "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": "ffbc2a02-5282-48ca-9fe4-0df6b5cf1e8c", + "traceId": "898bcb601dbd4a21872f0f015485eac9", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:40:16.262Z" + }, + { + "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": "90622ddd-181", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:40:16.292Z" + }, + { + "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": "8abe146a-a348-43ea-b497-5aaccefbc819, 54ac2a3b-f1ac-46ed-90f5-a0e43b2d6c96", + "traceId": "3fb743b7b1c244a198ec90dd3e620880", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.394Z" + }, + { + "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": "8abe146a-a348-43ea-b497-5aaccefbc819, 54ac2a3b-f1ac-46ed-90f5-a0e43b2d6c96", + "traceId": "3fb743b7b1c244a198ec90dd3e620880", + "evidence": "records=5, builtInField=protectedAccount", + "checkedAt": "2026-08-08T05:40:16.394Z" + }, + { + "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": "71a891b3-1215-48c4-85ae-432362c73de9, 22d7ff6b-ccbe-4a2e-8f77-6e5214aadf76", + "traceId": "228f788547784806b61fe0eddf30f1ed", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.454Z" + }, + { + "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": "71a891b3-1215-48c4-85ae-432362c73de9, 22d7ff6b-ccbe-4a2e-8f77-6e5214aadf76", + "traceId": "228f788547784806b61fe0eddf30f1ed", + "evidence": "records=15, builtInField=roleType", + "checkedAt": "2026-08-08T05:40:16.454Z" + }, + { + "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": "743e73bd-2064-49f8-88a9-3e2e706fddfb, f6fdc995-9bd9-4a2c-a9e2-ade339e9d55b", + "traceId": "fa5bec3580b74588b52061d5adde96f4", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.510Z" + }, + { + "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": "743e73bd-2064-49f8-88a9-3e2e706fddfb, f6fdc995-9bd9-4a2c-a9e2-ade339e9d55b", + "traceId": "fa5bec3580b74588b52061d5adde96f4", + "evidence": "records=136, builtInField=builtIn", + "checkedAt": "2026-08-08T05:40:16.510Z" + }, + { + "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": "90622ddd-185", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:40:16.524Z" + }, + { + "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": "68255a91-186", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:40:16.541Z" + }, + { + "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": "b759d3a6-4af4-425d-a4e3-285f6658d7f2, 5264f1b1-78d6-4665-aed9-caa6712309fe", + "traceId": "e7a0199c80a046baa6ae3efe79c412dc", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.603Z" + }, + { + "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": "c90d7632-a171-4f9e-b792-ae5d254099f3, 74a1fdd1-ac51-4958-867e-6f14030255fc", + "traceId": "8cc8d0d48ed640908f9c9e6452f39b20", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.662Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "读取隔离库位版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964286364008450?tenantId=0&warehouseId=2085964286099767298" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e1582450-681e-4010-a841-d684ab7cab56, 2e5df6e7-2d9b-4644-bb22-a6fa78d421f0", + "traceId": "84e8c7baac184161bbf696c1ed8e4098", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.698Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "更新隔离库位以推进版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085964286364008450?tenantId=0&warehouseId=2085964286099767298" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "358dfe0e-1c3a-4670-b7ee-42487703beb8, 6fe580f4-76bd-4fef-a2ad-6fd28d930cd5", + "traceId": "fa4690ff969347dc95aa7efc6f8ba78b", + "evidence": "version=0", + "checkedAt": "2026-08-08T05:40:16.758Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位旧 version PUT 返回冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085964286364008450?tenantId=0&warehouseId=2085964286099767298" + }, + "http": 200, + "code": "A0409", + "message": "库位已被其他操作修改,请刷新后重试", + "requestId": "ea87ec73-f4d2-4ac5-b0d2-683bc42d7812", + "traceId": "7d9da3a096854cbc95640670f4fddc84", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T05:40:16.808Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "冲突后回查库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964286364008450?tenantId=0&warehouseId=2085964286099767298" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d621fe73-0efe-4c1c-a9df-6f64a4813aff, a3befe8d-9bb2-46ec-8148-32e42dceb337", + "traceId": "4db8cb797ac64944b31bc0cc30a2376a", + "evidence": "", + "checkedAt": "2026-08-08T05:40:16.850Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位冲突未造成部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085964286364008450?tenantId=0&warehouseId=2085964286099767298" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d621fe73-0efe-4c1c-a9df-6f64a4813aff, a3befe8d-9bb2-46ec-8148-32e42dceb337", + "traceId": "4db8cb797ac64944b31bc0cc30a2376a", + "evidence": "name=边界库位-编辑", + "checkedAt": "2026-08-08T05:40:16.850Z" + }, + { + "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-08T05:40:16.850Z" + }, + { + "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": "8d3c04f4-16e3-47b3-acee-42ab8275c3cf, fe720183-1b02-47cc-ab9b-3614911b38df", + "traceId": "34193e2c88d54f5385e23f4ea922b652", + "evidence": "HTTP=200, code=200, bytes=0", + "checkedAt": "2026-08-08T05:40:16.895Z" + }, + { + "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": "bd5ee501-cb42-4080-aa3c-8d94019a966a, 6e3e8871-7064-4828-9dba-777fed8895f0", + "traceId": "8524bab03480471a92839d62c3772fb6", + "evidence": "HTTP=200, code=200, bytes=6", + "checkedAt": "2026-08-08T05:40:16.925Z" + }, + { + "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": "3df3bbe4-ef91-4271-96e6-4c9a40f54e3e, 6aa6011a-ceb8-4d4f-8ee5-1a4edd010021", + "traceId": "516a9a8abce74d259165001590490c75", + "evidence": "HTTP=200, code=200, bytes=27", + "checkedAt": "2026-08-08T05:40:16.959Z" + }, + { + "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": "3e256fbc-8cae-4caf-88d6-9513989c33c6, 4e922024-e880-4951-b778-694fb73793c6", + "traceId": "48df52a56fd5430ab5e08c5f64ebb7b1", + "evidence": "HTTP=200, code=200, bytes=27", + "checkedAt": "2026-08-08T05:40:17.004Z" + }, + { + "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": "S0500", + "message": "Internal server error", + "requestId": "79aa1808-1d35-4795-86c4-bdeef63517f5", + "traceId": "a5f4d8982aa14c24b87a2203589bc5b0", + "evidence": "HTTP=200, code=S0500", + "checkedAt": "2026-08-08T05:40:17.052Z" + }, + { + "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": "68255a91-198", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:40:17.082Z" + }, + { + "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": "652cbbd2-05a6-4758-a620-ada83cf2274d", + "traceId": "6283efd083924ade87b7852d12845a07", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:40:17.125Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "船期价格非法状态边界响应正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=INVALID" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "68255a91-200", + "traceId": null, + "evidence": "HTTP=503, code=missing", + "checkedAt": "2026-08-08T05:40:17.147Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "停用隔离库位以便清理", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/locations/2085964286364008450/status?tenantId=0&warehouseId=2085964286099767298" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "46fdef18-5f36-4cd5-a9c9-6e629408d1fd, 209dfbb7-8b85-4903-8de0-7b3d6f11801c", + "traceId": "42558ccd7061449e9deb92e121ca9c92", + "evidence": "", + "checkedAt": "2026-08-08T05:40:17.196Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "删除隔离库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/locations/2085964286364008450?tenantId=0&warehouseId=2085964286099767298&version=2" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "766d610c-9425-479f-a614-38cd8e98fe1d, 811f0141-523d-4f1a-929d-f19030550443", + "traceId": "3566d3eb782c4b95a7a2a62bb11f7b2e", + "evidence": "", + "checkedAt": "2026-08-08T05:40:17.242Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "停用隔离仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/warehouse-admin/2085964286099767298/status?tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "05deb1f0-9649-4370-a9d3-9210be1c03d7, 903d9d5c-503a-4f31-b6bb-7a135ca792bd", + "traceId": "7f456eddd93a46d5871b1580a8ce32db", + "evidence": "", + "checkedAt": "2026-08-08T05:40:17.285Z" + } + ] +} diff --git a/reports/admin-test-env-acceptance-isolation-final.json b/reports/admin-test-env-acceptance-isolation-final.json new file mode 100644 index 000000000..3d9e8dfe1 --- /dev/null +++ b/reports/admin-test-env-acceptance-isolation-final.json @@ -0,0 +1,4322 @@ +{ + "reportName": "后台管理测试环境 HTTP API 验收", + "marker": "ADMIN-API-20260808054406739", + "gateway": "http://8.163.30.128:9000", + "generatedAt": "2026-08-08T05:44:16.965Z", + "startedAt": "2026-08-08T05:44:06.739Z", + "success": false, + "fatal": null, + "summary": { + "total": 222, + "passed": 186, + "failed": 36 + }, + "modules": [ + { + "name": "customers", + "startedAt": "2026-08-08T05:44:07.130Z", + "finishedAt": "2026-08-08T05:44:07.240Z", + "success": false, + "passed": 1, + "failed": 2, + "fatal": "创建客户失败,后续客户模块无法继续" + }, + { + "name": "overseas-storage-fees", + "startedAt": "2026-08-08T05:44:07.241Z", + "finishedAt": "2026-08-08T05:44:07.345Z", + "success": false, + "passed": 1, + "failed": 3, + "fatal": null + }, + { + "name": "system", + "startedAt": "2026-08-08T05:44:07.346Z", + "finishedAt": "2026-08-08T05:44:09.958Z", + "success": true, + "passed": 41, + "failed": 0, + "fatal": null + }, + { + "name": "master-data", + "startedAt": "2026-08-08T05:44:09.959Z", + "finishedAt": "2026-08-08T05:44:11.207Z", + "success": true, + "passed": 42, + "failed": 0, + "fatal": null + }, + { + "name": "orders", + "startedAt": "2026-08-08T05:44:11.209Z", + "finishedAt": "2026-08-08T05:44:11.829Z", + "success": false, + "passed": 7, + "failed": 5, + "fatal": "缺少创建测试订单所需的可用渠道" + }, + { + "name": "pricing", + "startedAt": "2026-08-08T05:44:11.831Z", + "finishedAt": "2026-08-08T05:44:11.885Z", + "success": false, + "passed": 1, + "failed": 3, + "fatal": null + }, + { + "name": "downloads", + "startedAt": "2026-08-08T05:44:11.886Z", + "finishedAt": "2026-08-08T05:44:14.087Z", + "success": true, + "passed": 8, + "failed": 0, + "fatal": null + }, + { + "name": "inbound-weight-ocr", + "startedAt": "2026-08-08T05:44:14.089Z", + "finishedAt": "2026-08-08T05:44:14.148Z", + "success": false, + "passed": 0, + "failed": 1, + "fatal": null + }, + { + "name": "orders-inbound-measurement-fixture", + "startedAt": "2026-08-08T05:44:14.148Z", + "finishedAt": "2026-08-08T05:44:14.719Z", + "success": false, + "passed": 7, + "failed": 5, + "fatal": "缺少创建测试订单所需的可用渠道" + }, + { + "name": "inbound-measurement", + "startedAt": "2026-08-08T05:44:14.720Z", + "finishedAt": "2026-08-08T05:44:14.721Z", + "success": false, + "passed": 0, + "failed": 1, + "fatal": null + }, + { + "name": "supplemental", + "startedAt": "2026-08-08T05:44:14.722Z", + "finishedAt": "2026-08-08T05:44:16.313Z", + "success": false, + "passed": 64, + "failed": 10, + "fatal": null + }, + { + "name": "supplemental-boundaries", + "startedAt": "2026-08-08T05:44:16.314Z", + "finishedAt": "2026-08-08T05:44:16.965Z", + "success": false, + "passed": 13, + "failed": 6, + "fatal": null + } + ], + "scenarios": [ + { + "name": "price-book-lifecycle", + "module": "pricing", + "success": false, + "deploymentBlocked": true, + "passed": 1, + "failed": 3 + }, + { + "name": "weight-image-recognition-and-confirmation", + "module": "inbound-weight-ocr", + "success": false, + "deploymentBlocked": false, + "passed": 0, + "failed": 1 + }, + { + "name": "mojia-carton-measurement", + "module": "inbound-measurement", + "success": false, + "deploymentBlocked": true, + "passed": 0, + "failed": 1 + }, + { + "name": "admin-boundary-automation", + "module": "supplemental-boundaries", + "success": false, + "deploymentBlocked": true, + "passed": 13, + "failed": 6 + } + ], + "deploymentBlockers": [ + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "创建海外仓费用隔离客户", + "evidence": "", + "code": "S0503", + "requestId": "223078bb-7e53-423a-874d-166d68356b72", + "traceId": "84756958ee0345bfb5a622cc50e4b040" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "海外仓费用隔离客户创建并带 marker", + "evidence": "tenantId=missing", + "code": "S0503", + "requestId": "223078bb-7e53-423a-874d-166d68356b72", + "traceId": "84756958ee0345bfb5a622cc50e4b040" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "取得本轮客户 ID", + "evidence": "未找到可隔离客户,禁止使用历史客户", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "evidence": "tenantId=10001", + "code": null, + "requestId": "5dd9fad3-438", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "evidence": "types=missing", + "code": null, + "requestId": "5dd9fad3-438", + "traceId": null + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询发布前船期价格版本", + "evidence": "", + "code": null, + "requestId": "5dd9fad3-442", + "traceId": null + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "发布前最多一份生效版本", + "evidence": "versions=n/a, active=0", + "code": null, + "requestId": "5dd9fad3-442", + "traceId": null + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上传并解析船期价格表", + "evidence": "fileName=ADMIN-API-20260808054406739-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "code": null, + "requestId": "5dd9fad3-443", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "evidence": "tenantId=10001", + "code": null, + "requestId": "5d8fc7ff-453", + "traceId": null + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "evidence": "types=missing", + "code": null, + "requestId": "5d8fc7ff-453", + "traceId": null + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "取得隔离的待测量入库单", + "evidence": "orders 模块未提供 marker=ADMIN-API-20260808054406739-MOJIA 的 inboundId/tenantId;为避免修改随机历史订单,本模块停止写入", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "存在可供安全下载核验的生效价格版本", + "evidence": "当前无 ACTIVE 价格版本,无法安全执行源文件下载核验", + "code": null, + "requestId": "5d8fc7ff-489", + "traceId": null + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "托盘/库位真实占用删除保护自动化缺口", + "evidence": "当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源", + "code": null, + "requestId": null, + "traceId": null + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "船期价格非法状态边界响应正确", + "evidence": "HTTP=503, code=missing", + "code": null, + "requestId": "5dd9fad3-516", + "traceId": null + } + ], + "createdResources": { + "systemPermission": { + "id": "2085965254265262082", + "code": "platform:acceptance:808054406739" + }, + "systemRole": { + "id": "2085965254835687425", + "code": "ADMIN_ACCEPT_808054406739", + "finalStatus": "DISABLED", + "retainedBecauseAssigned": true + }, + "systemUser": { + "membershipId": "2085965256068812803", + "username": "admin_accept_808054406739", + "finalStatus": "DISABLED" + }, + "warehouse": { + "id": "2085965265314562050", + "code": "AW808054406739", + "finalStatus": "INACTIVE" + }, + "location": { + "id": "2085965265947901954", + "warehouseId": "2085965265314562050", + "deleted": false + }, + "pallet": { + "id": "2085965267004866561", + "warehouseId": "2085965265314562050", + "deleted": true + }, + "expressCompany": { + "id": "2085965267835338753", + "code": "EX808054406739", + "finalStatus": "INACTIVE" + }, + "partner": { + "id": "2085965268678393857", + "code": "PT808054406739", + "finalStatus": "INACTIVE" + }, + "exportTask": { + "id": "2085965273111265281" + }, + "orchestrationFixtures": { + "inboundMeasurement": { + "marker": "ADMIN-API-20260808054406739-MOJIA", + "failed": 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": "99b3fa96-0504-438f-ae4d-5db7fcf15de7, 27dbbdce-1621-44e0-b971-ca4c20a15a3d", + "traceId": "3aa7cd277f934fe69c6eb7f8b53ea453", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.130Z" + }, + { + "module": "customers", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16167847130" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "21f1370e-461d-46fa-af24-1a024825c565, 60bacb99-6d87-427d-8da2-2f74a75d7474", + "traceId": "2908c408b9224030842e4138a8df2f93", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T05:44:07.180Z" + }, + { + "module": "customers", + "scenario": null, + "name": "创建客户", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "S0503", + "message": "4条默认箱规尺寸初始化失败,已重试 3 次: [503] during [POST] to [http://firstleg-service/internal/firstleg/v1/customer-dimension-configs/defaults] [CustomerDimensionRuleClient#initialize(String,InitializationRequest)]: [Load balancer does not contain an instance for the service firstleg-service]", + "requestId": "0f7c2415-2853-40bb-9ca8-3edaf68cb040", + "traceId": "52c547ea35194d2ba8558dee8b5243fc", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.240Z" + }, + { + "module": "customers", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "创建客户失败,后续客户模块无法继续", + "checkedAt": "2026-08-08T05:44:07.240Z" + }, + { + "module": "overseas-storage-fees", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16167847241" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "14aef357-0bb8-4f52-a4bf-1a4632c14650, 487aba3f-00e7-48d0-b9f9-4f6424ff53b8", + "traceId": "80d8203cfe1d401f974745c3a5e4cd40", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T05:44:07.277Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "创建海外仓费用隔离客户", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "S0503", + "message": "4条默认箱规尺寸初始化失败,已重试 3 次: [503] during [POST] to [http://firstleg-service/internal/firstleg/v1/customer-dimension-configs/defaults] [CustomerDimensionRuleClient#initialize(String,InitializationRequest)]: [Load balancer does not contain an instance for the service firstleg-service]", + "requestId": "223078bb-7e53-423a-874d-166d68356b72", + "traceId": "84756958ee0345bfb5a622cc50e4b040", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.345Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "海外仓费用隔离客户创建并带 marker", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "POST", + "path": "/api/platform/v1/iam/tenants" + }, + "http": 200, + "code": "S0503", + "message": "4条默认箱规尺寸初始化失败,已重试 3 次: [503] during [POST] to [http://firstleg-service/internal/firstleg/v1/customer-dimension-configs/defaults] [CustomerDimensionRuleClient#initialize(String,InitializationRequest)]: [Load balancer does not contain an instance for the service firstleg-service]", + "requestId": "223078bb-7e53-423a-874d-166d68356b72", + "traceId": "84756958ee0345bfb5a622cc50e4b040", + "evidence": "tenantId=missing", + "checkedAt": "2026-08-08T05:44:07.345Z" + }, + { + "module": "overseas-storage-fees", + "scenario": "customer-overseas-storage-fee-lifecycle", + "name": "取得本轮客户 ID", + "passed": false, + "deploymentBlocker": true, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "未找到可隔离客户,禁止使用历史客户", + "checkedAt": "2026-08-08T05:44:07.345Z" + }, + { + "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": "2ea863b3-ec06-4607-b784-0cc5ba2c81b5, 03fec465-456a-4b29-b5a0-76f5a45456b6", + "traceId": "aa024e21a34249f7bdf8183ae5a76f36", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.390Z" + }, + { + "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": "2ea863b3-ec06-4607-b784-0cc5ba2c81b5, 03fec465-456a-4b29-b5a0-76f5a45456b6", + "traceId": "aa024e21a34249f7bdf8183ae5a76f36", + "evidence": "count=136", + "checkedAt": "2026-08-08T05:44:07.390Z" + }, + { + "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": "5b47d59a-88d3-45a9-b165-af354c118f16, b841d41e-c039-42e4-8b52-d17c427f33d8", + "traceId": "1624c5406d4e4546a9b05ee5730e32ad", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.422Z" + }, + { + "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": "5b47d59a-88d3-45a9-b165-af354c118f16, b841d41e-c039-42e4-8b52-d17c427f33d8", + "traceId": "1624c5406d4e4546a9b05ee5730e32ad", + "evidence": "permissionId=2085965254265262082", + "checkedAt": "2026-08-08T05:44:07.422Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑自定义权限资源", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085965254265262082" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fd70e7c9-5b42-4362-8829-79fbc3173567, 78dceb04-1db8-4366-9481-67c60be16cc5", + "traceId": "2266527bc7254de7bd9fa9cbac71f73c", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.455Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085965254265262082" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fd70e7c9-5b42-4362-8829-79fbc3173567, 78dceb04-1db8-4366-9481-67c60be16cc5", + "traceId": "2266527bc7254de7bd9fa9cbac71f73c", + "evidence": "permissionId=2085965254265262082", + "checkedAt": "2026-08-08T05:44:07.455Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用自定义权限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085965254265262082/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0849700a-f1b5-4f17-94b5-e5a6065a4a4a, fbfc3364-543a-4e32-bbb3-5257add4c0bb", + "traceId": "8283c77a1ff1479e8ceb4c9c51d02f83", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.486Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限状态回显 DISABLED", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085965254265262082/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0849700a-f1b5-4f17-94b5-e5a6065a4a4a, fbfc3364-543a-4e32-bbb3-5257add4c0bb", + "traceId": "8283c77a1ff1479e8ceb4c9c51d02f83", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:44:07.486Z" + }, + { + "module": "system", + "scenario": null, + "name": "启用自定义权限", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085965254265262082/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d8bb9134-8f65-4d55-912b-29b2a2fcffe2, 0a0bc124-9dd4-412f-b218-0ba3774e211d", + "traceId": "c1f162988e0546a2919c8a45efc4665a", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.518Z" + }, + { + "module": "system", + "scenario": null, + "name": "权限状态回显 ACTIVE", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/permissions/2085965254265262082/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d8bb9134-8f65-4d55-912b-29b2a2fcffe2, 0a0bc124-9dd4-412f-b218-0ba3774e211d", + "traceId": "c1f162988e0546a2919c8a45efc4665a", + "evidence": "status=ACTIVE", + "checkedAt": "2026-08-08T05:44:07.518Z" + }, + { + "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": "62b8af07-832d-4683-94c8-9a266dbe2419, 9f18c7e9-028a-41e1-90f9-080a41220d70", + "traceId": "87c8c5397a2f42adafa19d2c51fbe6e0", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.557Z" + }, + { + "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": "62b8af07-832d-4683-94c8-9a266dbe2419, 9f18c7e9-028a-41e1-90f9-080a41220d70", + "traceId": "87c8c5397a2f42adafa19d2c51fbe6e0", + "evidence": "roleId=2085965254835687425", + "checkedAt": "2026-08-08T05:44:07.557Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑平台自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085965254835687425" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6fab6073-3540-496c-8b1f-fa0da7b90cf8, d398b4c4-328a-41ea-9577-9aa8691b3bac", + "traceId": "649f4b20952d4954aaeb75be0dacf32b", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.585Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085965254835687425" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6fab6073-3540-496c-8b1f-fa0da7b90cf8, d398b4c4-328a-41ea-9577-9aa8691b3bac", + "traceId": "649f4b20952d4954aaeb75be0dacf32b", + "evidence": "roleId=2085965254835687425", + "checkedAt": "2026-08-08T05:44:07.585Z" + }, + { + "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": "2c1a6ff9-e4d2-49a2-8112-d783116e86e1, f9e9fb30-72ce-4804-99b9-445e67f5b781", + "traceId": "c1309ab551a8469cbacc5b7dae8839db", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.623Z" + }, + { + "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": "f56bdad7-7854-463c-90af-ddf76354f632, c484abbe-e575-4c0a-bc5b-25f0f1cd3687", + "traceId": "e0e6a7a4e91c49598c364909507faed0", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.659Z" + }, + { + "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": "f56bdad7-7854-463c-90af-ddf76354f632, c484abbe-e575-4c0a-bc5b-25f0f1cd3687", + "traceId": "e0e6a7a4e91c49598c364909507faed0", + "evidence": "permissionIds=2085965254265262082", + "checkedAt": "2026-08-08T05:44:07.659Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085965254835687425/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9c8a3e18-80b3-46eb-a714-23de7bc9bccd, 45633a1e-41d0-472d-8d31-179fc3337012", + "traceId": "1d57491f754f4230a25ea64c1474aaca", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.703Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色状态回显 DISABLED", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085965254835687425/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9c8a3e18-80b3-46eb-a714-23de7bc9bccd, 45633a1e-41d0-472d-8d31-179fc3337012", + "traceId": "1d57491f754f4230a25ea64c1474aaca", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:44:07.703Z" + }, + { + "module": "system", + "scenario": null, + "name": "启用自定义角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085965254835687425/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "86ae49a6-8fad-4375-86c9-9d287aa25ab7, 48fa44cd-6c65-4959-9d00-4c0c77d8df25", + "traceId": "f33c90b6c2f740f9b6d8830fd8864323", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.752Z" + }, + { + "module": "system", + "scenario": null, + "name": "角色状态回显 ACTIVE", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085965254835687425/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "86ae49a6-8fad-4375-86c9-9d287aa25ab7, 48fa44cd-6c65-4959-9d00-4c0c77d8df25", + "traceId": "f33c90b6c2f740f9b6d8830fd8864323", + "evidence": "status=ACTIVE", + "checkedAt": "2026-08-08T05:44:07.752Z" + }, + { + "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": "8b5364f2-6e48-4981-995c-31affe651922, 12d625c2-0e34-4431-9790-fda37cdebdda", + "traceId": "0cae7c65e7414e94ba39dc304aca21ef", + "evidence": "", + "checkedAt": "2026-08-08T05:44:07.788Z" + }, + { + "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": "8b5364f2-6e48-4981-995c-31affe651922, 12d625c2-0e34-4431-9790-fda37cdebdda", + "traceId": "0cae7c65e7414e94ba39dc304aca21ef", + "evidence": "tenants=1, roles=17", + "checkedAt": "2026-08-08T05:44:07.788Z" + }, + { + "module": "system", + "scenario": null, + "name": "检查测试联系电话可用性", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16167847788" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "cc271229-ca96-4223-902f-b615b4317800, 0d0ec410-35ad-4623-907b-0bac5837bda4", + "traceId": "6b802d77d4b040d08f7780af8490e971", + "evidence": "attempt=1", + "checkedAt": "2026-08-08T05:44:07.824Z" + }, + { + "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": "f5642b59-7d18-4ac8-97d4-0f7736b00296, 75792929-1111-4c8e-8e98-1c8e3bad64fd", + "traceId": "618fe53cbbbd4d8f80577631e59fa78c", + "evidence": "", + "checkedAt": "2026-08-08T05:44:08.179Z" + }, + { + "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": "f5642b59-7d18-4ac8-97d4-0f7736b00296, 75792929-1111-4c8e-8e98-1c8e3bad64fd", + "traceId": "618fe53cbbbd4d8f80577631e59fa78c", + "evidence": "membershipId=2085965256068812803", + "checkedAt": "2026-08-08T05:44:08.179Z" + }, + { + "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_808054406739" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5232b81d-75f4-4a56-99ff-dad5ff4b09ac, 668e7c37-38e8-4e7f-aea0-7eeba9fb8f33", + "traceId": "8e6511870485423b86c45db6f7d57dfe", + "evidence": "", + "checkedAt": "2026-08-08T05:44:08.221Z" + }, + { + "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_808054406739" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5232b81d-75f4-4a56-99ff-dad5ff4b09ac, 668e7c37-38e8-4e7f-aea0-7eeba9fb8f33", + "traceId": "8e6511870485423b86c45db6f7d57dfe", + "evidence": "records=1, missing=none, lastLoginAt=omitted", + "checkedAt": "2026-08-08T05:44:08.221Z" + }, + { + "module": "system", + "scenario": null, + "name": "编辑平台内部用户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085965256068812803" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "68677392-0cc5-4b78-a1e9-a9dab24c7621, f5369c7d-a40a-4b49-8496-f79f7ca60268", + "traceId": "f12629bf14224b59bfda4543b189ef32", + "evidence": "", + "checkedAt": "2026-08-08T05:44:08.368Z" + }, + { + "module": "system", + "scenario": null, + "name": "用户编辑正确回显", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085965256068812803" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "68677392-0cc5-4b78-a1e9-a9dab24c7621, f5369c7d-a40a-4b49-8496-f79f7ca60268", + "traceId": "f12629bf14224b59bfda4543b189ef32", + "evidence": "membershipId=2085965256068812803", + "checkedAt": "2026-08-08T05:44:08.368Z" + }, + { + "module": "system", + "scenario": null, + "name": "新建内部用户可使用初始密码登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "4538fe09-a32b-4898-9841-abb36fe9e17b, 5cabd7d9-224c-4a38-99c5-8f86efa2d137", + "traceId": "56218f92880541169fe60ef9bb740b03", + "evidence": "username=admin_accept_808054406739", + "checkedAt": "2026-08-08T05:44:08.705Z" + }, + { + "module": "system", + "scenario": null, + "name": "重置平台内部用户密码", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085965256068812803/password" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "780439ee-a923-4723-8014-177c1a30b2aa, 342036c8-121f-45f8-9a03-db6c8f02fcac", + "traceId": "4714e113381b4927be3858353132eedc", + "evidence": "", + "checkedAt": "2026-08-08T05:44:09.100Z" + }, + { + "module": "system", + "scenario": null, + "name": "内部用户使用重置密码登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "0f0745a0-5617-4803-9230-4d266bb87c72, 0d6b966b-50b0-427a-b45f-2ca98e44ca08", + "traceId": "3a46e2f2351e4cc08a7c02e3fe7da50f", + "evidence": "username=admin_accept_808054406739", + "checkedAt": "2026-08-08T05:44:09.458Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用平台内部用户", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085965256068812803/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e69bc48d-ba8e-4bb2-b82b-624ba1a2c20f, 2870f223-3f68-4493-82a4-2c420e65965b", + "traceId": "01ceac83c4fe47ea8205cd2033bf23e5", + "evidence": "", + "checkedAt": "2026-08-08T05:44:09.599Z" + }, + { + "module": "system", + "scenario": null, + "name": "内部用户停用状态正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/users/2085965256068812803/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e69bc48d-ba8e-4bb2-b82b-624ba1a2c20f, 2870f223-3f68-4493-82a4-2c420e65965b", + "traceId": "01ceac83c4fe47ea8205cd2033bf23e5", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:44:09.599Z" + }, + { + "module": "system", + "scenario": null, + "name": "停用用户禁止登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "A0403", + "message": "账号已禁用", + "requestId": "85bd0ff6-b4d9-4036-8fa4-cb9df476c143", + "traceId": "47d118b3309048de82f230210b064192", + "evidence": "HTTP=200, code=A0403", + "checkedAt": "2026-08-08T05:44:09.623Z" + }, + { + "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": "1baac768-0e3d-46ab-84e8-bbde0c659e91, 84efd79c-dd73-4ed0-b986-b78d44e20778", + "traceId": "4239eea2fd184cbdb58d492c81b597b5", + "evidence": "", + "checkedAt": "2026-08-08T05:44:09.751Z" + }, + { + "module": "system", + "scenario": "system-role-protection", + "name": "已分配成员的角色禁止删除", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/iam/roles/2085965254835687425" + }, + "http": 200, + "code": "A0409", + "message": "角色已分配给成员,不能删除", + "requestId": "03619d4c-3087-4d62-8f7a-dc8ecedad7ed", + "traceId": "df30fed0df7047efa6b2e1a9cc2ec802", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T05:44:09.787Z" + }, + { + "module": "system", + "scenario": null, + "name": "清理时停用测试角色", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085965254835687425/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d8ebb317-ccd6-4c26-8d55-82d88c160ebb, 088430bc-fae0-4e81-b2ec-928426bb7443", + "traceId": "2a273a275a3b4e5baeb219b0d2b0bf1f", + "evidence": "", + "checkedAt": "2026-08-08T05:44:09.924Z" + }, + { + "module": "system", + "scenario": null, + "name": "保留测试角色处于停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/iam/roles/2085965254835687425/status" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d8ebb317-ccd6-4c26-8d55-82d88c160ebb, 088430bc-fae0-4e81-b2ec-928426bb7443", + "traceId": "2a273a275a3b4e5baeb219b0d2b0bf1f", + "evidence": "status=DISABLED", + "checkedAt": "2026-08-08T05:44:09.924Z" + }, + { + "module": "system", + "scenario": null, + "name": "删除临时权限资源", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/iam/permissions/2085965254265262082" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6195fb12-753a-47ad-8085-e37c0ef5cb48, 719337ae-dba7-492c-acde-03c2f7b6427e", + "traceId": "38565b06da544e5cb78bfdbc0b144763", + "evidence": "", + "checkedAt": "2026-08-08T05:44:09.958Z" + }, + { + "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": "8714f5d9-058c-4126-8965-0d8c437960cb, a00d04e4-c3e2-4409-b3d0-72e15afcba29", + "traceId": "8e49161e382c4750a006e45b446166f3", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.013Z" + }, + { + "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": "8714f5d9-058c-4126-8965-0d8c437960cb, a00d04e4-c3e2-4409-b3d0-72e15afcba29", + "traceId": "8e49161e382c4750a006e45b446166f3", + "evidence": "total=279", + "checkedAt": "2026-08-08T05:44:10.013Z" + }, + { + "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": "49e06fbb-a198-4043-91ae-8d23893d40d3, 9f5009d7-bb64-4600-86e3-4bf23fbf3352", + "traceId": "e412203261334bb998408c5229399e28", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.063Z" + }, + { + "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": "49e06fbb-a198-4043-91ae-8d23893d40d3, 9f5009d7-bb64-4600-86e3-4bf23fbf3352", + "traceId": "e412203261334bb998408c5229399e28", + "evidence": "warehouseId=2085965265314562050", + "checkedAt": "2026-08-08T05:44:10.064Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询平台仓库详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085965265314562050?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a143bc53-01a8-4584-b5ea-0f6f36480417, 51c2bbcb-1932-4614-8b6e-46c8ec76a7f6", + "traceId": "e481d293670341a68e556785d9f9c962", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.095Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "仓库详情、地址和能力正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085965265314562050?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a143bc53-01a8-4584-b5ea-0f6f36480417, 51c2bbcb-1932-4614-8b6e-46c8ec76a7f6", + "traceId": "e481d293670341a68e556785d9f9c962", + "evidence": "addresses=1, capabilities=1", + "checkedAt": "2026-08-08T05:44:10.095Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑平台仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/warehouse-admin/2085965265314562050?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "6e0dab56-af88-4638-8242-e05b967f7387, 18fe9918-1f06-45c4-820c-ff46cbb5a02b", + "traceId": "b8d7f9a810fa44e89abd4be433d3c4b0", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.139Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的平台仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085965265314562050?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "375d3af9-5ee5-4d0a-bc44-6be38f41925b, 0f4559f7-fb67-4661-8411-f5568a87060f", + "traceId": "8b390091c8b447c3b3e24871be51fd62", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.166Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "仓库编辑已持久化", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/warehouse-admin/2085965265314562050?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "375d3af9-5ee5-4d0a-bc44-6be38f41925b, 0f4559f7-fb67-4661-8411-f5568a87060f", + "traceId": "8b390091c8b447c3b3e24871be51fd62", + "evidence": "warehouseId=2085965265314562050", + "checkedAt": "2026-08-08T05:44:10.166Z" + }, + { + "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": "bc269d0d-2ece-4c61-9d72-8cd15aabf17b, 2e51f2dd-f814-4bf5-a0ef-6341809b63cf", + "traceId": "0f2ee3ad95444b09b1f68e2181429526", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.209Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询库位详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085965265947901954?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "15ce0cf5-9cd5-4702-b9ff-7b6d9b44720e, f7c38ebf-2202-4ac1-b836-6c1f5e78667a", + "traceId": "0cab753c30af4b21ac5c58ce5a7ce751", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.248Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "库位详情关联正确仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085965265947901954?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "15ce0cf5-9cd5-4702-b9ff-7b6d9b44720e, f7c38ebf-2202-4ac1-b836-6c1f5e78667a", + "traceId": "0cab753c30af4b21ac5c58ce5a7ce751", + "evidence": "locationId=2085965265947901954", + "checkedAt": "2026-08-08T05:44:10.248Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085965265947901954?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1d4a3943-defe-4945-b937-e209bc02509c, d091982b-1c26-4a00-9472-395d2158bd02", + "traceId": "a7aad55e213e47ffafed0b50f92c4a4b", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.294Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085965265947901954?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5ee4de11-763f-4fec-af1c-3641ccfb00fb, a73807d4-1374-476f-b759-fda7064ea9b1", + "traceId": "9bb5831eb9694db384197b84db6e43de", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.326Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "库位编辑与版本递增正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085965265947901954?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "5ee4de11-763f-4fec-af1c-3641ccfb00fb, a73807d4-1374-476f-b759-fda7064ea9b1", + "traceId": "9bb5831eb9694db384197b84db6e43de", + "evidence": "version=1", + "checkedAt": "2026-08-08T05:44:10.326Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/locations/2085965265947901954/status?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "7a7ca995-67b9-4b02-8789-386999f81de2, 8d374c91-a840-4d36-8be8-30162a5afb60", + "traceId": "941367fec0ba44bf95ce3d0c996b0019", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.370Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "删除未占用测试库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/locations/2085965265947901954?tenantId=0&warehouseId=2085965265314562050&version=2" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "e7ec05b8-2c83-482b-957b-ed1e46617416, b9cc1355-2877-4e9b-bd49-375125a31523", + "traceId": "904e414e502c44babc720e689f79c8a5", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.415Z" + }, + { + "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": "3f1bc315-5be0-4d65-88c5-5163ffa92c3a, c2be4cab-da42-464a-b9da-0b9fde111b29", + "traceId": "f1bcbcda9edf4530ad326491ac5cc05d", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.462Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询托盘详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085965267004866561?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fe46c5cf-7fab-4a85-833b-5e10ce25ba5f, 93b6fb73-e508-46d5-8779-884d0917d8c4", + "traceId": "7489a60756fe48d999efc958f84450b0", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.495Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "托盘详情关联正确仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085965267004866561?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fe46c5cf-7fab-4a85-833b-5e10ce25ba5f, 93b6fb73-e508-46d5-8779-884d0917d8c4", + "traceId": "7489a60756fe48d999efc958f84450b0", + "evidence": "palletId=2085965267004866561", + "checkedAt": "2026-08-08T05:44:10.495Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/pallets/2085965267004866561?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "481c99e6-f47e-4bb9-993d-cec36bb7c9ab, 394fbd08-1e74-4a73-a5e5-4028f4bb98c8", + "traceId": "770cad8ce7354914a6d78b7c33b4ffaf", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.537Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "回查编辑后的托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085965267004866561?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d73a8258-1563-49d3-be20-24adc89cfaa4, 48aaf9db-279d-41cb-933c-27a44c3fb399", + "traceId": "2cc02929bd0c44e49e84b9a4d4c35a95", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.570Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "托盘编辑已持久化", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/pallets/2085965267004866561?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "d73a8258-1563-49d3-be20-24adc89cfaa4, 48aaf9db-279d-41cb-933c-27a44c3fb399", + "traceId": "2cc02929bd0c44e49e84b9a4d4c35a95", + "evidence": "palletId=2085965267004866561", + "checkedAt": "2026-08-08T05:44:10.570Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "删除未使用测试托盘", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/pallets/2085965267004866561?tenantId=0&warehouseId=2085965265314562050" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "73b32e0e-9405-4a77-b46d-f8da6c23737f, 79fc5842-469b-411e-98ec-e9cb3e78cef4", + "traceId": "50f03f15aa594762bc7c220bfd67dace", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.615Z" + }, + { + "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": "df42d6be-b250-4c4a-b938-2901f5d1dae8, 1c18420d-e270-4717-a862-bc833cff5f25", + "traceId": "86c8b55e4d3547428bcbe574851c14d4", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.659Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询快递公司详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies/2085965267835338753?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1effc6ed-548b-43cb-92c9-9a772cb8c72d, b794db96-1f70-4549-92c2-d66cbead01f9", + "traceId": "d4450fb4b87246799f0cf7f1a6324e86", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.700Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "快递公司详情正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies/2085965267835338753?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1effc6ed-548b-43cb-92c9-9a772cb8c72d, b794db96-1f70-4549-92c2-d66cbead01f9", + "traceId": "d4450fb4b87246799f0cf7f1a6324e86", + "evidence": "expressId=2085965267835338753", + "checkedAt": "2026-08-08T05:44:10.700Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑快递公司", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/express-companies/2085965267835338753?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "3e0e3ba3-8a10-4eff-a56a-4c11fb297b61, fc8e7ac4-8257-47e9-9629-604751a23fb6", + "traceId": "f01bf961c2fe442ca6a1eb70f9fcfc62", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.737Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用快递公司", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/express-companies/2085965267835338753/status?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "373617d4-50ba-477f-9c6f-f3f1d90796a7, aa6425f1-7d8c-4c41-b560-0da4980b5987", + "traceId": "c7f13915c54244818af5e1ef061d981b", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.782Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "筛选快递公司列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=20&keyword=EX808054406739" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f10206bf-0990-4c1f-9cdb-4ca71fa08d0b, 0708532a-b6f5-416d-9b84-625961829dfb", + "traceId": "7838237265a44691bdc2e0ba39c10605", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.825Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "快递公司列表回显停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/express-companies?page=1&size=20&keyword=EX808054406739" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "f10206bf-0990-4c1f-9cdb-4ca71fa08d0b, 0708532a-b6f5-416d-9b84-625961829dfb", + "traceId": "7838237265a44691bdc2e0ba39c10605", + "evidence": "records=1", + "checkedAt": "2026-08-08T05:44:10.826Z" + }, + { + "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": "2e6379e1-a62c-4e1e-bfa3-dd19528e5787, 34bebb51-1646-4015-b84a-187be9f2145d", + "traceId": "c8a86d94523c4bf9b6603436d03b8240", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.860Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "查询往来单位详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners/2085965268678393857?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1fd51695-63eb-4bfb-88d2-b4b57be04aec, b5286eef-ae6f-425a-bbb2-68aea3923f3c", + "traceId": "34762102488d47e1894a80323e5eabae", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.886Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "往来单位详情正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners/2085965268678393857?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1fd51695-63eb-4bfb-88d2-b4b57be04aec, b5286eef-ae6f-425a-bbb2-68aea3923f3c", + "traceId": "34762102488d47e1894a80323e5eabae", + "evidence": "partnerId=2085965268678393857", + "checkedAt": "2026-08-08T05:44:10.886Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "编辑往来单位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/partners/2085965268678393857?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "fdeb6943-714b-4a83-992b-94050dc065c1, f64379fc-602e-4cd1-80df-9aa43267f937", + "traceId": "d3d7601e859e4a39bbb1b83bfa972d97", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.927Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用往来单位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/partners/2085965268678393857/status?tenantId=0" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "1a4fc110-c627-4ea9-989f-47cf18b68425, 71002ad7-e8b5-49bd-8ad5-9c8d6abc1c51", + "traceId": "da7e74db180842bd94a6e1e0eec703c7", + "evidence": "", + "checkedAt": "2026-08-08T05:44:10.973Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "筛选往来单位列表", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=20&keyword=PT808054406739" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c4d9937b-c6b2-42a8-9f4b-35e42e3ac598, 5e95ed3d-03a8-44d2-a952-ba72c51a2780", + "traceId": "8615b623eeff4fbeae2a6d7c5ae7c314", + "evidence": "", + "checkedAt": "2026-08-08T05:44:11.014Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "往来单位列表回显编辑与停用状态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/partners?page=1&size=20&keyword=PT808054406739" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "c4d9937b-c6b2-42a8-9f4b-35e42e3ac598, 5e95ed3d-03a8-44d2-a952-ba72c51a2780", + "traceId": "8615b623eeff4fbeae2a6d7c5ae7c314", + "evidence": "records=1", + "checkedAt": "2026-08-08T05:44:11.014Z" + }, + { + "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": "5e9aead7-5b02-4f32-b80c-eb7a06423923, 14e1733c-710b-461f-b51f-7dacdf99638c", + "traceId": "219b72060c354bd8a32f3b1ff62b50d8", + "evidence": "bytes=3852, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:44:11.069Z" + }, + { + "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": "31a01ef2-5a0b-4a83-b19f-6d211765a434, 05f772a1-3da3-4f11-963c-b20f11bb8a1d", + "traceId": "1f20ae131f0d46668494096301cd9ac0", + "evidence": "bytes=3691, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:44:11.122Z" + }, + { + "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": "c37e1128-71ef-4b86-b352-eaff743454e1, 22b6c469-c739-44b3-9bb4-ae2ac25b993e", + "traceId": "69f0677638ff48a487ee180413cbd9b0", + "evidence": "bytes=3829, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:44:11.160Z" + }, + { + "module": "master-data", + "scenario": null, + "name": "停用测试仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/warehouse-admin/2085965265314562050/status?tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "34bc6c55-9331-43d4-8fc6-db8797931f45, 6db18669-4c22-45a6-9d3a-431aecc14009", + "traceId": "04a19e7c3c2848eaa06668805e264e2f", + "evidence": "", + "checkedAt": "2026-08-08T05:44:11.207Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试账号登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "336329a5-6ab7-4b38-a7ad-c133606f8265, 166aaa02-0ef4-4992-b712-cb54c9e77677", + "traceId": "391b32f09a014f8d83b3eb015539f7fc", + "evidence": "username=merchant_admin", + "checkedAt": "2026-08-08T05:44:11.647Z" + }, + { + "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": "0525c966-7af4-414d-86fe-e7a77ff911b5, 6c10841d-15ac-4ccb-bbd3-e5f79887de46", + "traceId": "5311fbe07c5b4cda9f7736a4d7ad75d3", + "evidence": "", + "checkedAt": "2026-08-08T05:44:11.682Z" + }, + { + "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": "0525c966-7af4-414d-86fe-e7a77ff911b5, 6c10841d-15ac-4ccb-bbd3-e5f79887de46", + "traceId": "5311fbe07c5b4cda9f7736a4d7ad75d3", + "evidence": "tenantId=10001, status=ACTIVE", + "checkedAt": "2026-08-08T05:44:11.682Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-438", + "traceId": null, + "evidence": "tenantId=10001", + "checkedAt": "2026-08-08T05:44:11.705Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-438", + "traceId": null, + "evidence": "types=missing", + "checkedAt": "2026-08-08T05:44:11.705Z" + }, + { + "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": "344de139-4ea3-4488-9d06-4a1b2f408c5b, d0baeb36-35c2-4200-96ea-cec70d44c840", + "traceId": "b1d8683b43324515b458d216b6512948", + "evidence": "", + "checkedAt": "2026-08-08T05:44:11.745Z" + }, + { + "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": "344de139-4ea3-4488-9d06-4a1b2f408c5b, d0baeb36-35c2-4200-96ea-cec70d44c840", + "traceId": "b1d8683b43324515b458d216b6512948", + "evidence": "count=2", + "checkedAt": "2026-08-08T05:44:11.745Z" + }, + { + "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": "c2863a16-ab20-435b-8df6-6dc39000fa2d, 3a7b6b95-2669-45c9-b7b4-d9eb6d9564cb", + "traceId": "9c1afa51d9b6438b9d78101bace0b56a", + "evidence": "", + "checkedAt": "2026-08-08T05:44:11.798Z" + }, + { + "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": "c2863a16-ab20-435b-8df6-6dc39000fa2d, 3a7b6b95-2669-45c9-b7b4-d9eb6d9564cb", + "traceId": "9c1afa51d9b6438b9d78101bace0b56a", + "evidence": "count=200", + "checkedAt": "2026-08-08T05:44:11.799Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询可用计费渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5d8fc7ff-441", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:44:11.829Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在带计价税制的可用渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5d8fc7ff-441", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:44:11.829Z" + }, + { + "module": "orders", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "缺少创建测试订单所需的可用渠道", + "checkedAt": "2026-08-08T05:44:11.829Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "查询发布前船期价格版本", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-442", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:44:11.860Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "发布前最多一份生效版本", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-442", + "traceId": null, + "evidence": "versions=n/a, active=0", + "checkedAt": "2026-08-08T05:44:11.860Z" + }, + { + "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-20260808054406739-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "checkedAt": "2026-08-08T05:44:11.863Z" + }, + { + "module": "pricing", + "scenario": "price-book-lifecycle", + "name": "上传并解析船期价格表", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "POST", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-443", + "traceId": null, + "evidence": "fileName=ADMIN-API-20260808054406739-2026.08.03柏悦价格表 船期2026.08.12.xlsx, bytes=1343413, sha256=3170fd3aa8795cd816ca9600f87a6a2a06b15d0cf6042d4592f33d4b30c7b8ab", + "checkedAt": "2026-08-08T05:44:11.885Z" + }, + { + "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": "eef3eb2f-804e-40af-9494-e1976b2ec936, f65d4c9c-b593-46d2-a218-875e346cd341", + "traceId": "652d85266c7d419b9d038119894fded1", + "evidence": "", + "checkedAt": "2026-08-08T05:44:11.923Z" + }, + { + "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": "eef3eb2f-804e-40af-9494-e1976b2ec936, f65d4c9c-b593-46d2-a218-875e346cd341", + "traceId": "652d85266c7d419b9d038119894fded1", + "evidence": "taskId=2085965273111265281, status=PENDING", + "checkedAt": "2026-08-08T05:44:11.923Z" + }, + { + "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": "da0db5e9-eff2-4d55-b0eb-c5b0d9f92aa8, eb00201f-aabb-4762-8784-19480745f6c0", + "traceId": "8d34c8336e34499d8bba37baa38338ca", + "evidence": "", + "checkedAt": "2026-08-08T05:44:11.969Z" + }, + { + "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": "da0db5e9-eff2-4d55-b0eb-c5b0d9f92aa8, eb00201f-aabb-4762-8784-19480745f6c0", + "traceId": "8d34c8336e34499d8bba37baa38338ca", + "evidence": "records=13", + "checkedAt": "2026-08-08T05:44:11.969Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "轮询导出任务直到终态", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085965273111265281" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "045803ba-cbde-41d7-aa1e-a87e30256eae, 4f3207b2-0798-4a36-b509-4036aa5931a9", + "traceId": "7fcc7aeb112142a699de92db3bc214a0", + "evidence": "status=SUCCEEDED, processedRows=0", + "checkedAt": "2026-08-08T05:44:14.017Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "查询导出任务详情", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085965273111265281" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "bd926727-162a-454f-a555-c4473f7c6815, e5bc6814-d412-4884-ab20-fd6e8d742967", + "traceId": "6661a6d28ab140afb4392f6216f33bf5", + "evidence": "", + "checkedAt": "2026-08-08T05:44:14.043Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "导出详情行数和文件元数据正确", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085965273111265281" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "bd926727-162a-454f-a555-c4473f7c6815, e5bc6814-d412-4884-ab20-fd6e8d742967", + "traceId": "6661a6d28ab140afb4392f6216f33bf5", + "evidence": "processedRows=0, sizeBytes=4067", + "checkedAt": "2026-08-08T05:44:14.043Z" + }, + { + "module": "downloads", + "scenario": null, + "name": "下载并校验客户列表 XLSX", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/files/export-tasks/2085965273111265281/download" + }, + "http": 200, + "code": null, + "message": "4067 bytes (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)", + "requestId": "7e194668-5414-47df-a5fb-3a48dc3a8f39, a384ec22-2e2a-410c-8970-f95607e1746b", + "traceId": "2dd53ab3f939459eb381d7b0bed53dc8", + "evidence": "bytes=4067, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:44:14.087Z" + }, + { + "module": "inbound-weight-ocr", + "scenario": "weight-image-recognition-and-confirmation", + "name": "仅选择带本轮测试标记的可编辑入库单", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "marker=ADMIN-API-20260808054406739, 未找到本轮创建且状态为 WAIT_MEASURE/MEASURING/MEASURE_REJECTED 的入库单", + "checkedAt": "2026-08-08T05:44:14.148Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 测试账号登录", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "POST", + "path": "/api/auth/login" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "ed9dec6a-73e3-4a35-869f-144d82b9445c, 708b7e03-6266-440b-87d5-08332139ccc4", + "traceId": "8685734374f546c98cedd9d4304d4042", + "evidence": "username=merchant_admin", + "checkedAt": "2026-08-08T05:44:14.518Z" + }, + { + "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": "66d59ab8-3ec0-44bc-9539-29066d6b5f03, aa0c83fd-2ba5-40db-973e-edc4bcfabd3b", + "traceId": "abd3319271c04dc8840a953a7e23b415", + "evidence": "", + "checkedAt": "2026-08-08T05:44:14.565Z" + }, + { + "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": "66d59ab8-3ec0-44bc-9539-29066d6b5f03, aa0c83fd-2ba5-40db-973e-edc4bcfabd3b", + "traceId": "abd3319271c04dc8840a953a7e23b415", + "evidence": "tenantId=10001, status=ACTIVE", + "checkedAt": "2026-08-08T05:44:14.565Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "Admin 查询客户固定箱型", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5d8fc7ff-453", + "traceId": null, + "evidence": "tenantId=10001", + "checkedAt": "2026-08-08T05:44:14.600Z" + }, + { + "module": "orders", + "scenario": "isolated-order-chain", + "name": "固定四箱型顺序、内径及每边加2cm正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/customer-dimension-config?tenantId=10001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5d8fc7ff-453", + "traceId": null, + "evidence": "types=missing", + "checkedAt": "2026-08-08T05:44:14.600Z" + }, + { + "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": "a3edd875-9dff-492f-a298-0b4af1417d30, 95dabd4d-1435-48c1-9340-fd3a05ef7761", + "traceId": "6d67a68ddcaa411d9194e84e60297bca", + "evidence": "", + "checkedAt": "2026-08-08T05:44:14.638Z" + }, + { + "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": "a3edd875-9dff-492f-a298-0b4af1417d30, 95dabd4d-1435-48c1-9340-fd3a05ef7761", + "traceId": "6d67a68ddcaa411d9194e84e60297bca", + "evidence": "count=2", + "checkedAt": "2026-08-08T05:44:14.638Z" + }, + { + "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": "fe2039ac-ff03-4963-bf32-74079abeeee1, 9dad239d-a8f9-45cc-992c-d6a69df3c8b3", + "traceId": "0add5da860f44c1cb44d6284280a6ae1", + "evidence": "", + "checkedAt": "2026-08-08T05:44:14.698Z" + }, + { + "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": "fe2039ac-ff03-4963-bf32-74079abeeee1, 9dad239d-a8f9-45cc-992c-d6a69df3c8b3", + "traceId": "0add5da860f44c1cb44d6284280a6ae1", + "evidence": "count=200", + "checkedAt": "2026-08-08T05:44:14.698Z" + }, + { + "module": "orders", + "scenario": null, + "name": "Client 查询可用计费渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-456", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:44:14.719Z" + }, + { + "module": "orders", + "scenario": null, + "name": "存在带计价税制的可用渠道", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=193000000000200001" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-456", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:44:14.719Z" + }, + { + "module": "orders-inbound-measurement-fixture", + "scenario": null, + "name": "模块执行", + "passed": false, + "deploymentBlocker": false, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "缺少创建测试订单所需的可用渠道", + "checkedAt": "2026-08-08T05:44:14.719Z" + }, + { + "module": "inbound-measurement", + "scenario": "mojia-carton-measurement", + "name": "取得隔离的待测量入库单", + "passed": false, + "deploymentBlocker": true, + "request": null, + "http": null, + "code": null, + "message": null, + "requestId": null, + "traceId": null, + "evidence": "orders 模块未提供 marker=ADMIN-API-20260808054406739-MOJIA 的 inboundId/tenantId;为避免修改随机历史订单,本模块停止写入", + "checkedAt": "2026-08-08T05:44:14.721Z" + }, + { + "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": "b191827d-317e-418c-ad97-19877a8daaf1, a43896f0-7901-4d4c-ab96-0f3d6f3effd0", + "traceId": "251921b31e6245d8904f4ebbf34cd839", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T05:44:14.758Z" + }, + { + "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": "b191827d-317e-418c-ad97-19877a8daaf1, a43896f0-7901-4d4c-ab96-0f3d6f3effd0", + "traceId": "251921b31e6245d8904f4ebbf34cd839", + "evidence": "service=order-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T05:44:14.758Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "firstleg-service 状态响应使用统一成功体", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/status" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-458", + "traceId": null, + "evidence": "HTTP=503, code=missing", + "checkedAt": "2026-08-08T05:44:14.775Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "firstleg-service 状态字段完整且 readiness 语义明确", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/first-leg/status" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-458", + "traceId": null, + "evidence": "service=missing, status=missing, readiness=invalid", + "checkedAt": "2026-08-08T05:44:14.775Z" + }, + { + "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": "d4f3da7f-e3cf-4978-91b3-39d87fc81b3c, 9613d21d-a716-4ee7-b5e3-ea8e4f7e244c", + "traceId": "3cbe03a6b4c344e48beca03af256bd54", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T05:44:14.804Z" + }, + { + "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": "d4f3da7f-e3cf-4978-91b3-39d87fc81b3c, 9613d21d-a716-4ee7-b5e3-ea8e4f7e244c", + "traceId": "3cbe03a6b4c344e48beca03af256bd54", + "evidence": "service=file-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T05:44:14.804Z" + }, + { + "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": "349eee8d-1e0f-45cb-85d1-584631c28ab8, d0e70bd2-335d-44da-8b20-df5e038a859a", + "traceId": "d37192c2f2824bc8aab34452b9f681e3", + "evidence": "HTTP=200, code=200", + "checkedAt": "2026-08-08T05:44:14.838Z" + }, + { + "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": "349eee8d-1e0f-45cb-85d1-584631c28ab8, d0e70bd2-335d-44da-8b20-df5e038a859a", + "traceId": "d37192c2f2824bc8aab34452b9f681e3", + "evidence": "service=warehouse-service, status=UP, readiness=UP", + "checkedAt": "2026-08-08T05:44:14.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": "5d8fc7ff-461", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:44:14.855Z" + }, + { + "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": "5dd9fad3-462", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:44:14.885Z" + }, + { + "module": "supplemental", + "scenario": null, + "name": "未认证请求不返回业务成功码", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/orders/status" + }, + "http": 401, + "code": "A0401", + "message": "未登录或令牌已失效", + "requestId": "5d8fc7ff-463", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:44:14.916Z" + }, + { + "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": "dd3202bd-564b-4900-b134-93d4e596b619, 04039889-e264-466c-820f-12b295f27496", + "traceId": "e800e0dfc7234e07bc91c8745d51e533", + "evidence": "path=/api/platform/v1/warehouse-admin?page=1&size=5&status=ACTIVE", + "checkedAt": "2026-08-08T05:44:14.948Z" + }, + { + "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": "dd3202bd-564b-4900-b134-93d4e596b619, 04039889-e264-466c-820f-12b295f27496", + "traceId": "e800e0dfc7234e07bc91c8745d51e533", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:44:14.949Z" + }, + { + "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": "1bd2115a-f4c2-4963-a870-3cb22dcb978b, 35f64e03-5bca-4736-b241-49b571143b96", + "traceId": "1610ea4304f64a48802860bce8c5641e", + "evidence": "path=/api/platform/v1/warehouse-admin?page=1&size=5&tenantId=0&warehouseType=FBA", + "checkedAt": "2026-08-08T05:44:14.990Z" + }, + { + "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": "1bd2115a-f4c2-4963-a870-3cb22dcb978b, 35f64e03-5bca-4736-b241-49b571143b96", + "traceId": "1610ea4304f64a48802860bce8c5641e", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:44:14.990Z" + }, + { + "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": "e087b51c-35d7-4f9e-8395-5ccf98399162", + "traceId": "2538ad704f644255b0ad7cffcf972a16", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:44:15.016Z" + }, + { + "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": "ef7c1168-f8fa-4c8e-9253-594514b527b0", + "traceId": "c0f6b2a383ef47a7afa3043910a77c3d", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T05:44:15.045Z" + }, + { + "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": "433a2d57-0c30-4213-97f6-a77f3c9a9f11, a78e460a-583d-466b-8018-fff048fa86f9", + "traceId": "03f6e2074c7b4f379c787c13b56927b9", + "evidence": "path=/api/platform/v1/locations?page=1&size=5&tenantId=0", + "checkedAt": "2026-08-08T05:44:15.085Z" + }, + { + "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": "433a2d57-0c30-4213-97f6-a77f3c9a9f11, a78e460a-583d-466b-8018-fff048fa86f9", + "traceId": "03f6e2074c7b4f379c787c13b56927b9", + "evidence": "records=3, current=1, size=5", + "checkedAt": "2026-08-08T05:44:15.085Z" + }, + { + "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": "95880ee5-f206-4844-9fcb-3f351722f729, 459c235c-6be7-4c8d-892d-2df02c7ac535", + "traceId": "2b8129f5e2c74fb18e31e89e2169ed66", + "evidence": "path=/api/platform/v1/pallets?page=1&size=5&tenantId=0", + "checkedAt": "2026-08-08T05:44:15.114Z" + }, + { + "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": "95880ee5-f206-4844-9fcb-3f351722f729, 459c235c-6be7-4c8d-892d-2df02c7ac535", + "traceId": "2b8129f5e2c74fb18e31e89e2169ed66", + "evidence": "records=3, current=1, size=5", + "checkedAt": "2026-08-08T05:44:15.114Z" + }, + { + "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": "8bf1a1c9-f6cc-4c9a-a9ea-857e05027368, 4c75226a-dad8-4e83-9e6d-992a5b0e9107", + "traceId": "94d9b5f3cf464e41abdd26cbbf3e5a18", + "evidence": "path=/api/platform/v1/locations?page=1&size=5&tenantId=0&warehouseId=193000000000000001", + "checkedAt": "2026-08-08T05:44:15.142Z" + }, + { + "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": "8bf1a1c9-f6cc-4c9a-a9ea-857e05027368, 4c75226a-dad8-4e83-9e6d-992a5b0e9107", + "traceId": "94d9b5f3cf464e41abdd26cbbf3e5a18", + "evidence": "records=0, current=1, size=5", + "checkedAt": "2026-08-08T05:44:15.142Z" + }, + { + "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": "67fee3ed-c2e7-4e34-a68b-c8bcb241d52a, faa3ddf1-1828-4e5a-ae8f-1a7326acada0", + "traceId": "ded9ac8b227d4706bf2e90d4fb4c44fc", + "evidence": "path=/api/platform/v1/pallets?page=1&size=5&tenantId=0&warehouseId=193000000000000001", + "checkedAt": "2026-08-08T05:44:15.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": "67fee3ed-c2e7-4e34-a68b-c8bcb241d52a, faa3ddf1-1828-4e5a-ae8f-1a7326acada0", + "traceId": "ded9ac8b227d4706bf2e90d4fb4c44fc", + "evidence": "records=0, current=1, size=5", + "checkedAt": "2026-08-08T05:44:15.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": "32cafe62-a689-46bf-b8e9-e085b17e6112", + "traceId": "fb3de05dc96f4211a48e163280c443d2", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T05:44:15.200Z" + }, + { + "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": "0139d382-3988-414c-b04c-8263f823aa74", + "traceId": "3d93bf33059745ca8a86c25bfee33a01", + "evidence": "HTTP=200, code=A0400", + "checkedAt": "2026-08-08T05:44:15.235Z" + }, + { + "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": "ce0c4161-a10b-4e44-9645-b37e8fe7d507", + "traceId": "1b8273ce8c084f22a8c99a21c4aefbe4", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:44:15.265Z" + }, + { + "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": "e2a80281-e7c2-47e3-9a66-1a50bffefb47", + "traceId": "40d2504e0c9a44f29e522dbc653d9543", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:44:15.297Z" + }, + { + "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": "dadab981-b0e9-4744-9d08-50613c82395a", + "traceId": "5965a3bf82504da4a743be4597c53a5e", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:44:15.329Z" + }, + { + "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": "20c867ff-e52c-420f-9709-c4c173c43d5b, fa77261e-91b0-4399-a6ce-08f6250081f1", + "traceId": "c4aeeaf4c36644579580fb4beee31dfe", + "evidence": "path=/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=ACTIVE", + "checkedAt": "2026-08-08T05:44:15.365Z" + }, + { + "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": "20c867ff-e52c-420f-9709-c4c173c43d5b, fa77261e-91b0-4399-a6ce-08f6250081f1", + "traceId": "c4aeeaf4c36644579580fb4beee31dfe", + "evidence": "records=4, current=1, size=5", + "checkedAt": "2026-08-08T05:44:15.365Z" + }, + { + "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": "5cf741fa-aeaf-4f0f-a740-ac6b173e0e4e, bfccaa3b-7fc3-4fbd-81f4-b5b8fb2fbe05", + "traceId": "f29468181b8542339ef797ca4f208fb6", + "evidence": "path=/api/platform/v1/express-companies?page=1&size=5&tenantId=0&status=INACTIVE", + "checkedAt": "2026-08-08T05:44:15.395Z" + }, + { + "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": "5cf741fa-aeaf-4f0f-a740-ac6b173e0e4e, bfccaa3b-7fc3-4fbd-81f4-b5b8fb2fbe05", + "traceId": "f29468181b8542339ef797ca4f208fb6", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:44:15.395Z" + }, + { + "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": "5cf741fa-aeaf-4f0f-a740-ac6b173e0e4e, bfccaa3b-7fc3-4fbd-81f4-b5b8fb2fbe05", + "traceId": "f29468181b8542339ef797ca4f208fb6", + "evidence": "records=5", + "checkedAt": "2026-08-08T05:44:15.395Z" + }, + { + "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": "4973a3a0-cf62-4088-8daf-3fe66a12c66e", + "traceId": "1cd17d749dd44aa0894af7aa2b933b4b", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:44:15.421Z" + }, + { + "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": "49e1aef8-280e-4f24-9aa6-15eba1125ad9, 981ca394-5c24-4893-b53c-a14191966895", + "traceId": "6074bfb919df4930ad0cfb485d616c08", + "evidence": "path=/api/platform/v1/partners?page=1&size=5&tenantId=0&status=ACTIVE", + "checkedAt": "2026-08-08T05:44:15.461Z" + }, + { + "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": "49e1aef8-280e-4f24-9aa6-15eba1125ad9, 981ca394-5c24-4893-b53c-a14191966895", + "traceId": "6074bfb919df4930ad0cfb485d616c08", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:44:15.461Z" + }, + { + "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": "581e5659-84a0-4bad-bac3-e68782700340, e5b2b18c-2961-4947-9498-7c953eebdf94", + "traceId": "cbce0132b67e4756bcea2d8c6e77c682", + "evidence": "path=/api/platform/v1/partners?page=1&size=5&tenantId=0&status=INACTIVE", + "checkedAt": "2026-08-08T05:44:15.508Z" + }, + { + "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": "581e5659-84a0-4bad-bac3-e68782700340, e5b2b18c-2961-4947-9498-7c953eebdf94", + "traceId": "cbce0132b67e4756bcea2d8c6e77c682", + "evidence": "records=5, current=1, size=5", + "checkedAt": "2026-08-08T05:44:15.508Z" + }, + { + "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": "581e5659-84a0-4bad-bac3-e68782700340, e5b2b18c-2961-4947-9498-7c953eebdf94", + "traceId": "cbce0132b67e4756bcea2d8c6e77c682", + "evidence": "records=5", + "checkedAt": "2026-08-08T05:44:15.508Z" + }, + { + "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": "2194db9c-1e93-44e9-b463-69f4d1ee9ba7", + "traceId": "6a752c0ef4614a7487daf1f3257302dc", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:44:15.547Z" + }, + { + "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": "cf2524e5-25f7-4ece-8ce7-ec043af95149, 3c35a592-898f-46d1-8b2c-c152093d702e", + "traceId": "08b2df5098794d958fcef01187580279", + "evidence": "HTTP=200, bytes=3853, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:44:15.601Z" + }, + { + "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": "4c5dc72c-c15f-4646-bc50-26663a793c88, 2b7ed89a-8c17-47d0-9fb3-e5130ecb2d75", + "traceId": "15ed56c0f771434aa2be75634bc6a459", + "evidence": "HTTP=200, bytes=3692, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:44:15.666Z" + }, + { + "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": "ffde2563-b0a4-4ab2-b0a6-c48ccdff3f3f, f6e54d48-e6b0-4003-ac6f-b946c5734976", + "traceId": "7eb75a828ffe49978224f90dcc2a9d01", + "evidence": "HTTP=200, bytes=3830, contentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "checkedAt": "2026-08-08T05:44:15.715Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 PENDING_CONFIRMATION 状态过滤", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=PENDING_CONFIRMATION" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-486", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:44:15.740Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 PENDING_CONFIRMATION 结果状态一致", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=PENDING_CONFIRMATION" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-486", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:44:15.740Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 ACTIVE 状态过滤", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5d8fc7ff-487", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:44:15.771Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 ACTIVE 结果状态一致", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5d8fc7ff-487", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:44:15.772Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 SUPERSEDED 状态过滤", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=SUPERSEDED" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-488", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:44:15.800Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "船期价格表 SUPERSEDED 结果状态一致", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=SUPERSEDED" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-488", + "traceId": null, + "evidence": "count=n/a", + "checkedAt": "2026-08-08T05:44:15.800Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "读取现有生效价格版本用于下载安全检查", + "passed": false, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5d8fc7ff-489", + "traceId": null, + "evidence": "", + "checkedAt": "2026-08-08T05:44:15.838Z" + }, + { + "module": "supplemental", + "scenario": "price-book-readonly", + "name": "存在可供安全下载核验的生效价格版本", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=ACTIVE" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5d8fc7ff-489", + "traceId": null, + "evidence": "当前无 ACTIVE 价格版本,无法安全执行源文件下载核验", + "checkedAt": "2026-08-08T05:44:15.838Z" + }, + { + "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": "b95f39b7-2473-4cda-bec2-d6ee7b87546b, 597cc14f-2c8a-4b76-9c13-25a6afe16d0e", + "traceId": "d7aed03dc3a14ac594055379a157f9a9", + "evidence": "", + "checkedAt": "2026-08-08T05:44:15.876Z" + }, + { + "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": "b95f39b7-2473-4cda-bec2-d6ee7b87546b, 597cc14f-2c8a-4b76-9c13-25a6afe16d0e", + "traceId": "d7aed03dc3a14ac594055379a157f9a9", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:44:15.876Z" + }, + { + "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": "a9658a85-9404-45da-887f-95845777c027, 4b428349-fa34-44f4-801a-451a70efd11e", + "traceId": "166c63ae546347d29e0881b79a4e00ae", + "evidence": "", + "checkedAt": "2026-08-08T05:44:15.906Z" + }, + { + "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": "a9658a85-9404-45da-887f-95845777c027, 4b428349-fa34-44f4-801a-451a70efd11e", + "traceId": "166c63ae546347d29e0881b79a4e00ae", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:44:15.906Z" + }, + { + "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": "4f1eb557-177f-4b3a-87e1-328daef14456, 7819fac8-2797-4763-b038-b5c41909381c", + "traceId": "cc96b4b702a84b4c83d94b975e356012", + "evidence": "", + "checkedAt": "2026-08-08T05:44:15.943Z" + }, + { + "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": "4f1eb557-177f-4b3a-87e1-328daef14456, 7819fac8-2797-4763-b038-b5c41909381c", + "traceId": "cc96b4b702a84b4c83d94b975e356012", + "evidence": "records=5", + "checkedAt": "2026-08-08T05:44:15.943Z" + }, + { + "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": "48c1a5ab-d994-465f-9a39-fe9c4d8286f1, bb65d2b2-89a2-4e79-a8ad-ffc526b9b86c", + "traceId": "247ae204d9d14c23adc87b518bd0ac8b", + "evidence": "", + "checkedAt": "2026-08-08T05:44:15.986Z" + }, + { + "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": "48c1a5ab-d994-465f-9a39-fe9c4d8286f1, bb65d2b2-89a2-4e79-a8ad-ffc526b9b86c", + "traceId": "247ae204d9d14c23adc87b518bd0ac8b", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:44:15.987Z" + }, + { + "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": "9b586e5c-e7d1-4e60-a82b-6f778f2f086f, cef96f8f-51f8-4c31-9d73-0ffebf871e77", + "traceId": "edafdd8d7333478b8f844365a135a6a8", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.018Z" + }, + { + "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": "9b586e5c-e7d1-4e60-a82b-6f778f2f086f, cef96f8f-51f8-4c31-9d73-0ffebf871e77", + "traceId": "edafdd8d7333478b8f844365a135a6a8", + "evidence": "records=0", + "checkedAt": "2026-08-08T05:44:16.018Z" + }, + { + "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": "eaf966d0-b0ee-4c59-9509-c79a3007dfeb", + "traceId": "3ffa16eec2994b7d9c24a943ab0cfa2d", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:44:16.060Z" + }, + { + "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": "19954db3-e272-4290-bb07-38851ef1b034", + "traceId": "1b0f11f8de244e49960bb795f5bd558b", + "evidence": "HTTP=200, code=A0404", + "checkedAt": "2026-08-08T05:44:16.090Z" + }, + { + "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": "5d8fc7ff-497", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:44:16.111Z" + }, + { + "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": "c0081864-f056-409d-b66e-3d5e101efff5, aff4bd97-268c-45e1-a2e5-668a81e7b2d6", + "traceId": "1e2579171fad453197bbf86975c9cd93", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.178Z" + }, + { + "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": "c0081864-f056-409d-b66e-3d5e101efff5, aff4bd97-268c-45e1-a2e5-668a81e7b2d6", + "traceId": "1e2579171fad453197bbf86975c9cd93", + "evidence": "records=5, builtInField=protectedAccount", + "checkedAt": "2026-08-08T05:44:16.178Z" + }, + { + "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": "a4e830d8-88ca-4c2a-9e9a-2e33a323f79a, 236355c6-9920-40fe-99f4-103518f8378f", + "traceId": "7654fd60658a49a4ba6f8891c9939aee", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.229Z" + }, + { + "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": "a4e830d8-88ca-4c2a-9e9a-2e33a323f79a, 236355c6-9920-40fe-99f4-103518f8378f", + "traceId": "7654fd60658a49a4ba6f8891c9939aee", + "evidence": "records=17, builtInField=roleType", + "checkedAt": "2026-08-08T05:44:16.229Z" + }, + { + "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": "64700084-f41b-470d-8077-1d5fe398e69e, cad5ed1d-c01d-4fbf-98a8-bd32e51ca07c", + "traceId": "20dd2ccb420f4b609f8a3c7cd6b3aef5", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.273Z" + }, + { + "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": "64700084-f41b-470d-8077-1d5fe398e69e, cad5ed1d-c01d-4fbf-98a8-bd32e51ca07c", + "traceId": "20dd2ccb420f4b609f8a3c7cd6b3aef5", + "evidence": "records=136, builtInField=builtIn", + "checkedAt": "2026-08-08T05:44:16.273Z" + }, + { + "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": "5d8fc7ff-501", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:44:16.298Z" + }, + { + "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": "5dd9fad3-502", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:44:16.313Z" + }, + { + "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": "a64eb76c-c90d-4904-bf71-02c8da1e53b5, a0beb6f8-ba98-436a-af19-4cb5f1be2507", + "traceId": "f2a8822ea17b4722b045c02815bc38d9", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.371Z" + }, + { + "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": "a96343b8-f9be-4402-8ca7-221863a5059c, 22bed8bd-e3b7-46e4-a168-517f59b27410", + "traceId": "82222f193fe9434381065aeb44e5ba0d", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.416Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "读取隔离库位版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085965291977752578?tenantId=0&warehouseId=2085965291759648770" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "22758149-0be9-499c-ae95-670a65907c68, 33ae8991-e087-4e9a-a050-e2998ec7ddd8", + "traceId": "ae2c6d0bba2b4ec29cbc9c2631f9c274", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.455Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "更新隔离库位以推进版本", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085965291977752578?tenantId=0&warehouseId=2085965291759648770" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "9e3f79ee-5603-4b24-9426-dffe933e92fc, 5bae795c-e5e9-46f2-bcc3-a7f65bcd5ff8", + "traceId": "410362708de045e6a6ca8c8fbc655b9e", + "evidence": "version=0", + "checkedAt": "2026-08-08T05:44:16.490Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位旧 version PUT 返回冲突", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PUT", + "path": "/api/platform/v1/locations/2085965291977752578?tenantId=0&warehouseId=2085965291759648770" + }, + "http": 200, + "code": "A0409", + "message": "库位已被其他操作修改,请刷新后重试", + "requestId": "655b479b-b1d4-497d-995d-71c107a1aed6", + "traceId": "692193a9bcc14c22a1e7c5f467edb99b", + "evidence": "HTTP=200, code=A0409", + "checkedAt": "2026-08-08T05:44:16.537Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "冲突后回查库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085965291977752578?tenantId=0&warehouseId=2085965291759648770" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "737266bc-32aa-429b-89a0-0924c9778b39, 2cc16240-5540-4925-88c7-35ac1009a2b0", + "traceId": "e9125167473b424a9565fe21d1c8832c", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.576Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "库位冲突未造成部分更新", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "GET", + "path": "/api/platform/v1/locations/2085965291977752578?tenantId=0&warehouseId=2085965291759648770" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "737266bc-32aa-429b-89a0-0924c9778b39, 2cc16240-5540-4925-88c7-35ac1009a2b0", + "traceId": "e9125167473b424a9565fe21d1c8832c", + "evidence": "name=边界库位-编辑", + "checkedAt": "2026-08-08T05:44:16.576Z" + }, + { + "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-08T05:44:16.576Z" + }, + { + "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": "a199bedc-7a3e-496c-ba48-a593c9e3fce2, d357475a-e6a4-4ca2-bd20-dcbe6ec7762e", + "traceId": "e63cd10c16ca44958e2c6f79f92c4317", + "evidence": "HTTP=200, code=200, bytes=0", + "checkedAt": "2026-08-08T05:44:16.602Z" + }, + { + "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": "7e94f12c-11d5-4f63-a9b1-034cecd516b4, c02b7092-83aa-4535-941a-b812bafd7adc", + "traceId": "829265f7613c49a5a7d8eaf1fdbb36d6", + "evidence": "HTTP=200, code=200, bytes=6", + "checkedAt": "2026-08-08T05:44:16.638Z" + }, + { + "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": "ab6798da-9a2b-4e88-ac1b-1b348ce7faee, 4785e2f5-bc0c-4e6d-bed5-e7859823990b", + "traceId": "9a3787e9826e4e369a6e3fcd335162fe", + "evidence": "HTTP=200, code=200, bytes=27", + "checkedAt": "2026-08-08T05:44:16.664Z" + }, + { + "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": "c2c058b0-209b-4842-b2ad-7b93a65ad21e, 5a32a914-b87d-4d7f-876e-9bb5128fe505", + "traceId": "5bd6ab2e2b1b4ef8b5548428ac7dc2ae", + "evidence": "HTTP=200, code=200, bytes=27", + "checkedAt": "2026-08-08T05:44:16.703Z" + }, + { + "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": "S0500", + "message": "Internal server error", + "requestId": "48ae4db3-4841-409b-823b-fa058e352bf8", + "traceId": "ddf904995c81460589fa8011b911eafb", + "evidence": "HTTP=200, code=S0500", + "checkedAt": "2026-08-08T05:44:16.749Z" + }, + { + "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": "5dd9fad3-514", + "traceId": null, + "evidence": "HTTP=401, code=A0401", + "checkedAt": "2026-08-08T05:44:16.779Z" + }, + { + "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": "04919288-5ba8-4395-b644-9aeb873486e0", + "traceId": "5a5a416304904c86bfaab507e1413a94", + "evidence": "HTTP=200, code=A0422", + "checkedAt": "2026-08-08T05:44:16.806Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "船期价格非法状态边界响应正确", + "passed": false, + "deploymentBlocker": true, + "request": { + "method": "GET", + "path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=INVALID" + }, + "http": 503, + "code": null, + "message": null, + "requestId": "5dd9fad3-516", + "traceId": null, + "evidence": "HTTP=503, code=missing", + "checkedAt": "2026-08-08T05:44:16.828Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "停用隔离库位以便清理", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/locations/2085965291977752578/status?tenantId=0&warehouseId=2085965291759648770" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "36025f41-f057-4c32-8341-762b4daadb34, 7927ac6b-8454-4f5d-ba29-c2889a8db457", + "traceId": "04b5652dbc774e9fb2c6b9414abf3f92", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.876Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "删除隔离库位", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "DELETE", + "path": "/api/platform/v1/locations/2085965291977752578?tenantId=0&warehouseId=2085965291759648770&version=2" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "a2c7df1a-ca9f-4fcb-975a-0f6c43427a23, e8d192e6-092d-40d6-9fd7-8d07a73b64bd", + "traceId": "5b38e88f9fbe426ab0ca4d36f1c499dd", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.921Z" + }, + { + "module": "supplemental-boundaries", + "scenario": "admin-boundary-automation", + "name": "停用隔离仓库", + "passed": true, + "deploymentBlocker": false, + "request": { + "method": "PATCH", + "path": "/api/platform/v1/warehouse-admin/2085965291759648770/status?tenantId=0&status=INACTIVE" + }, + "http": 200, + "code": "200", + "message": "success", + "requestId": "74f4d6ed-94e7-4ef7-8d22-3de1c6067a1c, 1e3f4911-3d90-48f4-aac9-29702f3d76f7", + "traceId": "f71c597ea7bb4d29954ee90e60bb01e1", + "evidence": "", + "checkedAt": "2026-08-08T05:44:16.965Z" + } + ] +} diff --git a/scripts/admin-test-env-acceptance.mjs b/scripts/admin-test-env-acceptance.mjs index 3232e5643..62327402a 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'] +const DEFAULT_MODULES = ['customers', 'overseas-storage-fees', 'system', 'master-data', 'orders', 'pricing', 'downloads', 'inbound-weight-ocr', 'inbound-measurement', 'supplemental', 'supplemental-boundaries'] 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', diff --git a/scripts/admin-test-env-modules/supplemental-boundaries.mjs b/scripts/admin-test-env-modules/supplemental-boundaries.mjs new file mode 100644 index 000000000..bc99c3f62 --- /dev/null +++ b/scripts/admin-test-env-modules/supplemental-boundaries.mjs @@ -0,0 +1,137 @@ +const MODULE = 'supplemental-boundaries' +const OPTIONS = { scenario: 'admin-boundary-automation', deploymentBlocker: true } + +function id(value) { return value == null ? '' : String(value) } +function codeOf(response) { return response?.body?.code == null ? 'missing' : String(response.body.code) } +function failure(response) { + return [400, 401, 403, 404, 409].includes(response?.http) + || (response?.http === 200 && codeOf(response) !== '200') +} +function missingRoute(response) { + return response?.http === 404 || response?.http === 405 + || /Not Found|No handler|No static resource/i.test(String(response?.raw || response?.body?.message || '')) +} + +async function multipart(context, path, bytes, fileName, contentType = 'application/octet-stream') { + const form = new FormData() + form.append('file', new Blob([bytes], { type: contentType }), 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 content = await response.text() + let body = null + try { body = content ? JSON.parse(content) : null } catch { /* bounded raw evidence below */ } + return { + method: 'POST', path, http: response.status, body, + raw: body === null ? content.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 } + } +} + +function warehousePayload(context, suffix) { + return { + tenantId: 0, warehouseCode: `BW${suffix}`, warehouseName: `边界验收仓-${suffix}`, + warehouseType: 'DOMESTIC', countryCode: 'CN', timezone: 'Asia/Shanghai', + contactName: '边界验收员', contactPhone: '13800000003', contactEmail: `boundary-${suffix}@example.com`, + status: 'ACTIVE', remark: context.marker, + address: { addressType: 'WAREHOUSE', countryCode: 'CN', stateProvince: '广东省', city: '深圳市', district: '南山区', postalCode: '518000', addressLine1: '边界验收地址', addressLine2: null, latitude: null, longitude: null }, + capabilities: [{ capabilityCode: 'RECEIVING', capabilityName: '收货', enabled: true, cutoffTime: '16:00:00', description: context.marker }], + } +} + +export async function run(context) { + const start = context.steps.length + const suffix = context.marker.replace(/\D/g, '').slice(-12) + let warehouseId = '' + let locationId = '' + let warehousePayloadValue + let locationPayload + let locationVersion = 0 + + // Create only marker-owned warehouse/location resources for the one + // executable optimistic-lock scenario. Pallets and master-data records have + // no version field in the public DTO, so they are not falsely claimed here. + warehousePayloadValue = warehousePayload(context, suffix) + const createWarehouse = await context.request('POST', '/api/platform/v1/warehouse-admin', warehousePayloadValue) + warehouseId = id(context.apiSuccess(MODULE, '创建边界验收隔离仓库', createWarehouse, '', OPTIONS)) + if (warehouseId) { + locationPayload = { + warehouseId, zoneCode: `BZ${suffix.slice(-5)}`, zoneName: '边界区', + locationCode: `BL${suffix}`, locationName: '边界库位', locationType: 'SHELF', + maxWeightKg: 1000, status: 'AVAILABLE', remark: context.marker, + } + const createLocation = await context.request('POST', '/api/platform/v1/locations?tenantId=0', locationPayload) + locationId = id(context.apiSuccess(MODULE, '创建边界验收隔离库位', createLocation, '', OPTIONS)) + } + if (locationId) { + const locationPath = `/api/platform/v1/locations/${locationId}?tenantId=0&warehouseId=${warehouseId}` + const detail = await context.request('GET', locationPath) + const data = context.apiSuccess(MODULE, '读取隔离库位版本', detail, '', OPTIONS) + locationVersion = Number(data?.location?.version) + const firstUpdate = await context.request('PUT', locationPath, { ...locationPayload, locationName: `${locationPayload.locationName}-编辑`, version: locationVersion }) + context.apiSuccess(MODULE, '更新隔离库位以推进版本', firstUpdate, `version=${locationVersion}`, OPTIONS) + const stale = await context.request('PUT', locationPath, { ...locationPayload, locationName: `${locationPayload.locationName}-STALE`, version: locationVersion }) + const conflict = stale.http === 200 && ['A0409', '409'].includes(codeOf(stale)) + context.addStep(MODULE, '库位旧 version PUT 返回冲突', stale, conflict, `HTTP=${stale.http}, code=${codeOf(stale)}`, OPTIONS) + const after = await context.request('GET', locationPath) + const afterData = context.apiSuccess(MODULE, '冲突后回查库位', after, '', OPTIONS) + context.assert(MODULE, '库位冲突未造成部分更新', after, + afterData?.location?.locationName === `${locationPayload.locationName}-编辑`, `name=${afterData?.location?.locationName || 'missing'}`, OPTIONS) + locationVersion = Number(afterData?.location?.version) + } + + // 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) + + // Import boundary probes use only in-memory bytes and dry-run where supported. + const bogusXlsx = new Uint8Array([0x50, 0x4b, 0x03, 0x04, 0x00, 0x00]) + const empty = new Uint8Array() + const probes = [ + ['仓库空文件', '/api/platform/v1/warehouse-admin/import?tenantId=0&dryRun=true', empty, `${context.marker}.xlsx`], + ['仓库缺列伪 XLSX', '/api/platform/v1/warehouse-admin/import?tenantId=0&dryRun=true', bogusXlsx, `${context.marker}-missing.xlsx`], + ['快递公司错误扩展名', '/api/platform/v1/express-companies/import?tenantId=0', new TextEncoder().encode(context.marker), `${context.marker}.txt`], + ['往来单位非 XLSX', '/api/platform/v1/partners/import?tenantId=0', new TextEncoder().encode(context.marker), `${context.marker}.txt`], + ] + for (const [name, path, bytes, fileName] of probes) { + const response = await multipart(context, path, bytes, fileName) + context.addStep(MODULE, `${name}安全失败且不模拟导入成功`, response, failure(response), + `HTTP=${response.http}, code=${codeOf(response)}, bytes=${bytes.length}`, { scenario: 'import-boundaries', deploymentBlocker: missingRoute(response) }) + } + + // Invalid customer/price routes and authentication boundaries are read-only. + const invalidFee = await context.request('GET', '/api/platform/v1/iam/tenants/999999999999999999/overseas-storage-fees') + context.addStep(MODULE, '错误客户海外仓费用 ID 安全失败', invalidFee, failure(invalidFee), + `HTTP=${invalidFee.http}, code=${codeOf(invalidFee)}`, OPTIONS) + for (const [name, path] of [ + ['库位列表未授权', '/api/platform/v1/locations?page=1&size=1&tenantId=0'], + ['下载中心非法页码', '/api/platform/v1/files/export-tasks?page=0&size=1'], + ['船期价格非法状态', '/api/platform/v1/fba-pricing/carrier-rates/price-books?status=INVALID'], + ]) { + const response = await context.request('GET', path, undefined, name.includes('未授权') ? '' : context.token) + const passed = name.includes('未授权') ? response.http === 401 : failure(response) + context.addStep(MODULE, `${name}边界响应正确`, response, passed, `HTTP=${response.http}, code=${codeOf(response)}`, OPTIONS) + } + + if (locationId) { + const disable = await context.request('PATCH', `/api/platform/v1/locations/${locationId}/status?tenantId=0&warehouseId=${warehouseId}`, { status: 'DISABLED', version: locationVersion }) + context.apiSuccess(MODULE, '停用隔离库位以便清理', disable, '', OPTIONS) + const remove = await context.request('DELETE', `/api/platform/v1/locations/${locationId}?tenantId=0&warehouseId=${warehouseId}&version=${locationVersion + 1}`) + context.apiSuccess(MODULE, '删除隔离库位', remove, '', OPTIONS) + } + if (warehouseId) { + const disableWarehouse = await context.request('PATCH', `/api/platform/v1/warehouse-admin/${warehouseId}/status?tenantId=0&status=INACTIVE`) + context.apiSuccess(MODULE, '停用隔离仓库', disableWarehouse, '', OPTIONS) + } + + const steps = context.steps.slice(start) + context.scenarios.push({ name: 'admin-boundary-automation', module: MODULE, success: steps.every((step) => step.passed), deploymentBlocked: steps.some((step) => step.deploymentBlocker), passed: steps.filter((step) => step.passed).length, failed: steps.filter((step) => !step.passed).length }) +} diff --git a/warehouse/src/test/java/com/baiyue/warehouse/repository/OverseasStorageFeeSqlContractTest.java b/warehouse/src/test/java/com/baiyue/warehouse/repository/OverseasStorageFeeSqlContractTest.java index dd7ae80ce..3d5af43e0 100644 --- a/warehouse/src/test/java/com/baiyue/warehouse/repository/OverseasStorageFeeSqlContractTest.java +++ b/warehouse/src/test/java/com/baiyue/warehouse/repository/OverseasStorageFeeSqlContractTest.java @@ -16,6 +16,30 @@ class OverseasStorageFeeSqlContractTest { assertThat(sql) .contains("CREATE TABLE IF NOT EXISTS wh_overseas_storage_fee_rule") .contains("CREATE TABLE IF NOT EXISTS wh_overseas_storage_fee_tier") + .containsOnlyOnce("CREATE PROCEDURE migrate_overseas_storage_fee_schema()") + .doesNotContain("ADD COLUMN IF NOT EXISTS initialization_key") + .doesNotContain("ADD COLUMN IF NOT EXISTS fee_type") + .doesNotContain("ADD COLUMN IF NOT EXISTS billing_unit") + .contains("table_name = 'wh_overseas_storage_fee_rule'") + .contains("column_name = 'initialization_key'") + .contains("column_name = 'fee_type'") + .contains("column_name = 'billing_unit'") + .contains("PREPARE overseas_fee_statement FROM @overseas_fee_ddl") + .contains("EXECUTE overseas_fee_statement") + .contains("DEALLOCATE PREPARE overseas_fee_statement") + .contains("constraint_name = 'chk_overseas_fee_tier_days'") + .contains("constraint_name = 'chk_overseas_fee_tier_price'") + .contains("index_columns = 'rule_id,fee_type,active_start_day'") + .contains("Warehouse 迁移失败:海外仓费用阶梯存在非法天数或负价格") + .contains("Warehouse 迁移失败:海外仓费用阶梯目标唯一键存在重复数据") + .contains("CALL migrate_overseas_storage_fee_schema()") + .contains("LOWER(column_type) = 'varchar(191)'") + .contains("LOWER(column_type) = 'varchar(32)'") + .contains("LOWER(column_type) = 'varchar(16)'") + .contains("LOWER(column_type) = 'smallint unsigned'") + .contains("LOWER(column_type) = 'decimal(18,6)'") + .contains("统一迁移失败:海外仓阶梯费用字段签名不正确") + .contains("统一迁移失败:海外仓阶梯费用唯一键或 CHECK 结构不正确") .contains("uk_overseas_fee_active_customer") .contains("idx_overseas_fee_page") .contains("idx_overseas_fee_customer_name") @@ -27,5 +51,12 @@ class OverseasStorageFeeSqlContractTest { .contains("platform:overseas-storage-fee:delete") .contains("CALL unified_assert_overseas_storage_fee()") .contains("统一增量全部执行完成"); + + int addColumns = sql.indexOf("column_name = 'fee_type'"); + int migrate = sql.indexOf("CALL migrate_overseas_storage_fee_schema()"); + int assertSchema = sql.indexOf("CALL unified_assert_overseas_storage_fee()"); + assertThat(addColumns).isGreaterThan(0); + assertThat(migrate).isGreaterThan(addColumns); + assertThat(assertSchema).isGreaterThan(migrate); } }