| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- 注意,请把这几行注释掉执行sql,写这行的目的是进行必要的说明:
- 1. 本次更新会将库存从数据库中移除,并使用redis进行存储。
- 2. 这里的redis是持久化的,所以需要先部署好mall4j-aof-redis。这里的reids与mall4d-bbc中的redis是不同的两个,所以需要重新配置,并且是需要挂载持久化的。
- 3. 把库存放在redis进行持久化存储,是为了减少数据库压力,提高性能。所以这个redis是持久化的,不能随便删除挂载的文件,否则会导致数据丢失。
- 库存初始化步骤:
- 1.根据`mall4d-bbc`项目中提供的部署模板,部署持久化redis(mall4j-aof-redis)
- 2.执行以下sql, 重新配置各个服务的redis并重启服务
- 3.到xxl-job的控制台执行一次`初始化商品库存`的定时任务,执行后即可删除该定时任务
- # 修改菜单
- INSERT INTO `tz_shop_menu`(`menu_id`, `parent_id`, `url`, `perms`, `type`, `icon`, `order_num`, `hidden`) VALUES
- (742, 221, '', '', 0, '', 0, 0),
- (743, 742, 'stock/stowage/warehouse-manage/index', '', 1, '', 0, 0),
- (744, 742, 'stock/stowage/transfer-order/index', '', 1, '', 2, 0),
- (745, 742, 'stock/stowage/transfer-order-create/index', '', 1, '', 3, 1);
- INSERT INTO `tz_shop_menu_lang`(`menu_id`, `lang`, `name`) VALUES
- (742, 0, '仓库门店'),
- (743, 0, '仓库管理'),
- (744, 0, '调拨订单'),
- (745, 0, '新建调拨订单');
- UPDATE `tz_shop_menu` SET `order_num` = 1 WHERE `menu_id` = 222;
- UPDATE `tz_shop_menu` SET `order_num` = 2 WHERE `menu_id` = 237;
- UPDATE `tz_shop_menu` SET `order_num` = 3 WHERE `menu_id` = 225;
- UPDATE `tz_shop_menu` SET `order_num` = 4 WHERE `menu_id` = 229;
- UPDATE `tz_shop_menu` SET `order_num` = 5 WHERE `menu_id` = 259;
- UPDATE `tz_shop_menu` SET `parent_id` = 742, `url` = 'stock/stowage/admin-station/index', `order_num` = 1 WHERE `menu_id` = 38;
- # 添加库存管理表
- CREATE TABLE `tz_stock_point_sku` (
- `stock_point_sku_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '库存商品关联skuid',
- `stock_point_id` bigint NOT NULL COMMENT '库存点id',
- `stock_point_type` tinyint NOT NULL COMMENT '库存点类型 1仓库 2门店',
- `prod_id` bigint DEFAULT NULL COMMENT 'prod_id',
- `sku_id` bigint DEFAULT NULL COMMENT 'skuid',
- `status` tinyint DEFAULT '0' COMMENT '状态 1:enable, 0:disable, -1:deleted',
- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `type` tinyint DEFAULT '1' COMMENT '仓库类型(0默认仓库,1区域仓库)',
- `stock_mode` tinyint DEFAULT NULL COMMENT '库存模式 1共享总部库存 2独立销售库存',
- PRIMARY KEY (`stock_point_sku_id`),
- KEY `idx_stock_point_id` (`stock_point_id`) USING BTREE,
- KEY `idx_prod_id` (`prod_id`) USING BTREE,
- KEY `idx_sku_id` (`sku_id`) USING BTREE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
- # 新增仓库表
- CREATE TABLE `tz_warehouse` (
- `warehouse_id` bigint NOT NULL COMMENT '仓库id',
- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立时间',
- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `shop_id` bigint DEFAULT NULL COMMENT '店铺id',
- `warehouse_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '仓库名称',
- `type` tinyint DEFAULT NULL COMMENT '仓库类型(0默认仓库,1区域仓库)',
- `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '仓库地址',
- `manage` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '管理人',
- `phone` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '管理电话',
- `sys_type` tinyint DEFAULT NULL COMMENT '系统类型',
- `province_id` bigint DEFAULT NULL COMMENT '省ID',
- `province` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '省',
- `city_id` bigint DEFAULT NULL COMMENT '城市ID',
- `city` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '城市',
- `area_id` bigint DEFAULT NULL COMMENT '区ID',
- `area` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '区',
- PRIMARY KEY (`warehouse_id`),
- KEY `shop_id` (`shop_id`) USING BTREE,
- KEY `idx_province_id` (`province_id`) USING BTREE,
- KEY `idx_city_id` (`city_id`) USING BTREE,
- KEY `idx_area_id` (`area_id`) USING BTREE,
- KEY `idx_warehouse_id` (`warehouse_id`) USING BTREE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
- INSERT INTO `tz_warehouse` (`warehouse_id`,`shop_id`, `warehouse_name`, `type`, `address`, `manage`, `phone`, `sys_type`, `province_id`, `province`, `city_id`, `city`, `area_id`, `area`)
- VALUES
- (300000000000000,0,'默认仓库',0,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL),
- (300000000001000,1,'默认仓库',0,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL);
- # 为旧门店数据创建门店仓库
- INSERT INTO `tz_warehouse` ( `warehouse_id`, `shop_id`, `sys_type`, `type`, `warehouse_name`, `phone`, `province_id`, `province`, `city_id`, `city`, `area_id`, `area`, `address` )
- (
- SELECT
- station_id warehouse_id,
- station_id shop_id,
- '3' sys_type,
- '1' type,
- station_name warehouse_name,
- phone,
- province_id,
- province,
- city_id,
- city,
- area_id,
- area,
- addr address
- FROM
- `tz_station`);
- CREATE TABLE `tz_warehouse_area` (
- `warehouse_area_id` bigint NOT NULL AUTO_INCREMENT,
- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立时间',
- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `warehouse_id` bigint DEFAULT NULL COMMENT '仓库id',
- `area_id` bigint DEFAULT NULL COMMENT '城市id',
- PRIMARY KEY (`warehouse_area_id`) USING BTREE,
- KEY `idx_warehouse_id` (`warehouse_id`) USING BTREE,
- KEY `idx_city_id` (`area_id`) USING BTREE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='仓库项和供货城市关联信息';
- INSERT INTO `tz_leaf_alloc`(`biz_tag`, `max_id`, `step`, `update_time`, `description`) VALUES
- ('mall4j-stock-point', 1000, 1000, '2023-12-15 17:28:15', '库存点id'),
- ('mall4j-allot-order', 1000, 1000, '2023-12-15 17:28:15', '调拨订单id');
- # 所有门店添加库存模式,并统一为共享总部库存
- ALTER TABLE `tz_station`
- ADD COLUMN `stock_mode` tinyint DEFAULT NULL COMMENT '库存模式 1共享总部库存 2独立销售库存';
- update tz_station set stock_mode = 1;
- ALTER TABLE `tz_seckill`
- ADD COLUMN `replenish` int DEFAULT NULL COMMENT '补充库存 0不补充 1补充';
- CREATE TABLE `tz_seckill_stock_point_sku` (
- `seckill_stock_point_sku_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '库存商品关联skuid',
- `stock_point_id` bigint NOT NULL COMMENT '库存点id',
- `stock_point_type` tinyint NOT NULL COMMENT '库存点类型 1仓库 2门店',
- `sku_id` bigint DEFAULT NULL COMMENT 'sku_id',
- `seckill_sku_id` bigint DEFAULT NULL COMMENT '秒杀活动skuid',
- `status` tinyint DEFAULT '0' COMMENT '状态 1:enable, 0:disable, -1:deleted',
- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `type` tinyint DEFAULT NULL COMMENT '仓库类型(0默认仓库,1区域仓库)',
- `seckill_origin_stocks` int DEFAULT NULL COMMENT '秒杀库存点原始库存',
- `stock_mode` tinyint DEFAULT NULL COMMENT '库存模式 1共享总部库存 2独立销售库存',
- PRIMARY KEY (`seckill_stock_point_sku_id`),
- KEY `idx_stock_point_id` (`stock_point_id`) USING BTREE,
- KEY `idx_sku_id` (`sku_id`) USING BTREE,
- KEY `idx_seckill_sku_id` (`seckill_sku_id`) USING BTREE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
- # 商品组合商品相关字段
- ALTER TABLE `tz_prod`
- MODIFY `mold` tinyint NOT NULL COMMENT '商品类别 0.实物商品 1.虚拟商品 2.组合商品',
- ADD COLUMN `is_all_entity` INT DEFAULT NULL COMMENT '是否为全部实物商品的组合商品 1.是 0.否';
- ALTER TABLE `tz_sku` ADD COLUMN `stock_warning_status` tinyint NOT NULL DEFAULT '1' COMMENT '库存预警状态 2:库存充足 1:库存预警';
- CREATE TABLE `tz_sku_combo` (
- `sku_id` bigint NOT NULL COMMENT '规格id',
- `combo_sku_id` bigint NOT NULL COMMENT '组合的skuid',
- `combo_prod_id` bigint NOT NULL COMMENT '组合的spuid',
- `combo_count` int NOT NULL COMMENT '组合数量',
- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`sku_id`,`combo_sku_id`),
- KEY `idx_spu_id` (`combo_prod_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='规格组合商品关联表';
- ALTER TABLE `tz_order`
- ADD COLUMN main_order_number BIGINT NOT NULL DEFAULT '0' COMMENT '主单号,在组合/套餐商品拆单时会存在' AFTER `is_refund`,
- ADD KEY `idx_main_order_number` (`main_order_number`);
- ALTER TABLE `tz_order_item`
- ADD COLUMN `activity_id` bigint DEFAULT NULL COMMENT '活动id',
- ADD COLUMN `mold` tinyint NOT NULL COMMENT '商品类别 0.实物商品 1.虚拟商品 2.组合商品',
- ADD COLUMN `stock_point_id` bigint DEFAULT NULL COMMENT '库存点id',
- ADD COLUMN `activity_type` tinyint DEFAULT '0' COMMENT '活动类型 具体类型参考枚举类:OrderActivityType',
- ADD KEY `idx_activity_id` (`activity_id`);
- # 新增调拨订单
- CREATE TABLE `tz_allot_order` (
- `allot_order_id` BIGINT ( 0 ) NOT NULL COMMENT '调拨订单id',
- `out_warehouse_id` BIGINT ( 0 ) NULL DEFAULT NULL COMMENT '调出点仓库id',
- `out_stock_point_type` INT ( 0 ) NULL DEFAULT NULL COMMENT '调出点库存点类型(1:仓库, 2:门店)',
- `in_warehouse_id` BIGINT ( 0 ) NULL DEFAULT NULL COMMENT '调入点仓库id',
- `in_stock_point_type` INT ( 0 ) NULL DEFAULT NULL COMMENT '调入点库存点类型(1:仓库, 2:门店)',
- `dvy_company_id` BIGINT ( 0 ) NULL DEFAULT NULL COMMENT '物流公司id',
- `dvy_type` INT ( 0 ) NULL DEFAULT NULL COMMENT '物流方式(1:快递, 3:无需快递)',
- `dvy_order_number` VARCHAR ( 20 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流单号',
- `status` INT ( 0 ) NULL DEFAULT NULL COMMENT '状态(0:作废, 1:待入库, 2:部分入库, 3:已完成)',
- `total_allot_count` INT ( 0 ) NULL DEFAULT NULL COMMENT '总调拨数量',
- `remark` VARCHAR ( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
- `shop_id` BIGINT ( 0 ) NULL COMMENT '店铺id',
- `sys_type` INT ( 1 ) NULL COMMENT '系统类型',
- `create_time` datetime ( 0 ) NULL DEFAULT NULL COMMENT '创建时间',
- `update_time` datetime ( 0 ) NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY ( `allot_order_id` ) USING BTREE,
- KEY `idx_out_warehouse_id` (`out_warehouse_id`),
- KEY `idx_in_warehouse_id` (`in_warehouse_id`),
- KEY `idx_dvy_company_id` (`dvy_company_id`),
- KEY `idx_shop_id` (`shop_id`)
- );
- # 新增调拨订单项
- CREATE TABLE `tz_allot_order_item` (
- `allot_order_item_id` BIGINT NOT NULL COMMENT '调拨订单商品id',
- `allot_order_id` BIGINT NULL COMMENT '调拨订单id',
- `spu_id` BIGINT NULL COMMENT '商品spuId',
- `sku_id` BIGINT NULL COMMENT '商品skuId',
- `allot_count` INT ( 255 ) NULL COMMENT '调拨数量',
- `allot_in_count` INT ( 255 ) NULL COMMENT '调拨入库数量',
- `create_time` datetime NULL COMMENT '创建时间',
- `update_time` datetime NULL COMMENT '创建时间',
- PRIMARY KEY ( `allot_order_item_id` ),
- KEY `idx_allot_order_id` (`allot_order_id`),
- KEY `idx_spu` (`spu_id`, `sku_id`)
- );
- # 库存流水字段补充
- ALTER TABLE `tz_stock_bill_log`
- ADD COLUMN `stock_point_id` bigint(0) NULL COMMENT '库存点Id' AFTER `maker_mobile`,
- ADD COLUMN `stock_point_type` tinyint(1) NULL COMMENT '库存点类型(1:仓库, 2:门店)' AFTER `stock_point_id`,
- ADD KEY `idx_stock_point_id` (`stock_point_id`);
- # 采购订单字段补充
- ALTER TABLE `tz_purchase_order`
- ADD COLUMN `warehouse_id` bigint(0) NULL COMMENT '仓库id' AFTER `employee_id`,
- ADD COLUMN `stock_point_type` tinyint(1) NULL COMMENT '库存点类型(1:仓库, 2:门店)' AFTER `warehouse_id`,
- ADD KEY `idx_warehouse_id` (`warehouse_id`);
- # 实物盘点字段补充
- ALTER TABLE `tz_take_stock`
- ADD COLUMN `warehouse_id` bigint(0) NULL COMMENT '仓库id' AFTER `maker_mobile`,
- ADD COLUMN `stock_point_type` tinyint(1) NULL COMMENT '库存点类型(1:仓库, 2:门店)' AFTER `warehouse_id`,
- ADD KEY `idx_warehouse_id` (`warehouse_id`);
- # 移除多余的菜单 1046和1047是无用的的路径分析子菜单
- delete from tz_sys_menu_lang where menu_id in (1046,1047);
- delete from tz_sys_menu where menu_id in (1046,1047);
- INSERT INTO `tz_leaf_alloc` (`biz_tag`, `max_id`, `step`, `description`)
- VALUES
- ("mall4j-purchases-order", 1, 100, "采购订单编号"),
- ("mall4j-ent-pay-order-no", 1, 100, "分销提现商家转账订单号"),
- ("mall4j-distribution-card-no", 1000000000000, 100, "分销员卡号"),
- ("mall4j-distribution-ticket", 1000000000000, 100, "分销商品二维码"),
- ("mall4j-seckill-order-path", 1000000000000, 100, "秒杀订单路径");
- # 补全旧的赠品订单项数据
- UPDATE `tz_order_item` SET activity_type = 5, activity_id = giveaway_order_item_id WHERE giveaway_order_item_id IS NOT NULL AND giveaway_order_item_id > 0;
- # 添加定时任务后只需要执行一次,将旧的商品数据转换
- insert into `xxl_job`.`xxl_job_info`(`id`, `job_group`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`,
- `schedule_type`, `schedule_conf`, `misfire_strategy`, `executor_route_strategy`,
- `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`,
- `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`,
- `child_jobid`, `trigger_status`, `trigger_last_time`, `trigger_next_time`)
- values
- (48,2, '初始化商品库存', '2024-03-06 10:07:30', '2024-03-06 10:07:30', 'admin', '', 'CRON',
- '0 0/30 * * * ?', 'DO_NOTHING', 'FIRST', 'intiStock', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN',
- '', 'GLUE代码初始化', '2023-12-25 10:07:30', '', 0, 0, 0),
- (49,2, '退款订单库存处理', '2024-03-06 10:07:30', '2024-03-06 10:07:30', 'admin', '', 'CRON',
- '0 0/5 * * * ?', 'DO_NOTHING', 'FIRST', 'refundOrderStock', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN',
- '', 'GLUE代码初始化', '2023-12-25 10:07:30', '', 1, 0, 0),
- (50,2, '恢复商品sku库存', '2024-03-06 10:07:30', '2024-03-06 10:07:30', 'admin', '', 'CRON',
- '0 0/30 * * * ?', 'DO_NOTHING', 'FIRST', 'restoreStock', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN',
- '', 'GLUE代码初始化', '2023-12-25 10:07:30', '', 0, 0, 0)
- ;
- delete from `xxl_job`.`xxl_job_info` where executor_handler in ('hotStockPlacement', 'coldStockPlacement')
|