Files
ttx-project-doc/库内/shopee-4.6-query-picking-list-test-cases.md
T

14 KiB
Raw Blame History

Shopee 4.6 查询移库拣货接口测试用例

接口信息

  • 接口:4.6 库内发起 Vendor 查询拣货接口
  • URLPOST http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/query_picking_list
  • Content-Typeapplication/json
  • EDI 配置 keyquery_picking_list
  • WMS APIshopee.inventory.racktransfer.queryPickingList
  • XSLTedi-shopee/src/main/resources/xslt/out/4_6_query_picking_list.xslt

前置条件

  1. 本地已启动 EDI 9002 和 WES 9001
  2. 当前测试库有效仓库为 PHIXP;文档示例仓库 SGL 当前未命中测试数据。
  3. 当前测试库存在 RT 任务数据:
    • source_id = RTSGL00020250102001
    • source_id = RTSGL00020250102002
    • source_id = 对应Geek+的唯一单号
  4. 当前测试数据未查到可通过 rt_order_id_list 命中的 wave.shopeeWaveCode,因此 rt_order_id_list 场景返回空列表。

字段转换说明

请求报文使用 Shopee 原始字段,XSLT 负责转换到 WMS 内部字段:

Shopee 字段 WMS 字段
whs_id warehouseCode
source_id_list sourceIdList
rt_order_id_list rtOrderIdList
wave_flag waveFlag
start_time startTime
end_time endTime
exclude_source_id_list excludeSourceIdList

测试结果汇总

用例 场景 预期结果 实测结果
TC-01 source_id_list 查询命中数据 成功,返回 1 条 rt_order_info_list 通过
TC-02 只传 whs_id 查询 当前实现返回最近 RT 任务列表 通过,返回 3 条
TC-03 不存在的 source_id_list 成功,返回空列表 通过
TC-04 exclude_source_id_list 排除指定 source 成功,排除指定 source 通过
TC-05 按时间范围查询 成功,返回时间范围内数据 通过,返回 3 条
TC-06 rt_order_id_list 查询 当前测试数据无 wave 绑定,返回空列表 通过
TC-07 缺少 whs_id 返回无效消息体 通过
TC-08 文档示例仓库 SGL 当前测试库无数据,返回空列表 通过

TC-01 按 source_id_list 查询

curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/query_picking_list' \
--header 'Content-Type: application/json' \
--data-raw '{
  "whs_id": "PHIXP",
  "source_id_list": [
    "RTSGL00020250102001"
  ],
  "rt_order_id_list": []
}'

实测结果:

{
  "retcode": 0,
  "message": "success",
  "data": {
    "whs_id": "PHIXP",
    "rt_order_info_list": [
      {
        "source_id": "RTSGL00020250102001",
        "is_complete": 0,
        "device_list": [
          {
            "is_close": 0,
            "sku_info_list": [
              {
                "id": "sku1:null:",
                "sku_id": "sku1",
                "qty": 1.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              },
              {
                "id": "sku2:null:",
                "sku_id": "sku2",
                "qty": 10.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              }
            ]
          },
          {
            "device_id": "B10922",
            "is_close": 0,
            "sku_info_list": [
              {
                "id": "geek+侧拣货明细的唯一id",
                "sku_id": "sku1",
                "qty": 1.0,
                "batch_no": "20250100010010101",
                "unit_list": [],
                "picking_time": 1708388992833,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              },
              {
                "id": "sku1:null:B10922",
                "sku_id": "sku1",
                "qty": 1.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              },
              {
                "id": "sku2:null:B10922",
                "sku_id": "sku2",
                "qty": 10.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              }
            ]
          }
        ]
      }
    ]
  }
}

分析:接口调用成功。返回中未出现 rt_order_id,原因是当前测试数据没有可还原的 wave.shopeeWaveCode

TC-02 只传 whs_id 查询

curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/query_picking_list' \
--header 'Content-Type: application/json' \
--data-raw '{
  "whs_id": "PHIXP"
}'

实测结果:

{
  "retcode": 0,
  "message": "success",
  "data": {
    "whs_id": "PHIXP",
    "rt_order_info_list": [
      {
        "source_id": "RTSGL00020250102002",
        "is_complete": 0,
        "device_list": []
      },
      {
        "source_id": "RTSGL00020250102001",
        "is_complete": 0,
        "device_list": [
          {
            "is_close": 0,
            "sku_info_list": [
              {
                "id": "sku1:null:",
                "sku_id": "sku1",
                "qty": 1.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              },
              {
                "id": "sku2:null:",
                "sku_id": "sku2",
                "qty": 10.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              }
            ]
          },
          {
            "device_id": "B10922",
            "is_close": 0,
            "sku_info_list": [
              {
                "id": "geek+侧拣货明细的唯一id",
                "sku_id": "sku1",
                "qty": 1.0,
                "batch_no": "20250100010010101",
                "unit_list": [],
                "picking_time": 1708388992833,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              },
              {
                "id": "sku1:null:B10922",
                "sku_id": "sku1",
                "qty": 1.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              },
              {
                "id": "sku2:null:B10922",
                "sku_id": "sku2",
                "qty": 10.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              }
            ]
          }
        ]
      },
      {
        "source_id": "对应Geek+的唯一单号",
        "is_complete": 0,
        "device_list": [
          {
            "is_close": 0,
            "sku_info_list": [
              {
                "id": "geek+侧拣货明细的唯一id",
                "sku_id": "sku1",
                "qty": 1.0,
                "batch_no": "20250100010010101",
                "unit_list": [],
                "picking_time": 1708388992833,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              }
            ]
          }
        ]
      }
    ]
  }
}

