fix ระบบประเมินบุคคล (EVA) เพิ่มรายชื่อกรรมการ ระบบแจ้ง Error #2396

This commit is contained in:
harid 2026-03-31 17:19:49 +07:00
parent 640c7eabee
commit eb2f4c8b1b

View file

@ -2630,13 +2630,22 @@ export class EvaluationController {
if (!evaluation) { if (!evaluation) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "not found."); throw new HttpError(HttpStatusCode.NOT_FOUND, "not found.");
} }
if (!evaluation.evaluation_directors_director) { // ดึง directors เดิมที่มีอยู่
evaluation.evaluation_directors_director = []; const existingDirectors = await this.evaluation_directors_directorRepository.find({
} where: { evaluationId: evaluation.id },
body.directors.forEach(async (directorId) => { });
const existingDirectorIds = new Set(existingDirectors.map((d) => d.directorId));
// เพิ่ม directors ใหม่ที่ยังไม่มี
const newDirectors = [];
for (const directorId of body.directors) {
// ข้ามถ้ามีอยู่แล้ว
if (existingDirectorIds.has(directorId)) {
continue;
}
const director = await this.directorRepository.findOne({ where: { id: directorId } }); const director = await this.directorRepository.findOne({ where: { id: directorId } });
if (director != null) { if (director != null) {
await this.evaluation_directors_directorRepository.save({ newDirectors.push({
directorId: director.id, directorId: director.id,
evaluationId: evaluation.id, evaluationId: evaluation.id,
createdUserId: request.user.sub, createdUserId: request.user.sub,
@ -2646,8 +2655,12 @@ export class EvaluationController {
createdAt: new Date(), createdAt: new Date(),
lastUpdatedAt: new Date(), lastUpdatedAt: new Date(),
}); });
existingDirectorIds.add(director.id); // เพิ่มเพื่อป้องกันซ้ำใน batch เดียวกัน
} }
}); }
if (newDirectors.length > 0) {
await this.evaluation_directors_directorRepository.insert(newDirectors);
}
evaluation.lastUpdateUserId = request.user.sub; evaluation.lastUpdateUserId = request.user.sub;
evaluation.lastUpdateFullName = request.user.name; evaluation.lastUpdateFullName = request.user.name;