✨ 多业务接入MK审核流,提交改传bizId并由后端生成表单实例
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+32
-10
@@ -18,11 +18,6 @@ export const MK_BIZ = {
|
||||
subjectPrefix: '合同审批',
|
||||
rejected: ['rejected', 'change_rejected', 'withdrawn'],
|
||||
},
|
||||
'waybill-manage': {
|
||||
dictName: '提交运单审核流',
|
||||
subjectPrefix: '运单审批',
|
||||
rejected: ['rejected', 'returned'],
|
||||
},
|
||||
'pre-settlement': {
|
||||
dictName: '提交预结算审核流',
|
||||
subjectPrefix: '预结算审批',
|
||||
@@ -38,6 +33,21 @@ export const MK_BIZ = {
|
||||
subjectPrefix: '付款审批',
|
||||
rejected: ['returned'],
|
||||
},
|
||||
'invoice-application': {
|
||||
dictName: '提交开票审核流',
|
||||
subjectPrefix: '开票审批',
|
||||
rejected: ['returned'],
|
||||
},
|
||||
'invoice-receipt': {
|
||||
dictName: '提交收票审核流',
|
||||
subjectPrefix: '收票审批',
|
||||
rejected: ['returned'],
|
||||
},
|
||||
'bill-payment': {
|
||||
dictName: '提交汇票付款审核流',
|
||||
subjectPrefix: '汇票付款审批',
|
||||
rejected: ['returned'],
|
||||
},
|
||||
};
|
||||
|
||||
const MK_SWITCH_NAME = '开启MK';
|
||||
@@ -70,9 +80,17 @@ export async function resolveMkTemplateCode(dictName, list) {
|
||||
return String(templateCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交 MK 审核流
|
||||
* @param {Object} options
|
||||
* @param {string} options.bizType 业务类型
|
||||
* @param {string|number} options.bizId 业务主键(后端据此生成/复用 formInstanceId)
|
||||
* @param {string} [options.subjectName] 标题后缀
|
||||
* @param {string} [options.approvalStatus] 当前审批状态(驳回态会先 delete)
|
||||
*/
|
||||
export async function submitMkApprovalFlow({
|
||||
bizType,
|
||||
formInstanceId,
|
||||
bizId,
|
||||
subjectName = '',
|
||||
approvalStatus = '',
|
||||
}) {
|
||||
@@ -80,25 +98,29 @@ export async function submitMkApprovalFlow({
|
||||
if (!conf) {
|
||||
return Promise.reject(new Error(`不支持的MK业务类型:${bizType}`));
|
||||
}
|
||||
if (bizId == null || bizId === '') {
|
||||
return Promise.reject(new Error('业务id不能为空'));
|
||||
}
|
||||
const list = await loadMkTemplateList();
|
||||
if (!isMkEnabled(list)) {
|
||||
return;
|
||||
}
|
||||
const bizIdText = String(bizId);
|
||||
// 先查 MK 流程实例:已有数据则不删除、不重新提交
|
||||
const existsRes = await hasMkProcessInstance({ bizId: String(formInstanceId) });
|
||||
const existsRes = await hasMkProcessInstance({ bizId: bizIdText });
|
||||
if (existsRes?.data?.data) {
|
||||
return;
|
||||
}
|
||||
if ((conf.rejected || []).includes(approvalStatus)) {
|
||||
await processDelete({ formInstanceId: String(formInstanceId) });
|
||||
await processDelete({ bizId: bizIdText });
|
||||
}
|
||||
const templateCode = await resolveMkTemplateCode(conf.dictName, list);
|
||||
const subject = subjectName
|
||||
? `${conf.subjectPrefix}:${subjectName}`
|
||||
: `${conf.subjectPrefix}:${formInstanceId}`;
|
||||
: `${conf.subjectPrefix}:${bizIdText}`;
|
||||
return processSubmit({
|
||||
templateCode,
|
||||
formInstanceId: String(formInstanceId),
|
||||
bizId: bizIdText,
|
||||
subject,
|
||||
bizType,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user