From 02dd21ca9a064b98aacfdc8c6ffec5a2b575967d Mon Sep 17 00:00:00 2001
From: xiaojiao <xiaojiao@kaokeziliao.com>
Date: 星期四, 26 三月 2026 09:54:56 +0800
Subject: [PATCH] PDA优化选配确认页面

---
 项目代码/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundRequestAction.cs |   54 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 37 insertions(+), 17 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundRequestAction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundRequestAction.cs"
index 947ec92..df32697 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundRequestAction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundRequestAction.cs"
@@ -5,6 +5,7 @@
 using System.Text;
 using System.Threading;
 using WIDESEA_Common;
+using WIDESEA_Common.LogEnum;
 using WIDESEA_Common.TaskEnum;
 using WIDESEA_Common.Tools;
 using WIDESEA_Core.Utilities;
@@ -20,10 +21,14 @@
     public partial class OutboundAreaDispatch
     {
 
-        public static void OutboundCZ_PLC(IDt_TaskWCSinfoRepository taskWCSinfoRepository,IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client)
+        public static void OutboundCZ_PLC(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client)
         {
-            Dt_TaskWCSinfo hisTask = taskWCSinfoRepository.Find(r => r.wcstask_state == TaskState.TaskState_Box_Out_RGV_Finished.ToString() || r.wcstask_state == TaskState.TaskState_Empty_Out_RGV_Finished.ToString() || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())
-                .Where(r => OutboundStationLayerNo.Contains(r.wcstask_startPoint) && (r.wcstask_type.Equals(TaskType.TaskType_Box_Pallet_Outbound.ToString()) || r.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString()))).OrderBy(x => x.wcstask_dispatcherTime).FirstOrDefault();
+            Dt_TaskWCSinfo hisTask = taskWCSinfoRepository.Find(r => 
+            r.wcstask_state == TaskState.TaskState_Box_Out_RGV_Finished.ToString()
+            || r.wcstask_state == TaskState.TaskState_Empty_Out_RGV_Finished.ToString()
+            || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())
+                .Where(r => OutboundStationLayerNo.Contains(r.wcstask_startPoint)
+                && (r.wcstask_type.Equals(TaskType.TaskType_Box_Pallet_Outbound.ToString()) || r.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString()))).OrderBy(x => x.wcstask_dispatcherTime).FirstOrDefault();
             if (null != hisTask)
             {
                 OutboundRequestAction(taskWCSinfoRepository, client);
@@ -31,7 +36,7 @@
         }
 
         /// <summary>
-        /// 鍑哄簱鍖虹┖鎵樼洏鍑哄簱
+        /// 鍑哄簱鍖虹┖鎵樼洏/瀹炴墭鍑哄簱
         /// </summary>
         /// <param name="taskWCSinfoRepository"></param>
         /// <param name="client"></param>
@@ -44,16 +49,28 @@
                 //鏌ヨ鍑哄簱寰呬换鍔�
                 Dt_TaskWCSinfo wcsInfo = null;
                 if (!string.IsNullOrEmpty(rfidResult) && !"0".Equals(rfidResult))
-                    wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == rfidResult && (r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString() 
+                    wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == rfidResult && (r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()
                     || r.wcstask_state == TaskState.TaskState_Box_Out_RGV_Finished.ToString() || r.wcstask_state == TaskState.TaskState_Empty_Out_RGV_Finished.ToString()));
                 //wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == rfidResult && r.wcstask_state == TaskState.TaskState_Assigned.ToString());
                 else
                 {
-                    wcsInfo = taskWCSinfoRepository.Find(r => (r.wcstask_state == TaskState.TaskState_Box_Out_RGV_Finished.ToString() || r.wcstask_state == TaskState.TaskState_Empty_Out_RGV_Finished.ToString()
-                    || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()) && OutboundStationLayerNo.Contains(r.wcstask_startPoint)).OrderBy(r => r.wcstask_createTime).FirstOrDefault();
+                    wcsInfo = taskWCSinfoRepository.Find(r =>
+                    (r.wcstask_state == TaskState.TaskState_Box_Out_RGV_Finished.ToString()
+                    || r.wcstask_state == TaskState.TaskState_Empty_Out_RGV_Finished.ToString()
+                    || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())
+                    && OutboundStationLayerNo.Contains(r.wcstask_startPoint)).OrderBy(r => r.wcstask_createTime).FirstOrDefault();
                 }
                 if (null == wcsInfo)
                     return false;
