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 });
|
}
|