Compare commits

..

No commits in common. "5d9ca12975594b550f1f3998e36f509fda9917d5" and "ee7f392ab4fd1d6b5edbb33d616d81613b73e9e2" have entirely different histories.

View file

@ -2630,22 +2630,13 @@ export class EvaluationController {
if (!evaluation) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "not found.");
}
// ดึง directors เดิมที่มีอยู่
const existingDirectors = await this.evaluation_directors_directorRepository.find({
where: { evaluationId: evaluation.id },
});
const existingDirectorIds = new Set(existingDirectors.map((d) => d.directorId));
// เพิ่ม directors ใหม่ที่ยังไม่มี
const newDirectors = [];
for (const directorId of body.directors) {
// ข้ามถ้ามีอยู่แล้ว
if (existingDirectorIds.has(directorId)) {
continue;
}
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) {
newDirectors.push({
await this.evaluation_directors_directorRepository.save({
directorId: director.id,
evaluationId: evaluation.id,
createdUserId: request.user.sub,
@ -2655,12 +2646,8 @@ export class EvaluationController {
createdAt: 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.lastUpdateFullName = request.user.name;