Skip to content

装车验货

装车验货

  • Author: GuLong
  • Status: create
  • Type: Standards
  • Created: 2019-03-08

数据库相关

mongodb
xnn_core_product_2.station 给所有站点添加sorting_product_code_type列
# sorting_product_code_type 分拣软件打印的标签的类型
# 1 不带条形码, 默认值      2 带条形码
db.getCollection("station").update({}, {
    $set: {
        'sorting_product_code_type': NumberInt(1)
    }
}, {
    multi: true
})


mysql
xnn_core_product_2.auth_permission
添加权限: 分拣商品码 (codename: edit_sorting_product_code)
sql: INSERT INTO `xnn_core_product_2`.`auth_permission`(`name`, `name_en`, `content_type_id`, `codename`, `level2_id`) VALUES 
('分拣商品码', 'Edit Sorting Product Code', 70, 'edit_sorting_product_code', 19);

-- sorting库:  新增 sorting.tbl_sort_package_new  新包装表
CREATE TABLE `tbl_sku_package_new` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `package_id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
  `parent_package_id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `sorting_sku_id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `type` tinyint(4) NOT NULL DEFAULT '1',
  `station_id` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL,
  `group_id` int(11) NOT NULL,
  `order_id` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `order_sku_id` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `source_order_id` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `spu_id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
  `sku_id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
  `sku_name` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
  `sale_ratio` decimal(15,4) NOT NULL DEFAULT '1.0000',
  `sale_unit_name` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
  `std_unit_name` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
  `quantity` decimal(15,4) NOT NULL DEFAULT '0.0000',
  `package_operator` int(11) NOT NULL DEFAULT '0',
  `package_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
  `package_employee_id` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `sort_status` tinyint(4) NOT NULL DEFAULT '1',
  `sort_operator` int(11) NOT NULL DEFAULT '0',
  `sort_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
  `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) 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_package_id` (`package_id`),
  KEY `idx_order_id` (`order_id`),
  KEY `idx_sku_id` (`sku_id`),
  KEY `idx_order_sku_id` (`order_sku_id`),
  KEY `idx_station_id` (`station_id`),
  KEY `idx_parent_package_id` (`parent_package_id`),
  KEY `idx_sorting_sku_id` (`sorting_sku_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


