Skip to content

进销存

进销存

入库单

/station/stock/in_stock_sheet/create POST 创建入库单

接口名: /station/stock/in_stock_sheet/create
Method: POST
请求:
    settle_supplier_id      M   string  供应商ID
    supplier_name           M   string  供应商名称
响应:
    code    M   int     0为成功,其它为失败
    msg     M   string  错误提示信息
    data    M   dict    返回创建的出库单信息
    {
        id              M   string      入库单ID
        supplier_name   M   string      供应商名称
        status          M   int         入库单状态
        creator         M   string      创建者
        submit_time     M   '-'         入库时间
    }
逻辑:
    生成入库单ID
    在入库单表中插入记录

/station/stock/in_stock_sheet/list GET 获取入库单列表

接口名: /station/stock/in_stock_sheet/list
Method: GET
请求:
    type            M   int         查询类型(1:入库时间;2:建单时间)
    start           M   string      开始时间('YYYY-mm-dd')
    end             M   string      结束时间('YYYY-mm-dd')
    status          M   int         单据状态(-1:已删除;1:待提交;2:待审核;3:审核通过;0:审核不通过;4:已结款;5:全部状态)
    search_text     O   string      搜索内容(入库单ID或者供应商名称)
    export          O   int         是否导出(1:导出;0:不导出 默认0)
    offset          O   int         偏移量(默认0)
    limit           O   int         返回数量(默认10)
响应:
    code        M   int         0为成功,其它为失败
    msg         M   string      错误提示信息
    data        M   dict        返回搜索到的入库单数据
    {
        in_query                    M       bool        查询结果是否在条件范围内
        in_stock_list               M       list        入库单列表
        [{
            id                      M       string      入库单ID
            settle_supplier_id      M       string      供应商ID
            supplier_customer_id    M       string      供应商自定义id
            supplier_name           M       string      供应商名称
            status                  M       int         入库单状态
            date_time               M       string      建单日期
            submit_time             M       string      入库日期
            sku_money               M       float       入库商品金额(元)
            delta_money             M       float       折帐金额
            total_money             M       float       总金额
        }]
    }
逻辑:
    根据条件拉取入库单列表

/station/stock/in_stock_sheet/new_detail GET 获取入库单详情

接口名: /station/stock/in_stock_sheet/new_detail
Method: GET
请求:
    id      M   string  入库单ID
    export  O   int     是否导出(1:导出;0:不导出 默认0)
响应:
    code    M   int         0为成功,其它为失败
    msg     M   string      错误提示信息
    data    M   dict        返回入库单数据
    {
        id                      M       string      入库单ID
        station_id              M       string      站点ID
        settle_supplier_id      M       string      供应商ID
        supplier_customer_id    M       string      供应商自定义id
        supplier_name           M       string      供应商名称
        status                  M       int         入库单状态
        date_time               M       string      建单日期
        submit_time             M       string      入库日期
        sku_money               M       float       入库商品金额(元)
        delta_money             M       float       折帐金额
        creator                 M       string      建单人
        discount                M       list        折让信息
        [{
            action              M       int         折让类型(1:加钱;2:扣钱)
            money               M       float       折让金额
            reason              M       int         折让原因
            remark              M       string      备注
            create_time         M       string      操作时间
            operator            M       string      操作人
        }]
        share M list 分摊信息
        [{
            action M int 分摊类型(1:加钱;2:扣钱)
            money M float 分摊金额
            reason M int 分摊原因
            remark M string 备注
            method M int 分摊方式(1:金额分摊;2:数量分摊)
            in_sku_logs M list 分摊商品列表
            create_time M string 操作时间
            operator M string 操作人
        }]
        type M int 单据类型(1:入库单)
        details M list 商品信息
        [{
            id              M       string      商品ID
            name            M       string      商品名
            desc            M       string      商品描述
            quantity        M       float       入库数量
            unit_price      M       float       入库单价
            std_unit        M       string      单位
            category        M       string      分类
            money           M       float       金额
            operator        M       string      操作人
            spu_id          M       string      spu id
            ratio           M       float       规格转换率
            batch_number    M       string      批次号
            life_time       M       date        保质期
            purchase_unit   M       string      采购单位
            shelf_id        M       int         货位id
            shelf_name      M       string      货位名称(全路径拼成)

        }]
    }
逻辑:
    拉取入库单详情

/station/stock/in_stock_sheet/modify POST 修改入库单

接口名: /station/stock/in_stock_sheet/modify
Method: POST
请求:
    id M string 入库单ID
    submit_time M string 入库日期
    is_submit M int 是否提交(2:提交;1:不提交)
    details M list 商品详情
    [{
        id              M       string      商品ID
        name            M       string      商品名称
        quantity        M       float       入库数量
        unit_price      M       float       入库单价
        std_unit        M       string      库存基本单位
        category        M       string      分类
        ratio           M       float       规格转换率
        batch_number    M       string      批次号
        life_time       M       date        保质期
        purchase_unit   M       string      采购单位
        shelf_id        M       int         货位id
    }]
    discount M list 折让信息
    [{
        action M int 折让类型(1:加钱;2:扣钱)
        money M float 折让金额
        reason M int 折让原因
        remark M string 备注
    }]
    share M list 分摊信息
    [{
        action M int 分摊类型(1:加钱;2:扣钱)
        money M float 分摊金额
        reason M int 分摊原因
        remark M string 备注
        method M int 分摊方式(1:金额分摊;2:数量分摊)
        in_sku_logs M list 分摊商品列表
    }]
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M None
逻辑:
    获取入库商品信息
    计算折让和分摊金额
    保存入库单信息
    如果是提交入库单
        修改入库状态和时间
        更新入库记录
        增加库存

/station/stock/out_stock_sheet/submit/batch GET 获取要批量出库的出库单数量

接口名: /station/stock/out_stock_sheet/submit/batch
Method: GET
请求:
    type M int 查询类型(1:出库时间;2:建单时间;3:运营周期)
    start O string 开始时间('YYYY-mm-dd')
    end O string 结束时间('YYYY-mm-dd')
    time_config_id O string 时间配置
    cycle_start_time O string 结束时间('YYYY-mm-dd HH:MM')
    cycle_end_time O string 结束时间('YYYY-mm-dd HH:MM')
    search_text O string 搜索内容
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M int 返回搜索到的出库单数量

/station/stock/out_stock_sheet/submit/batch POST 批量出库

接口名: /station/stock/out_stock_sheet/submit/batch
Method: POST
请求:
    type M int 查询类型(1:出库时间;2:建单时间;3:运营周期)
    start O string 开始时间('YYYY-mm-dd')
    end O string 结束时间('YYYY-mm-dd')
    time_config_id O string 时间配置
    cycle_start_time O string 结束时间('YYYY-mm-dd HH:MM')
    cycle_end_time O string 结束时间('YYYY-mm-dd HH:MM')
    search_text O string 搜索内容
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M dict 返回出库的
    {
        'success' M list 成功的出库单ID列表
        'failed' M list 失败的出库单ID列表
    }

逻辑改动

  1. 拉取库存逻辑兼容新的库存类型(bshop和station)
  2. 订单生成出库单,订单更新与出库单同步
  3. 称重同步更新出库记录中库存数量
  4. 下单更新销售库存,兼容新的库存类型

库存盘点

/station/stock/get 获取库存信息

接口名: /station/stock/get
Method: GET
请求:
    category_id_1 O string 一级分类ID
    category_id_2 O string 二级分类ID
    text O string 商品名或者商品ID
    offset O int 偏移量 默认0
    limit O int 限制数量 默认10
    export O int 是否导出(1:导出;2:不导出) 默认0
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M list 返回的库存信息
    [{
        spu_id M string 商品ID
        name M string 商品名
        station_id M string 站点ID
        category_id_1 M string 一级分类ID
        category_name_1 M string 一级分类名称
        category_id_2 M string 二级分类ID
        category_name_2 M string 二级分类名称
        std_unit_name M string 单位
        remain M float 剩余库存
        avg_price M float 均价
    }]

