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")
@Security("keycloak")
async cancelRequestData(@Path() requestDataId: string) {
await prisma.$transaction([
prisma.requestData.update({
where: { id: requestDataId },
data: {
requestDataStatus: RequestDataStatus.Canceled,
},
}),
prisma.requestWorkStepStatus.updateMany({
where: { requestWork: { requestDataId } },
data: {
workStatus: RequestWorkStatus.Canceled,
},
}),
prisma.taskOrder.updateMany({
where: {
taskList: {
every: { taskStatus: RequestWorkStatus.Canceled },
await prisma.$transaction(async (tx) => {
const workStepCondition = {
requestWork: { requestDataId },
workStatus: { notIn: [RequestWorkStatus.Completed, RequestWorkStatus.Ended] },
};
await Promise.all([
tx.requestData.update({
where: { id: requestDataId },
data: {
requestDataStatus: RequestDataStatus.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 },
}),
]);
});
}
}