xiaojiao
2026-03-23 f02d3a8ffc05a10a64859b2a16d5d43c8abb0fb9
ÏîÄ¿´úÂë/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs
@@ -95,6 +95,30 @@
                    LogRecord.WriteLog(LogEnum.Errer, str.ToString());
                }
            }
            // è¿™é‡Œè¦å†™ä¸€ä¸ª æœ‰ä¸€äº›æ‰˜ç›˜å·²ç»å‡ºåˆ°å¤–面去了 ä½†çŠ¶æ€è¿˜æ˜¯æå‡æœºè¿è¡Œä¸­ å¯¼è‡´åŽé¢çš„发不出去
            Dt_TaskWCSinfo OutTask = taskWCSinfoRepository.Find(r =>
            r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()
            && endStationNo.Contains(r.wcstask_endPoint)
            ).FirstOrDefault();
            if (OutTask != null)
            {
                double secondsPassend = (DateTime.Now - OutTask.wcstask_dispatcherTime.Value).TotalSeconds;
                if (secondsPassend > 38) // å¦‚果大于38秒 è¿˜æ²¡ç”¨æå‡æœºå®Œæˆ å°±è¦æ‰‹åЍ
                {
                    string state = TaskState.TaskState_Box_Out_Line_Executing.ToString();
                    if (OutTask.wcstask_type == TaskType.TaskType_Empty_Pallet_Outbound.ToString())
                    {
                        state = TaskState.TaskState_Empty_Out_Line_Executing.ToString();
                    }
                    OutTask.wcstask_state = state;
                    OutTask.wcstask_dispatcherTime = DateTime.Now;
                    taskWCSinfoRepository.Update(OutTask, true);
                    string str = $"出库区 å‡ºåº“ æå‡æœºå·²ç»å†…的托盘已经出去 ä½†çŠ¶æ€è¿˜æ˜¯æå‡æœºæ‰§è¡Œä¸­... {DateTime.Now},托盘号:{OutTask.wcstask_barcode},任务号:{OutTask.wcstask_taskNumber}";
                    LogRecord.WriteLog(LogEnum.Errer, str.ToString());
                }
            }
        }
        public static void OutboundAreaDispathAction(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client)
        {
@@ -205,23 +229,20 @@
                        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;
                    // è‚–ä½¼ å°†ä¸Šé¢ä¿®æ”¹æˆä¸‹é¢
                    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()));
                    (r.wcstask_startPoint == wcsTask.wcstask_startPoint)
                    && (r.wcstask_state == TaskState.TaskState_RGV_Received.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());
                    //if (listTarget != null && listTarget.Count > 1)
                    //{
                    //    continue;
                    //}
                    //else
                    //{
                    //    wcsInfo = wcsTask;
                    //}
                    string barcode = client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), wcsTask.wcstask_endPoint).ToString();
@@ -334,7 +355,7 @@
                                WebResponseContent content = taskWCSinfoRepository.DbContextBeginTransaction(() =>
                                {
                                    //上报WMS任务完成
                                    content = WMSApi.TellWmsTaskFinished(IsTask.wcstask_barcode);
                                    content = WMSApi.TellWmsTaskFinished(IsTask.wcstask_barcode,IsTask.wcstask_backUp_2);
                                    if (content.Status)
                                    {
                                        //移动任务到历史表