1. 简介
继续之前的仓储管理系统的模块功能分析。
2. 定仓
定仓管理是该仓储管理系统中所特有的一个功能。
定仓的含义是用户需要提前预定自己所需要的仓库空间。之后根据定仓的情况生成入库单。再之后用户就可以根据入库单把商品运送到仓库进行入库了。
用户定仓时需要填写定仓申请,而定仓申请的添加有两种方式。一种是仓储管理系统的用户自己填写(包括商品的详情,货件的详情,租赁时间,支付等等);另一种是商品的生产者也就是工厂代为填写(只填写商品的详情和和货件详情),填写完成之后用户在进行补充剩余的信息(租赁时间,支付等)。
定仓的过程参考了亚马逊仓储管理流程,定仓的流程相对复杂一些,但是功能也是更加完善一些。
这里先叙述一下定仓的流程,方便大家的理解以及后续自己的学习巩固。
比如:用户A有三种不同的商品(分别是SKU001,SKU002,SKU003)需要租赁公司的仓库。用户A需要先确认这三种商品的包装类型,是混在一起包装还是原厂包装等,确认好商品的包装类型之后,还需要确认单个商品的包装尺寸大小即包装的长宽高,然后还需要为每个商品贴上该商品自己的商品标签(这里主要是为了入库以及出库时确认商品的数量和商品的属性)。处理完之后还需要把商品打包成一个个大的货件(这里应该主要是方便运输管理),打包成货件之后,还需要确认货件的配送方式,货件的重量,货件的尺寸,货件的数量,以及货件的标签和货件中包含的商品信息等等。处理完上述的一切之后,然后在通过不同的配送方式送到仓库的所在地。
表结构的设计如下:
CREATE TABLE `tbl_book_ware_house_apply` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`book_code` varchar(32) DEFAULT NULL COMMENT '定仓编号',
`ship_address_id` bigint(20) DEFAULT NULL COMMENT '发货地址Id',
`wrap_id` bigint(20) DEFAULT NULL COMMENT '包装类型id',
`predict_start_time` datetime DEFAULT NULL COMMENT '预计租仓开始时间',
`predict_end_time` datetime DEFAULT NULL COMMENT '预计租仓结束时间',
`free_count` int(11) DEFAULT NULL COMMENT '免费租仓天数',
`predict_count` int(11) DEFAULT NULL COMMENT '预计租仓天数',
`ware_house_id` bigint(20) DEFAULT NULL COMMENT '分配仓库id',
`cost` decimal(10,2) DEFAULT NULL COMMENT '租仓费用',
`product_count` int(11) DEFAULT NULL COMMENT '商品总数',
`product_unit` varchar(10) DEFAULT NULL COMMENT '商品单位',
`is_pay` tinyint(2) DEFAULT NULL COMMENT '是否支付',
`apply_time` datetime DEFAULT NULL COMMENT '申请时间',
`apply_user` bigint(20) DEFAULT NULL COMMENT '申请人',
`created_time` datetime NOT NULL COMMENT '创建时间',
`status` tinyint(3) NOT NULL COMMENT '0 正常, 1 禁用, 2 注销',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='定仓申请表';
CREATE TABLE `tbl_user_ship_address` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`user_id` bigint(20) NOT NULL COMMENT '用户id',
`province_id` bigint(20) NOT NULL COMMENT '省份id',
`province` varchar(20) DEFAULT NULL COMMENT '省份',
`city_id` bigint(20) NOT NULL COMMENT '市id',
`city` varchar(20) DEFAULT NULL COMMENT '市',
`area_id` bigint(20) NOT NULL COMMENT '区县id',
`area` varchar(20) DEFAULT NULL COMMENT '区县',
`address` varchar(255) NOT NULL COMMENT '详细地址',
`contacts` varchar(20) NOT NULL COMMENT '联系人',
`phone` varchar(11) NOT NULL COMMENT '联系电话',
`created_time` datetime NOT NULL COMMENT '创建时间',
`deleted_time` datetime DEFAULT NULL COMMENT '删除时间',
`status` tinyint(3) NOT NULL COMMENT '0 正常, 1 禁用, 2 注销',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='用户发货地址';
CREATE TABLE `tbl_wrap_type` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(32) DEFAULT NULL COMMENT '类型名称',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`status` tinyint(3) DEFAULT NULL COMMENT '状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='包装类型';
CREATE TABLE `tbl_book_ware_house_cost_detail` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`book_ware_house_id` bigint(20) DEFAULT NULL COMMENT '定仓申请id',
`cost_name` varchar(32) DEFAULT NULL COMMENT '费用名称',
`days_count` int(9) DEFAULT NULL COMMENT '天数',
`count` int(11) DEFAULT NULL COMMENT '数量',
`unit_price` decimal(10,2) DEFAULT NULL COMMENT '单价',
`total_price` decimal(10,2) DEFAULT NULL COMMENT '总价',
`description` varchar(255) DEFAULT NULL COMMENT '说明',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='定仓费用详情表';
CREATE TABLE `tbl_book_ware_house_pay_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`book_ware_house_id` bigint(20) DEFAULT NULL COMMENT '定仓申请id',
`pay_type` int(11) DEFAULT NULL COMMENT '支付方式',
`pay_time` datetime DEFAULT NULL COMMENT '支付时间',
`total_price` decimal(10,2) DEFAULT NULL COMMENT '支付金额',
`is_pay` tinyint(2) DEFAULT NULL COMMENT '是否支付',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='定仓支付信息';
CREATE TABLE `tbl_book_ware_house_product` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`book_ware_house_id` bigint(20) DEFAULT NULL COMMENT '定仓申请Id',
`category_id` bigint(20) DEFAULT NULL COMMENT '商品所属类目id',
`product_code` varchar(32) DEFAULT NULL COMMENT '商品编码(对应库存管理中的SKU)',
`user_id` bigint(20) NOT NULL COMMENT '用户id',
`product_count` int(11) DEFAULT NULL COMMENT '商品数量',
`length` double DEFAULT NULL COMMENT '单个商品包装尺寸的长(cm)',
`width` double DEFAULT NULL COMMENT '单个商品包装尺寸的宽(cm)',
`height` double DEFAULT NULL COMMENT '单个商品包装尺寸的高(cm)',
`label_count` int(11) DEFAULT NULL COMMENT '需打印的标签数量',
`created_time` datetime NOT NULL COMMENT '创建时间',
`status` tinyint(3) NOT NULL COMMENT '0 正常, 1 禁用, 2 注销',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`unit` varchar(32) DEFAULT NULL COMMENT '商品单位',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='定仓申请商品表';
CREATE TABLE `tbl_product_wrap_size` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`length` double DEFAULT NULL COMMENT '长(cm)',
`width` double DEFAULT NULL COMMENT '宽(cm)',
`height` double DEFAULT NULL COMMENT '高(cm)',
`product_code` varchar(32) DEFAULT NULL COMMENT '商品SKU',
`user_id` bigint(20) DEFAULT NULL COMMENT '用户id',
`created_time` datetime DEFAULT NULL COMMENT '创建时间',
`status` tinyint(3) DEFAULT NULL COMMENT '状态',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='商品包装尺寸';
CREATE TABLE `tbl_package` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`package_code` varchar(32) NOT NULL COMMENT '货件编号',
`package_name` varchar(32) NOT NULL COMMENT '货件名称',
`address` varchar(255) DEFAULT NULL COMMENT '配送地址',
`consignee` varchar(32) DEFAULT NULL COMMENT '收货人',
`phone` varchar(11) DEFAULT NULL COMMENT '收货人联系方式',
`distribution_type_id` bigint(20) DEFAULT NULL COMMENT '配送方式id',
`box_count` int(11) DEFAULT NULL COMMENT '箱子数量',
`logistics_company` varchar(64) DEFAULT NULL COMMENT '物流公司',
`logistics_code` varchar(64) DEFAULT NULL COMMENT '物流编号',
`user_id` bigint(20) NOT NULL COMMENT '用户id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`status` tinyint(3) NOT NULL COMMENT '状态',
`book_ware_house_id` bigint(20) NOT NULL COMMENT '定仓申请id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='货件表';
CREATE TABLE `tbl_package_box` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`box_code` varchar(20) DEFAULT NULL COMMENT '箱子编号',
`package_id` bigint(20) DEFAULT NULL COMMENT '货件id',
`weight` double DEFAULT NULL COMMENT '重量(磅)',
`length` double DEFAULT NULL COMMENT '长(cm)',
`width` double DEFAULT NULL COMMENT '宽(cm)',
`height` double DEFAULT NULL COMMENT '高(cm)',
`created_time` datetime NOT NULL COMMENT '创建时间',
`status` tinyint(3) NOT NULL COMMENT '0 正常, 1 禁用, 2 注销',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 COMMENT='货件箱子详情';
CREATE TABLE `tbl_package_box_product` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`package_id` bigint(20) NOT NULL COMMENT '货件id',
`box_id` bigint(20) NOT NULL COMMENT '箱子id',
`product_code` varchar(32) NOT NULL COMMENT '商品SKU',
`produt_count` int(11) NOT NULL COMMENT '商品数量',
`created_time` datetime DEFAULT NULL COMMENT '创建时间',
`status` tinyint(3) DEFAULT NULL COMMENT '0 正常, 1 禁用, 2 注销',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='箱子商品详情';
CREATE TABLE `tbl_distribution_type` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(32) DEFAULT NULL COMMENT '类型名称',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`status` tinyint(3) DEFAULT NULL COMMENT '状态',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='配送方式';
最后在附上一张图片,方便整体理解: