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": ["admin:workorder_read"], "limit": "30 per minute", "route": "{DEFAULT_ROUTE}/", "args": [] } def HandleRequest(_CleanedData): current_user = UGM.GetELTUser() if not current_user: return {"code": 401, "msg": "未登录"}, 401 order_uuid_str = _CleanedData["params"].get("order_uuid", "").strip() if not order_uuid_str: return {"code": 1, "msg": "缺少工单ID"}, 400 try: order_uuid = UUIDObj(order_uuid_str) except: return {"code": 1, "msg": "无效的工单ID"}, 400 order = GERPWorkOrder.query.filter(GERPWorkOrder.OrderUUID == order_uuid).first() if not order: return {"code": 1, "msg": "工单不存在"}, 404 creator_name = order.Creator.UserName if order.Creator else "" assignee_name = "" if order.AssigneeUUID: assignee_user = GERPUser.query.filter(GERPUser.UserUUID == order.AssigneeUUID).first() if assignee_user: assignee_name = assignee_user.UserName return { "code": 0, "data": { "orderUUID": UUIDObj(order.OrderUUID).UpperStr, "title": order.Title, "description": order.Description, "category": order.Category, "categoryDisplay": CATEGORY_MAP.get(order.Category, order.Category), "priority": order.Priority, "priorityDisplay": PRIORITY_MAP.get(order.Priority, "低"), "status": order.Status, "statusDisplay": STATUS_MAP.get(order.Status, "未知"), "creatorName": creator_name, "assigneeName": assignee_name, "assigneeUUID": UUIDObj(order.AssigneeUUID).UpperStr if order.AssigneeUUID else None, "resolution": order.Resolution, "createTime": order.CreateTime.strftime("%Y-%m-%d %H:%M:%S") if order.CreateTime else None, "updateTime": order.UpdateTime.strftime("%Y-%m-%d %H:%M:%S") if order.UpdateTime else None, "closeTime": order.CloseTime.strftime("%Y-%m-%d %H:%M:%S") if order.CloseTime else None, } }, 200