From 7d121efb959fde1bb149737887e736a67e8ca13c Mon Sep 17 00:00:00 2001 From: "bai.zixv" Date: Fri, 5 Jul 2024 19:38:01 +0800 Subject: [PATCH] feat: approval, fix draft (#1281) Reviewed-on: https://git.daoyoucloud.com/daoyoucloud/tachybase/pulls/1281 Reviewed-by: sealday Co-authored-by: bai.zixv Co-committed-by: bai.zixv --- .../features/approval/ApprovalInstruction.ts | 2 +- .../features/approval/ApprovalTrigger.ts | 4 +++- .../src/server/features/approval/actions.ts | 24 +++++++++---------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalInstruction.ts b/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalInstruction.ts index d5860ebf3..a9e385d3a 100644 --- a/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalInstruction.ts +++ b/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalInstruction.ts @@ -136,7 +136,7 @@ export default class ApprovalInstruction extends Instruction { }); const approvalExecution = approval.approvalExecutions.find((item) => item.executionId === processor.execution.id); // NOTE: 属于重新提交的情况时候, 不必进入待办列表, 应该由用户手动提交 - if (approval.status === APPROVAL_STATUS.RESUBMIT) { + if ([APPROVAL_STATUS.RESUBMIT, APPROVAL_STATUS.DRAFT].includes(approval.status)) { return job; } const RecordModel = db.getModel('approvalRecords'); diff --git a/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalTrigger.ts b/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalTrigger.ts index 5aaf35093..87a2b319c 100644 --- a/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalTrigger.ts +++ b/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalTrigger.ts @@ -39,7 +39,9 @@ export default class ApprovalTrigger extends Trigger { transaction, }); const isChangedStatus = approval.changed('status'); - const isAllowStatusList = [APPROVAL_STATUS.SUBMITTED, APPROVAL_STATUS.RESUBMIT].includes(approval.status); + const isAllowStatusList = [APPROVAL_STATUS.DRAFT, APPROVAL_STATUS.SUBMITTED, APPROVAL_STATUS.RESUBMIT].includes( + approval.status, + ); if (!workflow || !isChangedStatus || !isAllowStatusList) { return; } diff --git a/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/actions.ts b/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/actions.ts index 40814b832..7de58554b 100644 --- a/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/actions.ts +++ b/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/actions.ts @@ -262,18 +262,18 @@ const approvals = { // }); // await Promise.all(promises); // 等待所有的 resume 操作完成 // } - if (jobs.length) { - const waitList = []; - jobs.forEach((job) => { - job.set('status', JOB_STATUS.CANCELED); - waitList.push(workflowPlugin.resume(job)); - }); - // await Promise.all(waitList) - } else { - await execution.update({ - status: EXECUTION_STATUS.CANCELED, - }); - } + // if (jobs.length) { + // const waitList = []; + // jobs.forEach((job) => { + // job.set('status', JOB_STATUS.CANCELED); + // waitList.push(workflowPlugin.resume(job)); + // }); + // // await Promise.all(waitList) + // } else { + await execution.update({ + status: EXECUTION_STATUS.CANCELED, + }); + // } /** FIXME: 以上 */ }, async listCentralized(context, next) {