#207 ประสบการณ์ในการปฏิบัติงาน

This commit is contained in:
AdisakKanthawilang 2025-04-18 15:57:38 +07:00
parent db55795106
commit bb4634acf5
3 changed files with 31 additions and 23 deletions

View file

@ -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
};

View file

@ -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 {

View file

@ -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<Portfolio>;