-- delivery库:  新增 delivery.tbl_delivery 配送表
CREATE TABLE `tbl_delivery` (
      `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,
      `order_id` varchar(20) NOT NULL COMMENT '订单ID',
      `type` tinyint(4) NOT NULL COMMENT '类型:1为未编辑 2为已编辑',
      `sort_num` varchar(20) NOT NULL COMMENT '分拣序号',
      `resname` varchar(20) NOT NULL COMMENT '商户名',
      `user_id` varchar(20) NOT NULL COMMENT 'uid或站点ID(LK单)',
      `address_id` varchar(20) NOT NULL COMMENT '店铺ID或站点ID(LK单)',
      `address` varchar(200) NOT NULL COMMENT '收货地址',
      `receiver_name` varchar(32) NOT NULL COMMENT '收货人',
      `receiver_phone` varchar(20) NOT NULL COMMENT '收货人电话',
      `area_id` bigint(20) NOT NULL COMMENT '区域ID',
      `district_code` varchar(10) NOT NULL COMMENT '城市码',
      `settle_way` int(11) NOT NULL COMMENT '商户结算方式',
      `freight` int(11) NOT NULL COMMENT '运费',
      `freight_lock` tinyint(4) NOT NULL COMMENT '是否锁定单价,1锁定0未锁定',
      `real_price` int(11) NOT NULL COMMENT '出库金额',
      `total_price` int(11) NOT NULL COMMENT '下单金额',
      `total_pay` int(11) NOT NULL COMMENT '销售额',
      `print_times` int(11) NOT NULL COMMENT '打印次数',
      `creator` varchar(20) NOT NULL COMMENT '创建人',
      `time_config_id` varchar(20) NOT NULL COMMENT '运营周期',
      `order_time` datetime NOT NULL COMMENT '下单时间',
      `source_order_ids` json NOT NULL COMMENT 'LK单原始信息',
      `child_sort_id` varchar(20) NOT NULL COMMENT 'LK单信息',
      `origin_customer` json NOT NULL COMMENT '原始订单信息',
      `sale_manager_info` json NOT NULL COMMENT '销售经理信息',
      `status` int(11) NOT NULL DEFAULT '1' COMMENT '1未装车 2已装车',
      `inspector_id` int(11) NOT NULL COMMENT '装车人id',
      `inspector_name` varchar(20) NOT NULL COMMENT '装车人名称',
      `inspect_time` datetime NOT NULL COMMENT '装车时间',
      `station_id` varchar(20) NOT NULL COMMENT '站点ID',
      `group_id` int(11) NOT NULL COMMENT '组ID',
      `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 '逻辑删除',
      `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_order_id` (`order_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


-- delivery库:  新增  delivery.tbl_delivery_sku  配送明细表
CREATE TABLE `tbl_delivery_sku` (
      `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,
      `delivery_id` int(11) NOT NULL COMMENT 'tbl_delivery表id',
      `order_id` varchar(20) NOT NULL COMMENT '订单ID',
      `sku_id` varchar(20) NOT NULL COMMENT '商品ID',
      `sku_version` int(11) NOT NULL COMMENT '版本号',
      `spu_id` varchar(20) NOT NULL COMMENT 'spu id',
      `type` tinyint(4) NOT NULL COMMENT '类型:1为来自订单,2为自行添加',
      `category_name_1` varchar(20) NOT NULL COMMENT '商品类别',
      `category_name_2` varchar(20) NOT NULL COMMENT '商品类别',
      `pinlei_name` varchar(20) NOT NULL COMMENT '商品类别',
      `sku_name` varchar(200) NOT NULL COMMENT '商品类别',
      `sale_ratio` int(11) NOT NULL COMMENT '销售单位比率',
      `sale_unit_name` varchar(20) NOT NULL COMMENT '销售单位',
      `std_unit_name` varchar(20) NOT NULL COMMENT '基本单位',
      `sale_price` int(11) NOT NULL COMMENT '销售单价',
      `is_price_timing` tinyint(11) NOT NULL COMMENT '是否时价商品',
      `std_sale_price` int(11) NOT NULL COMMENT '基本单价',
      `real_item_price` int(11) NOT NULL COMMENT '出库金额',
      `origin_item_price` double NOT NULL COMMENT '来自订单detail',
      `total_item_price` double NOT NULL COMMENT '下单金额',
      `quantity` double NOT NULL COMMENT '下单数(基本单位)',
      `real_quantity` double NOT NULL COMMENT '出库数 销售单位',
      `real_weight` double NOT NULL COMMENT '出库数 基本单位real_std_count',
      `real_is_weight` tinyint(4) NOT NULL COMMENT '是否称重商品',
      `is_weighted` tinyint(4) NOT NULL COMMENT '是否已称重',
      `spu_remark` varchar(50) NOT NULL DEFAULT '' COMMENT '商品备注',
      `tax_rate` int(11) NOT NULL COMMENT '税率',
      `salemenu_id` varchar(11) NOT NULL COMMENT '销售单ID',
      `status` int(11) NOT NULL DEFAULT '1' COMMENT '1未验货 2已验货 3部分验货',
      `inspect_time` datetime NOT NULL COMMENT '验货时间',
      `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 '逻辑删除',
      `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_delivery_id` (`delivery_id`),
      KEY `idx_order_id` (`order_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


刷数据
旧包装表 数据刷到 新包装表
sorting.tbl_sort_package  -->  sorting.tbl_sort_package_new
脚本: todo

Station接口改动

配送单、配送单明细的生成:

暂时的逻辑是在司机app
    对订单商品进行验货时 生成 对应的配送单明细记录
    对订单进行装车时 生成 对应的配送单记录

/driver/delivery/list (修改老接口)

接口描述
    司机App的配送任务列表页面
Method
    GET
请求
    # 新增按商户名、订单号手输或扫码搜索的参数
    search_text     O       string      用于搜索的商户名、订单号
响应
    + 订单任务条目的信息增加装车状态字段
    {
      "code": 0,
      "data": [
        {
          "receiver_phone": "18500004001",
          "order_id": "PL4765838",
          ...
          "inspect_status": 1,      # 新增: 订单的装车状态字段, 2: 已装车  1: 未装车
          "delivery_id": "D333",    # 新增: 订单对应配送单的id,订单装车操作时的参数
        },
        ...
      ],
      "msg": "ok"
    }

/driver/delivery/detail (修改老接口)

接口描述
    司机App的配送任务的详细信息
Method
    GET
请求
    # 新增参数
    search_text     O       string      用于搜索的商品名、商品码
响应
   + 订单任务条目的信息增加装车状态的字段
   + 订单任务条目里的商品增加验货状态的字段、id字段
   {
      "code": 0,
      "data": {
        "receiver_phone": "18500004001",
        "order_no": "PL4765829",
        "inspect_status": 1     # 新增:订单的装车状态字段, 2: 已装车  1: 未装车
        ...
        "details": [
          {
            "quantity": 1,
            "real_quantity": 1,
            "total_item_price": 300,
            "sale_unit_name": "斤",
            "name": "233上海青|斤",
            "inspect_status": 1,    # 新增: 商品的验货状态字段, 2: 已验货  1: 未验货
            "delivery_sku_id": "666",   # 新增: 对应配送单商品的id, 商品验货操作时的参数
            "sku_id": "D666",  # 新增:订单商品的sku_id
          },
          ...
        ]
      },
      "msg": "ok"
    }

/driver/delivery/confirm_info (新接口)

接口描述
    司机App的装车验货操作页,装车验货摘要信息
Method
    POST
请求
    order_id            M       string      订单id
    delivery_id         M       string      订单对应配送单的id
响应
{
    "code": 0,      M   int     返回码,0表示成功,其他表示错误
    "msg": "ok",    M   string  code!=0时表示错误信息
    "data": {       M   dict    该订单的装车验货信息
        "sku_count": 21,                M   int     sku数目(商品种类数)
        "inspected_sku_count": 11       M   int     已验货数目
        "uninspected_sku_count": 10     M   int     未验货数目
    }
}

/driver/delivery/confirm (新接口)

接口描述
    司机App的装车验货操作页,对订单进行装车操作,仅 未装车 --> 已装车
Method
    POST
请求
    order_id            M       string      订单id
    delivery_id         M       string      订单对应配送单的id
响应
    {
        "code": 0,      M   int     返回码,0表示成功,其他表示错误
        "msg": "ok",    M   string  code!=0时表示错误信息
        "data":         M   null
    }

/driver/product/confirm (新接口)

接口描述
    司机App的装车验货操作页,对订单里的商品进行验货操作, 未验货 <--> 已验货
Method
    POST
请求
    order_id            M       string      订单id
    sku_ids             M       array       订单里的商品id列表
    delivery_id         M       string      订单对应配送单的id
    delivery_sku_ids    M       array       配送单里商品id列表
    status              M       int         设置商品的验货状态, 2: 已验货  1: 未验货
响应
    {
        "code": 0,      M   int     返回码,0表示成功,其他表示错误
        "msg": "ok",    M   string  code!=0时表示错误信息
        "data":         M   null
    }

/station/user (修改老接口)

接口描述

Method
    GET
请求
    无
响应
    {
        "code": 0,      M   int     返回码,0表示成功,其他表示错误
        "msg": "ok",    M   string  code!=0时表示错误信息
        "data": {
            ...
            "profile":  {           # 新增字段
                "sorting_product_code_type": 1      M   int     1 不带条形码 2 带条形码
            }
        }
    }

/station/profile/update (修改老接口)

接口描述
    Station的系统设置页面,修改系统设置接口
Method
    POST
请求
    # 增加 分拣商品码 的参数
    sorting_product_code_type       M   int   1 不带条形码(关闭时)  2 带条形码(开启时)
响应
   不变

/station/orders (修改老接口)

接口描述
    Station的订单列表页面
Method
    GET
请求
    # 增加装车状态的参数, 不传时默认不过滤装车状态
    inspect_status      O       int     订单的装车状态字段筛选, 2: 已装车  1: 未装车
响应
   + 订单的信息增加装车状态的字段
   {
      "code": 0,
      "data": {
          ...
          "list": [
              {
              ...
              "id": "PL4765840",
              "inspect_status": 1       # 新增订单的装车状态字段, 2: 已装车  1: 未装车
              }
          ]
      },
      "msg": "ok"
    }

/weight/weight_collect/task/list (修改老接口)

接口描述
    Station的“分拣任务”的“分拣明细”列表页面
Method
    GET
请求
    # 增加验货状态的参数, 不传时默认不过滤验货状态
    inspect_status      O       int     商品的验货状态字段筛选, 2: 已验货  1: 未验货
响应
   + 订单里的商品增加验货状态的字段
    { 
      "code": 0,
      ...
      "data": [
        {
          "quantity": 1,
          "order_id": "PL4765840",
          "sku_id": "D4077353",
          ...
          "inspect_status": 1,  # 新增商品的验货状态字段, 2: 已验货  1: 未验货

        }
      ],
      "msg": "ok"
    }

/station/task/distribute/driver_tasks/get (修改老接口)

接口描述
    Station的“配送任务”中“司机任务列表”页面, 获取司机任务列表(统计信息列表)
Method
    GET
请求
    # 增加装车状态的参数, 不传时默认不过滤装车状态
    inspect_status      O       int     订单的装车状态字段筛选, 2: 已装车  1: 未装车
响应
    不变

/station/task/distribute/orders/get (修改老接口)

接口描述
    Station的“配送任务”中“司机任务列表”页面, 获取司机订单列表接口(订单信息列表)
Method
    GET
请求
    不变
响应
   + 订单维度增加3个字段:装车状态、装车人、装车时间
   {
      "code": 0,
      "data": {
        "in_query": false,
        ...
        "order": [
          {
            "customer_name": "csd406-1",
            "id": "PL4765840",
            "driver_id": 1,
            ...
            "inspect_status": 1,    # 订单的装车状态, 2: 已装车  1: 未装车
            "inspector": xxx,       # 装车人
            "inspect_time": 1,      # 装车时间
          }
        ]
      },
      "msg": "ok"
    }

/station/task/distribute/orders/products/get (新接口)

接口描述
    Station的“配送任务”中“司机任务列表”页面, 获取司机订单的商品列表接口(订单的商品信息列表)
Method
    GET
请求
    order_id    M   str     订单id
响应
   # 商品维度字段:商品名、下单数、出库数、金额、验货状态、验货时间
    {
      "code": 0,
      "data": [
        {
          "name": "五花肉",            # 商品名
          "quantity": 1,                # 下单数
          "real_quantity": 1,           # 出库数
          "real_item_price": 1,     # 金额(商品的出库金额)
          "inspect_status": 1,          # 验货状态, 2: 已验货  1: 未验货
          "inspect_time": "2019-03-07 23:30",       # 验货时间
        },
      ],
      "msg": "ok"
    }

第二部分:mes、pda接口改动的地方 (请求和响应均不变)

预分拣接口(添加限制package查询的type的逻辑)
    /weight/package/spu/details
    /weight/package/create
    /weight/package/delete
    /weight/package/export
    /weight/pda/package/get
    /weight/pda/sort/set_weight

称重:
    常规称重 /weight/sku/set_weight     
        1 检查是否需要生成对应的包装,没有则生成
    pda称重  /weightpda/sort/set_weight

打印:
    /weight/sku/print/infos
        1 检查是否需要生成对应的包装,没有则生成
        2 响应添加包装的信息

缺货:
    /weight/sku/out_of_stock
    /weight/pda/sort/out_of_stock

/weight/sku/print/infos (修改老接口)

接口描述
    常规分拣打印标签前获取信息
Method
    GET
请求
    不变
响应
    {
      "code": 0,
      "data": [
        {
          # 增加包装id字段
          "package_id": “123456”,
        },
      ],
      "msg": "ok"
    }