/station/stock/check/template 获取库存模板

接口名: /station/stock/check/template
Method: GET
请求:
    category_id_1 O string 一级分类ID
    category_id_2 O string 二级分类ID
响应:
    excel文件

/station/stock/check/upload 上传库存修改Excel

接口名: /station/stock/check/upload
Method: POST
请求:
    file M excel 库存文件
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M list 返回的库存信息
    [{
        spu_id M string 商品ID
        name M string 商品名
        category_name_1 M string 一级分类名称
        category_name_2 M string 二级分类名称
        std_unit_name M string 单位
        old_stock M float 现有库存
        new_stock M float 新库存
        avg_price M float 均价
    }]

/station/stock/check/batch 批量修改库存

接口名: /station/stock/check/batch
Method: POST
请求:
    stock_details list M 库存信息
    [{
        spu_id M string 商品ID
        new_stock M float 库存值
        remark O string 备注信息
    }]
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息

/station/stock/edit 编辑库存

接口名: /station/stock/edit
Method: POST
请求:
    spu_id M string 商品ID
    new_stock M float 库存值
    remark O string 备注信息
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息

/station/stock/check/batch_number 按照批次盘点

接口名:  /station/stock/check/batch_number
Method: GET
请求:
    text                M   str     批次号或者商品名称
    offset              M   int     页数
    limit               M   int     每页数据条数
    export              O   int     1表示导出
响应:
    code        M   int     0为成功,其它为失败
    msg         M   str     提示信息
    data        M   list    新建成功返回数据
    data:[
        {
            batch_number            M   str     批次号
            sku_id                  M   str     入库规格id
            sku_name                M   str     入库规格名
            remain                  M   int     库存数
            std_unit                M   str     基本单位
            ratio                   M   int     入库规格
            purchase_unit           M   str     采购单位
            settle_supplier_id      M   str     供应商id
            supplier_name           M   str     供应商名称
            supplier_customer_id    M   str     供应商自定义id
            shelf_name              M   str     货位名称
            life_time               M   date    保质期
        },
        ...
    ]
    pagination             M    obj     分页信息
    pagination:{
        offset             M    int     页数
        limit              M    int     每页数据条数
        count              M    int     总数据条数
    }
逻辑:
    按照批次号盘点库存信息(批次号完整匹配, sku模糊匹配)或者导出库存信息

/station/stock/check/shelf 按照货位盘点

接口名: /station/stock/check/shelf
Method: GET
请求:
    text        M   str     货位号或者商品名称
    offset      M   int     页数
    limit       M   int     每页数据条数
    export      O   int     1表示导出
响应:
    code        M   int     0为成功,其它为失败
    msg         M   str     提示信息
    data        M   list    新建成功返回数据
    data:[
        {
            shelf_name                M   list     货位号名称
            sku_count               M   int     商品存放数
            shelf_details:[
                {
                    sku_id          M   str     入库规格id
                    sku_name        M   str     入库规格名
                    remain          M   int     库存数
                    std_unit        M   str     基本单位
                    ratio           M   int     入库规格
                    purchase_unit   M   str     采购单位
                },
                ...
            ]
        },
        ...
    ]
    pagination             M    obj     分页信息
    pagination:{
        offset             M    int     页数
        limit              M    int     每页数据条数
        count              M    int     总数据条数
    }
逻辑:
    按照货位号盘点库存信息(货位号模糊匹配并显示全路径货位名称, sku模糊匹配)或者导出库存信息

库存变动记录

/station/stock/in_stock_sku 获取入库记录

接口名: /station/stock/in_stock_sku
Method: GET
请求:
    begin M string 开始时间(YYYY-MM-DD)
    end M string 结束时间(YYYY-MM-DD)
    category_id_1 O string 一级分类ID
    category_id_2 O string 二级分类ID
    text O string 商品名或者商品ID
    offset O int 偏移量 默认0
    limit O int 限制数量 默认10
    export O int 是否导出(1:导出;2:不导出) 默认0
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M list 返回的入库信息
    [{
        sku_id M string 商品ID
        spu_id M string 商品ID
        name M string 商品名
        category_id_1 M string 一级分类ID
        category_name_1 M string 一级分类名称
        category_id_2 M string 二级分类ID
        category_name_2 M string 二级分类名称
        std_unit_name M string 单位
        sheet_no M string 入库单号
        in_stock_amount M float 入库数
        price M float 入库单价(分)
        type M int 入库类型(1:'正常入库', 2:'补货入库')
        submit_time M string 入库时间
        operator M string 操作人
    }]

/station/stock/out_stock_sku 获取出库记录

接口名: /station/stock/out_stock_sku
Method: GET
请求:
    begin M string 开始时间(YYYY-MM-DD)
    end M string 结束时间(YYYY-MM-DD)
    category_id_1 O string 一级分类ID
    category_id_2 O string 二级分类ID
    text O string 商品名或者商品ID
    offset O int 偏移量 默认0
    limit O int 限制数量 默认10
    export O int 是否导出(1:导出;2:不导出) 默认0
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M list 返回的出库信息
    [{
        sku_id M string 商品ID
        spu_id M string 商品ID
        name M string 商品名
        category_id_1 M string 一级分类ID
        category_name_1 M string 一级分类名称
        category_id_2 M string 二级分类ID
        category_name_2 M string 二级分类名称
        std_unit_name M string 基本单位
        sale_unit_name M string 售卖单位
        out_stock_base M float 出库数基本单位
        out_stock_sale M float 出库数销售单位
        price M float 入库单价(分)
        type M int 入库类型(1:'正常出库', 2:'补货出库')
        order_id M string 出库单号
        create_time M string 出库时间
        operator M string 操作人
        outer_id M string 自定义编码
    }]

/station/stock/return_supply_sku 获取退货记录

接口名: /station/stock/return_supply_sku
Method: GET
请求:
    begin M string 开始时间(YYYY-MM-DD)
    end M string 结束时间(YYYY-MM-DD)
    category_id_1 O string 一级分类ID
    category_id_2 O string 二级分类ID
    text O string 商品名或者商品ID
    offset O int 偏移量 默认0
    limit O int 限制数量 默认10
    export O int 是否导出(1:导出;2:不导出) 默认0
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M list 返回的入库信息
    [{
        sku_id M string 商品ID
        spu_id M string 商品ID
        name M string 商品名
        category_id_1 M string 一级分类ID
        category_name_1 M string 一级分类名称
        category_id_2 M string 二级分类ID
        category_name_2 M string 二级分类名称
        std_unit_name M string 单位
        sheet_no M string 入库单号
        in_stock_amount M float 入库数
        price M float 入库单价(分)
        type M int 入库类型(1:'正常入库', 2:'补货入库')
        submit_time M string 入库时间
        operator M string 操作人
    }]

/station/stock/increase 获取报溢信息

接口名: /station/stock/increase
Method: GET
请求:
    begin M string 开始时间(YYYY-MM-DD)
    end M string 结束时间(YYYY-MM-DD)
    category_id_1 O string 一级分类ID
    category_id_2 O string 二级分类ID
    text O string 商品名或者商品ID
    offset O int 偏移量 默认0
    limit O int 限制数量 默认10
    export O int 是否导出(1:导出;2:不导出) 默认0
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M list 返回的报溢信息
    [{
        spu_id M string 商品ID
        name M string 商品名
        category_id_1 M string 一级分类ID
        category_name_1 M string 一级分类名称
        category_id_2 M string 二级分类ID
        category_name_2 M string 二级分类名称
        std_unit_name M string 单位
        increase_amount M float 报溢数
        price M float 报溢单价
        old_stock M float 抄盘数
        operator M string 操作人
        create_time M string 时间
        remark M string 备注
    }]

/station/stock/loss 获取报损信息

