From cde56aae50adc11ff8db84e424d873843c566bfd Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期一, 24 二月 2025 23:40:41 +0800 Subject: [PATCH] 优化WCS移库逻辑 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs | 53 +++++++++++++++++++++++++++-------------------------- 1 files changed, 27 insertions(+), 26 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs" index 6a3a4cd..218e3f7 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs" @@ -24,7 +24,6 @@ WebResponseContent content = new WebResponseContent().OK(); try { - //var task = GetTaskInfo(taskNum, (int)TaskCarStatusEnum.ShuttleCar_Executing);//鍙兘鏍规嵁浠诲姟鍙锋煡璇换鍔� var task = GetTaskInfo(taskNum); if (task != null) { @@ -34,12 +33,15 @@ { if (TaskInboundTypes.Contains(task.TaskType) && task.TaskState == TaskInStatusEnum.Car_InExecuting.ObjToInt()) { - //int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); - task.CurrentAddress = task.NextAddress; - task.NextAddress = string.Empty; - task.TaskState = (int)TaskInStatusEnum.InFinish; + task.TaskState = TaskInStatusEnum.InFinish.ObjToInt(); AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绌挎杞﹀叆搴撳畬鎴�"); + } + else if (TaskRelocationTypes.Contains(task.TaskType) && task.TaskState == TaskRelocationStatusEnum.CarTarget_Executing.ObjToInt()) + { + task.TaskState = TaskRelocationStatusEnum.RelocationFinish.ObjToInt(); + AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绌挎杞︾Щ搴撳畬鎴�"); } } break; @@ -47,19 +49,21 @@ { if (TaskOutboundTypes.Contains(task.TaskType) && task.TaskState == TaskOutStatusEnum.Car_OutExecuting.ObjToInt()) { - //int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>(); - task.TaskState = (int)TaskOutStatusEnum.Car_OutFinish; - task.ModifyDate = DateTime.Now; - task.Modifier = "System"; + task.TaskState = TaskOutStatusEnum.Car_OutFinish.ObjToInt(); + UpdateData(task); + } + else if (TaskRelocationTypes.Contains(task.TaskType) && task.TaskState == TaskRelocationStatusEnum.CarSource_Executing.ObjToInt()) + { + task.TaskState = TaskRelocationStatusEnum.CarSource_Finish.ObjToInt(); UpdateData(task); } } break; case 10://鍏呯數瀹屾垚 { - if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt() && task.TaskState == (int)CarChargingTask.ShuttleCar_Charging)//绉昏溅鍏呯數 + if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt() && task.TaskState == (int)CarChargingTaskEnum.ShuttleCar_Charging)//绉昏溅鍏呯數 { - task.TaskState = (int)CarChargingTask.RelocationCarFinish; + task.TaskState = CarChargingTaskEnum.RelocationCarFinish.ObjToInt(); AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绌挎杞﹀厖鐢靛畬鎴�"); } @@ -68,22 +72,14 @@ case 13://A渚у洖闆跺畬鎴� case 14://B渚у洖闆跺畬鎴� { - if (TaskRelocationTypes.Contains(task.TaskType))//绉诲簱浠诲姟 + if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt() && task.TaskState == TaskCarStatusEnum.ShuttleCar_Executing.ObjToInt())//绉昏溅浠诲姟 { - if (task.TaskState == TaskRelocationStatusEnum.CarSource_Executing.ObjToInt()) - task.TaskState = TaskRelocationStatusEnum.CarSource_Finish.ObjToInt(); - else if (task.TaskState == TaskRelocationStatusEnum.CarTarget_Executing.ObjToInt()) - task.TaskState = TaskRelocationStatusEnum.RelocationFinish.ObjToInt(); + task.TaskState = TaskCarStatusEnum.ShuttleCar_Finish.ObjToInt(); UpdateData(task); } - else if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt() && task.TaskState == TaskCarStatusEnum.ShuttleCar_Executing.ObjToInt())//绉昏溅浠诲姟 + else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt() && task.TaskState == CarChargingTaskEnum.ShuttleCar_Executing.ObjToInt())//绉昏溅鍏呯數 { - task.TaskState = (int)TaskCarStatusEnum.ShuttleCar_Finish; - UpdateData(task); - } - else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt() && task.TaskState == CarChargingTask.ShuttleCar_Executing.ObjToInt())//绉昏溅鍏呯數 - { - task.TaskState = (int)CarChargingTask.ShuttleCar_Finish; + task.TaskState = CarChargingTaskEnum.ShuttleCar_Finish.ObjToInt(); UpdateData(task); } } @@ -148,11 +144,16 @@ public Dt_Task ShuttleCarRelocationTask(string deviceNo, string currentAddress = "") { List<Dt_Task> tasks = null; + Dt_Task? task = null; if (string.IsNullOrEmpty(currentAddress)) - tasks = BaseDal.QueryData(x => x.ShuttleCarCode == deviceNo && (TaskRelocationTypes.Contains(x.TaskType) && (x.TaskState == (int)TaskRelocationStatusEnum.SC_RelocationFinish || x.TaskState == (int)TaskRelocationStatusEnum.RelocationNew))); + tasks = BaseDal.QueryData(x => x.ShuttleCarCode == deviceNo && TaskRelocationTypes.Contains(x.TaskType) && x.TaskState == (int)TaskRelocationStatusEnum.RelocationNew).OrderBy(x => x.TaskNum).ToList(); else - tasks = BaseDal.QueryData(x => x.ShuttleCarCode == deviceNo && x.CurrentAddress == currentAddress && (TaskRelocationTypes.Contains(x.TaskType) && (x.TaskState == (int)TaskRelocationStatusEnum.SC_RelocationFinish || x.TaskState == (int)TaskRelocationStatusEnum.RelocationNew))); - return tasks.OrderBy(x=>x.TaskNum).First(); + tasks = BaseDal.QueryData(x => x.ShuttleCarCode == deviceNo && x.CurrentAddress == currentAddress && TaskRelocationTypes.Contains(x.TaskType) && x.TaskState == (int)TaskRelocationStatusEnum.RelocationNew).OrderBy(x => x.TaskNum).ToList(); + if (tasks != null && tasks.Count > 0) + { + task = tasks[0]; + } + return task; } } } -- Gitblit v1.9.3