|
|
@@ -7924,87 +7924,4 @@ private void runMigration100() {
|
|
|
log.warn("插入membership_benefits种子数据失败: {}", ex.getMessage());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- ensureColumn("products", "min_stock_alert", "INT DEFAULT 0 COMMENT '库存预警阈值(低于此值预警)'");
|
|
|
-
|
|
|
- // 迁移173: 创建库存管理4张表(inventory_transactions/counting_records/inbound_orders/inbound_items)
|
|
|
- try {
|
|
|
- jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS inventory_transactions (" +
|
|
|
- "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
- "product_id BIGINT COMMENT '商品ID', " +
|
|
|
- "sku_id BIGINT COMMENT 'SKU ID', " +
|
|
|
- "type VARCHAR(32) COMMENT '交易类型: INBOUND/OUTBOUND/ADJUSTMENT/TRANSFER/COUNT', " +
|
|
|
- "direction TINYINT COMMENT '方向: 1=入库, -1=出库', " +
|
|
|
- "quantity INT NOT NULL COMMENT '数量', " +
|
|
|
- "before_stock INT COMMENT '操作前库存', " +
|
|
|
- "after_stock INT COMMENT '操作后库存', " +
|
|
|
- "reference_type VARCHAR(32) COMMENT '关联业务类型', " +
|
|
|
- "reference_id BIGINT COMMENT '关联业务ID', " +
|
|
|
- "operator_id BIGINT COMMENT '操作人ID', " +
|
|
|
- "remark TEXT COMMENT '备注', " +
|
|
|
- "created_at DATETIME DEFAULT CURRENT_TIMESTAMP " +
|
|
|
- ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存交易流水表'");
|
|
|
- log.info("已创建inventory_transactions表");
|
|
|
- } catch (Exception e) { /* 表已存在,忽略 */ }
|
|
|
-
|
|
|
- try {
|
|
|
- jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS inventory_counting_records (" +
|
|
|
- "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
- "product_id BIGINT COMMENT '商品ID', " +
|
|
|
- "sku_id BIGINT COMMENT 'SKU ID', " +
|
|
|
- "expected_stock INT COMMENT '账面库存', " +
|
|
|
- "actual_stock INT COMMENT '实际库存', " +
|
|
|
- "difference INT COMMENT '差异', " +
|
|
|
- "status VARCHAR(16) DEFAULT 'pending' COMMENT '状态', " +
|
|
|
- "operator_id BIGINT COMMENT '盘点人ID', " +
|
|
|
- "remark TEXT COMMENT '备注', " +
|
|
|
- "created_at DATETIME DEFAULT CURRENT_TIMESTAMP " +
|
|
|
- ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存盘点记录表'");
|
|
|
- log.info("已创建inventory_counting_records表");
|
|
|
- } catch (Exception e) { /* 表已存在,忽略 */ }
|
|
|
-
|
|
|
- try {
|
|
|
- jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS inventory_inbound_orders (" +
|
|
|
- "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
- "order_no VARCHAR(64) NOT NULL COMMENT '入库单号', " +
|
|
|
- "supplier_id BIGINT COMMENT '供应商ID', " +
|
|
|
- "supplier_name VARCHAR(100) COMMENT '供应商名称', " +
|
|
|
- "status VARCHAR(16) DEFAULT 'pending' COMMENT '状态', " +
|
|
|
- "total_items INT DEFAULT 0 COMMENT '商品种类数', " +
|
|
|
- "operator_id BIGINT COMMENT '操作人ID', " +
|
|
|
- "remark TEXT COMMENT '备注', " +
|
|
|
- "created_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
|
|
|
- "updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP " +
|
|
|
- ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存入库单表'");
|
|
|
- log.info("已创建inventory_inbound_orders表");
|
|
|
- } catch (Exception e) { /* 表已存在,忽略 */ }
|
|
|
-
|
|
|
- try {
|
|
|
- jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS inventory_inbound_items (" +
|
|
|
- "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
- "inbound_order_id BIGINT NOT NULL COMMENT '入库单ID', " +
|
|
|
- "product_id BIGINT NOT NULL COMMENT '商品ID', " +
|
|
|
- "sku_id BIGINT COMMENT 'SKU ID', " +
|
|
|
- "quantity INT NOT NULL COMMENT '入库数量', " +
|
|
|
- "created_at DATETIME DEFAULT CURRENT_TIMESTAMP " +
|
|
|
- ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存入库明细表'");
|
|
|
- log.info("已创建inventory_inbound_items表");
|
|
|
- } catch (Exception e) { /* 表已存在,忽略 */ }
|
|
|
-
|
|
|
- // 迁移174: product_skus 添加 min_stock_alert 和 min_quantity 列(SKU库存预警+最小购买数,配合库存管理模块)
|
|
|
- ensureColumn("product_skus", "min_stock_alert", "INT DEFAULT 0 COMMENT '库存预警阈值(低于此值预警)'");
|
|
|
- ensureColumn("product_skus", "min_quantity", "INT DEFAULT 1 COMMENT '最小购买数量限制'");
|
|
|
-
|
|
|
- // 迁移175: inventory_inbound_orders 添加 inbound_date 和 total_amount 列(入库单扩展)
|
|
|
- ensureColumn("inventory_inbound_orders", "inbound_date", "DATE COMMENT '入库日期'");
|
|
|
- ensureColumn("inventory_inbound_orders", "total_amount", "INT DEFAULT 0 COMMENT '入库总金额(分)'");
|
|
|
-
|
|
|
- // 迁移176: product_orders 添加 shipping_cost 列(快递费)
|
|
|
- ensureColumn("product_orders", "shipping_cost", "INT DEFAULT 0 COMMENT '快递费(分)'");
|
|
|
-
|
|
|
- // 迁移177: 添加进价字段(products/product_skus/inventory_inbound_items)
|
|
|
- ensureColumn("products", "purchase_price", "DECIMAL(10,2) DEFAULT 0.00 COMMENT '进价(分)'");
|
|
|
- ensureColumn("product_skus", "purchase_price", "DECIMAL(10,2) DEFAULT 0.00 COMMENT '进价(分)'");
|
|
|
- ensureColumn("inventory_inbound_items", "purchase_price", "DECIMAL(10,2) DEFAULT 0.00 COMMENT '入库单价(分)'");
|
|
|
- }
|
|
|
}
|