แก้กรรมการ

This commit is contained in:
Moss 2025-06-13 15:20:58 +07:00
parent 309f295391
commit 3a4eb56629
6 changed files with 128 additions and 44 deletions

View file

@ -36,6 +36,7 @@ import Extension from "../interfaces/extension";
import { Portfolio } from "../entities/Portfolio";
import { Performance } from "../entities/Performance";
import { AnnounceTemplate } from "../entities/AnnounceTemplate";
import { evaluation_directors_director } from "../entities/evaluation_directors_director";
@Route("api/v1/evaluation")
@Tags("evaluation")
@ -58,6 +59,9 @@ export class EvaluationController {
private directorRepository = AppDataSource.getRepository(Director);
private meetingRepository = AppDataSource.getRepository(Meeting);
private announceTemplateRepository = AppDataSource.getRepository(AnnounceTemplate);
private evaluation_directors_directorRepository = AppDataSource.getRepository(
evaluation_directors_director,
);
/**
* API
@ -2221,7 +2225,7 @@ export class EvaluationController {
evaluation.step = "PREPARE_DOC_V2";
evaluation.subjectDoc2 = evaluation.subject;
evaluation.authorDoc2 = evaluation.author;
evaluation.assignedPosition = evaluation.position;
evaluation.assignedPosition = evaluation.position; //xxxxxxxxxx
evaluation.commanderFullnameDoc2 = evaluation.commanderFullname;
evaluation.commanderPositionDoc2 = evaluation.commanderPosition;
evaluation.commanderAboveFullnameDoc2 = evaluation.commanderAboveFullname;
@ -2478,12 +2482,23 @@ export class EvaluationController {
if (!evaluation) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "not found.");
}
if (!evaluation.directors) {
evaluation.directors = [];
if (!evaluation.evaluation_directors_director) {
evaluation.evaluation_directors_director = [];
}
body.directors.forEach(async (directorId) => {
const director = await this.directorRepository.findOne({ where: { id: directorId } });
if (director != null) evaluation.directors.push(director);
if (director != null) {
await this.evaluation_directors_directorRepository.save({
directorId: director.id,
evaluationId: evaluation.id,
createdUserId: request.user.sub,
createdFullName: request.user.name,
lastUpdateUserId: request.user.sub,
lastUpdateFullName: request.user.name,
createdAt: new Date(),
lastUpdatedAt: new Date(),
});
}
});
evaluation.lastUpdateUserId = request.user.sub;
@ -2580,20 +2595,24 @@ export class EvaluationController {
const evaluation = await this.evaluationRepository.findOne({
where: { id },
relations: ["directors", "meetings"],
relations: [
"evaluation_directors_director",
"evaluation_directors_director.director",
"meetings",
],
});
if (!evaluation) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "not found.");
}
const directors = evaluation.directors.map((director) => ({
const directors = evaluation.evaluation_directors_director.map((director) => ({
id: director.id,
prefix: director.prefix,
firstName: director.firstName,
lastName: director.lastName,
position: director.position,
prefix: director.director.prefix,
firstName: director.director.firstName,
lastName: director.director.lastName,
position: director.director.position,
positionName: null,
email: director.email,
phone: director.phone,
email: director.director.email,
phone: director.director.phone,
duty: director.duty,
}));
@ -3104,7 +3123,7 @@ export class EvaluationController {
// await new permission().PermissionDelete(request, "SYS_EVA_REQ");
const evaluation = await this.evaluationRepository.findOne({
where: { id },
relations: ["meetings", "directors"],
relations: ["meetings", "evaluation_directors_director"],
});
if (!evaluation) {
@ -3125,11 +3144,7 @@ export class EvaluationController {
this.meetingRepository.remove(meeting, { data: request }),
),
);
await Promise.all(
evaluation.directors.map((director) =>
this.directorRepository.remove(director, { data: request }),
),
);
await this.evaluation_directors_directorRepository.delete({ evaluationId: id });
await this.evaluationRepository.delete({ id });
return new HttpSuccess();