ORG_023 - รายละเอียดโครงสร้าง (ADMIN)

This commit is contained in:
AdisakKanthawilang 2024-01-29 16:21:57 +07:00
parent ae43aa918d
commit 75a6e286cd

View file

@ -288,52 +288,178 @@ export class OrganizationController extends Controller {
*/ */
@Get("{id}") @Get("{id}")
async detail(@Path() id: string) { async detail(@Path() id: string) {
try { try {
const orgRootData = await AppDataSource.getRepository(OrgRoot)
const orgRevisionData = await AppDataSource.getRepository(OrgRevision) .createQueryBuilder("orgRoot")
.createQueryBuilder("orgRevision") .where("orgRoot.orgRevisionId = :id", { id })
// .leftJoin("orgRevision.orgRoots", "orgRoot") .select([
// .leftJoin("orgRoot.orgChild1s", "orgChild1") "orgRoot.id",
// .leftJoin("orgChild1.orgChild2s", "orgChild2") "orgRoot.orgRootName",
// .leftJoin("orgChild2.orgChild3s", "orgChild3") "orgRoot.orgRootShortName",
// .leftJoin("orgChild3.orgChild4s", "orgChild4") "orgRoot.orgRootCode",
.where("orgRevision.id = :id", { id }) "orgRoot.orgRootOrder",
// .select([ "orgRoot.orgRootPhoneEx",
// "orgRoot.id", "orgRoot.orgRootPhoneIn",
// "orgRoot.orgRootName", "orgRoot.orgRootFax",
// "orgRoot.orgRootShortName", "orgRoot.orgRevisionId",
// "orgRoot.orgRootCode", ])
// "orgRoot.orgRootOrder", .getMany();
// "orgChild1.id", const orgRootIds = orgRootData.map((orgRoot) => orgRoot.id);
// "orgChild1.orgChild1Name", const orgChild1Data = await AppDataSource.getRepository(OrgChild1)
// "orgChild1.orgChild1ShortName", .createQueryBuilder("orgChild1")
// "orgChild1.orgChild1Code", .where("orgChild1.orgRootId IN (:...ids)", { ids: orgRootIds })
// "orgChild1.orgChild1Order", .select([
"orgChild1.id",
"orgChild1.orgChild1Name",
"orgChild1.orgChild1ShortName",
"orgChild1.orgChild1Code",
"orgChild1.orgChild1Order",
"orgChild1.orgChild1PhoneEx",
"orgChild1.orgChild1PhoneIn",
"orgChild1.orgChild1Fax",
"orgChild1.orgRootId",
])
.getMany();
// "orgChild2.id", const orgChild1Ids = orgChild1Data.map((orgChild1) => orgChild1.id);
// "orgChild2.orgChild2Name", const orgChild2Data = await AppDataSource.getRepository(OrgChild2)
// "orgChild2.orgChild2ShortName", .createQueryBuilder("orgChild2")
// "orgChild2.orgChild2Code", .where("orgChild2.orgChild1Id IN (:...ids)", { ids: orgChild1Ids })
// "orgChild2.orgChild2Order", .select([
"orgChild2.id",
"orgChild2.orgChild2Name",
"orgChild2.orgChild2ShortName",
"orgChild2.orgChild2Code",
"orgChild2.orgChild2Order",
"orgChild2.orgChild2PhoneEx",
"orgChild2.orgChild2PhoneIn",
"orgChild2.orgChild2Fax",
"orgChild2.orgRootId",
// "orgChild3.id", "orgChild2.orgChild1Id",
// "orgChild3.orgChild3Name", ])
// "orgChild3.orgChild3ShortName", .getMany();
// "orgChild3.orgChild3Code",
// "orgChild3.orgChild3Order",
// "orgChild4.id", const orgChild2Ids = orgChild2Data.map((orgChild2) => orgChild2.id);
// "orgChild4.orgChild4Name", const orgChild3Data = await AppDataSource.getRepository(OrgChild3)
// "orgChild4.orgChild4ShortName", .createQueryBuilder("orgChild3")
// "orgChild4.orgChild4Code", .where("orgChild3.orgChild2Id IN (:...ids)", { ids: orgChild2Ids })
// "orgChild4.orgChild4Order", .select([
// ]) "orgChild3.id",
.getOne(); "orgChild3.orgChild3Name",
"orgChild3.orgChild3ShortName",
"orgChild3.orgChild3Code",
"orgChild3.orgChild3Order",
"orgChild3.orgChild3PhoneEx",
"orgChild3.orgChild3PhoneIn",
"orgChild3.orgChild3Fax",
"orgChild3.orgRootId",
"orgChild3.orgChild2Id",
return new HttpSuccess(orgRevisionData); ])
.getMany();
const orgChild3Ids = orgChild3Data.map((orgChild3) => orgChild3.id);
const orgChild4Data = await AppDataSource.getRepository(OrgChild4)
.createQueryBuilder("orgChild4")
.where("orgChild4.orgChild3Id IN (:...ids)", { ids: orgChild3Ids })
.select([
"orgChild4.id",
"orgChild4.orgChild4Name",
"orgChild4.orgChild4ShortName",
"orgChild4.orgChild4Code",
"orgChild4.orgChild4Order",
"orgChild4.orgChild4PhoneEx",
"orgChild4.orgChild4PhoneIn",
"orgChild4.orgChild4Fax",
"orgChild4.orgRootId",
"orgChild4.orgChild3Id",
])
.getMany();
const formattedData = orgRootData.map((orgRoot) => {
return {
orgRootId: orgRoot.id,
orgLevel: 0,
orgRootName: orgRoot.orgRootName,
orgRootShortName: orgRoot.orgRootShortName,
orgRootCode: orgRoot.orgRootCode,
orgCode: orgRoot.orgRootCode + "00",
orgRootOrder: orgRoot.orgRootOrder,
orgRootPhoneEx: orgRoot.orgRootPhoneEx,
orgRootPhoneIn: orgRoot.orgRootPhoneIn,
orgRootFax: orgRoot.orgRootFax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild1: orgChild1Data
.filter((orgChild1) => orgChild1.orgRootId === orgRoot.id)
.map((orgChild1) => ({
orgChild1Id: orgChild1.id,
orgLevel: 1,
orgChild1Name: orgChild1.orgChild1Name,
orgChild1ShortName: orgChild1.orgChild1ShortName,
orgChild1Code: orgChild1.orgChild1Code,
orgCode: orgRoot.orgRootCode + orgChild1.orgChild1Code,
orgChild1Order: orgChild1.orgChild1Order,
orgRootCode: orgRoot.orgRootCode,
orgChild1PhoneEx: orgChild1.orgChild1PhoneEx,
orgChild1PhoneIn: orgChild1.orgChild1PhoneIn,
orgChild1Fax: orgChild1.orgChild1Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild2: orgChild2Data
.filter((orgChild2) => orgChild2.orgChild1Id === orgChild1.id)
.map((orgChild2) => ({
orgChild2Id: orgChild2.id,
orgLevel: 2,
orgChild2Name: orgChild2.orgChild2Name,
orgChild2ShortName: orgChild2.orgChild2ShortName,
orgChild2Code: orgChild2.orgChild2Code,
orgCode: orgRoot.orgRootCode + orgChild2.orgChild2Code,
orgChild2Order: orgChild2.orgChild2Order,
orgRootCode: orgRoot.orgRootCode,
orgChild2PhoneEx: orgChild2.orgChild2PhoneEx,
orgChild2PhoneIn: orgChild2.orgChild2PhoneIn,
orgChild2Fax: orgChild2.orgChild2Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild3: orgChild3Data
.filter((orgChild3) => orgChild3.orgChild2Id === orgChild2.id)
.map((orgChild3) => ({
orgChild3Id: orgChild3.id,
orgLevel: 3,
orgChild3Name: orgChild3.orgChild3Name,
orgChild3ShortName: orgChild3.orgChild3ShortName,
orgChild3Code: orgChild3.orgChild3Code,
orgCode: orgRoot.orgRootCode + orgChild3.orgChild3Code,
orgChild3Order: orgChild3.orgChild3Order,
orgRootCode: orgRoot.orgRootCode,
orgChild3PhoneEx: orgChild3.orgChild3PhoneEx,
orgChild3PhoneIn: orgChild3.orgChild3PhoneIn,
orgChild3Fax: orgChild3.orgChild3Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild4: orgChild4Data
.filter((orgChild4) => orgChild4.orgChild3Id === orgChild3.id)
.map((orgChild4) => ({
orgChild4Id: orgChild4.id,
orgLevel: 4,
orgChild4Name: orgChild4.orgChild4Name,
orgChild4ShortName: orgChild4.orgChild4ShortName,
orgChild4Code: orgChild4.orgChild4Code,
orgCode: orgRoot.orgRootCode + orgChild4.orgChild4Code,
orgChild4Order: orgChild4.orgChild4Order,
orgRootCode: orgRoot.orgRootCode,
orgChild4PhoneEx: orgChild4.orgChild4PhoneEx,
orgChild4PhoneIn: orgChild4.orgChild4PhoneIn,
orgChild4Fax: orgChild4.orgChild4Fax,
orgRevisionId: orgRoot.orgRevisionId,
})),
})),
})),
})),
};
});
return new HttpSuccess(formattedData);
} catch (error) { } catch (error) {
return error; return error;
} }