feat: add restart task within same order
This commit is contained in:
parent
2536394fb2
commit
27d80de0ec
1 changed files with 28 additions and 11 deletions
|
|
@ -452,6 +452,7 @@ export class TaskActionController extends Controller {
|
|||
return await prisma.$transaction(async (tx) => {
|
||||
const promises = body.map(async (v) => {
|
||||
const record = await tx.task.findFirst({
|
||||
include: { requestWorkStep: true },
|
||||
where: {
|
||||
step: v.step,
|
||||
requestWorkId: v.requestWorkId,
|
||||
|
|
@ -459,6 +460,16 @@ export class TaskActionController extends Controller {
|
|||
},
|
||||
});
|
||||
if (!record) throw notFoundError("Task List");
|
||||
|
||||
if (v.taskStatus === TaskStatus.Restart && record.requestWorkStep.responsibleUserId) {
|
||||
await tx.userTask.updateMany({
|
||||
where: {
|
||||
taskOrderId: record.taskOrderId,
|
||||
userId: record.requestWorkStep.responsibleUserId,
|
||||
},
|
||||
data: { userTaskStatus: UserTaskStatus.Restart },
|
||||
});
|
||||
}
|
||||
return await tx.task.update({
|
||||
where: { id: record.id },
|
||||
data: {
|
||||
|
|
@ -520,13 +531,7 @@ export class TaskActionController extends Controller {
|
|||
|
||||
@Post("complete")
|
||||
@Security("keycloak")
|
||||
async completeTaskOrder(
|
||||
@Request() req: RequestWithUser,
|
||||
@Path() taskOrderId: string,
|
||||
@Query() submitUserId?: string,
|
||||
) {
|
||||
submitUserId = submitUserId ?? req.user.sub;
|
||||
|
||||
async completeTaskOrder(@Request() req: RequestWithUser, @Path() taskOrderId: string) {
|
||||
const record = await prisma.taskOrder.findFirst({ where: { id: taskOrderId } });
|
||||
|
||||
if (!record) throw notFoundError("Task Order");
|
||||
|
|
@ -540,16 +545,25 @@ export class TaskActionController extends Controller {
|
|||
tx.requestWorkStepStatus.updateMany({
|
||||
where: {
|
||||
task: {
|
||||
some: { taskOrderId, taskStatus: TaskStatus.Redo },
|
||||
some: {
|
||||
taskOrderId,
|
||||
taskStatus: { notIn: [TaskStatus.Canceled, TaskStatus.Success] },
|
||||
},
|
||||
},
|
||||
},
|
||||
data: { workStatus: RequestWorkStatus.Ready },
|
||||
}),
|
||||
tx.task.updateMany({
|
||||
where: {
|
||||
taskOrderId: taskOrderId,
|
||||
taskStatus: TaskStatus.Restart,
|
||||
},
|
||||
data: { taskStatus: TaskStatus.Redo },
|
||||
}),
|
||||
tx.task.updateMany({
|
||||
where: {
|
||||
taskOrderId: taskOrderId,
|
||||
taskStatus: TaskStatus.Validate,
|
||||
requestWorkStep: { responsibleUserId: submitUserId },
|
||||
},
|
||||
data: { taskStatus: TaskStatus.Complete },
|
||||
}),
|
||||
|
|
@ -712,13 +726,16 @@ export class UserTaskController extends Controller {
|
|||
userTask: userTaskStatus
|
||||
? {
|
||||
some:
|
||||
userTaskStatus !== UserTaskStatus.Pending
|
||||
userTaskStatus !== UserTaskStatus.Pending && userTaskStatus !== UserTaskStatus.Restart
|
||||
? {
|
||||
userTaskStatus,
|
||||
userId: req.user.sub,
|
||||
}
|
||||
: undefined,
|
||||
none: userTaskStatus === UserTaskStatus.Pending ? { userId: req.user.sub } : undefined,
|
||||
none:
|
||||
userTaskStatus === UserTaskStatus.Pending || userTaskStatus === UserTaskStatus.Restart
|
||||
? { userId: req.user.sub }
|
||||
: undefined,
|
||||
}
|
||||
: undefined,
|
||||
OR: queryOrNot(query, [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue