From aa76e0acd1337d82ddef1d5a34b245c988ecfc13 Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-JIE70N9>
Date: 星期五, 30 五月 2025 18:25:25 +0800
Subject: [PATCH] 修改问题

---
 Admin.NET/WCS.Application/PLC/PLCService.cs                 |   12 +++---
 Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs |   43 ++++++++++++---------
 Admin.NET/WCS.Application/PLC/PLCTaskAction.cs              |    2 
 Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs            |    4 +-
 Admin.NET/WCS.Application/Util/AGVStorageUtil.cs            |   17 +++++++-
 5 files changed, 47 insertions(+), 31 deletions(-)

diff --git a/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs b/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs
index 69c2359..8edc2ce 100644
--- a/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs
+++ b/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs
@@ -76,12 +76,12 @@
     /// 鏋侀檺鐢甸噺 浣庝簬姝ょ數閲忎笉鎵ц浠诲姟
     /// </summary>
     [Description("鏋侀檺鐢甸噺")]
-    Dl = 10,
+    Dl = 20,
     /// <summary>
     /// 鍋ュ悍鐢甸噺 浣庝簬姝ょ數閲� 涓旀棤浠诲姟鏃跺幓鍏呯數
     /// </summary>
     [Description("鍋ュ悍鐢甸噺")]
