add devproject

This commit is contained in:
Kittapath 2024-07-17 12:47:23 +07:00
parent 7092d67973
commit 0ded2dc6b0
4 changed files with 152 additions and 1 deletions

View file

@ -26,6 +26,7 @@ import {
import HttpError from "../interfaces/http-error";
import { KpiUserEvaluation } from "../entities/kpiUserEvaluation";
import { Not, Like, Brackets } from "typeorm";
import { DevelopmentProject } from "../entities/developmentProject";
@Route("api/v1/kpi/user/achievement/development")
@Tags("KpiUserDevelopment")
@ -38,6 +39,7 @@ import { Not, Like, Brackets } from "typeorm";
export class KpiUserDevelopmentController extends Controller {
private kpiUserDevelopmentRepository = AppDataSource.getRepository(KpiUserDevelopment);
private kpiUserEvaluationRepository = AppDataSource.getRepository(KpiUserEvaluation);
private developmentProjectRepository = AppDataSource.getRepository(DevelopmentProject);
/**
* API
@ -90,6 +92,22 @@ export class KpiUserDevelopmentController extends Controller {
kpiUserDevelopment.lastUpdateUserId = request.user.sub;
kpiUserDevelopment.lastUpdateFullName = request.user.name;
await this.kpiUserDevelopmentRepository.save(kpiUserDevelopment);
if (requestBody.developmentProjects != null) {
await Promise.all(
requestBody.developmentProjects.map(async (x) => {
let data = new DevelopmentProject();
data.name = x;
data.createdUserId = request.user.sub;
data.createdFullName = request.user.name;
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.kpiUserDevelopmentId = kpiUserDevelopment.id;
await this.developmentProjectRepository.save(data);
}),
);
}
return new HttpSuccess(kpiUserDevelopment.id);
}
@ -106,10 +124,30 @@ export class KpiUserDevelopmentController extends Controller {
@Body() requestBody: UpdateKpiUserDevelopment,
@Request() request: { user: Record<string, any> },
) {
const kpiUserDevelopment = await this.kpiUserDevelopmentRepository.findOne({ where: { id } });
const kpiUserDevelopment = await this.kpiUserDevelopmentRepository.findOne({
where: { id },
relations: {
developmentProjects: true,
},
});
if (!kpiUserDevelopment) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลพัฒนาตนเองนี้");
}
await this.developmentProjectRepository.remove(kpiUserDevelopment.developmentProjects);
if (requestBody.developmentProjects != null) {
await Promise.all(
requestBody.developmentProjects.map(async (x) => {
let data = new DevelopmentProject();
data.name = x;
data.createdUserId = request.user.sub;
data.createdFullName = request.user.name;
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.kpiUserDevelopmentId = kpiUserDevelopment.id;
await this.developmentProjectRepository.save(data);
}),
);
}
const chkUserEvaluation = await this.kpiUserEvaluationRepository.findOne({
where: { id: requestBody.kpiUserEvaluationId },
});
@ -198,6 +236,12 @@ export class KpiUserDevelopmentController extends Controller {
isDevelopment70: getKpiUserDevelopment.isDevelopment70,
isDevelopment20: getKpiUserDevelopment.isDevelopment20,
isDevelopment10: getKpiUserDevelopment.isDevelopment10,
reasonDevelopment70: getKpiUserDevelopment.reasonDevelopment70,
reasonDevelopment20: getKpiUserDevelopment.reasonDevelopment20,
reasonDevelopment10: getKpiUserDevelopment.reasonDevelopment10,
developmentProjectTechniqueActuals: getKpiUserDevelopment.developmentProjects
.map((x) => x.name)
.sort(),
};
return new HttpSuccess(mapKpiUserDevelopment);