From 0604185e25764e13715acb60d2c1e26ebbeda8d1 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 8 Apr 2025 16:40:11 +0700 Subject: [PATCH] fix eva --- src/controllers/EvaluationController.ts | 137 +++++++++++++++++++++--- src/controllers/ReportController.ts | 12 +-- src/entities/Evaluation.ts | 66 ++++++------ src/entities/Salary.ts | 32 ------ 4 files changed, 160 insertions(+), 87 deletions(-) diff --git a/src/controllers/EvaluationController.ts b/src/controllers/EvaluationController.ts index 90a1f61..3e10b27 100644 --- a/src/controllers/EvaluationController.ts +++ b/src/controllers/EvaluationController.ts @@ -32,6 +32,7 @@ import CallAPI from "../interfaces/call-api"; import permission from "../interfaces/permission"; import { RequestWithUser } from "../middlewares/user"; import { setLogDataDiff } from "../interfaces/utils"; +import Extension from "../interfaces/extension"; @Route("api/v1/evaluation") @Tags("evaluation") @@ -519,31 +520,78 @@ export class EvaluationController { }); //Salary - if (requestBody.salaries != null) + // if (requestBody.salaries != null) + // requestBody.salaries.forEach(async (salary) => { + // const salaries = new Salary(); + // salaries.createdUserId = request.user.sub; + // salaries.createdFullName = request.user.name; + // salaries.createdAt = new Date(); + // salaries.lastUpdateUserId = request.user.sub; + // salaries.lastUpdateFullName = request.user.name; + // salaries.lastUpdatedAt = new Date(); + // salaries.date = salary.date ?? _null; + // salaries.amount = salary.amount ?? _null; + // salaries.positionSalaryAmount = salary.positionSalaryAmount ?? _null; + // salaries.mouthSalaryAmount = salary.mouthSalaryAmount ?? _null; + // salaries.position = salary.position ?? _null; + // salaries.posNo = salary.posNo ?? _null; + // salaries.salaryClass = salary.salaryClass ?? _null; + // salaries.salaryRef = salary.salaryRef ?? _null; + // salaries.refCommandNo = salary.refCommandNo ?? _null; + // salaries.refCommandDate = salary.refCommandDate ?? _null; + // salaries.salaryStatus = salary.salaryStatus ?? _null; + // salaries.evaluation = evaluation; + // await this.salaryRepository.save(salaries, { data: request }); + // setLogDataDiff(request, { before, after: salaries }); + // }); + + if (requestBody.salaries != null) { requestBody.salaries.forEach(async (salary) => { const salaries = new Salary(); + salaries.profileId = salary.profileId ?? _null; + salaries.commandCode = salary.commandCode ?? _null; + salaries.commandNo = salary.commandNo ?? _null; + salaries.commandYear = salary.commandYear ?? _null; + salaries.commandDateAffect = salary.commandDateAffect ?? _null; + salaries.commandDateSign = salary.commandDateSign ?? _null; + salaries.posNoAbb = salary.posNoAbb ?? _null; + salaries.posNo = salary.posNo ?? _null; + salaries.positionName = salary.positionName ?? _null; + salaries.positionType = salary.positionType ?? _null; + salaries.positionLevel = salary.positionLevel ?? _null; + salaries.positionLine = salary.positionLine ?? _null; + salaries.positionPathSide = salary.positionPathSide ?? _null; + salaries.positionExecutive = salary.positionExecutive ?? _null; + salaries.amount = salary.amount ?? _null; + salaries.amountSpecial = salary.amountSpecial ?? _null; + salaries.positionSalaryAmount = salary.positionSalaryAmount ?? _null; + salaries.mouthSalaryAmount = salary.mouthSalaryAmount ?? _null; + salaries.orgRoot = salary.orgRoot ?? _null; + salaries.orgChild1 = salary.orgChild1 ?? _null; + salaries.orgChild2 = salary.orgChild2 ?? _null; + salaries.orgChild3 = salary.orgChild3 ?? _null; + salaries.orgChild4 = salary.orgChild4 ?? _null; + salaries.remark = salary.remark ?? _null; + salaries.commandId = salary.commandId ?? _null; + salaries.isGovernment = salary.isGovernment ?? _null; + salaries.positionCee = salary.positionCee ?? _null; + salaries.commandName = salary.commandName ?? _null; + salaries.posNumCodeSit = salary.posNumCodeSit ?? _null; + salaries.posNumCodeSitAbb = salary.posNumCodeSitAbb ?? _null; + salaries.isEntry = salary.isEntry ?? false; + salaries.evaluation = evaluation; + salaries.createdUserId = request.user.sub; salaries.createdFullName = request.user.name; salaries.createdAt = new Date(); salaries.lastUpdateUserId = request.user.sub; salaries.lastUpdateFullName = request.user.name; salaries.lastUpdatedAt = new Date(); - salaries.date = salary.date ?? _null; - salaries.amount = salary.amount ?? _null; - salaries.positionSalaryAmount = salary.positionSalaryAmount ?? _null; - salaries.mouthSalaryAmount = salary.mouthSalaryAmount ?? _null; - salaries.position = salary.position ?? _null; - salaries.posNo = salary.posNo ?? _null; - salaries.salaryClass = salary.salaryClass ?? _null; - salaries.salaryRef = salary.salaryRef ?? _null; - salaries.refCommandNo = salary.refCommandNo ?? _null; - salaries.refCommandDate = salary.refCommandDate ?? _null; - salaries.salaryStatus = salary.salaryStatus ?? _null; - salaries.evaluation = evaluation; + await this.salaryRepository.save(salaries, { data: request }); setLogDataDiff(request, { before, after: salaries }); }); - + } //Training if (requestBody.trainings != null) requestBody.trainings.forEach(async (train) => { @@ -871,6 +919,12 @@ export class EvaluationController { ]) async checkSpecGet(@Request() request: RequestWithUser, @Path() id: string) { try { + // let thaiYear: number = new Date().getFullYear() + 543; + // let years = { + // lastTwoYear: Extension.ToThaiNumber((thaiYear - 2).toString()), + // lastOneYear: Extension.ToThaiNumber((thaiYear - 1).toString()), + // currentYear: Extension.ToThaiNumber(thaiYear.toString()), + // }; const evaluation = await AppDataSource.getRepository(Evaluation) .createQueryBuilder("evaluation") .leftJoin("evaluation.education", "education") @@ -932,6 +986,33 @@ export class EvaluationController { "salaries.refCommandNo", "salaries.refCommandDate", "salaries.salaryStatus", + "salaries.profileId", + "salaries.commandCode", + "salaries.commandNo", + "salaries.commandYear", + "salaries.commandDateAffect", + "salaries.commandDateSign", + "salaries.posNoAbb", + "salaries.positionName", + "salaries.positionType", + "salaries.positionLevel", + "salaries.positionLine", + "salaries.positionPathSide", + "salaries.positionExecutive", + "salaries.amountSpecial", + "salaries.orgRoot", + "salaries.orgChild1", + "salaries.orgChild2", + "salaries.orgChild3", + "salaries.orgChild4", + "salaries.remark", + "salaries.commandId", + "salaries.isGovernment", + "salaries.positionCee", + "salaries.commandName", + "salaries.posNumCodeSit", + "salaries.posNumCodeSitAbb", + "salaries.isEntry", "training.name", "training.topic", @@ -1012,6 +1093,33 @@ export class EvaluationController { refCommandNo: salaries.refCommandNo, refCommandDate: salaries.refCommandDate, salaryStatus: salaries.salaryStatus, + profileId: salaries.profileId, + commandCode: salaries.commandCode, + commandNo: salaries.commandNo, + commandYear: salaries.commandYear, + commandDateAffect: salaries.commandDateAffect, + commandDateSign: salaries.commandDateSign, + posNoAbb: salaries.posNoAbb, + positionName: salaries.positionName, + positionType: salaries.positionType, + positionLevel: salaries.positionLevel, + positionLine: salaries.positionLine, + positionPathSide: salaries.positionPathSide, + positionExecutive: salaries.positionExecutive, + amountSpecial: salaries.amountSpecial, + orgRoot: salaries.orgRoot, + orgChild1: salaries.orgChild1, + orgChild2: salaries.orgChild2, + orgChild3: salaries.orgChild3, + orgChild4: salaries.orgChild4, + remark: salaries.remark, + commandId: salaries.commandId, + isGovernment: salaries.isGovernment, + positionCee: salaries.positionCee, + commandName: salaries.commandName, + posNumCodeSit: salaries.posNumCodeSit, + posNumCodeSitAbb: salaries.posNumCodeSitAbb, + isEntry: salaries.isEntry, })), trainings: evaluation.training.map((training) => ({ name: training.name, @@ -1034,6 +1142,7 @@ export class EvaluationController { pointSumTotal: assessment.pointSumTotal, pointSum: assessment.pointSum, })), + // years: years }; if (!dataEvaluation) { diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index f522497..1db6d94 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -286,9 +286,9 @@ export class ReoportController { evaluationOld.length > 0 ? evaluationOld.map((x) => x.subject).join(", ") : "ไม่มี"; let thaiYear: number = new Date().getFullYear() + 543; let years = { - lastTwoYear: thaiYear ? Extension.ToThaiNumber((thaiYear - 2).toString()):"-", - lastOneYear: thaiYear ? Extension.ToThaiNumber((thaiYear - 1).toString()):"-", - currentYear: thaiYear ? Extension.ToThaiNumber(thaiYear.toString()):"-", + lastTwoYear: Extension.ToThaiNumber((thaiYear - 2).toString()), + lastOneYear: Extension.ToThaiNumber((thaiYear - 1).toString()), + currentYear: Extension.ToThaiNumber(thaiYear.toString()), }; const dataEvaluation = { isEducationalQft: evaluation.isEducationalQft, @@ -340,13 +340,13 @@ export class ReoportController { startDate: education.startDate, endDate: education.endDate, finishDate: education.finishDate - ? Extension.ToThaiNumber( + ? `(${Extension.ToThaiNumber( Extension.ToThaiShortDate(education.finishDate).toString(), - ) + )})` : "-", isEducation: education.isEducation, degree: education.degree ? Extension.ToThaiNumber(education.degree) : "-", - field: education.field ? Extension.ToThaiNumber(education.field) : "-", + field: education.field ? `(${Extension.ToThaiNumber(education.field)})` : "-", fundName: education.fundName, gpa: education.gpa, country: education.country, diff --git a/src/entities/Evaluation.ts b/src/entities/Evaluation.ts index 0d7c953..b7e1daf 100644 --- a/src/entities/Evaluation.ts +++ b/src/entities/Evaluation.ts @@ -1,4 +1,4 @@ -import { Entity, Column, OneToMany, ManyToMany, JoinTable } from "typeorm"; +import { Entity, Column, OneToMany, ManyToMany, JoinTable, Double } from "typeorm"; import { EntityBase } from "./base/Base"; import { EvaluationLogs } from "./EvaluationLogs"; import { Education } from "./Education"; @@ -416,41 +416,37 @@ export class CreateCertificate { } export class CreateSalary { - @Column() - step?: string | null; - - @Column() - date?: Date | null; - - @Column() - amount?: number | null; - - @Column() - positionSalaryAmount?: number | null; - - @Column() - mouthSalaryAmount?: number | null; - - @Column() - position?: string | null; - - @Column() + profileId?: string | null; + commandCode?: string | null; + commandNo?: string | null; + commandYear?: number | null; + commandDateAffect?: Date | null; + commandDateSign?: Date | null; + posNoAbb?: string | null; posNo?: string | null; - - @Column() - salaryClass?: string | null; - - @Column() - salaryRef?: string | null; - - @Column() - refCommandNo?: string | null; - - @Column() - refCommandDate?: Date | null; - - @Column() - salaryStatus?: string | null; + positionName?: string | null; + positionType?: string | null; + positionLevel?: string | null; + positionLine?: string | null; + positionPathSide?: string | null; + positionExecutive?: string | null; + amount?: Double | null; + amountSpecial?: Double | null; + positionSalaryAmount?: Double | null; + mouthSalaryAmount?: Double | null; + orgRoot?: string | null; + orgChild1?: string | null; + orgChild2?: string | null; + orgChild3?: string | null; + orgChild4?: string | null; + remark?: string | null; + commandId?: string | null; + isGovernment?: boolean | null; + positionCee?: string | null; + commandName?: string | null; + posNumCodeSit?: string | null; + posNumCodeSitAbb?: string | null; + isEntry?: boolean | null; } export class CreateTraining { @Column() diff --git a/src/entities/Salary.ts b/src/entities/Salary.ts index d3c3078..d93db11 100644 --- a/src/entities/Salary.ts +++ b/src/entities/Salary.ts @@ -281,37 +281,5 @@ export class Salary extends EntityBase { evaluation: Evaluation; } -export class CreateSalary { - profileId?: string | null; - commandCode?: string | null; - commandNo?: string | null; - commandYear?: number | null; - commandDateAffect?: Date | null; - commandDateSign?: Date | null; - posNoAbb?: string | null; - posNo?: string | null; - positionName?: string | null; - positionType?: string | null; - positionLevel?: string | null; - positionLine?: string | null; - positionPathSide?: string | null; - positionExecutive?: string | null; - amount?: Double | null; - amountSpecial?: Double | null; - positionSalaryAmount?: Double | null; - mouthSalaryAmount?: Double | null; - orgRoot?: string | null; - orgChild1?: string | null; - orgChild2?: string | null; - orgChild3?: string | null; - orgChild4?: string | null; - remark?: string | null; - commandId?: string | null; - isGovernment?: boolean | null; - positionCee?: string | null; - commandName?: string | null; - posNumCodeSit?: string | null; - posNumCodeSitAbb?: string | null; -} export type UpdateSalary = Partial;