新增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(分组菜单)
46 lines
1.8 KiB
Plaintext
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}))
|