From fa6dce9b9457126d7fcc94a297f88d7b7a2120bc Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-JIE70N9>
Date: 星期四, 11 十二月 2025 14:04:59 +0800
Subject: [PATCH] 修改问题

---
 Admin.NET/WCS.Application/PLC/PLCService.cs |   47 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 36 insertions(+), 11 deletions(-)

diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index b578805..775d866 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -8,6 +8,7 @@
 using Elastic.Clients.Elasticsearch.Snapshot;
 using Furion.Logging;
 using IoTClient;
+using MessagePack;
 using NewLife.Reflection;
 using Newtonsoft.Json;
 using Org.BouncyCastle.Ocsp;
@@ -41,10 +42,10 @@
                     AGV(mod);                                       // AGV璋冨害
                     break;
                 case PLCTypeEnum.ShuttleCar: //绌挎杞�
-                    if (mod.PlcIdIP == "10.26.254.25")
-                    {
-                        break;
-                    }
+                    //if (mod.PlcIdIP == "10.26.254.28")
+                    //{
+                    //    break;
+                    //}
                     ShuttleCar(mod);
                     break;
                 case PLCTypeEnum.RobotPalletizer:
@@ -192,6 +193,30 @@
                             } 
                             if (carTask != null && carTask.Status != TaskStatusEnum.Complete)
                             {
+                                //鏌ユ壘璇ヤ换鍔$殑涓婁竴鏉″瓙浠诲姟瀹屾垚鏃堕棿鍜屽綋鍓嶆椂闂撮棿闅旓紝濡傛灉闂撮殧鏃堕棿澶煭璇存槑鏈夐棶棰橈紝绛�3绉掑悗鍐嶆墽琛�
+                                var carTaskAfter = _db.Queryable<WcsCarTasks>().First(m => m.IsDelete == false && m.CarTaskNo == valueTaskStr - 1
+                                && m.CarNo == modDevice.PlcIdIP && m.TaskNo == carTask.TaskNo);
+                                if (carTaskAfter != null)
+                                {
+                                    if (carTaskAfter.UpdateTime == null)//carTaskAfter.Status != TaskStatusEnum.Complete || 
+                                    {
+                                        Log.Error($"鍥涘悜杞︾浜屾潯瀛愪换鍔″弽棣堝畬鎴愭椂闂村紓甯�:{carTaskAfter.TaskNo}");
+                                        Thread.Sleep(3000);
+                                        break;
+                                    }
+                                    else
+                                    {
+                                        TimeSpan difference = DateTime.Now - Convert.ToDateTime(carTaskAfter.UpdateTime);
+                                        double seconds = difference.TotalSeconds;
+                                        if (seconds < 3)
+                                        {
+                                            Log.Error($"鍥涘悜杞︾浜屾潯瀛愪换鍔″弽棣堝畬鎴愭椂闂村紓甯�:{carTaskAfter.TaskNo}");
+                                            Thread.Sleep(3000);
+                                            break;
+                                        }
+                                    }                                        
+                                }
+
                                 carTask.Status = TaskStatusEnum.Complete;
                                 carTask.UpdateTime = DateTime.Now;
                                 _db.Updateable(carTask).ExecuteCommand();
@@ -213,14 +238,14 @@
                             //carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status <= TaskStatusEnum.Doing && m.CarTaskNo != valueTaskStr).OrderBy(m => m.CreateTime).First();
                             if (carTaskNext != null)
                             {
-                                if (carTaskNext.CarTaskNo < valueTaskStr)
+                                if (carTaskNext.CarTaskNo != null && carTaskNext.CarTaskNo < valueTaskStr)
                                 {
                                     carTaskNext.Status = TaskStatusEnum.Complete;
                                     carTaskNext.UpdateTime = DateTime.Now;
                                     _db.Updateable(carTaskNext).ExecuteCommand();
-
-                                    carTaskNext = null;
+                                    
                                     Log.Error($"鍥涘悜杞︾涓�鏉″瓙浠诲姟娌¤嚜鍔ㄥ畬鎴�:{carTaskNext.TaskNo}");
+                                    carTaskNext = null;
                                 }
                             }
                             //鎬讳换鍔′笅娌℃湁鍏朵粬鏈墽琛屽皬杞︾殑浠诲姟 鍙樻洿鎬讳换鍔′俊鎭�
@@ -1425,11 +1450,11 @@
         {
             return;
         }
-        
-         
-        if (_db.Queryable<WcsTask>().Any(s => s.EndLocate == modTask.EndLocate && s.IsDelete == false && s.Status == TaskStatusEnum.Doing && s.Type == PLCTypeEnum.AGV ))
+
+        var conveyList1 = new List<string>() { "B100101", "B030101" };//绌烘墭鏀堕泦鍖哄偍浣�
+        if (_db.Queryable<WcsTask>().Any(s => s.EndLocate == modTask.EndLocate && s.IsDelete == false && s.Status == TaskStatusEnum.Doing && s.Type == PLCTypeEnum.AGV && !conveyList1.Contains(s.EndLocate)))
         {
-            return; // 鏈夌洰鐨勪綅缃竴鑷翠笖姝e湪鎵ц鐨勪换鍔�
+            return; // 鏈夌洰鐨勪綅缃竴鑷翠笖姝e湪鎵ц鐨勪换鍔�(涓嶅寘鍚┖鎵樻敹闆�)
         }
 
         //涓嬪彂AGV浠诲姟 

--
Gitblit v1.8.0