From 8c6fd742db249ad4cc819cf041eb98d880a3ef73 Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期四, 02 一月 2025 15:09:07 +0800
Subject: [PATCH] 1

---
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs |  302 +++++++-------------------------------------------
 1 files changed, 43 insertions(+), 259 deletions(-)

diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
index 828ad04..1fb0180 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
@@ -18,273 +18,57 @@
 
 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, $"WIDESEAWCS_QuartzJob.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 });
-                                }
-                            }
+            Pro_Devices = new List<IDevice>();
+        }
 
-                            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++;
-                            }
+        /// <summary>
+        /// 鑾峰彇璁惧
+        /// </summary>
+        /// <param name="deviceCode"></param>
+        /// <returns></returns>
+        public IDevice? GetDevice(string deviceCode)
+        {
+            return Pro_Devices.FirstOrDefault(x => x.DeviceCode == deviceCode);
+        }
 
-                            object obj = new { DicNo = key, Config = "", Data = data };
-                            result = obj.Serialize();
-                        }
-                        break;
-                    case "taskType":
-                        {
-                            List<object> data = new List<object>();
+        /// <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();
+        }
 
-                            #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;
-                }
-                return result;
-            }
-            catch (Exception ex)
-            {
-                return "";
-            }
-
+        /// <summary>
+        /// 鑾峰彇閫氳瀵硅薄
+        /// </summary>
+        /// <param name="deviceCode"></param>
+        /// <returns></returns>
+        public BaseCommunicator? GetCommunicator(string deviceCode)
+        {
+            return Devices.FirstOrDefault(x => x.DeviceCode == deviceCode)?.Communicator;
         }
     }
 }

--
Gitblit v1.9.3