From d6f0f583c3f4471726d90da88455b110decbbc26 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Sun, 30 Jun 2024 20:51:04 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=84=E0=B8=B3=E0=B8=AA=E0=B8=B1=E0=B9=88?= =?UTF-8?q?=E0=B8=87=E0=B8=A7=E0=B8=B4=E0=B8=99=E0=B8=B1=E0=B8=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/KpiReasonController.ts | 186 ++++++++++++++++++++++--- src/controllers/ReportController.ts | 170 ++++++++++------------ 2 files changed, 241 insertions(+), 115 deletions(-) diff --git a/src/controllers/KpiReasonController.ts b/src/controllers/KpiReasonController.ts index 80e5295..bcd717e 100644 --- a/src/controllers/KpiReasonController.ts +++ b/src/controllers/KpiReasonController.ts @@ -77,7 +77,6 @@ export class kpiReasonController extends Controller { where: { id: id }, relations: ["kpiUserEvaluation"], }); - let kpiUserEvaluationReason = Object.assign(new KpiUserEvaluationReasonPlan(), requestBody); kpiUserEvaluationReason.type = type.trim().toUpperCase(); if (type.trim().toUpperCase() == "PROBLEM") { @@ -204,10 +203,39 @@ export class kpiReasonController extends Controller { @Get("{type}/plan/{user}/{id}") async listKpiUserPlanReason(@Path() id: string, @Path() type: string, @Path() user: string) { if (type.trim().toUpperCase() == "PROBLEM") { - const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonPlan.find({ - where: { kpiUserPlannedId: id, type: type.trim().toUpperCase() }, - }); - return new HttpSuccess(kpiUserEvaluationReason); + if (user.trim().toUpperCase() == "USER") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonPlan.find({ + where: { kpiUserPlannedId: id, type: type.trim().toUpperCase() }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "EVALUATOR") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonPlan.find({ + where: { + kpiUserPlannedId: id, + type: type.trim().toUpperCase(), + status: In(["EVALUATOR", "COMMANDER", "COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "COMMANDER") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonPlan.find({ + where: { + kpiUserPlannedId: id, + type: type.trim().toUpperCase(), + status: In(["COMMANDER", "COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "COMMANDERHIGH") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonPlan.find({ + where: { + kpiUserPlannedId: id, + type: type.trim().toUpperCase(), + status: In(["COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } } else { if (user.trim().toUpperCase() == "USER") { const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonPlan.find({ @@ -392,10 +420,39 @@ export class kpiReasonController extends Controller { @Get("{type}/role/{user}/{id}") async listKpiUserRoleReason(@Path() id: string, @Path() type: string, @Path() user: string) { if (type.trim().toUpperCase() == "PROBLEM") { - const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonRole.find({ - where: { kpiUserRoleId: id, type: type.trim().toUpperCase() }, - }); - return new HttpSuccess(kpiUserEvaluationReason); + if (user.trim().toUpperCase() == "USER") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonRole.find({ + where: { kpiUserRoleId: id, type: type.trim().toUpperCase() }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "EVALUATOR") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonRole.find({ + where: { + kpiUserRoleId: id, + type: type.trim().toUpperCase(), + status: In(["EVALUATOR", "COMMANDER", "COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "COMMANDER") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonRole.find({ + where: { + kpiUserRoleId: id, + type: type.trim().toUpperCase(), + status: In(["COMMANDER", "COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "COMMANDERHIGH") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonRole.find({ + where: { + kpiUserRoleId: id, + type: type.trim().toUpperCase(), + status: In(["COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } } else { if (user.trim().toUpperCase() == "USER") { const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonRole.find({ @@ -582,10 +639,39 @@ export class kpiReasonController extends Controller { @Get("{type}/special/{user}/{id}") async listKpiUserSpecialReason(@Path() id: string, @Path() type: string, @Path() user: string) { if (type.trim().toUpperCase() == "PROBLEM") { - const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonSpecial.find({ - where: { kpiUserSpecialId: id, type: type.trim().toUpperCase() }, - }); - return new HttpSuccess(kpiUserEvaluationReason); + if (user.trim().toUpperCase() == "USER") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonSpecial.find({ + where: { kpiUserSpecialId: id, type: type.trim().toUpperCase() }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "EVALUATOR") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonSpecial.find({ + where: { + kpiUserSpecialId: id, + type: type.trim().toUpperCase(), + status: In(["EVALUATOR", "COMMANDER", "COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "COMMANDER") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonSpecial.find({ + where: { + kpiUserSpecialId: id, + type: type.trim().toUpperCase(), + status: In(["COMMANDER", "COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "COMMANDERHIGH") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonSpecial.find({ + where: { + kpiUserSpecialId: id, + type: type.trim().toUpperCase(), + status: In(["COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } } else { if (user.trim().toUpperCase() == "USER") { const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonSpecial.find({ @@ -772,10 +858,39 @@ export class kpiReasonController extends Controller { @Path() user: string, ) { if (type.trim().toUpperCase() == "PROBLEM") { - const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonDevelopment.find({ - where: { kpiUserDevelopmentId: id, type: type.trim().toUpperCase() }, - }); - return new HttpSuccess(kpiUserEvaluationReason); + if (user.trim().toUpperCase() == "USER") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonDevelopment.find({ + where: { kpiUserDevelopmentId: id, type: type.trim().toUpperCase() }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "EVALUATOR") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonDevelopment.find({ + where: { + kpiUserDevelopmentId: id, + type: type.trim().toUpperCase(), + status: In(["EVALUATOR", "COMMANDER", "COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "COMMANDER") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonDevelopment.find({ + where: { + kpiUserDevelopmentId: id, + type: type.trim().toUpperCase(), + status: In(["COMMANDER", "COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "COMMANDERHIGH") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonDevelopment.find({ + where: { + kpiUserDevelopmentId: id, + type: type.trim().toUpperCase(), + status: In(["COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } } else { if (user.trim().toUpperCase() == "USER") { const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonDevelopment.find({ @@ -958,10 +1073,39 @@ export class kpiReasonController extends Controller { @Get("{type}/capacity/{user}/{id}") async listKpiUserCapacityReason(@Path() id: string, @Path() type: string, @Path() user: string) { if (type.trim().toUpperCase() == "PROBLEM") { - const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonCapacity.find({ - where: { kpiUserCapacityId: id, type: type.trim().toUpperCase() }, - }); - return new HttpSuccess(kpiUserEvaluationReason); + if (user.trim().toUpperCase() == "USER") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonCapacity.find({ + where: { kpiUserCapacityId: id, type: type.trim().toUpperCase() }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "EVALUATOR") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonCapacity.find({ + where: { + kpiUserCapacityId: id, + type: type.trim().toUpperCase(), + status: In(["EVALUATOR", "COMMANDER", "COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "COMMANDER") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonCapacity.find({ + where: { + kpiUserCapacityId: id, + type: type.trim().toUpperCase(), + status: In(["COMMANDER", "COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } else if (user.trim().toUpperCase() == "COMMANDERHIGH") { + const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonCapacity.find({ + where: { + kpiUserCapacityId: id, + type: type.trim().toUpperCase(), + status: In(["COMMANDERHIGH", "DONE"]), + }, + }); + return new HttpSuccess(kpiUserEvaluationReason); + } } else { if (user.trim().toUpperCase() == "USER") { const kpiUserEvaluationReason = await this.kpiUserEvaluationReasonCapacity.find({ diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index 0eaee92..d3456c2 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -132,106 +132,88 @@ export class ReportController extends Controller { }); } - @Post("kpi9/{profileId}") - async GetReportKpi9(@Path() profileId?: string | null) { - let formattedData: any; - if (profileId) { - const kpiUserEvaluation = await this.kpiUserEvaluationRepository.findOne({ - relations: ["kpiUserRoles", "kpiUserPlanneds", "kpiUserSpecials", "kpiUserCapacitys"], - where: { profileId: profileId }, - }); - if (!kpiUserEvaluation) - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ประเมิน"); + @Post("kpi9/{id}") + async GetReportKpi9(@Path() id?: string) { + const kpiUserEvaluation = await this.kpiUserEvaluationRepository.findOne({ + relations: ["kpiPeriod"], + where: { id: id }, + }); + if (!kpiUserEvaluation) throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ประเมิน"); - //period - const period = await this.kpiPeriodRepository.findOneBy({ - id: kpiUserEvaluation?.kpiPeriodId, - }); - if (!period) throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลงวดการประเมิน"); + let formattedData = { + durationKPI: kpiUserEvaluation.kpiPeriod.durationKPI, + fullname: + (kpiUserEvaluation.prefix == null ? "" : kpiUserEvaluation.prefix) + + "" + + (kpiUserEvaluation.firstName == null ? "" : kpiUserEvaluation.firstName) + + " " + + (kpiUserEvaluation.lastName == null ? "" : kpiUserEvaluation.lastName), + position: kpiUserEvaluation.position, + posTypeName: kpiUserEvaluation.posTypeName, + posLevelName: kpiUserEvaluation.posLevelName, + org: kpiUserEvaluation.org, - const kpiRole = await this.kpiRoleRepository.find({ - where: { kpiPeriodId: period?.id }, - }); + fullnameEvaluator: + (kpiUserEvaluation.prefixEvaluator == null ? "" : kpiUserEvaluation.prefixEvaluator) + + "" + + (kpiUserEvaluation.firstNameEvaluator == null ? "" : kpiUserEvaluation.firstNameEvaluator) + + " " + + (kpiUserEvaluation.lastNameEvaluator == null ? "" : kpiUserEvaluation.lastNameEvaluator), + positionEvaluator: kpiUserEvaluation.positionEvaluator, + posTypeNameEvaluator: kpiUserEvaluation.posTypeNameEvaluator, + posLevelNameEvaluator: kpiUserEvaluation.posLevelNameEvaluator, + orgEvaluator: kpiUserEvaluation.orgEvaluator, - const kpiPlan = await this.kpiPlanRepository.find({ - where: { kpiPeriodId: period?.id }, - }); + year: Extension.ToThaiNumber(String(Extension.ToThaiYear(kpiUserEvaluation.kpiPeriod.year))), - formattedData = { - fullname: - kpiUserEvaluation.prefix + kpiUserEvaluation.firstName + " " + kpiUserEvaluation.lastName, - position: kpiUserEvaluation.position, - posTypeName: kpiUserEvaluation.posTypeName, - posLevelName: kpiUserEvaluation.posLevelName, - org: kpiUserEvaluation.org, + startDateApr: + kpiUserEvaluation.kpiPeriod == null || + kpiUserEvaluation.kpiPeriod.startDate == null || + kpiUserEvaluation.kpiPeriod.durationKPI != "APR" + ? "-" + : Extension.ToThaiNumber(Extension.ToThaiFullDate(kpiUserEvaluation.kpiPeriod.startDate)), + endDateApr: + kpiUserEvaluation.kpiPeriod == null || + kpiUserEvaluation.kpiPeriod.endDate == null || + kpiUserEvaluation.kpiPeriod.durationKPI != "APR" + ? "-" + : Extension.ToThaiNumber(Extension.ToThaiFullDate(kpiUserEvaluation.kpiPeriod.endDate)), + startDateOct: + kpiUserEvaluation.kpiPeriod == null || + kpiUserEvaluation.kpiPeriod.startDate == null || + kpiUserEvaluation.kpiPeriod.durationKPI != "OCT" + ? "-" + : Extension.ToThaiNumber(Extension.ToThaiFullDate(kpiUserEvaluation.kpiPeriod.startDate)), + endDateOct: + kpiUserEvaluation.kpiPeriod == null || + kpiUserEvaluation.kpiPeriod.endDate == null || + kpiUserEvaluation.kpiPeriod.durationKPI != "OCT" + ? "-" + : Extension.ToThaiNumber(Extension.ToThaiFullDate(kpiUserEvaluation.kpiPeriod.endDate)), - fullnameEvaluator: - kpiUserEvaluation.prefixEvaluator + - kpiUserEvaluation.firstNameEvaluator + - " " + - kpiUserEvaluation.lastNameEvaluator, - positionEvaluator: kpiUserEvaluation.positionEvaluator, - posTypeNameEvaluator: kpiUserEvaluation.posTypeNameEvaluator, - posLevelNameEvaluator: kpiUserEvaluation.posLevelNameEvaluator, - rootEvaluator: kpiUserEvaluation.orgEvaluator, + evaluationResults: kpiUserEvaluation.evaluationResults, + totalPoint1: Extension.ToThaiNumber(kpiUserEvaluation.totalPoint1.toLocaleString()), + totalPoint2: Extension.ToThaiNumber( + (kpiUserEvaluation.totalPoint2_2 + kpiUserEvaluation.totalPoint2_1).toLocaleString(), + ), + summaryPoint: Extension.ToThaiNumber(kpiUserEvaluation.summaryPoint.toLocaleString()), + weightPoint1: Extension.ToThaiNumber(kpiUserEvaluation.weightPoint1.toLocaleString()), + weightPoint2: Extension.ToThaiNumber(kpiUserEvaluation.weightPoint2.toLocaleString()), + summaryWeight: Extension.ToThaiNumber(kpiUserEvaluation.summaryWeight.toLocaleString()), - year: Extension.ToThaiNumber( - String(Extension.ToThaiYear(kpiUserEvaluation.kpiPeriod.year)), - ), - - startDateApr: - kpiUserEvaluation.kpiPeriod == null || - kpiUserEvaluation.kpiPeriod.startDate == null || - kpiUserEvaluation.kpiPeriod.durationKPI != "APR" - ? "-" - : Extension.ToThaiNumber( - Extension.ToThaiFullDate(kpiUserEvaluation.kpiPeriod.startDate), - ), - endDateApr: - kpiUserEvaluation.kpiPeriod == null || - kpiUserEvaluation.kpiPeriod.endDate == null || - kpiUserEvaluation.kpiPeriod.durationKPI != "APR" - ? "-" - : Extension.ToThaiNumber(Extension.ToThaiFullDate(kpiUserEvaluation.kpiPeriod.endDate)), - startDateOct: - kpiUserEvaluation.kpiPeriod == null || - kpiUserEvaluation.kpiPeriod.startDate == null || - kpiUserEvaluation.kpiPeriod.durationKPI != "OCT" - ? "-" - : Extension.ToThaiNumber( - Extension.ToThaiFullDate(kpiUserEvaluation.kpiPeriod.startDate), - ), - endDateOct: - kpiUserEvaluation.kpiPeriod == null || - kpiUserEvaluation.kpiPeriod.endDate == null || - kpiUserEvaluation.kpiPeriod.durationKPI != "OCT" - ? "-" - : Extension.ToThaiNumber(Extension.ToThaiFullDate(kpiUserEvaluation.kpiPeriod.endDate)), - - evaluationResults: kpiUserEvaluation.evaluationResults, - totalPoint1: Extension.ToThaiNumber(kpiUserEvaluation.totalPoint1.toLocaleString()), - totalPoint2: Extension.ToThaiNumber( - kpiUserEvaluation.totalPoint2_2 + kpiUserEvaluation.totalPoint2_1.toLocaleString(), - ), - summaryPoint: Extension.ToThaiNumber(kpiUserEvaluation.summaryPoint.toLocaleString()), - weightPoint1: Extension.ToThaiNumber(kpiUserEvaluation.weightPoint1.toLocaleString()), - weightPoint2: Extension.ToThaiNumber(kpiUserEvaluation.weightPoint2.toLocaleString()), - summaryWeight: Extension.ToThaiNumber(kpiUserEvaluation.summaryWeight.toLocaleString()), - - topicEvaluator: kpiUserEvaluation.topicEvaluator, - developEvaluator: kpiUserEvaluation.developEvaluator, - timeEvaluator: kpiUserEvaluation.timeEvaluator, - reasonEvaluator: kpiUserEvaluation.reasonEvaluator, - isReasonCommander: kpiUserEvaluation.isReasonCommander, - reasonCommander: kpiUserEvaluation.reasonCommander, - isReasonCommanderHigh: kpiUserEvaluation.isReasonCommanderHigh, - reasonCommanderHigh: kpiUserEvaluation.reasonCommanderHigh, - openDate: - kpiUserEvaluation.openDate == null - ? null - : Extension.ToThaiNumber(Extension.ToThaiFullDate(kpiUserEvaluation.openDate)), - }; - } + topicEvaluator: kpiUserEvaluation.topicEvaluator, + developEvaluator: kpiUserEvaluation.developEvaluator, + timeEvaluator: kpiUserEvaluation.timeEvaluator, + reasonEvaluator: kpiUserEvaluation.reasonEvaluator, + isReasonCommander: kpiUserEvaluation.isReasonCommander, + reasonCommander: kpiUserEvaluation.reasonCommander, + isReasonCommanderHigh: kpiUserEvaluation.isReasonCommanderHigh, + reasonCommanderHigh: kpiUserEvaluation.reasonCommanderHigh, + openDate: + kpiUserEvaluation.openDate == null + ? null + : Extension.ToThaiNumber(Extension.ToThaiFullDate(kpiUserEvaluation.openDate)), + }; return new HttpSuccess({ template: "KPI9",