- 修复12个.dspy文件: 移除import/print, 改用return - init.py: 添加9个P0 CRUD函数 + 单复数兼容注册 - load_path.py: 补充15个CRUD子目录路径 - README.md: 添加P0表说明 + 业务API + 部署清单 - global_menu.ui: 已有supplychain入口(验证通过)
38 lines
1.6 KiB
Plaintext
38 lines
1.6 KiB
Plaintext
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")
|
|
min_order_qty = params_kw.get("min_order_qty", "1")
|
|
|
|
if not all([source_product_id, supplier_org_id, relation_id]):
|
|
return json.dumps({"status": "error", "message": "source_product_id, supplier_org_id, relation_id are required"})
|
|
|
|
user_org_id = await get_userorgid()
|
|
new_id = getID()
|
|
now = curDateString() + " " + timestampstr()[:8]
|
|
|
|
async with get_sor_context(request._run_ns, 'sage') as sor:
|
|
prod = await sor.sqlExe("SELECT category_id FROM product WHERE id = ${pid}$", {"pid": source_product_id})
|
|
cat_id = prod[0].category_id if prod else ""
|
|
|
|
await sor.sqlExe("""
|
|
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}$)
|
|
""", {
|
|
"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
|
|
})
|
|
|
|
return json.dumps({"status": "ok", "message": "产品引入成功", "id": new_id})
|