feat: 快递100上门取件集成(SDS运单自动生成+面单回传)
- api/kuaidi100: 上门取件API客户端(bOrder/price/cancel/detail,MD5签名封装) - api/sds: 变体克重(children接口,24h缓存)/面单PDF上传/挂包裹/carriageNoStatus筛选 - flows/sds/waybill_autogen: 每10分钟遍历运单待生成订单(factoryIds+carriageNoStatus+orderStatusCode) 自动下极兔(returnType=20+tempid出面单),面单回调转PDF回传SDS; 幂等跳过已有运单;面单超时不自动取消(记人工跟进);schedule 默认 active:false - scripts: 手动E2E测试脚本 + 回调接收服务(验签MD5(param+salt)+JSONL落盘,配frpc 18090穿透) - 依赖 +pillow(面单PNG转PDF)
This commit is contained in:
@@ -219,6 +219,26 @@ class ProductListResponse(_SdsModel):
|
||||
records: list[Product] = Field(default=[], alias="list")
|
||||
|
||||
|
||||
class ProductVariant(_SdsModel):
|
||||
"""产品变体(/pod/product/{id}/children):颜色/尺码/克重/包装盒尺寸。"""
|
||||
|
||||
id: int
|
||||
parent_id: int | None = Field(default=None, alias="parentId")
|
||||
sku: str | None = None
|
||||
size: str | None = None
|
||||
color_name: str | None = Field(default=None, alias="colorName")
|
||||
color_code: str | None = Field(default=None, alias="colorCode")
|
||||
status: int | None = None
|
||||
weight: float | None = None # 克/件
|
||||
box_length: float | None = Field(default=None, alias="boxLength")
|
||||
box_width: float | None = Field(default=None, alias="boxWidth")
|
||||
box_height: float | None = Field(default=None, alias="boxHeight")
|
||||
|
||||
|
||||
class ProductChildrenResponse(_SdsModel):
|
||||
records: list[ProductVariant] = Field(default=[], alias="list")
|
||||
|
||||
|
||||
# ----- 物流域(混用 snake_case,显式 alias)-----
|
||||
|
||||
|
||||
@@ -318,6 +338,7 @@ class OrderPageRequest(BaseModel):
|
||||
extend_status: str | None = None
|
||||
early_warning_type: str | None = None
|
||||
item_num_type: str | None = None
|
||||
carriage_no_status: str | None = None # 运单号状态筛选,如 generate=运单待生成
|
||||
limit: int | None = None
|
||||
all: bool | None = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user