StoreServiceInterface.php 9.8 KB
Newer Older
1 2 3 4 5 6 7 8
<?php
/**
 * Created by PhpStorm.
 * User: 王源
 * Date: 2020/3/16
 * Time: 15:07
 */

9
namespace Meibuyu\Rpc\Service\Interfaces\Store;
10 11 12

interface StoreServiceInterface
{
13 14 15 16 17 18 19
    /**
     * 通过id列表获取仓库名称
     * @param array $idList 仓库id的列表, 默认去重
     * @param array $columns 仓库表的字段,默认显示全部
     * @return array 默认keyBy('id')
     */
    public function getByIdList(array $idList, array $columns = ['*']): array;
fuyunnan's avatar
fuyunnan committed
20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
    /**
     * 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'] =[];
37 38 39 40 41 42 43 44 45 46
     * $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;//是否加分组;
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
     *
     * 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;
fuyunnan's avatar
fuyunnan committed
65 66 67 68

    /**
     * description:创建入库单
     * author: fuyunnan
69 70
     * @param array $data 需要入库的数组 格式 入库添加
     * *
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
     * 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
87 88 89
     *
     * 或者参考yapi  http://api.huaperfect.com/project/38/interface/api/1617
     *
fuyunnan's avatar
fuyunnan committed
90
     * @return array
fuyunnan's avatar
fuyunnan committed
91 92 93
     * @throws
     * Date: 2020/7/6
     */
fuyunnan's avatar
fuyunnan committed
94
    public function createWarehousing(array $data): array;
95

96 97 98 99
    /**
     * description:批量创建出库单
     * author: fuyunnan
     * [
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
     * '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
     * ]
     * ]
     * ]
118 119
     *
     * @param array $attributes 提交的数组  或参考yapi http://api.huaperfect.com/project/38/interface/api/6968
120
     * @return bool
121 122 123
     * @throws
     * Date: 2020/8/8
     */
124
    public function createBatchWarehousing(array $attributes): bool;
125

126

符运喃's avatar
符运喃 committed
127 128 129 130 131 132 133 134 135 136
    /**
     * description:根据入库单状态,判断是否生成出库单
     * author: fuyunnan
     * @param array $data 需要入库或者出库的数据
     * @return bool
     * @throws
     * Date: 2021/5/25
     */
    public function createInOrOutOrder(array $data): bool;

137

符运喃's avatar
符运喃 committed
138 139 140 141 142 143 144 145 146 147
    /**
     * description:创建入库单 支持自定义 入库单状态和仓位
     * author: fuyunnan
     * @param array $attributes 需要入库的数组 格式请参考yapi 入库添加
     * @return bool
     * @throws
     * Date: 2020/7/6
     */
    public function createWarehousingStatus(array $attributes): bool;

148 149 150 151 152 153 154 155 156 157 158 159

    /**
     * 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;


160 161 162 163 164 165 166 167 168
    /**
     * 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;
169

fuyunnan's avatar
fuyunnan committed
170 171 172 173 174 175 176 177 178 179
    /**
     * description:批量创建入库单
     * author: fuyunnan
     * @param array $attributes 需要入库的数组 格式请参考yapi 入库添加
     * @return bool
     * @throws
     * Date: 2020/7/6
     */
    public function createBatchInOrder(array $attributes): bool;

180 181 182 183 184 185 186 187 188 189 190

    /**
     * description:批量创建入库单,能自定义入库单状态
     * author: fuyunnan
     * @param array $attributes 需要入库的数组 格式请参考yapi 入库添加
     * @return bool
     * @throws
     * Date: 2020/7/6
     */
    public function createBatchInOrderStatus(array $attributes): bool;

191 192 193 194 195 196 197 198
    /**
     * description:生产单结束获取统计单号值
     * author: fuyunnan
     * @param string $sourceNo 生产单号
     * @return array
     * @throws
     * Date: 2020/7/10
     */
fuyunnan's avatar
fuyunnan committed
199
    public function CntSourceNoOrder($sourceNo): array;
200 201 202 203 204 205 206 207 208

