From 96f2053a1a93193dc5f4eb064aaf455b2d692f0c Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期五, 20 六月 2025 13:31:57 +0800
Subject: [PATCH] 优化入库流程

---
 Admin.NET/WCS.Application/PLC/PLCService.cs |   66 ++++++++++++++++++++------------
 1 files changed, 41 insertions(+), 25 deletions(-)

diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 567ebb6..430807e 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -22,6 +22,7 @@
 {
     private static readonly object OLock = new object();
     private static readonly object RuKuLock = new object();
+    private static readonly object OutLock = new object();
 
     private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
     private static decimal weight94 = 0;
@@ -109,7 +110,7 @@
                         {
                             #region 璺ㄨ泛鏈轰换鍔″鐞�     ###########
                             // 鍒ゆ柇鐩爣浣嶇疆鏄惁鏄法璺烘満鍑哄簱宸ヤ綅
-                            if (modTask.EndLocate == "266" && modTask.StartRoadway != "R05")
+                            if (modTask.EndLocate == "266")// && modTask.StartRoadway != "R05"
                             {
                                 // 鍒ゆ柇鍏ュ簱宸ヤ綅鏄惁瀛樺湪鏈畬鎴愮殑鍏ュ簱浠诲姟
                                 var modInTask = _db.Queryable<WcsTask>().OrderBy(m => m.Levels, OrderByType.Asc).OrderBy(m => m.CreateTime, OrderByType.Asc)
@@ -134,17 +135,19 @@
                                         break;
                                     }
                                 }
-
-                                string aaa = PLCCommon.RoadwayToOutStationNum(modTask.StartRoadway, "1");  // 鑾峰彇1妤间腑涓撳伐浣嶅彿
-                                taskInfo.Ip = PLCCommon.GetPlcIp(aaa).PlcIP;
-                                taskInfo.EndPai = "2";
-                                taskInfo.EndLie = "60";
-                                taskInfo.EndCeng = "1";
-                                taskInfo.EndStation = aaa;
+                                if (modTask.StartRoadway != "R05")
+                                {
+                                    string aaa = PLCCommon.RoadwayToOutStationNum(modTask.StartRoadway, "1");  // 鑾峰彇1妤间腑涓撳伐浣嶅彿
+                                    taskInfo.Ip = PLCCommon.GetPlcIp(aaa).PlcIP;
+                                    taskInfo.EndPai = "2";
+                                    taskInfo.EndLie = "60";
+                                    taskInfo.EndCeng = "1";
+                                    taskInfo.EndStation = aaa;
+                                }                               
 
                             }
 
-                            if (modTask.EndLocate == "265" && modTask.StartRoadway != "R05" && modTask.StartRoadway != "R06") 
+                            if (modTask.EndLocate == "265") // && modTask.StartRoadway != "R05" && modTask.StartRoadway != "R06"
                             {
                                 // 鍒ゆ柇鍏ュ簱宸ヤ綅鏄惁瀛樺湪鏈畬鎴愮殑鍏ュ簱浠诲姟
                                 var modInTask = _db.Queryable<WcsTask>().OrderBy(m => m.Levels, OrderByType.Asc).OrderBy(m => m.CreateTime, OrderByType.Asc)
@@ -169,13 +172,15 @@
                                         break;
                                     }
                                 }
-
-                                string aaa = PLCCommon.RoadwayToOutStationNum(modTask.StartRoadway, "1");  // 鑾峰彇1妤间腑涓撳伐浣嶅彿
-                                taskInfo.Ip = PLCCommon.GetPlcIp(aaa).PlcIP;
-                                taskInfo.EndPai = "2";
-                                taskInfo.EndLie = "60";
-                                taskInfo.EndCeng = "1";
-                                taskInfo.EndStation = aaa;
+                                if (modTask.StartRoadway != "R05" && modTask.StartRoadway != "R06")
+                                {
+                                    string aaa = PLCCommon.RoadwayToOutStationNum(modTask.StartRoadway, "1");  // 鑾峰彇1妤间腑涓撳伐浣嶅彿
+                                    taskInfo.Ip = PLCCommon.GetPlcIp(aaa).PlcIP;
+                                    taskInfo.EndPai = "2";
+                                    taskInfo.EndLie = "60";
+                                    taskInfo.EndCeng = "1";
+                                    taskInfo.EndStation = aaa;
+                                }                                
                             }
 
                             // 鍐欏叆鏀捐揣宸ヤ綅鍥哄畾鍦板潃
@@ -379,6 +384,14 @@
                                         var retc = plcConveyorConn.SetPlcDBValue(ConveyorMod.PosType, ConveyorMod.DbNumber, ConveyorMod.WcsPos, "640");
                                         if (retc.IsSucceed)
                                         {
+                                            // 鍐嶆璇诲彇wcs鎺у埗瀛�,纭繚鍐欏叆鎴愬姛640
+                                            var (ress2, va1s2) = plcConveyorConn.GetPlcDBValue(ConveyorMod.PosType, ConveyorMod.DbNumber, ConveyorMod.WcsPos);
+                                            if (va1s2.ToString() == "630")//杩樻槸绛変簬630璇存槑640娌℃湁鍐欏叆鎴愬姛锛屽啀娆″啓鍏�640
+                                            {
+                                                retc = plcConveyorConn.SetPlcDBValue(ConveyorMod.PosType, ConveyorMod.DbNumber, ConveyorMod.WcsPos, "640");
+                                                Log.Information($"840鍨涙満鍙栬揣瀹屾垚鍐欏叆640澶辫触鍚庡啀娆″啓鍏ワ紝DbNumber锛歿ConveyorMod.DbNumber}");
+                                            }
+
                                             modcTaskMonitor.InteractiveMsg = string.Format("宸ヤ綅锛歿0},鍐欏叆鍙栬揣瀹屾垚:640", startStationVal);
                                             // 鎻掑叆浜や簰鏃ュ織
                                             _db.Insertable(modcTaskMonitor).ExecuteCommand();
@@ -2392,15 +2405,18 @@
                                 TaskType = ((int)TaskTypeEnum.Out).ToString(),
                                 TaskStatus = ((int)TaskStatusEnum.Complete).ToString()
                             };
-                            HttpService httpService = new HttpService();
-                            var modResponseTask = httpService.RequestTask(requestMode).Result;
-                            if (modResponseTask.StatusCode == 0)
-                            {
-                                modInsertTaskMonitor.InteractiveMsg += "锛岃繑鍥炵粰WMS浠诲姟瀹屾垚";
-                            }
-                            else
-                            {
-                                Log.Error(string.Format("浠诲姟鍙嶉澶辫触锛歋tatusCode锛歿0};Msg锛歿1}", modResponseTask.StatusCode, modResponseTask.Msg));
+                            lock(OutLock)
+                            { 
+                                HttpService httpService = new HttpService();
+                                var modResponseTask = httpService.RequestTask(requestMode).Result;
+                                if (modResponseTask.StatusCode == 0)
+                                {
+                                    modInsertTaskMonitor.InteractiveMsg += "锛岃繑鍥炵粰WMS浠诲姟瀹屾垚";
+                                }
+                                else
+                                {
+                                    Log.Error(string.Format("浠诲姟鍙嶉澶辫触锛歋tatusCode锛歿0};Msg锛歿1}", modResponseTask.StatusCode, modResponseTask.Msg));
+                                }
                             }
                         }
 

--
Gitblit v1.8.0