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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
<?php
/**
* Created by PhpStorm.
* User: 王源
* Date: 2020/3/16
* Time: 15:07
*/
namespace Meibuyu\Micro\Service\Interfaces;
interface StoreServiceInterface
{
/**
* 通过id列表获取仓库名称
* @param array $idList 仓库id的列表, 默认去重
* @param array $columns 仓库表的字段,默认显示全部
* @return array 默认keyBy('id')
*/
public function getByIdList(array $idList, array $columns = ['*']): array;
/**
* description:通过产品id数组获取库存列表 给订单系统查询的接口
* author: fuyunnan
* @param array $ids 产品ids 数组
* @param int $wareId 仓库id
* @param array $notWareId 仓库id
* @return array
* @throws
* Date: 2020/7/27
*/
public function getListStock($ids, $wareId = 0, $notWareId = []): array;
/**
* description:根据筛选条件获取仓库的库存列表 对库存筛选实现大一统
* 参数格式 不需要可不传入对应的键
* $args['inTeamIds'] =[];
$args['notInTeamIds'] = [];
$args['inWhIds'] = []; //仓库id
$args['notInWhIds'] = [];
$args['inProductIds'] = [];
$args['notInProductIds'] = [];
$args['where'] = [];
$args['group'] = ['product_id'];//默认['product_id']
$args['keyBy'] = 'product_id';//默认排序
$args['isKeyBy'] = $condition['isKeyBy'] ?? true;//是否加keyBy;
$args['isGroupBy'] = $condition['isGroupBy'] ?? true;//是否加分组;
*
* author: fuyunnan
* @param array $condition 筛选条件
* @return array
* @throws
* Date: 2020/7/27
*/
public function getListStockWhere($condition): array;
/**
* description:检查是否有库存,有就返回库存数量(有记录) 给产品系统使用
* author: fuyunnan
* @param array $ids 仓库产品的id数组
* @return array
* @throws
* Date: 2020/7/31
*/
public function checkStock($ids): array;
/**
* description:创建入库单
* author: fuyunnan
* @param array $data 需要入库的数组 格式 入库添加
* *
* data[master][warehousing_date]:2020-01-08 入库时间
* data[master][creator_id]:12 创建人id
* data[master][warehouse_id]:2 仓库id
* data[master][type_id]:1 入库单类型
* data[master][source_no]:no_121333 来源单号 (选填)
* data[master][stock_up_status]:1二次质检状态 (选填)
* data[master][remark]:备注 (选填)
* data[master][status]:2 状态 (选填 不填默认1)
*
* 产品二维数组
* data[goods][0][product_id]:16 产品id
* data[goods][0][should_cnt]:133 应入数量
* data[goods][0][real_cnt]:10 实入数量
* data[goods][1][product_id]:18
* data[goods][1][should_cnt]:10
* data[goods][1][real_cnt]:15
*
* 或者参考yapi http://api.huaperfect.com/project/38/interface/api/1617
*
* @return array
* @throws
* Date: 2020/7/6
*/
public function createWarehousing(array $data): array;
/**
* description:批量创建出库单
* author: fuyunnan
* [
* 'main' => [
* 'creator_id' => 1,
* 'warehouse_id' => 1,
* 'type' => 5,
* ],
* 'products' => [
* [
* 'source_no' => 1,
* 'product_id' => 1,
* 'real_cnt' => 1
* ],
* [
* 'source_no' => 1,
* 'product_id' => 1,
* 'real_cnt' => 1
* ]
* ]
* ]
*
* @param array $attributes 提交的数组 或参考yapi http://api.huaperfect.com/project/38/interface/api/6968
* @return bool
* @throws
* Date: 2020/8/8
*/
public function createBatchWarehousing(array $attributes): bool;
/**
* description:根据入库单状态,判断是否生成出库单
* author: fuyunnan
* @param array $data 需要入库或者出库的数据
* @return bool
* @throws
* Date: 2021/5/25
*/
public function createInOrOutOrder(array $data): bool;
/**
* description:创建入库单 支持自定义 入库单状态和仓位
* author: fuyunnan
* @param array $attributes 需要入库的数组 格式请参考yapi 入库添加
* @return bool
* @throws
* Date: 2020/7/6
*/
public function createWarehousingStatus(array $attributes): bool;
/**
* description:批量创建出库单,多个仓库 直接出虚拟仓
* author: fuyunnan
* @param array $attributes 提交的数组 参考yapi http://api.huaperfect.com/project/38/interface/api/6968
* @return bool
* @throws
* Date: 2020/8/8
*/
public function createBatchWarehousingStatus(array $attributes): bool;
/**
* description:批量创建出库单,出库单直接出库
* author: fuyunnan
* @param array $attributes 提交的数组 参考yapi http://api.huaperfect.com/project/38/interface/api/6968
* @return bool
* @throws
* Date: 2020/8/8
*/
public function createBatchExComplete(array $attributes): bool;
/**
* description:批量创建入库单
* author: fuyunnan
* @param array $attributes 需要入库的数组 格式请参考yapi 入库添加
* @return bool
* @throws
* Date: 2020/7/6
*/
public function createBatchInOrder(array $attributes): bool;
/**
* description:批量创建入库单,能自定义入库单状态
* author: fuyunnan
* @param array $attributes 需要入库的数组 格式请参考yapi 入库添加
* @return bool
* @throws
* Date: 2020/7/6
*/
public function createBatchInOrderStatus(array $attributes): bool;
/**
* description:生产单结束获取统计单号值
* author: fuyunnan
* @param string $sourceNo 生产单号
* @return array
* @throws
* Date: 2020/7/10
*/
public function CntSourceNoOrder($sourceNo): array;
/**
* description:通过来源单号获取产品列表
* author: fuyunnan
* @param string $sourceNo 生产单号
* @return array
* @throws
* Date: 2020/7/10
*/
public function listSourceNoProduct($sourceNo): array;
/**
* description:根据来源单号,获取分组后的入库单
* author: fuyunnan
* @param array $sourceNoList 单号列表
* @param array $where 刷选列表
* @return array
* @throws
* Date: 2020/7/11
*/
public function listGroupOrder($sourceNoList, $where = []): array;
/**
* description:根据条件查询入库单信息
* author: fuyunnan
* 参数注意 必须这样传!!!
* $condition = [
* 'warehousing_order_ids' =>$ids 可选 入库单ids数组
* ]
* @param array $condition 条件
* @return array
* @throws
* Date: 2020/7/11
*/
public function getListInOrder($condition): array;
/**
* description:通过入库单id数组获取产品列表
* author: fuyunnan
* @param array $ids 入库单ids 数组
* @return array
* @throws
* Date: 2020/7/10
*/
public function listIdsProduct($ids): array;
/**
* description:修改二次质检状态
* author: fuyunnan
* @param int $orderId 入库单id
* @param array $update 修改数组
* @return int
* @throws
* Date: 2020/7/14
*/
public function updateQualityStatus($orderId, $update): int;
/**
* description:修改二次质检状态
* author: fuyunnan
* @param array $orderIds 入库单id数组
* @param array $update 修改数组
* @return int
* @throws
* Date: 2020/7/14
*/
public function updateListQualityStatus($orderIds, $update): int;
/**
* description:出库单 恢复库存 出库单定为已取消
* author: fuyunnan
* @param array $sourceNo 来源单号数组
* @return int
* @throws
* Date: 2020/9/7
*/
public function restoreStock($sourceNo): int;
/**
* description:通过出库来源单号获取-对应的信息
* author: fuyunnan
* @param array $sources 来源单号数组
* @param array $status 出库单状态
* @param array $where 查询条件数组
* @return array
* @throws
* Date: 2020/11/5
*/
public function getByExSourceList($sources, $status = [], $where = []): array;
/**
* description:自动返回匹配的符合当前sku
* author: fuyunnan
* @param array $data sku数组
* @return array
* @throws
* Date: 2020/11/25
*/
public function autoSkuStock($data): array;
/**
* description:订单通知取消更改字段 不在生成出库单
* author: fuyunnan
* @param string $sourceNos 来源单号
* @param array $field 修改字段
* @return int
* @throws
* Date: 2020/12/14
*/
public function cancelOrderDeliver($sourceNos, $field): int;
}