fix
This commit is contained in:
parent
f2a181e7ad
commit
772a0b3a93
1 changed files with 330 additions and 326 deletions
|
|
@ -459,7 +459,6 @@ export class ReportController extends Controller {
|
||||||
if (requestBody.type == "KPI4") {
|
if (requestBody.type == "KPI4") {
|
||||||
templateName = "KPI4";
|
templateName = "KPI4";
|
||||||
reportName = "KPI4";
|
reportName = "KPI4";
|
||||||
//use_filter
|
|
||||||
const yearNow = new Date().getFullYear();
|
const yearNow = new Date().getFullYear();
|
||||||
if (requestBody.profileId) {
|
if (requestBody.profileId) {
|
||||||
//ชั่วคราว
|
//ชั่วคราว
|
||||||
|
|
@ -481,96 +480,98 @@ export class ReportController extends Controller {
|
||||||
// .getRawMany();
|
// .getRawMany();
|
||||||
// const profileEvaluationCombianIds = profileEvaluationNowYearIds.concat(profileEvaluationNextYearIds);
|
// const profileEvaluationCombianIds = profileEvaluationNowYearIds.concat(profileEvaluationNextYearIds);
|
||||||
|
|
||||||
const profileEvaluations = await this.kpiUserEvaluationRepository.find({
|
if (profileEvaluationNowYearIds.length > 0) {
|
||||||
relations: ["kpiPeriod"],
|
//ชั่วคราว
|
||||||
where: { id: In(profileEvaluationNowYearIds.map((evaluation) => evaluation.id)) },
|
const profileEvaluations = await this.kpiUserEvaluationRepository.find({
|
||||||
});
|
relations: ["kpiPeriod"],
|
||||||
|
where: { id: In(profileEvaluationNowYearIds.map((evaluation) => evaluation.id)) },
|
||||||
const groupedEvaluations = profileEvaluations.reduce((acc: any, evaluation: any) => {
|
|
||||||
const year = evaluation.kpiPeriod.year;
|
|
||||||
const profileId = evaluation.profileId;
|
|
||||||
const key = `${profileId}-${year}`;
|
|
||||||
|
|
||||||
if (!acc[key]) {
|
|
||||||
acc[key] = {
|
|
||||||
fullName: evaluation.prefix + evaluation.firstName + " " + evaluation.lastName,
|
|
||||||
profileId: profileId,
|
|
||||||
year: Extension.ToThaiNumber(Extension.ToThaiYear(year).toString()), // Set year once here
|
|
||||||
evaluations: [],
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
acc[key].evaluations.push(evaluation);
|
|
||||||
return acc;
|
|
||||||
}, {});
|
|
||||||
|
|
||||||
// สร้าง formatData
|
|
||||||
const combinedDatas = Object.values(groupedEvaluations).map((group: any) => {
|
|
||||||
const data: any = {
|
|
||||||
fullName: group.fullName ?? null,
|
|
||||||
year: group.year ?? null,
|
|
||||||
};
|
|
||||||
|
|
||||||
group.evaluations.forEach((evaluation: any) => {
|
|
||||||
if (evaluation.kpiPeriod.durationKPI === "APR") {
|
|
||||||
data.summaryPointAPR1 =
|
|
||||||
evaluation.summaryPoint >= 90
|
|
||||||
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
|
||||||
: null;
|
|
||||||
data.summaryPointAPR2 =
|
|
||||||
evaluation.summaryPoint >= 80 && evaluation.summaryPoint < 90
|
|
||||||
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
|
||||||
: null;
|
|
||||||
data.summaryPointAPR3 =
|
|
||||||
evaluation.summaryPoint >= 70 && evaluation.summaryPoint < 80
|
|
||||||
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
|
||||||
: null;
|
|
||||||
data.summaryPointAPR4 =
|
|
||||||
evaluation.summaryPoint >= 60 && evaluation.summaryPoint < 70
|
|
||||||
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
|
||||||
: null;
|
|
||||||
data.summaryPointAPR5 =
|
|
||||||
evaluation.summaryPoint < 60
|
|
||||||
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
|
||||||
: null;
|
|
||||||
data.periodAPR = evaluation.kpiPeriod.durationKPI;
|
|
||||||
} else if (evaluation.kpiPeriod.durationKPI === "OCT") {
|
|
||||||
data.summaryPointOCT1 =
|
|
||||||
evaluation.summaryPoint >= 90
|
|
||||||
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
|
||||||
: null;
|
|
||||||
data.summaryPointOCT2 =
|
|
||||||
evaluation.summaryPoint >= 80 && evaluation.summaryPoint < 90
|
|
||||||
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
|
||||||
: null;
|
|
||||||
data.summaryPointOCT3 =
|
|
||||||
evaluation.summaryPoint >= 70 && evaluation.summaryPoint < 80
|
|
||||||
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
|
||||||
: null;
|
|
||||||
data.summaryPointOCT4 =
|
|
||||||
evaluation.summaryPoint >= 60 && evaluation.summaryPoint < 70
|
|
||||||
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
|
||||||
: null;
|
|
||||||
data.summaryPointOCT5 =
|
|
||||||
evaluation.summaryPoint < 60
|
|
||||||
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
|
||||||
: null;
|
|
||||||
data.periodOCT = evaluation.kpiPeriod.durationKPI ?? null;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return data;
|
const groupedEvaluations = profileEvaluations.reduce((acc: any, evaluation: any) => {
|
||||||
});
|
const year = evaluation.kpiPeriod.year;
|
||||||
formattedData = {
|
const profileId = evaluation.profileId;
|
||||||
combinedDatas: combinedDatas.length > 0 ? combinedDatas : [{}],
|
const key = `${profileId}-${year}`;
|
||||||
fullName: combinedDatas[0]["fullName"] ?? null,
|
|
||||||
};
|
if (!acc[key]) {
|
||||||
|
acc[key] = {
|
||||||
|
fullName: evaluation.prefix + evaluation.firstName + " " + evaluation.lastName,
|
||||||
|
profileId: profileId,
|
||||||
|
year: year?Extension.ToThaiNumber(Extension.ToThaiYear(year).toString()):null,
|
||||||
|
evaluations: [],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
acc[key].evaluations.push(evaluation);
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
|
|
||||||
|
// สร้าง formatData
|
||||||
|
const combinedDatas = Object.values(groupedEvaluations).map((group: any) => {
|
||||||
|
const data: any = {
|
||||||
|
fullName: group.fullName ?? null,
|
||||||
|
year: group.year ?? null,
|
||||||
|
};
|
||||||
|
|
||||||
|
group.evaluations.forEach((evaluation: any) => {
|
||||||
|
if (evaluation.kpiPeriod.durationKPI === "APR") {
|
||||||
|
data.summaryPointAPR1 =
|
||||||
|
evaluation.summaryPoint >= 90
|
||||||
|
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
||||||
|
: null;
|
||||||
|
data.summaryPointAPR2 =
|
||||||
|
evaluation.summaryPoint >= 80 && evaluation.summaryPoint < 90
|
||||||
|
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
||||||
|
: null;
|
||||||
|
data.summaryPointAPR3 =
|
||||||
|
evaluation.summaryPoint >= 70 && evaluation.summaryPoint < 80
|
||||||
|
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
||||||
|
: null;
|
||||||
|
data.summaryPointAPR4 =
|
||||||
|
evaluation.summaryPoint >= 60 && evaluation.summaryPoint < 70
|
||||||
|
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
||||||
|
: null;
|
||||||
|
data.summaryPointAPR5 =
|
||||||
|
evaluation.summaryPoint < 60
|
||||||
|
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
||||||
|
: null;
|
||||||
|
data.periodAPR = evaluation.kpiPeriod.durationKPI;
|
||||||
|
} else if (evaluation.kpiPeriod.durationKPI === "OCT") {
|
||||||
|
data.summaryPointOCT1 =
|
||||||
|
evaluation.summaryPoint >= 90
|
||||||
|
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
||||||
|
: null;
|
||||||
|
data.summaryPointOCT2 =
|
||||||
|
evaluation.summaryPoint >= 80 && evaluation.summaryPoint < 90
|
||||||
|
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
||||||
|
: null;
|
||||||
|
data.summaryPointOCT3 =
|
||||||
|
evaluation.summaryPoint >= 70 && evaluation.summaryPoint < 80
|
||||||
|
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
||||||
|
: null;
|
||||||
|
data.summaryPointOCT4 =
|
||||||
|
evaluation.summaryPoint >= 60 && evaluation.summaryPoint < 70
|
||||||
|
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
||||||
|
: null;
|
||||||
|
data.summaryPointOCT5 =
|
||||||
|
evaluation.summaryPoint < 60
|
||||||
|
? Extension.ToThaiNumber(evaluation.summaryPoint.toString())
|
||||||
|
: null;
|
||||||
|
data.periodOCT = evaluation.kpiPeriod.durationKPI ?? null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
|
});
|
||||||
|
formattedData = {
|
||||||
|
combinedDatas: combinedDatas.length > 0 ? combinedDatas : [{}],
|
||||||
|
fullName: combinedDatas[0]["fullName"] ?? null,
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (requestBody.type == "KPI5") {
|
if (requestBody.type == "KPI5") {
|
||||||
templateName = "KPI5";
|
templateName = "KPI5";
|
||||||
reportName = "KPI5";
|
reportName = "KPI5";
|
||||||
//use_filter
|
|
||||||
interface KPIData {
|
interface KPIData {
|
||||||
fullName: string | null;
|
fullName: string | null;
|
||||||
position: string | null;
|
position: string | null;
|
||||||
|
|
@ -636,164 +637,166 @@ export class ReportController extends Controller {
|
||||||
.groupBy("kpiUserEvaluation.kpiPeriodId")
|
.groupBy("kpiUserEvaluation.kpiPeriodId")
|
||||||
.select("MIN(kpiUserEvaluation.id) as id")
|
.select("MIN(kpiUserEvaluation.id) as id")
|
||||||
.getRawMany();
|
.getRawMany();
|
||||||
|
if (profileEvaluationIds.length > 0) {
|
||||||
|
const profileEvaluation = await this.kpiUserEvaluationRepository.find({
|
||||||
|
relations: ["kpiPeriod"],
|
||||||
|
where: { id: In(profileEvaluationIds.map((evaluation) => evaluation.id)) },
|
||||||
|
});
|
||||||
|
|
||||||
const profileEvaluation = await this.kpiUserEvaluationRepository.find({
|
const combinedData: KPIData = profileEvaluation.reduce(
|
||||||
relations: ["kpiPeriod"],
|
(acc: KPIData, x) => {
|
||||||
where: { id: In(profileEvaluationIds.map((evaluation) => evaluation.id)) },
|
const fullNameParts = [x.child4, x.child3, x.child2, x.child1, x.org];
|
||||||
});
|
|
||||||
|
|
||||||
const combinedData: KPIData = profileEvaluation.reduce(
|
const affiliation = fullNameParts
|
||||||
(acc: KPIData, x) => {
|
.filter((part) => part !== undefined && part !== null)
|
||||||
const fullNameParts = [x.child4, x.child3, x.child2, x.child1, x.org];
|
.join("/");
|
||||||
|
|
||||||
const affiliation = fullNameParts
|
if (!acc.fullName) {
|
||||||
.filter((part) => part !== undefined && part !== null)
|
acc.fullName = x.prefix + " " + x.firstName + " " + x.lastName;
|
||||||
.join("/");
|
acc.position = x.position;
|
||||||
|
acc.posType = x.posTypeName;
|
||||||
|
acc.posLevel = x.posLevelName;
|
||||||
|
acc.affiliation = affiliation;
|
||||||
|
}
|
||||||
|
|
||||||
if (!acc.fullName) {
|
if (x.kpiPeriod.year === yearNow - 4 && x.kpiPeriod.durationKPI === "APR") {
|
||||||
acc.fullName = x.prefix + " " + x.firstName + " " + x.lastName;
|
acc.summaryPointAPR1 = x.summaryPoint
|
||||||
acc.position = x.position;
|
?Extension.ToThaiNumber(x.summaryPoint.toString()): null;
|
||||||
acc.posType = x.posTypeName;
|
acc.textPointAPR1 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.posLevel = x.posLevelName;
|
acc.periodAPR1 = x.kpiPeriod.durationKPI;
|
||||||
acc.affiliation = affiliation;
|
acc.yearAPR1 =
|
||||||
}
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 4 && x.kpiPeriod.durationKPI === "APR") {
|
if (x.kpiPeriod.year === yearNow - 4 && x.kpiPeriod.durationKPI === "OCT") {
|
||||||
acc.summaryPointAPR1 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointOCT1 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointAPR1 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointOCT1 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodAPR1 = x.kpiPeriod.durationKPI;
|
acc.periodOCT1 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearAPR1 =
|
acc.yearOCT1 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 4 && x.kpiPeriod.durationKPI === "OCT") {
|
if (x.kpiPeriod.year === yearNow - 3 && x.kpiPeriod.durationKPI === "APR") {
|
||||||
acc.summaryPointOCT1 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointAPR2 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointOCT1 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointAPR2 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodOCT1 = x.kpiPeriod.durationKPI;
|
acc.periodAPR2 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearOCT1 =
|
acc.yearAPR2 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 3 && x.kpiPeriod.durationKPI === "APR") {
|
if (x.kpiPeriod.year === yearNow - 3 && x.kpiPeriod.durationKPI === "OCT") {
|
||||||
acc.summaryPointAPR2 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointOCT2 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointAPR2 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointOCT2 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodAPR2 = x.kpiPeriod.durationKPI;
|
acc.periodOCT2 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearAPR2 =
|
acc.yearOCT2 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 3 && x.kpiPeriod.durationKPI === "OCT") {
|
if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "APR") {
|
||||||
acc.summaryPointOCT2 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointAPR3 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointOCT2 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointAPR3 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodOCT2 = x.kpiPeriod.durationKPI;
|
acc.periodAPR3 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearOCT2 =
|
acc.yearAPR3 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "APR") {
|
if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "OCT") {
|
||||||
acc.summaryPointAPR3 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointOCT3 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointAPR3 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointOCT3 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodAPR3 = x.kpiPeriod.durationKPI;
|
acc.periodOCT3 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearAPR3 =
|
acc.yearOCT3 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "OCT") {
|
if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "APR") {
|
||||||
acc.summaryPointOCT3 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointAPR4 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointOCT3 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointAPR4 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodOCT3 = x.kpiPeriod.durationKPI;
|
acc.periodAPR4 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearOCT3 =
|
acc.yearAPR4 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "APR") {
|
if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "OCT") {
|
||||||
acc.summaryPointAPR4 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointOCT4 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointAPR4 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointOCT4 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodAPR4 = x.kpiPeriod.durationKPI;
|
acc.periodOCT4 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearAPR4 =
|
acc.yearOCT4 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "OCT") {
|
if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "APR") {
|
||||||
acc.summaryPointOCT4 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointAPR5 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointOCT4 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointAPR5 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodOCT4 = x.kpiPeriod.durationKPI;
|
acc.periodAPR5 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearOCT4 =
|
acc.yearAPR5 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "APR") {
|
if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "OCT") {
|
||||||
acc.summaryPointAPR5 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointOCT5 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointAPR5 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointOCT5 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodAPR5 = x.kpiPeriod.durationKPI;
|
acc.periodOCT5 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearAPR5 =
|
acc.yearOCT5 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "OCT") {
|
return acc;
|
||||||
acc.summaryPointOCT5 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
},
|
||||||
acc.textPointOCT5 = Extension.textPoint(x.summaryPoint) ?? null;
|
{
|
||||||
acc.periodOCT5 = x.kpiPeriod.durationKPI;
|
fullName: null,
|
||||||
acc.yearOCT5 =
|
position: null,
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
posType: null,
|
||||||
}
|
posLevel: null,
|
||||||
|
affiliation: null,
|
||||||
return acc;
|
summaryPointAPR1: null,
|
||||||
},
|
textPointAPR1: null,
|
||||||
{
|
periodAPR1: null,
|
||||||
fullName: null,
|
yearAPR1: null,
|
||||||
position: null,
|
summaryPointOCT1: null,
|
||||||
posType: null,
|
textPointOCT1: null,
|
||||||
posLevel: null,
|
periodOCT1: null,
|
||||||
affiliation: null,
|
yearOCT1: null,
|
||||||
summaryPointAPR1: null,
|
summaryPointAPR2: null,
|
||||||
textPointAPR1: null,
|
textPointAPR2: null,
|
||||||
periodAPR1: null,
|
periodAPR2: null,
|
||||||
yearAPR1: null,
|
yearAPR2: null,
|
||||||
summaryPointOCT1: null,
|
summaryPointOCT2: null,
|
||||||
textPointOCT1: null,
|
textPointOCT2: null,
|
||||||
periodOCT1: null,
|
periodOCT2: null,
|
||||||
yearOCT1: null,
|
yearOCT2: null,
|
||||||
summaryPointAPR2: null,
|
summaryPointAPR3: null,
|
||||||
textPointAPR2: null,
|
textPointAPR3: null,
|
||||||
periodAPR2: null,
|
periodAPR3: null,
|
||||||
yearAPR2: null,
|
yearAPR3: null,
|
||||||
summaryPointOCT2: null,
|
summaryPointOCT3: null,
|
||||||
textPointOCT2: null,
|
textPointOCT3: null,
|
||||||
periodOCT2: null,
|
periodOCT3: null,
|
||||||
yearOCT2: null,
|
yearOCT3: null,
|
||||||
summaryPointAPR3: null,
|
summaryPointAPR4: null,
|
||||||
textPointAPR3: null,
|
textPointAPR4: null,
|
||||||
periodAPR3: null,
|
periodAPR4: null,
|
||||||
yearAPR3: null,
|
yearAPR4: null,
|
||||||
summaryPointOCT3: null,
|
summaryPointOCT4: null,
|
||||||
textPointOCT3: null,
|
textPointOCT4: null,
|
||||||
periodOCT3: null,
|
periodOCT4: null,
|
||||||
yearOCT3: null,
|
yearOCT4: null,
|
||||||
summaryPointAPR4: null,
|
summaryPointAPR5: null,
|
||||||
textPointAPR4: null,
|
textPointAPR5: null,
|
||||||
periodAPR4: null,
|
periodAPR5: null,
|
||||||
yearAPR4: null,
|
yearAPR5: null,
|
||||||
summaryPointOCT4: null,
|
summaryPointOCT5: null,
|
||||||
textPointOCT4: null,
|
textPointOCT5: null,
|
||||||
periodOCT4: null,
|
periodOCT5: null,
|
||||||
yearOCT4: null,
|
yearOCT5: null,
|
||||||
summaryPointAPR5: null,
|
year1: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 4).toString()),
|
||||||
textPointAPR5: null,
|
year2: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 3).toString()),
|
||||||
periodAPR5: null,
|
year3: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 2).toString()),
|
||||||
yearAPR5: null,
|
year4: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 1).toString()),
|
||||||
summaryPointOCT5: null,
|
year5: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow).toString()),
|
||||||
textPointOCT5: null,
|
},
|
||||||
periodOCT5: null,
|
);
|
||||||
yearOCT5: null,
|
formattedData = combinedData;
|
||||||
year1: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 4).toString()),
|
}
|
||||||
year2: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 3).toString()),
|
|
||||||
year3: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 2).toString()),
|
|
||||||
year4: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 1).toString()),
|
|
||||||
year5: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow).toString()),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
formattedData = combinedData;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (requestBody.type == "KPI6") {
|
if (requestBody.type == "KPI6") {
|
||||||
|
|
@ -847,114 +850,115 @@ export class ReportController extends Controller {
|
||||||
.groupBy("kpiUserEvaluation.kpiPeriodId")
|
.groupBy("kpiUserEvaluation.kpiPeriodId")
|
||||||
.select("MIN(kpiUserEvaluation.id) as id")
|
.select("MIN(kpiUserEvaluation.id) as id")
|
||||||
.getRawMany();
|
.getRawMany();
|
||||||
|
if (profileEvaluationIds.length > 0) {
|
||||||
|
const profileEvaluation = await this.kpiUserEvaluationRepository.find({
|
||||||
|
relations: ["kpiPeriod"],
|
||||||
|
where: { id: In(profileEvaluationIds.map((evaluation) => evaluation.id)) },
|
||||||
|
});
|
||||||
|
|
||||||
const profileEvaluation = await this.kpiUserEvaluationRepository.find({
|
const combinedData: KPIData = profileEvaluation.reduce(
|
||||||
relations: ["kpiPeriod"],
|
(acc: KPIData, x) => {
|
||||||
where: { id: In(profileEvaluationIds.map((evaluation) => evaluation.id)) },
|
const fullNameParts = [x.child4, x.child3, x.child2, x.child1, x.org];
|
||||||
});
|
|
||||||
|
|
||||||
const combinedData: KPIData = profileEvaluation.reduce(
|
const affiliation = fullNameParts
|
||||||
(acc: KPIData, x) => {
|
.filter((part) => part !== undefined && part !== null)
|
||||||
const fullNameParts = [x.child4, x.child3, x.child2, x.child1, x.org];
|
.join("/");
|
||||||
|
|
||||||
const affiliation = fullNameParts
|
if (!acc.fullName) {
|
||||||
.filter((part) => part !== undefined && part !== null)
|
acc.fullName = x.prefix + " " + x.firstName + " " + x.lastName;
|
||||||
.join("/");
|
acc.position = x.position;
|
||||||
|
acc.posType = x.posTypeName;
|
||||||
|
acc.posLevel = x.posLevelName;
|
||||||
|
acc.affiliation = affiliation;
|
||||||
|
}
|
||||||
|
|
||||||
if (!acc.fullName) {
|
if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "APR") {
|
||||||
acc.fullName = x.prefix + " " + x.firstName + " " + x.lastName;
|
acc.summaryPointAPR1 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.position = x.position;
|
acc.textPointAPR1 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.posType = x.posTypeName;
|
acc.periodAPR1 = x.kpiPeriod.durationKPI;
|
||||||
acc.posLevel = x.posLevelName;
|
acc.yearAPR1 =
|
||||||
acc.affiliation = affiliation;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "APR") {
|
if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "OCT") {
|
||||||
acc.summaryPointAPR1 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointOCT1 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointAPR1 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointOCT1 = x.summaryPoint?Extension.textPoint(x.summaryPoint) : null;
|
||||||
acc.periodAPR1 = x.kpiPeriod.durationKPI;
|
acc.periodOCT1 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearAPR1 =
|
acc.yearOCT1 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "OCT") {
|
if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "APR") {
|
||||||
acc.summaryPointOCT1 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointAPR2 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointOCT1 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointAPR2 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodOCT1 = x.kpiPeriod.durationKPI;
|
acc.periodAPR2 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearOCT1 =
|
acc.yearAPR2 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "APR") {
|
if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "OCT") {
|
||||||
acc.summaryPointAPR2 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointOCT2 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointAPR2 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointOCT2 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodAPR2 = x.kpiPeriod.durationKPI;
|
acc.periodOCT2 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearAPR2 =
|
acc.yearOCT2 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "OCT") {
|
if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "APR") {
|
||||||
acc.summaryPointOCT2 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointAPR3 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointOCT2 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointAPR3 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodOCT2 = x.kpiPeriod.durationKPI;
|
acc.periodAPR3 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearOCT2 =
|
acc.yearAPR3 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "APR") {
|
if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "OCT") {
|
||||||
acc.summaryPointAPR3 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
acc.summaryPointOCT3 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null;
|
||||||
acc.textPointAPR3 = Extension.textPoint(x.summaryPoint) ?? null;
|
acc.textPointOCT3 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null;
|
||||||
acc.periodAPR3 = x.kpiPeriod.durationKPI;
|
acc.periodOCT3 = x.kpiPeriod.durationKPI;
|
||||||
acc.yearAPR3 =
|
acc.yearOCT3 =
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "OCT") {
|
return acc;
|
||||||
acc.summaryPointOCT3 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null;
|
},
|
||||||
acc.textPointOCT3 = Extension.textPoint(x.summaryPoint) ?? null;
|
{
|
||||||
acc.periodOCT3 = x.kpiPeriod.durationKPI;
|
fullName: null,
|
||||||
acc.yearOCT3 =
|
position: null,
|
||||||
Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null;
|
posType: null,
|
||||||
}
|
posLevel: null,
|
||||||
|
affiliation: null,
|
||||||
return acc;
|
summaryPointAPR1: null,
|
||||||
},
|
textPointAPR1: null,
|
||||||
{
|
periodAPR1: null,
|
||||||
fullName: null,
|
yearAPR1: null,
|
||||||
position: null,
|
summaryPointOCT1: null,
|
||||||
posType: null,
|
textPointOCT1: null,
|
||||||
posLevel: null,
|
periodOCT1: null,
|
||||||
affiliation: null,
|
yearOCT1: null,
|
||||||
summaryPointAPR1: null,
|
summaryPointAPR2: null,
|
||||||
textPointAPR1: null,
|
textPointAPR2: null,
|
||||||
periodAPR1: null,
|
periodAPR2: null,
|
||||||
yearAPR1: null,
|
yearAPR2: null,
|
||||||
summaryPointOCT1: null,
|
summaryPointOCT2: null,
|
||||||
textPointOCT1: null,
|
textPointOCT2: null,
|
||||||
periodOCT1: null,
|
periodOCT2: null,
|
||||||
yearOCT1: null,
|
yearOCT2: null,
|
||||||
summaryPointAPR2: null,
|
summaryPointAPR3: null,
|
||||||
textPointAPR2: null,
|
textPointAPR3: null,
|
||||||
periodAPR2: null,
|
periodAPR3: null,
|
||||||
yearAPR2: null,
|
yearAPR3: null,
|
||||||
summaryPointOCT2: null,
|
summaryPointOCT3: null,
|
||||||
textPointOCT2: null,
|
textPointOCT3: null,
|
||||||
periodOCT2: null,
|
periodOCT3: null,
|
||||||
yearOCT2: null,
|
yearOCT3: null,
|
||||||
summaryPointAPR3: null,
|
year1: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 2).toString()),
|
||||||
textPointAPR3: null,
|
year2: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 1).toString()),
|
||||||
periodAPR3: null,
|
year3: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow).toString()),
|
||||||
yearAPR3: null,
|
},
|
||||||
summaryPointOCT3: null,
|
);
|
||||||
textPointOCT3: null,
|
formattedData = combinedData;
|
||||||
periodOCT3: null,
|
}
|
||||||
yearOCT3: null,
|
|
||||||
year1: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 2).toString()),
|
|
||||||
year2: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 1).toString()),
|
|
||||||
year3: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow).toString()),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
formattedData = combinedData;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (requestBody.type == "KPI7") {
|
if (requestBody.type == "KPI7") {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue