feat: 人类任务清单 dspy(my_todos/project_human_count/human_task_create/complete) + bug_accept 验收 dspy
This commit is contained in:
parent
a3cba2ea49
commit
56b40e4fc5
17
wwwroot/api/bug_accept.dspy
Normal file
17
wwwroot/api/bug_accept.dspy
Normal file
@ -0,0 +1,17 @@
|
||||
# bug_accept.dspy - Bug 验收(仅报告人):通过→closed,不通过→reopen
|
||||
|
||||
user_id = await get_user()
|
||||
if not user_id:
|
||||
return json.dumps({"success": False, "error": "未登录"}, ensure_ascii=False)
|
||||
|
||||
bug_id = params_kw.get('bug_id', '').strip()
|
||||
accept = params_kw.get('accept', '').strip().lower() in ('1', 'true', 'yes', '通过')
|
||||
comment = params_kw.get('comment', '')
|
||||
|
||||
if not bug_id:
|
||||
return json.dumps({"success": False, "error": "缺少 bug_id"}, ensure_ascii=False)
|
||||
|
||||
ok, msg = await bug_accept(bug_id, accept, user_id, comment=comment)
|
||||
if ok:
|
||||
return json.dumps({"success": True, "message": msg}, ensure_ascii=False)
|
||||
return json.dumps({"success": False, "error": msg}, ensure_ascii=False)
|
||||
21
wwwroot/api/human_task_complete.dspy
Normal file
21
wwwroot/api/human_task_complete.dspy
Normal file
@ -0,0 +1,21 @@
|
||||
# human_task_complete.dspy - 处理人类任务(同机构 + 匹配 assignee)
|
||||
|
||||
user_id = await get_user()
|
||||
if not user_id:
|
||||
return json.dumps({"success": False, "error": "未登录"}, ensure_ascii=False)
|
||||
|
||||
human_task_id = params_kw.get('human_task_id', '').strip()
|
||||
result_data = params_kw.get('result_data', '')
|
||||
if isinstance(result_data, str):
|
||||
try:
|
||||
result_data = json.loads(result_data) if result_data else {}
|
||||
except Exception:
|
||||
result_data = {"content": result_data}
|
||||
|
||||
if not human_task_id:
|
||||
return json.dumps({"success": False, "error": "缺少 human_task_id"}, ensure_ascii=False)
|
||||
|
||||
ok, msg = await complete_human_task(human_task_id, result_data, operator_id=user_id)
|
||||
if ok:
|
||||
return json.dumps({"success": True, "id": msg}, ensure_ascii=False)
|
||||
return json.dumps({"success": False, "error": msg}, ensure_ascii=False)
|
||||
27
wwwroot/api/human_task_create.dspy
Normal file
27
wwwroot/api/human_task_create.dspy
Normal file
@ -0,0 +1,27 @@
|
||||
# human_task_create.dspy - 派发项目级人类任务(仅项目 owner)
|
||||
|
||||
user_id = await get_user()
|
||||
if not user_id:
|
||||
return json.dumps({"success": False, "error": "未登录"}, ensure_ascii=False)
|
||||
|
||||
project_id = params_kw.get('project_id', '').strip()
|
||||
title = params_kw.get('title', '').strip()
|
||||
description = params_kw.get('description', '')
|
||||
assignee_role = params_kw.get('assignee_role', '').strip()
|
||||
assignee_id = params_kw.get('assignee_id', '').strip()
|
||||
|
||||
if not project_id or not title:
|
||||
return json.dumps({"success": False, "error": "缺少 project_id 或 title"}, ensure_ascii=False)
|
||||
|
||||
dbname = get_module_dbname('pipeline-sdlc')
|
||||
async with DBPools().sqlorContext(dbname) as sor:
|
||||
ok, emsg = await check_project_owner(project_id, user_id, sor)
|
||||
if not ok:
|
||||
return json.dumps({"success": False, "error": emsg}, ensure_ascii=False)
|
||||
|
||||
ok, msg = await create_human_task(project_id, title, description,
|
||||
assignee_role=assignee_role, assignee_id=assignee_id,
|
||||
created_by=user_id)
|
||||
if ok:
|
||||
return json.dumps({"success": True, "id": msg}, ensure_ascii=False)
|
||||
return json.dumps({"success": False, "error": msg}, ensure_ascii=False)
|
||||
9
wwwroot/api/my_todos.dspy
Normal file
9
wwwroot/api/my_todos.dspy
Normal file
@ -0,0 +1,9 @@
|
||||
# my_todos.dspy - 我的待办(跨项目:人类任务 + bug 验收 + 冒泡问题)
|
||||
|
||||
user_id = await get_user()
|
||||
if not user_id:
|
||||
return json.dumps({"success": False, "error": "未登录"}, ensure_ascii=False)
|
||||
|
||||
todos = await list_my_human_todos(user_id)
|
||||
|
||||
return json.dumps({"success": True, "todos": todos}, ensure_ascii=False, default=str)
|
||||
10
wwwroot/api/project_human_count.dspy
Normal file
10
wwwroot/api/project_human_count.dspy
Normal file
@ -0,0 +1,10 @@
|
||||
# project_human_count.dspy - 项目角标 X = 指派给本人的待办数(问题+人类任务)
|
||||
|
||||
user_id = await get_user()
|
||||
if not user_id:
|
||||
return json.dumps({"count": 0}, ensure_ascii=False)
|
||||
|
||||
project_id = params_kw.get('project_id', '').strip()
|
||||
count = await count_my_human_tasks(user_id, project_id)
|
||||
|
||||
return json.dumps({"count": count}, ensure_ascii=False)
|
||||
Loading…
x
Reference in New Issue
Block a user