From 44042b80ddd5ce428531cf38019dfabcc74b75d1 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 13 Jul 2026 14:58:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BE=9B=E9=94=80=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E6=8A=98=E6=89=A3=E6=98=8E=E7=BB=86=E7=9B=B4=E6=8E=A5=E7=94=A8?= =?UTF-8?q?product.providerid=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit product.providerid已直接存储供应商ID,不再需要JOIN product_resource_supplier --- supplychain/__pycache__/init.cpython-310.pyc | Bin 28755 -> 28544 bytes supplychain/init.py | 24 ++++++++----------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/supplychain/__pycache__/init.cpython-310.pyc b/supplychain/__pycache__/init.cpython-310.pyc index 34fa21678df13a476187771172a02c55519e35b9..ac1bc91a0a7444c7ae0ff739d0494d6bc8e1eda2 100644 GIT binary patch delta 383 zcmccofU)5|BVRr*FBbz4%of+3lT9wInV(gfU4l+y*Pnp5kJNZM3H)~NZ&<~TnQ=@HJMHpFtkd2Xr3B+Oo zvbg@Su<$Ty{9<7T%D_a~xPEeQvM_QmiZKc>a{XocuknpVaPs>&naTfCxfzu0V{37egwYdh2R+HD|>abdX1Sa3l j)n>HV%$>KGQ9ubK0Mb?jmg1ZIkY9N6#r%3^M;<=_%HVXb delta 609 zcmZp;&v^L(BVRr*FBbz4u(gL|)$iHJ=aa}_?ET2!o1mYHa!Pymrvc+@sYp(wRDzqBYhHNGe{Ej}{^EXJh(1W-jlai{{A zA$l-Ie11_nP>UW|c~LRY_M+J!V)DO4?wIsoS07jB5QSnrpemrbZbAOONbV?B@bdTc zg9uc{C+Fvt6eWUOT%4@n4-`&DSOU~*3p52tg?qRLxq{>-TPDc}u3}_hfZE~W864v2 zH`y-QXY$G<`#`YCIGqplSTV?s0zJ6TpkB8HN$Fu|%uJd5C)#|nT(YzwP#VqiK)0z> z=VzwWswg=6xquBQE=epYEe1-c8>&zCOSWecWSrceJcChmGGCm`WS10ufm?jYrU1>a zNQstX6JcZlLN-PgCJ>8>k&T(_4+|R)qs9*wPL|0R;;bj@q;fMVZ?;ISVqsLCyg4(T zQDd@jRy~^)FeH+hC*RkX*t{X@3nQB~kY8joc~y=9qxIz5IXbMCK!LK!Jh|G8mYXed e7c&YdgH(XD6@jFR_$EK(7oPktub$bJ#}5GeLdO^Y diff --git a/supplychain/init.py b/supplychain/init.py index 0f4b7f9..f00c23c 100644 --- a/supplychain/init.py +++ b/supplychain/init.py @@ -995,39 +995,35 @@ async def get_agreement_discount_items(request): async def get_contract_discount_items(request): """Return products with discount status for a supply contract. - Products link to suppliers via: product → resource_ref_id → - product_resource_supplier.supplier_org_id. + Filters products where product.providerid matches the contract's supplier_id. """ params_kw = getattr(request._run_ns, 'params_kw', {}) or {} contract_id = params_kw.get('contract_id') or params_kw.get('id') if not contract_id: return [] env = request._run_ns - # Get supplier orgid from contract - supplier_orgid = None + # Get supplier_id from contract + supplier_id = None async with get_sor_context(env, 'supplychain') as sor: rows = await sor.sqlExe( - "SELECT s.orgid FROM suppliers s " - "JOIN supply_contracts sc ON sc.supplier_id = s.id " - "WHERE sc.id = ${cid}$", + "SELECT supplier_id FROM supply_contracts WHERE id = ${cid}$", {'cid': contract_id} ) if rows: - supplier_orgid = rows[0].orgid - if not supplier_orgid: + supplier_id = rows[0].supplier_id + if not supplier_id: return [] - # Get products from sage — join through product_resource_supplier + # Get products from sage — filter by providerid = supplier_id products = [] async with get_sor_context(env, 'sage') as sor: rows = await sor.sqlExe( - "SELECT DISTINCT p.id as productid, p.product_name, p.product_code, " + "SELECT p.id as productid, p.product_name, p.product_code, " "p.price as sale_price, pc.id as category_id, pc.name as category_name " "FROM product p " - "JOIN product_resource_supplier prs ON p.resource_ref_id = prs.product_resource_id " "LEFT JOIN product_category pc ON p.category_id = pc.id " - "WHERE p.status = '1' AND prs.supplier_org_id = ${oid}$ AND prs.status = '1' " + "WHERE p.status = '1' AND p.providerid = ${sid}$ " "ORDER BY pc.sort_order, pc.name, p.sort_order, p.product_name", - {'oid': supplier_orgid} + {'sid': supplier_id} ) for r in rows: products.append({