update 3 4

This commit is contained in:
Bright 2025-02-13 17:38:17 +07:00
parent 5882e21a41
commit 92855fac40

View file

@ -586,11 +586,23 @@ export class ReportController extends Controller {
.orderBy("developmentScholarship.scholarshipYear", "DESC")
.addOrderBy("developmentScholarship.createdAt", "DESC")
.getMany();
const mapData = developments.map((item, idx:number) => ({
no: Extension.ToThaiNumber((idx+1).toString()),
institution: item.educationalInstitution ? item.educationalInstitution : "-",
scholarshipType: item.scholarshipType ? item.scholarshipType : "-",
scholarshipType: item.scholarshipType ?
item.scholarshipType == "DOMESTICE"
? "การศึกษาในประเทศ"
: item.scholarshipType == "NOABROAD"
? "ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรที่ไม่มีการไปต่างประเทศ)"
: item.scholarshipType == "ABROAD"
? "ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรที่มีการไปต่างประเทศ)"
: item.scholarshipType == "EXECUTIVE"
? "ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรประเภทนักบริหาร)"
: item.scholarshipType == "RESEARCH"
? "ศึกษา ฝึกอบรม ประชุม ดูงาน และปฏิบัติการวิจัย ณ ต่างประเทศ"
: "-"
: "-",
degreeLevel: item.degreeLevel ? item.degreeLevel : "-",
course: item.course ? item.course : "-",
field: item.field ? item.field : "-",
@ -598,7 +610,7 @@ export class ReportController extends Controller {
position: item.position ? item.position : "-",
posLevel: item.posLevel ? item.posLevel.posLevelName : "-",
totalPeriod: item.totalPeriod ? item.totalPeriod : "-",
budgetApprove: item.budgetApprove ? Extension.ToThaiNumber(item.budgetApprove.toString()) : "" //toLocaleString
budgetApprove: item.budgetApprove ? Extension.ToThaiNumber(item.budgetApprove.toLocaleString()) : ""
}));
const sum = developments
@ -610,7 +622,7 @@ export class ReportController extends Controller {
reportName: "reportFund3",
data: {
year: year ? Extension.ToThaiNumber((year+543).toString()) : "-",
root: developments.length > 0 ? developments[0].root : "-",
root: rootId ? developments.length > 0 ? developments.find(x => x.root != "")?.root: "-" : "-",
data: mapData.length > 0
? mapData
: [{
@ -626,7 +638,7 @@ export class ReportController extends Controller {
totalPeriod: "-",
budgetApprove: "-",
}],
sum: sum ? Extension.ToThaiNumber(sum.toString()): "-"
sum: sum ? Extension.ToThaiNumber(sum.toLocaleString()): "-"
},
});
}
@ -637,14 +649,143 @@ export class ReportController extends Controller {
*
*/
@Get("report4")
async report4() {
async report4(
@Query("year") year: number,
) {
const developments = await AppDataSource.getRepository(DevelopmentScholarship)
.createQueryBuilder("developmentScholarship")
.andWhere(
year !== 0 && year != null && year != undefined
? "developmentScholarship.scholarshipYear = :scholarshipYear"
: "1=1",
{ scholarshipYear: year },
)
.orderBy("developmentScholarship.scholarshipYear", "DESC")
.addOrderBy("developmentScholarship.createdAt", "DESC")
.getMany();
// const _develop = await this.developmentScholarshipRepository.find({
// where: {
// scholarshipYear: year ? year : Not(IsNull())
// },
// order: { "scholarshipYear" : "DESC" }
// })
const groupDevelopment = Array.isArray(developments) && developments.length > 0
? developments.reduce((acc:any, current:any, idx:number) => {
const root = current.root || "";
if (!acc[root]) {
acc[root] = {
// rootId,
no: (idx+1),
root: root,
Bachelor : 0,
BachelorHight: 0,
Master: 0,
Doctor: 0,
DomesticeCourseCount: 0,
DomesticeProfileCount: 0,
DomesticeBudgetApprove: 0,
NoAbroadCourseCount: 0,
NoAbroadDProfileCount: 0,
NoAbroadBudgetApprove: 0,
AbroadCourseCount: 0,
AbroadProfileCount: 0,
AbroadBudgetApprove: 0,
ExecutiveCourseCount: 0,
ExecutiveProfileCount: 0,
ExecutiveBudgetApprove: 0,
TotalCourseCount: 0,
TotalProfileCount: 0,
TotalBudgetApprove: 0,
};
}
switch (current.scholarshipType) {
case "DOMESTICE":
acc[root].DomesticeCourseCount++;
acc[root].DomesticeProfileCount++;
acc[root].DomesticeBudgetApprove += current.budgetApprove || 0;
break;
case "NOABROAD":
acc[root].NoAbroadCourseCount++;
acc[root].NoAbroadProfileCount++;
acc[root].NoAbroadBudgetApprove += current.budgetApprove || 0;
break;
case "ABROAD":
acc[root].AbroadCourseCount++;
acc[root].AbroadProfileCount++;
acc[root].AbroadBudgetApprove += current.budgetApprove || 0;
break;
case "EXECUTIVE":
acc[root].ExecutiveCourseCount++;
acc[root].ExecutiveProfileCount++;
acc[root].ExecutiveBudgetApprove += current.budgetApprove || 0;
break;
}
acc[root].TotalCourseCount = acc[root].DomesticeCourseCount + acc[root].NoAbroadCourseCount + acc[root].AbroadCourseCount + acc[root].ExecutiveCourseCount;
acc[root].TotalProfileCount = acc[root].DomesticeProfileCount + acc[root].NoAbroadProfileCount + acc[root].AbroadProfileCount + acc[root].ExecutiveProfileCount;
acc[root].TotalBudgetApprove = acc[root].DomesticeBudgetApprove + acc[root].NoAbroadBudgetApprove + acc[root].AbroadBudgetApprove + acc[root].ExecutiveBudgetApprove;
return acc;
}, {})
: [];
const _group = Object.values(groupDevelopment);
return new HttpSuccess({
template: "reportFund4",
reportName: "reportFund4",
data: {
data: "",
year: year ? Extension.ToThaiNumber((year+543).toString()) : "-",
data: Array.isArray(_group)
? _group.map((x:any, idx:number) => ({
// no: Extension.ToThaiNumber((idx+1).toString()),
// root: x.root ? x.root : "-",
// Bachelor : "-",
// BachelorHight: "-",
// Master: "-",
// Doctor: "-",
// DomesticeCourseCount: x.DomesticeCourseCount ? Extension.ToThaiNumber(x.DomesticeCourseCount) : "",
// DomesticeProfileCount: x.DomesticeProfileCount ? Extension.ToThaiNumber(x.DomesticeProfileCount) : "",
// DomesticeBudgetApprove: x.DomesticeBudgetApprove ? Extension.ToThaiNumber(x.DomesticeBudgetApprove) : "",
// NoAbroadCourseCount: x.NoAbroadCourseCount ? Extension.ToThaiNumber(x.NoAbroadCourseCount) : "",
// NoAbroadDProfileCount: x.NoAbroadDProfileCount ? Extension.ToThaiNumber(x.NoAbroadDProfileCount) : "",
// NoAbroadBudgetApprove: x.NoAbroadBudgetApprove ? Extension.ToThaiNumber(x.NoAbroadBudgetApprove) : "",
// AbroadCourseCount: x.AbroadCourseCount ? Extension.ToThaiNumber(x.AbroadCourseCount) : "",
// AbroadProfileCount: x.AbroadProfileCount ? Extension.ToThaiNumber(x.AbroadProfileCount) : "",
// AbroadBudgetApprove: x.AbroadBudgetApprove ? Extension.ToThaiNumber(x.AbroadBudgetApprove) : "",
// ExecutiveCourseCount: x.ExecutiveCourseCount ? Extension.ToThaiNumber(x.ExecutiveCourseCount) : "",
// ExecutiveProfileCount: x.ExecutiveProfileCount ? Extension.ToThaiNumber(x.ExecutiveProfileCount) : "",
// ExecutiveBudgetApprove: x.ExecutiveBudgetApprove ? Extension.ToThaiNumber(x.ExecutiveBudgetApprove) : "",
// TotalCourseCount: x.TotalCourseCount ? Extension.ToThaiNumber(x.TotalCourseCount) : "",
// TotalProfileCount: x.TotalProfileCount ? Extension.ToThaiNumber(x.TotalProfileCount) : "",
// TotalBudgetApprove: x.TotalBudgetApprove ? Extension.ToThaiNumber(x.TotalBudgetApprove) : "",
}))
: [{
no: "-",
root: "-",
Bachelor : "-",
BachelorHight: "-",
Master: "-",
Doctor: "-",
DomesticeCourseCount: "-",
DomesticeProfileCount: "-",
DomesticeBudgetApprove: "-",
NoAbroadCourseCount: "-",
NoAbroadDProfileCount: "-",
NoAbroadBudgetApprove: "-",
AbroadCourseCount: "-",
AbroadProfileCount: "-",
AbroadBudgetApprove: "-",
ExecutiveCourseCount: "-",
ExecutiveProfileCount: "-",
ExecutiveBudgetApprove: "-",
TotalCourseCount: "-",
TotalProfileCount: "-",
TotalBudgetApprove: "-",
}],
totalRoot: Array.isArray(_group) ? Extension.ToThaiNumber(_group.length.toLocaleString()) : "-"
},
});
}