新增手动拉取钉钉审批结果功能,支持强制重跑集成,优化审批台账管理。涉及多个文件的更新,包括API接口、服务逻辑及前端页面。

This commit is contained in:
geht
2026-07-30 16:58:10 +08:00
parent 7a9c19e4f3
commit 3f22eb346e
10 changed files with 299 additions and 16 deletions

View File

@@ -4,6 +4,7 @@ enum Api {
list = '/xslmes/mesXslApprovalRecord/list',
queryById = '/xslmes/mesXslApprovalRecord/queryById',
exportXls = '/xslmes/mesXslApprovalRecord/exportXls',
pullDingResult = '/xslmes/mesXslApprovalRecord/pullDingResult',
}
export const getExportUrl = Api.exportXls;
@@ -11,3 +12,7 @@ export const getExportUrl = Api.exportXls;
export const list = (params) => defHttp.get({ url: Api.list, params });
export const queryById = (params: { id: string }) => defHttp.get({ url: Api.queryById, params });
/** 手动拉取钉钉审批结果并强制重跑集成含钉钉API与多节点集成超时放宽 */
export const pullDingResult = (params: { id: string }) =>
defHttp.post({ url: Api.pullDingResult, params, timeout: 120 * 1000 }, { joinParamsToUrl: true });

View File

@@ -19,6 +19,16 @@
onClick: handleDetail.bind(null, record),
auth: 'xslmes:mes_xsl_approval_record:list',
},
{
label: '拉取钉钉结果',
color: 'success',
ifShow: record.channel === 'DINGTALK' && !!record.externalInstanceId,
popConfirm: {
title: '将拉取钉钉最新审批结果并强制重跑集成方案,确认继续?',
confirm: handlePullDingResult.bind(null, record),
},
auth: 'xslmes:mes_xsl_approval_record:list',
},
{
label: '补发IM卡片',
color: 'warning',
@@ -43,7 +53,7 @@
import { useListPage } from '/@/hooks/system/useListPage';
import MesXslApprovalRecordDetailModal from './components/MesXslApprovalRecordDetailModal.vue';
import { columns, searchFormSchema } from './MesXslApprovalRecord.data';
import { list, getExportUrl } from './MesXslApprovalRecord.api';
import { list, getExportUrl, pullDingResult } from './MesXslApprovalRecord.api';
import { resendApprovalCard } from '/@/views/approval/flow/approvalHandle.api';
import { useMessage } from '/@/hooks/web/useMessage';
@@ -63,7 +73,7 @@
showAdvancedButton: true,
},
actionColumn: {
width: 180,
width: 280,
fixed: 'right',
},
},
@@ -73,7 +83,7 @@
},
});
const [registerTable] = tableContext;
const [registerTable, { reload }] = tableContext;
function handleDetail(record: Recordable) {
openModal(true, { record });
@@ -87,4 +97,17 @@
createMessage.error(e?.message || '补发失败');
}
}
async function handlePullDingResult(record: Recordable) {
const hide = createMessage.loading('正在拉取钉钉结果并重跑集成,请稍候…', 0);
try {
const msg = await pullDingResult({ id: record.id });
createMessage.success(msg || '拉取并重跑完成');
reload();
} catch (e: any) {
createMessage.error(e?.message || '拉取钉钉结果失败');
} finally {
hide();
}
}
</script>