feat(t224): add incremental freight sync
This commit is contained in:
@@ -35,7 +35,10 @@ class LoginRequest(BaseModel):
|
||||
|
||||
|
||||
class FreightQueryRequest(BaseModel):
|
||||
order_number: str = Field(min_length=1, max_length=128)
|
||||
mode: str = Field(default="ORDER_NUMBER", max_length=32)
|
||||
order_number: str | None = Field(default=None, min_length=1, max_length=128)
|
||||
created_from: str | None = Field(default=None, min_length=10, max_length=10)
|
||||
created_to: str | None = Field(default=None, min_length=10, max_length=10)
|
||||
|
||||
|
||||
def get_client() -> ERPClient:
|
||||
@@ -125,7 +128,22 @@ def query_freight(
|
||||
_: APIKeyDependency,
|
||||
) -> dict[str, object]:
|
||||
try:
|
||||
result = get_client().get_freight_details(body.order_number)
|
||||
if body.mode == "ORDER_NUMBER" and body.order_number:
|
||||
if body.created_from is not None or body.created_to is not None:
|
||||
raise ValueError("ORDER_NUMBER 不能包含日期范围")
|
||||
result = get_client().get_freight_details(body.order_number)
|
||||
elif (
|
||||
body.mode == "CREATED_RANGE"
|
||||
and body.order_number is None
|
||||
and body.created_from
|
||||
and body.created_to
|
||||
):
|
||||
result = get_client().get_freight_details_by_created_range(
|
||||
body.created_from,
|
||||
body.created_to,
|
||||
)
|
||||
else:
|
||||
raise ValueError("查询模式与参数不匹配")
|
||||
return normalize_freight_result(result)
|
||||
except ERPAuthenticationError as exc:
|
||||
raise HTTPException(
|
||||
|
||||
Reference in New Issue
Block a user