From bb4634acf57f28fc21995a5cf34a50ec34ba36e6 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Fri, 18 Apr 2025 15:57:38 +0700 Subject: [PATCH] =?UTF-8?q?#207=20=E0=B8=9B=E0=B8=A3=E0=B8=B0=E0=B8=AA?= =?UTF-8?q?=E0=B8=9A=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B8=93=E0=B9=8C=E0=B9=83?= =?UTF-8?q?=E0=B8=99=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B8=9B=E0=B8=8F=E0=B8=B4?= =?UTF-8?q?=E0=B8=9A=E0=B8=B1=E0=B8=95=E0=B8=B4=E0=B8=87=E0=B8=B2=E0=B8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/EvaluationController.ts | 45 ++++++++++++++----------- src/entities/Evaluation.ts | 7 ++-- src/entities/Portfolio.ts | 2 +- 3 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/controllers/EvaluationController.ts b/src/controllers/EvaluationController.ts index 5312d3e..d4015e9 100644 --- a/src/controllers/EvaluationController.ts +++ b/src/controllers/EvaluationController.ts @@ -33,6 +33,7 @@ import permission from "../interfaces/permission"; import { RequestWithUser } from "../middlewares/user"; import { setLogDataDiff } from "../interfaces/utils"; import Extension from "../interfaces/extension"; +import { Portfolio } from "../entities/Portfolio"; @Route("api/v1/evaluation") @Tags("evaluation") @@ -50,6 +51,7 @@ export class EvaluationController { private salaryRepository = AppDataSource.getRepository(Salary); private trainingRepository = AppDataSource.getRepository(Training); private assessmentRepository = AppDataSource.getRepository(Assessment); + private portfolioRepository = AppDataSource.getRepository(Portfolio); private directorRepository = AppDataSource.getRepository(Director); private meetingRepository = AppDataSource.getRepository(Meeting); @@ -640,20 +642,21 @@ export class EvaluationController { }); //Portfolio - // if (requestBody.portfolios != null) - // requestBody.portfolios.forEach(async (pfo) => { - // const portfolio = new Portfolio(); - // portfolio.createdUserId = request.user.sub; - // portfolio.createdFullName = request.user.name; - // portfolio.createdAt = new Date(); - // portfolio.lastUpdateUserId = request.user.sub; - // portfolio.lastUpdateFullName = request.user.name; - // portfolio.lastUpdatedAt = new Date(); - // portfolio.name = pfo.name ?? _null; - // portfolio.detail = pfo.detail ?? _null; - // await this.assessmentRepository.save(assessment, { data: request }); - // setLogDataDiff(request, { before, after: assessment }); - // }); + if (requestBody.portfolios != null) + requestBody.portfolios.forEach(async (pfo) => { + const portfolio = new Portfolio(); + portfolio.createdUserId = request.user.sub; + portfolio.createdFullName = request.user.name; + portfolio.createdAt = new Date(); + portfolio.lastUpdateUserId = request.user.sub; + portfolio.lastUpdateFullName = request.user.name; + portfolio.lastUpdatedAt = new Date(); + portfolio.name = pfo.name ?? _null; + portfolio.detail = pfo.detail ?? _null; + portfolio.evaluation = evaluation; + await this.portfolioRepository.save(portfolio, { data: request }); + setLogDataDiff(request, { before, after: portfolio }); + }); //EvaluationLogs const evaluationLogs = new EvaluationLogs(); @@ -948,6 +951,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", @@ -1048,10 +1052,13 @@ export class EvaluationController { "assessment.point2", "assessment.pointSumTotal", "assessment.pointSum", + + "portfolios.name", + "portfolios.detail", ]) .orderBy("salaries.commandDateAffect", "DESC") .getOne(); - + console.log(evaluation); if (!evaluation) { return "ไม่พบข้อมูล"; } @@ -1159,10 +1166,10 @@ export class EvaluationController { pointSumTotal: assessment.pointSumTotal, pointSum: assessment.pointSum, })), - // portfolios: evaluation.portfolio.map((portfolio) => ({ - // name: portfolio.name, - // detail: portfolio.detail, - // })), + portfolios: evaluation.portfolios.map((portfolio) => ({ + name: portfolio.name, + detail: portfolio.detail, + })), // years: years }; diff --git a/src/entities/Evaluation.ts b/src/entities/Evaluation.ts index 5c5ab84..a4b5201 100644 --- a/src/entities/Evaluation.ts +++ b/src/entities/Evaluation.ts @@ -269,6 +269,9 @@ export class Evaluation extends EntityBase { @OneToMany(() => Assessment, (assessment) => assessment.evaluation) assessment: Assessment[]; + @OneToMany(() => Portfolio, (portfolio) => portfolio.evaluation) + portfolios: Portfolio[]; + @ManyToMany(() => Director, (director) => director.evaluations) @JoinTable() directors: Director[]; @@ -277,9 +280,7 @@ export class Evaluation extends EntityBase { @JoinTable() meetings: Meeting[]; - @ManyToMany(() => Portfolio, (portfolio) => portfolio.evaluations) - @JoinTable() - portfolios: Portfolio[]; + } export class CreateEvaluation { diff --git a/src/entities/Portfolio.ts b/src/entities/Portfolio.ts index 3814e57..9865ddf 100644 --- a/src/entities/Portfolio.ts +++ b/src/entities/Portfolio.ts @@ -28,7 +28,7 @@ export class Portfolio extends EntityBase { @ManyToOne(() => Evaluation, (Evaluation) => Evaluation.portfolios) @JoinColumn({ name: "evaluationId" }) - evaluations: Evaluation; + evaluation: Evaluation; } export type UpdatePortfolio = Partial;