fix api sort 504 time out
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m7s

This commit is contained in:
Adisak 2026-05-20 17:33:02 +07:00
parent d0c5d90033
commit 36b1469016

View file

@ -2760,7 +2760,19 @@ export class PositionController extends Controller {
id: data.id,
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
}));
await this.posMasterRepository.save(sortData_0, { data: request });
// Bulk update using CASE WHEN instead of save() per row
const caseClauses_0 = sortData_0
.map((d) => `WHEN '${d.id}' THEN ${d.posMasterOrder}`)
.join(" ");
const ids_0 = sortData_0.map((d) => `'${d.id}'`).join(",");
await this.posMasterRepository
.createQueryBuilder()
.update(PosMaster)
.set({
posMasterOrder: () => `CASE id ${caseClauses_0} END`,
})
.where(`id IN (${ids_0})`)
.execute();
setLogDataDiff(request, { before, after: sortData_0 });
break;
}
@ -2789,7 +2801,19 @@ export class PositionController extends Controller {
id: data.id,
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
}));
await this.posMasterRepository.save(sortData_1, { data: request });
// Bulk update using CASE WHEN instead of save() per row
const caseClauses_1 = sortData_1
.map((d) => `WHEN '${d.id}' THEN ${d.posMasterOrder}`)
.join(" ");
const ids_1 = sortData_1.map((d) => `'${d.id}'`).join(",");
await this.posMasterRepository
.createQueryBuilder()
.update(PosMaster)
.set({
posMasterOrder: () => `CASE id ${caseClauses_1} END`,
})
.where(`id IN (${ids_1})`)
.execute();
setLogDataDiff(request, { before, after: sortData_1 });
break;
}
@ -2818,7 +2842,19 @@ export class PositionController extends Controller {
id: data.id,
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
}));
await this.posMasterRepository.save(sortData_2, { data: request });
// Bulk update using CASE WHEN instead of save() per row
const caseClauses_2 = sortData_2
.map((d) => `WHEN '${d.id}' THEN ${d.posMasterOrder}`)
.join(" ");
const ids_2 = sortData_2.map((d) => `'${d.id}'`).join(",");
await this.posMasterRepository
.createQueryBuilder()
.update(PosMaster)
.set({
posMasterOrder: () => `CASE id ${caseClauses_2} END`,
})
.where(`id IN (${ids_2})`)
.execute();
setLogDataDiff(request, { before, after: sortData_2 });
break;
}
@ -2847,7 +2883,19 @@ export class PositionController extends Controller {
id: data.id,
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
}));
await this.posMasterRepository.save(sortData_3, { data: request });
// Bulk update using CASE WHEN instead of save() per row
const caseClauses_3 = sortData_3
.map((d) => `WHEN '${d.id}' THEN ${d.posMasterOrder}`)
.join(" ");
const ids_3 = sortData_3.map((d) => `'${d.id}'`).join(",");
await this.posMasterRepository
.createQueryBuilder()
.update(PosMaster)
.set({
posMasterOrder: () => `CASE id ${caseClauses_3} END`,
})
.where(`id IN (${ids_3})`)
.execute();
setLogDataDiff(request, { before, after: sortData_3 });
break;
}
@ -2876,7 +2924,19 @@ export class PositionController extends Controller {
id: data.id,
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
}));
await this.posMasterRepository.save(sortData_4, { data: request });
// Bulk update using CASE WHEN instead of save() per row
const caseClauses_4 = sortData_4
.map((d) => `WHEN '${d.id}' THEN ${d.posMasterOrder}`)
.join(" ");
const ids_4 = sortData_4.map((d) => `'${d.id}'`).join(",");
await this.posMasterRepository
.createQueryBuilder()
.update(PosMaster)
.set({
posMasterOrder: () => `CASE id ${caseClauses_4} END`,
})
.where(`id IN (${ids_4})`)
.execute();
setLogDataDiff(request, { before, after: sortData_4 });
break;
}