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

namespace Meibuyu\Micro\Service\Interfaces;

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 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
    /**
     * 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
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 127 128 129 130 131 132 133 134
    /**
     * 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;
135

fuyunnan's avatar
fuyunnan committed
136 137 138 139 140 141 142 143 144 145
    /**
     * description:批量创建入库单
     * author: fuyunnan
     * @param array $attributes 需要入库的数组 格式请参考yapi 入库添加
     * @return bool
     * @throws
     * Date: 2020/7/6
     */
    public function createBatchInOrder(array $attributes): bool;

146 147 148 149 150 151 152 153
    /**
     * description:生产单结束获取统计单号值
     * author: fuyunnan
     * @param string $sourceNo 生产单号
     * @return array
     * @throws
     * Date: 2020/7/10
     */
fuyunnan's avatar
fuyunnan committed
154
    public function CntSourceNoOrder($sourceNo): array;
155 156 157 158 159 160 161 162 163

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

fuyunnan's avatar
fuyunnan committed
166 167 168 169
    /**
     * description:根据来源单号,获取分组后的入库单
     * author: fuyunnan
     * @param array $sourceNoList 单号列表
fuyunnan's avatar
fuyunnan committed
170
     * @param array $where 刷选列表
fuyunnan's avatar
fuyunnan committed
171 172 173 174
     * @return array
     * @throws
     * Date: 2020/7/11
     */
fuyunnan's avatar
fuyunnan committed
175
    public function listGroupOrder($sourceNoList, $where = []): array;
fuyunnan's avatar
fuyunnan committed
176

177 178 179
    /**
     * description:根据条件查询入库单信息
     * author: fuyunnan
fuyunnan's avatar
fuyunnan committed
180
     *  参数注意 必须这样传!!!
181 182 183
                     * $condition = [
                     * 'warehousing_order_ids' =>$ids 可选  入库单ids数组
                     * ]
184 185 186 187 188 189
     * @param array $condition 条件
     * @return array
     * @throws
     * Date: 2020/7/11
     */
    public function getListInOrder($condition): array;
fuyunnan's avatar
fuyunnan committed
190

fuyunnan's avatar
fuyunnan committed
191 192 193 194 195 196 197 198
    /**
     * description:通过入库单id数组获取产品列表
     * author: fuyunnan
     * @param array $ids 入库单ids 数组
     * @return array
     * @throws
     * Date: 2020/7/10
     */
fuyunnan's avatar
fuyunnan committed
199
    public function listIdsProduct($ids): array;
fuyunnan's avatar
fuyunnan committed
200

fuyunnan's avatar
fuyunnan committed
201 202 203
    /**
     * description:修改二次质检状态
     * author: fuyunnan
fuyunnan's avatar
fuyunnan committed
204 205
     * @param int $orderId 入库单id
     * @param array $update 修改数组
fuyunnan's avatar
fuyunnan committed
206 207 208 209
     * @return int
     * @throws
     * Date: 2020/7/14
     */
fuyunnan's avatar
fuyunnan committed
210
    public function updateQualityStatus($orderId, $update): int;
fuyunnan's avatar
fuyunnan committed
211

212 213 214
    /**
     * description:修改二次质检状态
     * author: fuyunnan
215
     * @param array $orderIds 入库单id数组
216 217 218 219 220 221 222
     * @param array $update 修改数组
     * @return int
     * @throws
     * Date: 2020/7/14
     */
    public function updateListQualityStatus($orderIds, $update): int;

223 224 225
    /**
     * description:出库单 恢复库存 出库单定为已取消
     * author: fuyunnan
226
     * @param array $sourceNo 来源单号数组
227 228 229 230 231
     * @return int
     * @throws
     * Date: 2020/9/7
     */
    public function restoreStock($sourceNo): int;
王源's avatar
王源 committed
232

fuyunnan's avatar
fuyunnan committed
233 234 235 236 237 238 239 240 241 242 243 244
    /**
     * 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
245 246 247 248 249 250 251 252
    /**
     * description:自动返回匹配的符合当前sku
     * author: fuyunnan
     * @param array $data sku数组
     * @return array
     * @throws
     * Date: 2020/11/25
     */
253
    public function autoSkuStock($data): array;
254 255 256 257 258 259 260 261 262
    /**
     * description:订单通知取消更改字段 不在生成出库单
     * author: fuyunnan
     * @param string $sourceNos 来源单号
     * @param array $field 修改字段
     * @return int
     * @throws
     * Date: 2020/12/14
     */
263
    public function cancelOrderDeliver($sourceNos, $field): int;
王源's avatar
王源 committed
264
}