diff --git a/src/controllers/07-task-controller.ts b/src/controllers/07-task-controller.ts index 6e22f77..557445f 100644 --- a/src/controllers/07-task-controller.ts +++ b/src/controllers/07-task-controller.ts @@ -499,7 +499,30 @@ export class TaskActionController extends Controller { @Post("complete") @Security("keycloak") - async completeTaskOrder(@Request() req: RequestWithUser, @Path() taskOrderId: string) {} + async completeTaskOrder( + @Request() req: RequestWithUser, + @Path() taskOrderId: string, + @Query() submitUserId?: string, + ) { + submitUserId = submitUserId ?? req.user.sub; + + const record = await prisma.taskOrder.findFirst({ where: { id: taskOrderId } }); + + if (!record) throw notFoundError("Task Order"); + + await prisma.$transaction([ + prisma.task.updateMany({ + where: { + taskOrderId: taskOrderId, + taskStatus: TaskStatus.Validate, + requestWorkStep: { responsibleUserId: submitUserId }, + }, + data: { + taskStatus: TaskStatus.Complete, + }, + }), + ]); + } } @Route("api/v1/task-order/{taskOrderId}")