fix: db.py SQL (<>ALL, escape %% in LIKE) + incremental_sync tz-aware compare
This commit is contained in:
@@ -37,6 +37,8 @@ def upsert_records(raw_orders: list) -> dict:
|
||||
def riin_incremental_sync() -> dict:
|
||||
db = SyncDB()
|
||||
latest = db.get_latest_ordered_at("RIIN")
|
||||
if latest is not None and latest.tzinfo is not None:
|
||||
latest = latest.replace(tzinfo=None)
|
||||
now = datetime.now()
|
||||
from_dt = floor_to_hour(latest) if latest else floor_to_hour(now)
|
||||
to_dt = now
|
||||
|
||||
@@ -40,6 +40,8 @@ def upsert_records(raw_orders: list) -> dict:
|
||||
def sds_incremental_sync() -> dict:
|
||||
db = SyncDB()
|
||||
latest = db.get_latest_ordered_at("SDS")
|
||||
if latest is not None and latest.tzinfo is not None:
|
||||
latest = latest.replace(tzinfo=None)
|
||||
now = datetime.now()
|
||||
from_dt = floor_to_hour(latest) if latest else floor_to_hour(now)
|
||||
if from_dt >= now:
|
||||
|
||||
+2
-2
@@ -46,7 +46,7 @@ class SyncDB:
|
||||
with conn.cursor() as cur:
|
||||
cur.execute(
|
||||
'SELECT DISTINCT "orderNo" FROM "Orders" WHERE "systemName"=%s '
|
||||
'AND "systemStatus" IS DISTINCT FROM ALL %s',
|
||||
'AND ("systemStatus" IS NULL OR "systemStatus" <> ALL %s)',
|
||||
(system_name, exclude_statuses),
|
||||
)
|
||||
rows = cur.fetchall()
|
||||
@@ -92,7 +92,7 @@ class SyncDB:
|
||||
cur.execute(
|
||||
'SELECT DISTINCT o."orderNo", o."createdAt" FROM "Orders" o '
|
||||
'JOIN "Goods" g ON g."orderNo"=o."orderNo" AND g."createdAt"=o."createdAt" '
|
||||
'WHERE o."systemName"=%s AND o."systemStatus"=ANY(%s) AND g."productionNo" LIKE \'100%\'',
|
||||
'WHERE o."systemName"=%s AND o."systemStatus"=ANY(%s) AND g."productionNo" LIKE \'100%%\'',
|
||||
(system_name, statuses),
|
||||
)
|
||||
rows = cur.fetchall()
|
||||
|
||||
Reference in New Issue
Block a user