# 仓库领用成本统计接口测试说明 ## 📋 接口信息 - **接口路径**: `POST /api/Extend/LqInventoryUsage/get-store-receive-cost-statistics` - **服务类**: `LqInventoryUsageService` - **方法名**: `GetStoreReceiveCostStatistics` ## ⚠️ 测试前准备 1. **确保后端服务已重启**:接口代码修改后需要重新编译并重启服务 2. **确认服务运行正常**:访问 `http://localhost:2011/api/test` 验证服务是否运行 ## 🧪 测试用例 ### 测试1: 按月份查询(202601) ```bash curl -X POST "http://localhost:2011/api/Extend/LqInventoryUsage/get-store-receive-cost-statistics" \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "statisticsMonth": "202601", "currentPage": 1, "pageSize": 20 }' ``` **预期返回字段**: - `StatisticsMonth`: 统计月份(如:202601) - `StoreId`: 门店ID - `StoreName`: 门店名称 - `ReceiveCount`: 领取数量(按批次去重) - `ProductVarietyCount`: 领取品种数量 - `AvgUnitPrice`: 平均单价 - `TotalCostAmount`: 总价 - `WarehouseCount`: 涉及仓库数量 - `UsageRecordCount`: 领用记录数 - `AvgReceiveAmount`: 平均领用金额 - `AvgRecordAmount`: 平均单笔金额 - `TotalUsageQuantity`: 领用总数量 - `MaxRecordAmount`: 最大单笔金额 - `MinRecordAmount`: 最小单笔金额 ### 测试2: 按时间范围查询 ```bash curl -X POST "http://localhost:2011/api/Extend/LqInventoryUsage/get-store-receive-cost-statistics" \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "startMonth": "202512", "endMonth": "202601", "currentPage": 1, "pageSize": 10 }' ``` ### 测试3: 按门店查询 ```bash curl -X POST "http://localhost:2011/api/Extend/LqInventoryUsage/get-store-receive-cost-statistics" \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "statisticsMonth": "202601", "storeId": "1649328471923847193", "currentPage": 1, "pageSize": 20 }' ``` ### 测试4: 按仓库筛选 ```bash curl -X POST "http://localhost:2011/api/Extend/LqInventoryUsage/get-store-receive-cost-statistics" \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "statisticsMonth": "202601", "warehouse": "福田仓库", "currentPage": 1, "pageSize": 20 }' ``` ### 测试5: 排序测试 ```bash curl -X POST "http://localhost:2011/api/Extend/LqInventoryUsage/get-store-receive-cost-statistics" \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "statisticsMonth": "202601", "sidx": "TotalCostAmount", "sort": "desc", "currentPage": 1, "pageSize": 5 }' ``` ## 📝 使用测试脚本 运行测试脚本: ```bash bash scripts/sh/test_store_receive_cost_statistics.sh ``` ## ✅ 验证要点 1. **接口返回码**: 应为 `200` 2. **数据结构**: 返回的 `list` 数组应包含统计记录 3. **分页信息**: `pagination` 应包含 `total`、`pageIndex`、`pageSize` 4. **字段完整性**: 每个记录应包含所有必需字段 5. **数据准确性**: - `AvgUnitPrice` = `TotalCostAmount` / `ProductVarietyCount` - `AvgReceiveAmount` = `TotalCostAmount` / `ReceiveCount` - `AvgRecordAmount` = `TotalCostAmount` / `UsageRecordCount` ## 🔍 数据验证SQL 可以通过以下SQL验证数据: ```sql -- 验证202601月份的统计数据 SELECT DATE_FORMAT(a.F_ReceiveTime, '%Y%m') as StatisticsMonth, u.F_StoreId as StoreId, store.dm as StoreName, COUNT(DISTINCT a.F_UsageBatchId) as ReceiveCount, COUNT(DISTINCT u.F_ProductId) as ProductVarietyCount, COALESCE(SUM(u.F_TotalAmount), 0) as TotalCostAmount, COUNT(DISTINCT p.F_Warehouse) as WarehouseCount FROM lq_inventory_usage u INNER JOIN lq_inventory_usage_application a ON u.F_UsageBatchId = a.F_UsageBatchId INNER JOIN lq_product p ON u.F_ProductId = p.F_Id LEFT JOIN lq_mdxx store ON u.F_StoreId = store.F_Id WHERE u.F_IsEffective = 1 AND a.F_IsEffective = 1 AND a.F_ApprovalStatus = '已通过' AND a.F_IsReceived = 1 AND a.F_ReceiveTime IS NOT NULL AND DATE_FORMAT(a.F_ReceiveTime, '%Y%m') = '202601' GROUP BY DATE_FORMAT(a.F_ReceiveTime, '%Y%m'), u.F_StoreId, store.dm ORDER BY TotalCostAmount DESC LIMIT 10; ``` ## 🐛 常见问题 1. **404错误**: 服务未重启,需要重新编译并重启后端服务 2. **500错误**: 检查SQL查询是否正确,查看服务日志 3. **空数据**: 确认指定月份是否有已领取的仓库使用记录 4. **Token过期**: 重新获取Token