This commit is contained in:
AdisakKanthawilang 2025-04-08 16:40:11 +07:00
parent cf947e9fa9
commit 0604185e25
4 changed files with 160 additions and 87 deletions

View file

@ -32,6 +32,7 @@ import CallAPI from "../interfaces/call-api";
import permission from "../interfaces/permission"; import permission from "../interfaces/permission";
import { RequestWithUser } from "../middlewares/user"; import { RequestWithUser } from "../middlewares/user";
import { setLogDataDiff } from "../interfaces/utils"; import { setLogDataDiff } from "../interfaces/utils";
import Extension from "../interfaces/extension";
@Route("api/v1/evaluation") @Route("api/v1/evaluation")
@Tags("evaluation") @Tags("evaluation")
@ -519,31 +520,78 @@ export class EvaluationController {
}); });
//Salary //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) => { requestBody.salaries.forEach(async (salary) => {
const salaries = new 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.createdUserId = request.user.sub;
salaries.createdFullName = request.user.name; salaries.createdFullName = request.user.name;
salaries.createdAt = new Date(); salaries.createdAt = new Date();
salaries.lastUpdateUserId = request.user.sub; salaries.lastUpdateUserId = request.user.sub;
salaries.lastUpdateFullName = request.user.name; salaries.lastUpdateFullName = request.user.name;
salaries.lastUpdatedAt = new Date(); 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 }); await this.salaryRepository.save(salaries, { data: request });
setLogDataDiff(request, { before, after: salaries }); setLogDataDiff(request, { before, after: salaries });
}); });
}
//Training //Training
if (requestBody.trainings != null) if (requestBody.trainings != null)
requestBody.trainings.forEach(async (train) => { requestBody.trainings.forEach(async (train) => {
@ -871,6 +919,12 @@ export class EvaluationController {
]) ])
async checkSpecGet(@Request() request: RequestWithUser, @Path() id: string) { async checkSpecGet(@Request() request: RequestWithUser, @Path() id: string) {
try { 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) const evaluation = await AppDataSource.getRepository(Evaluation)
.createQueryBuilder("evaluation") .createQueryBuilder("evaluation")
.leftJoin("evaluation.education", "education") .leftJoin("evaluation.education", "education")
@ -932,6 +986,33 @@ export class EvaluationController {
"salaries.refCommandNo", "salaries.refCommandNo",
"salaries.refCommandDate", "salaries.refCommandDate",
"salaries.salaryStatus", "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.name",
"training.topic", "training.topic",
@ -1012,6 +1093,33 @@ export class EvaluationController {
refCommandNo: salaries.refCommandNo, refCommandNo: salaries.refCommandNo,
refCommandDate: salaries.refCommandDate, refCommandDate: salaries.refCommandDate,
salaryStatus: salaries.salaryStatus, 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) => ({ trainings: evaluation.training.map((training) => ({
name: training.name, name: training.name,
@ -1034,6 +1142,7 @@ export class EvaluationController {
pointSumTotal: assessment.pointSumTotal, pointSumTotal: assessment.pointSumTotal,
pointSum: assessment.pointSum, pointSum: assessment.pointSum,
})), })),
// years: years
}; };
if (!dataEvaluation) { if (!dataEvaluation) {

View file

@ -286,9 +286,9 @@ export class ReoportController {
evaluationOld.length > 0 ? evaluationOld.map((x) => x.subject).join(", ") : "ไม่มี"; evaluationOld.length > 0 ? evaluationOld.map((x) => x.subject).join(", ") : "ไม่มี";
let thaiYear: number = new Date().getFullYear() + 543; let thaiYear: number = new Date().getFullYear() + 543;
let years = { let years = {
lastTwoYear: thaiYear ? Extension.ToThaiNumber((thaiYear - 2).toString()):"-", lastTwoYear: Extension.ToThaiNumber((thaiYear - 2).toString()),
lastOneYear: thaiYear ? Extension.ToThaiNumber((thaiYear - 1).toString()):"-", lastOneYear: Extension.ToThaiNumber((thaiYear - 1).toString()),
currentYear: thaiYear ? Extension.ToThaiNumber(thaiYear.toString()):"-", currentYear: Extension.ToThaiNumber(thaiYear.toString()),
}; };
const dataEvaluation = { const dataEvaluation = {
isEducationalQft: evaluation.isEducationalQft, isEducationalQft: evaluation.isEducationalQft,
@ -340,13 +340,13 @@ export class ReoportController {
startDate: education.startDate, startDate: education.startDate,
endDate: education.endDate, endDate: education.endDate,
finishDate: education.finishDate finishDate: education.finishDate
? Extension.ToThaiNumber( ? `(${Extension.ToThaiNumber(
Extension.ToThaiShortDate(education.finishDate).toString(), Extension.ToThaiShortDate(education.finishDate).toString(),
) )})`
: "-", : "-",
isEducation: education.isEducation, isEducation: education.isEducation,
degree: education.degree ? Extension.ToThaiNumber(education.degree) : "-", degree: education.degree ? Extension.ToThaiNumber(education.degree) : "-",
field: education.field ? Extension.ToThaiNumber(education.field) : "-", field: education.field ? `(${Extension.ToThaiNumber(education.field)})` : "-",
fundName: education.fundName, fundName: education.fundName,
gpa: education.gpa, gpa: education.gpa,
country: education.country, country: education.country,

View file

@ -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 { EntityBase } from "./base/Base";
import { EvaluationLogs } from "./EvaluationLogs"; import { EvaluationLogs } from "./EvaluationLogs";
import { Education } from "./Education"; import { Education } from "./Education";
@ -416,41 +416,37 @@ export class CreateCertificate {
} }
export class CreateSalary { export class CreateSalary {
@Column() profileId?: string | null;
step?: string | null; commandCode?: string | null;
commandNo?: string | null;
@Column() commandYear?: number | null;
date?: Date | null; commandDateAffect?: Date | null;
commandDateSign?: Date | null;
@Column() posNoAbb?: string | null;
amount?: number | null;
@Column()
positionSalaryAmount?: number | null;
@Column()
mouthSalaryAmount?: number | null;
@Column()
position?: string | null;
@Column()
posNo?: string | null; posNo?: string | null;
positionName?: string | null;
@Column() positionType?: string | null;
salaryClass?: string | null; positionLevel?: string | null;
positionLine?: string | null;
@Column() positionPathSide?: string | null;
salaryRef?: string | null; positionExecutive?: string | null;
amount?: Double | null;
@Column() amountSpecial?: Double | null;
refCommandNo?: string | null; positionSalaryAmount?: Double | null;
mouthSalaryAmount?: Double | null;
@Column() orgRoot?: string | null;
refCommandDate?: Date | null; orgChild1?: string | null;
orgChild2?: string | null;
@Column() orgChild3?: string | null;
salaryStatus?: 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 { export class CreateTraining {
@Column() @Column()

View file

@ -281,37 +281,5 @@ export class Salary extends EntityBase {
evaluation: Evaluation; 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<Salary>; export type UpdateSalary = Partial<Salary>;