fix ระบบประเมินบุคคล (EVA) เพิ่มรายชื่อกรรมการ ระบบแจ้ง Error #2396
This commit is contained in:
parent
640c7eabee
commit
eb2f4c8b1b
1 changed files with 19 additions and 6 deletions
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue