Skip to content

净菜迭代前半部分

净菜迭代

净菜知识储备

mysql
    `processing`.`technic`              工艺信息
    包括工艺的基本信息,自定义字段的设置

    `processing`.`technic_flow`         工艺流
    多个工艺组成的有序的处理过程串,通过sku_id和ingredient_id进行关联,
    可以填入工艺的自定义字段的值

    `processing`.`order_request`        加工计划|生产计划
    根据订单来创建的,订单明细里的每个净菜sku都对应一条生产计划记录,
    通过order_id和sku_id进行关联,
    生产计划进行发布时会创建对应的(未下达状态)加工单,同时也会创建该sku对应的加工单的工艺任务

    `processing`.`process_order`        加工单
    具体的某个成品sku的加工计划,包括计划生产数、完成生产数等,
    加工单进行下达时会创建对应的领料单,成品sku中的每个物料都会创建一条领料单

    `processing`.`process_task`         加工单的工艺任务
    绑定在加工单上,版本化的工艺流

    `processing`.`ingredient_recv`      物料领取记录
    绑定在加工单上,通过加工单id和(物料ID)ingredient_id进行关联

    `processing`.`ingredient_return`    物料退料记录
    绑定在加工单上,通过加工单id和(物料ID)ingredient_id进行关联


mongodb
    InvertoryMongoDB.batch_stock        批次表

数据库变动

mysql
    + `processing`.`ingredient_recv_batch` 领料批次表   # 领料和批次是1对多

    + `processing`.`technic_flow_custom_col` 工艺流自定义字段表  # 关联工艺流表,需要带版本号

    + `processing`.`process_order_code` 加工单条形码
        # 目前加工单有三种条形码:
            产品加工单条形码, 已有, 格式:<前缀'1'  + 加工单id>,一条加工单一个条形码, 可不写入此表
            工艺加工单条形码, 新增, 格式:<前缀'GY' +>,多条加工单的某项工艺 对应一个条形码
            车间加工单条形码, 新增, 格式:<前缀'CJ' +>,

    * `processing`.`process_order`      加工单
        + 损耗录入状态

    * `processing`.`process_task`       加工单的工艺任务
        + 工艺领料数量
        + 工艺产出数量


-- --------------sql:
CREATE TABLE `ingredient_recv_batch` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '(领料批次表)自增id',
  `recv_id` int(11) NOT NULL DEFAULT 0 COMMENT '领料记录id',
  `batch_num` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '批次号',
  `recv_amount` decimal(15,4) NOT NULL DEFAULT '0' COMMENT '领料数',
  `proc_order_id` int(11) NOT NULL COMMENT '加工单ID',
  `station_id` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL,
  `group_id` int(11) NOT NULL,

  `create_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '创建时间',
  `modify_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '修改时间',
  `delete_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '删除时间',
  `pstatus` int(11) NOT NULL DEFAULT '0' COMMENT '物理状态,0:正常--默认,1:已删除',
  `extra1` int(11) NOT NULL DEFAULT '0',
  `extra2` int(11) NOT NULL DEFAULT '0',
  `extra3` int(11) NOT NULL DEFAULT '0',
  `extra4` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `extra5` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `extra6` varchar(128) COLLATE utf8mb4_unicode_ci 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_recv_batch_num` (`station_id`,`recv_id`,`batch_num`,`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;




-- 【工艺加工单】 【车间加工单】可以认为是一个临时的某类工艺任务的合集
-- 一个工艺任务可以属于某个【工艺加工单A】中,也可以属于某个【车间加工单B】
-- 工艺任务和 工艺加工单|车间加工单 是多对多的
-- A和B都有分切工艺任务,第一次只打印【A】一个加工单, 第二次打印【A、B】两个加工单
-- 那这两次打印的<分切_工艺加工单>,条形码是不同的,因为承载的信息不一样了
-- 多次打印【A、B】两个加工单,生成的条形码要相同
CREATE TABLE `process_order_code` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '(加工单条形码表)自增id',
  `type` int(11) NOT NULL COMMENT '加工单类型, 0 工艺加工单, 1 车间加工单',
  `code` varchar(64) NOT NULL COMMENT '加工单条形码',
  `proc_order_id` int(11) NOT NULL COMMENT '加工单ID',
  `task_id` int(11) NOT NULL COMMENT '加工单工艺任务ID',
  `technic_flow_id` int(11) NOT NULL COMMENT '任务的工艺流ID, type=0时有效',
  `workshop_id` int(11) NOT NULL COMMENT '任务的车间id, type=1时有效',
  `hash` varchar(32) NOT NULL DEFAULT '' COMMENT '加工单id集合 + type 的hash',

  `station_id` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL,
  `group_id` int(11) NOT NULL,

  `create_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '创建时间',
  `modify_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '修改时间',
  `delete_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '删除时间',
  `pstatus` int(11) NOT NULL DEFAULT '0' COMMENT '物理状态,0:正常--默认,1:已删除',
  `extra1` int(11) NOT NULL DEFAULT '0',
  `extra2` int(11) NOT NULL DEFAULT '0',
  `extra3` int(11) NOT NULL DEFAULT '0',
  `extra4` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `extra5` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `extra6` varchar(128) COLLATE utf8mb4_unicode_ci 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_code` (`code`),
  KEY `idx_station_proc_order` (`station_id`, `proc_order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;




CREATE TABLE `technic_flow_custom_col` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '(工艺流自定义字段表)自增id',
  `technic_flow_id` int(11) NOT NULL COMMENT '工艺流程ID',
  `technic_flow_version` int(11) NOT NULL COMMENT '工艺流程版本号',
  `col_id` int(11) NOT NULL COMMENT '工艺自定义字段id',
  `col_param_id` int(11) NOT NULL COMMENT '工艺自定义字段参数id, -1未设置',

  `station_id` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL,
  `group_id` int(11) NOT NULL,

  `create_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '创建时间',
  `modify_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '修改时间',
  `delete_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '删除时间',
  `pstatus` int(11) NOT NULL DEFAULT '0' COMMENT '物理状态,0:正常--默认,1:已删除',
  `extra1` int(11) NOT NULL DEFAULT '0',
  `extra2` int(11) NOT NULL DEFAULT '0',
  `extra3` int(11) NOT NULL DEFAULT '0',
  `extra4` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `extra5` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `extra6` varchar(128) COLLATE utf8mb4_unicode_ci 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_recv_batch_num` (`station_id`,`recv_id`,`batch_num`,`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;




ALTER TABLE `processing`.`process_task` ADD (
    `technic_recv_amount` decimal(15,4) NOT NULL DEFAULT '0' COMMENT '原料在该工艺的领料数量',
    `technic_output_amount` decimal(15,4) NOT NULL DEFAULT '0' COMMENT '原料在该工艺的产出数目'
);


接口变动

/process/technic_flow/update_technic [老接口]商品规格信息-sku工艺流更新

接口描述
    商品规格信息-工艺设置-sku工艺流更新
改动点描述:
    商品工艺添加自定义字段时,由输入方式改为下拉选择自定义的参数设置,
    请求参数custom_cols字段格式变更
Method
    POST
请求
    # 已有参数字段修改
    custom_cols         M   list[dict]  工艺定义的参数, 变更后结构如下:
      [
        {
            col_id                  M   int     工艺自定义字段id
            col_param_id            O   int     工艺自定义字段参数id
         }
      ]

响应
    不变

逻辑
    参数描述是随着【工艺管理-参数设置】的修改而改变的
    technic工艺表中的custom_cols, 自定义字段里不允许有重复的字段
    新增technic_flow_custom_col表,需要带工艺流的版本号,存工艺流自定义字段设置

/process/technic/list [老接口]获取工艺详情列表

接口描述
    获取工艺详情信息
Method
    GET
请求
    不变
响应
    # custom_cols字段格式变化
    [                                        # 工艺自定义参数列表
        {
          "col_name": "清洗",                     # 工艺自定义参数名称
          "col_id": 3,                           # 工艺自定义参数名称的id
          "param_list": [                       # 工艺自定义字段的参数列表
              {
                  "param_name": "清洗2min",       # 工艺自定义字段参数名称
                  "param_id": 1                 # 工艺自定义字段参数的id
              }
          ]
        }
     ]

逻辑
    需返回工艺事先定义好的字段和字段参数

/process/process_order/print [老接口]加工单据-打印产品加工单

接口描述
    获取产品加工单打印的信息
Method
    GET
请求
    不变
响应
    code    M   int     返回码,0表示成功,其他表示错误
    msg     M   string  错误信息
    data    M   string  返回json数据

响应示例

    ├── data                    list[dict] 加工单信息列表
    │   ├── ingredients         list[dict] 物料信息列表
    │   │   ├── tasks           list[dict] 物料加工信息列表

    ####### ######
    {
      "code": 0,
      "msg": "ok",
      "data": [
        {
          sku_name": "黄焖鸡米饭",                            # 成品名称
          "ratio": 1,
          "std_unit_name": "盒",
          "finish_amount": null,
          "id": 264,
          "sale_unit_name": "盒",
          "ingredients": [                                  # 物料信息列表
            {
              "sku_name": "鸡肉|斤",                         # 物料名称
              "ratio": 0.2,                                 # 需求比例
              "std_unit_name": "斤",
              "sku_id": "D12155087",
              "recv_amount": 3,                             # 领料数
              "output_amount": 2,                           # 产出数
              "tasks": [                                    # 加工工艺信息列表
                {
                    "technic_recv_amount": 3,               # 【新增】工艺领料数
                    "technic_output_amount": 2,             # 【新增】工艺产出数
                    "technic_flow_desc": "kan ",            # 工艺描述
                    "id": 338,
                    "technic_flow_name": "打包"              # 工艺名称
                }
              ],
              "batch_num": "",                              # 领料批次
              "sale_unit_name": "斤",
              "type": 7,                                    # 物料类型
              "sale_ratio": 1
            }
          ],
          "status": 2,
          "custom_id": "D12155056-2030",                    # 计划编号
          "std_plan_amount": 100,
          "plan_amount": 100,                               # 计划生产数
          "sku_id": "D12155056",
          "finish_time": null,                              # 完成日期
          "code": "100000000264",                           # 条形码
          "start_time": null                                # 开工日期
        }
      ]
    }

逻辑
    新增 工艺领料数量、工艺产出数量

/process/process_order/print_by_technic [新接口]加工单据-打印工艺加工单

接口描述
    获取工艺加工单打印的信息
Method
    GET
请求
    ids         M           list[int]       加工单id列表
响应

响应示例

    ├── data                    list[dict] 工艺信息列表
    │   ├── ingredients         list[dict] 工艺的某个物料信息列表
    │   │   ├── process_orders  list[dict] 物料所在的加工单信息列表

    ##################
    {
      "code": 0,
      "msg": "ok",
      "data": [
        {
          "technic_flow_name": "打包",                       # 工艺名称
          "technic_flow_desc": "kan",                       # 工艺描述
          "ingredients": [                                  # 物料信息列表
            {
              "sku_name": "鸡肉|斤",                         # 物料名称
              "ratio": 0.2,
              "process_orders": [                           # 加工单信息列表
                {
                  "custom_id": "D12155056-2030",            # 加工单计划编号
                  "recv_amount": 10,                        # 领料数量
                  "plan_amount": 10,                        # 需求数目|计划产出数目
                  "output_amount": 9,                       # 产出数目
                }
              ],
              "batch_num": "",                              # 领料批次
              "sale_unit_name": "斤",
              "type": 7,                                    # 物料类型
              "sale_ratio": 1
            }
          ],
        }
      ]
    }

逻辑
    按照工艺的维度拆分

/process/process_order/print_by_workshop [新接口]加工单据-打印车间加工单

接口描述
    获取车间加工单打印的信息
Method
    GET
请求
    ids         M           list[int]       加工单id列表
响应

响应示例

    ├── data                        list[dict] 车间信息列表
    │   ├── technics                list[dict] 车间的某个工艺信息列表
    │   │   ├── ingredients         list[dict] 工艺的某个物料信息列表
    │   │   │   ├── process_orders  list[dict] 物料所在的加工单信息列表

    #########################
    {
      "code": 0,
      "msg": "ok",
      "data": [
        {
          "workshop_name": "打包",                                # 车间名称
          "technics": {
            "technic_flow_name": "打包",                          # 工艺名称
            "technic_flow_desc": "kan",                         # 工艺描述
            "ingredients": [                                    # 物料信息列表
                {
                  "sku_name": "鸡肉|斤",                         # 物料名称
                  "ratio": 0.2,
                  "process_orders": [                           # 加工单信息列表
                    {
                      "custom_id": "D12155056-2030",            # 加工单计划编号
                      "recv_amount": 10,                        # 领料数量
                      "plan_amount": 10,                        # 需求数目|计划产出数目
                      "output_amount": 9,                       # 产出数目
                    }
                  ],
              "batch_num": "",                                  # 领料批次
              "sale_unit_name": "斤",
              "type": 7,                                        # 物料类型
              "sale_ratio": 1
            }
          ],
          }
        }
      ]
    }

逻辑
    按照车间的维度拆分

/process/process_order/get [新接口]加工单据-加工单详情

接口描述
    获取加工单详情信息
Method
    GET
请求
    id          M       int         加工单id
响应
    {
      "code": 0,
      "msg": "ok",
      "data": {
        "sku_name": "荷兰土豆丝",                             # 成品名称
        "start_time": "2019-10-28T11:41:06",                # 计划开始时间
        "plan_finish_time": "2019-10-28T00:00:00",          # 计划完成时间
        "release_time": "2019-10-28T11:38:51",              # 计划发布时间
        "custom_id": "D19712893-2020",                      # 计划编号
        "status": 2,                                        # 计划状态
        "id": 249,                                          # 加工计划id
        "finish_products":[                                 # 成品明细(应该就一条)
            {
              "recv_amount": 10,                            # 领料数量
              "output_amount": 10,                          # 产出数目
              "waste_amount": 10,                           # 损耗数目
              "ratio": 1,                                   # 销售比例
              "ingredient_id": "D12155087",                 # 物料id
              "remark_type": 7,                             
              "std_unit_name": "斤",                         # 基本单位
              "sale_unit_name": "斤",                        # 销售单位
              "proportion": 0.2,                            # 物料比例
              "ingredient_name": "鸡肉|斤"                   # 物料名
            }
        ],
        "attritions": [                                     # 工艺损耗明细,一个工艺一个损耗
            {
              "recv_amount": 10,                            # 领料数量
              "output_amount": 9,                           # 产出数目
              "ingredient_name": "鸡肉|斤"                   # 物料名
              "type": 7,                                    # 物料类型
              "technic_flow_name": "打包",                   # 工艺名称
            }
        ],
      }
    }

/process/process_order/finish_product_in_stock [新接口]加工单据-产出入库

接口描述
    将加工单快速转换成成品待入库单
Method
    POST
请求
    id          M       int         加工单id
响应
    ok
逻辑
    fixme 和已有的入库规则保持一致
    对加工单的成品生成入库单
    加工单状态变为已完成

/process/process_order/attrition_export [新接口]加工单据-录入损耗模板

接口描述
    异步任务方式,导出具体损耗信息列表,生成录入损耗excel模板,用于导入损耗去更新工艺任务的损耗信息
Method
    GET
请求
    workshop_id         O       int     车间id
    begin_time          O       date    开始时间,yyyy-mm-dd
    end_time            O       date    结束时间,yyyy-mm-dd
响应
    {
        "code": 0,              # 返回码,0表示成功,其他表示错误
        "msg": "ok",
        "data": {
            "async": 0,         # 0:同步,1:异步
            "task_url": None,   # 异步返回url,同步则为None
        }
    }

逻辑
    根据是否传递workshop_id参数,生成格式不同的excel

/process/process_order/attrition_import [新接口]加工单据-录入损耗保存

接口描述
    批量录入损耗模板,先检查参数,如果参数正确则异步任务方式去更新损耗的信息,否则直接返回错误列表
Method
    POST
请求
    file                M       file        损耗excel
响应
    {
        "code": 0,                  # 返回码,0表示成功,其他表示错误
        "msg": "ok",
        "data": {
            "async": 0,             # 0:同步,1:异步
            "task_url": None,       # 异步返回url,同步则为None
            "error_list": $error    # 非异步时 返回错误列表
        }
    }

逻辑
    走异步任务,返回异步任务url,失败列表存异步任务结果
    效验所有参数,custom_id、sku_id、ingredient_id、technic_flow_id关系是否正确
    如果有错误返回所有失败的列表,需要保存

/process/process_order/attrition_import_result [新接口]加工单据-录入损耗结果

接口描述
    显示录入损耗错误列表的结果
Method
    GET
请求
    task_id         M       int         异步任务id
响应
    {
      "code": 0,
      "msg": "ok",
      "data": {
        "all_workshop": 1,                              # 1: 全部车间, 0: 某个车间
        "error_list": $error
       }
    }

    $error格式1
    [
        "error_msg": "xxx"                          #错误信息
        "workshop_name": "车间1",                 # 车间名称 
        "custom_id": "D19712893-2020",              # 计划编号
        "sku_id": "D123",                           # 商品id
        "sku_name": "鸡肉|斤",                       # 商品名称
        "ratio": 1,
        "std_unit_name": "斤",
        "sale_unit_name": "斤",
        "recv_amount": 10,                          # 原料的领料数量
        "output_amount": 10,                        # 原料的产出数目
        "ingredient_id": "D12155087",               # 物料id
        "ingredient_name": "鸡肉|斤",                # 物料名
        "technic_flow_name": "打包",                 # 工艺名称
        "technic_flow_desc": "kan",                 # 工艺描述
        "technic_recv_amount": 10,                  # 原料在该工艺的领料数量
        "technic_output_amount": 10,                # 原料在该工艺的产出数目
     ]

     $error格式2
     todo

逻辑

/process/process_order/attrition_update [新接口]加工单据-损耗保存

接口描述
    单个录入损耗,先检查参数,同步方式处理
Method
    POST
请求
    attrition_finished          M       int     是否标记损耗已录入完成 ,0 不标记, 1 标记
    custom_id                   M       str     计划编号
    sku_id                      M       str     商品id
    ingredient_id               M       int     物料id
    technic_flow_id             M       int     工艺id
    output_amount               M       float   原料的产出数目
    technic_recv_amount         M       float   原料在该工艺的领料数量
    technic_output_amount       M       float   原料在该工艺的产出数目

响应

逻辑
    效验所有参数,custom_id、sku_id、ingredient_id、technic_flow_id关系是否正确
    如果有错误直接返回

/process/process_order/ingredient_recv/batch_update [新接口]领料管理-批量操作

接口描述
    批量编辑领取批次、批量设置领料人、批量设置领料状态
    先同步方式,观察大数据量的响应时间,再考虑是否异步任务方式
Method
    POST
请求
    # <1> 和 <2> 的参数必选一项
    # <1> 查询条件字段,当有以下四个字段的任何一个时,可认为是全选
    begin           O       date        计划下达开始日期
    end             O       date        计划下达结束日期
    q               O       str         搜索字符串
    status          O       int         领料状态

    # <2> 当有ids参数时,可认为是部分勾选
    ids             O       list[int]   领料记录id数组

    update_type     M       str[enum]   值为set_batch_num|set_status|set_recver
    set_batch_list  O       list[dict]  待设置的领料数列表
        [
            {
                "ingredient_id": "D123",    物料id
                "amount": 10                此物料id的总共领料数
            }
        ]
    set_status      O       int         update_type="status", 待设置的领料状态,1未领料,2已领取,只能1->2
    set_recver      O       int         update_type="recver", 待设置的领料人id
响应
    ok
逻辑
    update_type="set_batch_num"时
        默认按批次入库时间顺序选择批次填充领取数为需求数,若某一批次库存不足,
        则顺延至下一批次补足剩余数量,直至分配完领料数为止。

/process/process_order/ingredient_recv/last_recver [新接口]领料管理-最近领料人

接口描述
    获取最近一次的领料人
Method
    GET
todo

/process/process_order/ingredient_recv/update [老接口]领料管理-领料更新

接口描述
    单条领料操作领取批次,更改为可多选批次
Method
    POST
请求
    # 新增字段
    batch_list      O       list[dict]      批次信息列表, 会覆盖更新旧的批次列表
        [
            {
                "batch_num": "T11",         # 批次号
                "amount": 1                 # 领取数目
            }
        ]
响应
    不变

/process/process_order/ingredient_recv/list [老接口]领料管理-领料列表

接口描述
    领料列表
Method
    GET
请求
    status(新增)      O       int     领料状态,0 全部状态、1 未领料、2 已领取, 默认0
    code(新增)        O       str     加工单条形码
响应
    {
      "code": 0,
      "data": [
        {
          "id": 443,
          "spu_name": "荷兰土豆",
          "unit_name": "斤",
          "ingredient_version": 1,
          "recver": "刘",
          "ingredient_id": "D19712872",
          "shelf_name": null,
          "spu_id": "C3536674",
          "release_time": "2019-10-28T11:38:51",
          "plan_recv_amount": 120,
          "create_time": "2019-10-28T11:38:51",
          "status": 2,
          "ingredient_name": "荷兰土豆|1斤/斤",
          "batch_list": [                                       # 【新增字段】,批次信息列表
            {
                "batch_num": "T16890-10-28-00001-00003",        # 批次号
                "amount": 12                                    # 领取数目
,           }
          ],
          "recv_time": "2019-10-28T11:41:06",
          "proc_order_id": "D19712893-2020",                    # 加工计划编号
          "real_recv_amount": 120,
          "remark_type": 1
        }
      ],
      "msg": "ok",
      "pagination": {
        "page_obj": "(443,)|True+(443,)|False",
        "more": false
      }
    }
逻辑

计划

批量领料、领料筛选       2       11.01-11.04
损耗录入、产出入库       2       11.05-11.07
自定义参数、sku工艺更新   2       11.08-11.11
打印加工单、条形码       2       11.12-11.13
自测、联调                       11.13-