From 1cd9280bbecf557f8978ad3839f14827ff9f4d34 Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期三, 17 十二月 2025 22:23:26 +0800
Subject: [PATCH] 最新

---
 项目代码/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs |   84 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 84 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs"
index 5c4366d..f9f2740 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs"
@@ -1,11 +1,14 @@
 锘縰sing HslCommunication;
 using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric;
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using System.Text;
 using System.Threading;
 using WIDESEA_Common;
 using WIDESEA_Common.CutomerModel;
+using WIDESEA_Common.TaskEnum;
 using WIDESEA_Common.Tools;
 using WIDESEA_Core.Utilities;
 using WIDESEA_Entity.DomainModels;
@@ -87,6 +90,87 @@
         //    }
         //}
 
+        //鑾峰彇浠诲姟锛岀敓鎴愬叆搴撲换鍔�
+        public static void RGV_InboundKTP(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client)
+        {
+            Dt_TaskWCSinfo inboundTask = taskWCSinfoRepository.FindFirst(r => OutboundStationLayerNo.Contains(r.wcstask_endPoint) && r.wcstask_type ==
+                                TaskType.TaskType_Empty_Pallet_Inbound.ToString() && r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString());
+            if(inboundTask == null)
+            {
+                //鏌ユ壘鏄惁鏈夎鎵樼洏鏉$爜浠诲姟锛屽鏋滄病鏈夊垯杩涜娣诲姞RGV浠诲姟
+                Dt_TaskRGVinfo rgvInfo = taskRGVinfoRepository.FindFirst(r => r.rgvtask_barCode == inboundTask.wcstask_barcode
+                && r.rgvtask_wcsTaskNumber == inboundTask.wcstask_taskNumber);
+
+                if (null == rgvInfo)
+                {
+                    string rgvTaskType = RGVTaskType.RgvTaskType_Inbound.ToString();
+                    
+                    rgvInfo = GetRGVTask(taskRGVinfoRepository, inboundTask, rgvTaskType);
+                    taskRGVinfoRepository.Add(rgvInfo, true);
+
+                    inboundTask.wcstask_state = TaskState.TaskState_RGV_Received.ToString();
+                    taskWCSinfoRepository.Update(inboundTask, x => x.wcstask_state, true);
+                }
+            }
+
+        }
+
+
+        //绌烘墭鐩樺叆搴撲换鍔′笅鍙戝垽鏂�
+        public static void ReInboundKTP(IDt_TaskWCSinfoRepository taskWCSinfoRepository, PLCClient client)
+        {
+            try
+            {
+                //鍙互杩涜鍒ゆ柇涓嬪彂鍏ュ簱浠诲姟
+                Dt_TaskWCSinfo inboundTask = taskWCSinfoRepository.FindFirst(r => OutboundStationLayerNo.Contains(r.wcstask_endPoint) && r.wcstask_type ==
+                                TaskType.TaskType_Empty_Pallet_Inbound.ToString() && r.wcstask_state == TaskState.TaskState_Assigned.ToString());
+                if(inboundTask != null)
+                {
+                    //鑾峰彇杞﹁酱鍑哄簱
+                    List<Dt_TaskWCSinfo> executingTask = taskWCSinfoRepository.Find(r => (r.wcstask_type.Equals(TaskType.TaskType_Box_Pallet_Outbound.ToString()) ||
+                        r.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString())) && endStationNo.Contains(r.wcstask_endPoint));
+
+                    //鑾峰彇鏈夊灏戞潯鍑哄簱鐨勪换鍔�
+                    int LineExecucount = executingTask.Count(x => x.wcstask_state == TaskState.TaskState_Box_Out_Line_Executing.ToString());
+                    if (LineExecucount >= 4)
+                    {
+                        //鍒ゆ柇鏄惁鏈夊搴斿眰鐨勫嚭搴撲换鍔★紝
+                        int Assrscount = executingTask.Count(x => x.wcstask_endLocation == inboundTask.wcstask_startLocation && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
+                        || x.wcstask_state == TaskState.TaskState_Assigned.ToString()));
+                        if (Assrscount == 0)
+                        {
+                            ReInboundRequestStationAction(taskWCSinfoRepository, client, inboundTask);
+                        }
+                    }
+                    else
+                    {
+                        //鍒ゆ柇鏈夊灏戞潯鍦ㄧ紦瀛樻灦鐨�
+                        int RGV_Finishedcount = executingTask.Count(x => x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
+                        && x.wcstask_state != TaskState.TaskState_Assigned.ToString());
+                        if (RGV_Finishedcount == 0)
+                        {
+                            //鍙互杩涜鍒ゆ柇涓嬪彂鍏ュ簱浠诲姟
+                            int Assrscount = executingTask.Count(x => x.wcstask_endLocation == inboundTask.wcstask_startLocation && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
+                            || x.wcstask_state == TaskState.TaskState_Assigned.ToString()));
+                            if (Assrscount == 0)
+                            {
+                                ReInboundRequestStationAction(taskWCSinfoRepository, client, inboundTask);
+                            }
+                        }
+                    }
+                }
+
+                
+            }
+            catch (Exception ex)
+            {
+                WriteLog.Info(ReInboundRequestStationNo).Write($"{DateTime.Now}鍥炲簱绔欏彴浠诲姟涓嬪彂,璋冨害澶辫触:{ex.Message}", ReInboundRequestStationNo);
+                throw;
+            }
+
+
+        }
+
 
 
         public static void ReInboundRequestStationAction(IDt_TaskWCSinfoRepository taskWCSinfoRepository, PLCClient client, Dt_TaskWCSinfo wcsInfo)

--
Gitblit v1.9.3