liu
3 天以前 91eff4781fa4142d1f62d30a0fa1de5cae424eaf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import type { PageParam, PageResult } from '@vben/request';
 
import { requestClient } from '#/api/request';
 
export namespace ErpPurchaseRequestApi {
  /** 采购申请信息 */
  export interface PurchaseRequest {
    id?: number; // 编号
    no?: string; // 申请编号
    status?: number; // 状态:0未提交 10审批中 20审核通过 30审核不通过 40已取消
    requestUserId?: number; // 申请人编号
    requestUserName?: string; // 申请人名称
    requestDeptId?: number; // 申请部门编号
    requestDeptName?: string; // 申请部门名称
    requestTime: string; // 申请时间
    requestReason?: string; // 申请理由
    supplierId?: number; // 供应商编号
    supplierName?: string; // 供应商名称
    discountPercent?: number; // 优惠率
    attachmentList?: { id: number; name?: string; url?: string }[]; // 附件列表
    remark?: string; // 备注
    totalCount?: number; // 总数量
    totalPrice?: number; // 总金额
    productNames?: string; // 产品名称列表
    orderId?: number; // 生成的采购订单编号
    orderNo?: string; // 生成的采购订单号
    // ========== 审批信息(轻量级状态机审批) ==========
    reviewerId?: number; // 审核人编号
    reviewerName?: string; // 审核人姓名
    reviewTime?: Date | string; // 审核时间
    reviewRemark?: string; // 审核意见(不通过时为驳回原因)
    items?: PurchaseRequestItem[]; // 申请明细
    createTime?: string; // 创建时间
  }
 
  /** 采购申请明细 */
  export interface PurchaseRequestItem {
    id?: number; // 编号
    productId: number; // 产品编号
    productName?: string; // 产品名称
    productUnitId?: number; // 产品单位编号
    productUnitName?: string; // 产品单位名称
    productBarCode?: string; // 产品条码
    productPrice?: number; // 产品单价(参考价)
    count: number; // 数量
    taxPercent?: number; // 税率
    demandTime?: string; // 需求日期
    remark?: string; // 备注
  }
}
 
/** 创建采购申请 */
export function createPurchaseRequest(data: ErpPurchaseRequestApi.PurchaseRequest) {
  return requestClient.post('/purchase/request/create', data);
}
 
/** 更新采购申请 */
export function updatePurchaseRequest(data: ErpPurchaseRequestApi.PurchaseRequest) {
  return requestClient.put('/purchase/request/update', data);
}
 
/**
 * 提交审批(未提交/审核不通过 → 审批中)
 *
 * 审批人由「系统管理 - 审批配置」统一配置,提交时无需指定。
 */
export function submitPurchaseRequest(id: number) {
  return requestClient.put('/purchase/request/submit', null, {
    params: { id },
  });
}
 
/** 获得审批人编号集合,供列表页判断是否展示审核按钮 */
export function getPurchaseRequestApproverUserIds() {
  return requestClient.get<number[]>('/purchase/request/approver-ids');
}
 
/**
 * 审核(审批中 → 审核通过/审核不通过)
 *
 * 仅审批配置中指定的审批人本人可调用;pass=false 时 reviewRemark(不通过原因)必填。
 */
export function auditPurchaseRequest(
  id: number,
  pass: boolean,
  reviewRemark?: string,
) {
  return requestClient.put('/purchase/request/audit', {
    id,
    pass,
    reviewRemark,
  });
}
 
/** 生成采购订单 */
export function generatePurchaseOrder(id: number, supplierId: number) {
  return requestClient.post<number>('/purchase/request/generate-order', null, { params: { id, supplierId } });
}
 
/** 删除采购申请 */
export function deletePurchaseRequest(ids: number[]) {
  return requestClient.delete('/purchase/request/delete', { params: { ids: ids.join(',') } });
}
 
/** 获取采购申请详情 */
export function getPurchaseRequest(id: number) {
  return requestClient.get<ErpPurchaseRequestApi.PurchaseRequest>(
    `/purchase/request/get?id=${id}`,
  );
}
 
/** 获取采购申请分页 */
export function getPurchaseRequestPage(params: PageParam) {
  return requestClient.get<PageResult<ErpPurchaseRequestApi.PurchaseRequest>>(
    '/purchase/request/page',
    { params },
  );
}
 
/** 导出采购申请 Excel */
export function exportPurchaseRequest(params: any) {
  return requestClient.download('/purchase/request/export-excel', { params });
}