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

58 lines
2.2 KiB
Plaintext

from PDAPI import *
CATEGORY_MAP = {"bug": "缺陷", "feature": "功能", "question": "疑问", "account": "账号", "other": "其他"}
PRIORITY_MAP = {0: "低", 1: "中", 2: "高", 3: "紧急"}
STATUS_MAP = {0: "待处理", 1: "处理中", 2: "已解决", 3: "已关闭", -1: "已拒绝"}
__metadata__ = {
"methods": ["GET"],
"blueprint": "GERP",
"permission": 1.0,
"attributes": [],
"limit": "30 per minute",
"args": [
{"Name": "page", "Type": "int", "Default": 1, "Required": False},
{"Name": "pageSize", "Type": "int", "Default": 20, "Required": False},
{"Name": "status", "Type": "int", "Default": None, "Required": False},
]
}
def HandleRequest(_CleanedData):
current_user = UGM.GetELTUser()
if not current_user:
return {"code": 401, "msg": "未登录"}, 401
page = _CleanedData["args"].get("page", 1)
page_size = _CleanedData["args"].get("pageSize", 20)
status_filter = _CleanedData["args"].get("status")
query = GERPWorkOrder.query.filter(GERPWorkOrder.CreatorUUID == current_user.UserUUID)
if status_filter is not None:
try:
query = query.filter(GERPWorkOrder.Status == int(status_filter))
except:
pass
query = query.order_by(GERPWorkOrder.CreateTime.desc())
total = query.count()
items = query.offset((page - 1) * page_size).limit(page_size).all()
orders = []
for item in items:
orders.append({
"orderUUID": UUIDObj(item.OrderUUID).UpperStr,
"title": item.Title,
"category": item.Category,
"categoryDisplay": CATEGORY_MAP.get(item.Category, item.Category),
"priority": item.Priority,
"priorityDisplay": PRIORITY_MAP.get(item.Priority, "低"),
"status": item.Status,
"statusDisplay": STATUS_MAP.get(item.Status, "未知"),
"createTime": item.CreateTime.strftime("%Y-%m-%d %H:%M:%S") if item.CreateTime else None,
"updateTime": item.UpdateTime.strftime("%Y-%m-%d %H:%M:%S") if item.UpdateTime else None,
})
return {"code": 0, "data": {"orders": orders, "total": total, "page": page, "pageSize": page_size}}, 200