From a99ceecce8c9a2521ac1fc167f4eff764cbdb123 Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期一, 19 五月 2025 17:35:18 +0800
Subject: [PATCH] bug优化

---
 process/TaskProcess.cs |   87 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 64 insertions(+), 23 deletions(-)

diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index d92c906..b89a122 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -289,7 +289,7 @@
                         foreach (var item in usableConnectionList.available)
                         {
                             var con = LocationHelper.GetLoc(item);
-                            if (con.S_CODE.Contains(task.S_END_LOC) && con.C_ENABLE=="Y")
+                            if (con.S_CODE.Contains(task.S_END_LOC))
                             {
 
                                 flag = false;
@@ -1308,14 +1308,16 @@
                         var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList);
                         if (usableConnectionList != null && usableConnectionList.code == "0")
                         {
-                            foreach (var item in usableConnectionList.available)
+                            //鏍规嵁鎺ラ┏浣嶄换鍔℃暟閲忚幏鍙栧潎琛℃帴椹充綅闆嗗悎浼樺厛浠诲姟鏁板皯鐨勬帴椹充綅
+                            var balanceConnectionList =  LocationHelper.GetBalanceConnectionList(usableConnectionList.available);
+                            foreach (var item in balanceConnectionList)
                             {
-                                var con = LocationHelper.GetLoc(item);
-                                if (con.N_CURRENT_NUM < 2 && con.C_ENABLE == "Y")
+                                if (item.loc.N_CURRENT_NUM<2)
                                 {
-                                    connection = con.S_CODE;
-                                    connectionArea = con.S_AREA_Name;
+                                    connection = item.loc.S_CODE;
+                                    connectionArea = item.loc.S_AREA_Name;
                                     LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂");
+                                    break;
                                 }
                             }
                         }
@@ -1385,10 +1387,10 @@
                     }
 
 
-                    LogHelper.Info($"ZCSendTask浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂");
+                    LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂");
 
                     if (end == null) {
-                        LogHelper.Info($"ZCSendTask浠诲姟涓嬪彂澶辫触锛岀粓鐐瑰簱鍖簕workFlow.ENDAREA},娌℃壘鍒扮粓鐐�, "Mes浠诲姟涓嬪彂");
+                        LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂澶辫触锛岀粓鐐瑰簱鍖簕workFlow.ENDAREA},娌℃壘鍒扮粓鐐�, "Mes浠诲姟涓嬪彂");
                         throw new Exception($"缁堢偣搴撳尯{workFlow.ENDAREA},娌℃壘鍒扮粓鐐�);
                     }
 
@@ -1547,6 +1549,19 @@
                         else {
                             //鏍规嵁鍒跺搧缂栧彿瀵绘壘绔嬪簱鍖哄搴旂墿鏂欐墭鐩�                             start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY);
+                            if (start==null)
+                            {
+
+                                var itemFlag = LocationHelper.FindStartcolByLoclistAndItemFlag(strrtList, model.PROD_NO, workFlow.STARTAREA);
+                                LogHelper.Info($"ZCSendTask婊℃墭鍑哄簱浠诲姟娌℃壘鍒拌捣鐐癸紝鏍¢獙鏄惁鏈夊簱瀛樹絾鏄澶囨姤璀itemFlag}", "Mes浠诲姟涓嬪彂");
+                                if (itemFlag)
+                                {
+                                    result.errMsg = "婊℃墭鍑哄簱浣滀笟鏈夊簱瀛樹絾璁惧鎶ヨ";
+                                    result.errCode = 2001;
+                                    result.success = true;
+                                    return result;
+                                }
+                            }
                         }
 
 
@@ -1554,6 +1569,19 @@
                     else if (workFlow.FLOWCODE == "7") {
                         //瀵绘壘绔嬪簱鍖虹┖鎵�                         start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA);
+                        if (start == null)
+                        {
+                            var itemFlag = LocationHelper.FindStartcolByLoclistAndcntrFlag(strrtList, workFlow.STARTAREA);
+                            LogHelper.Info($"ZCSendTask绌烘墭鍑哄簱浠诲姟娌℃壘鍒拌捣鐐癸紝鏍¢獙鏄惁鏈夊簱瀛樹絾鏄澶囨姤璀itemFlag}", "Mes浠诲姟涓嬪彂");
+
+                            if (itemFlag)
+                            {
+                                result.errMsg = "绌烘墭鍑哄簱浣滀笟鏈夊簱瀛樹絾璁惧鎶ヨ";
+                                result.errCode = 2001;
+                                result.success = true;
+                                return result;
+                            }
+                        }
                     }
 
 
@@ -1626,24 +1654,37 @@
 
                         //姝e紡浠g爜锛岃皟鐢ㄦ帴鍙e鎵惧彲鐢ㄦ帴椹充綅
                         var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION);
-                        var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList);
-                        if (usableConnectionList != null && usableConnectionList.code == "0")
+                        //var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList);
+                        //if (usableConnectionList != null && usableConnectionList.code == "0")
+                        //{
+                        //    foreach (var item in usableConnectionList.available)
+                        //    {
+                        //        var con = LocationHelper.GetLoc(item);
+                        //        if (con.C_ENABLE == "Y" && con.N_CURRENT_NUM < 2)
+                        //        {
+                        //            connection = con.S_CODE;
+                        //            connectionArea = con.S_AREA_Name;
+                        //            LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂");
+                        //        }
+                        //    }
+                        //}
+                        //else
+                        //{
+                        //    LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂");
+                        //    throw new Exception($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�);
+                        //}                
+
+                        //鏍规嵁鎺ラ┏浣嶄换鍔℃暟閲忚幏鍙栧潎琛℃帴椹充綅闆嗗悎浼樺厛浠诲姟鏁板皯鐨勬帴椹充綅
+                        var balanceConnectionList = LocationHelper.GetBalanceConnectionList(connectionList);
+                        foreach (var item in balanceConnectionList)
                         {
-                            foreach (var item in usableConnectionList.available)
+                            if (item.loc.N_CURRENT_NUM < 2)
                             {
-                                var con = LocationHelper.GetLoc(item);
-                                if (con.C_ENABLE == "Y" && con.N_CURRENT_NUM < 2)
-                                {
-                                    connection = con.S_CODE;
-                                    connectionArea = con.S_AREA_Name;
-                                    LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂");
-                                }
+                                connection = item.loc.S_CODE;
+                                connectionArea = item.loc.S_AREA_Name;
+                                LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂");
+                                break;
                             }
-                        }
-                        else
-                        {
-                            LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂");
-                            throw new Exception($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�);
                         }
 
                         if (connection == "")

--
Gitblit v1.9.1