🐛 审核通过后再提交强制新建MK表单实例

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-29 02:44:49 +08:00
parent 4641d0a5dd
commit 4418836fcd
+18 -5
View File
@@ -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,
});
}