From a527ebc1de675dd6cfaf386e24801daac2ad8193 Mon Sep 17 00:00:00 2001 From: yeuimu <2197651308@qq.com> Date: Thu, 23 Jul 2026 09:41:08 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20SDS=20factory(dict=E5=8F=96=E5=80=BC)+?= =?UTF-8?q?=20confirmedAt(gmtConfirmTime)=20=E6=98=A0=E5=B0=84=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/sds/models.py | 1 + docker-compose.yml | 2 ++ flows/shared/mappers.py | 8 ++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/api/sds/models.py b/api/sds/models.py index f2d4023..46c37a8 100644 --- a/api/sds/models.py +++ b/api/sds/models.py @@ -132,6 +132,7 @@ class Order(_SdsModel): online_order_status_code: str | None = None gmt_created: str | None = None gmt_pay: str | None = None + gmt_confirm_time: str | None = Field(default=None, alias="gmtConfirmTime") pay_status: int | None = None latest_ship_time: Any | None = None refund_status: int | None = None diff --git a/docker-compose.yml b/docker-compose.yml index b3c813d..b33760e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,6 +5,7 @@ services: command: prefect server start --host 0.0.0.0 environment: PREFECT_UI_API_URL: http://192.168.124.92:4200/api + TZ: Asia/Shanghai ports: - "4200:4200" volumes: @@ -16,6 +17,7 @@ services: container_name: prefect-worker environment: PREFECT_API_URL: http://prefect-server:4200/api + TZ: Asia/Shanghai depends_on: - prefect-server restart: unless-stopped diff --git a/flows/shared/mappers.py b/flows/shared/mappers.py index 43aaff7..30c60a4 100644 --- a/flows/shared/mappers.py +++ b/flows/shared/mappers.py @@ -243,13 +243,13 @@ def map_sds_order(raw: Any, channel_type_map: dict[int, str | None], pre_courier factory_name: str | None = None for item in raw.items or []: - fname = getattr(getattr(item, "factory", None), "name", None) - if not fname and isinstance(item, dict): - fname = (item.get("factory") or {}).get("name") + fac = getattr(item, "factory", None) + fname = fac.get("name") if isinstance(fac, dict) else getattr(fac, "name", None) if fname: factory_name = fname break + confirmed_at = _parse(getattr(raw, "gmt_confirm_time", None), f"SDS order {raw.no} gmtConfirmTime") area_name = raw.issuing_bay_area.name if raw.issuing_bay_area else None return OrderUpsertInput( orderNo=raw.no, @@ -266,7 +266,7 @@ def map_sds_order(raw: Any, channel_type_map: dict[int, str | None], pre_courier platformStatus=raw.online_order_status_name, createdAt=safe_date(raw.gmt_created, f"SDS order {raw.no}"), orderedAt=ordered_at, - confirmedAt=None, + confirmedAt=confirmed_at, completedAt=completed_at, shipDeadline=ship_deadline, )