From 08eb1d72105662b301275fefd876be18df1b9fec Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期二, 29 四月 2025 15:12:47 +0800
Subject: [PATCH] 修改小车充电流程

---
 Admin.NET/WCS.Application/PLC/PLCTaskAction.cs |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
index 18c7c4b..ab3e7b4 100644
--- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -9,6 +9,7 @@
 using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
 using OnceMi.AspNetCore.OSS;
+using Qiniu.Storage;
 using System;
 using System.Drawing.Drawing2D;
 using System.Net.NetworkInformation;
@@ -377,7 +378,7 @@
                 try
                 {
                     // 鑾峰彇瀵嗛泦搴撴湭鎵ц浠诲姟 鏍规嵁鍒涘缓鏃堕棿鎺掑簭
-                    var waitTask = _db.Queryable<WcsTask>().Where(s => s.IsDelete == false && s.Status == TaskStatusEnum.Wait && s.Type == PLCTypeEnum.ShuttleCar).OrderBy(s => s.CreateTime).First();
+                    var waitTask = _db.Queryable<WcsTask>().Where(s => s.IsDelete == false && s.Status == TaskStatusEnum.Wait && s.Type == PLCTypeEnum.ShuttleCar).OrderBy(s => new {s.Levels, s.CreateTime}).First();
                     if (waitTask == null)
                     {
                         continue;
@@ -386,7 +387,7 @@
                     var taskpai = int.Parse(waitTask.StartLocate.Substring(0, 2));
                     var tasklie = int.Parse(waitTask.StartLocate.Substring(2, 2));
                     var taskceng = int.Parse(waitTask.StartLocate.Substring(4, 2));
-
+                    
                     #region 鑾峰彇褰撳墠浠诲姟鎵�鍦ㄥ眰鎵�鏈夌┖闂插皬杞�
 
                     // 鑾峰彇鏈変换鍔$殑灏忚溅缂栧彿
@@ -412,6 +413,19 @@
                             {
                                 //鑾峰彇宸ヤ綅WCSPLCPosition淇℃伅
                                 var plcPosition = listPlcPosition.Where(s => s.DeviceId == modDevice.Id).ToList();
+                                if (value == 3)
+                                {
+                                    var modCarDl = plcPosition.FirstOrDefault(s => s.Text == "鐢垫睜鐢甸噺");
+                                    var (resultDl, valueDl) = modbusUtil.GetDBValue(modCarDl.PosType, modCarDl.PlcPos);
+                                    if (resultDl.IsSucceed && valueDl> (int)FourWayCarDLEnum.Dl3) 
+                                    {
+                                        //鍐欏叆缁撴潫鍏呯數鍛戒护
+                                        var modCdEnd = plcPosition.FirstOrDefault(s => s.Text == "鍏呯數鍛戒护");
+                                        var resultDl22 = modbusUtil.SetDBValue(modCdEnd.PosType, modCdEnd.PlcPos.ToString(), "3") ;
+                                        carErr = true;
+                                        break; //鏆傜紦鍒嗛厤锛岄槻姝㈠悓灞傚皬杞﹀叧鏈烘垨澶辫仈瀵艰嚧闃绘尅璺緞
+                                    }
+                                }
                                 //灏忚溅绌洪棽鍔犲叆闆嗗悎
                                 if (value == 1)
                                 {
@@ -490,9 +504,16 @@
                             }
                         }
                     }
+                    var typeStr = "1";
+                    var typeStr2 = 1;
+                    if (waitTask.Levels  == 888 )
+                    {
+                        typeStr = "0";//灏忚溅浠诲姟鏄厖鐢典换鍔�
+                        typeStr2 = 0;
+                    }
                     //鑾峰彇灏忚溅鍘绘斁璐у偍浣嶄换鍔¤矾寰�
-                    var data2 = FourWayCarUtil.GetCarPath(waitTask.StartLocate, waitTask.EndLocate, "1");
-                    var datas2 = FourWayCarUtil.GetCarPathUp(data2, 1);
+                    var data2 = FourWayCarUtil.GetCarPath(waitTask.StartLocate, waitTask.EndLocate, typeStr);
+                    var datas2 = FourWayCarUtil.GetCarPathUp(data2, typeStr2);
                     
                     if (datas2 == null) 
                     { 

--
Gitblit v1.8.0