-    Dl2 = 15,
+    Dl2 = 75,
     
 
 }
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 6784e79..a9b033e 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -338,11 +338,11 @@
                             var endLocateCar = "";
                             if (valuez == 1)
                             {
-                                endLocateCar = "210401";
+                                endLocateCar = "011201";
                             }
                             else if (valuez == 2)
                             {
-                                endLocateCar = "210402"; //011202
+                                endLocateCar = "011202"; //
                             }
                             else
                             {
@@ -352,7 +352,7 @@
                             if (getCdTask == null)
                             {
                                 var (resultDlLock, valueDlLock) = plcConn.GetDBValue(modDevice.PosType, modDevice.PlcPos);
-                                if (resultDlLock.IsSucceed && valueDlLock!=3)
+                                if (resultDlLock.IsSucceed && valueDlLock!=3 && carXYZ != endLocateCar)
                                 {
                                     //娣诲姞灏忚溅鍏呯數浣嶇疆
                                     WcsTask modCarTask = new WcsTask()
@@ -405,11 +405,11 @@
                                         var endLocateCar = "";
                                         if (valuez == 1)
                                         {
-                                            endLocateCar = "210401";
+                                            endLocateCar = "011201";
                                         }
                                         else if (valuez == 2)
                                         {
-                                            endLocateCar = "210402";
+                                            endLocateCar = "011202";
                                         }
                                         else
                                         {
@@ -419,7 +419,7 @@
                                         if (getCdTask == null)
                                         {
                                             var (resultDlLock, valueDlLock) = plcConn.GetDBValue(modDevice.PosType, modDevice.PlcPos);
-                                            if (resultDlLock.IsSucceed && valueDlLock != 3)
+                                            if (resultDlLock.IsSucceed && valueDlLock != 3 && carXYZ != endLocateCar)
                                             {
                                                 //娣诲姞灏忚溅鍏呯數浣嶇疆
                                                 WcsTask modCarTask = new WcsTask()
diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
index 6464193..6eeb443 100644
--- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -332,7 +332,7 @@
 
 
 
-                        Thread.Sleep(500);
+                        Thread.Sleep(5000);
                     }
                     catch (OperationCanceledException)
                     {
diff --git a/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs b/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs
index fe3a3f2..17c4fc0 100644
--- a/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs
@@ -26,6 +26,7 @@
     private readonly IHubContext<TaskLogHub, ITaskLogHub> _taskLogHubContext;
     private readonly SqlSugarRepository<WcsCheckTask> _wcsCheckTaskRep;
     private readonly SqlSugarRepository<WcsMateialPzInfo> _wcsMateialPzInfoRep;
+    private readonly object _lockObj = new object();
 
     public WcsTaskService(SqlSugarRepository<WcsTask> wcsTaskRep, IHubContext<TaskLogHub, ITaskLogHub> taskLogHubContext, SqlSugarRepository<WcsCheckTask> wcsCheckTaskRep, SqlSugarRepository<WcsMateialPzInfo> wcsMateialPzInfoRep)
     {
@@ -440,31 +441,35 @@
     [NonAction]
     public string GetTaskCode(string codeFlag = "WCS")
     {
-        var list = _db.Queryable<WcsTask>().Where(m => m.TaskNo.StartsWith("WCS")).ToList();
-        string maxNo = list.Max(m => m.TaskNo);
-        if (!string.IsNullOrEmpty(maxNo))
+        lock (_lockObj)
         {
-            maxNo = maxNo.Substring(codeFlag.Length);
-        }
-        //鑾峰彇鏁版嵁搴撴椂闂村叓浣�
-        string date = DateTime.Now.ToString("yyyyMMdd").Trim();
-        string no = "";
-        if (string.IsNullOrEmpty(maxNo))
-        {
-            no = codeFlag + date + "0001";
-        }
-        else
-        {
-            if (maxNo.Length == 12 && maxNo.Substring(0, 8) == date)
+            var list = _db.Queryable<WcsTask>().Where(m => m.TaskNo.StartsWith("WCS")).ToList();
+            string maxNo = list.Max(m => m.TaskNo);
+            if (!string.IsNullOrEmpty(maxNo))
             {
-                int lastNo = Convert.ToInt32(maxNo.Substring(8, 4)) + 1;
-                no = codeFlag + date + (lastNo.ToString().PadLeft(4, '0'));
+                maxNo = maxNo.Substring(codeFlag.Length);
             }
-            else
+            //鑾峰彇鏁版嵁搴撴椂闂村叓浣�
+            string date = DateTime.Now.ToString("yyyyMMdd").Trim();
+            string no = "";
+            if (string.IsNullOrEmpty(maxNo))
             {
                 no = codeFlag + date + "0001";
             }
+            else
+            {
+                if (maxNo.Length == 12 && maxNo.Substring(0, 8) == date)
+                {
+                    int lastNo = Convert.ToInt32(maxNo.Substring(8, 4)) + 1;
+                    no = codeFlag + date + (lastNo.ToString().PadLeft(4, '0'));
+                }
+                else
+                {
+                    no = codeFlag + date + "0001";
+                }
+            }
+            return no;
         }
-        return no;
+        
     }
 }
diff --git a/Admin.NET/WCS.Application/Util/AGVStorageUtil.cs b/Admin.NET/WCS.Application/Util/AGVStorageUtil.cs
index 141f599..b594fd6 100644
--- a/Admin.NET/WCS.Application/Util/AGVStorageUtil.cs
+++ b/Admin.NET/WCS.Application/Util/AGVStorageUtil.cs
@@ -66,13 +66,24 @@
         var locate1 = _db.Queryable<WcsStorageLocat>().First(m => m.IsDelete == false && m.LocatNo == straLocate);
         var locate2 = _db.Queryable<WcsStorageLocat>().First(m => m.IsDelete == false && m.LocatNo == endLocate);
 
-        if (locate1q == "B" || locate2q == "B")
+        if (locate1q == "B" )
         {
-            if (Area1002.Contains(locate2.AreaNo) || Area1002.Contains(locate1.AreaNo))
+            if ( Area1002.Contains(locate1.AreaNo) )
             {
                 jiebo = "1JB";//鎺ラ┏浣�
             }
-            if (Area10031.Contains(locate2.AreaNo) || Area10032.Contains(locate2.AreaNo) || Area10031.Contains(locate1.AreaNo) || Area10032.Contains(locate1.AreaNo))
+            if (Area10031.Contains(locate1.AreaNo) || Area10032.Contains(locate1.AreaNo))
+            {
+                jiebo = "2JB";
+            }
+        }
+        if (locate2q == "B")
+        {
+            if ( Area1002.Contains(locate2.AreaNo))
+            {
+                jiebo = "1JB";//鎺ラ┏浣�
+            }
+            if (Area10031.Contains(locate2.AreaNo) || Area10032.Contains(locate2.AreaNo))
             {
                 jiebo = "2JB";
             }

--
Gitblit v1.8.0