装车验货
装车验货
Head
- 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"
}