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}")
async detail(@Path() id: string) {
try {
const orgRevisionData = await AppDataSource.getRepository(OrgRevision)
.createQueryBuilder("orgRevision")
// .leftJoin("orgRevision.orgRoots", "orgRoot")
// .leftJoin("orgRoot.orgChild1s", "orgChild1")
// .leftJoin("orgChild1.orgChild2s", "orgChild2")
// .leftJoin("orgChild2.orgChild3s", "orgChild3")
// .leftJoin("orgChild3.orgChild4s", "orgChild4")
.where("orgRevision.id = :id", { id })
// .select([
// "orgRoot.id",
// "orgRoot.orgRootName",
// "orgRoot.orgRootShortName",
// "orgRoot.orgRootCode",
// "orgRoot.orgRootOrder",
const orgRootData = await AppDataSource.getRepository(OrgRoot)
.createQueryBuilder("orgRoot")
.where("orgRoot.orgRevisionId = :id", { id })
.select([
"orgRoot.id",
"orgRoot.orgRootName",
"orgRoot.orgRootShortName",
"orgRoot.orgRootCode",
"orgRoot.orgRootOrder",
"orgRoot.orgRootPhoneEx",
"orgRoot.orgRootPhoneIn",
"orgRoot.orgRootFax",
"orgRoot.orgRevisionId",
])
.getMany();
// "orgChild1.id",
// "orgChild1.orgChild1Name",
// "orgChild1.orgChild1ShortName",
// "orgChild1.orgChild1Code",
// "orgChild1.orgChild1Order",
const orgRootIds = orgRootData.map((orgRoot) => orgRoot.id);
const orgChild1Data = await AppDataSource.getRepository(OrgChild1)
.createQueryBuilder("orgChild1")
.where("orgChild1.orgRootId IN (:...ids)", { ids: orgRootIds })
.select([
"orgChild1.id",
"orgChild1.orgChild1Name",
"orgChild1.orgChild1ShortName",
"orgChild1.orgChild1Code",
"orgChild1.orgChild1Order",
"orgChild1.orgChild1PhoneEx",
"orgChild1.orgChild1PhoneIn",
"orgChild1.orgChild1Fax",
"orgChild1.orgRootId",
])
.getMany();
// "orgChild2.id",
// "orgChild2.orgChild2Name",
// "orgChild2.orgChild2ShortName",
// "orgChild2.orgChild2Code",
// "orgChild2.orgChild2Order",
const orgChild1Ids = orgChild1Data.map((orgChild1) => orgChild1.id);
const orgChild2Data = await AppDataSource.getRepository(OrgChild2)
.createQueryBuilder("orgChild2")
.where("orgChild2.orgChild1Id IN (:...ids)", { ids: orgChild1Ids })
.select([
"orgChild2.id",
"orgChild2.orgChild2Name",
"orgChild2.orgChild2ShortName",
"orgChild2.orgChild2Code",
"orgChild2.orgChild2Order",
"orgChild2.orgChild2PhoneEx",
"orgChild2.orgChild2PhoneIn",
"orgChild2.orgChild2Fax",
"orgChild2.orgRootId",
// "orgChild3.id",
// "orgChild3.orgChild3Name",
// "orgChild3.orgChild3ShortName",
// "orgChild3.orgChild3Code",
// "orgChild3.orgChild3Order",
"orgChild2.orgChild1Id",
])
.getMany();
// "orgChild4.id",
// "orgChild4.orgChild4Name",
// "orgChild4.orgChild4ShortName",
// "orgChild4.orgChild4Code",
// "orgChild4.orgChild4Order",
// ])
.getOne();
const orgChild2Ids = orgChild2Data.map((orgChild2) => orgChild2.id);
const orgChild3Data = await AppDataSource.getRepository(OrgChild3)
.createQueryBuilder("orgChild3")
.where("orgChild3.orgChild2Id IN (:...ids)", { ids: orgChild2Ids })
.select([
"orgChild3.id",
"orgChild3.orgChild3Name",
"orgChild3.orgChild3ShortName",
"orgChild3.orgChild3Code",
"orgChild3.orgChild3Order",
"orgChild3.orgChild3PhoneEx",
"orgChild3.orgChild3PhoneIn",
"orgChild3.orgChild3Fax",
"orgChild3.orgRootId",
return new HttpSuccess(orgRevisionData);
"orgChild3.orgChild2Id",
])
.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) {
return error;
}