diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index 91108a4..49fa8c3 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -1357,6 +1357,10 @@ export class ReportController extends Controller { const userEvaluations_ = await Promise.all( data.kpiUserEvaluations.length > 0 ? data.kpiUserEvaluations.map(async (x: any, idx: number) => { + const target_ = await this.kpiUserDevelopmentRepository.findOne({ + where: { kpiUserEvaluationId: x.id }, + select: ["id","kpiUserEvaluationId","target","achievement0","achievement5","achievement10"], + }); /*รอ Fe เพิ่ม UI*/ // const target_ = await this.kpiUserDevelopmentRepository.findOne({ // where: { kpiUserEvaluationId: x.id }, @@ -1380,9 +1384,17 @@ export class ReportController extends Controller { posLevelName: x.posLevelName ? x.posLevelName : "-", developName: x.topicEvaluator ? x.topicEvaluator : "-", developEvaluator: x.developEvaluator ? x.developEvaluator : "-", - target: "-", + target: target_ ? target_.target: "-", timeEvaluator: x.timeEvaluator ? Extension.ToThaiNumber(x.timeEvaluator) : "-", - developResults: "-", + developResults: target_ + ? [ + target_.achievement10 ? `${target_.achievement10}(10)` : "", + target_.achievement5 ? `${target_.achievement5}(5)` : "", + target_.achievement0 ? `${target_.achievement0}(0)` : "" + ] + .filter(Boolean) + .join("\n") + : "", evaluationResults: x.evaluationResults ? Extension.EvaluationResult(x.evaluationResults) : "-", @@ -1488,24 +1500,27 @@ export class ReportController extends Controller { evaluationStatus: "KP7", }, }); - userDevelopmentLists = await this.kpiUserDevelopmentRepository.find({ - where: { - kpiUserEvaluationId: In(profileEvaluationIds.map((x: any) => x.id)), - }, - select: [ - "id", - "name", - "target", - "summary", - "point", - "achievement0", - "achievement5", - "achievement10", - "isDevelopment10", - "isDevelopment20", - "isDevelopment70", - ], - }); + userDevelopmentLists = await this.kpiUserDevelopmentRepository + .createQueryBuilder("dev") + .leftJoinAndSelect("dev.kpiUserEvaluation", "eval") + .where("dev.kpiUserEvaluationId IN (:...ids)", { ids: profileEvaluationIds.map((x: any) => x.id) }) + .select([ + "dev.id", + "dev.name", + "dev.target", + "dev.summary", + "dev.point", + "dev.achievement0", + "dev.achievement5", + "dev.achievement10", + "dev.isDevelopment10", + "dev.isDevelopment20", + "dev.isDevelopment70", + "eval.developEvaluator", + "eval.timeEvaluator", + "eval.reasonEvaluator", + ]) + .getMany(); const dev10text = "การลงมือปฏิบัติ (โดยผู้บังคับบัญชามอบหมาย)"; const dev20text = "การเรียนรู้จากผู้อื่น (Coach/Mentor/Consulting)"; const dev70text = "การลงมือปฏิบัติ (โดยผู้บังคับบัญชามอบหมาย)"; @@ -1514,18 +1529,41 @@ export class ReportController extends Controller { formattedUserDevelopmentLists = userDevelopmentLists.map( (development: any, index: number) => ({ no: Extension.ToThaiNumber((index + 1).toString()), - ...development, + id: development.id, + name: development.name, + target: development.target, summary: development.summary ? Extension.ToThaiNumber(development.summary.toString()) : null, point: development.point ? Extension.ToThaiNumber(development.point.toString()) : null, - pointText: (development.point = 0 - ? development.achievement0 - : (development.point == 5 - ? development.achievement5 - : (development.point == 10 ? development.achievement10 : null))), + achievement0: development.achievement0, + achievement5: development.achievement5, + achievement10: development.achievement10, + developResults: development + ? [ + development.achievement10 ? `${development.achievement10}(10)` : "", + development.achievement5 ? `${development.achievement5}(5)` : "", + development.achievement0 ? `${development.achievement0}(0)` : "" + ] + .filter(Boolean) + .join("\n") + : "", + isDevelopment10: development.isDevelopment10, + isDevelopment20: development.isDevelopment20, + isDevelopment70: development.isDevelopment70, + pointText: + development.point == 0 + ? development.achievement0 + : development.point == 5 + ? development.achievement5 + : development.point == 10 + ? development.achievement10 + : null, + developEvaluator: development.kpiUserEvaluation?.developEvaluator ?? "-", + timeEvaluator: development.kpiUserEvaluation?.timeEvaluator ?? "-", + reasonEvaluator: development.kpiUserEvaluation?.reasonEvaluator ?? "-", isDevelopmentText: [ development.isDevelopment10, development.isDevelopment20, @@ -1534,7 +1572,7 @@ export class ReportController extends Controller { .map((x: any, index) => (x ? combianText[index] : null)) .filter((x: any) => x !== null) .join(" "), - }), + }) ); fullNameParts = [ @@ -1630,11 +1668,12 @@ export class ReportController extends Controller { evaluationResults: "-", }, ]; - + const date = new Date(); formattedData = { root: data && data.rootName != null ? data.rootName : "-", period: data?.durationKPI == "APR" ? "๑" : data?.durationKPI == "OCT" ? "๒" : "-", year: data.year ? Extension.ToThaiNumber((data.year + 543).toString()) : "-", + date: Extension.ToThaiNumber(Extension.ToThaiFullDate2(date).toString()), userEvaluations: userEvaluations_.length > 0 ? userEvaluations_