From bd6818fc9d40f343547bafca0743658f3c0379dc Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期四, 11 十二月 2025 10:16:33 +0800
Subject: [PATCH] 优化部分程序

---
 项目代码/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs |   69 ++++++++++++++++++++++------------
 1 files changed, 44 insertions(+), 25 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs"
index 9feff89..38ffd31 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs"
@@ -24,7 +24,7 @@
         /// <summary>
         /// 鍑哄簱鐨勫眰
         /// </summary>
-        private static List<string> OutboundStationLayerNo = new List<string>() { "90100", "90200", "90300", "90400", "90500", "90600", "90700", "90800" };
+        private static List<string> OutboundStationLayerNo = new List<string>() { "60100", "60200", "60300", "60400", "60500", "60600", "60700"};
         //鍏ュ簱鎵樼洏鐢宠绔欏彴
         private static string ReInboundRequestStationNo = "90101";
         //鍑哄簱绔欏彴浜や簰
@@ -43,19 +43,17 @@
             try
             {
                 //鍑哄簱瀹屾垚
-                OutboundCompleteAction(taskWCSinfoRepository, client);
-                //璇诲彇鎻愬崌鏈烘槸鍚︽甯�
-                //婊氱瓛绾跨姸鎬�
-                string hoisterResult = client.ReadValue(CLineInfoDBName.R_Line_DeviceNormal.ToString(), hoisterResultNo).ToString();
-                //鎻愬崌鏈虹姸鎬�
-                string result = client.Read("DB506.36.0", "bool").ToString();
-                if (!bool.Parse(hoisterResult) || !bool.Parse(result))
-                    return;
-                //鍏ュ簱鐢宠
+                OutboundCompleteAction(taskWCSinfoRepository, client);  //鍘嬭鍑哄簱鍙d换鍔″畬鎴�
+
+                
+
+                //绌烘墭鍏ュ簱鐢宠
                 InboundRequestAction(taskWCSinfoRepository, taskRGVinfoRepository, client);
 
+
+                //娴嬭瘯闃舵娉ㄩ噴鐨勫唴瀹癸紙鍚庣画闇�瑕佷娇鐢ㄧ殑锛�
                 //澧炲姞琛ヤ竵.澧炲姞杞﹀瓨鍌ㄤ腑鏈夐棶棰�.鍐嶅啓
-                int logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), "OutboundArea").ToString());
+                /*int logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), "OutboundArea").ToString());
                 if (logicValue == 4)
                 {
                     string rfidResult = client.ReadValue(CLineInfoDBName.W_Line_Barcode.ToString(), "OutboundArea").ToString();
@@ -89,19 +87,28 @@
                     }
                 }
                 else
+                {
                     flag = 0;
+                }*/
 
-                List<Dt_TaskWCSinfo> executingTask = taskWCSinfoRepository.Find(r => (r.wcstask_state == TaskState.TaskState_RGV_Received.ToString()
-                || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())
-                 && (OutboundStationLayerNo.Contains(r.wcstask_startPoint) || OutboundStationLayerNo.Contains(r.wcstask_endPoint)));
-                if (executingTask.Count < 3)
+
+                //娴嬭瘯闃舵娉ㄩ噴鐨勫唴瀹�*/
+
+
+
+                //鏌ヨ鍑哄簱鑷冲帇瑁呭彴鐨勪换鍔℃湁澶氬皯杩涜涓�
+                List<Dt_TaskWCSinfo> executingTask = taskWCSinfoRepository.Find(r => (r.wcstask_state != TaskState.TaskState_Assigned.ToString()
+                 && (OutboundStationLayerNo.Contains(r.wcstask_startPoint) || OutboundStationLayerNo.Contains(r.wcstask_endPoint))));
+                if (executingTask.Count < 4)
                 {
                     //鐩存帴灏嗕换鍔℃坊鍔犲埌AGV浠诲姟
-                    Dt_TaskWCSinfo outboundTask = GetOutboundTask(taskWCSinfoRepository, client);
+                    Dt_TaskWCSinfo outboundTask = GetOutboundTask(taskWCSinfoRepository, client);   
                     if (null != outboundTask)
                     {
+                        //鏌ユ壘鏄惁鏈夎鎵樼洏鏉$爜浠诲姟锛屽鏋滄病鏈夊垯杩涜娣诲姞RGV浠诲姟
                         Dt_TaskRGVinfo rgvInfo = taskRGVinfoRepository.FindFirst(r => r.rgvtask_barCode == outboundTask.wcstask_barcode
                         && r.rgvtask_wcsTaskNumber == outboundTask.wcstask_taskNumber);
+
                         if (null == rgvInfo)
                         {
                             string rgvTaskType = RGVTaskType.RgvTaskType_Inbound.ToString();
@@ -123,13 +130,11 @@
                     }
                 }
 
-                //鎻愬崌鏈鸿繍琛岀殑浠诲姟
+                //鎻愬崌鏈鸿繍琛岀殑浠诲姟 
                 Dt_TaskWCSinfo hisTask = taskWCSinfoRepository.FindFirst(r => r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()
                 && (OutboundStationLayerNo.Contains(r.wcstask_startPoint) || OutboundStationLayerNo.Contains(r.wcstask_endPoint)));
                 if (null != hisTask)
                 {
-                    //鎻愬崌鏈哄眰
-                    string hoisterLayer = client.ReadValue(CLineInfoDBName.R_Line_Layer.ToString(), hoisterResultNo).ToString();
                     string[] locationArray = null;
                     //绌烘墭鐩樺洖搴�
                     if (hisTask.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Inbound.ToString()))
@@ -157,12 +162,12 @@
                             return;
                     }
                     //杞存壙鍑哄簱
