| | |
| | | export function getApproveProcessList(id: number) { |
| | | return requestClient.get(`/erp/purchase-request/approve-process-list`, { params: { id } }); |
| | | } |
| | | |
| | | /** BPM 流程实例状态 → 业务状态映射 */ |
| | | export const BPM_STATUS_TO_BIZ: Record<number, number> = { |
| | | 1: 10, // RUNNING → 审批中 |
| | | 2: 20, // APPROVE → 审核通过 |
| | | 3: 30, // REJECT → 审核不通过 |
| | | 4: 40, // CANCEL → 已取消 |
| | | }; |
| | | |
| | | /** |
| | | * 同步采购申请的业务状态(根据 BPM 流程实例实际状态) |
| | | * 用于修复后端监听器未正确回写导致的业务状态不一致问题 |
| | | */ |
| | | export async function syncPurchaseRequestStatus(items: ErpPurchaseRequestApi.PurchaseRequest[]) { |
| | | const processingItems = items.filter( |
| | | (item) => item.status === 10 && item.processInstanceId, |
| | | ); |
| | | if (processingItems.length === 0) return; |
| | | |
| | | const { getApprovalDetail } = await import('#/api/bpm/processInstance'); |
| | | for (const item of processingItems) { |
| | | try { |
| | | const detail = await getApprovalDetail({ |
| | | processInstanceId: item.processInstanceId, |
| | | }); |
| | | const bizStatus = BPM_STATUS_TO_BIZ[detail.processInstance?.status]; |
| | | if (bizStatus && bizStatus !== 10) { |
| | | item.status = bizStatus; |
| | | } |
| | | } catch { |
| | | // 查询失败时保持原有状态 |
| | | } |
| | | } |
| | | } |