52 lines
1.9 KiB
Plaintext
52 lines
1.9 KiB
Plaintext
from PDAPI import *
|
|
import TempLateAPI.GERP.API.FormAPI.FormData as FormData
|
|
|
|
# 处理添加部门成员请求
|
|
def HandleAddDepartmentMember(table, cleanedData):
|
|
"""处理添加部门成员请求"""
|
|
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": "部门 不存在"}
|
|
|
|
UserUUIDList = [UUID.strip() for UUID in UserUUIDs.split('\n') if UUID.strip()]
|
|
if not UserUUIDList:
|
|
return {"code": 400, "msg": "参数缺失: UserUUIDs"}
|
|
|
|
AddedCount = 0
|
|
for UserUUID in UserUUIDList:
|
|
if not (User := GERPUser.query.filter(
|
|
GERPUser.UserUUID == Get16toBytes(UserUUID)
|
|
).first()):
|
|
continue
|
|
|
|
if not GERPSMTM.query.filter(
|
|
GERPSMTM.DepartmentUUID == Get16toBytes(DepartmentUUID),
|
|
GERPSMTM.UserUUID == Get16toBytes(UserUUID)
|
|
).first():
|
|
NewSMTM = GERPSMTM(
|
|
DepartmentUUID=Get16toBytes(DepartmentUUID),
|
|
UserUUID=Get16toBytes(UserUUID),
|
|
PersonInChargeStatus=0
|
|
)
|
|
db.session.add(NewSMTM)
|
|
AddedCount += 1
|
|
|
|
try:
|
|
db.session.commit()
|
|
return {"code": 0, "msg": f"成功添加 {AddedCount} 个成员"}
|
|
except:
|
|
print(traceback.print_exc())
|
|
db.session.rollback()
|
|
return {"code": 1, "msg": "SQL 提交失败"}
|
|
|
|
# 注册函数类型插件
|
|
FormData.RegisterFunctionExtension("DepartmentMember", "add", HandleAddDepartmentMember) |