-                    else if (hisTask.wcstask_type.Equals(TaskType.TaskType_Box_Pallet_Outbound.ToString())
-                        || hisTask.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString()))
+                    else if (hisTask.wcstask_type.Equals(TaskType.TaskType_Box_Pallet_Outbound.ToString()) || hisTask.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString()))
+                    {
                         locationArray = hisTask.wcstask_startLocation.Split('-');
-                    //璇存槑鎻愬崌鏈哄埌杈句簡鐩爣灞�
-                    if (int.Parse(locationArray[0]).ToString() == hoisterLayer)
-                        WriteRGVState(client, false);// 鍐欏叆RGV寮�濮嬫墽琛�
+                    }
+                        
+                    
                 }
                 else
                 {
@@ -171,7 +176,7 @@
                     if (null != inboundTask)
                         ReInboundRequestStationAction(taskWCSinfoRepository, client, inboundTask);
                     else
-                        OutboundRequestAction(taskWCSinfoRepository, client);
+                        OutboundRequestAction(taskWCSinfoRepository, client);   //鎻愬崌鏈哄嚭搴撶殑娴佺▼
                 }
             }
             catch (Exception ex)
@@ -219,12 +224,26 @@
                 Dt_TaskWCSinfo wcsTask = item.OrderBy(r => r.wcstask_createTime).FirstOrDefault();
                 if (null != wcsTask)
                 {
+                    //鍒ゆ柇鍘嬭鍙版槸鍚︽湁璐�
+                    bool yzflag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), wcsTask.wcstask_endPoint).ToString());
+                    bool yznoflag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_NoLoadSleep.ToString(), wcsTask.wcstask_endPoint).ToString());
+                    if (!yzflag || yznoflag)
+                        continue;
+
+                    //鍒ゆ柇缂撳瓨鏋舵槸鍚︽湁璐�
+                    bool flag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), wcsTask.wcstask_startPoint).ToString());
+                    bool noflag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_NoLoadSleep.ToString(), wcsTask.wcstask_startPoint).ToString());
+                    if (!flag || noflag)
+                        continue;
+
+
                     //鍚屼竴灞傛湁鎵ц涓殑浠诲姟涓嶆坊鍔�
                     Dt_TaskWCSinfo executingTask = taskWCSinfoRepository.FindFirst(r => (r.wcstask_startPoint == wcsTask.wcstask_startPoint || r.wcstask_endPoint == wcsTask.wcstask_endPoint)
                     && (r.wcstask_state == TaskState.TaskState_RGV_Received.ToString() || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()));
                     if (null != executingTask)
                         continue;
 
+
                     List<Dt_TaskWCSinfo> listTarget = taskWCSinfoRepository.Find(r => r.wcstask_endPoint == wcsTask.wcstask_endPoint &&
                     r.wcstask_state != TaskState.TaskState_Assigned.ToString());
 

--
Gitblit v1.9.3