From 4a0b9db82a051b39e038a2507fbdb402d8bb3a2b Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 3 Jul 2026 15:41:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20follow=20CRUD=20add=5Fllm=20pattern=20ex?= =?UTF-8?q?actly=20=E2=80=94=20ns.copy(),=20sor.C,=20no=20param=20cleaning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wwwroot/api/supply_contracts_create.dspy | 34 ++++++++++++++---------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/wwwroot/api/supply_contracts_create.dspy b/wwwroot/api/supply_contracts_create.dspy index d646dbe..a329cb9 100644 --- a/wwwroot/api/supply_contracts_create.dspy +++ b/wwwroot/api/supply_contracts_create.dspy @@ -1,11 +1,18 @@ -user_id = await get_user() -user_orgid = (await get_userorgid()) or '0' -dbname = get_module_dbname('supplychain') ns = params_kw.copy() -ns['id'] = getID() -ns['resellerid'] = user_orgid -ns['created_by'] = user_id +for k,v in ns.items(): + if v == 'NaN' or v == 'null': + ns[k] = None +id = params_kw.id +if not id or len(id) > 32: + id = getID() +ns['id'] = id + +userorgid = await get_userorgid() +if not userorgid: + return json.dumps({'widgettype':'Error','options':{'title':'Authorization Error','message':'Please login'}}, ensure_ascii=False) +ns['resellerid'] = userorgid +ns['created_by'] = userorgid ns['created_at'] = timestampstr() ns['updated_at'] = timestampstr() @@ -14,20 +21,19 @@ if not ns.get('contract_code'): today = curDateString().replace('-', '') prefix = f'SC-{today}' db = DBPools() + dbname = get_module_dbname('supplychain') async with db.sqlorContext(dbname) as sor: recs = await sor.sqlExe( "SELECT COUNT(*) as cnt FROM supply_contracts WHERE resellerid = ${rid}$ AND contract_code LIKE ${p}$", - {"rid": user_orgid, "p": prefix + "%"} + {"rid": userorgid, "p": prefix + "%"} ) seq = (recs[0].cnt if recs else 0) + 1 ns['contract_code'] = f'{prefix}-{seq:04d}' -# Clean non-column keys -for k in list(ns.keys()): - if k.endswith('_text') or k.startswith('_') or k in ('page', 'rows', 'pagerows', 'data_filter', 'referer_widget'): - ns.pop(k, None) - db = DBPools() +dbname = get_module_dbname('supplychain') async with db.sqlorContext(dbname) as sor: - await sor.C('supply_contracts', ns) -return json.dumps({'widgettype':'Message','options':{'title':'Success','message':'供应合同创建成功'}}, ensure_ascii=False) + await sor.C('supply_contracts', ns.copy()) + return json.dumps({'widgettype':'Message','options':{'title':'Add Success','message':'供应合同创建成功'}}, ensure_ascii=False) + +return json.dumps({'widgettype':'Error','options':{'title':'Add Error','message':'failed'}}, ensure_ascii=False)