diff --git a/backend/app/api/v1/endpoints/tasks.py b/backend/app/api/v1/endpoints/tasks.py index 6ffe78e..c98627d 100644 --- a/backend/app/api/v1/endpoints/tasks.py +++ b/backend/app/api/v1/endpoints/tasks.py @@ -1,7 +1,7 @@ """任务 API 端点 — 核心业务:接收、驳回返工、裂变转交、无限嵌套子任务""" from __future__ import annotations import uuid -from fastapi import APIRouter, Depends, Query +from fastapi import APIRouter, Depends, Query, Body from sqlalchemy.ext.asyncio import AsyncSession from app.core.database import get_db @@ -110,16 +110,17 @@ async def complete_task_endpoint( async def receive_task_endpoint( task_id: str, operator_id: str | None = Query(None, description="操作人ID"), + remark: str | None = Body(None, description="接收备注", embed=True), db: AsyncSession = Depends(get_db), ): """ **确认接收任务。** 校验:只有状态为 PENDING 的任务可接收。 - 动作:将状态改为 WIP,记录 received_at 为当前时间。 + 动作:将状态改为 WIP,记录 received_at 为当前时间,写入 remark。 """ return await task_service.receive_task( - db, uuid.UUID(task_id), operator_id + db, uuid.UUID(task_id), operator_id, remark ) diff --git a/backend/app/services/task_service.py b/backend/app/services/task_service.py index 1876611..63a612a 100644 --- a/backend/app/services/task_service.py +++ b/backend/app/services/task_service.py @@ -227,13 +227,14 @@ async def get_all_tasks( # ============================================================ async def receive_task( - db: AsyncSession, task_id: uuid.UUID, operator_id: str | None = None + db: AsyncSession, task_id: uuid.UUID, operator_id: str | None = None, + remark: str | None = None, ) -> TaskResponse: """ 操作员确认接收任务。 校验:只有状态为 PENDING 的任务可接收。 - 动作:状态改为 WIP,记录 received_at 为当前时间。 + 动作:状态改为 WIP,记录 received_at,写入 remark。 """ task = await _get_task_or_404(db, task_id) @@ -247,12 +248,14 @@ async def receive_task( now = get_beijing_time() task.status = TASK_STATUS_WIP task.received_at = now + if remark: + task.remark = remark await _create_task_log( db, task_id, action_type="receive", operator_id=operator_id, - remark=f"操作员确认接收任务「{task.task_name}」", + remark=remark or f"操作员确认接收任务「{task.task_name}」", ) await db.commit() diff --git a/track-uniapp/src/pages/scan/detail.vue b/track-uniapp/src/pages/scan/detail.vue index 70dceb8..164e6fb 100644 --- a/track-uniapp/src/pages/scan/detail.vue +++ b/track-uniapp/src/pages/scan/detail.vue @@ -224,6 +224,7 @@ 确认接收任务 {{ actionPopup.task && actionPopup.task.task_name }} 状态: {{ statusLabel(actionPopup.task && actionPopup.task.status) }} → 进行中 +