xiaojiao
2026-01-12 c3b60d865c3457c35054446e81b352e93e00a696
ÏîÄ¿´úÂë/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs
@@ -17,6 +17,7 @@
using WIDESEA_Services.Repositories;
using WIDESEA_Services.Services;
using WIDESEA_WCS.WCSClient;
using static System.Collections.Specialized.BitVector32;
namespace WIDESEA_WCS.Jobs.ConveyorLine.OutboundArea
{
@@ -134,8 +135,9 @@
                if (!string.IsNullOrEmpty(barcode) && !"0".Equals(barcode) && load)
                {
                    //根据对应的托盘条码进行去下发任务
                    Dt_TaskWCSinfo inboundTask = taskWCSinfoRepository.Find(r => r.wcstask_barcode == barcode).Where(r => r.wcstask_type ==
                                TaskType.TaskType_Empty_Pallet_Inbound.ToString() && (r.wcstask_state == TaskState.TaskState_Assigned.ToString() || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())).FirstOrDefault();
                    Dt_TaskWCSinfo inboundTask = taskWCSinfoRepository.Find(r => r.wcstask_barcode == barcode)
                    .Where(r => r.wcstask_type == TaskType.TaskType_Empty_Pallet_Inbound.ToString()
                    && (r.wcstask_state == TaskState.TaskState_Assigned.ToString() || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())).FirstOrDefault();
                    if(inboundTask != null)
                    {
                        if(inboundTask.wcstask_state== TaskState.TaskState_Assigned.ToString())
@@ -168,12 +170,14 @@
                    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 LineExecucount = executingTask.Count(x => x.wcstask_state == TaskState.TaskState_Box_Out_Line_Executing.ToString() || x.wcstask_state == TaskState.TaskState_Empty_Out_Line_Executing.ToString());
                if (LineExecucount >= 8)
                {
                    //判断是否有对应层的出库任务,
                    int Assrscount = executingTask.Count(x => x.wcstask_endLocation == wcsInfo.wcstask_startLocation && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
                    || x.wcstask_state == TaskState.TaskState_Assigned.ToString()));
                    int Assrscount = executingTask.Count(x => x.wcstask_endLocation == wcsInfo.wcstask_startLocation
                    && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
                    || x.wcstask_state == TaskState.TaskState_Assigned.ToString()
                    || x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString()));
                    if (Assrscount == 0)
                    {
                        ReInboundRequestStationAction(taskWCSinfoRepository, client, wcsInfo);
@@ -183,12 +187,13 @@
                {
                    //判断有多少条在缓存架的
                    int RGV_Finishedcount = executingTask.Count(x => x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
                    && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString()
                    && x.wcstask_state != TaskState.TaskState_Assigned.ToString());
                    if (RGV_Finishedcount == 0)
                    {
                        //可以进行判断下发入库任务
                        int Assrscount = executingTask.Count(x => x.wcstask_endLocation == wcsInfo.wcstask_startLocation && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
                        || x.wcstask_state == TaskState.TaskState_Assigned.ToString()));
                        || x.wcstask_state == TaskState.TaskState_Assigned.ToString()) && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString());
                        if (Assrscount == 0)
                        {
                            ReInboundRequestStationAction(taskWCSinfoRepository, client, wcsInfo);
@@ -216,7 +221,11 @@
                    int logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), lineCode).ToString());
                    if ((logicValue == 1 || logicValue == 2))
                    {
                        client.WriteValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_endPoint);
                        client.WriteValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_taskNumber);
                        WriteTaskInfo.WriteTaskInfoAction(wcsInfo, client, lineCode);
                        client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 2);
                    }
                    string rfidResult = client.ReadValue(CLineInfoDBName.W_Line_Barcode.ToString(), lineCode).ToString();
                    if (!wcsInfo.wcstask_barcode.Equals(rfidResult))