-- ============================================= -- MES 接口日志页面数据库配置脚本 -- 创建日期: 2026-04-13 -- 说明: 创建性能索引、菜单记录、数据字典 -- ============================================= -- ============================================= -- Step 1: 创建性能索引 -- ============================================= -- 接口类型索引 IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_MesApiLog_ApiType' AND object_id = OBJECT_ID('Dt_MesApiLog')) BEGIN CREATE INDEX IX_MesApiLog_ApiType ON Dt_MesApiLog(ApiType); PRINT '索引 IX_MesApiLog_ApiType 已创建'; END ELSE PRINT '索引 IX_MesApiLog_ApiType 已存在'; -- 创建时间索引 IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_MesApiLog_CreateDate' AND object_id = OBJECT_ID('Dt_MesApiLog')) BEGIN CREATE INDEX IX_MesApiLog_CreateDate ON Dt_MesApiLog(CreateDate DESC); PRINT '索引 IX_MesApiLog_CreateDate 已创建'; END ELSE PRINT '索引 IX_MesApiLog_CreateDate 已存在'; -- 成功状态索引 IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_MesApiLog_IsSuccess' AND object_id = OBJECT_ID('Dt_MesApiLog')) BEGIN CREATE INDEX IX_MesApiLog_IsSuccess ON Dt_MesApiLog(IsSuccess); PRINT '索引 IX_MesApiLog_IsSuccess 已创建'; END ELSE PRINT '索引 IX_MesApiLog_IsSuccess 已存在'; -- 创建人索引 IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_MesApiLog_Creator' AND object_id = OBJECT_ID('Dt_MesApiLog')) BEGIN CREATE INDEX IX_MesApiLog_Creator ON Dt_MesApiLog(Creator); PRINT '索引 IX_MesApiLog_Creator 已创建'; END ELSE PRINT '索引 IX_MesApiLog_Creator 已存在'; PRINT '====================================='; PRINT '索引创建完成'; PRINT '====================================='; GO -- ============================================= -- Step 2: 添加菜单记录 -- ============================================= -- 查询系统管理菜单的 ID DECLARE @SystemMenuId INT; SELECT TOP 1 @SystemMenuId = Id FROM Dt_Menu WHERE MenuName LIKE '%系统%' OR MenuName LIKE '%System%'; IF @SystemMenuId IS NULL BEGIN PRINT '警告: 未找到系统管理菜单,请手动确认菜单 ID'; END ELSE BEGIN PRINT '系统管理菜单 ID: ' + CAST(@SystemMenuId AS VARCHAR(10)); -- 检查 MES 接口日志菜单是否已存在 IF NOT EXISTS (SELECT 1 FROM Dt_Menu WHERE Url = '/Mes_Log') BEGIN INSERT INTO Dt_Menu (ParentId, MenuName, Url, Component, Permission, Sort, Icon, CreateDate, Modifier) VALUES ( @SystemMenuId, 'MES接口日志', '/Mes_Log', 'views/system/Mes_Log', 'Mes_Log:view', (SELECT ISNULL(MAX(Sort), 0) + 1 FROM Dt_Menu WHERE ParentId = @SystemMenuId), 'el-icon-document', GETDATE(), 'System' ); PRINT 'MES接口日志菜单已添加,ID: ' + CAST(SCOPE_IDENTITY() AS VARCHAR(10)); END ELSE BEGIN PRINT 'MES接口日志菜单已存在'; END END GO -- ============================================= -- Step 3: 添加数据字典记录 -- ============================================= -- 接口类型字典 DECLARE @DictId INT; SELECT @DictId = Id FROM Dt_Dictionary WHERE DictKey = 'mesApiType'; IF @DictId IS NULL BEGIN INSERT INTO Dt_Dictionary (DictKey, DictValue, CreateDate, Modifier) VALUES ('mesApiType', 'MES接口类型', GETDATE(), 'System'); SET @DictId = SCOPE_IDENTITY(); PRINT 'MES接口类型字典已创建,ID: ' + CAST(@DictId AS VARCHAR(10)); END ELSE BEGIN PRINT 'MES接口类型字典已存在,ID: ' + CAST(@DictId AS VARCHAR(10)); END -- 添加接口类型选项 IF NOT EXISTS (SELECT 1 FROM Dt_DictionaryList WHERE DictId = @DictId AND [Key] = 'BindContainer') BEGIN INSERT INTO Dt_DictionaryList (DictId, Value, [Key], DisplayOrder, CreateDate, Modifier) VALUES (@DictId, '电芯绑定', 'BindContainer', 1, GETDATE(), 'System'); PRINT '接口类型选项已添加: BindContainer (电芯绑定)'; END IF NOT EXISTS (SELECT 1 FROM Dt_DictionaryList WHERE DictId = @DictId AND [Key] = 'UnBindContainer') BEGIN INSERT INTO Dt_DictionaryList (DictId, Value, [Key], DisplayOrder, CreateDate, Modifier) VALUES (@DictId, '电芯解绑', 'UnBindContainer', 2, GETDATE(), 'System'); PRINT '接口类型选项已添加: UnBindContainer (电芯解绑)'; END IF NOT EXISTS (SELECT 1 FROM Dt_DictionaryList WHERE DictId = @DictId AND [Key] = 'ContainerNgReport') BEGIN INSERT INTO Dt_DictionaryList (DictId, Value, [Key], DisplayOrder, CreateDate, Modifier) VALUES (@DictId, 'NG上报', 'ContainerNgReport', 3, GETDATE(), 'System'); PRINT '接口类型选项已添加: ContainerNgReport (NG上报)'; END IF NOT EXISTS (SELECT 1 FROM Dt_DictionaryList WHERE DictId = @DictId AND [Key] = 'InboundInContainer') BEGIN INSERT INTO Dt_DictionaryList (DictId, Value, [Key], DisplayOrder, CreateDate, Modifier) VALUES (@DictId, '托盘进站', 'InboundInContainer', 4, GETDATE(), 'System'); PRINT '接口类型选项已添加: InboundInContainer (托盘进站)'; END IF NOT EXISTS (SELECT 1 FROM Dt_DictionaryList WHERE DictId = @DictId AND [Key] = 'OutboundInContainer') BEGIN INSERT INTO Dt_DictionaryList (DictId, Value, [Key], DisplayOrder, CreateDate, Modifier) VALUES (@DictId, '托盘出站', 'OutboundInContainer', 5, GETDATE(), 'System'); PRINT '接口类型选项已添加: OutboundInContainer (托盘出站)'; END -- 调用状态字典 DECLARE @StatusDictId INT; SELECT @StatusDictId = Id FROM Dt_Dictionary WHERE DictKey = 'mesApiStatus'; IF @StatusDictId IS NULL BEGIN INSERT INTO Dt_Dictionary (DictKey, DictValue, CreateDate, Modifier) VALUES ('mesApiStatus', 'MES接口状态', GETDATE(), 'System'); SET @StatusDictId = SCOPE_IDENTITY(); PRINT 'MES接口状态字典已创建,ID: ' + CAST(@StatusDictId AS VARCHAR(10)); END ELSE BEGIN PRINT 'MES接口状态字典已存在,ID: ' + CAST(@StatusDictId AS VARCHAR(10)); END -- 添加状态选项 IF NOT EXISTS (SELECT 1 FROM Dt_DictionaryList WHERE DictId = @StatusDictId AND [Key] = 'true') BEGIN INSERT INTO Dt_DictionaryList (DictId, Value, [Key], DisplayOrder, CreateDate, Modifier) VALUES (@StatusDictId, '成功', 'true', 1, GETDATE(), 'System'); PRINT '状态选项已添加: true (成功)'; END IF NOT EXISTS (SELECT 1 FROM Dt_DictionaryList WHERE DictId = @StatusDictId AND [Key] = 'false') BEGIN INSERT INTO Dt_DictionaryList (DictId, Value, [Key], DisplayOrder, CreateDate, Modifier) VALUES (@StatusDictId, '失败', 'false', 2, GETDATE(), 'System'); PRINT '状态选项已添加: false (失败)'; END PRINT '====================================='; PRINT '数据字典配置完成'; PRINT '====================================='; GO -- ============================================= -- 执行完毕 -- ============================================= PRINT '====================================='; PRINT 'MES 接口日志页面数据库配置执行完毕'; PRINT '=====================================';