226 lines
5.3 KiB
SQL
226 lines
5.3 KiB
SQL
-- ============================================
|
||
-- 兴万达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;
|
||
|
||
-- ============================================
|
||
-- 脚本执行完成
|
||
-- ============================================
|
||
|