From 83a7b2db0150d30576461055707367e8189ebc6e Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期三, 25 六月 2025 17:29:08 +0800
Subject: [PATCH] 交互修改

---
 process/TaskProcess.cs |  146 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 132 insertions(+), 14 deletions(-)

diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index b601426..86cec16 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -141,7 +141,17 @@
             else if (state == 1004) {
                 LogHelper.Info($"绛夊緟浜や簰锛屼换鍔″彿={mst.S_CODE}", "瀹夊叏浜や簰");
 
-                var wcsCode = mst.S_CODE.Replace(@"_1", "_2");
+                var wcsCode = "";
+
+                if (mst.S_TYPE.Contains("鍏ュ簱")|| mst.S_TYPE.Contains("鍥炲簱"))
+                {
+                    wcsCode = mst.S_CODE.Replace(@"_1", "_2");
+                }
+
+                if (mst.S_TYPE.Contains("鍑哄簱"))
+                {
+                    wcsCode = mst.S_CODE.Replace(@"_2", "_1");
+                }
 
                 LogHelper.Info($"绛夊緟浜や簰锛屾煡璇㈡牎楠屼换鍔″彿={wcsCode}", "瀹夊叏浜や簰");
                 //绛夊緟rfid鏍¢獙
@@ -152,7 +162,16 @@
                 {
                     if (rfidFlag.S_RESULT.Contains("鎴愬姛"))
                     {
-                        LogHelper.Info($"浠诲姟鍙�{mst.S_CODE}锛岀瓑寰呬氦绠℃垚鍔燂紝淇敼鍙傛暟", "瀹夊叏浜や簰");
+                        LogHelper.Info($"浠诲姟鍙�{mst.S_CODE}锛岀瓑寰呬氦绠℃垚鍔燂紝淇敼鍙傛暟6涓�", "瀹夊叏浜や簰");
+                        NDCApi.ChangeOrderParam(mst.S_CODE, 6, "1");
+                    }
+                    else {
+                        var startSite = LocationHelper.GetAgvSiteZc(mst.S_START_LOC);
+                        var endSite = LocationHelper.GetAgvSiteZc(mst.S_END_LOC);
+                        LogHelper.Info($"浠诲姟{mst.S_CODE}RFID鏍¢獙澶辫触锛屾敼鍙傛暟1涓簕startSite},鏀瑰弬鏁�涓簕endSite}锛屽弬鏁�涓�锛�涓�", "鏀归亾瀹夊叏浜や簰");
+                        NDCApi.ChangeOrderParam(mst.S_CODE, 1, startSite);
+                        NDCApi.ChangeOrderParam(mst.S_CODE, 2, endSite);
+                        NDCApi.ChangeOrderParam(mst.S_CODE, 4, "0");
                         NDCApi.ChangeOrderParam(mst.S_CODE, 6, "1");
                     }
                 }
@@ -246,9 +265,9 @@
                             db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand();
                             db.CommitTran();
                             var site = LocationHelper.GetAgvSiteZc(end.S_CODE);
-                            LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�锛�涓�", "鏀归亾瀹夊叏浜や簰");
+                            LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�锛�涓�", "鏀归亾瀹夊叏浜や簰");
                             NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
-                            NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
+                            NDCApi.ChangeOrderParam(task.S_CODE, 6, "2");
                             NDCApi.ChangeOrderParam(task.S_CODE, 4, "0");
                             return;
                         }
@@ -263,16 +282,25 @@
                     var rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == wcsTask.S_END_AREA && x.status == "0" && x.roadWay == loc1.N_ROADWAY.ToString()).First();
                     if (rowdwa == null)
                     {
-                        LogHelper.Info($"鍒ゆ柇宸烽亾鍙敤,褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}鍙敤,涓嶉渶瑕佹敼閬�, "鏀归亾瀹夊叏浜や簰");
+                        LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鍒ゆ柇宸烽亾鍙敤,褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}鍙敤,涓嶉渶瑕佹敼閬�, "鏀归亾瀹夊叏浜や簰");
                     }
                     else
                     {
-                        LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾", "鏀归亾瀹夊叏浜や簰");
+                        LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾", "鏀归亾瀹夊叏浜や簰");
                         var endLoc = LocationHelper.GetLocOne(wcsTask.S_END_LOC);
+                        List<Location> endList;
+                        if (!string.IsNullOrEmpty(workFlow.ZONECODE))
+                        {
+                            endList = LocationHelper.GetZoneLoc(workFlow.ZONECODE);
+                        }
+                        else
+                        {
+                            endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA);
+                        }
 