+
+                // 杩欓噷鍔犱竴涓垽鏂�90201 鍒ゆ柇鎵樼洏鏄惁涓�0锛屽垽鏂槸鍚︾┖杞�
+
+                int Barcode = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), 90201.ToString()).ToString());
+                bool LoadSleep = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), 90201.ToString()).ToString());
+                if (Barcode != 0 || LoadSleep)
+                {
+                    return false;
+                }
 
                 //璇诲彇閫昏緫鎺у埗鍊�  鏌ョ湅绾夸綋鐘舵�侊紝鍑嗗缁欑嚎浣撲笅鍙戜换鍔′俊鎭�
                 int logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), lineCode).ToString());
@@ -71,9 +88,9 @@
                 else if (logicValue == 3)
                 {
                     //鍚姩浠诲姟
-                   bool plclogicbool=client.WriteValue(CLineInfoDBName.W_Line_Logic.ToString(), lineCode, 1);
-                   if(plclogicbool)
-                   {
+                    bool plclogicbool = client.WriteValue(CLineInfoDBName.W_Line_Logic.ToString(), lineCode, 1);
+                    if (plclogicbool)
+                    {
                         string state = TaskState.TaskState_HoisterExecuting.ToString();
                         if (wcsInfo.wcstask_state == state)
                             return true;
@@ -81,12 +98,11 @@
                         wcsInfo.wcstask_dispatcherTime = DateTime.Now;
                         taskWCSinfoRepository.Update(wcsInfo, true);
                     }
-
                 }
-                else if (logicValue == 4 || logicValue == 5)
+                else if (logicValue == 5)
                 {
                     string taskplc_Result = client.ReadValue(CLineInfoDBName.W_Line_Barcode.ToString(), lineCode).ToString();
-                    if(taskplc_Result== wcsInfo.wcstask_barcode)
+                    if (taskplc_Result == wcsInfo.wcstask_barcode)
                     {
                         string state = TaskState.TaskState_Box_Out_Line_Executing.ToString();
                         if (wcsInfo.wcstask_type == TaskType.TaskType_Empty_Pallet_Outbound.ToString())
@@ -101,7 +117,9 @@
                     }
                     else
                     {
-                        Dt_TaskWCSinfo wcsInfoPLC = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == rfidResult && r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString());
+                        Dt_TaskWCSinfo wcsInfoPLC = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == rfidResult
+                        && r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString());
+
                         if (wcsInfoPLC != null)
                         {
                             string state = TaskState.TaskState_Box_Out_Line_Executing.ToString();
@@ -110,21 +128,23 @@
                                 state = TaskState.TaskState_Empty_Out_Line_Executing.ToString();
                             }
 
-                            
+
                             if (wcsInfoPLC.wcstask_state == state)
                                 return true;
                             wcsInfoPLC.wcstask_state = state;
                             wcsInfoPLC.wcstask_dispatcherTime = DateTime.Now;
                             taskWCSinfoRepository.Update(wcsInfoPLC, true);
                         }
+
+
                     }
 
-                    
+
                 }
             }
             catch (Exception ex)
             {
-                WriteLog.Info(lineCode).Write($"{ DateTime.Now }鍑哄簱绔欏彴璋冨害澶辫触:{ex.Message}", lineCode);
+                WriteLog.Info(lineCode).Write($"{DateTime.Now}鍑哄簱绔欏彴璋冨害澶辫触:{ex.Message}", lineCode);
             }
             return true;
         }

--
Gitblit v1.9.3