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

namespace Meibuyu\Micro\Service\Interfaces;

王源's avatar
王源 committed
11 12 13 14
/**
 * @deprecated 此接口废弃,在之后的版本会被删除
 * 请引入meibuyu/rpc组件,使用Meibuyu\Rpc\Service\Interfaces\Store\StoreServiceInterface
 */
15 16
interface StoreServiceInterface
{
17 18 19 20 21 22 23
    /**
     * 通过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
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
    /**
     * 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;
fuyunnan's avatar
fuyunnan committed
69 70 71 72

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

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

130

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

141

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

152 153 154 155 156 157 158 159 160 161 162 163 164

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



165 166 167 168 169 170 171 172 173
    /**
     * 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;
174

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

185 186 187 188 189 190 191 192 193 194 195

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

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

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

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

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

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

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

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

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

fuyunnan's avatar
fuyunnan committed
283 284 285 286 287 288 289 290 291 292 293 294
    /**
     * 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
295 296 297 298 299 300 301 302
    /**
     * description:自动返回匹配的符合当前sku
     * author: fuyunnan
     * @param array $data sku数组
     * @return array
     * @throws
     * Date: 2020/11/25
     */
303
    public function autoSkuStock($data): array;
304 305 306 307 308 309 310 311 312
    /**
     * description:订单通知取消更改字段 不在生成出库单
     * author: fuyunnan
     * @param string $sourceNos 来源单号
     * @param array $field 修改字段
     * @return int
     * @throws
     * Date: 2020/12/14
     */
313
    public function cancelOrderDeliver($sourceNos, $field): int;
王源's avatar
王源 committed
314
}