接口名: /station/stock/loss
Method: GET
请求:
    begin M string 开始时间(YYYY-MM-DD)
    end M string 结束时间(YYYY-MM-DD)
    category_id_1 O string 一级分类ID
    category_id_2 O string 二级分类ID
    text O string 商品名或者商品ID
    offset O int 偏移量 默认0
    limit O int 限制数量 默认10
    export O int 是否导出(1:导出;2:不导出) 默认0
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M list 返回的报损信息
    [{
        spu_id M string 商品ID
        name M string 商品名
        category_id_1 M string 一级分类ID
        category_name_1 M string 一级分类名称
        category_id_2 M string 二级分类ID
        category_name_2 M string 二级分类名称
        std_unit_name M string 单位
        loss_amount M float 报损数
        price M float 报损单价
        old_stock M float 抄盘数
        operator M string 操作人
        create_time M string 时间
        remark M string 备注
    }]

/station/stock/refund_stock_sku 获取退货入库信息

接口名: /station/stock/refund_stock_sku
Method: GET
请求:
    begin M string 开始时间(YYYY-MM-DD)
    end M string 结束时间(YYYY-MM-DD)
    category_id_1 O string 一级分类ID
    category_id_2 O string 二级分类ID
    text O string 商品名或者商品ID
    offset O int 偏移量 默认0
    limit O int 限制数量 默认10
    export O int 是否导出(1:导出;2:不导出) 默认0
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M list 返回的退货入库信息
    [{
        spu_id M string 商品ID
        name M string 商品名
        category_id_1 M string 一级分类ID
        category_name_1 M string 一级分类名称
        category_id_2 M string 二级分类ID
        category_name_2 M string 二级分类名称
        std_unit_name M string 单位
        in_stock_amount M float 入库数
        price M float 入库单价
        order_id M string 订单ID
        operator M string 操作人
        create_time M string 时间
        accept_std_count M float 销售数量
        std_sale_price M float 销售价格
    }]

出库表

