refactor: update status more accurate

This commit is contained in:
Methapon2001 2024-12-23 18:06:01 +07:00
parent d12834d7d7
commit ce51b8cc0f

View file

@ -184,28 +184,44 @@ export class RequestDataActionController extends Controller {
@Post("cancel") @Post("cancel")
@Security("keycloak") @Security("keycloak")
async cancelRequestData(@Path() requestDataId: string) { async cancelRequestData(@Path() requestDataId: string) {
await prisma.$transaction([ await prisma.$transaction(async (tx) => {
prisma.requestData.update({ const workStepCondition = {
where: { id: requestDataId }, requestWork: { requestDataId },
data: { workStatus: { notIn: [RequestWorkStatus.Completed, RequestWorkStatus.Ended] },
requestDataStatus: RequestDataStatus.Canceled, };
},
}), await Promise.all([
prisma.requestWorkStepStatus.updateMany({ tx.requestData.update({
where: { requestWork: { requestDataId } }, where: { id: requestDataId },
data: { data: {
workStatus: RequestWorkStatus.Canceled, requestDataStatus: RequestDataStatus.Canceled,
},
}),
prisma.taskOrder.updateMany({
where: {
taskList: {
every: { taskStatus: RequestWorkStatus.Canceled },
}, },
}, }),
data: { taskOrderStatus: TaskStatus.Canceled }, tx.requestWorkStepStatus.updateMany({
}), where: workStepCondition,
]); data: {
workStatus: RequestWorkStatus.Canceled,
},
}),
tx.task.updateMany({
where: {
taskStatus: { notIn: [TaskStatus.Complete, TaskStatus.Redo] },
requestWorkStep: workStepCondition,
},
data: { taskStatus: TaskStatus.Canceled },
}),
]);
await Promise.all([
tx.taskOrder.updateMany({
where: {
taskList: {
every: { taskStatus: TaskStatus.Canceled },
},
},
data: { taskOrderStatus: TaskStatus.Canceled },
}),
]);
});
} }
} }