DFS_Shuo_Chen il y a 2 semaines
Parent
commit
28cd2dd072
2 fichiers modifiés avec 57 ajouts et 8 suppressions
  1. 1 0
      .gitignore
  2. 56 8
      EasyTemplate.Blazor.Web/Common/TheRegister.cs

+ 1 - 0
.gitignore

@@ -20,3 +20,4 @@ bin-release/
 /EasyTemplate.Blazor.Web/wwwroot/image
 EasyTemplate.Blazor.Web/publish/
 tmptest/.vs/
+文档/~$重构时间评估.xlsx

+ 56 - 8
EasyTemplate.Blazor.Web/Common/TheRegister.cs

@@ -170,14 +170,14 @@ public static class TheRegister
         //builder.Services.AddSingleton<UdpListenerService>();
         //builder.Services.AddHostedService(sp => sp.GetRequiredService<UdpListenerService>());
 
-        for (int i = 0; i < 40; i++)
-        {
-            NozzleState ns = new NozzleState();
-            ns.noz = i + 1;
-            ns.warnstate = i % 3;
-            ns.oil = i % 2 == 0 ? "92#" : "95#";
-            GlobalTool.g_mNozzleState.Add(ns.noz, ns);
-        }
+        //for (int i = 0; i < 40; i++)
+        //{
+        //    NozzleState ns = new NozzleState();
+        //    ns.noz = i + 1;
+        //    ns.warnstate = i % 3;
+        //    ns.oil = i % 2 == 0 ? "92#" : "95#";
+        //    GlobalTool.g_mNozzleState.Add(ns.noz, ns);
+        //}
 
         builder.Services.AddHostedService<UdpListenerService>();
 
@@ -292,6 +292,9 @@ public static class TheRegister
         using (var scope = app.Services.CreateScope())
         {
             var myService = scope.ServiceProvider.GetRequiredService<Init>();
+            
+            // 初始化数据库中的油枪状态
+            InitializeNozzleStates(scope.ServiceProvider);
         }
 
         app.Run();
@@ -299,6 +302,51 @@ public static class TheRegister
 
         return builder;
     }
+    
+    /// <summary>
+    /// 从数据库查询所有油枪并初始化状态
+    /// </summary>
+    private static void InitializeNozzleStates(IServiceProvider serviceProvider)
+    {
+        try
+        {
+            var nozzleService = serviceProvider.GetRequiredService<NozzleService>();
+            
+            // 异步获取油枪数据
+            var task = Task.Run(async () => await nozzleService.GetNozzlesAsync());
+            var nozzles = task.Result;
+            
+            if (nozzles != null && nozzles.Count > 0)
+            {
+                foreach (var nozzle in nozzles)
+                {
+                    if (!GlobalTool.g_mNozzleState.ContainsKey(nozzle.NozzleId))
+                    {
+                        var nozzleState = new NozzleState
+                        {
+                            noz = nozzle.NozzleId,
+                            VLR = "0",
+                            oil = nozzle.product.ToString()+"#", // 可以根据需要设置默认油品
+                            nozzlestate = GlobalTool.NozzleState_Offline, // 初始状态设为离线
+                            warnstate = GlobalTool.WarningState_Normal // 初始警告状态设为正常
+                        };
+                        
+                        GlobalTool.g_mNozzleState.Add(nozzle.NozzleId, nozzleState);
+                    }
+                }
+                
+                Console.WriteLine($"已初始化 {nozzles.Count} 个油枪状态");
+            }
+            else
+            {
+                Console.WriteLine("数据库中没有找到油枪数据");
+            }
+        }
+        catch (Exception ex)
+        {
+            Console.WriteLine($"初始化油枪状态时发生错误:{ex.Message}");
+        }
+    }
 
     private static FileExtensionContentTypeProvider GetFileExtensionContentTypeProvider()
     {