From 428b99508101be7e1873c964de25e9de1f498b4f Mon Sep 17 00:00:00 2001 From: harid Date: Wed, 24 Dec 2025 17:48:22 +0700 Subject: [PATCH 1/3] no message --- .../OrganizationDotnetController.ts | 39 ++++++++++++++----- .../OrganizationUnauthorizeController.ts | 35 +++++++++++++---- 2 files changed, 56 insertions(+), 18 deletions(-) diff --git a/src/controllers/OrganizationDotnetController.ts b/src/controllers/OrganizationDotnetController.ts index 29a94f70..6ee5cd36 100644 --- a/src/controllers/OrganizationDotnetController.ts +++ b/src/controllers/OrganizationDotnetController.ts @@ -2657,12 +2657,17 @@ export class OrganizationDotnetController extends Controller { dutyTimeEffectiveDate: profile.dutyTimeEffectiveDate, posLevel: profile.posLevel?.posLevelName ?? "", posType: profile.posType?.posTypeName ?? "", - profileSalary: profile.profileSalary, + // profileSalary: profile.profileSalary, + profileSalary: profile.profileSalary?.map((x) => ({ + ...x, + date: x.commandDateAffect ?? new Date() + })) ?? [], // profileInsignia: profile.profileInsignias.map((x) => { // return { ...x, insignia: x.insignia.name }; // }), profileInsignia: profile.profileInsignias?.map((x) => ({ ...x, + insigniaId: x.insignia?.id ?? null, insignia: x.insignia?.name ?? null, })) ?? [], amount: profile.amount, @@ -2962,9 +2967,14 @@ export class OrganizationDotnetController extends Controller { : profile.posType?.posTypeShortName + " ") + (profile.posLevel?.posLevelName ?? ""), posType: profile.posType?.posTypeName ?? "", profileSalary: profile.profileSalary, - profileInsignia: profile.profileInsignias.map((x) => { - return { ...x, insignia: x.insignia.name }; - }), + // profileInsignia: profile.profileInsignias.map((x) => { + // return { ...x, insignia: x.insignia.name }; + // }), + profileInsignia: profile.profileInsignias?.map((x) => ({ + ...x, + insigniaId: x.insignia?.id ?? null, + insignia: x.insignia?.name ?? null, + })) ?? [], amount: profile.amount, positionSalaryAmount: profile.positionSalaryAmount, mouthSalaryAmount: profile.mouthSalaryAmount, @@ -3176,12 +3186,21 @@ export class OrganizationDotnetController extends Controller { ? "" : profile.posType?.posTypeShortName + " ") + (profile.posLevel?.posLevelName ?? ""), posType: profile.posType?.posTypeName ?? "", - profileSalary: profile.profileSalary.map((x) => { - return { ...x, date: x.commandDateAffect ?? new Date() }; - }), - profileInsignia: profile.profileInsignias.map((x) => { - return { ...x, insignia: x.insignia.name }; - }), + // profileSalary: profile.profileSalary.map((x) => { + // return { ...x, date: x.commandDateAffect ?? new Date() }; + // }), + profileSalary: profile.profileSalary?.map((x) => ({ + ...x, + date: x.commandDateAffect ?? new Date() + })) ?? [], + // profileInsignia: profile.profileInsignias.map((x) => { + // return { ...x, insignia: x.insignia.name }; + // }), + profileInsignia: profile.profileInsignias?.map((x) => ({ + ...x, + insigniaId: x.insignia?.id ?? null, + insignia: x.insignia?.name ?? null, + })) ?? [], amount: profile.amount, positionSalaryAmount: profile.positionSalaryAmount, mouthSalaryAmount: profile.mouthSalaryAmount, diff --git a/src/controllers/OrganizationUnauthorizeController.ts b/src/controllers/OrganizationUnauthorizeController.ts index d63b885c..dfd26df5 100644 --- a/src/controllers/OrganizationUnauthorizeController.ts +++ b/src/controllers/OrganizationUnauthorizeController.ts @@ -1663,12 +1663,17 @@ export class OrganizationUnauthorizeController extends Controller { dutyTimeEffectiveDate: profile.dutyTimeEffectiveDate, posLevel: profile.posLevel?.posLevelName ?? "", posType: profile.posType?.posTypeName ?? "", - profileSalary: profile.profileSalary, + // profileSalary: profile.profileSalary, + profileSalary: profile.profileSalary?.map((x) => ({ + ...x, + date: x.commandDateAffect ?? new Date() + })) ?? [], // profileInsignia: profile.profileInsignias.map((x) => { // return { ...x, insignia: x.insignia.name }; // }), profileInsignia: profile.profileInsignias?.map((x) => ({ ...x, + insigniaId: x.insignia?.id ?? null, insignia: x.insignia?.name ?? null, })) ?? [], amount: profile.amount, @@ -1879,7 +1884,12 @@ export class OrganizationUnauthorizeController extends Controller { posLevel: profile.posLevel ? profile.posLevel : null, posType: profile.posType ? profile.posType : null, profileSalary: profile.profileSalary, - profileInsignia: profile.profileInsignias, + // profileInsignia: profile.profileInsignias, + profileInsignia: profile.profileInsignias?.map((x) => ({ + ...x, + insigniaId: x.insignia?.id ?? null, + insignia: x.insignia?.name ?? null, + })) ?? [], })); return new HttpSuccess(mapProfile); @@ -2053,12 +2063,21 @@ export class OrganizationUnauthorizeController extends Controller { ? "" : profile.posType?.posTypeShortName + " ") + (profile.posLevel?.posLevelName ?? ""), posType: profile.posType?.posTypeName ?? "", - profileSalary: profile.profileSalary.map((x) => { - return { ...x, date: x.commandDateAffect ?? new Date() }; - }), - profileInsignia: profile.profileInsignias.map((x) => { - return { ...x, insignia: x.insignia.name }; - }), + // profileSalary: profile.profileSalary.map((x) => { + // return { ...x, date: x.commandDateAffect ?? new Date() }; + // }), + profileSalary: profile.profileSalary?.map((x) => ({ + ...x, + date: x.commandDateAffect ?? new Date() + })) ?? [], + // profileInsignia: profile.profileInsignias.map((x) => { + // return { ...x, insignia: x.insignia.name }; + // }), + profileInsignia: profile.profileInsignias?.map((x) => ({ + ...x, + insigniaId: x.insignia?.id ?? null, + insignia: x.insignia?.name ?? null, + })) ?? [], amount: profile.amount, positionSalaryAmount: profile.positionSalaryAmount, mouthSalaryAmount: profile.mouthSalaryAmount, From 7334fd711fcf35e1260511a42de05888bbf842f4 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Fri, 26 Dec 2025 22:04:17 +0700 Subject: [PATCH 2/3] migration: add field dnaId and profileId --- src/entities/PosMasterHistory.ts | 48 +++++++++++++++++++ ...760828376-add_field_dnaid_and_prodileid.ts | 24 ++++++++++ 2 files changed, 72 insertions(+) create mode 100644 src/migration/1766760828376-add_field_dnaid_and_prodileid.ts diff --git a/src/entities/PosMasterHistory.ts b/src/entities/PosMasterHistory.ts index 4360cf1e..bbdd3f7e 100644 --- a/src/entities/PosMasterHistory.ts +++ b/src/entities/PosMasterHistory.ts @@ -98,4 +98,52 @@ export class PosMasterHistory extends EntityBase { default: null, }) ancestorDNA: string; + + @Column({ + nullable: true, + length: 40, + comment: "คีย์นอก(FK)ของตาราง profile", + default: null, + }) + profileId: string; + + @Column({ + nullable: true, + length: 40, + comment: "dna ของตาราง orgRoot", + default: null, + }) + rootDnaId: string; + + @Column({ + nullable: true, + length: 40, + comment: "dna ของตาราง orgChild1", + default: null, + }) + child1DnaId: string; + + @Column({ + nullable: true, + length: 40, + comment: "dna ของตาราง orgChild2", + default: null, + }) + child2DnaId: string; + + @Column({ + nullable: true, + length: 40, + comment: "dna ของตาราง orgChild3", + default: null, + }) + child3DnaId: string; + + @Column({ + nullable: true, + length: 40, + comment: "dna ของตาราง orgChild4", + default: null, + }) + child4DnaId: string; } diff --git a/src/migration/1766760828376-add_field_dnaid_and_prodileid.ts b/src/migration/1766760828376-add_field_dnaid_and_prodileid.ts new file mode 100644 index 00000000..28ceec51 --- /dev/null +++ b/src/migration/1766760828376-add_field_dnaid_and_prodileid.ts @@ -0,0 +1,24 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class AddFieldDnaidAndProdileid1766760828376 implements MigrationInterface { + name = 'AddFieldDnaidAndProdileid1766760828376' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` ADD \`profileId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง profile'`); + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` ADD \`rootDnaId\` varchar(40) NULL COMMENT 'dna ของตาราง orgRoot'`); + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` ADD \`child1DnaId\` varchar(40) NULL COMMENT 'dna ของตาราง orgChild1'`); + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` ADD \`child2DnaId\` varchar(40) NULL COMMENT 'dna ของตาราง orgChild2'`); + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` ADD \`child3DnaId\` varchar(40) NULL COMMENT 'dna ของตาราง orgChild3'`); + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` ADD \`child4DnaId\` varchar(40) NULL COMMENT 'dna ของตาราง orgChild4'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` DROP COLUMN \`child4DnaId\``); + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` DROP COLUMN \`child3DnaId\``); + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` DROP COLUMN \`child2DnaId\``); + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` DROP COLUMN \`child1DnaId\``); + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` DROP COLUMN \`rootDnaId\``); + await queryRunner.query(`ALTER TABLE \`posMasterHistory\` DROP COLUMN \`profileId\``); + } + +} \ No newline at end of file From 3feda8b601fa18d29ada6f23c12162b5b1bfc404 Mon Sep 17 00:00:00 2001 From: mamoss <> Date: Tue, 30 Dec 2025 22:36:42 +0700 Subject: [PATCH 3/3] update search org old --- .../OrganizationDotnetController.ts | 681 ++++++++++++------ 1 file changed, 455 insertions(+), 226 deletions(-) diff --git a/src/controllers/OrganizationDotnetController.ts b/src/controllers/OrganizationDotnetController.ts index 6ee5cd36..bfac03bc 100644 --- a/src/controllers/OrganizationDotnetController.ts +++ b/src/controllers/OrganizationDotnetController.ts @@ -18,7 +18,7 @@ import HttpStatus from "../interfaces/http-status"; import HttpError from "../interfaces/http-error"; import { RequestWithUser } from "../middlewares/user"; import { Profile } from "../entities/Profile"; -import { And, Between, Brackets, In, IsNull, Not } from "typeorm"; +import { And, Between, Brackets, In, IsNull, LessThanOrEqual, Not } from "typeorm"; import { OrgRevision } from "../entities/OrgRevision"; import { OrgRoot } from "../entities/OrgRoot"; import { OrgChild1 } from "../entities/OrgChild1"; @@ -34,6 +34,7 @@ import { EmployeePosMaster } from "../entities/EmployeePosMaster"; import { EmployeePosDict } from "../entities/EmployeePosDict"; import { calculateRetireLaw } from "../interfaces/utils"; import Extension from "../interfaces/extension"; +import { PosMasterHistory } from "../entities/PosMasterHistory"; @Route("api/v1/org/dotnet") @Tags("Dotnet") @Security("bearerAuth") @@ -53,14 +54,15 @@ export class OrganizationDotnetController extends Controller { private profileEmpRepo = AppDataSource.getRepository(ProfileEmployee); private positionRepository = AppDataSource.getRepository(Position); private posMasterRepository = AppDataSource.getRepository(PosMaster); + private posMasterHistoryRepository = AppDataSource.getRepository(PosMasterHistory); private empPosMasterRepository = AppDataSource.getRepository(EmployeePosMaster); private insigniaRepo = AppDataSource.getRepository(ProfileInsignia); private employeePosDictRepository = AppDataSource.getRepository(EmployeePosDict); /** - * ทำไว้ให้ service อื่นๆ ภายในระบบ call มาตรวจสอบเลขบัตรประจำตัวประชาชน + * ทำไว้ให้ service อื่นๆ ภายในระบบ call มาตรวจสอบเลขบัตรประจำตัวประชาชน * - * @summary API ตรวจสอบเช็คเลขบัตรประจำตัวประชาชน + * @summary API ตรวจสอบเช็คเลขบัตรประจำตัวประชาชน * */ @Post("check-citizen") @@ -70,7 +72,7 @@ export class OrganizationDotnetController extends Controller { citizenId: string; }, ) { - let citizen = Extension.CheckCitizen(body.citizenId) + let citizen = Extension.CheckCitizen(body.citizenId); return new HttpSuccess(citizen); } @@ -996,8 +998,8 @@ export class OrganizationDotnetController extends Controller { let positionLeaveName = profile.posType != null && - profile.posLevel != null && - (profile.posType.posTypeName == "บริหาร" || profile.posType.posTypeName == "อำนวยการ") + profile.posLevel != null && + (profile.posType.posTypeName == "บริหาร" || profile.posType.posTypeName == "อำนวยการ") ? `${profile.posType?.posTypeName ?? ""}${profile.posLevel?.posLevelName ?? ""}` : profile.posLevel?.posLevelName ?? null; const _profileCurrent = profile?.current_holders?.find( @@ -2589,26 +2591,26 @@ export class OrganizationDotnetController extends Controller { profile.current_holders.length == 0 ? null : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + null && + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; @@ -2658,18 +2660,20 @@ export class OrganizationDotnetController extends Controller { posLevel: profile.posLevel?.posLevelName ?? "", posType: profile.posType?.posTypeName ?? "", // profileSalary: profile.profileSalary, - profileSalary: profile.profileSalary?.map((x) => ({ - ...x, - date: x.commandDateAffect ?? new Date() - })) ?? [], + profileSalary: + profile.profileSalary?.map((x) => ({ + ...x, + date: x.commandDateAffect ?? new Date(), + })) ?? [], // profileInsignia: profile.profileInsignias.map((x) => { // return { ...x, insignia: x.insignia.name }; // }), - profileInsignia: profile.profileInsignias?.map((x) => ({ - ...x, - insigniaId: x.insignia?.id ?? null, - insignia: x.insignia?.name ?? null, - })) ?? [], + profileInsignia: + profile.profileInsignias?.map((x) => ({ + ...x, + insigniaId: x.insignia?.id ?? null, + insignia: x.insignia?.name ?? null, + })) ?? [], amount: profile.amount, positionSalaryAmount: profile.positionSalaryAmount, mouthSalaryAmount: profile.mouthSalaryAmount, @@ -2897,26 +2901,26 @@ export class OrganizationDotnetController extends Controller { profile.current_holders.length == 0 ? null : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + null && + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; return { @@ -2970,11 +2974,12 @@ export class OrganizationDotnetController extends Controller { // profileInsignia: profile.profileInsignias.map((x) => { // return { ...x, insignia: x.insignia.name }; // }), - profileInsignia: profile.profileInsignias?.map((x) => ({ - ...x, - insigniaId: x.insignia?.id ?? null, - insignia: x.insignia?.name ?? null, - })) ?? [], + profileInsignia: + profile.profileInsignias?.map((x) => ({ + ...x, + insigniaId: x.insignia?.id ?? null, + insignia: x.insignia?.name ?? null, + })) ?? [], amount: profile.amount, positionSalaryAmount: profile.positionSalaryAmount, mouthSalaryAmount: profile.mouthSalaryAmount, @@ -3117,26 +3122,26 @@ export class OrganizationDotnetController extends Controller { profile.current_holders.length == 0 ? null : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + null && + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${profile.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; return { @@ -3189,18 +3194,20 @@ export class OrganizationDotnetController extends Controller { // profileSalary: profile.profileSalary.map((x) => { // return { ...x, date: x.commandDateAffect ?? new Date() }; // }), - profileSalary: profile.profileSalary?.map((x) => ({ - ...x, - date: x.commandDateAffect ?? new Date() - })) ?? [], + profileSalary: + profile.profileSalary?.map((x) => ({ + ...x, + date: x.commandDateAffect ?? new Date(), + })) ?? [], // profileInsignia: profile.profileInsignias.map((x) => { // return { ...x, insignia: x.insignia.name }; // }), - profileInsignia: profile.profileInsignias?.map((x) => ({ - ...x, - insigniaId: x.insignia?.id ?? null, - insignia: x.insignia?.name ?? null, - })) ?? [], + profileInsignia: + profile.profileInsignias?.map((x) => ({ + ...x, + insigniaId: x.insignia?.id ?? null, + insignia: x.insignia?.name ?? null, + })) ?? [], amount: profile.amount, positionSalaryAmount: profile.positionSalaryAmount, mouthSalaryAmount: profile.mouthSalaryAmount, @@ -3382,7 +3389,7 @@ export class OrganizationDotnetController extends Controller { const root = profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot == null + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot == null ? null : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot; @@ -3442,41 +3449,41 @@ export class OrganizationDotnetController extends Controller { const posMaster = profile.current_holders == null || - profile.current_holders.length == 0 || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id) == null + profile.current_holders.length == 0 || + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id) == null ? null : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id); const root = profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot == null + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot == null ? null : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot; const child1 = profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild1 == + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild1 == null ? null : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild1; const child2 = profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild2 == + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild2 == null ? null : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild2; const child3 = profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild3 == + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild3 == null ? null : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild3; const child4 = profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild4 == + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild4 == null ? null : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild4; @@ -3615,30 +3622,30 @@ export class OrganizationDotnetController extends Controller { item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot - ?.orgRootName; + ?.orgRootName; const shortName = item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; @@ -3743,30 +3750,30 @@ export class OrganizationDotnetController extends Controller { item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot - ?.orgRootName; + ?.orgRootName; const shortName = item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; @@ -3950,25 +3957,25 @@ export class OrganizationDotnetController extends Controller { item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName}${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; const Oc = @@ -4129,25 +4136,25 @@ export class OrganizationDotnetController extends Controller { item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName}${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; const Oc = @@ -4299,25 +4306,25 @@ export class OrganizationDotnetController extends Controller { item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; const Oc = @@ -4730,25 +4737,25 @@ export class OrganizationDotnetController extends Controller { item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; const Oc = @@ -4896,25 +4903,25 @@ export class OrganizationDotnetController extends Controller { item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; const Oc = @@ -5050,25 +5057,25 @@ export class OrganizationDotnetController extends Controller { item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; const Oc = @@ -5375,25 +5382,25 @@ export class OrganizationDotnetController extends Controller { item.current_holders.length == 0 ? null : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != - null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4 != + null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild4.orgChild4ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild3 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild3 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild2 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild2 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgChild1 != null + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgChild1 != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) != - null && - item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) - ?.orgRoot != null + null && + item.current_holders.find((x) => x.orgRevisionId == findRevision?.id) + ?.orgRoot != null ? `${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision?.id)?.posMasterNo}` : null; const Oc = @@ -5674,16 +5681,16 @@ export class OrganizationDotnetController extends Controller { currentAddress: profile && profile.currentAddress ? profile.currentAddress + - (profile.currentSubDistrict && profile.currentSubDistrict.name - ? " ตำบล/แขวง " + profile.currentSubDistrict.name - : "") + - (profile.currentDistrict && profile.currentDistrict.name - ? " อำเภอ/เขต " + profile.currentDistrict.name - : "") + - (profile.currentProvince && profile.currentProvince.name - ? " จังหวัด " + profile.currentProvince.name - : "") + - profile.currentZipCode + (profile.currentSubDistrict && profile.currentSubDistrict.name + ? " ตำบล/แขวง " + profile.currentSubDistrict.name + : "") + + (profile.currentDistrict && profile.currentDistrict.name + ? " อำเภอ/เขต " + profile.currentDistrict.name + : "") + + (profile.currentProvince && profile.currentProvince.name + ? " จังหวัด " + profile.currentProvince.name + : "") + + profile.currentZipCode : "-", oc: oc ?? "-", root: @@ -5719,26 +5726,26 @@ export class OrganizationDotnetController extends Controller { positions: _position && _position.length > 0 ? _position.slice(0, -1).map((x: any, idx: number) => ({ - positionName: x.positionName, - dateStart: x.commandDateAffect ?? null, - dateEnd: _position[idx + 1]?.commandDateAffect ?? null, - positionType: x.positionType, - positionLevel: x.positionLevel, - orgRoot: x.orgRoot, - orgChild1: x.orgChild1, - orgChild2: x.orgChild2, - orgChild3: x.orgChild3, - orgChild4: x.orgChild4, - })) + positionName: x.positionName, + dateStart: x.commandDateAffect ?? null, + dateEnd: _position[idx + 1]?.commandDateAffect ?? null, + positionType: x.positionType, + positionLevel: x.positionLevel, + orgRoot: x.orgRoot, + orgChild1: x.orgChild1, + orgChild2: x.orgChild2, + orgChild3: x.orgChild3, + orgChild4: x.orgChild4, + })) : [], educations: profile.profileEducations && profile.profileEducations.length > 0 ? profile.profileEducations.map((x) => ({ - educationLevel: x.educationLevel, - institute: x.institute ?? "-", - country: x.country ?? "-", - finishDate: x.finishDate, - })) + educationLevel: x.educationLevel, + institute: x.institute ?? "-", + country: x.country ?? "-", + finishDate: x.finishDate, + })) : [], }; return new HttpSuccess(mapEmpProfile); @@ -5788,16 +5795,16 @@ export class OrganizationDotnetController extends Controller { currentAddress: profile && profile.currentAddress ? profile.currentAddress + - (profile.currentSubDistrict && profile.currentSubDistrict.name - ? " ตำบล/แขวง " + profile.currentSubDistrict.name - : "") + - (profile.currentDistrict && profile.currentDistrict.name - ? " อำเภอ/เขต " + profile.currentDistrict.name - : "") + - (profile.currentProvince && profile.currentProvince.name - ? " จังหวัด " + profile.currentProvince.name - : "") + - profile.currentZipCode + (profile.currentSubDistrict && profile.currentSubDistrict.name + ? " ตำบล/แขวง " + profile.currentSubDistrict.name + : "") + + (profile.currentDistrict && profile.currentDistrict.name + ? " อำเภอ/เขต " + profile.currentDistrict.name + : "") + + (profile.currentProvince && profile.currentProvince.name + ? " จังหวัด " + profile.currentProvince.name + : "") + + profile.currentZipCode : "-", oc: oc ?? "-", root: @@ -5833,26 +5840,26 @@ export class OrganizationDotnetController extends Controller { positions: _position && _position.length > 0 ? _position.slice(0, -1).map((x: any, idx: number) => ({ - positionName: x.positionName, - dateStart: x.commandDateAffect ?? null, - dateEnd: _position[idx + 1]?.commandDateAffect ?? null, - positionType: x.positionType, - positionLevel: x.positionLevel, - orgRoot: x.orgRoot, - orgChild1: x.orgChild1, - orgChild2: x.orgChild2, - orgChild3: x.orgChild3, - orgChild4: x.orgChild4, - })) + positionName: x.positionName, + dateStart: x.commandDateAffect ?? null, + dateEnd: _position[idx + 1]?.commandDateAffect ?? null, + positionType: x.positionType, + positionLevel: x.positionLevel, + orgRoot: x.orgRoot, + orgChild1: x.orgChild1, + orgChild2: x.orgChild2, + orgChild3: x.orgChild3, + orgChild4: x.orgChild4, + })) : [], educations: profile.profileEducations && profile.profileEducations.length > 0 ? profile.profileEducations.map((x) => ({ - educationLevel: x.educationLevel, - institute: x.institute ?? "-", - country: x.country ?? "-", - finishDate: x.finishDate, - })) + educationLevel: x.educationLevel, + institute: x.institute ?? "-", + country: x.country ?? "-", + finishDate: x.finishDate, + })) : [], }; return new HttpSuccess(mapProfile); @@ -5988,4 +5995,226 @@ export class OrganizationDotnetController extends Controller { }); return new HttpSuccess(mapProfile); } + + /** + * รายชื่อขรก. ตามสิทธิ์ admin + * + * @summary รายชื่อขรก. ตามสิทธิ์ admin + * + */ + @Post("officer-by-admin-rolev2") + async GetOfficersByAdminRoleV2( + @Request() req: RequestWithUser, + @Body() + body: { + node: number; + nodeId: string; + role: string; + isRetirement?: boolean; + reqNode?: number; + reqNodeId?: string; + date?: Date; + }, + ) { + let typeCondition: any = {}; + if (body.role === "CHILD" || body.role === "PARENT" || body.role === "BROTHER") { + if (body.role === "CHILD") { + switch (body.node) { + case 0: + typeCondition = { + rootDnaId: body.nodeId, + }; + break; + case 1: + typeCondition = { + child1DnaId: body.nodeId, + }; + break; + case 2: + typeCondition = { + child2DnaId: body.nodeId, + }; + break; + case 3: + typeCondition = { + child3DnaId: body.nodeId, + }; + break; + case 4: + typeCondition = { + child4DnaId: body.nodeId, + }; + break; + default: + typeCondition = {}; + break; + } + } else if (body.role === "BROTHER") { + switch (body.node) { + case 0: + typeCondition = { + rootDnaId: body.nodeId, + }; + break; + case 1: + typeCondition = { + rootDnaId: body.nodeId, + }; + break; + case 2: + typeCondition = { + child1DnaId: body.nodeId, + }; + break; + case 3: + typeCondition = { + child2DnaId: body.nodeId, + }; + break; + case 4: + typeCondition = { + child3DnaId: body.nodeId, + }; + break; + default: + typeCondition = {}; + break; + } + } else if (body.role === "PARENT") { + typeCondition = { + rootDnaId: body.nodeId, + child1DnaId: Not(IsNull()), + }; + } + } else if (body.role === "OWNER" || body.role === "ROOT") { + switch (body.reqNode) { + case 0: + typeCondition = { + rootDnaId: body.reqNodeId, + }; + break; + case 1: + typeCondition = { + child1DnaId: body.reqNodeId, + }; + break; + case 2: + typeCondition = { + child2DnaId: body.reqNodeId, + }; + break; + case 3: + typeCondition = { + child3DnaId: body.reqNodeId, + }; + break; + case 4: + typeCondition = { + child4DnaId: body.reqNodeId, + }; + break; + default: + typeCondition = {}; + break; + } + } else if (body.role === "NORMAL") { + switch (body.node) { + case 0: + typeCondition = { + rootDnaId: body.nodeId, + child1DnaId: IsNull(), + }; + break; + case 1: + typeCondition = { + child1DnaId: body.nodeId, + child2DnaId: IsNull(), + }; + break; + case 2: + typeCondition = { + child2DnaId: body.nodeId, + child3DnaId: IsNull(), + }; + break; + case 3: + typeCondition = { + child3DnaId: body.nodeId, + child4DnaId: IsNull(), + }; + break; + case 4: + typeCondition = { + child4DnaId: body.nodeId, + }; + break; + default: + typeCondition = {}; + break; + } + } + const date = body.date ? new Date(body.date) : new Date(); + // set เวลาเป็น 23:59:59 ของวันนั้น + date.setHours(23, 59, 59, 999); + + let profile = await this.posMasterHistoryRepository.find({ + where: { + ...typeCondition, + createdAt: LessThanOrEqual(date), + firstName: Not("") && Not(IsNull()), + lastName: Not("") && Not(IsNull()), + }, + order: { + firstName: "ASC", + lastName: "ASC", + createdAt: "DESC", // ให้ createdAt ล่าสุดอยู่ข้างบน + }, + }); + + // group by firstName + lastName แล้วเลือก create_at ล่าสุด + const grouped = new Map(); + for (const item of profile) { + const key = `${item.firstName}-${item.lastName}`; + if (!grouped.has(key)) { + grouped.set(key, item); + } else { + // ถ้าเจอซ้ำ ให้เลือก createdAt ล่าสุด + const exist = grouped.get(key); + if (exist && item.createdAt > exist.createdAt) { + grouped.set(key, item); + } + } + } + + const profile_ = await Promise.all( + Array.from(grouped.values()).map(async (item: PosMasterHistory) => { + let profile = await this.profileRepo.findOne({ + where: { id: item.profileId }, + }); + + return { + id: item.id, + prefix: item.prefix, + firstName: item.firstName, + lastName: item.lastName, + citizenId: profile?.citizenId ?? null, + dateStart: profile?.dateStart ?? null, + dateAppoint: profile?.dateAppoint ?? null, + keycloak: profile?.keycloak ?? null, + posNo: item.shortName, + position: item.position, + positionLevel: item.posLevel, + positionType: item.posType, + // oc: Oc, + orgRootId: item.rootDnaId, + orgChild1Id: item.child1DnaId, + orgChild2Id: item.child2DnaId, + orgChild3Id: item.child3DnaId, + orgChild4Id: item.child4DnaId, + }; + }), + ); + + return new HttpSuccess(profile_); + } }