ORG_023 - รายละเอียดโครงสร้าง (ADMIN)
This commit is contained in:
parent
ae43aa918d
commit
75a6e286cd
1 changed files with 166 additions and 40 deletions
|
|
@ -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)
|
||||||
|
.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();
|
||||||
|
|
||||||
const orgRevisionData = await AppDataSource.getRepository(OrgRevision)
|
const orgRootIds = orgRootData.map((orgRoot) => orgRoot.id);
|
||||||
.createQueryBuilder("orgRevision")
|
const orgChild1Data = await AppDataSource.getRepository(OrgChild1)
|
||||||
// .leftJoin("orgRevision.orgRoots", "orgRoot")
|
.createQueryBuilder("orgChild1")
|
||||||
// .leftJoin("orgRoot.orgChild1s", "orgChild1")
|
.where("orgChild1.orgRootId IN (:...ids)", { ids: orgRootIds })
|
||||||
// .leftJoin("orgChild1.orgChild2s", "orgChild2")
|
.select([
|
||||||
// .leftJoin("orgChild2.orgChild3s", "orgChild3")
|
"orgChild1.id",
|
||||||
// .leftJoin("orgChild3.orgChild4s", "orgChild4")
|
"orgChild1.orgChild1Name",
|
||||||
.where("orgRevision.id = :id", { id })
|
"orgChild1.orgChild1ShortName",
|
||||||
// .select([
|
"orgChild1.orgChild1Code",
|
||||||
// "orgRoot.id",
|
"orgChild1.orgChild1Order",
|
||||||
// "orgRoot.orgRootName",
|
"orgChild1.orgChild1PhoneEx",
|
||||||
// "orgRoot.orgRootShortName",
|
"orgChild1.orgChild1PhoneIn",
|
||||||
// "orgRoot.orgRootCode",
|
"orgChild1.orgChild1Fax",
|
||||||
// "orgRoot.orgRootOrder",
|
"orgChild1.orgRootId",
|
||||||
|
])
|
||||||
|
.getMany();
|
||||||
|
|
||||||
// "orgChild1.id",
|
const orgChild1Ids = orgChild1Data.map((orgChild1) => orgChild1.id);
|
||||||
// "orgChild1.orgChild1Name",
|
const orgChild2Data = await AppDataSource.getRepository(OrgChild2)
|
||||||
// "orgChild1.orgChild1ShortName",
|
.createQueryBuilder("orgChild2")
|
||||||
// "orgChild1.orgChild1Code",
|
.where("orgChild2.orgChild1Id IN (:...ids)", { ids: orgChild1Ids })
|
||||||
// "orgChild1.orgChild1Order",
|
.select([
|
||||||
|
"orgChild2.id",
|
||||||
|
"orgChild2.orgChild2Name",
|
||||||
|
"orgChild2.orgChild2ShortName",
|
||||||
|
"orgChild2.orgChild2Code",
|
||||||
|
"orgChild2.orgChild2Order",
|
||||||
|
"orgChild2.orgChild2PhoneEx",
|
||||||
|
"orgChild2.orgChild2PhoneIn",
|
||||||
|
"orgChild2.orgChild2Fax",
|
||||||
|
"orgChild2.orgRootId",
|
||||||
|
|
||||||
// "orgChild2.id",
|
"orgChild2.orgChild1Id",
|
||||||
// "orgChild2.orgChild2Name",
|
])
|
||||||
// "orgChild2.orgChild2ShortName",
|
.getMany();
|
||||||
// "orgChild2.orgChild2Code",
|
|
||||||
// "orgChild2.orgChild2Order",
|
|
||||||
|
|
||||||
// "orgChild3.id",
|
const orgChild2Ids = orgChild2Data.map((orgChild2) => orgChild2.id);
|
||||||
// "orgChild3.orgChild3Name",
|
const orgChild3Data = await AppDataSource.getRepository(OrgChild3)
|
||||||
// "orgChild3.orgChild3ShortName",
|
.createQueryBuilder("orgChild3")
|
||||||
// "orgChild3.orgChild3Code",
|
.where("orgChild3.orgChild2Id IN (:...ids)", { ids: orgChild2Ids })
|
||||||
// "orgChild3.orgChild3Order",
|
.select([
|
||||||
|
"orgChild3.id",
|
||||||
|
"orgChild3.orgChild3Name",
|
||||||
|
"orgChild3.orgChild3ShortName",
|
||||||
|
"orgChild3.orgChild3Code",
|
||||||
|
"orgChild3.orgChild3Order",
|
||||||
|
"orgChild3.orgChild3PhoneEx",
|
||||||
|
"orgChild3.orgChild3PhoneIn",
|
||||||
|
"orgChild3.orgChild3Fax",
|
||||||
|
"orgChild3.orgRootId",
|
||||||
|
|
||||||
// "orgChild4.id",
|
"orgChild3.orgChild2Id",
|
||||||
// "orgChild4.orgChild4Name",
|
])
|
||||||
// "orgChild4.orgChild4ShortName",
|
.getMany();
|
||||||
// "orgChild4.orgChild4Code",
|
|
||||||
// "orgChild4.orgChild4Order",
|
|
||||||
// ])
|
|
||||||
.getOne();
|
|
||||||
|
|
||||||
|
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",
|
||||||
|
|
||||||
return new HttpSuccess(orgRevisionData);
|
"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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue