feat: 状态渲染修复+中文姓名映射+SUPERVISOR/SUPER_ADMIN权限控制(前端+后端)

This commit is contained in:
2026-08-07 17:26:14 +08:00
parent 592bde7cab
commit 65ff05fb2f
4 changed files with 110 additions and 43 deletions

View File

@ -3,6 +3,7 @@ from __future__ import annotations
import uuid
from fastapi import APIRouter, Depends, Query, Body
from pydantic import BaseModel, Field
from app.services.auth_service import get_current_user
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.database import get_db
@ -173,6 +174,7 @@ async def receive_task_endpoint(
remark: str | None = Body(None, description="接收备注", embed=True),
task_name: str | None = Body(None, description="接收人选定的工序名称", embed=True),
db: AsyncSession = Depends(get_db),
current_user: dict = Depends(get_current_user),
):
"""
**确认接收任务。工人选定工序名称后接收。**
@ -181,7 +183,8 @@ async def receive_task_endpoint(
动作:状态改为 WIP记录 received_at更新 task_name同步产品宏观状态。
"""
return await task_service.receive_task(
db, uuid.UUID(task_id), operator_id, remark, task_name
db, uuid.UUID(task_id), operator_id, remark, task_name,
operator_role=current_user.get("role"),
)
@ -195,6 +198,7 @@ async def reject_task_endpoint(
request: TaskRejectRequest,
operator_id: str | None = Query(None, description="操作人ID"),
db: AsyncSession = Depends(get_db),
current_user: dict = Depends(get_current_user),
):
"""
**品质驳回:将任务标记为 REJECTED自动创建返工任务。**
@ -205,7 +209,8 @@ async def reject_task_endpoint(
3. 为该负责人新建返工任务is_rework=True, status=PENDING
"""
return await task_service.reject_task(
db, uuid.UUID(task_id), request, operator_id
db, uuid.UUID(task_id), request, operator_id,
operator_role=current_user.get("role"),
)
@ -219,6 +224,7 @@ async def transfer_task_endpoint(
request: TaskTransferRequest,
operator_id: str | None = Query(None, description="操作人ID"),
db: AsyncSession = Depends(get_db),
current_user: dict = Depends(get_current_user),
):
"""
**完工并裂变转交:完成当前任务,批量创建下一道工序任务。**
@ -237,7 +243,8 @@ async def transfer_task_endpoint(
- 否则 → 顶层同级转交。
"""
return await task_service.transfer_task(
db, uuid.UUID(task_id), request, operator_id
db, uuid.UUID(task_id), request, operator_id,
operator_role=current_user.get("role"),
)