From 880ba36978462b91a17a8715f4489b6a9ee59226 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Fri, 18 Apr 2025 17:29:35 +0700 Subject: [PATCH] add api performance/user --- src/controllers/EvaluationController.ts | 45 ++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/controllers/EvaluationController.ts b/src/controllers/EvaluationController.ts index d4015e9..5fce0f4 100644 --- a/src/controllers/EvaluationController.ts +++ b/src/controllers/EvaluationController.ts @@ -27,7 +27,7 @@ import { Assessment } from "../entities/Assessment"; import { Director } from "../entities/Director"; import { Meeting } from "../entities/Meeting"; import { ConvertThaiToType, ConvertToThaiStep, ConvertToThaiType } from "../services/storage"; -import { Brackets } from "typeorm"; +import { Brackets, In } from "typeorm"; import CallAPI from "../interfaces/call-api"; import permission from "../interfaces/permission"; import { RequestWithUser } from "../middlewares/user"; @@ -66,6 +66,41 @@ export class EvaluationController { return new HttpSuccess(); } + /** + * API รายการผลงานที่เคยเสนอขอประเมิน + * + * @summary รายการผลงานที่เคยเสนอขอประเมิน + * + */ + @Get("performance/user") + async listPerformance(@Request() request: RequestWithUser) { + const list = await AppDataSource.getRepository(Evaluation) + .createQueryBuilder("evaluation") + .where("evaluation.userId = :userId", { userId: request.user.sub }) + .andWhere("evaluation.step = :step", { step: "DONE" }) + .andWhere("evaluation.evaluationResult IN (:...evaluationResult)", { + evaluationResult: ["PASS", "NOTPASS"], + }) + .select([ + "evaluation.id", + "evaluation.dateAnnounce", + "evaluation.type", + "evaluation.subject", + "evaluation.evaluationResult", + ]) + .getMany(); + + const performance = list.map((item) => ({ + id: item.id, + year: item.dateAnnounce?Extension.ToThaiYear(item.dateAnnounce.getFullYear()):null, + type: item.type == "EXPERT" ? "ชำนาญการ" : item.type == "EXPERTISE" ? "เชียวชาญ" : item.type == "SPECIAL_EXPERT" ? "ชำนาญการพิเศษ":null, + subject: item.subject, + evaluationResult: item.evaluationResult, + })); + + return new HttpSuccess(performance); + } + /** * ดึงข้อมูลรายการร้องขอการประเมิน * @@ -1293,6 +1328,7 @@ export class EvaluationController { .leftJoin("evaluation.salaries", "salaries") .leftJoin("evaluation.training", "training") .leftJoin("evaluation.assessment", "assessment") + .leftJoin("evaluation.portfolios", "portfolios") .where("evaluation.id = :id", { id }) .select([ "evaluation.isEducationalQft", @@ -1393,6 +1429,9 @@ export class EvaluationController { "assessment.point2", "assessment.pointSumTotal", "assessment.pointSum", + + "portfolios.name", + "portfolios.detail", ]) .orderBy("salaries.commandDateAffect", "DESC") .getOne(); @@ -1504,6 +1543,10 @@ export class EvaluationController { pointSumTotal: assessment.pointSumTotal, pointSum: assessment.pointSum, })), + portfolios: evaluation.portfolios.map((portfolio) => ({ + name: portfolio.name, + detail: portfolio.detail, + })), }; if (!dataEvaluation) {