api รักษาการแทน
This commit is contained in:
parent
f7c553ec1d
commit
9de005c7ae
8 changed files with 752 additions and 69 deletions
|
|
@ -1600,7 +1600,7 @@ export class OrganizationController extends Controller {
|
|||
*
|
||||
* @param {string} id Id revison
|
||||
*/
|
||||
@Get("/get/publish")
|
||||
@Get("get/publish")
|
||||
async runPublish() {
|
||||
const today = new Date();
|
||||
today.setHours(0, 0, 0, 0); // Set time to the beginning of the day
|
||||
|
|
@ -3056,19 +3056,19 @@ export class OrganizationController extends Controller {
|
|||
"orgChild1s.orgChild2s.orgChild3s.orgChild4s",
|
||||
],
|
||||
order: {
|
||||
orgChild1s:{
|
||||
orgChild1s: {
|
||||
orgChild1Order: "ASC",
|
||||
orgChild2s:{
|
||||
orgChild2s: {
|
||||
orgChild2Order: "ASC",
|
||||
orgChild3s:{
|
||||
orgChild3s: {
|
||||
orgChild3Order: "ASC",
|
||||
orgChild4s:{
|
||||
orgChild4s: {
|
||||
orgChild4Order: "ASC",
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
});
|
||||
return new HttpSuccess(data);
|
||||
}
|
||||
|
|
@ -3088,4 +3088,264 @@ export class OrganizationController extends Controller {
|
|||
}
|
||||
return new HttpSuccess(findRevision.id);
|
||||
}
|
||||
|
||||
/**
|
||||
* API รายละเอียดโครงสร้าง
|
||||
*
|
||||
* @summary รายละเอียดโครงสร้าง (ADMIN)
|
||||
*
|
||||
*/
|
||||
@Get("act/{id}")
|
||||
async detailAct(@Path() id: string) {
|
||||
const orgRevision = await this.orgRevisionRepository.findOne({ where: { id } });
|
||||
if (!orgRevision) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
}
|
||||
|
||||
const orgRootData = await AppDataSource.getRepository(OrgRoot)
|
||||
.createQueryBuilder("orgRoot")
|
||||
.where("orgRoot.orgRevisionId = :id", { id })
|
||||
.leftJoinAndSelect("orgRoot.posMasters", "posMasters")
|
||||
.leftJoinAndSelect("posMasters.current_holder", "current_holder")
|
||||
.orderBy("orgRoot.orgRootOrder", "ASC")
|
||||
.getMany();
|
||||
|
||||
const orgRootIds = orgRootData.map((orgRoot) => orgRoot.id) || null;
|
||||
const orgChild1Data =
|
||||
orgRootIds && orgRootIds.length > 0
|
||||
? await AppDataSource.getRepository(OrgChild1)
|
||||
.createQueryBuilder("orgChild1")
|
||||
.where("orgChild1.orgRootId IN (:...ids)", { ids: orgRootIds })
|
||||
.leftJoinAndSelect("orgChild1.posMasters", "posMasters")
|
||||
.leftJoinAndSelect("posMasters.current_holder", "current_holder")
|
||||
.orderBy("orgChild1.orgChild1Order", "ASC")
|
||||
.getMany()
|
||||
: [];
|
||||
|
||||
const orgChild1Ids = orgChild1Data.map((orgChild1) => orgChild1.id) || null;
|
||||
const orgChild2Data =
|
||||
orgChild1Ids && orgChild1Ids.length > 0
|
||||
? await AppDataSource.getRepository(OrgChild2)
|
||||
.createQueryBuilder("orgChild2")
|
||||
.where("orgChild2.orgChild1Id IN (:...ids)", { ids: orgChild1Ids })
|
||||
.leftJoinAndSelect("orgChild2.posMasters", "posMasters")
|
||||
.leftJoinAndSelect("posMasters.current_holder", "current_holder")
|
||||
.orderBy("orgChild2.orgChild2Order", "ASC")
|
||||
.getMany()
|
||||
: [];
|
||||
|
||||
const orgChild2Ids = orgChild2Data.map((orgChild2) => orgChild2.id) || null;
|
||||
const orgChild3Data =
|
||||
orgChild2Ids && orgChild2Ids.length > 0
|
||||
? await AppDataSource.getRepository(OrgChild3)
|
||||
.createQueryBuilder("orgChild3")
|
||||
.where("orgChild3.orgChild2Id IN (:...ids)", { ids: orgChild2Ids })
|
||||
.leftJoinAndSelect("orgChild3.posMasters", "posMasters")
|
||||
.leftJoinAndSelect("posMasters.current_holder", "current_holder")
|
||||
.orderBy("orgChild3.orgChild3Order", "ASC")
|
||||
.getMany()
|
||||
: [];
|
||||
|
||||
const orgChild3Ids = orgChild3Data.map((orgChild3) => orgChild3.id) || null;
|
||||
const orgChild4Data =
|
||||
orgChild3Ids && orgChild3Ids.length > 0
|
||||
? await AppDataSource.getRepository(OrgChild4)
|
||||
.createQueryBuilder("orgChild4")
|
||||
.where("orgChild4.orgChild3Id IN (:...ids)", { ids: orgChild3Ids })
|
||||
.leftJoinAndSelect("orgChild4.posMasters", "posMasters")
|
||||
.leftJoinAndSelect("posMasters.current_holder", "current_holder")
|
||||
.orderBy("orgChild4.orgChild4Order", "ASC")
|
||||
.getMany()
|
||||
: [];
|
||||
|
||||
// const formattedData = orgRootData.map((orgRoot) => {
|
||||
const formattedData = await Promise.all(
|
||||
orgRootData.map(async (orgRoot) => {
|
||||
return {
|
||||
orgTreeId: orgRoot.id,
|
||||
orgLevel: 0,
|
||||
orgName: orgRoot.orgRootName,
|
||||
orgTreeName: orgRoot.orgRootName,
|
||||
orgTreeShortName: orgRoot.orgRootShortName,
|
||||
orgTreeCode: orgRoot.orgRootCode,
|
||||
orgCode: orgRoot.orgRootCode + "00",
|
||||
orgRootName: orgRoot.orgRootName,
|
||||
labelName:
|
||||
orgRoot.orgRootName + " " + orgRoot.orgRootCode + "00" + " " + orgRoot.orgRootShortName,
|
||||
posMaster: await Promise.all(
|
||||
orgRoot.posMasters
|
||||
.filter(
|
||||
(x) => x.orgChild1Id != null && x.current_holderId != null && x.posMasterOrder <= 3,
|
||||
)
|
||||
.map(async (x) => ({
|
||||
orgTreeId: orgRoot.id,
|
||||
orgLevel: 0,
|
||||
fullNameCurrentHolder:
|
||||
x.current_holder == null
|
||||
? null
|
||||
: `${x.current_holder.prefix}${x.current_holder.firstName} ${x.current_holder.lastName}`,
|
||||
})),
|
||||
),
|
||||
children: await Promise.all(
|
||||
orgChild1Data
|
||||
.filter((orgChild1) => orgChild1.orgRootId === orgRoot.id)
|
||||
.map(async (orgChild1) => ({
|
||||
orgTreeId: orgChild1.id,
|
||||
orgRootId: orgRoot.id,
|
||||
orgLevel: 1,
|
||||
orgName: `${orgChild1.orgChild1Name}/${orgRoot.orgRootName}`,
|
||||
orgTreeName: orgChild1.orgChild1Name,
|
||||
orgTreeShortName: orgChild1.orgChild1ShortName,
|
||||
orgTreeCode: orgChild1.orgChild1Code,
|
||||
orgCode: orgRoot.orgRootCode + orgChild1.orgChild1Code,
|
||||
orgRootName: orgRoot.orgRootName,
|
||||
labelName:
|
||||
orgChild1.orgChild1Name +
|
||||
" " +
|
||||
orgRoot.orgRootCode +
|
||||
orgChild1.orgChild1Code +
|
||||
" " +
|
||||
orgChild1.orgChild1ShortName,
|
||||
posMaster: await Promise.all(
|
||||
orgChild1.posMasters
|
||||
.filter(
|
||||
(x) =>
|
||||
x.orgChild2Id != null &&
|
||||
x.current_holderId != null &&
|
||||
x.posMasterOrder <= 3,
|
||||
)
|
||||
.map(async (x) => ({
|
||||
orgTreeId: orgChild1.id,
|
||||
orgLevel: 1,
|
||||
fullNameCurrentHolder:
|
||||
x.current_holder == null
|
||||
? null
|
||||
: `${x.current_holder.prefix}${x.current_holder.firstName} ${x.current_holder.lastName}`,
|
||||
})),
|
||||
),
|
||||
|
||||
children: await Promise.all(
|
||||
orgChild2Data
|
||||
.filter((orgChild2) => orgChild2.orgChild1Id === orgChild1.id)
|
||||
.map(async (orgChild2) => ({
|
||||
orgTreeId: orgChild2.id,
|
||||
orgRootId: orgChild1.id,
|
||||
orgLevel: 2,
|
||||
orgName: `${orgChild2.orgChild2Name}/${orgChild1.orgChild1Name}/${orgRoot.orgRootName}`,
|
||||
orgTreeName: orgChild2.orgChild2Name,
|
||||
orgTreeShortName: orgChild2.orgChild2ShortName,
|
||||
orgTreeCode: orgChild2.orgChild2Code,
|
||||
orgCode: orgRoot.orgRootCode + orgChild2.orgChild2Code,
|
||||
orgRootName: orgRoot.orgRootName,
|
||||
labelName:
|
||||
orgChild2.orgChild2Name +
|
||||
" " +
|
||||
orgRoot.orgRootCode +
|
||||
orgChild2.orgChild2Code +
|
||||
" " +
|
||||
orgChild2.orgChild2ShortName,
|
||||
posMaster: await Promise.all(
|
||||
orgChild2.posMasters
|
||||
.filter(
|
||||
(x) =>
|
||||
x.orgChild3Id != null &&
|
||||
x.current_holderId != null &&
|
||||
x.posMasterOrder <= 3,
|
||||
)
|
||||
.map(async (x) => ({
|
||||
orgTreeId: orgChild2.id,
|
||||
orgLevel: 2,
|
||||
fullNameCurrentHolder:
|
||||
x.current_holder == null
|
||||
? null
|
||||
: `${x.current_holder.prefix}${x.current_holder.firstName} ${x.current_holder.lastName}`,
|
||||
})),
|
||||
),
|
||||
|
||||
children: await Promise.all(
|
||||
orgChild3Data
|
||||
.filter((orgChild3) => orgChild3.orgChild2Id === orgChild2.id)
|
||||
.map(async (orgChild3) => ({
|
||||
orgTreeId: orgChild3.id,
|
||||
orgRootId: orgChild2.id,
|
||||
orgLevel: 3,
|
||||
orgName: `${orgChild3.orgChild3Name}/${orgChild2.orgChild2Name}/${orgChild1.orgChild1Name}/${orgRoot.orgRootName}`,
|
||||
orgTreeName: orgChild3.orgChild3Name,
|
||||
orgTreeShortName: orgChild3.orgChild3ShortName,
|
||||
orgTreeCode: orgChild3.orgChild3Code,
|
||||
orgCode: orgRoot.orgRootCode + orgChild3.orgChild3Code,
|
||||
orgRootName: orgRoot.orgRootName,
|
||||
labelName:
|
||||
orgChild3.orgChild3Name +
|
||||
" " +
|
||||
orgRoot.orgRootCode +
|
||||
orgChild3.orgChild3Code +
|
||||
" " +
|
||||
orgChild3.orgChild3ShortName,
|
||||
posMaster: await Promise.all(
|
||||
orgChild3.posMasters
|
||||
.filter(
|
||||
(x) =>
|
||||
x.orgChild4Id != null &&
|
||||
x.current_holderId != null &&
|
||||
x.posMasterOrder <= 3,
|
||||
)
|
||||
.map(async (x) => ({
|
||||
orgTreeId: orgChild3.id,
|
||||
orgLevel: 3,
|
||||
fullNameCurrentHolder:
|
||||
x.current_holder == null
|
||||
? null
|
||||
: `${x.current_holder.prefix}${x.current_holder.firstName} ${x.current_holder.lastName}`,
|
||||
})),
|
||||
),
|
||||
|
||||
children: await Promise.all(
|
||||
orgChild4Data
|
||||
.filter((orgChild4) => orgChild4.orgChild3Id === orgChild3.id)
|
||||
.map(async (orgChild4) => ({
|
||||
orgTreeId: orgChild4.id,
|
||||
orgRootId: orgChild3.id,
|
||||
orgLevel: 4,
|
||||
orgName: `${orgChild4.orgChild4Name}/${orgChild3.orgChild3Name}/${orgChild2.orgChild2Name}/${orgChild1.orgChild1Name}/${orgRoot.orgRootName}`,
|
||||
orgTreeName: orgChild4.orgChild4Name,
|
||||
orgTreeShortName: orgChild4.orgChild4ShortName,
|
||||
orgTreeCode: orgChild4.orgChild4Code,
|
||||
orgCode: orgRoot.orgRootCode + orgChild4.orgChild4Code,
|
||||
orgRootName: orgRoot.orgRootName,
|
||||
labelName:
|
||||
orgChild4.orgChild4Name +
|
||||
" " +
|
||||
orgRoot.orgRootCode +
|
||||
orgChild4.orgChild4Code +
|
||||
" " +
|
||||
orgChild4.orgChild4ShortName,
|
||||
posMaster: await Promise.all(
|
||||
orgChild4.posMasters
|
||||
.filter(
|
||||
(x) => x.current_holderId != null && x.posMasterOrder <= 3,
|
||||
)
|
||||
.map(async (x) => ({
|
||||
orgTreeId: orgChild4.id,
|
||||
orgLevel: 4,
|
||||
fullNameCurrentHolder:
|
||||
x.current_holder == null
|
||||
? null
|
||||
: `${x.current_holder.prefix}${x.current_holder.firstName} ${x.current_holder.lastName}`,
|
||||
})),
|
||||
),
|
||||
})),
|
||||
),
|
||||
})),
|
||||
),
|
||||
})),
|
||||
),
|
||||
})),
|
||||
),
|
||||
};
|
||||
}),
|
||||
);
|
||||
|
||||
return new HttpSuccess(formattedData);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue