Files
MES/yawei-mes/.sql/2025-11-10_init前的sql文件/2025-10-17_兴万达改进(库存预警).sql
2026-04-02 10:39:03 +08:00

226 lines
5.3 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================
-- 兴万达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 '仓库IDNULL表示所有仓库',
`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;
-- ============================================
-- 脚本执行完成
-- ============================================