diff --git a/src/controllers/CommandController.ts b/src/controllers/CommandController.ts index 25ef41bb..34226f21 100644 --- a/src/controllers/CommandController.ts +++ b/src/controllers/CommandController.ts @@ -5821,6 +5821,7 @@ export class CommandController extends Controller { body.data.map(async (item) => { const profile = await this.profileRepository.findOne({ relations: [ + // "profileSalary", "posType", "posLevel", "current_holders", @@ -5831,6 +5832,11 @@ export class CommandController extends Controller { "current_holders.orgChild4", ], where: { id: item.profileId }, + // order: { + // profileSalary: { + // order: "DESC", + // }, + // }, }); if (!profile) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทะเบียนประวัตินี้"); @@ -5842,19 +5848,46 @@ 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 = - orgRevisionRef?.orgChild4?.orgChild4ShortName ?? - orgRevisionRef?.orgChild3?.orgChild3ShortName ?? - orgRevisionRef?.orgChild2?.orgChild2ShortName ?? - orgRevisionRef?.orgChild1?.orgChild1ShortName ?? - orgRevisionRef?.orgRoot?.orgRootShortName ?? - null; - const posNo = orgRevisionRef?.posMasterNo?.toString() ?? null; + !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}`; let position = profile.current_holders .filter((x) => x.orgRevisionId == orgRevision?.id)[0] @@ -5874,12 +5907,18 @@ 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: orgRevisionRef?.orgRoot?.orgRootName ?? null, - orgChild1: orgRevisionRef?.orgChild1?.orgChild1Name ?? null, - orgChild2: orgRevisionRef?.orgChild2?.orgChild2Name ?? null, - orgChild3: orgRevisionRef?.orgChild3?.orgChild3Name ?? null, - orgChild4: orgRevisionRef?.orgChild4?.orgChild4Name ?? null, + orgRoot: orgRootRef?.orgRootName ?? null, + orgChild1: orgChild1Ref?.orgChild1Name ?? null, + orgChild2: orgChild2Ref?.orgChild2Name ?? null, + orgChild3: orgChild3Ref?.orgChild3Name ?? null, + orgChild4: orgChild4Ref?.orgChild4Name ?? null, createdUserId: req.user.sub, createdFullName: req.user.name, lastUpdateUserId: req.user.sub, @@ -5905,8 +5944,19 @@ 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) }, @@ -5926,8 +5976,6 @@ export class CommandController extends Controller { beginningLeaveDays: 0, beginningLeaveCount: 0, }) - .then(() => {}) - .catch(() => {}) ) ); } diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index da96d091..3966fb21 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -87,7 +87,6 @@ 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, @@ -254,16 +253,62 @@ 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 = []; @@ -277,6 +322,11 @@ 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 = @@ -329,6 +379,9 @@ 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, @@ -376,7 +429,6 @@ 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, @@ -529,13 +581,6 @@ 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();