10 小时以前 08bb5d242135e2c1f0fc17d2b5f7ae548275a3a2
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
import type { PageParam, PageResult } from '@vben/request';
 
import { requestClient } from '#/api/request';
import type { MesProBagCodeApi } from '#/api/mes/pro/bagCode';
 
export namespace MesProPalletApi {
  /** 托盘码 */
  export interface Pallet {
    id?: number; // 编号
    code?: string; // 托盘码(绑定批次后生成)
    tempCode?: string; // 临时托盘码(预生成二维码阶段使用,扫码追溯兼容)
    batchId?: number; // 生产批次编号
    batchCode?: string; // 批次号
    palletNo?: number; // 批次内托盘序号
    capacity?: number; // 可装袋数(袋/托盘)
    bagCount?: number; // 已绑定袋码数量
    status?: number; // 状态(字典 mes_pro_pallet_status)
    remark?: string; // 备注
    createTime?: string; // 创建时间
  }
 
  /** 托盘码分页查询参数 */
  export interface PageParams extends PageParam {
    code?: string;
    tempCode?: string;
    batchId?: number;
    batchCode?: string;
    status?: number;
    createTime?: string[];
  }
 
  /** 托盘码扫码追溯 */
  export interface PalletTrace {
    id?: number; // 编号
    code?: string; // 托盘码(绑定批次后的正式托盘码)
    tempCode?: string; // 临时托盘码(二维码内容;未绑定批次时展示)
    palletNo?: number; // 批次内托盘序号
    capacity?: number; // 可装袋数
    bagCount?: number; // 已绑定袋码数量
    status?: number; // 状态(字典 mes_pro_pallet_status)
    batchId?: number; // 生产批次编号
    batchCode?: string; // 批次号
    remark?: string; // 备注
    batchStatus?: number; // 批次状态
    produceDate?: string; // 生产日期
    lineCode?: string; // 产线编码
    lineName?: string; // 产线名称
    ownerUserId?: number; // 责任人编号
    ownerUserName?: string; // 责任人昵称
    itemId?: number; // 品种(物料)编号
    itemCode?: string; // 品种编码
    itemName?: string; // 品种名称
    itemSpecification?: string; // 品种规格
    bags?: MesProBagCodeApi.BagCode[]; // 该托盘绑定的袋码列表
  }
 
  /** 批量生成请求 */
  export interface BatchCreateParams {
    batchId: number; // 生产批次编号
    count: number; // 生成数量
    capacity?: number; // 可装袋数
    remark?: string; // 备注
  }
 
  /** 预生成托盘二维码返回项 */
  export interface PreGenerateResult {
    id: number; // 托盘码编号
    tempCode: string; // 临时托盘码(二维码内容)
  }
}
 
/** 批量生成托盘码(返回生成的托盘编号列表) */
export function batchCreatePallet(data: MesProPalletApi.BatchCreateParams) {
  return requestClient.post<number[]>('/mes/pro/pallet/batch-create', data);
}
 
/** 预生成托盘临时二维码(不绑定生产批次) */
export function preGeneratePallet(data: {
  count: number;
  capacity?: number;
  remark?: string;
}) {
  return requestClient.post<MesProPalletApi.PreGenerateResult[]>(
    '/mes/pro/pallet/pre-generate',
    data,
  );
}
 
/** 托盘码绑定生产批次(生成正式托盘码) */
export function bindPalletBatch(data: { ids: number[]; batchId: number }) {
  return requestClient.put('/mes/pro/pallet/bind-batch', data);
}
 
/** 删除托盘码 */
export function deletePallet(id: number) {
  return requestClient.delete(`/mes/pro/pallet/delete?id=${id}`);
}
 
/** 查询托盘码详情 */
export function getPallet(id: number) {
  return requestClient.get<MesProPalletApi.Pallet>(
    `/mes/pro/pallet/get?id=${id}`,
  );
}
 
/** 查询托盘码分页 */
export function getPalletPage(params: MesProPalletApi.PageParams) {
  return requestClient.get<PageResult<MesProPalletApi.Pallet>>(
    '/mes/pro/pallet/page',
    { params },
  );
}
 
/** 查询批次的托盘码列表(供下拉选择) */
export function getPalletSimpleList(batchId: number) {
  return requestClient.get<MesProPalletApi.Pallet[]>(
    `/mes/pro/pallet/simple-list?batchId=${batchId}`,
  );
}
 
/** 导出托盘码 Excel */
export function exportPalletExcel(params: MesProPalletApi.PageParams) {
  return requestClient.download('/mes/pro/pallet/export-excel', { params });
}
 
/** 扫码追溯:根据托盘码(二维码内容)反查批次、品种、责任人及袋码列表 */
export function getPalletByCode(code: string) {
  return requestClient.get<MesProPalletApi.PalletTrace>(
    `/mes/pro/pallet/get-by-code?code=${encodeURIComponent(code)}`,
  );
}
 
/** 批量导出某批次的托盘码二维码图片 ZIP */
export function exportPalletQr(batchId: number) {
  return requestClient.download(`/mes/pro/pallet/export-qr?batchId=${batchId}`);
}
 
/** 按托盘码编号列表批量导出二维码图片 ZIP */
export function exportPalletQrByIds(ids: number[]) {
  return requestClient.download('/mes/pro/pallet/export-qr-by-ids', {
    method: 'POST',
    data: { ids },
  });
}