using System; using System.Collections.Generic; using System.Text; using WIDESEA_Common; using WIDESEA_Common.TaskEnum; using WIDESEA_Common.Tools; using WIDESEA_Entity.DomainModels; using WIDESEA_Services.IRepositories; using WIDESEA_WCS.WCSClient; namespace WIDESEA_WCS.Jobs.ConveyorLine.OutboundArea { public partial class OutboundAreaDispatch { /// /// 出库前移库到 /// /// /// /// public static void OutboundMoveAction(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client) { try { string rgvTaskType = RGVTaskType.RgvTaskType_Move.ToString(); List inboundWaitMoveTask = taskWCSinfoRepository.Find(r => r.wcstask_state == TaskState.TaskState_InboundWaitMove.ToString()); if (null != inboundWaitMoveTask) { //将缓存位的移入目的地 foreach (var item in inboundWaitMoveTask) { Dt_TaskRGVinfo rgvTask = GetRGVTask(taskRGVinfoRepository, item, rgvTaskType); taskRGVinfoRepository.Add(rgvTask, true); item.wcstask_state = TaskState.TaskState_InboundMoveExecuting.ToString(); taskWCSinfoRepository.Update(item, x => x.wcstask_state, true); } } List outboundWaitMoveTask = taskWCSinfoRepository.Find(r => r.wcstask_state == TaskState.TaskState_Assigned.ToString()); if (null != outboundWaitMoveTask) { //将缓存位的移入目的地 foreach (var item in outboundWaitMoveTask) { //当前层已经有移库任务了 Dt_TaskWCSinfo task = taskWCSinfoRepository.FindFirst(r => OutboundStationLayerNo.Contains(r.wcstask_startPoint) && (r.wcstask_state == TaskState.TaskState_OutboundMoveExecuting.ToString() || r.wcstask_state == TaskState.TaskState_OutboundMoveFinished.ToString())); if (null != task) continue; Dt_TaskRGVinfo rgvTask = GetRGVTask(taskRGVinfoRepository, item, rgvTaskType); taskRGVinfoRepository.Add(rgvTask, true); item.wcstask_state = TaskState.TaskState_OutboundMoveExecuting.ToString(); taskWCSinfoRepository.Update(item, x => x.wcstask_state, true); } } } catch (Exception ex) { WriteLog.Info("OutboundArea").Write($"{ DateTime.Now }出库区域调度失败:{ex.Message}", "OutboundArea"); } } } }