gaoluyang
2026-08-31 8f8dcdae7e40ba4e94a363aa8eb91c7665810bc3
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 MesWmProductReceiptApi {
  /** MES 产品入库单 */
  export interface ProductReceipt {
    id?: number; // 入库单编号
    code?: string; // 入库单编码
    name?: string; // 入库单名称
    workOrderId?: number; // 生产订单编号
    workOrderCode?: string; // 生产订单编码
    itemId?: number; // 产品物料编号
    itemCode?: string; // 产品物料编码
    itemName?: string; // 产品物料名称
    specification?: string; // 规格型号
    unitMeasureName?: string; // 单位
    receiptDate?: number; // 入库日期
    status?: number; // 单据状态
    remark?: string; // 备注
    feedbackId?: number; // 来源报工编号(非空表示由报工自动生成)
    createTime?: Date; // 创建时间
  }
 
  /** 上架分配明细 */
  export interface StockDetail {
    warehouseId: number; // 仓库编号
    locationId: number; // 库区编号
    areaId: number; // 库位编号
    quantity: number; // 分配数量
  }
 
  /** 上架行 */
  export interface StockRow {
    lineId: number; // 入库单行编号
    isStock: boolean; // 是否入库
    details?: StockDetail[]; // isStock=true 时的仓库/库区/库位分配
  }
 
  /** 批量上架请求 */
  export interface StockRequest {
    receiptId: number; // 产品入库单编号
    rows: StockRow[]; // 行上架列表
  }
}
 
/** 查询产品入库单分页 */
export function getProductReceiptPage(params: PageParam) {
  return requestClient.get<PageResult<MesWmProductReceiptApi.ProductReceipt>>(
    '/mes/wm/product-receipt/page',
    { params },
  );
}
 
/** 查询产品入库单详情 */
export function getProductReceipt(id: number) {
  return requestClient.get<MesWmProductReceiptApi.ProductReceipt>(
    `/mes/wm/product-receipt/get?id=${id}`,
  );
}
 
/** 新增产品入库单 */
export function createProductReceipt(
  data: MesWmProductReceiptApi.ProductReceipt,
) {
  return requestClient.post<number>('/mes/wm/product-receipt/create', data);
}
 
/** 修改产品入库单 */
export function updateProductReceipt(
  data: MesWmProductReceiptApi.ProductReceipt,
) {
  return requestClient.put('/mes/wm/product-receipt/update', data);
}
 
/** 删除产品入库单 */
export function deleteProductReceipt(id: number) {
  return requestClient.delete(`/mes/wm/product-receipt/delete?id=${id}`);
}
 
/** 提交产品入库单 */
export function submitProductReceipt(id: number) {
  return requestClient.put(`/mes/wm/product-receipt/submit?id=${id}`);
}
 
/** 执行上架 */
export function stockProductReceipt(id: number) {
  return requestClient.put(`/mes/wm/product-receipt/stock?id=${id}`);
}
 
/** 执行入库 */
export function finishProductReceipt(id: number) {
  return requestClient.put(`/mes/wm/product-receipt/finish?id=${id}`);
}
 
/** 取消产品入库单 */
export function cancelProductReceipt(id: number) {
  return requestClient.put(`/mes/wm/product-receipt/cancel?id=${id}`);
}
 
/** 校验产品入库单明细数量是否与行收货数量一致 */
export function checkProductReceiptQuantity(id: number) {
  return requestClient.get<boolean>(
    `/mes/wm/product-receipt/check-quantity?id=${id}`,
  );
}
 
/** 批量上架(勾选是否入库 + 分配仓库/库区/库位数量) */
export function submitProductReceiptStock(
  data: MesWmProductReceiptApi.StockRequest,
) {
  return requestClient.post<boolean>(
    '/mes/wm/product-receipt/submit-stock',
    data,
  );
}
 
/** 导出产品入库单 */
export function exportProductReceipt(params: any) {
  return requestClient.download('/mes/wm/product-receipt/export-excel', {
    params,
  });
}