From f40ba2a9fb9d3c2ece08e9a7cd987d4744dccab2 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期二, 17 六月 2025 15:22:05 +0800 Subject: [PATCH] 优化库内移库,堆垛机和穿梭车交互逻辑 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs | 37 +++++++++++++++++++++++++++---------- 1 files changed, 27 insertions(+), 10 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 c2990b0..59b47ef 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" @@ -61,9 +61,9 @@ break; case 10://鍏呯數瀹屾垚 { - if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt() && task.TaskState == (int)CarChargingTaskEnum.ShuttleCar_Charging)//绉昏溅鍏呯數 + if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt() && task.TaskState == (int)CarChargingTaskEnum.CarCharging_Charging)//绉昏溅鍏呯數 { - task.TaskState = CarChargingTaskEnum.RelocationCarFinish.ObjToInt(); + task.TaskState = CarChargingTaskEnum.CarChargingFinish.ObjToInt(); AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绌挎杞﹀厖鐢靛畬鎴�"); } @@ -77,9 +77,9 @@ task.TaskState = TaskCarStatusEnum.ShuttleCar_Finish.ObjToInt(); UpdateData(task); } - else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt() && task.TaskState == CarChargingTaskEnum.ShuttleCar_Executing.ObjToInt())//绉昏溅鍏呯數 + else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt() && task.TaskState == CarChargingTaskEnum.CarCharging_Executing.ObjToInt())//绉昏溅鍏呯數 { - task.TaskState = CarChargingTaskEnum.ShuttleCar_Finish.ObjToInt(); + task.TaskState = CarChargingTaskEnum.CarCharging_Finish.ObjToInt(); UpdateData(task); } } @@ -121,7 +121,7 @@ } return content; } - + public static int tasktype = 0; /// <summary> /// 鏌ヨ绌挎杞﹀嚭鍏ュ簱浠诲姟 /// </summary> @@ -130,10 +130,27 @@ /// <returns></returns> public Dt_Task QueryShuttleCarTask(string deviceNo, string currentAddress = "") { - if (string.IsNullOrEmpty(currentAddress)) - return BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy); + Dt_Task? _Task = null; + if (tasktype == 0) + { + if (string.IsNullOrEmpty(currentAddress)) + _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy); + else + _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy); + } else - return BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy); + { + if (TaskInboundTypes.Contains(tasktype)) + { + _Task = BaseDal.QueryFirst(x => TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy) ?? BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish, TaskOrderBy); + } + else if (TaskOutboundTypes.Contains(tasktype)) + { + _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish, TaskOrderBy) ?? BaseDal.QueryFirst(x => TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy); + } + } + if (_Task != null) tasktype = _Task.TaskType; + return _Task; } /// <summary> /// 鑾峰彇绉诲簱浠诲姟 @@ -146,9 +163,9 @@ 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.RelocationNew).OrderBy(x => x.TaskNum).ToList(); + 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.RelocationNew).OrderBy(x => x.TaskNum).ToList(); + 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]; -- Gitblit v1.9.3