refactor: wrap in transaction

This commit is contained in:
Methapon2001 2024-12-24 16:04:54 +07:00
parent f8abb7503b
commit de29f64aaf

View file

@ -512,39 +512,37 @@ export class TaskActionController extends Controller {
if (!record) throw notFoundError("Task Order"); if (!record) throw notFoundError("Task Order");
await prisma.$transaction([ await prisma.$transaction(async (tx) => {
prisma.taskOrder.update({ await Promise.all([
where: { id: taskOrderId }, tx.taskOrder.update({
data: { taskOrderStatus: TaskOrderStatus.Complete }, where: { id: taskOrderId },
}), data: { taskOrderStatus: TaskOrderStatus.Complete },
prisma.requestWorkStepStatus.updateMany({ }),
tx.requestWorkStepStatus.updateMany({
where: {
task: {
some: { taskOrderId, taskStatus: TaskStatus.Redo },
},
},
data: { workStatus: RequestWorkStatus.Ready },
}),
tx.task.updateMany({
where: {
taskOrderId: taskOrderId,
taskStatus: TaskStatus.Validate,
requestWorkStep: { responsibleUserId: submitUserId },
},
data: { taskStatus: TaskStatus.Complete },
}),
]);
await tx.requestWorkStepStatus.updateMany({
where: { where: {
task: { task: {
some: { taskOrderId, taskStatus: TaskStatus.Redo }, some: { taskOrderId, taskStatus: TaskStatus.Complete },
}, },
}, },
data: { workStatus: RequestWorkStatus.Ready }, data: { workStatus: RequestWorkStatus.Completed },
}), });
prisma.task.updateMany({
where: {
taskOrderId: taskOrderId,
taskStatus: TaskStatus.Validate,
requestWorkStep: { responsibleUserId: submitUserId },
},
data: { taskStatus: TaskStatus.Complete },
}),
]);
await prisma.requestWorkStepStatus.updateMany({
where: {
task: {
some: { taskOrderId, taskStatus: TaskStatus.Complete },
},
},
data: { workStatus: RequestWorkStatus.Completed },
});
await prisma.$transaction(async (tx) => {
const requestList = await tx.requestData.findMany({ const requestList = await tx.requestData.findMany({
include: { include: {
requestWork: { requestWork: {
@ -578,7 +576,6 @@ export class TaskActionController extends Controller {
const completed: string[] = []; const completed: string[] = [];
requestList.forEach((item) => { requestList.forEach((item) => {
console.log(item);
const completeCheck = item.requestWork.every((work) => { const completeCheck = item.requestWork.every((work) => {
const stepCount = const stepCount =
work.productService.work?.productOnWork.find( work.productService.work?.productOnWork.find(