-                        var endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA);
+                      
                         var end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
-                        LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾锛屾柊缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰");
+                        LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}锛屽綋鍓嶅贩閬撲笉鍙敤锛岄渶瑕佹敼閬擄紝鏂扮粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰");
                         if (end == null)
                         {
                             LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝缁堢偣搴撳尯{workFlow.ENDAREA},娌℃壘鍒扮粓鐐�, "鏀归亾瀹夊叏浜や簰");
@@ -355,9 +383,9 @@
                             db.CommitTran();
                             
                             var site = LocationHelper.GetAgvSiteZc(loc.S_CODE);
-                            LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�,4涓�024", "鏀归亾瀹夊叏浜や簰");
+                            LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�,4涓�024", "鏀归亾瀹夊叏浜や簰");
                             NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
-                            NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
+                            NDCApi.ChangeOrderParam(task.S_CODE, 6, "2");
                             NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024");
 
                         //} else if (workFlow.FLOWNAME.Contains("鍑哄簱")) {
@@ -441,6 +469,23 @@
 
                 LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}", "NDC");
 
+
+                if (mst.S_TYPE.Contains("鍑哄簱"))
+                {
+                    var wcsTask = TaskHelper.GetTaskByWork("wcs", mst.S_OP_CODE);
+                    if (wcsTask == null) {
+                        LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屾病鎵惧埌浣滀笟:{mst.S_OP_CODE}瀵瑰簲鐨勫嚭搴撲换鍔�, "NDC");
+                        return false;
+                    }
+
+                    if (wcsTask.S_B_STATE=="鏈墽琛�)
+                    {
+                        LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屽搴旂殑Wcs鍑哄簱浠诲姟鏈墽琛岋紝鏆備笉鎺ㄩ�", "NDC");
+                        return false;
+                    }
+                }
+
+
                 start = LocationHelper.GetAgvSiteZc(mst.S_START_LOC);
                 end = LocationHelper.GetAgvSiteZc(mst.S_END_LOC);
 
@@ -456,6 +501,7 @@
                 if (work==null)
                 {
                     LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屾病鎵惧埌浣滀笟:{mst.S_OP_CODE}", "NDC");
+                    return false;
                 }
 
                 if (string.IsNullOrEmpty(work.CONNECTION))
@@ -463,7 +509,13 @@
                     ndcParme.Add(new param() { name = "DATA", value = "0" });
                 }
                 else {
-                    ndcParme.Add(new param() { name = "DATA", value = "768" });
+                    if (work.S_TYPE.Contains("鍏ュ簱") || work.S_TYPE.Contains("鍥炲簱"))
+                    {
+                        ndcParme.Add(new param() { name = "DATA", value = "768" });
+                    }
+                    else {
+                        ndcParme.Add(new param() { name = "DATA", value = "0" });
+                    }
                 }
               
 
@@ -792,6 +844,10 @@
                     }
                     db.CommitTran();
                     LogHelper.Info("缁戝畾瑙g粦", "缁撴潫");
+                    result.errMsg = "瑙g粦瀹屾垚";
+                    result.errCode = 0;
+                    result.success = true;
+                    return result;
                     }
                 }
             catch (Exception e)
@@ -800,6 +856,7 @@
                 LogHelper.Info("鐗╂枡缁戝畾瑙g粦寮傚父:" + e.Message, "鐗╂枡缁戝畾瑙g粦");
                 result.errMsg = "鐗╂枡缁戝畾瑙g粦寮傚父";
                 result.errCode = 1;
+                result.success = false;
                 return result;
             }
             return result;
