From a61cd6f0602c429ad1cd5a7f8f947e3268adafc5 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Thu, 11 Sep 2025 16:54:27 +0700 Subject: [PATCH] sort org/workflow/commander/operate --- src/controllers/WorkflowController.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/controllers/WorkflowController.ts b/src/controllers/WorkflowController.ts index 06b2059e..0938b267 100644 --- a/src/controllers/WorkflowController.ts +++ b/src/controllers/WorkflowController.ts @@ -809,6 +809,8 @@ export class WorkflowController extends Controller { pageSize: number; keycloakId?: string | null; type?: string | null; + sortBy?: string | null, + descending?: boolean, }, ) { const userKeycloak = body.keycloakId ?? request.user.sub; @@ -946,7 +948,7 @@ export class WorkflowController extends Controller { ? AppDataSource.getRepository(viewDirectorActing) : AppDataSource.getRepository(viewDirector); - const queryBuilder = repository.createQueryBuilder("entity"); + let queryBuilder = repository.createQueryBuilder("entity"); // 5. แยก WHERE conditions ให้เร็วขึ้น queryBuilder.where( @@ -985,6 +987,13 @@ export class WorkflowController extends Controller { ); } + if (body.sortBy) { + queryBuilder = queryBuilder.orderBy( + `entity.${body.sortBy}`, + body.descending ? "DESC" : "ASC" + ); + } + // 7. Execute พร้อมกัน - ใช้ Promise.all const [data, total] = await Promise.all([ queryBuilder