分析:当前实现允许只传 whs_id,会按任务创建时间倒序返回最多 200 条。接口文档描述 source_id_listrt_order_id_list 必传一个,与当前实现存在差异。

TC-03 不存在 source_id 查询

curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/query_picking_list' \
--header 'Content-Type: application/json' \
--data-raw '{
  "whs_id": "PHIXP",
  "source_id_list": [
    "NOT_EXIST_SOURCE_ID"
  ]
}'

实测结果:

{"retcode":0,"message":"success","data":{"whs_id":"PHIXP","rt_order_info_list":[]}}

分析:报文合法但无匹配数据,按成功空列表返回。

TC-04 exclude_source_id_list 排除查询

curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/query_picking_list' \
--header 'Content-Type: application/json' \
--data-raw '{
  "whs_id": "PHIXP",
  "exclude_source_id_list": [
    "RTSGL00020250102001"
  ]
}'

实测结果:

{
  "retcode": 0,
  "message": "success",
  "data": {
    "whs_id": "PHIXP",
    "rt_order_info_list": [
      {
        "source_id": "RTSGL00020250102002",
        "is_complete": 0,
        "device_list": []
      },
      {
        "source_id": "对应Geek+的唯一单号",
        "is_complete": 0,
        "device_list": [
          {
            "is_close": 0,
            "sku_info_list": [
              {
                "id": "geek+侧拣货明细的唯一id",
                "sku_id": "sku1",
                "qty": 1.0,
                "batch_no": "20250100010010101",
                "unit_list": [],
                "picking_time": 1708388992833,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              }
            ]
          }
        ]
      }
    ]
  }
}

分析:RTSGL00020250102001 已被排除,扩展过滤条件生效。

TC-05 按时间范围查询

curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/query_picking_list' \
--header 'Content-Type: application/json' \
--data-raw '{
  "whs_id": "PHIXP",
  "start_time": 1780790400,
  "end_time": 1780876799
}'

实测结果:

{
  "retcode": 0,
  "message": "success",
  "data": {
    "whs_id": "PHIXP",
    "rt_order_info_list": [
      {
        "source_id": "RTSGL00020250102002",
        "is_complete": 0,
        "device_list": []
      },
      {
        "source_id": "RTSGL00020250102001",
        "is_complete": 0,
        "device_list": [
          {
            "is_close": 0,
            "sku_info_list": [
              {
                "id": "sku1:null:",
                "sku_id": "sku1",
                "qty": 1.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              },
              {
                "id": "sku2:null:",
                "sku_id": "sku2",
                "qty": 10.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              }
            ]
          },
          {
            "device_id": "B10922",
            "is_close": 0,
            "sku_info_list": [
              {
                "id": "geek+侧拣货明细的唯一id",
                "sku_id": "sku1",
                "qty": 1.0,
                "batch_no": "20250100010010101",
                "unit_list": [],
                "picking_time": 1708388992833,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              },
              {
                "id": "sku1:null:B10922",
                "sku_id": "sku1",
                "qty": 1.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              },
              {
                "id": "sku2:null:B10922",
                "sku_id": "sku2",
                "qty": 10.0,
                "unit_list": [],
                "picking_time": 0,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              }
            ]
          }
        ]
      },
      {
        "source_id": "对应Geek+的唯一单号",
        "is_complete": 0,
        "device_list": [
          {
            "is_close": 0,
            "sku_info_list": [
              {
                "id": "geek+侧拣货明细的唯一id",
                "sku_id": "sku1",
                "qty": 1.0,
                "batch_no": "20250100010010101",
                "unit_list": [],
                "picking_time": 1708388992833,
                "operator": "yijia.yang@shopee.com",
                "block_type": 0
              }
            ]
          }
        ]
      }
    ]
  }
}

分析:时间范围过滤生效,当前范围内返回 3 条测试数据。

TC-06 按 rt_order_id_list 查询

curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/query_picking_list' \
--header 'Content-Type: application/json' \
--data-raw '{
  "whs_id": "PHIXP",
  "rt_order_id_list": [
    "SH260709005004"
  ]
}'

实测结果:

{"retcode":0,"message":"success","data":{"whs_id":"PHIXP","rt_order_info_list":[]}}

分析:当前测试数据没有可通过 wave.shopeeWaveCode 命中的 RT 单号绑定,因此接口成功但返回空列表。

TC-07 缺少 whs_id

curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/query_picking_list' \
--header 'Content-Type: application/json' \
--data-raw '{}'

实测结果:

{"retcode":-10010002,"message":"无效的消息体","data":{}}

分析:whs_id 必填校验生效。

TC-08 文档示例仓库 SGL

curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/query_picking_list' \
--header 'Content-Type: application/json' \
--data-raw '{
  "whs_id": "SGL",
  "source_id_list": [
    "RTSGL00020250102001"
  ],
  "rt_order_id_list": []
}'

实测结果:

{"retcode":0,"message":"success","data":{"whs_id":"SGL","rt_order_info_list":[]}}

分析:报文格式正确,当前测试库 SGL 无匹配 RT 任务数据,所以返回空列表。使用当前测试数据仓库 PHIXP 可命中。

问题记录

  1. 文档要求 source_id_listrt_order_id_list 必传一个,但当前实现允许只传 whs_id 并返回最近 200 条 RT 任务。
  2. 当前测试数据部分明细缺少 device_idbatch_no、UID,接口会按现有 task_detail 数据原样返回空字段或空列表。
  3. 当前测试数据没有可通过 rt_order_id_list 命中的 wave.shopeeWaveCode,所以该场景只能验证成功空列表,不能验证命中明细。