supplychain/wwwroot/api/import_supplier_product.dspy
yumoqing dff8b0de2a feat(supplychain): P0 平台内供应链 - 供销关系/产品映射/跨组织引入
新增3张核心表:
- platform_supply_relations: 平台内org-to-org供销关系(分销/代理/直供)
- platform_supply_products: 供销产品明细(供货价/折扣/佣金)
- product_supplier_mapping: 统一产品供应映射(内部+外部)

新增3个业务API:
- query_platform_suppliers: 查询平台可用供应方机构
- query_platform_products: 查询供应方产品目录
- import_supplier_product: 引入供应方产品到需求方

更新: init/data.json(6组appcodes), load_path.py(RBAC权限), menu.ui(分组菜单)
2026-06-05 22:11:33 +08:00

46 lines
1.8 KiB
Plaintext

import json
from sqlor import sqlExe
from uuid import uuid4
from datetime import datetime
# 引入供应方产品到需求方:创建 product_supplier_mapping 记录
source_product_id = params_kw.get("source_product_id", "")
supplier_org_id = params_kw.get("supplier_org_id", "")
relation_id = params_kw.get("relation_id", "")
supply_price = params_kw.get("supply_price", "0")
suggested_retail_price = params_kw.get("suggested_retail_price", "")
min_order_qty = params_kw.get("min_order_qty", "1")
if not all([source_product_id, supplier_org_id, relation_id]):
print(json.dumps({"status": "error", "message": "source_product_id, supplier_org_id, relation_id are required"}))
else:
user_org_id = await get_user_orgid()
new_id = uuid4().hex
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 获取产品分类
prod_sql = "SELECT category_id FROM product WHERE id = ${pid}$"
prod = await sqlExe(prod_sql, {"pid": source_product_id})
cat_id = prod[0].category_id if prod else ""
sql = """
INSERT INTO product_supplier_mapping
(id, product_id, product_category_id, supplier_type, supplier_org_id,
buyer_org_id, supply_price, min_order_qty, status, relation_id, created_at)
VALUES
(${id}$, ${product_id}$, ${category_id}$, 'internal', ${supplier_org_id}$,
${buyer_org_id}$, ${supply_price}$, ${min_order_qty}$, '1', ${relation_id}$, ${created_at}$)
"""
await sqlExe(sql, {
"id": new_id,
"product_id": source_product_id,
"category_id": cat_id,
"supplier_org_id": supplier_org_id,
"buyer_org_id": user_org_id,
"supply_price": supply_price,
"min_order_qty": min_order_qty,
"relation_id": relation_id,
"created_at": now
})
print(json.dumps({"status": "ok", "message": "产品引入成功", "id": new_id}))