Skip to content

商品库存变动日志

商品库存变动日志

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总的库存改动(该需求之前就已开发完)