From 2624ebffaa8b8abf1432fe011d08704f840e0bcf Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-JIE70N9>
Date: 星期二, 02 九月 2025 11:33:27 +0800
Subject: [PATCH] 优化四向车任务完成判断

---
 Admin.NET/WCS.Application/PLC/PLCService.cs |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 0177093..ca7539a 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -41,7 +41,7 @@
                     AGV(mod);                                       // AGV璋冨害
                     break;
                 case PLCTypeEnum.ShuttleCar: //绌挎杞�
-                    //if (mod.PlcIdIP == "10.26.254.28") 
+                    //if (mod.PlcIdIP == "10.26.254.28")
                     //{
                     //    break;
                     //}
@@ -209,7 +209,8 @@
                                 HubUtil.PublicTaskMonitor(taskMonitor.Adapt<WcsTaskMonitorOutput>());
                             }
                             //鑾峰彇璺緞2鐨勪换鍔� 涓嬪彂
-                            carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status <= TaskStatusEnum.Doing).OrderBy(m => m.CreateTime).First();
+                            //carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status <= TaskStatusEnum.Doing).OrderBy(m => m.CreateTime).First();
+                            carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.CarTaskNo > valueTaskStr && m.Status <= TaskStatusEnum.Doing).OrderBy(m => m.CreateTime).First();
                             //鎬讳换鍔′笅娌℃湁鍏朵粬鏈墽琛屽皬杞︾殑浠诲姟 鍙樻洿鎬讳换鍔′俊鎭�
                             if (carTaskNext == null && modFinshTask != null && modFinshTask.Status != TaskStatusEnum.Complete)
                             {
@@ -543,18 +544,23 @@
 
                     var modPosTaskStatus2 = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟鐘舵��");
                     var (resultTaskStatus2, valueTaskStatus2) = plcConn.GetDBValue(modPosTaskStatus.PosType, modPosTaskStatus.PlcPos);
-                    if (resultCar.IsSucceed && valueCar == 1 && resultTaskStatus2.IsSucceed && (valueTaskStatus2 == 0 || valueTaskStatus2 == 1))
+                    if (resultCar.IsSucceed && valueCar == 1 &&  resultTaskStatus2.IsSucceed && (valueTaskStatus2 == 0 || valueTaskStatus2 == 1))
                     {
-                        //鍏堝浣�
-                        var modRest = modDevice.listStation.FirstOrDefault(s => s.Text == "澶嶄綅");
-                        plcConn.SetDBValue(modRest.PosType, modRest.PlcPos, "1");
+                        var carnew = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == modTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status == TaskStatusEnum.Doing).OrderBy(m => m.CreateTime).First();
+
+                        if (carnew == null) 
+                        {
+                            //鍏堝浣�
+                            var modRest = modDevice.listStation.FirstOrDefault(s => s.Text == "澶嶄綅");
+                            plcConn.SetDBValue(modRest.PosType, modRest.PlcPos, "1");
+                        }
                     }
                     else
                     {
                         return;
                     }
 
-                        List<Result> listResult = new List<Result>();
+                    List<Result> listResult = new List<Result>();
                     //鑾峰彇灏忚溅浠诲姟鍙�
                     var carTaskNo = FourWayCarUtil.GetTaskNo();
 

--
Gitblit v1.8.0