From 42c8f34f1510483d430cb29f99d8e538d8cbd7d6 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 21 Oct 2025 10:12:23 +0700 Subject: [PATCH] fix script: retire remove from org --- src/controllers/OrganizationController.ts | 83 ++++++++++++++--------- 1 file changed, 51 insertions(+), 32 deletions(-) diff --git a/src/controllers/OrganizationController.ts b/src/controllers/OrganizationController.ts index 47e97934..8544c1f3 100644 --- a/src/controllers/OrganizationController.ts +++ b/src/controllers/OrganizationController.ts @@ -7321,41 +7321,30 @@ export class OrganizationController extends Controller { } /** - * API ลบคนในโครงสร้าง + * API ลบข้าราชการในโครงสร้าง * - * @summary - ลบคนในโครงสร้าง (ADMIN) + * @summary - ลบข้าราชการในโครงสร้าง (ADMIN) * */ - @Get("delete/profile/org/{orgRevisionId}") - async deleteRetireInOrg(@Path() orgRevisionId: string, @Request() request: RequestWithUser) { - const [posMasters, posMastersEmployee] = await Promise.all([ - this.posMasterRepository.find({ - where: { - orgRevisionId, - current_holder: { - isLeave: true, - isRetirement: true, - leaveType: IsNull(), - }, - positions: { positionIsSelected: true }, + @Get("delete/profile-officer/org/{orgRevisionId}") + async deleteOfficerRetireInOrg( + @Path() orgRevisionId: string, + @Request() request: RequestWithUser, + ) { + const posMasters = await this.posMasterRepository.find({ + where: { + orgRevisionId, + current_holderId: Not(IsNull()), + current_holder: { + isLeave: true, + isRetirement: true, }, - relations: ["positions"], - }), - this.employeePosMasterRepository.find({ - where: { - orgRevisionId, - current_holder: { - isLeave: true, - isRetirement: true, - leaveType: IsNull(), - }, - }, - relations: ["positions"], - }), - ]); + // positions: { positionIsSelected: true }, + }, + relations: ["positions"], + }); let checkOfficer = 0; - let checkEmployee = 0; await Promise.all([ posMasters.map(async (posMaster) => { @@ -7371,6 +7360,38 @@ export class OrganizationController extends Controller { await this.posMasterRepository.save(posMaster); await CreatePosMasterHistoryOfficer(posMaster.id, null); }), + ]); + + return new HttpSuccess({ + totalOfficer: posMasters.length, + officerSuccessAmount: checkOfficer, + }); + } + + /** + * API ลบลูกจ้างในโครงสร้าง + * + * @summary - ลบลูกจ้างในโครงสร้าง (ADMIN) + * + */ + @Get("delete/profile-emp/org/{orgRevisionId}") + async deleteRetireEmpInOrg(@Path() orgRevisionId: string, @Request() request: RequestWithUser) { + const posMastersEmployee = await this.employeePosMasterRepository.find({ + where: { + orgRevisionId, + current_holderId: Not(IsNull()), + current_holder: { + isLeave: true, + isRetirement: true, + }, + // positions: { positionIsSelected: true }, + }, + relations: ["positions"], + }); + + let checkEmployee = 0; + + await Promise.all( posMastersEmployee.map(async (posMaster) => { posMaster.current_holderId = null; posMaster.isSit = false; @@ -7384,12 +7405,10 @@ export class OrganizationController extends Controller { await this.employeePosMasterRepository.save(posMaster); await CreatePosMasterHistoryEmployee(posMaster.id, null); }), - ]); + ); return new HttpSuccess({ - totalOfficer: posMasters.length, totalEmployee: posMastersEmployee.length, - officerSuccessAmount: checkOfficer, employeeSuccessAmount: checkEmployee, }); }