72 lines
3.5 KiB
Plaintext
72 lines
3.5 KiB
Plaintext
|
||
async def save_apv_flow(ns={}):
|
||
flag = ns.get("flag", "").lower()
|
||
if flag not in ["add", "update"]:
|
||
return {"status": False, "msg": f"参数解析错误,请检查参数:flag"}
|
||
db = DBPools()
|
||
try:
|
||
async with db.sqlorContext('kboss') as sor:
|
||
try:
|
||
user_id = ns["user_id"]
|
||
orgid = ns["orgid"]
|
||
business_id = ns["business_id"]
|
||
level_data = ns["level_data"]
|
||
except Exception as e:
|
||
return {"status": False, "msg": f"参数解析错误,请检查参数:{e}"}
|
||
if not isinstance(level_data, list):
|
||
return {"status": False, "msg": f"参数类型错误,请检查参数:{level_data}"}
|
||
for _f, l in enumerate(level_data):
|
||
try:
|
||
level_mode = l["level_mode"]
|
||
apv_dd_user_phone = l["apv_dd_user_phone"]
|
||
except Exception as e:
|
||
return {"status": False, "msg": f"参数解析错误,请检查参数:{e}"}
|
||
if not isinstance(apv_dd_user_phone, list):
|
||
return {"status": False, "msg": f"参数类型错误,请检查参数:{apv_dd_user_phone}"}
|
||
if len(apv_dd_user_phone) == 1 and level_mode != "NONE":
|
||
return {"status": False, "msg": f"审核模式错误,一个审批人必须为'单人审批'"}
|
||
|
||
for _f, l in enumerate(level_data):
|
||
level_id = l["level_id"]
|
||
level_mode = l["level_mode"]
|
||
apv_dd_user_phone = l["apv_dd_user_phone"]
|
||
for i, p in enumerate(apv_dd_user_phone):
|
||
|
||
# 通过手机号获取发送人userid
|
||
resp = await get_id_by_phone(orgid=orgid, phone=p)
|
||
info(f"get_id_by_phone_resp:{resp}")
|
||
if not resp['status']:
|
||
return {"status": False, "msg": f"钉钉用户id获取失败,请检查手机号:{p}"}
|
||
|
||
dd_user_id = resp['user_id']
|
||
data = {
|
||
"user_id": user_id, # '用户id',
|
||
"orgid": orgid, # '机构id',
|
||
"business_id": business_id, # '业务id',
|
||
"level": level_id, # '节点级别',
|
||
"mode": level_mode, # 节点审核模式,会签:AND;或签:OR;单人:NONE',
|
||
"apv_dd_user_id_index": i, # '节点审核人员id index',
|
||
"apv_dd_user_id": dd_user_id, # '节点审核人员id',
|
||
"apv_dd_user_phone":p # '节点审核人员手机号',
|
||
|
||
}
|
||
|
||
if flag == "update":
|
||
if _f == 0 and i == 0:
|
||
sql = "update apv_flow set del_flg = 1 ,update_at=${update_at}$ where orgid=${orgid}$ and business_id=${business_id}$"
|
||
await sor.sqlExe(sql, {"orgid": orgid, "update_at": f"{datetime.datetime.now()}", "business_id": business_id})
|
||
else:
|
||
pass
|
||
else:
|
||
pass
|
||
data["id"] = uuid()
|
||
await sor.C("apv_flow", data)
|
||
return {"status": True, "msg": "保存成功"}
|
||
except Exception as e:
|
||
return {"status": False, "msg": f"数据库操作失败:{e}"}
|
||
return {"status": False, "msg": f"数据库操作失败"}
|
||
|
||
|
||
ret = await save_apv_flow(params_kw)
|
||
return ret
|