商城进销存
商城进销存
数据库表改动
新增mysql表tbl_order_in_stock存储订单中入库和删除的sku信息
新增mysql表存储订单中入库记录删除和已入库的sku,每次返回订单中的sku数据需要在此表中过滤一次
id
order_id,
sku_id,
status, // 1-已入库 2-已删除
pstatus, // 物理删除
create_time,
modify_time,
delete_time,
CREATE TABLE `tbl_order_in_stock` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`order_id` varchar(16) NOT NULL,
`sku_id` varchar(16) NOT NULL COMMENT 'sku id',
`status` tinyint(4) NOT NULL COMMENT '1-已入库 2-已删除',
`create_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`modify_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`pstatus` tinyint(4) NOT NULL DEFAULT '0',
`delete_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra1` int(11) NOT NULL DEFAULT '0',
`extra2` int(11) NOT NULL DEFAULT '0',
`extra3` int(11) NOT NULL DEFAULT '0',
`extra4` varchar(128) NOT NULL DEFAULT '',
`extra5` varchar(128) NOT NULL DEFAULT '',
`extra6` varchar(128) NOT NULL DEFAULT '',
`extra7` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra8` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra9` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra10` decimal(15,4) NOT NULL DEFAULT '0.0000',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_order_sku` (`order_id`,`sku_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
新增mysql表tbl_address_stock_log存储出入库信息
每次sku入库都生成一条入库记录,spu出库都生成一条出库详情记录
tbl_address_stock_log
id // 操作id,自增主键
station_id, // 站点id, 操作的spu所属站点
address_id, // 商户id,从session中拿
spu_id, // spu_id
order_id, // 入库的order_id, 出库的时候为空字符串
sku_id, // 入库的sku_id,出库的时候为空字符串
op_user, // 操作人
std_unit_name, // 基本单位
std_quantity, // spu出或入库变动数量, 入库的时候是sku数量
std_unit_price, // spu出或入库单价, 入库的时候是sku单价
op_type, // 操作类型 1.入库, 2. 出库 3. 删除spu库存
stock, // 变动后库存
old_stock, // 变动前库存
pstatus, // 物理删除
create_time,
modify_time,
delete_time,
CREATE TABLE `tbl_address_stock_log` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`group_id` int(11) NOT NULL COMMENT 'spu所属于的group',
`station_id` varchar(16) NOT NULL COMMENT 'spu所属于的站点',
`address_id` varchar(16) NOT NULL,
`order_id` varchar(20) NOT NULL DEFAULT '' COMMENT '入库的sku所属订单id',
`spu_id` varchar(20) NOT NULL,
`sku_id` varchar(20) NOT NULL DEFAULT '' COMMENT '入库的sku',
`std_unit_name` varchar(16) NOT NULL COMMENT '单位',
`std_quantity` Decimal(15, 4) NOT NULL COMMENT '数量, 浮点数',
`std_unit_price` Decimal(15, 4) NOT NULL COMMENT '单价单位元,浮点数',
`op_user` varchar(32) NOT NULL COMMENT '操作人',
`op_type` tinyint(4) NOT NULL COMMENT '操作类型:1.入库, 2. 出库 3. 删除spu库存',
`stock` Decimal(15, 4) NOT NULL COMMENT '变动前库存, 浮点数',
`old_stock` Decimal(15, 4) NOT NULL COMMENT '变动后库存,浮点数',
`create_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`modify_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`pstatus` tinyint(4) NOT NULL DEFAULT '0',
`delete_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra1` int(11) NOT NULL DEFAULT '0',
`extra2` int(11) NOT NULL DEFAULT '0',
`extra3` int(11) NOT NULL DEFAULT '0',
`extra4` varchar(128) NOT NULL DEFAULT '',
`extra5` varchar(128) NOT NULL DEFAULT '',
`extra6` varchar(128) NOT NULL DEFAULT '',
`extra7` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra8` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra9` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra10` decimal(15,4) NOT NULL DEFAULT '0.0000',
PRIMARY KEY (`id`),
KEY `idx_address_id` (`address_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
新增mysql表tbl_address_stockinfo存储最新库存,库存均价,库存货值信息
逻辑: 每次出库入库删除三种操作,重新计算当前的库存量,和库存均价,存在即更新,不存在就创建
维护每个spu规格的当前库存、库存均价库存货值,除非pstatus为物理删除状态,否则每个spu只有一条记录
tbl_address_stockinfo
id // 自增主键
station_id,
address_id,
spu_id, // 商品spu_id
avg_price, // 库存均价
stock, // 当前库存量
stock_value, // 当前库存货值
last_op_type // 最后一次操作导致变动的类型:1-入库 2-出库 3-删除spu库存
pstatus,
create_time,
modify_time,
delete_time,
CREATE TABLE `tbl_address_stockinfo` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`group_id` int(11) NOT NULL COMMENT 'spu所属于的group',
`station_id` varchar(16) NOT NULL COMMENT 'spu所属于的站点',
`address_id` varchar(16) NOT NULL COMMENT '商户id',
`spu_id` varchar(20) NOT NULL COMMENT '商品id',
`std_unit_name` varchar(16) NOT NULL COMMENT '单位',
`avg_price` Decimal(15, 4) NOT NULL COMMENT '当前库存均价,浮点数',
`stock` Decimal(15, 4) NOT NULL COMMENT '当前库存,浮点数',
`stock_value` Decimal(15, 4) NOT NULL COMMENT '当前库存货值, 浮点数',
`last_op_type` tinyint(4) NOT NULL COMMENT '操作类型:1.入库, 2. 出库 3. 删除spu库存',
`create_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`modify_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`pstatus` tinyint(4) NOT NULL DEFAULT '0',
`delete_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra1` int(11) NOT NULL DEFAULT '0',
`extra2` int(11) NOT NULL DEFAULT '0',
`extra3` int(11) NOT NULL DEFAULT '0',
`extra4` varchar(128) NOT NULL DEFAULT '',
`extra5` varchar(128) NOT NULL DEFAULT '',
`extra6` varchar(128) NOT NULL DEFAULT '',
`extra7` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra8` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra9` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`extra10` decimal(15,4) NOT NULL DEFAULT '0.0000',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_addr_spu` (`address_id`,`spu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
bshop部分
https://bshop.guanmai.cn/stock/spu/count [新增接口: 获取库存概况统计数据]
请求方法:GET
请求:
address_id M str 商户id
search O str 商品名搜索参数
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M map 概况统计数据
例子:
request:
无
response:
{
code: 0,
msg: 'ok',
data: {
'total_stock_value': 300.00, // 总货值,保留两位小数
'spu_count': 1, // 库存商品数
}
}
https://bshop.guanmai.cn/stock/spu/list [新增接口: 获取库存概况]
请求方法:GET
请求:
address_id M 商户id
sort M 排序: 1-最近出入库操作时间降序,2-商品名称升序 3-商品名称降序, 4-库存数升序, 5-库存数降序
search O str 商品名搜索参数
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M list spu库存数据列表
pagination M map 分页信息
例子:
request:
无
response:
{
code: 0,
msg: 'ok',
data: [
{
'spu_id': 'C5678921',
'spu_name': '西红柿',
'stock': 30, // 库存,单位std_unit_name
'std_unit_name': '斤',
'avg_price': 10.00, // 单位元,保留两位小数
'stock_value':300.00 // 货值stock*avg_price,单位元,保留两位小数
'img_url': 'http://testpic.guanmai.cn/product_pic/1e30e0e919bc9fca.jpg'
}
]
pagination: {
more: true,
page_obj: '[[[P1234567], false], [[P456789], true]]'
}
}
https://bshop.guanmai.cn/stock/spu/delete [新增接口: 库存商品删除]
请求方法:POST
请求:
address_id M str 商户id
spu_id M str 库存商品spu_id
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M null
例子:
无
https://bshop.guanmai.cn/stock/sku/wait_in_stock/count [新增接口:获取待入库商品统计数据]
请求方法:GET
请求:
address_id M str 商户id
query_type O int 查询类型1:按照下单时间,2:按照收货时间
start_time O str 开始日期
end_time O str 结束日期
order_status O int 订单状态-1:全部 10:正在配送, 15:已签收
search O str 搜索参数
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M map sku商品数和入库总金额信息
例子:
request:
无
response:
{
code: 0,
msg: 'ok',
data: {
'sku_count': 45, // 商品数
'amount': 24, // 商品金额,元
}
}
https://bshop.guanmai.cn/stock/sku/wait_in_stock/list [新增接口:获取待入库商品列表]
请求方法:GET
请求:
address_id M str 商户id
query_type O int 查询类型1:按照下单时间,2:按照收货时间
start_time O str 开始日期
end_time O str 结束日期
order_status O int 订单状态-1:全部 10:正在配送, 15:已签收
sort O int 排序-1-按照下单时间降序, 1-按照下单时间升序
search O str 搜索参数
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M list sku数据
pagination M map 分页信息
逻辑: 拉取最近订单状态为配送中和已签收的订单中的sku商品,过滤掉已入库和已删除的sku,根据下单时间进行排序分页作为待入库商品
例子:
request:
无
response:
{
code: 0,
msg: 'ok',
data: [
{
'order_id': 'PL230345', // 订单id
'spu_id': 'C7656004', // spu_id
'sku_id': 'D456789', // sku_id
'sku_name': '萝卜', // sku名
'order_id': 'PL234567', // 订单号
'order_time': '2019-05-29 10:00:00', // 下单时间
'order_status': 10, // 订单状态, 10-正在配送, 15-已签收
'std_unit_name': '斤', // 基本单位
'std_quantity': 12, // 入库数
'std_unit_price': 1.2 // 商品销售单价
}
],
pagination {
more: true,
page_obj: '[[[P1234567], false], [[P456789], true]]'
}
}
https://bshop.guanmai.cn/stock/spu/in_stock/create [新增接口:批量创建入库]
请求方法:POST
全选请求:
address_id M str 商户id
all M int 是否是全选,1:是,0:否
order_status O int 订单状态, -1-全部状态 10-正在配送, 15-已签收
query_type O int 过滤的时间类型 1-按照下单日期 2-按照收货日期
start_time O str 开始日期
end_time O str 结束日期
search O str 全选时需要传搜索参数过来
批量请求:
address_id M str 商户id
batch_list [ O list 批量列表, // todo sku list
{ M map 每个订单的入库信息
order_id M str 订单id
sku_id M str sku id
std_quantity M float sku入库数量, 基本单位
std_unit_price M float sku入库单价,基本单位
}
]
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M str null
逻辑:
取出当前要操作入库的spu的当前库存,库存均价,货值,插入入库出库记录,重新计算当前库存,库存均价,货值.
https://bshop.guanmai.cn/stock/sku/delete [新增接口: 待入库记录删除]
请求方法:POST
请求:
address_id M str 商户id
order_id M str 订单id
sku_id M str 订单中的sku_id
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M null
例子:
无
逻辑:
把sku_id加入订单入库表中
https://bshop.guanmai.cn/stock/address/spu/list [新增接口:spu搜索接口]
请求方法:GET
请求:
address_id M str 商户id
search O str spu名搜索参数
响应(不变):
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M list 分页数据
逻辑:
拉取库存不为0的的spu返回
例子:
request:
无
response:
{
code: 0,
msg: 'ok',
data: [
{
'spu_id': 'C832019',
'spu_name': '芹菜',
'avg_price': 10,
'std_unit_name': '斤'
}
]
}
https://bshop.guanmai.cn/stock/spu/out_stock/create [新增接口:批量创建出库]
请求方法:POST
请求:
address_id M str
batch_list [ M list 批量列表
{ M map 每个出库的spu详细信息
spu_id M str spu id
std_quantity M float 出库数量
std_unit_price M float 出库单价
}
]
响应(不变):
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M str null
逻辑:
https://bshop.guanmai.cn/stock/spu/stock/change/count [新增接口:spu出入库明细页汇总信息]
请求方法:GET
请求:
address_id M str 商户id
spu_id M str spu的id
start_time M str 筛选起始时间
end_time M str 筛选结束时间
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M map 返回变动信息
例子:
request:
无
response:
{
code: 0,
msg: 'ok',
data:{
'spu_id': 'C10086',
'spu_name': '萝卜',
'stock': 2, // 当前库存
'stock_value': 24 // 当前货值
'std_unit_name': '斤', // 基本单位
'delta_value': 20, // 变动金额
'delta_stock': 2 // 变动库存
}
}
https://bshop.guanmai.cn/stock/spu/stock/change_log/list [新增接口:spu出入库明细]
请求方法:GET
请求:
address_id M str 商户id
spu_id M str spu的id
start_time M str 筛选起始时间
end_time M str 筛选结束时间
响应(不变):
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M list 返回详细的出入库记录分页数据
pagination M map 分页对象
例子:
request:
无
response:
{
code: 0,
msg: 'ok',
data: [
{
'op_time': '2019-05-06 10:00:00',
'op_type': 1, // 1-入库, 2-出库
'std_quantity': 100, // 数量,基本单位(std_unit_name)
'std_unit_price': 2, // 单价, 基本单位(std_unit_name)
'amount': 200, // 金额, 单位元
},],
pagination: {
more: true,
page_obj: '[[[84345], false], [[67456], true]]'
}
}
station部分
https://station.guanmai.cn/bshop_stock/address/stock_val/count [新增接口:商户数总货值,统计接口]
请求方法:GET
请求:
search O str 搜索条件:商户名或者商户id
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M map 返回商户信息
例子:
request:
无
response:
{
code: 0,
msg: 'ok',
data: {
'address_count': 3, // 商户数
'total_stock_value': 300, // 总货值
}
}
https://station.guanmai.cn/bshop_stock/address/stock_val/list[新增接口:获取分页的货值统计列表以及导出]
请求方法:GET
请求:
search O str 搜索条件:商户名或者商户id
export M int 是否导出:0: 否 1: 是
// 分页规范
page_obj O str 分页参数
reverse O bool 是否反向查询。1:是,0:不是。默认为否。
limit O int 返回条数,默认10。传0表示返回所有数据。
offset O int 查询起点偏移条数,默认0
peek O int 是否需要 peek,默认 false;peek 必须大于 limit。
count O bool 是否需要 count,1:是,0:不是。默认为否。(部分接口可能不实现本功能, 因为如果数据量极大,count 会很耗时)
响应(不变):
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M map 返回商户信息
pagination M map 分页信息
例子:
非导出:
request:
无
response:
{
code: 0,
msg: 'ok',
data:[{ // 商户货值分页列表
'address_id': 'S201817',
'address_name': '测试商户',
'stock_value': 300 // 计算逻辑过滤该address_id的所有spu的货值,计算商户的总货值。
}],
pagination {
more: true,
page_obj: '[[[84345], false], [[67456], true]]'
}
}
导出:
同步:
response:
{
code: 0,
msg: 'ok',
data: {
"async": 0,
"filename": "商户货值成本_2019-05-23 10:51:28_to_2019-05-28 10:51:28.xlsx",
"output_data":{
"stock_value_list": [ // 商户货值统计sheet
{
'start_time':'2019-05-23 10:51:28', // 起始日期
'end_time': '2019-05-28 10:51:28', // 结束日期
'address_id': 'S808888', // 商户id
'address_name': '商户名', // 商户名
'stock_value': 300, // 当前货值,单位元
},
],
"address_stock_details": [ // 商品货值统计sheet
{
'start_time':'2019-05-23 10:51:28', // 起始日期
'end_time': '2019-05-28 10:51:28', // 结束日期
'address_id': 'S808888', // 商户id
'address_name': '商户名', // 商户名
'category1_id': 'A8486', // 一级分类id
'category1_name': '奶类', // 一级分类名
'category2_id': 'B40047', // 二级分类id
'category2_name': '纯奶类', // 二级分类名
'spu_id': 'C1470826', // SPU_ID
'spu_name': '伊利纯牛奶', // 商品名称
'std_unit_name': '件', // 基本单位
'stock': 300.00, // 当前库存
'avg_price': 1.00, // 当前库存均价
'stock_value': 300.00, // 当前货值
}
]
}
}
}
异步:
response:
{
code: 0,
msg: 'ok',
data: {"task_url": "/task/get?task_id=60", "async": 1}
}
https://station.guanmai.cn/bshop_stock/address/spu_stock/list[新增接口:获取某个商户的详细spu库存货值情况]
请求方法:GET
请求:
address_id M str 商户id
// 分页规范
page_obj O str 分页参数
reverse O bool 是否反向查询。1:是,0:不是。默认为否。
limit O int 返回条数,默认10。传0表示返回所有数据。
offset O int 查询起点偏移条数,默认0
peek O int 是否需要 peek,默认 false;peek 必须大于 limit。
count O bool 是否需要 count,1:是,0:不是。默认为否。(部分接口可能不实现本功能, 因为如果数据量极大,count 会很耗时)
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M list 返回商户信息
pagination M map 分页信息
例子:
request:
无
response:
{
code: 0,
msg: 'ok',
data: [
{
'spu_id': 'C8123456',
'spu_name': '土豆',
'std_unit_name': '斤',
'stock': 100, // 当前库存
'avg_price': 1, // 库存均价 单位元
'stock_value':100 // 当前货值 单位元
}
],
pagination {
more: true,
page_obj: '[[[C81234564], false], [[C8125656], true]]'
}
}
https://station.guanmai.cn/bshop_stock/address/spu_stock/detail[新增接口:获取商户某个spu的详情信息]
请求方法:GET
请求:
address_id M str 商户id
spu_id M str spu_id
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M map 返回spu信息
例子:
request:
无
response:
{
code: 0,
'msg': 'ok',
'data': {
'address_id': 'S808567',
'address_name': '商户名',
'spu_id': 'C123344',
'spu_name': '美皮大土豆2号', // 商品名
'stock': 100, // 库存
'stock_value': 100, // 货值,单位元
'std_unit_name': '斤', // 库存单位,例如斤
}
}
https://station.guanmai.cn/bshop_stock/address/spu_stock/log/list[新增接口:获取某个商户的某个spu操作日记]
请求方法:GET
请求:
start_time M str 搜索开始时间
end_time M str 搜索结束时间
address_id M str 商户id
spu_id M str spu_id
op_type M int 操作类型: -1:全部 1: 入库 2. 出库 3. 删除
export M int 是否导出:0: 否 1: 是
// 分页规范
page_obj O str 分页参数
reverse O bool 是否反向查询。1:是,0:不是。默认为否。
limit O int 返回条数,默认10。传0表示返回所有数据。
offset O int 查询起点偏移条数,默认0
peek O int 是否需要 peek,默认 false;peek 必须大于 limit。
count O bool 是否需要 count,1:是,0:不是。默认为否。(部分接口可能不实现本功能, 因为如果数据量极大,count 会很耗时)
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M list 返回商户信息
pagination M map 分页信息
例子:
非导出:
request:
无
response:
{
code: 0,
msg: 'ok',
data:[{
'op_time': '2019-05-13 17:23:20',
'op_type': 1, // 1: 入库 2. 出库 3. 删除
'delta_stock': 100, // 变动库存
'std_unit_price': 3, // 单价,
'std_unit_name': '斤', // 单位
'amount': 300, // 金额
'old_stock': 0, // 变动前库存
'stock': 100, // 变动后库存
'op_user': 'miaomiao' // 操作人
}]
},
pagination {
more: true,
page_obj: '[[[C81234564], false], [[C8125656], true]]'
}
}
导出:
同步:
response:
{
code: 0,
msg: 'ok',
data: {
"async": 0,
"filename": "商户货值变动明细_2019-05-23 10:51:28_to_2019-05-28 10:51:28.xlsx",
"output_data":{
'address_id': 'S803456', // 商户id
'address_name': '商户名', // 商户名
'category1_id': 'A8486', // 一级分类id
'category1_name': '奶类', // 一级分类名
'category2_id': 'B40047', // 二级分类id
'category2_name': '纯奶类', // 二级分类名
'spu_id': 'C1470826', // SPU_ID
'spu_name': '伊利纯牛奶', // 商品名称
'std_unit_name': '件', // 件
"stock_log_details": [ // 商品货值统计sheet
{
'op_time': '2019-05-13 17:23:20',
'op_type': 1, // 变动类型1: 入库 2. 出库 3. 删除
'delta_stock': 100, // 变动数量
'std_unit_price': 3, // 单价
'money': 300, // 金额
'old_stock': 0, // 变动前库存
'stock': 100, // 变动后库存
'op_user': 'miaomiao' // 操作人
}
],
}
}
}
异步:
response:
{
code: 0,
msg: 'ok',
data: {"task_url": "/task/get?task_id=60", "async": 1}
}
https://station.guanmai.cn/station/customized/update [修改老接口:更新店铺信息]
请求方法: POST
请求:
...
is_open_manage_stock O 新增: 是否开启商户自主管理进销存, 0:不开启 1:开启
响应(不变):
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M null
https://station.guanmai.cn/station/customized [修改老接口:获取店铺信息]
请求方法: GET
请求:
无
响应:
code M int 0 为成功,其它为失败
msg M str 错误提示信息
data M null
例子:
request:
无
response:
{
code: 0,
msg: 'ok',
data {
...
is_open_manage_stock: 1, // 是否开启商户自主管理进销存
}
}
新增权限: 查看商户货值权限
INSERT INTO auth_permission(
`name`, `name_en`, `content_type_id`, `codename`, `level2_id`) VALUES(
'查看商户货值', 'Get Address Stock Value', 19, 'get_address_stock_value', 26
);
开发计划:
15个新增接口,修改两个老接口,开发时间10天, 计划联调4天
6-4 :完成库表创建及代码结构设计,以及获取库存概况统计数据以及查询待入库商品列表接口
6-5: 完成批量创建入库
6-6:完成 spu搜索接口
6-10: 完成批量出库接口
6-11:完成库存商品删除,以及待入库记录删除接口
6-12: 完成spu出入库明细以及库存概况接口
6-13: 完成获取货值统计列表以及导出接口
6-14: 完成获取某个商户详细spu库存货值情况
6-17: 获取某个商户的某个spu操作日记及导出
6-18: 修改两个老接口,并添加权限.