diff --git a/src/controllers/ProfileController.ts b/src/controllers/ProfileController.ts index 3b8adf81..d3d9d340 100644 --- a/src/controllers/ProfileController.ts +++ b/src/controllers/ProfileController.ts @@ -8521,9 +8521,12 @@ export class ProfileController extends Controller { let commanderAbovePosition_: any = {}; let commanderFullname_: any = {}; let commanderPosition_: any = {}; + let commanderOrg_: any = {}; + let commanderAboveOrg_: any = {}; const findProfile = await this.profileRepo.findOne({ where: { keycloak: request.user.sub }, + relations: ['posLevel'] }); const findRevision = await this.orgRevisionRepo.findOne({ @@ -8567,7 +8570,7 @@ export class ProfileController extends Controller { orgRevisionId: findRevision?.id, ...condition, }, - relations: ["current_holder"], + relations: ["current_holder","current_holder.posLevel","orgRoot","orgChild1","orgChild2","orgChild3","orgChild4"], order: { posMasterOrder: "ASC" }, }); let findOSAB: PosMaster | null = null; @@ -8577,6 +8580,12 @@ export class ProfileController extends Controller { findOSAB = await AppDataSource.getRepository(PosMaster) .createQueryBuilder("posMaster") .leftJoinAndSelect("posMaster.current_holder", "current_holder") + .leftJoinAndSelect("current_holder.posLevel", "posLevel") + .leftJoinAndSelect("posMaster.orgRoot", "orgRoot") + .leftJoinAndSelect("posMaster.orgChild1", "orgChild1") + .leftJoinAndSelect("posMaster.orgChild2", "orgChild2") + .leftJoinAndSelect("posMaster.orgChild3", "orgChild3") + .leftJoinAndSelect("posMaster.orgChild4", "orgChild4") .where("posMaster.current_holderId IS NOT NULL") .andWhere("posMaster.orgRevisionId = :revisionId", { revisionId: findRevision?.id }) .andWhere( @@ -8611,6 +8620,12 @@ export class ProfileController extends Controller { findTSAB = await AppDataSource.getRepository(PosMaster) .createQueryBuilder("posMaster") .leftJoinAndSelect("posMaster.current_holder", "current_holder") + .leftJoinAndSelect("current_holder.posLevel", "posLevel") + .leftJoinAndSelect("posMaster.orgRoot", "orgRoot") + .leftJoinAndSelect("posMaster.orgChild1", "orgChild1") + .leftJoinAndSelect("posMaster.orgChild2", "orgChild2") + .leftJoinAndSelect("posMaster.orgChild3", "orgChild3") + .leftJoinAndSelect("posMaster.orgChild4", "orgChild4") .where("posMaster.current_holderId IS NOT NULL") .andWhere("posMaster.orgRevisionId = :revisionId", { revisionId: findRevision?.id }) .andWhere( @@ -8636,24 +8651,59 @@ export class ProfileController extends Controller { .orderBy("posMaster.posMasterOrder", "ASC") .getOne(); } + const commanderOrg = [ + findCmd?.orgChild4?.orgChild4Name ?? null, + findCmd?.orgChild3?.orgChild3Name ?? null, + findCmd?.orgChild2?.orgChild2Name ?? null, + findCmd?.orgChild1?.orgChild1Name ?? null, + findCmd?.orgRoot?.orgRootName ?? null, + ]; + const _commanderOrg = commanderOrg + .filter((part) => part !== undefined && part !== null) + .join(" "); + + const commanderAbroveOrg = [ + findOSAB?.orgChild4?.orgChild4Name ?? null, + findOSAB?.orgChild3?.orgChild3Name ?? null, + findOSAB?.orgChild2?.orgChild2Name ?? null, + findOSAB?.orgChild1?.orgChild1Name ?? null, + findOSAB?.orgRoot?.orgRootName ?? null, + ]; + const _commanderAbroveOrg = commanderAbroveOrg + .filter((part) => part !== undefined && part !== null) + .join(" "); + fullName_ = (findProfile?.prefix ?? "") + (findProfile?.firstName ?? "") + (findProfile?.firstName ? " " : "") + (findProfile?.lastName ?? ""); - position_ = findProfile?.position ?? ""; + position_ = (findProfile?.position ? findProfile?.position : "") + (findProfile?.posLevel?.posLevelName ? findProfile?.posLevel?.posLevelName : ""); commanderFullname_ = (findCmd?.current_holder?.prefix ?? "") + (findCmd?.current_holder?.firstName ?? "") + (findCmd?.current_holder?.firstName ? " " : "") + (findCmd?.current_holder?.lastName ?? ""); - commanderPosition_ = findCmd?.current_holder?.position ?? ""; + commanderOrg_ = _commanderOrg; + commanderPosition_ = (findCmd?.current_holder?.position ? findCmd?.current_holder?.position: "") + (findCmd?.current_holder?.posLevel?.posLevelName ? findCmd?.current_holder?.posLevel?.posLevelName : ""); commanderAboveFullname_ = (findOSAB?.current_holder?.prefix ?? "") + (findOSAB?.current_holder?.firstName ?? "") + (findOSAB?.current_holder?.firstName ? " " : "") + (findOSAB?.current_holder?.lastName ?? ""); - commanderAbovePosition_ = findOSAB?.current_holder?.position ?? ""; + commanderAboveOrg_ = _commanderAbroveOrg; + commanderAbovePosition_ = (findOSAB?.current_holder?.position ? findOSAB?.current_holder?.position : "") + (findOSAB?.current_holder?.posLevel?.posLevelName ? findOSAB?.current_holder?.posLevel?.posLevelName : ""); + + const commanderAbrove2Org = [ + findTSAB?.orgChild4?.orgChild4Name ?? null, + findTSAB?.orgChild3?.orgChild3Name ?? null, + findTSAB?.orgChild2?.orgChild2Name ?? null, + findTSAB?.orgChild1?.orgChild1Name ?? null, + findTSAB?.orgRoot?.orgRootName ?? null, + ]; + const _commanderAbrove2Org = commanderAbrove2Org + .filter((part) => part !== undefined && part !== null) + .join(" "); if (findCmd?.current_holderId == findProfile?.id) { commanderFullname_ = @@ -8661,20 +8711,24 @@ export class ProfileController extends Controller { (findOSAB?.current_holder?.firstName ?? "") + (findOSAB?.current_holder?.firstName ? " " : "") + (findOSAB?.current_holder?.lastName ?? ""); - commanderPosition_ = findOSAB?.current_holder?.position ?? ""; + commanderOrg_ = _commanderAbroveOrg; + commanderPosition_ = (findOSAB?.current_holder?.position ? findOSAB?.current_holder?.position : "") + (findOSAB?.current_holder?.posLevel?.posLevelName ? findOSAB?.current_holder?.posLevel?.posLevelName : ""); commanderAboveFullname_ = (findTSAB?.current_holder?.prefix ?? "") + (findTSAB?.current_holder?.firstName ?? "") + (findTSAB?.current_holder?.firstName ? " " : "") + (findTSAB?.current_holder?.lastName ?? ""); - commanderAbovePosition_ = findTSAB?.current_holder?.position ?? ""; + commanderAboveOrg_ = _commanderAbrove2Org; + commanderAbovePosition_ = (findTSAB?.current_holder?.position ? findTSAB?.current_holder?.position : "") + (findTSAB?.current_holder?.posLevel?.posLevelName ? findTSAB?.current_holder?.posLevel?.posLevelName : ""); const formattedDataTSAB = { fullname: fullName_, position: position_, commanderAboveFullname: commanderAboveFullname_, + commanderAboveOrg: commanderAboveOrg_, commanderAbovePosition: commanderAbovePosition_, commanderFullname: commanderFullname_, + commanderOrg: commanderOrg_, commanderPosition: commanderPosition_, }; return new HttpSuccess(formattedDataTSAB); @@ -8684,8 +8738,10 @@ export class ProfileController extends Controller { fullname: fullName_, position: position_, commanderAboveFullname: commanderAboveFullname_, + commanderAboveOrg: commanderAboveOrg_, commanderAbovePosition: commanderAbovePosition_, commanderFullname: commanderFullname_, + commanderOrg: commanderOrg_, commanderPosition: commanderPosition_, }; return new HttpSuccess(formattedData);