From 112c9bd20afed95d582b7eb227075ab8d10cdd12 Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期二, 24 六月 2025 17:29:28 +0800
Subject: [PATCH] 金坛优化

---
 process/TaskProcess.cs |   97 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 90 insertions(+), 7 deletions(-)

diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index b601426..5006ef2 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -263,16 +263,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},娌℃壘鍒扮粓鐐�, "鏀归亾瀹夊叏浜や簰");
@@ -441,6 +450,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 +482,7 @@
                 if (work==null)
                 {
                     LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屾病鎵惧埌浣滀笟:{mst.S_OP_CODE}", "NDC");
+                    return false;
                 }
 
                 if (string.IsNullOrEmpty(work.CONNECTION))
@@ -792,6 +819,10 @@
                     }
                     db.CommitTran();
                     LogHelper.Info("缁戝畾瑙g粦", "缁撴潫");
+                    result.errMsg = "瑙g粦瀹屾垚";
+                    result.errCode = 0;
+                    result.success = true;
+                    return result;
                     }
                 }
             catch (Exception e)
@@ -800,6 +831,7 @@
                 LogHelper.Info("鐗╂枡缁戝畾瑙g粦寮傚父:" + e.Message, "鐗╂枡缁戝畾瑙g粦");
                 result.errMsg = "鐗╂枡缁戝畾瑙g粦寮傚父";
                 result.errCode = 1;
+                result.success = false;
                 return result;
             }
             return result;
@@ -1831,6 +1863,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 +2183,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