From 17e4c7e3e7b3ef60d9da6de3b2a39a14a53c38a0 Mon Sep 17 00:00:00 2001 From: z8018 <1282578289@qq.com> Date: 星期三, 12 三月 2025 14:11:33 +0800 Subject: [PATCH] 1 --- WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs | 324 ++++++----------------------------------------------- 1 files changed, 37 insertions(+), 287 deletions(-) diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs index e619023..36bffb2 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs @@ -18,298 +18,48 @@ namespace WIDESEAWCS_QuartzJob { + /// <summary> + /// 闈欐�佸彉鑴稿瓨鍌ㄥ尯锛屽彲浣跨敤闈欐�佸彉閲忥紝涔熷彲娉ㄥ叆浣跨敤 + /// </summary> public class Storage { + /// <summary> + /// 宸茶繛鎺ヨ澶囧璞¢泦鍚� + /// </summary> public static List<IDevice> Devices = new List<IDevice>(); - } - public class QuartzJobCommonMethod - { - public static string GetVueDictionary(string key) + /// <summary> + /// 璁惧瀵硅薄 + /// </summary> + public List<IDevice> Pro_Devices { get; set; } + + /// <summary> + /// 鏋勯�犲嚱鏁� + /// </summary> + public Storage() { - string result = ""; - try - { - switch (key) - { - case "deviceType": - { - Type type = typeof(IDevice); - var basePath = AppContext.BaseDirectory; - string path = Path.Combine(basePath, Assembly.GetExecutingAssembly().GetName().Name); - Assembly assembly = Assembly.LoadFrom(path); - List<Type> types = assembly.GetTypes().Where(x => type.IsAssignableFrom(x) && !x.IsAbstract && !x.IsInterface).ToList(); - List<object> data = new List<object>(); - foreach (var deviceType in types) - { - DescriptionAttribute? description = deviceType.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = deviceType.Name, value = description.Description }); - } - else - { - data.Add(new { key = deviceType.Name, value = deviceType.Name }); - } - } - - object obj = new { DicNo = key, Config = "", Data = data }; - result = obj.Serialize(); - } - break; - case "jobAssembly": - { - object obj = new { DicNo = key, Config = "", Data = new List<object>() { new { key = "WIDESEAWCS_Tasks", value = "WIDESEAWCS_Tasks" } } }; - result = obj.Serialize(); - } - break; - case "jobClassName": - { - Type type = typeof(IJob); - var basePath = AppContext.BaseDirectory; - string path = Path.Combine(basePath, $"WIDESEAWCS_Tasks"); - Assembly assembly = Assembly.LoadFrom(path); - List<Type> types = assembly.GetTypes().Where(x => type.IsAssignableFrom(x) && !x.IsAbstract && !x.IsInterface).ToList(); - object obj = new - { - DicNo = key, - Config = "", - Data = types.Select(x => new { key = x.Name, value = x.Name }), - }; - result = obj.Serialize(); - } - break; - case "deviceStatus": - { - List<object> data = new List<object>(); - Type type = typeof(DeviceStatusEnum); - List<int> enums = Enum.GetValues(typeof(DeviceStatusEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(DeviceStatusEnum).GetField(((DeviceStatusEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - - object obj = new { DicNo = key, Config = "", Data = data }; - result = obj.Serialize(); - } - break; - case "taskType": - { - List<object> data = new List<object>(); - - #region TaskInboundTypeEnum - { - Type type = typeof(TaskInboundTypeEnum); - List<int> enums = Enum.GetValues(typeof(TaskInboundTypeEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(TaskInboundTypeEnum).GetField(((TaskInboundTypeEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - } - #endregion - - #region TaskOutboundTypeEnum - { - Type type = typeof(TaskOutboundTypeEnum); - List<int> enums = Enum.GetValues(typeof(TaskOutboundTypeEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(TaskOutboundTypeEnum).GetField(((TaskOutboundTypeEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - } - #endregion - - #region TaskRelocationTypeEnum - { - Type type = typeof(TaskRelocationTypeEnum); - List<int> enums = Enum.GetValues(typeof(TaskRelocationTypeEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(TaskRelocationTypeEnum).GetField(((TaskRelocationTypeEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - } - #endregion - - #region TaskOtherTypeEnum - { - Type type = typeof(TaskOtherTypeEnum); - List<int> enums = Enum.GetValues(typeof(TaskOtherTypeEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(TaskOtherTypeEnum).GetField(((TaskOtherTypeEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - } - #endregion - - object obj = new { DicNo = key, Config = "", Data = data }; - result = obj.Serialize(); - } - break; - case "taskState": - { - List<object> data = new List<object>(); - - #region TaskInStatusEnum - { - Type type = typeof(TaskInStatusEnum); - List<int> enums = Enum.GetValues(typeof(TaskInStatusEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(TaskInStatusEnum).GetField(((TaskInStatusEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - } - #endregion - - #region TaskOutStatusEnum - { - Type type = typeof(TaskOutStatusEnum); - List<int> enums = Enum.GetValues(typeof(TaskOutStatusEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(TaskOutStatusEnum).GetField(((TaskOutStatusEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - } - #endregion - - object obj = new { DicNo = key, Config = "", Data = data }; - result = obj.Serialize(); - } - break; - case "devicePlcType": - { - Type type = typeof(BaseCommunicator); - var basePath = AppContext.BaseDirectory; - string path = Path.Combine(basePath, $"WIDESEAWCS_Communicator.dll"); - Assembly assembly = Assembly.LoadFrom(path); - List<Type> types = assembly.GetTypes().Where(x => type.IsAssignableFrom(x) && !x.IsAbstract && !x.IsInterface).ToList(); - List<object> data = new List<object>(); - foreach (var deviceType in types) - { - DescriptionAttribute? description = deviceType.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = deviceType.Name, value = description.Description }); - } - else - { - data.Add(new { key = deviceType.Name, value = deviceType.Name }); - } - } - - object obj = new { DicNo = key, Config = "", Data = data }; - result = JsonConvert.SerializeObject(obj); - } - break; - case "inOutType": - { - List<object> data = new List<object>(); - Type type = typeof(RouterInOutType); - List<int> enums = Enum.GetValues(typeof(RouterInOutType)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(RouterInOutType).GetField(((RouterInOutType)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - - object obj = new { DicNo = key, Config = "", Data = data }; - result = obj.Serialize(); - } - break; - } - return result; - } - catch (Exception ex) - { - return ""; - } - + Pro_Devices = new List<IDevice>(); } + + /// <summary> + /// 鑾峰彇璁惧 + /// </summary> + /// <param name="deviceCode"></param> + /// <returns></returns> + public IDevice? GetDevice(string deviceCode) + { + return Pro_Devices.FirstOrDefault(x => x.DeviceCode == deviceCode); + } + + /// <summary> + /// 鑾峰彇璁惧 + /// </summary> + /// <param name="deviceCodes"></param> + /// <returns></returns> + public List<IDevice> GetDevices(List<string> deviceCodes) + { + return Pro_Devices.Where(x => deviceCodes.Contains(x.DeviceCode)).ToList(); + } + } } -- Gitblit v1.9.3