@@ -1353,6 +1410,8 @@
                         {
                             //鏍规嵁鎺ラ┏浣嶄换鍔℃暟閲忚幏鍙栧潎琛℃帴椹充綅闆嗗悎浼樺厛浠诲姟鏁板皯鐨勬帴椹充綅
                             var balanceConnectionList =  LocationHelper.GetBalanceConnectionList(usableConnectionList.available);
+
+                            LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍧囪 鎺ラ┏浣�+JsonConvert.SerializeObject(balanceConnectionList), "Mes浠诲姟涓嬪彂");
                             foreach (var item in balanceConnectionList)
                             {
                                 if (item.loc.N_CURRENT_NUM<2)
@@ -1550,6 +1609,14 @@
                     //鍒涘缓浣滀笟
                     if (WMSHelper.CreateWmsWork(operation))
                     {
+                        if (connection != "")
+                        {
+                            LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2);
+                            LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1);
+                            LocationHelper.LockLoc(operation.CONNECTION, "鍏朵粬閿�, 3);
+                        }
+
+
                         LogHelper.Info($"ZCSendTask鍏ュ簱浣滀笟鍒涘缓鎴愬姛{operation.S_CODE}", "Mes浠诲姟涓嬪彂");
                         result.errMsg = "鍏ュ簱浣滀笟鍒涘缓鎴愬姛";
                         result.errCode = 0;
@@ -1831,6 +1898,14 @@
                     //鍒涘缓浣滀笟
                     if (WMSHelper.CreateWmsWork(operation))
                     {
+                        if (connection!="")
+                        {
+                            LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2);
+                            LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1);
+                            LocationHelper.LockLoc(operation.CONNECTION, "鍏ュ簱閿�, 1);
+                        }
+
+
                         LogHelper.Info($"ZCSendTask鍑哄簱浣滀笟鍒涘缓鎴愬姛{operation.S_CODE}", "Mes浠诲姟涓嬪彂");
                         result.errMsg = "鍑哄簱浣滀笟鍒涘缓鎴愬姛";
                         result.errCode = 0;
@@ -2143,13 +2218,56 @@
         }
 
 
-      
 
-      
+
+        internal static void inPri(WMSTask mst)
+        {
+            LogHelper.Info($"浠诲姟{mst.S_CODE}杩涘叆inpri", "鍏ュ簱浼樺厛绾�);
+            var inprilist = TaskHelper.GetInPri();
+            var db = new SqlHelper<object>().GetInstance();
+          
+            foreach (var item in inprilist)
+            {
+                
+                LogHelper.Info("鍏ュ簱浼樺厛绾ц褰曚俊鎭�+JsonConvert.SerializeObject(item), "鍏ュ簱浼樺厛绾�);
+
+                if (item.Type=="0" && mst.S_TYPE.Contains("绌烘墭鍑�))
+                {
+                    if (mst.S_END_LOC.Contains(item.OutEndLoc))
+                    {
+                        
+                        var task = db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == "宸叉帹閫� && a.S_SCHEDULE_TYPE.Contains("agv") && !a.S_TYPE.Contains("绌烘墭") && (a.S_TYPE.Contains("鍏ュ簱")|| a.S_TYPE.Contains("鍥炲簱")) && a.S_START_LOC.Contains(item.InStartLoc)).First();
+
+                        LogHelper.Info($"鏌ユ壘璧风偣{item.InStartLoc}婊℃墭鍏ュ簱浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task), "鍏ュ簱浼樺厛绾�);
+                        if (task != null)
+                        {
+                            NDCApi.ChangeOrderPri(task.S_CODE, item.Pri);
+                        }
+                       
+                    }
+                }
+
+
+                if (item.Type == "1"  && !mst.S_TYPE.Contains("绌烘墭") && mst.S_TYPE.Contains("鍑哄簱"))
+                {
+                    if (mst.S_END_LOC.Contains(item.OutEndLoc))
+                    {
+                        var task = db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == "宸叉帹閫� && a.S_SCHEDULE_TYPE.Contains("agv") && a.S_TYPE.Contains("绌烘墭鍏ュ簱") && a.S_START_LOC.Contains(item.InStartLoc)).First();
+                        LogHelper.Info($"鏌ユ壘璧风偣{item.InStartLoc}绌烘墭鍏ュ簱浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task), "鍏ュ簱浼樺厛绾�);
+                        if (task != null)
+                        {
+                            NDCApi.ChangeOrderPri(task.S_CODE, item.Pri);
+                        }
+                    }
+                }
+
+            }
+            LogHelper.Info($"浠诲姟{mst.S_CODE}锛岀粨鏉焛npri", "鍏ュ簱浼樺厛绾�);
+        }
 
 
 
-        
+           
 
 
         public class signalInfo

--
Gitblit v1.9.1