From c8ed816a1f3dcf588b912a843a3a33dc381779ec Mon Sep 17 00:00:00 2001 From: harid Date: Thu, 19 Feb 2026 09:32:17 +0700 Subject: [PATCH] =?UTF-8?q?filter=20case=20call=20leave=20server=20error?= =?UTF-8?q?=20#2304=20&=20=E0=B9=80=E0=B8=9E=E0=B8=B4=E0=B9=88=E0=B8=A1?= =?UTF-8?q?=E0=B8=95=E0=B8=B1=E0=B8=A7=E0=B9=80=E0=B8=A5=E0=B8=B7=E0=B8=AD?= =?UTF-8?q?=E0=B8=81=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B8=84=E0=B8=A3=E0=B8=AD?= =?UTF-8?q?=E0=B8=87-=E0=B9=84=E0=B8=A1=E0=B9=88=E0=B8=84=E0=B8=A3?= =?UTF-8?q?=E0=B8=AD=E0=B8=87=E0=B8=95=E0=B8=B3=E0=B9=81=E0=B8=AB=E0=B8=99?= =?UTF-8?q?=E0=B9=88=E0=B8=87=20#2311?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/CommandController.ts | 80 ++++++---------------------- src/controllers/ReportController.ts | 77 ++++++-------------------- 2 files changed, 32 insertions(+), 125 deletions(-) diff --git a/src/controllers/CommandController.ts b/src/controllers/CommandController.ts index b948289e..9a2592fa 100644 --- a/src/controllers/CommandController.ts +++ b/src/controllers/CommandController.ts @@ -5821,7 +5821,6 @@ export class CommandController extends Controller { body.data.map(async (item) => { const profile = await this.profileRepository.findOne({ relations: [ - // "profileSalary", "posType", "posLevel", "current_holders", @@ -5832,11 +5831,6 @@ export class CommandController extends Controller { "current_holders.orgChild4", ], where: { id: item.profileId }, - // order: { - // profileSalary: { - // order: "DESC", - // }, - // }, }); if (!profile) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทะเบียนประวัตินี้"); @@ -5848,46 +5842,19 @@ export class CommandController extends Controller { }); const nextOrder = lastSalary ? lastSalary.order + 1 : 1; const orgRevision = await this.orgRevisionRepo.findOne({ - where: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + where: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false }, }); const orgRevisionRef = profile?.current_holders?.find((x) => x.orgRevisionId == orgRevision?.id) ?? null; - const orgRootRef = orgRevisionRef?.orgRoot ?? null; - const orgChild1Ref = orgRevisionRef?.orgChild1 ?? null; - const orgChild2Ref = orgRevisionRef?.orgChild2 ?? null; - const orgChild3Ref = orgRevisionRef?.orgChild3 ?? null; - const orgChild4Ref = orgRevisionRef?.orgChild4 ?? null; const shortName = - !profile.current_holders || profile.current_holders.length == 0 - ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id) - ?.orgChild4 != null - ? `${profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id)?.orgChild4.orgChild4ShortName}` - : profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id) - ?.orgChild3 != null - ? `${profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id)?.orgChild3.orgChild3ShortName}` - : profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id) - ?.orgChild2 != null - ? `${profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id)?.orgChild2.orgChild2ShortName}` - : profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id) != - null && - profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id) - ?.orgChild1 != null - ? `${profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id)?.orgChild1.orgChild1ShortName}` - : profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id) != - null && - profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id) - ?.orgRoot != null - ? `${profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id)?.orgRoot.orgRootShortName}` - : null; - const posNo = `${profile.current_holders.find((x) => x.orgRevisionId == orgRevision?.id)?.posMasterNo}`; + orgRevisionRef?.orgChild4?.orgChild4ShortName ?? + orgRevisionRef?.orgChild3?.orgChild3ShortName ?? + orgRevisionRef?.orgChild2?.orgChild2ShortName ?? + orgRevisionRef?.orgChild1?.orgChild1ShortName ?? + orgRevisionRef?.orgRoot?.orgRootShortName ?? + null; + const posNo = orgRevisionRef?.posMasterNo?.toString() ?? null; let position = profile.current_holders .filter((x) => x.orgRevisionId == orgRevision?.id)[0] @@ -5907,18 +5874,12 @@ export class CommandController extends Controller { amountSpecial: item.amountSpecial ? item.amountSpecial : null, positionSalaryAmount: item.positionSalaryAmount ? item.positionSalaryAmount : null, mouthSalaryAmount: item.mouthSalaryAmount ? item.mouthSalaryAmount : null, - // order: - // profile.profileSalary.length >= 0 - // ? profile.profileSalary.length > 0 - // ? profile.profileSalary[0].order + 1 - // : 1 - // : null, order: nextOrder, - orgRoot: orgRootRef?.orgRootName ?? null, - orgChild1: orgChild1Ref?.orgChild1Name ?? null, - orgChild2: orgChild2Ref?.orgChild2Name ?? null, - orgChild3: orgChild3Ref?.orgChild3Name ?? null, - orgChild4: orgChild4Ref?.orgChild4Name ?? null, + orgRoot: orgRevisionRef?.orgRoot?.orgRootName ?? null, + orgChild1: orgRevisionRef?.orgChild1?.orgChild1Name ?? null, + orgChild2: orgRevisionRef?.orgChild2?.orgChild2Name ?? null, + orgChild3: orgRevisionRef?.orgChild3?.orgChild3Name ?? null, + orgChild4: orgRevisionRef?.orgChild4?.orgChild4Name ?? null, createdUserId: req.user.sub, createdFullName: req.user.name, lastUpdateUserId: req.user.sub, @@ -5944,19 +5905,8 @@ export class CommandController extends Controller { await this.salaryHistoryRepo.save(history); }), ); - // const checkCommandType = await this.commandRepository.findOne({ - // where: { id: body.data.length > 0 ? body.data[0].commandId?.toString() : "" }, - // relations: ["commandType"], - // }); + if (commandType && String(commandType.code) == "C-PM-11") { - // const profile = await this.profileRepository.find({ - // where: { id: In(body.data.map((x) => x.profileId)) }, - // }); - // const data = profile.map((x) => ({ - // ...x, - // isProbation: false, - // })); - // await this.profileRepository.save(data); const profileIds = body.data.map((x) => x.profileId); await this.profileRepository.update( { id: In(profileIds) }, @@ -5976,6 +5926,8 @@ export class CommandController extends Controller { beginningLeaveDays: 0, beginningLeaveCount: 0, }) + .then(() => {}) + .catch(() => {}) ) ); } diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index 3966fb21..da96d091 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -87,6 +87,7 @@ export class ReportController extends Controller { @Query() isProbation?: boolean, @Query() isRetire?: boolean, @Query() isRetireLaw?: boolean, + @Query() isCurrent?: boolean, @Query() retireType?: string, @Query() tenureType?: string, @Query() tenureMin?: number, @@ -253,62 +254,16 @@ export class ReportController extends Controller { .andWhere(field != null && field != "" ? "registryOfficer.fields LIKE :fields" : "1=1", { fields: `%${field}%`, }) + .andWhere( + isCurrent === undefined || isCurrent === null + ? "1=1" + : isCurrent === true + ? "registryOfficer.posMasterNo IS NOT NULL" + : "registryOfficer.posMasterNo IS NULL", + ) .orderBy(`registryOfficer.${sortBy}`, sort) .getManyAndCount(); - // const mapData1 = await Promise.all( - // lists.map(async (x) => { - // return { - // profileId: x.profileId, - // citizenId: x.citizenId, - // prefix: x.prefix, - // firstName: x.firstName, - // lastName: x.lastName, - // isProbation: x.isProbation, - // isLeave: x.isLeave, - // isRetirement: x.isRetirement, - // leaveType: x.leaveType, - // posMasterNo: x.posMasterNo, - // orgRootId: x.orgRootId, - // orgChild1Id: x.orgChild1Id, - // orgChild2Id: x.orgChild2Id, - // orgChild3Id: x.orgChild3Id, - // orgChild4Id: x.orgChild4Id, - // orgRootName: x.orgRootName, - // orgChild1Name: x.orgChild1Name, - // orgChild2Name: x.orgChild2Name, - // orgChild3Name: x.orgChild3Name, - // orgChild4Name: x.orgChild4Name, - // org: x.org, - // searchShortName: x.searchShortName, - // posExecutiveName: x.posExecutiveName, - // position: x.position, - // posTypeName: x.posTypeName, - // posLevelName: x.posLevelName, - // gender: x.gender, - // relationship: x.relationship, - // dateAppoint: x.dateAppoint, - // dateRetire: x.dateRetire, - // dateRetireLaw: x.dateRetireLaw, - // birthdate: x.birthdate, - // degree: x.degrees, - // age: x.age, - // currentPosition: null, - // lengthPosition: null, - // positionDate: { - // Years: x.Years ? x.Years : 0, - // Months: x.Months ? x.Months : 0, - // Days: x.Days ? x.Days : 0, - // }, - // levelDate: { - // posExecutiveYears: x.levelYears, - // posExecutiveMonths: x.levelMonths, - // posExecutiveDays: x.levelDays, - // }, - // }; - // }), - // ); - const mapData = []; for await (const x of lists) { let _educations: any = []; @@ -322,11 +277,6 @@ export class ReportController extends Controller { Array.isArray(x.Educations) && x.Educations != null ? (x.Educations as any[]).filter((i: any) => i.isHigh == true) : []; - // if(_educations.length == 0) { - // _educations = Array.isArray(x.Educations) && x.Educations != null - // ? (x.Educations as any[])[0] - // : [] - // } } } else { _educations = @@ -379,9 +329,6 @@ export class ReportController extends Controller { dateRetireLaw: x.dateRetireLaw, birthdate: x.birthdate, Educations: _educations, - // degree: x.degrees, - // educationLevel: x.educationLevels, - // field: x.fields, age: x.age, currentPosition: null, lengthPosition: null, @@ -429,6 +376,7 @@ export class ReportController extends Controller { @Query() isProbation?: boolean, @Query() isRetire?: boolean, @Query() isRetireLaw?: boolean, + @Query() isCurrent?: boolean, @Query() retireType?: string, @Query() ageMin?: number, @Query() ageMax?: number, @@ -581,6 +529,13 @@ export class ReportController extends Controller { .andWhere(field != null && field != "" ? "registryEmployee.fields LIKE :fields" : "1=1", { fields: `%${field}%`, }) + .andWhere( + isCurrent === undefined || isCurrent === null + ? "1=1" + : isCurrent === true + ? "registryEmployee.posMasterNo IS NOT NULL" + : "registryEmployee.posMasterNo IS NULL", + ) .orderBy(`registryEmployee.${sortBy}`, sort) .getManyAndCount();