diff --git a/src/utils/mk-approval.js b/src/utils/mk-approval.js index a9071d2..3562545 100644 --- a/src/utils/mk-approval.js +++ b/src/utils/mk-approval.js @@ -7,46 +7,55 @@ export const MK_BIZ = { dictName: '提交客商审核流', subjectPrefix: '客商准入审批', rejected: ['rejected'], + approved: ['approved'], }, 'project-apply': { dictName: '提交项目审核流', subjectPrefix: '项目审批', rejected: ['rejected', 'change_rejected', 'withdrawn'], + approved: ['approved', 'change_approved'], }, 'contract-manage': { dictName: '提交合同审核流', subjectPrefix: '合同审批', rejected: ['rejected', 'change_rejected', 'withdrawn'], + approved: ['approved', 'change_approved'], }, 'pre-settlement': { dictName: '提交预结算审核流', subjectPrefix: '预结算审批', rejected: ['returned'], + approved: ['approved'], }, 'formal-settlement': { dictName: '提交正式结算审核流', subjectPrefix: '正式结算审批', rejected: ['returned'], + approved: ['approved'], }, 'payment-application': { dictName: '提交付款审核流', subjectPrefix: '付款审批', rejected: ['returned'], + approved: ['approved'], }, 'invoice-application': { dictName: '提交开票审核流', subjectPrefix: '开票审批', rejected: ['returned'], + approved: ['approved'], }, 'invoice-receipt': { dictName: '提交收票审核流', subjectPrefix: '收票审批', rejected: ['returned'], + approved: ['approved'], }, 'bill-payment': { dictName: '提交汇票付款审核流', subjectPrefix: '汇票付款审批', rejected: ['returned'], + approved: ['approved'], }, }; @@ -86,7 +95,7 @@ export async function resolveMkTemplateCode(dictName, list) { * @param {string} options.bizType 业务类型 * @param {string|number} options.bizId 业务主键(后端据此生成/复用 formInstanceId) * @param {string} [options.subjectName] 标题后缀 - * @param {string} [options.approvalStatus] 当前审批状态(驳回态会先 delete) + * @param {string} [options.approvalStatus] 当前审批状态(驳回态会先 delete;通过态强制新建实例) */ export async function submitMkApprovalFlow({ bizType, @@ -106,10 +115,13 @@ export async function submitMkApprovalFlow({ return; } const bizIdText = String(bizId); - // 先查 MK 流程实例:已有数据则不删除、不重新提交 - const existsRes = await hasMkProcessInstance({ bizId: bizIdText }); - if (existsRes?.data?.data) { - return; + const forceNewFormInstance = (conf.approved || []).includes(approvalStatus); + // 审核通过后再提交必须新建流程;其余场景已有有效实例则跳过 + if (!forceNewFormInstance) { + const existsRes = await hasMkProcessInstance({ bizId: bizIdText }); + if (existsRes?.data?.data) { + return; + } } if ((conf.rejected || []).includes(approvalStatus)) { await processDelete({ bizId: bizIdText }); @@ -123,5 +135,6 @@ export async function submitMkApprovalFlow({ bizId: bizIdText, subject, bizType, + forceNewFormInstance, }); }