ผลประเมิน 5 ปี
This commit is contained in:
parent
320dd4616c
commit
ebeda9aeb6
1 changed files with 175 additions and 1 deletions
|
|
@ -2391,6 +2391,54 @@ export class OrganizationDotnetController extends Controller {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const currentYear = new Date().getFullYear();
|
||||||
|
const years = [currentYear, currentYear - 1, currentYear - 2, currentYear - 3, currentYear - 4];
|
||||||
|
|
||||||
|
// APR Averages
|
||||||
|
const aprAverages: { [year: number]: number | null } = {};
|
||||||
|
const aprSums: { [year: number]: number } = {};
|
||||||
|
const aprCounts: { [year: number]: number } = {};
|
||||||
|
|
||||||
|
// OCT Averages
|
||||||
|
const octAverages: { [year: number]: number | null } = {};
|
||||||
|
const octSums: { [year: number]: number } = {};
|
||||||
|
const octCounts: { [year: number]: number } = {};
|
||||||
|
|
||||||
|
years.forEach(year => {
|
||||||
|
aprAverages[year] = null;
|
||||||
|
aprSums[year] = 0;
|
||||||
|
aprCounts[year] = 0;
|
||||||
|
|
||||||
|
octAverages[year] = null;
|
||||||
|
octSums[year] = 0;
|
||||||
|
octCounts[year] = 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
profiles.forEach(profile => {
|
||||||
|
const assessments = profile.profileAssessments || [];
|
||||||
|
|
||||||
|
assessments.forEach(assessment => {
|
||||||
|
const year = Number(assessment.year);
|
||||||
|
|
||||||
|
if (years.includes(year)) {
|
||||||
|
if (assessment.period === 'APR') {
|
||||||
|
aprSums[year] += assessment.pointSum;
|
||||||
|
aprCounts[year] += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (assessment.period === 'OCT') {
|
||||||
|
octSums[year] += assessment.pointSum;
|
||||||
|
octCounts[year] += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
years.forEach(year => {
|
||||||
|
aprAverages[year] = aprCounts[year] > 0 ? aprSums[year] / aprCounts[year] : null;
|
||||||
|
octAverages[year] = octCounts[year] > 0 ? octSums[year] / octCounts[year] : null;
|
||||||
|
});
|
||||||
|
|
||||||
const findRevision = await this.orgRevisionRepo.findOne({
|
const findRevision = await this.orgRevisionRepo.findOne({
|
||||||
where: { orgRevisionIsCurrent: true },
|
where: { orgRevisionIsCurrent: true },
|
||||||
});
|
});
|
||||||
|
|
@ -2571,6 +2619,16 @@ export class OrganizationDotnetController extends Controller {
|
||||||
markLeave: false,
|
markLeave: false,
|
||||||
markRate: profile.profileAssessments.length > 0 ? true : false,
|
markRate: profile.profileAssessments.length > 0 ? true : false,
|
||||||
markInsignia: profile.profileInsignias.length > 0 ? true : false,
|
markInsignia: profile.profileInsignias.length > 0 ? true : false,
|
||||||
|
apr1:aprAverages[currentYear] ? Extension.textPoint(aprAverages[currentYear] as number) : null,
|
||||||
|
apr2:aprAverages[currentYear - 1] ? Extension.textPoint(aprAverages[currentYear - 1] as number) : null,
|
||||||
|
apr3:aprAverages[currentYear - 2] ? Extension.textPoint(aprAverages[currentYear - 2] as number) : null,
|
||||||
|
apr4:aprAverages[currentYear - 3] ? Extension.textPoint(aprAverages[currentYear - 3] as number) : null,
|
||||||
|
apr5:aprAverages[currentYear - 4] ? Extension.textPoint(aprAverages[currentYear - 4] as number) : null,
|
||||||
|
oct1:octAverages[currentYear] ? Extension.textPoint(octAverages[currentYear] as number) : null,
|
||||||
|
oct2:octAverages[currentYear - 1] ? Extension.textPoint(octAverages[currentYear - 1] as number) : null,
|
||||||
|
oct3:octAverages[currentYear - 2] ? Extension.textPoint(octAverages[currentYear - 2] as number) : null,
|
||||||
|
oct4:octAverages[currentYear - 3] ? Extension.textPoint(octAverages[currentYear - 3] as number) : null,
|
||||||
|
oct5:octAverages[currentYear - 4] ? Extension.textPoint(octAverages[currentYear - 4] as number) : null,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2616,6 +2674,54 @@ export class OrganizationDotnetController extends Controller {
|
||||||
where: { orgRevisionIsCurrent: true },
|
where: { orgRevisionIsCurrent: true },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// const currentYear = new Date().getFullYear();
|
||||||
|
// const years = [currentYear, currentYear - 1, currentYear - 2, currentYear - 3, currentYear - 4];
|
||||||
|
|
||||||
|
// // APR Averages
|
||||||
|
// const aprAverages: { [year: number]: number | null } = {};
|
||||||
|
// const aprSums: { [year: number]: number } = {};
|
||||||
|
// const aprCounts: { [year: number]: number } = {};
|
||||||
|
|
||||||
|
// // OCT Averages
|
||||||
|
// const octAverages: { [year: number]: number | null } = {};
|
||||||
|
// const octSums: { [year: number]: number } = {};
|
||||||
|
// const octCounts: { [year: number]: number } = {};
|
||||||
|
|
||||||
|
// years.forEach(year => {
|
||||||
|
// aprAverages[year] = null;
|
||||||
|
// aprSums[year] = 0;
|
||||||
|
// aprCounts[year] = 0;
|
||||||
|
|
||||||
|
// octAverages[year] = null;
|
||||||
|
// octSums[year] = 0;
|
||||||
|
// octCounts[year] = 0;
|
||||||
|
// });
|
||||||
|
|
||||||
|
// profiles.forEach(profile => {
|
||||||
|
// const assessments = profile.profileAssessments || [];
|
||||||
|
|
||||||
|
// assessments.forEach(assessment => {
|
||||||
|
// const year = Number(assessment.year);
|
||||||
|
|
||||||
|
// if (years.includes(year)) {
|
||||||
|
// if (assessment.period === 'APR') {
|
||||||
|
// aprSums[year] += assessment.pointSum;
|
||||||
|
// aprCounts[year] += 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (assessment.period === 'OCT') {
|
||||||
|
// octSums[year] += assessment.pointSum;
|
||||||
|
// octCounts[year] += 1;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
|
||||||
|
// years.forEach(year => {
|
||||||
|
// aprAverages[year] = aprCounts[year] > 0 ? aprSums[year] / aprCounts[year] : null;
|
||||||
|
// octAverages[year] = octCounts[year] > 0 ? octSums[year] / octCounts[year] : null;
|
||||||
|
// });
|
||||||
|
|
||||||
const mapProfile = profiles.map((profile) => {
|
const mapProfile = profiles.map((profile) => {
|
||||||
const shortName =
|
const shortName =
|
||||||
profile.current_holders.length == 0
|
profile.current_holders.length == 0
|
||||||
|
|
@ -2711,6 +2817,16 @@ export class OrganizationDotnetController extends Controller {
|
||||||
x.orgRevision?.orgRevisionIsCurrent == true,
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
)?.orgRootId ?? null,
|
)?.orgRootId ?? null,
|
||||||
posNo: shortName ?? "",
|
posNo: shortName ?? "",
|
||||||
|
// apr1:aprAverages[currentYear] ? Extension.textPoint(aprAverages[currentYear] as number) : null,
|
||||||
|
// apr2:aprAverages[currentYear - 1] ? Extension.textPoint(aprAverages[currentYear - 1] as number) : null,
|
||||||
|
// apr3:aprAverages[currentYear - 2] ? Extension.textPoint(aprAverages[currentYear - 2] as number) : null,
|
||||||
|
// apr4:aprAverages[currentYear - 3] ? Extension.textPoint(aprAverages[currentYear - 3] as number) : null,
|
||||||
|
// apr5:aprAverages[currentYear - 4] ? Extension.textPoint(aprAverages[currentYear - 4] as number) : null,
|
||||||
|
// oct1:octAverages[currentYear] ? Extension.textPoint(octAverages[currentYear] as number) : null,
|
||||||
|
// oct2:octAverages[currentYear - 1] ? Extension.textPoint(octAverages[currentYear - 1] as number) : null,
|
||||||
|
// oct3:octAverages[currentYear - 2] ? Extension.textPoint(octAverages[currentYear - 2] as number) : null,
|
||||||
|
// oct4:octAverages[currentYear - 3] ? Extension.textPoint(octAverages[currentYear - 3] as number) : null,
|
||||||
|
// oct5:octAverages[currentYear - 4] ? Extension.textPoint(octAverages[currentYear - 4] as number) : null,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2773,6 +2889,54 @@ export class OrganizationDotnetController extends Controller {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const currentYear = new Date().getFullYear();
|
||||||
|
const years = [currentYear, currentYear - 1, currentYear - 2, currentYear - 3, currentYear - 4];
|
||||||
|
|
||||||
|
// APR Averages
|
||||||
|
const aprAverages: { [year: number]: number | null } = {};
|
||||||
|
const aprSums: { [year: number]: number } = {};
|
||||||
|
const aprCounts: { [year: number]: number } = {};
|
||||||
|
|
||||||
|
// OCT Averages
|
||||||
|
const octAverages: { [year: number]: number | null } = {};
|
||||||
|
const octSums: { [year: number]: number } = {};
|
||||||
|
const octCounts: { [year: number]: number } = {};
|
||||||
|
|
||||||
|
years.forEach(year => {
|
||||||
|
aprAverages[year] = null;
|
||||||
|
aprSums[year] = 0;
|
||||||
|
aprCounts[year] = 0;
|
||||||
|
|
||||||
|
octAverages[year] = null;
|
||||||
|
octSums[year] = 0;
|
||||||
|
octCounts[year] = 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
profiles.forEach(profile => {
|
||||||
|
const assessments = profile.profileAssessments || [];
|
||||||
|
|
||||||
|
assessments.forEach(assessment => {
|
||||||
|
const year = Number(assessment.year);
|
||||||
|
|
||||||
|
if (years.includes(year)) {
|
||||||
|
if (assessment.period === 'APR') {
|
||||||
|
aprSums[year] += assessment.pointSum;
|
||||||
|
aprCounts[year] += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (assessment.period === 'OCT') {
|
||||||
|
octSums[year] += assessment.pointSum;
|
||||||
|
octCounts[year] += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
years.forEach(year => {
|
||||||
|
aprAverages[year] = aprCounts[year] > 0 ? aprSums[year] / aprCounts[year] : null;
|
||||||
|
octAverages[year] = octCounts[year] > 0 ? octSums[year] / octCounts[year] : null;
|
||||||
|
});
|
||||||
|
|
||||||
const mapProfile = profiles.map((profile) => {
|
const mapProfile = profiles.map((profile) => {
|
||||||
const shortName =
|
const shortName =
|
||||||
profile.current_holders.length == 0
|
profile.current_holders.length == 0
|
||||||
|
|
@ -2952,6 +3116,16 @@ export class OrganizationDotnetController extends Controller {
|
||||||
markLeave: false,
|
markLeave: false,
|
||||||
markRate: profile.profileAssessments.length > 0 ? true : false,
|
markRate: profile.profileAssessments.length > 0 ? true : false,
|
||||||
markInsignia: profile.profileInsignias.length > 0 ? true : false,
|
markInsignia: profile.profileInsignias.length > 0 ? true : false,
|
||||||
|
apr1:aprAverages[currentYear] ? Extension.textPoint(aprAverages[currentYear] as number) : null,
|
||||||
|
apr2:aprAverages[currentYear - 1] ? Extension.textPoint(aprAverages[currentYear - 1] as number) : null,
|
||||||
|
apr3:aprAverages[currentYear - 2] ? Extension.textPoint(aprAverages[currentYear - 2] as number) : null,
|
||||||
|
apr4:aprAverages[currentYear - 3] ? Extension.textPoint(aprAverages[currentYear - 3] as number) : null,
|
||||||
|
apr5:aprAverages[currentYear - 4] ? Extension.textPoint(aprAverages[currentYear - 4] as number) : null,
|
||||||
|
oct1:octAverages[currentYear] ? Extension.textPoint(octAverages[currentYear] as number) : null,
|
||||||
|
oct2:octAverages[currentYear - 1] ? Extension.textPoint(octAverages[currentYear - 1] as number) : null,
|
||||||
|
oct3:octAverages[currentYear - 2] ? Extension.textPoint(octAverages[currentYear - 2] as number) : null,
|
||||||
|
oct4:octAverages[currentYear - 3] ? Extension.textPoint(octAverages[currentYear - 3] as number) : null,
|
||||||
|
oct5:octAverages[currentYear - 4] ? Extension.textPoint(octAverages[currentYear - 4] as number) : null,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue