update
This commit is contained in:
parent
896928d3c7
commit
724a41a6a0
1 changed files with 81 additions and 45 deletions
|
|
@ -11,6 +11,7 @@ import Extension from "../interfaces/extension";
|
||||||
import { DevelopmentScholarship } from "../entities/DevelopmentScholarship";
|
import { DevelopmentScholarship } from "../entities/DevelopmentScholarship";
|
||||||
import { In, IsNull, Not } from "typeorm";
|
import { In, IsNull, Not } from "typeorm";
|
||||||
import { viewDevScholarship } from "../entities/view/viewDevScholarship";
|
import { viewDevScholarship } from "../entities/view/viewDevScholarship";
|
||||||
|
import { isNotEmittedStatement } from "typescript";
|
||||||
@Route("api/v1/development/report")
|
@Route("api/v1/development/report")
|
||||||
@Tags("Report")
|
@Tags("Report")
|
||||||
@Security("bearerAuth")
|
@Security("bearerAuth")
|
||||||
|
|
@ -886,61 +887,96 @@ export class ReportController extends Controller {
|
||||||
"ปริญญาเอก",
|
"ปริญญาเอก",
|
||||||
"ปริญญาโท",
|
"ปริญญาโท",
|
||||||
"ปริญญาตรี",
|
"ปริญญาตรี",
|
||||||
"ปวส.",
|
|
||||||
"ปวช.",
|
|
||||||
"ม.6",
|
|
||||||
"ม.3",
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// const development = await this.viewDevScholarship.find({
|
const development = await this.viewDevScholarship.find({
|
||||||
|
where: {
|
||||||
|
rootId: Not(IsNull()),
|
||||||
|
degreeLevel: In(degree),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
// })
|
const groupedData = development.reduce((acc:any, item:any) => {
|
||||||
|
const { rootId, root, degreeLevel, scholarshipType, budgetApprove } = item;
|
||||||
|
|
||||||
|
if (!acc[rootId]) {
|
||||||
|
acc[rootId] = {
|
||||||
|
root,
|
||||||
|
rootId,
|
||||||
|
degreeLevel1: {
|
||||||
|
numberOfRecords: 0,
|
||||||
|
numberOfScholarshipTypes: 0,
|
||||||
|
totalBudgetApprove: 0,
|
||||||
|
},
|
||||||
|
degreeLevel2: {
|
||||||
|
numberOfRecords: 0,
|
||||||
|
numberOfScholarshipTypes: 0,
|
||||||
|
totalBudgetApprove: 0,
|
||||||
|
},
|
||||||
|
degreeLevel3: {
|
||||||
|
numberOfRecords: 0,
|
||||||
|
numberOfScholarshipTypes: 0,
|
||||||
|
totalBudgetApprove: 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// const totalBudgetApprove = development.reduce((sum, item) => sum + Number(item.budgetApprove), 0);
|
if (degreeLevel === "ปริญญาตรี") {
|
||||||
// const formattedData = development.map((item, index) => {
|
acc[rootId].degreeLevel1.numberOfRecords += Number(item.numberOfRecords);
|
||||||
// const rawPath = [
|
acc[rootId].degreeLevel1.numberOfScholarshipTypes += Number(item.numberOfScholarshipTypes);
|
||||||
// item.course == "-" ? null : item.course,
|
acc[rootId].degreeLevel1.totalBudgetApprove += Number(item.totalBudgetApprove);
|
||||||
// item.field == "-" ? null : item.course
|
} else if (degreeLevel === "ปริญญาโท") {
|
||||||
// ];
|
acc[rootId].degreeLevel2.numberOfRecords += Number(item.numberOfRecords);
|
||||||
|
acc[rootId].degreeLevel2.numberOfScholarshipTypes += Number(item.numberOfScholarshipTypes);
|
||||||
|
acc[rootId].degreeLevel2.totalBudgetApprove += Number(item.totalBudgetApprove);
|
||||||
|
} else if (degreeLevel === "ปริญญาเอก") {
|
||||||
|
acc[rootId].degreeLevel3.numberOfRecords += Number(item.numberOfRecords);
|
||||||
|
acc[rootId].degreeLevel3.numberOfScholarshipTypes += Number(item.numberOfScholarshipTypes);
|
||||||
|
acc[rootId].degreeLevel3.totalBudgetApprove += Number(item.totalBudgetApprove);
|
||||||
|
}
|
||||||
|
|
||||||
// const courseAndfield = rawPath
|
return acc;
|
||||||
// .filter((path) => path !== undefined && path !== null)
|
}, {});
|
||||||
// .join("/");
|
|
||||||
|
|
||||||
// const date = [
|
const formattedData = Object.values(groupedData).map((item: any, index: any) => {
|
||||||
// Extension.ToThaiNumber(Extension.ToThaiShortDate(item.startDate)),
|
const sumnumberOfRecords = item.degreeLevel1.numberOfRecords + item.degreeLevel2.numberOfRecords + item.degreeLevel3.numberOfRecords;
|
||||||
// Extension.ToThaiNumber(Extension.ToThaiShortDate(item.endDate))
|
const sumnumberOfScholarshipTypes = item.degreeLevel1.numberOfScholarshipTypes + item.degreeLevel2.numberOfScholarshipTypes + item.degreeLevel3.numberOfScholarshipTypes;
|
||||||
// ];
|
const sumtotalBudgetApprove = item.degreeLevel1.totalBudgetApprove + item.degreeLevel2.totalBudgetApprove + item.degreeLevel3.totalBudgetApprove;
|
||||||
|
|
||||||
// const dateDulation = date
|
return {
|
||||||
// .filter((path) => path !== undefined && path !== null)
|
no: index ? Extension.ToThaiNumber((index + 1).toString()) : "๑",
|
||||||
// .join(" - ");
|
rootId: item.rootId ? item.rootId : "-",
|
||||||
|
root: item.root ? item.root : "-",
|
||||||
|
degreeLevel1: "ปริญญาตรี",
|
||||||
|
numberOfRecords1: item.degreeLevel1.numberOfRecords ? Extension.ToThaiNumber(item.degreeLevel1.numberOfRecords.toString()) : "-",
|
||||||
|
numberOfScholarshipTypes1: item.degreeLevel1.numberOfScholarshipTypes ? Extension.ToThaiNumber(item.degreeLevel1.numberOfScholarshipTypes.toString()) : "-",
|
||||||
|
totalBudgetApprove1: item.degreeLevel1.totalBudgetApprove ? Extension.ToThaiNumber(item.degreeLevel1.totalBudgetApprove.toLocaleString()) : "-",
|
||||||
|
|
||||||
// return {
|
degreeLevel2: "ปริญญาโท",
|
||||||
// no: Extension.ToThaiNumber((index + 1).toString()),
|
numberOfRecords2: item.degreeLevel2.numberOfRecords ? Extension.ToThaiNumber(item.degreeLevel2.numberOfRecords.toString()) : "-",
|
||||||
// id: item.id,
|
numberOfScholarshipTypes2: item.degreeLevel2.numberOfScholarshipTypes ? Extension.ToThaiNumber(item.degreeLevel2.numberOfScholarshipTypes.toString()) : "-",
|
||||||
// rootId: item.rootId,
|
totalBudgetApprove2: item.degreeLevel2.totalBudgetApprove ? Extension.ToThaiNumber(item.degreeLevel2.totalBudgetApprove.toLocaleString()) : "-",
|
||||||
// root: item.root,
|
|
||||||
// degree: item.degreeLevel,
|
degreeLevel3: "ปริญญาเอก",
|
||||||
// // studyTopic: item.studyTopic ? item.studyTopic : "-",
|
numberOfRecords3: item.degreeLevel3.numberOfRecords ? Extension.ToThaiNumber(item.degreeLevel3.numberOfRecords.toString()) : "-",
|
||||||
// // fullName: item.prefix + item.firstName + " " + item.lastName,
|
numberOfScholarshipTypes3: item.degreeLevel3.numberOfScholarshipTypes ? Extension.ToThaiNumber(item.degreeLevel3.numberOfScholarshipTypes.toString()) : "-",
|
||||||
// // position: item.position,
|
totalBudgetApprove3: item.degreeLevel3.totalBudgetApprove ? Extension.ToThaiNumber(item.degreeLevel3.totalBudgetApprove.toLocaleString()) : "-",
|
||||||
// // posLevel: item.posLevel ? item.posLevel.posLevelName : "-",
|
|
||||||
// // courseAndfield: courseAndfield ?? "-",
|
totalNumberOfRecords: Extension.ToThaiNumber(sumnumberOfRecords.toString()),
|
||||||
// // place: item.studyPlace ? item.studyPlace : "-",
|
totalNumberOfScholarshipTypes: Extension.ToThaiNumber(sumnumberOfScholarshipTypes.toString()),
|
||||||
// // country: item.studyCountry ? item.studyCountry : "-",
|
totalTotalBudgetApprove: Extension.ToThaiNumber(sumtotalBudgetApprove.toLocaleString())
|
||||||
// // startAndendDate: dateDulation,
|
};
|
||||||
// // budgetApprove: item.budgetApprove ? Extension.ToThaiNumber(item.budgetApprove.toString()) : "-",
|
});
|
||||||
// };
|
const uniqueRoots = new Set(formattedData.map(item => item.root));
|
||||||
// });
|
const numberOfORG = uniqueRoots.size;
|
||||||
|
|
||||||
return new HttpSuccess({
|
return new HttpSuccess({
|
||||||
template: "reportFund6",
|
template: "reportFund6",
|
||||||
reportName: "reportFund6",
|
reportName: "reportFund6",
|
||||||
data: {
|
data: {
|
||||||
year: year?Extension.ToThaiNumber((year+543).toString()):"",
|
year: year?Extension.ToThaiNumber((year+543).toString()):"",
|
||||||
data: "",
|
data: formattedData,
|
||||||
|
coutOrg: numberOfORG?Extension.ToThaiNumber(numberOfORG.toString())+" หน่วยงาน":"๐ หน่วยงาน"
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue