商品库存变动日志
商品库存变动日志
1、新增数据库表tbl_stock_change_log
(decimal精度为四位小数)
id int id
station_id varchar(16) 站点id
group_id int(11) 加盟商id
create_time datetime 创建时间
modify_itme datetime 更改时间
delete_time datetime 删除时间
old_stock Decimal(15,4) 操作之前的库存
stock Decimal(15,4) 操作之后的库存
operator varchar(16) 操作人
spu_id varchar(16) 商品spu_id
batch_number varchar(64) 批次号
sheet_number varchar(64) 单据号
operate_type int(11) 操作类型
old_stock_value Decimal(15,4) 旧库存货值
stock_value Decimal(15,4) 新库存货值
avg_price Decimal(15,4) 库存均价
old_avg_price Decimal(15,4) 旧库存均价
pstatus bint DEFAULT 0 状态
`extra1` int DEFAULT 0 COMMENT '备份字段',
`extra2` int DEFAULT 0 COMMENT '备份字段',
`extra3` int DEFAULT 0 COMMENT '备份字段',
`extra4` varchar(128) DEFAULT '' COMMENT '备份字段',
`extra5` varchar(128) DEFAULT '' COMMENT '备份字段',
`extra6` varchar(128) DEFAULT '' COMMENT '备份字段',
`extra7` datetime DEFAULT datetime.min COMMENT '备份字段',
`extra8` datetime DEFAULT datetime.min COMMENT '备份字段',
`extra9` datetime DEFAULT datetime.min COMMENT '备份字段',
`extra10` Decimal(15,4) DEFAULT 0 COMMENT '备份字段',
2、库存变动搜索接口station/stock/change_log/list
这个接口用于库存变动搜索
请求:GET
spu_id M string 商品的spu_id
begin M datetime 搜索的开始时间
end M datetime 搜索的结束时间
change_type O int 库存变动的操作类型,不传的话搜索全部的变动类型
q O string 根据单据号或操作人搜索
page_obj O string 起始页(不包含),默认第0页
reverse O bool 是否反向查询。1:是,0:不是。默认为否。
limit O int 返回条数,默认20。传0表示返回所有数据。
offset O int 查询起点偏移条数,默认 0 [注1]
peek O int 是否需要 peek,默认不需要 peek。peek 必须大于 limit。
count O bool 是否需要 count,默认不需要 count。(部分接口可能不实现本功能, 因为如果数据量极大,count 会很耗时)
响应:
code:0
msg:ok
data:{
spu_name M string
spu_id M string 商品ID
category1_name M list 一级分类名
category2_name M list 二级分类名
pinlei_name M list 品类名
log:[
{
create_time M datetime 创建时间
sheet_number M string 单据号
change_type M string 库存变动类型
old_stock M float 旧库存
amount M float 库存变动(正数为库存增加,负数为库存减少)
stock M float 变动后库存
old_stock_value M float 变动前货值
stock_value M float 变动后货值
stock_value_change M float 库存货值变动
old_avg_price M float 变动前库存均价
avg_price M float 变动后库存均价
operator M string 操作人
}]
}
pagination: { M dict
peek: 100, O int 前端传 peek 的话,后端就会返回这个字段
more: true, M bool 是否有更多数据
page_obj: "gtyuhbgyhbvgyhgvgy", M string
count: 2000 O int 前端传 count 的话,后端就会返回这个字段
}
3、库存变动导出station/stock/change_log/export
请求:GET
spu_id M string 商品的spu_id
begin M datetime 搜索的开始时间
end M datetime 搜索的结束时间
change_type O int 库存变动的操作类型,不传的话搜索全部的变动类型
q O string 根据单据号或操作人搜索
响应:
code:0
msg:ok
data:{
spu_name M string
spu_id M string 商品ID
category1_name M list 一级分类名
category2_name M list 二级分类名
pinlei_name M list 品类名
log:[
{
create_time M datetime 创建时间
sheet_number M string 单据号
change_type M string 库存变动类型
old_stock M float 旧库存
amount M float 库存变动(正数为库存增加,负数为库存减少)
stock M float 变动后库存
old_stock_value M float 变动前货值
stock_value M float 变动后货值
'stock_value_change' M float 货值变动
old_avg_price M float 变动前库存均价
avg_price M float 变动后库存均价
operator M string 操作人
}]
}
pagination: { M dict
peek: 100, O int 前端传 peek 的话,后端就会返回这个字段
more: true, M bool 是否有更多数据
page_obj: "gtyuhbgyhbvgyhgvgy", M string
count: 2000 O int 前端传 count 的话,后端就会返回这个字段
}
4、修改的接口(以下业务接口都生成一条库存变动记录)
成品入库 in_stock_sheet/material/modify InStockSheetDetailModify
成品入库审核不通过 in_stock_sheet/material/review InStockSheetReview
成品入库冲销 in_stock_sheet/material/cancel InStockSheetCancel
成品出库 out_stock_sheet/modify OutStockSheetModifyView
出库冲销 out_stock_sheet/cancel OutStockSheetCancelView
批量提交出库单 out_stock_sheet/submit/batch OutStockSubmitBatchView
退货出库 return_stock_sheet/modify ReturnStockSheetModifyView
退货出库审核不通过 return_stock_sheet/review ReturnStockSheetReviewView
退货出库冲销 return_stock_sheet/cancel ReturnStockSheetCancelView
商品退货入库 refund/edit RefundEditView
修改批次库存 check/batch_edit StockBatchEdit
修改库存 edit_stock StockEditView
批次库存审核 check/batch StockCheckBatchView
5、库存变动类型
StockIn = 1 # 入库
StockInReviewFail = 2 # 入库审核不通过
StockInCancel = 3 # 入库冲销
StockOut = 4 # 出库
StockOutCancel = 5 # 出库冲销
StockLoss = 6 # 报损
StockIncrease = 7 # 报溢
SupplyReturnStock = 8 # 成品退货出库
SupplyReturnStockReviewFail = 9 # 成品退货出库审核不通过
SupplyReturnStockCancel = 10 # 成品退货出库冲销
SaleReturnStockIn = 17 # 商品退货入库
7、疑问
1、是否需要花点时间把进销存的所有计算都改为decimal(暂时不需要)
2、批次号是否需要保存,每个批次的库存改动是否需要保存,最后再保存下这次spu总的库存改动(该需求之前就已开发完)