Files
SMANAGE/_api_backup/TempLateAPI/GERP/API/Department copy/Add.api
T
2026-06-16 11:55:14 +08:00

59 lines
1.9 KiB
Plaintext

from PDAPI import *
__metadata__ = {
"methods": ["POST"],
"blueprint": "GERP",
"permission": 3.0,
"attributes": [],
"limit": "1 per second",
"args": [
{"Name": "DepartmentUUID", "Type": "UUID"},
{"Name": "UserUUIDs", "Type": "str"}
]
}
def HandleRequest():
UserUUIDs = flask.request.form.get("UserUUIDs")
DepartmentUUID = flask.request.form.get("DepartmentUUID")
if not UserUUIDs:
return {"code": 400, "msg": "参数缺失: UserUUIDs"}
if not DepartmentUUID:
return {"code": 400, "msg": "参数缺失: DepartmentUUID"}
if not (Department := GERPDepartment.query.filter(
GERPDepartment.DepartmentUUID == Get16toBytes(DepartmentUUID)
).first()):
return {"code": 1, "msg": "部门 不存在"}
user_uuid_list = [uuid.strip() for uuid in UserUUIDs.split('\n') if uuid.strip()]
if not user_uuid_list:
return {"code": 400, "msg": "参数缺失: UserUUIDs"}
added_count = 0
for user_uuid in user_uuid_list:
if not (User := GERPUser.query.filter(
GERPUser.UserUUID == Get16toBytes(user_uuid)
).first()):
continue
if not GERPSMTM.query.filter(
GERPSMTM.DepartmentUUID == Get16toBytes(DepartmentUUID),
GERPSMTM.UserUUID == Get16toBytes(user_uuid)
).first():
new_smtm = GERPSMTM(
DepartmentUUID=Get16toBytes(DepartmentUUID),
UserUUID=Get16toBytes(user_uuid),
PersonInChargeStatus=0
)
db.session.add(new_smtm)
added_count += 1
try:
db.session.commit()
return {"code": 0, "msg": f"成功添加 {added_count} 个成员"}
except:
print(traceback.print_exc())
db.session.rollback()
return {"code": 1, "msg": "SQL 提交失败"}