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