{ "_id" : "T002-CKD-2016-12-05-00011", # 出库单id "update_time" : ISODate("2016-12-05T14:37:46.742Z"), # 更新时间 "creator" : 2, # 创建人 "out_stock_target" : "111111", # 出库对象 "money" : 15840.0, # 出库金额 "create_time" : ISODate("2016-12-05T14:37:46.742Z"), # 创建时间 "status" : 3, # 出库单状态 "details" : [ { "unit_price" : 720, # 单价 "std_unit" : "斤", # 单位 "id" : "D601830", # id "quantity" : "20", # 数量 "name" : "鲜白云耳", # 名称 "category" : "食用菌菇" # 分类 } ], "out_stock_time" : ISODate("2016-12-05T00:00:00.000Z") # 出库时间 }

出库订单id检测

接口名:station/stock/out_stock_sheet/test_id
Method:GET
请求参数:
id:出库单id

1.拉取出库单列表(需要)ok

接口名:station/stock/out_stock_sheet/list
Method:GET
请求参数:
    type        M   int         时间类型:1-按出库时间搜索;2-按建单时间搜索;
    start   M   date            开始日期
    end     M   date            截止日期
    status          O   int     状态:0-全部单据状态;1-待出库;2-已出库 3-已删除 4-冲销
    search_text O   string          搜索文本
    export          O   int             是否导出:0-不导出,默认;1-导出;
    offset          O   int             分页offset
    limit           O   int             分页limit
响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息
    data    M   list    返回json数据,结构看示例

示例:
request:
    GET http://teststation.guanmai.cn/station/out_stock_sheet/out?type=1&start_date=2016-10-25&end_date=2016-10-26

response:
    {
        'code': 0,
        'data': [
                {
                    'id':11112,                 # 出库单ID
                    'out_stock_target': '商户信息',    # 商户信息
                    'out_stock_time': '2016-10-24', # 出库时间
                    'money': 1111,      # 出库金额
                    'status': 2,        # 状态                    }
            ],
        'msg': 'ok',
    }

逻辑:
参数校验
接受传入参数
根据传入参数进行查询操作
返回数据

2.拉取出库单详情(需要)

接口名:station/stock/out_stock_sheet/detail/
Method:GET
请求参数:
    out_stock_id        M   int         出库单ID

响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息
    data    M   json    出库单信息
示例:
request:
    GET http://teststation.guanmai.cn/out_stock_sheet/detail?out_stock_id=

response:
    {
        'code': 0,
        'msg': 'ok',
        'data': {
            'id': '出库单ID',
            'stock_target': '商户信息'
            'creator': '建单人',
            'out_stock_time': '出库时间',
            'total_price': 123434,
            'status': 1-待出库;2-已出库;3-已删除

            'details': [{
                'name': '白菜',  # 商品名
                'category': '叶菜类',  # 商品分类
                'quantity': 33,  # 出库数
                'unit_price': 100,  # 出库单价
                'total_money': 1000 ,  # 出库金额
                'operator': 'k10admin',
                'std_unit': "斤"   # 单位
            }],
            'station_id': 'k10admin',
        }
    }

逻辑:
接受参数
根据参数查询信息
返回数据

3.新建出库单(需要)

接口名:/station/stock/out_stock_sheet/create/
Method:POST
请求参数:
    out_stock_target    O   string          出库对象文本

响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息
    data    M   json    新建的出库单信息
示例:
request:
    POST http://teststation.guanmai.cnstation/out_stock_sheet/create/
    POST参数:
        out_stock_target: "站点信息"

response:
    {
        'data': {
            'id': '出库单id',
            'out_stock_id': '商户id',
            'out_stock_target': '商户信息',
            'status': 1,
            'creator': '建单人',
            'out_stock_time': '出库时间',
            'total_price': 0
        }
        'code': 0,
        'msg': 'ok',
    }

逻辑:
接受新建参数
生成出库单号
返回单号

4.修改出库单(需要)

接口名:/station/stock/out_stock_sheet/modify/
Method:POST
请求参数:
    id  M   int             出库单ID
    is_submit       M   int             1-不提交,2-提交
    details         M   json            商品信息,结构见示例
响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息

示例:
request:
    POST http://teststation.guanmai.cn/station/out_stock_sheet/modify/13133
    POST参数:
        id: 13133
        is_submit: True,
        out_stock_time: 2016-11-27 00:00:00
        'details': [{
                'name': '白菜',  # 商品名
                'id': 'D00001',  # sku_id
                'category': '叶菜类',  # 商品分类
                'quantity': 33,  # 出库数
                'unit_price': 100,  # 出库单价

            }]


response:
    {
        'code': 0,
        'msg': 'ok',
    }

逻辑:
接受所有参数
校验所有参数是否正确
修改出库单,分摊,折让列表,三个都是整体替换修改

5.出库单冲销(需要)

接口名:/station/stock/out_stock_sheet/cancel/
Method:POST
请求参数:
    id  M   int         出库单ID

响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息

示例:
request:
    GET http://teststation.guanmai.cn/station/out_stock_sheet/cancel?id=

response:
    {
        'code': 0,
        'msg': 'ok',
    }

逻辑:
接受参数
逻辑删除出库单

退货表

{ "_id" : "T002-JHTHD-2016-12-09-00002", # id "details" : [ { "name" : "西生菜|块状", # 名字 "creator" : "k10admin", # 创建人 "id" : "D1723443", # sku_id "unit_price" : 681, # 单价 "category" : "甘蓝类", # 分类 "quantity" : "22", # 数量 "std_unit" : "斤" # 单位 } ], "status" : 5, # 状态 "_lock" : false, # 锁 "stock_type" : 2, # 出库类型1-自动 2-补货 "update_time" : ISODate("2016-12-09T19:08:01.379Z"), # 更新时间 "station_id" : "T002", # 站点id "discount" : [ { "remark" : "12", # 备注 "creator" : "k10admin", # 创建人 "money" : "12", # 折让金额 "operate_time" : "2016-12-09", # 操作时间 "action" : "1", # 动作 "reason" : "1" # 原因 } ], "create_time" : ISODate("2016-12-09T19:08:01.379Z"), # 创建时间 "supplier_id" : "T2384", # 供应商id "supplier_name" : "现金自采(钟家平)", # 供应商名字 "creator" : "k10admin", #出库单创建人 "sku_money" : 14982.0, # 总出库金额 "submit_time" : ISODate("2016-12-09T00:00:00.000Z") # 提交时间 }

6.拉取退货供应商列表(需要)

接口名:/station/stock/return_stock_sheet/supplier_list/
Method:GET
请求参数:

响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息
    data     M  json     返回数据

示例:
request:
    GET http://teststation.guanmai.cn/station/return_stock_sheet/get_return_supplier

response:
    {
        'code': 0,
        'msg': 'ok',
        'data': [{
            'supplier_id': '供应商id',
            'supplier_name': '供应商名字'
        }]
    }

逻辑:
查询所有站点供应商信息
返回信息列表

7.拉取退货单列表(需要)

接口名:/station/stock/return_stock_sheet/list
Method:GET
请求参数:
    type        M   int         时间类型:1-按退货时间搜索;2-按建单时间搜索;
    start   M   date            开始时间
    end     M   date            截止时间
    status          O   int             状态 0-全部,1-待提交,2-已提交待审核,3-审核通过待付款,4-已结款,5-审核不通过,6-已删除
    search_text O   string          搜索文本
    export          O   int             是否导出:0-不导出,默认;1-导出;
    offset          O   int             分页offset
    limit           O   int             分页limit
响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息
    data    M   list    返回json数据,结构看示例

示例:
request:
    GET http://teststation.guanmai.cn/station/return_stock_sheet/return?type=1&start_date=2016-10-25&end_date=2016-10-26

response:
    {
        'code': 0,
        'data': [
                {
                    'id':11112,                 # 退货单ID
                    'return_stock_time': '2016-10-24', # 退货时间
                    'supplier_id': 'T131',      # 供应商ID
                    ‘supplier_name': '阿米巴13', # 供应商名称
                    'money': 1111,      # 退货金额
                    'status': 2,        # 状态                    }
            ],
        'msg': 'ok',
    }

逻辑:
接受参数
按条件查询退货单列表
返回列表信息

8.拉取退货单详情(需要)

接口名:/station/stock/return_stock_sheet/detail
Method:GET
请求参数:
    id  M   int         退货单ID
    export                  O   int         0-不导出,1-导出

响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息
    data    M   json    退货单单信息
示例:
request:
    GET http://teststation.guanmai.cn/station/return_stock_sheet/detail?id?=

response:
    {
        'code': 0,
        'msg': 'ok',
        'data': {
            'id': 'T002-YLTHD-2016-09-04-00008',
            'submit_time': '退货时间',
            'creator': '建单人',
            'supplier_id': '供应商ID',
            'supplier_name': '供应商名字'
            'total_price': 12000,
            'status': 1-已退货;2-未退货;3-已冲销,
            'details': [
                {
                    'id': '商品ID',
                    'name': '商品ID',
                    'category': '商品分类'
                    'quantity': 20,  #  退货数
                    'unit_price': 240,   # 退货单价
                    'total_item_price': 20 x 240,  # 退货金额
                    'operator': 'username',
                }
            ],
            // 折让
            'discount':[
                {
                    'operate_time': '操作时间',
                    'reason': 1-运输费用分摊;2-其他费用分摊,
                    'action': 1-加钱;2-减钱,
                    'money': 1234,
                    'remark': '备注',
                    'operator': '操作人ID',
                }
            ],
            'station_id': 'T002',
        }
    }

逻辑:
接受参数
根据单号查询详细信息
返回详细信息

9.新建退货单(需要)

接口名:/station/stock/return_stock_sheet/create
Method:POST
请求参数:
    user            M   user            django用户信息
    supplier_id     M   string          供应商ID
    supplier_name   M   stirng          供应商名称

响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息
示例:
request:
    POST http://teststation.guanmai.cn/station/return_stock_sheet/create
    POST参数:
        supplier_id:'T131'
        supplier_name: '小农女'

response:
    {
        'code': 0,
        'msg': 'ok',
        'data': {
            'id': 134343,    # 退货单id
        },
    }

逻辑:
接受新建参数
校验参数合法性
新建退货单号
返回退货单号

10.编辑退货单(需要)

接口名:/station/stock/return_stock_sheet/modify
Method:POST
请求参数:
    id  M int               退货单ID
    return_stock_time   M   date            退货时间
    is_submit           M               1-保存草稿,2-提交
    details             M   json            原料信息,结构见示例
    discount            O   json            折让信息,结构见示例


响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息

示例:
request:
    POST http://teststation.guanmai.cn/station/return_stock_sheet/update
    POST参数:
        return_stock_id: 13133
        return_stock_time: '2015-02-02 10:00'
        supplier_id: '供应商id'
        supplier_name: '供应商名字'
        is_submit: False
        details: [
                {
                    'id': '商品ID',
                    'name': '商品ID',
                    'category': '商品分类'
                    'quantity': 20,  #  退货数
                    'price': 240,   # 退货单价
                    'total_item_price': 20 x 240,  # 退货金额
                    'operator': 'username',
                }
            ]
        // 折让
        discount:[
            {
                'operate_time': '操作时间',
                'reason': 1-运输费用分摊;2-其他费用分摊,
                'action': 1-加钱;2-减钱,
                'money': 1234,
                'remark': '备注',
                'operator': '操作人ID',
            }
        ]
        station_id: 'T002'


response:
    {
        'code': 0,
        'msg': 'ok',
    }

逻辑:
接受修改参数
校验参数合法性
替换details,分摊,折让列表信息

11.审核退货单(需要)

接口名:/station/stock/return_stock_sheet/review
Method:POST
请求参数:
    id          M   int         出库单ID
    is_pass                         M   int         状态1-通过 2-不通过

响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息

示例:
request:
    POST http://teststation.guanmai.cn/station/return_stock_sheet/modify_status
    POST参数
        id: '退货单id'
        status: '状态码'

response:
    {
        'code': 0,
        'msg': 'ok',
    }

逻辑:
接受参数
校验当前退货单状态:
   已提交:
       可修改状态
   其他:
       不通过

12.退货单冲销(需要)

接口名:/station/stock/return_stock_sheet/cancel
Method:GET
请求参数:
    id          M   int         出库单ID

响应:
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  返回信息

示例:
request:
    GET http://teststation.guanmai.cn/station/return_stock_sheet/cancel?id=

response:
    {
        'code': 0,
        'msg': 'ok',
    }

逻辑:
接受参数
校验退货单是否能冲销
   待提交,已提交:
       可冲销
   其他:
       不可冲销

退货单只有折让没有分摊

退货单折让沿用老接口

添加分摊之后,商品明细不能修改

库存台账

1、库存变动搜索接口station/stock/change_log/list

这个接口用于库存变动搜索

请求:GET

begin      M      datetime       搜索的开始时间
end      M        datetime       搜索的结束时间
category_id_1    O    list    一级分类
category_id_2    O    list    二级分类
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    品类名
            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 的话,后端就会返回这个字段
        }

2、库存变动导出接口station/stock/change_log/export

这个接口用于库存变动搜索

请求:GET

begin      M      datetime       搜索的开始时间
end      M        datetime       搜索的结束时间
category_id_1    O    list    一级分类
category_id_2    O    list    二级分类
change_type      O     int        库存变动的操作类型,不传的话搜索全部的变动类型
q       O       string       根据单据号、操作人搜索或商品信息搜索

响应:

code:0
msg:ok
data:{  
        'task_url': '/task/get/task_id=XXXX'
    }

对应的脚本位置 gm_service/tools/celery_tasks/stock_change_log_export.py