    /**
     * description:通过来源单号获取产品列表
     * author: fuyunnan
     * @param string $sourceNo 生产单号
     * @return array
     * @throws
     * Date: 2020/7/10
     */
fuyunnan's avatar
fuyunnan committed
209 210
    public function listSourceNoProduct($sourceNo): array;

fuyunnan's avatar
fuyunnan committed
211 212 213 214
    /**
     * description:根据来源单号,获取分组后的入库单
     * author: fuyunnan
     * @param array $sourceNoList 单号列表
fuyunnan's avatar
fuyunnan committed
215
     * @param array $where 刷选列表
fuyunnan's avatar
fuyunnan committed
216 217 218 219
     * @return array
     * @throws
     * Date: 2020/7/11
     */
fuyunnan's avatar
fuyunnan committed
220
    public function listGroupOrder($sourceNoList, $where = []): array;
fuyunnan's avatar
fuyunnan committed
221

222 223 224
    /**
     * description:根据条件查询入库单信息
     * author: fuyunnan
fuyunnan's avatar
fuyunnan committed
225
     *  参数注意 必须这样传!!!
符运喃's avatar
符运喃 committed
226 227 228
     * $condition = [
     * 'warehousing_order_ids' =>$ids 可选  入库单ids数组
     * ]
229 230 231 232 233 234
     * @param array $condition 条件
     * @return array
     * @throws
     * Date: 2020/7/11
     */
    public function getListInOrder($condition): array;
fuyunnan's avatar
fuyunnan committed
235

fuyunnan's avatar
fuyunnan committed
236 237 238 239 240 241 242 243
    /**
     * description:通过入库单id数组获取产品列表
     * author: fuyunnan
     * @param array $ids 入库单ids 数组
     * @return array
     * @throws
     * Date: 2020/7/10
     */
fuyunnan's avatar
fuyunnan committed
244
    public function listIdsProduct($ids): array;
fuyunnan's avatar
fuyunnan committed
245

fuyunnan's avatar
fuyunnan committed
246 247 248
    /**
     * description:修改二次质检状态
     * author: fuyunnan
fuyunnan's avatar
fuyunnan committed
249 250
     * @param int $orderId 入库单id
     * @param array $update 修改数组
fuyunnan's avatar
fuyunnan committed
251 252 253 254
     * @return int
     * @throws
     * Date: 2020/7/14
     */
fuyunnan's avatar
fuyunnan committed
255
    public function updateQualityStatus($orderId, $update): int;
fuyunnan's avatar
fuyunnan committed
256

257 258 259
    /**
     * description:修改二次质检状态
     * author: fuyunnan
260
     * @param array $orderIds 入库单id数组
261 262 263 264 265 266 267
     * @param array $update 修改数组
     * @return int
     * @throws
     * Date: 2020/7/14
     */
    public function updateListQualityStatus($orderIds, $update): int;

268 269 270
    /**
     * description:出库单 恢复库存 出库单定为已取消
     * author: fuyunnan
271
     * @param array $sourceNo 来源单号数组
272 273 274 275 276
     * @return int
     * @throws
     * Date: 2020/9/7
     */
    public function restoreStock($sourceNo): int;
王源's avatar
王源 committed
277

fuyunnan's avatar
fuyunnan committed
278 279 280 281 282 283 284 285 286 287 288 289
    /**
     * 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;

fuyunnan's avatar
fuyunnan committed
290 291 292 293 294 295 296 297
    /**
     * description:自动返回匹配的符合当前sku
     * author: fuyunnan
     * @param array $data sku数组
     * @return array
     * @throws
     * Date: 2020/11/25
     */
298
    public function autoSkuStock($data): array;
299

300 301 302 303 304 305 306 307 308
    /**
     * description:订单通知取消更改字段 不在生成出库单
     * author: fuyunnan
     * @param string $sourceNos 来源单号
     * @param array $field 修改字段
     * @return int
     * @throws
     * Date: 2020/12/14
     */
309
    public function cancelOrderDeliver($sourceNos, $field): int;
姜克保's avatar
姜克保 committed
310 311 312 313 314 315

    /**
     * 通过仓库区域id获取仓库区域信息
     * @param array $ids
     * @return array
     */
姜克保's avatar
姜克保 committed
316
    public function getWarehouseAreaByIdList(array $ids = []): array;
317 318 319 320 321 322 323 324

    /**
     * 获取样品仓库列表
     *
     * @param array $columns 字段数组
     * @return array
     */
    public function getSampleWarehouseList(array $columns = ['id', 'name']): array;
325 326 327 328 329 330 331 332


    /**
     * 备货发货接收对应的明细数据
     * @param array $params
     * @return array
     */
    public function stockUpDeliveryDispatched(array $params): array;
333 334 335 336 337 338 339

    /**
     * 取消备货发货记录
     * @param array $params
     * @return array
     */
    public function cancelStockUpDelivery(array $params): array;
340 341 342 343 344 345 346 347 348


    /**
     * 备货相关异常接收对应的指令
     * @param $commandType
     * @param $payload
     * @return mixed
     */
    public function receiveCommand4StockUp($commandType, $payload);
王源's avatar
王源 committed
349
}