-- ============================================ -- 兴万达MES系统改进 - 库存预警功能 -- 创建时间:2025-10-17 -- ============================================ -- -- 本脚本包含库存预警功能的数据库变更: -- 1. 创建库存预警配置表 -- 2. 创建菜单及权限配置 -- -- 执行前请备份数据库! -- ============================================ -- ============================================ -- 1. 创建库存预警配置表 -- ============================================ CREATE TABLE IF NOT EXISTS `wm_inventory_alert` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `material_id` BIGINT NOT NULL COMMENT '物料ID', `material_number` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '物料编号(冗余字段)', `material_name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '物料名称(冗余字段)', `specification` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '规格型号(冗余字段)', `warehouse_id` BIGINT DEFAULT NULL COMMENT '仓库ID(NULL表示所有仓库)', `warehouse_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '仓库名称(冗余字段)', `max_quantity` DECIMAL(15,2) DEFAULT NULL COMMENT '库存上限数量', `min_quantity` DECIMAL(15,2) DEFAULT NULL COMMENT '库存下限数量', `status` CHAR(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '状态(0启用 1停用)', `remark` VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', `create_by` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '创建者', `create_time` DATETIME DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '更新者', `update_time` DATETIME DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), INDEX `idx_material_id` (`material_id`) USING BTREE, INDEX `idx_warehouse_id` (`warehouse_id`) USING BTREE, INDEX `idx_status` (`status`) USING BTREE, UNIQUE INDEX `uk_material_warehouse` (`material_id`, `warehouse_id`) USING BTREE COMMENT '同一物料在同一仓库只能有一条预警配置' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='库存预警配置表'; -- ============================================ -- 2. 插入菜单和权限配置 -- ============================================ -- 2.1 插入库存预警主菜单(与即时库存同级) INSERT INTO `sys_menu` VALUES ( 2400, '库存预警', 2082, 1, 'inventoryAlert', 'mes/warehouse/inventoryAlert/index', NULL, 1, 0, 'C', '0', '0', 'warehouse:inventoryAlert:list', 'warning', 'admin', NOW(), '', NULL, '库存预警菜单' ); -- 2.2 插入库存预警-查询权限 INSERT INTO `sys_menu` VALUES ( 2401, '库存预警查询', 2400, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'warehouse:inventoryAlert:query', '#', 'admin', NOW(), '', NULL, '' ); -- 2.3 插入库存预警-新增权限 INSERT INTO `sys_menu` VALUES ( 2402, '库存预警新增', 2400, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'warehouse:inventoryAlert:add', '#', 'admin', NOW(), '', NULL, '' ); -- 2.4 插入库存预警-修改权限 INSERT INTO `sys_menu` VALUES ( 2403, '库存预警修改', 2400, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'warehouse:inventoryAlert:edit', '#', 'admin', NOW(), '', NULL, '' ); -- 2.5 插入库存预警-删除权限 INSERT INTO `sys_menu` VALUES ( 2404, '库存预警删除', 2400, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'warehouse:inventoryAlert:remove', '#', 'admin', NOW(), '', NULL, '' ); -- 2.6 插入库存预警-导出权限 INSERT INTO `sys_menu` VALUES ( 2405, '库存预警导出', 2400, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'warehouse:inventoryAlert:export', '#', 'admin', NOW(), '', NULL, '' ); -- ============================================ -- 3. 测试数据(可选,用于开发测试) -- ============================================ -- 示例:为某个物料设置库存预警 -- INSERT INTO `wm_inventory_alert` VALUES ( -- 1, -- 100, -- 'MAT001', -- '测试物料', -- '100*200*300', -- 9, -- '原材料仓库', -- 1000.00, -- 100.00, -- '0', -- '测试预警配置', -- 'admin', -- NOW(), -- '', -- NULL -- ); -- ============================================ -- 验证查询(执行后运行这些查询验证结果) -- ============================================ -- 验证1:检查表是否创建成功 -- SELECT COUNT(*) as table_exists -- FROM INFORMATION_SCHEMA.TABLES -- WHERE TABLE_SCHEMA = DATABASE() -- AND TABLE_NAME = 'wm_inventory_alert'; -- 验证2:检查菜单是否创建成功 -- SELECT menu_id, menu_name, parent_id, path, component, perms -- FROM sys_menu -- WHERE menu_id >= 2400 AND menu_id <= 2405 -- ORDER BY menu_id; -- 验证3:检查库存预警配置数据 -- SELECT * FROM wm_inventory_alert; -- ============================================ -- 脚本执行完成 -- ============================================