-- =============================================
-- WMS MES接口调用日志表
-- 创建日期: 2026-04-12
-- 描述: 记录所有MES接口的调用日志，包括请求、响应、耗时、成功/失败状态等信息
-- =============================================

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Dt_MesApiLog')
BEGIN
    CREATE TABLE Dt_MesApiLog (
        Id BIGINT PRIMARY KEY IDENTITY(1,1),
        ApiType NVARCHAR(50) NOT NULL,           -- 接口类型
        RequestJson NVARCHAR(MAX) NULL,          -- 请求JSON
        ResponseJson NVARCHAR(MAX) NULL,         -- 响应JSON
        IsSuccess BIT NOT NULL DEFAULT 0,        -- 是否成功
        ErrorMessage NVARCHAR(500) NULL,         -- 错误信息
        ElapsedMs INT NOT NULL DEFAULT 0,        -- 耗时(毫秒)
        CreateDate DATETIME NOT NULL,            -- 创建时间
        Creator NVARCHAR(50) NULL,               -- 创建人
        ModifyDate DATETIME NULL,                -- 修改时间
        Modifier NVARCHAR(50) NULL               -- 修改人
    );

    -- 创建索引
    CREATE INDEX IX_MesApiLog_ApiType ON Dt_MesApiLog(ApiType);
    CREATE INDEX IX_MesApiLog_CreateDate ON Dt_MesApiLog(CreateDate);
    CREATE INDEX IX_MesApiLog_IsSuccess ON Dt_MesApiLog(IsSuccess);

    PRINT 'MES接口日志表 Dt_MesApiLog 创建成功';
END
ELSE
BEGIN
    PRINT 'MES接口日志表 Dt_MesApiLog 已存在';
END
GO

-- =============================================
-- 插入MES系统配置
-- =============================================

-- 检查并插入MES设备编码配置
IF NOT EXISTS (SELECT * FROM Dt_SystemConfig WHERE ConfigKey = 'MES_EquipmentCode')
BEGIN
    INSERT INTO Dt_SystemConfig (ConfigKey, ConfigValue, Description, CreateDate, Modifier)
    VALUES ('MES_EquipmentCode', 'WCS_001', 'MES设备编码', GETDATE(), 'System');
    PRINT 'MES设备编码配置插入成功';
END
ELSE
BEGIN
    PRINT 'MES设备编码配置已存在';
END
GO

-- 检查并插入MES资源编码配置
IF NOT EXISTS (SELECT * FROM Dt_SystemConfig WHERE ConfigKey = 'MES_ResourceCode')
BEGIN
    INSERT INTO Dt_SystemConfig (ConfigKey, ConfigValue, Description, CreateDate, Modifier)
    VALUES ('MES_ResourceCode', 'RESOURCE_001', 'MES资源编码', GETDATE(), 'System');
    PRINT 'MES资源编码配置插入成功';
END
ELSE
BEGIN
    PRINT 'MES资源编码配置已存在';
END
GO

-- 检查并插入MES接口地址配置
IF NOT EXISTS (SELECT * FROM Dt_SystemConfig WHERE ConfigKey = 'MES_ApiBaseUrl')
BEGIN
    INSERT INTO Dt_SystemConfig (ConfigKey, ConfigValue, Description, CreateDate, Modifier)
    VALUES ('MES_ApiBaseUrl', 'http://mes-server/api', 'MES接口地址', GETDATE(), 'System');
    PRINT 'MES接口地址配置插入成功';
END
ELSE
BEGIN
    PRINT 'MES接口地址配置已存在';
END
GO

-- 检查并插入MES接口超时时间配置
IF NOT EXISTS (SELECT * FROM Dt_SystemConfig WHERE ConfigKey = 'MES_TimeoutSeconds')
BEGIN
    INSERT INTO Dt_SystemConfig (ConfigKey, ConfigValue, Description, CreateDate, Modifier)
    VALUES ('MES_TimeoutSeconds', '30', 'MES接口超时时间(秒)', GETDATE(), 'System');
    PRINT 'MES接口超时时间配置插入成功';
END
ELSE
BEGIN
    PRINT 'MES接口超时时间配置已存在';
END
GO

PRINT 'MES接口日志表和系统配置脚本执行完成';
