diff --git a/src/controllers/07-task-controller.ts b/src/controllers/07-task-controller.ts index ccea097..dfb9ced 100644 --- a/src/controllers/07-task-controller.ts +++ b/src/controllers/07-task-controller.ts @@ -421,80 +421,6 @@ export class TaskController extends Controller { @Route("/api/v1/task-order/{taskOrderId}") @Tags("Task Order") export class TaskActionController extends Controller { - @Post("accept/bulk") - @Security("keycloak") - async acceptTaskOrderBulk( - @Request() req: RequestWithUser, - @Body() - body: { - taskOrderId: string[]; - }, - ) { - const record = await prisma.taskOrder.findMany({ - include: { - taskList: { - orderBy: { step: "asc" }, - }, - }, - where: { id: { in: body.taskOrderId } }, - }); - - if (!record) throw notFoundError("Task Order"); - - await prisma.$transaction(async (tx) => { - const promises = body.taskOrderId.flatMap((taskOrderId) => [ - tx.taskOrder.update({ - where: { id: taskOrderId }, - data: { - taskOrderStatus: TaskOrderStatus.InProgress, - userTask: { - create: { - userId: req.user.sub, - userTaskStatus: UserTaskStatus.Accept, - }, - }, - }, - }), - tx.task.updateMany({ - where: { - taskOrderId: taskOrderId, - requestWorkStep: { responsibleUserId: req.user.sub }, - }, - data: { - taskStatus: TaskStatus.InProgress, - }, - }), - tx.requestData.updateMany({ - where: { - requestWork: { - some: { - stepStatus: { - some: { task: { some: { taskOrderId: taskOrderId } } }, - }, - }, - }, - }, - data: { requestDataStatus: RequestDataStatus.InProgress }, - }), - tx.userTask.create({ - data: { - userId: req.user.sub, - taskOrderId: taskOrderId, - userTaskStatus: UserTaskStatus.Accept, - }, - }), - ]); - - await Promise.all(promises); - }); - } - - @Post("accept") - @Security("keycloak") - async acceptTaskOrder(@Request() req: RequestWithUser, @Path() taskOrderId: string) { - await this.acceptTaskOrderBulk(req, { taskOrderId: [taskOrderId] }); - } - @Post("set-task-status") @Security("keycloak") async changeTaskOrderTaskListStatus( @@ -625,7 +551,7 @@ export class TaskOrderAttachmentController extends Controller { } @Route("api/v1/user-task-order") -@Tags("Task Order") +@Tags("User Task Order") export class UserTaskController extends Controller { @Get() @Security("keycloak") @@ -689,4 +615,72 @@ export class UserTaskController extends Controller { total, }; } + + @Post("accept") + @Security("keycloak") + async acceptTaskOrder( + @Request() req: RequestWithUser, + @Body() + body: { + taskOrderId: string[]; + }, + ) { + const record = await prisma.taskOrder.findMany({ + include: { + taskList: { + orderBy: { step: "asc" }, + }, + }, + where: { id: { in: body.taskOrderId } }, + }); + + if (!record) throw notFoundError("Task Order"); + + await prisma.$transaction(async (tx) => { + const promises = body.taskOrderId.flatMap((taskOrderId) => [ + tx.taskOrder.update({ + where: { id: taskOrderId }, + data: { + taskOrderStatus: TaskOrderStatus.InProgress, + userTask: { + create: { + userId: req.user.sub, + userTaskStatus: UserTaskStatus.Accept, + }, + }, + }, + }), + tx.task.updateMany({ + where: { + taskOrderId: taskOrderId, + requestWorkStep: { responsibleUserId: req.user.sub }, + }, + data: { + taskStatus: TaskStatus.InProgress, + }, + }), + tx.requestData.updateMany({ + where: { + requestWork: { + some: { + stepStatus: { + some: { task: { some: { taskOrderId: taskOrderId } } }, + }, + }, + }, + }, + data: { requestDataStatus: RequestDataStatus.InProgress }, + }), + tx.userTask.create({ + data: { + userId: req.user.sub, + taskOrderId: taskOrderId, + userTaskStatus: UserTaskStatus.Accept, + }, + }), + ]); + + await Promise.all(promises); + }); + } } diff --git a/tsoa.json b/tsoa.json index bae95d0..7c98d13 100644 --- a/tsoa.json +++ b/tsoa.json @@ -49,7 +49,9 @@ { "name": "Invoice" }, { "name": "Payment" }, { "name": "Receipt" }, - { "name": "Request List" } + { "name": "Request List" }, + { "name": "Task Order" }, + { "name": "User Task Order" } ] } },