using MainForm.ClassFile.ProjectClass;
using MainForm.DbHelper;
using MainForm.Models;
using StandardLibrary;
using System;
using System.Data;
namespace MainForm
{
    /// 
    /// 全局变量
    /// 
    public class GlobalContext
    {
        #region 变量
        //消息委托和事件
        public static Action Set;    // 更新UI的委托方法
        public static Action Save;   // 保存的委托方法
        public static Action Close;  // 关闭的委托方法
        /// 
        /// 日志文件保存位置
        /// 
        public static string FilePath = AppDomain.CurrentDomain.BaseDirectory + "Config.ini";
        public static string MainDir = @"D:\MESFile\";
        public static string WorkLogDir = MainDir + @"WorkLog\";  // 运行日志
        public static string PlcLogDir = MainDir + @"PLCLog\";    // plc写入日志
        public static string MqttLogDir = MainDir + @"MqttLog\";  // mqtt日志
        public static string ProcessDataDir = MainDir + @"ProcessData\";    // 加工数据日志
        public static string OneCheckDataDir = MainDir + @"OneCheckData\";  // 点检数据日志
        public static string SQLLogDir = MainDir + @"SQLLog\";    // sql日志
        public static string DBDir = @"D:\LocalDataBase\";
        public static string MqttServerPath = AppDomain.CurrentDomain.BaseDirectory + @"\ThingsMode\MqttServer.exe";
        public static string MqttServerName = "MqttServer";
        /// 
        /// 点检数据文件
        /// 
        public static string CheckOneDataPath = AppDomain.CurrentDomain.BaseDirectory + "CheckOneData.ini";
        // 产线及产品信息
        public static string Project_Code;          // 项⽬编码
        public static string Factory_Code;          // ⼯⼚编码
        public static string Process_Section_Code;  // ⼯段编码
        public static string LineCode;     // 线体编码
        public static string LineName;     // 线体名称
        public static string ProgramName;  // 程序名
        public static string WorkOrderCode;  // 车间订单号
        public static string BatchNumber;    // 批次号(splcode)
        public static string Mtltmrk;        // 产品型号(mtltmrk)
        //OP10
        public static string S1_work_station;   // [S1] ⼯站
        public static string S1_device_code;    // [S1] 装备编码
        public static string S1_station;        // [S1] ⼯位编码
        //OP20
        public static string S2_work_station;   // [S2] ⼯站
        public static string S2_device_code;    // [S2] 装备编码
        public static string S2_station;        // [S2] ⼯位编码
        //OP30
        public static string S3_1_work_station;  // [S3_1] ⼯站
        public static string S3_1_device_code;   // [S3_1] 装备编码
        public static string S3_1_station;       // [S3_1] ⼯位编码
        public static string S3_2_work_station;  // [S3_2] ⼯站
        public static string S3_2_device_code;   // [S3_2] 装备编码
        public static string S3_2_station;       // [S3_2] ⼯位编码
        //OP40
        public static string S4_work_station;    // [S4] ⼯站
        public static string S4_device_code;     // [S4] 装备编码
        public static string S4_station;         // [S4] ⼯位编码
        //OP50
        public static string S5_work_station;   // [S5] ⼯站
        public static string S5_device_code;    // [S5] 装备编码
        public static string S5_station;        // [S5] ⼯位编码
        //OP60
        public static string S6_work_station;   // [S6] ⼯站
        public static string S6_device_code;    // [S6] 装备编码
        public static string S6_station;        // [S6] ⼯位编码
        //OP70
        public static string S7_1_work_station;   // [S7_1] ⼯站
        public static string S7_1_device_code;    // [S7_1] 装备编码
        public static string S7_1_station;        // [S7_1] ⼯位编码
        public static string S7_2_work_station;   // [S7_2] ⼯站
        public static string S7_2_device_code;    // [S7_2] 装备编码
        public static string S7_2_station;        // [S7_2] ⼯位编码
        //OP80
        public static string S8_work_station;     // [S8] ⼯站
        public static string S8_device_code;      // [S8] 装备编码
        public static string S8_station;          // [S8] ⼯位编码
        //OP90
        public static string S9_work_station;     // [S9] ⼯站
        public static string S9_device_code;      // [S9] 装备编码
        public static string S9_station;          // [S9] ⼯位编码
        // 设备
        //public static string PCAddress="192.168.1.244";
        public static bool IsUsePLC1;
        public static bool IsUsePLC2;
        public static bool IsUsePLC3;
        public static bool IsUsePLC4;
        public static bool IsUsePLC5;
        public static bool IsUsePLC6;
        public static bool IsUsePLC7;
        public static bool IsUsePLC8;
        public static bool IsUsePLC9;
        public static string Machine1Address;
        public static string Machine2Address;
        public static string Machine3Address;
        public static string Machine4Address;
        public static string Machine5Address;
        public static string Machine6Address;
        public static string Machine7Address;
        public static string Machine8Address;
        public static string Machine9Address;
        public static string PCAddress;
        public static int MachinePort;
        // MES
        public static string MESAppId;   // 应用ID;mes_test
        public static string MESAppKey;  // API接口名称;mes
        public static string MESUserId;  // 用户ID
        public static string ServerHost;        // 主服务器IP
        public static string StationInMESUrl;   // 入站接口Url
        public static string StationOutMESUrl;  // 出站接口Url
        public static bool IsSendStationIn;      // 启用上传进站
        public static bool IsSendProcessData;    // 启用上传出站
        public static bool IsSendCheckOneData;   // 启用上传点检
        public static bool IsSendWorkingData;    // 启用上传状态
        public static bool IsSendAlarmData;      // 启用上传报警
        public static bool IsUseMESRoute;   // 启用边线MES软件
        // IOT - MQTT
        public static bool IOTIsConnect1;     // IOT-MQTT连接状态
        public static string MQTTServerHost;         // 服务器IP
        public static int MQTTServerPort;            // 服务器Port
        public static bool IsMqttSendProcessData;    // 上传过站数据
        public static bool IsMqttDeviceState;        // 上传设备状态
        public static bool IsMqttFaultLog;           // 上传故障⽇志
        public static bool IsMqttSensorData;         // 上传传感器数据
        public static bool IsMqttStationInputBegin;  // 上传节拍⽇志
        public static bool IsMqttOperateLog;         // 上传操作记录
        public static bool IsMqttEquiConfig;         // 上传装备配置
        public static bool IsMqttProcConfig;         // 上传⼯艺配置
        // IOT-AGV
        public static bool IsUseAGV;  // 是否 启用AGV
        public static string AGVHttpHost;  // Http IP地址
        public static string AGVMQTTHost;  // MQTT IP地址
        public static string AGVMQTTPort;  // MQTT端口
        // MES进出站 配置信息
        public static string S1_MachineId;  // 工站1 - 壳体清洁上料装备
        public static string S1_StationId;  // 工站1 - 壳体清洁上料装备
        public static string S2_MachineId;  // 工站2 - 上盖板上料装备
        public static string S2_StationId;  // 工站2 - 上盖板上料装备
        public static string S3_MachineId;  // 工站3 - 点散热胶装备
        public static string S3_StationId;  // 工站3 - 点散热胶装备
        public static string S4_MachineId;  // 工站4 - 胶线检测装备
        public static string S4_StationId;  // 工站4 - 胶线检测装备
        public static string S5_MachineId;  // 工站5 - ADD板上料组装装备
        public static string S5_StationId;  // 工站5 - ADD板上料组装装备
        public static string S6_MachineId;  // 工站6 - 组上盖板装备
        public static string S6_StationId;  // 工站6 - 组上盖板装备
        public static string S7_MachineId;  // 工站7 - 上盖板锁螺丝装备
        public static string S7_StationId;  // 工站7 - 上盖板锁螺丝装备
        public static string S8_MachineId;  // 工站8 - NG下料装备
        public static string S8_StationId;  // 工站8 - NG下料装备
        public static string S9_MachineId;  // 工站9 - 产品下料装备
        public static string S9_StationId;  // 工站9 - 产品下料装备
        // 本地数据库
        public static string Server;
        public static string User;
        public static string PassWord;
        //其它
        public static string CurrentUser = "";
        public static string MacStr = "";
        #region 是否可连接PLC-用户手动控制用(后加)
        public static bool _IsCon_Funs1 = true;
        public static bool _IsCon_Funs2 = true;
        public static bool _IsCon_Funs3 = true;
        public static bool _IsCon_Funs4 = true;
        public static bool _IsCon_Funs5 = true;
        public static bool _IsCon_Funs6 = true;
        public static bool _IsCon_Funs7 = true;
        public static bool _IsCon_Funs8 = true;
        public static bool _IsCon_Funs9 = true;
        public static bool _IsCon_plc1Heat = true;
        public static bool _IsCon_plc1Alarm = true;
        #endregion 是否可连接PLC-用户手动控制用(后加)
        #endregion 变量
        #region 常量
        //产品常量
        public const string ConstLineCode = "A1";
        public const string ConstLineName = "A1产线";
        public const string ConstProgramName = "A1程序名";
        public const string ConstSono = " ";
        public const string ConstWorkOrderCode = " ";
        public const string ConstBatchNumber = " ";
        public const string ConstMtltmrk = " ";
        public const string ConstSupplierCode = " ";
        //设备常量
        public const string ConstMachine1Address = "192.168.1.11";
        public const string ConstMachine2Address = "192.168.1.21";
        public const string ConstMachine3Address = "192.168.1.31";
        public const string ConstMachine4Address = "192.168.1.41";
        public const string ConstMachine5Address = "192.168.1.51";
        public const string ConstMachine6Address = "192.168.1.61";
        public const string ConstMachine7Address = "192.168.1.71";
        public const string ConstMachine8Address = "192.168.1.81";
        public const string ConstMachine9Address = "192.168.1.91";
        public const string ConstPcAddress = "192.168.1.10";
        public const string ConstMachinePort = "502";
        //MES常量
        public const string ConstServerHost = "10.1.19.33:8080";
        public const string ConstIsSendStationIn = "false";
        public const string ConstIsSendProcessData = "false";
        public const string ConstIsSendCheckOneData = "false";
        public const string ConstIsSendWorkingData = "false";
        public const string ConstIsSendAlarmData = "false";
        #endregion 常量
        public GlobalContext()
        {
            UpdateData();
        }
        /// 
        /// 更新全局变量
        /// 
        public static void UpdateData()
        {
            try
            {
                // 产线及产品信息
                Project_Code = IniFile.INIGetStringValue(FilePath, "Product", "ProjectCode", "");
                Factory_Code = IniFile.INIGetStringValue(FilePath, "Product", "FactoryCode", "");
                Process_Section_Code = IniFile.INIGetStringValue(FilePath, "Product", "ProcessSectionCode", "");
                LineCode = IniFile.INIGetStringValue(FilePath, "Product", "LineCode", ConstLineCode);
                LineName = IniFile.INIGetStringValue(FilePath, "Product", "LineName", ConstLineName);
                ProgramName = IniFile.INIGetStringValue(FilePath, "Product", "ProgramName", ConstProgramName);
                WorkOrderCode = IniFile.INIGetStringValue(FilePath, "Product", "WorkOrderCode", ConstWorkOrderCode);  // 车间订单号
                BatchNumber = IniFile.INIGetStringValue(FilePath, "Product", "BatchNumber", ConstBatchNumber);        // 批次号(splcode)
                Mtltmrk = IniFile.INIGetStringValue(FilePath, "Product", "Mtltmrk", ConstMtltmrk); ;                  // 产品型号(mtltmrk)
                //OP10 工位信息
                S1_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s1_work_station", "");  // [S1] ⼯站
                S1_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s1_device_code", "");    // [S1] 装备编码
                S1_station = IniFile.INIGetStringValue(FilePath, "Station", "s1_station", "");            // [S1] ⼯位编码
                //OP20
                S2_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s2_work_station", "");  // [S2] ⼯站
                S2_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s2_device_code", "");    // [S2] 装备编码
                S2_station = IniFile.INIGetStringValue(FilePath, "Station", "s2_station", "");            // [S2] ⼯位编码
                //OP30  Left
                S3_1_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_work_station", "");  // [S3_1] ⼯站
                S3_1_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_device_code", "");    // [S3_1] 装备编码
                S3_1_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_station", "");            // [S3_1] ⼯位编码
                //OP30  Right
                S3_2_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_2_work_station", "");  // [S3_2] ⼯站
                S3_2_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s3_2_device_code", "");    // [S3_2] 装备编码
                S3_2_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_2_station", "");            // [S3_2] ⼯位编码
                //OP40
                S4_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s4_work_station", "");      // [S4] ⼯站
                S4_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s4_device_code", "");        // [S4] 装备编码
                S4_station = IniFile.INIGetStringValue(FilePath, "Station", "s4_station", "");                // [S4] ⼯位编码
                //OP50
                S5_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s5_work_station", "");     // [S5] ⼯站
                S5_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s5_device_code", "");       // [S5] 装备编码
                S5_station = IniFile.INIGetStringValue(FilePath, "Station", "s5_station", "");               // [S5] ⼯位编码
                //OP60
                S6_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s6_work_station", "");     // [S6] ⼯站
                S6_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s6_device_code", "");       // [S6] 装备编码
                S6_station = IniFile.INIGetStringValue(FilePath, "Station", "s6_station", "");               // [S6] ⼯位编码
                //OP70
                S7_1_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s7_1_work_station", "");  // [S7_1] ⼯站
                S7_1_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s7_1_device_code", "");    // [S7_1] 装备编码
                S7_1_station = IniFile.INIGetStringValue(FilePath, "Station", "s7_1_station", "");            // [S7_1] ⼯位编码
                S7_2_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s7_2_work_station", "");  // [S7_2] ⼯站
                S7_2_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s7_2_device_code", "");    // [S7_2] 装备编码
                S7_2_station = IniFile.INIGetStringValue(FilePath, "Station", "s7_2_station", "");            // [S7_2] ⼯位编码
                //OP80
                S8_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s8_work_station", "");     // [S8] ⼯站
                S8_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s8_device_code", "");       // [S8] 装备编码
                S8_station = IniFile.INIGetStringValue(FilePath, "Station", "s8_station", "");               // [S8] ⼯位编码
                //OP90
                S9_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s9_work_station", "");     // [S9] ⼯站
                S9_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s9_device_code", "");       // [S9] 装备编码
                S9_station = IniFile.INIGetStringValue(FilePath, "Station", "s9_station", "");               // [S9] ⼯位编码
                // 设备
                IsUsePLC1 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC1", "false"));
                IsUsePLC2 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC2", "false"));
                IsUsePLC3 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC3", "false"));
                IsUsePLC4 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC4", "false"));
                IsUsePLC5 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC5", "false"));
                IsUsePLC6 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC6", "false"));
                IsUsePLC7 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC7", "false"));
                IsUsePLC8 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC8", "false"));
                IsUsePLC9 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC9", "false"));
                Machine1Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine1Address", ConstMachine1Address);
                Machine2Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine2Address", ConstMachine2Address);
                Machine3Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine3Address", ConstMachine3Address);
                Machine4Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine4Address", ConstMachine4Address);
                Machine5Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine5Address", ConstMachine5Address);
                Machine6Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine6Address", ConstMachine6Address);
                Machine7Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine7Address", ConstMachine7Address);
                Machine8Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine8Address", ConstMachine8Address);
                Machine9Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine9Address", ConstMachine9Address);
                PCAddress = IniFile.INIGetStringValue(FilePath, "Machine", "PcAddress", ConstPcAddress);
                MachinePort = int.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "MachinePort", ConstMachinePort));
                // MES
                MESAppId = IniFile.INIGetStringValue(FilePath, "MES", "MESAppId", "mes_test");
                MESAppKey = IniFile.INIGetStringValue(FilePath, "MES", "MESAppKey", "mes");
                MESUserId = IniFile.INIGetStringValue(FilePath, "MES", "MESUserId", "mes_userid");
                ServerHost = IniFile.INIGetStringValue(FilePath, "MES", "ServerHost", ConstServerHost);
                StationInMESUrl = IniFile.INIGetStringValue(FilePath, "MES", "StationInMESUrl", "");
                StationInMESUrl = string.Format(StationInMESUrl, ServerHost);
                StationOutMESUrl = IniFile.INIGetStringValue(FilePath, "MES", "StationOutMESUrl", "");
                StationOutMESUrl = string.Format(StationOutMESUrl, ServerHost);
                IsSendStationIn = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendStationIn", ConstIsSendStationIn));
                IsSendProcessData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendProcessData", ConstIsSendProcessData));
                IsSendCheckOneData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendCheckOneData", ConstIsSendCheckOneData));
                IsSendWorkingData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendWorkingData", ConstIsSendWorkingData));
                IsSendAlarmData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendAlarmData", ConstIsSendAlarmData));
                IsUseMESRoute = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsUseMESRoute", "False"));
                // MQTT
                MQTTServerHost = IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTServerHost", "127.0.0.1:80");
                MQTTServerPort = int.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTServerPort", "0"));
                IsMqttSendProcessData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttSendProcessData", "false"));
                IsMqttDeviceState = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttDeviceState", "false"));
                IsMqttFaultLog = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttFaultLog", "false"));
                IsMqttSensorData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttSensorData", "false"));
                IsMqttStationInputBegin = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttStationInputBegin", "false"));
                IsMqttOperateLog = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttOperateLog", "false"));
                IsMqttEquiConfig = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttEquiConfig", "false"));
                IsMqttProcConfig = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttProcConfig", "false"));
                // AGV配置
                IsUseAGV = bool.Parse(IniFile.INIGetStringValue(FilePath, "AGV", "IsMqttProcConfig", "false"));  // 是否 启用AGV
                AGVHttpHost = IniFile.INIGetStringValue(FilePath, "AGV", "AGVHttpHost", "");  // Http IP地址
                AGVMQTTHost = IniFile.INIGetStringValue(FilePath, "AGV", "AGVMQTTHost", "");  // MQTT IP地址
                AGVMQTTPort = IniFile.INIGetStringValue(FilePath, "AGV", "AGVMQTTPort", "");  // MQTT端口
                // 入出站参数
                S1_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S1_MachineId", "MId");
                S1_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S1_StationId", "SId");
                S2_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S2_MachineId", "MId");
                S2_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S2_StationId", "SId");
                S3_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S3_MachineId", "MId");
                S3_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S3_StationId", "SId");
                S4_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S4_MachineId", "MId");
                S4_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S4_StationId", "SId");
                S5_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S5_MachineId", "MId");
                S5_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S5_StationId", "SId");
                S6_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S6_MachineId", "MId");
                S6_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S6_StationId", "SId");
                S7_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S7_MachineId", "MId");
                S7_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S7_StationId", "SId");
                S8_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S8_MachineId", "MId");
                S8_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S8_StationId", "SId");
                S9_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S9_MachineId", "MId");
                S9_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S9_StationId", "SId");
                // 本地数据库
                Server = IniFile.INIGetStringValue(FilePath, "LocalDB", "Server", @"localhost");
                User = IniFile.INIGetStringValue(FilePath, "LocalDB", "User", "sa");
                PassWord = IniFile.INIGetStringValue(FilePath, "LocalDB", "PassWord", "Aa123456");
                MacStr = IPHelper.GetMoAddress();
                // 同步一次数据库当前订单信息到配置文件-后加的(加完后,设置页修改订单信息的功能不可用)
                //SyncCurOrderInfo();
                Set?.Invoke();
            }
            catch (Exception ex)
            {
            }
        }
        /// 
        /// 同步数据量存储的当前订单信息到配置文件中
        /// 
        public static void SyncCurOrderInfo()
        {
            #region 校验配置文件是否和数据库实际订单一致,如果配置文件的订单和数据库不一致,以数据库优先
            string sql = @" SELECT TOP 1
        WorkOrderNum,
        BatchNumber,
        ProductMtltmrk,
        SupplierCode
FROM OrderTable
WHERE WorkOrderStatus = '正在处理订单'
ORDER BY
        CreatedTime DESC ";
            SqlHelper _sqlHelper = new SqlHelper();
            DataTable dt_data = _sqlHelper.Db.SqlQueryable(sql).ToDataTable();  // 查询订单数据
            if (dt_data != null && dt_data.Rows.Count > 0)
            {
                string _workOrderNum = dt_data.Rows[0][1].ToString().Trim();
                if (WorkOrderCode != _workOrderNum)
                {
                    IniFile.INIWriteValue(FilePath, "Product", "WorkOrderCode", dt_data.Rows[0][0].ToString().Trim());
                    IniFile.INIWriteValue(FilePath, "Product", "BatchNumber", dt_data.Rows[0][1].ToString().Trim());
                    IniFile.INIWriteValue(FilePath, "Product", "Mtltmrk", dt_data.Rows[0][2].ToString().Trim());
                }
                else
                {
                    IniFile.INIWriteValue(FilePath, "Product", "WorkOrderCode", string.Empty);
                    IniFile.INIWriteValue(FilePath, "Product", "BatchNumber", string.Empty);
                    IniFile.INIWriteValue(FilePath, "Product", "Mtltmrk", string.Empty);
                }
            }
            else
            {
                IniFile.INIWriteValue(FilePath, "Product", "WorkOrderCode", string.Empty);
                IniFile.INIWriteValue(FilePath, "Product", "BatchNumber", string.Empty);
                IniFile.INIWriteValue(FilePath, "Product", "Mtltmrk", string.Empty);
            }
            #endregion
        }
    }
}