From dcecb039035f4b2e82e31c39b74db9402444c536 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期二, 08 四月 2025 21:35:39 +0800 Subject: [PATCH] 代码更新,优化等内容 --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs | 87 ++++++++++++++++++++++++++++++------------- 1 files changed, 61 insertions(+), 26 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs" index 788399b..766fe96 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs" @@ -9,8 +9,9 @@ using WIDESEAWCS_Core; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_Model.Models; -using static Dm.net.buffer.ByteArrayBuffer; using WIDESEAWCS_QuartzJob; +using WIDESEAWCS_DTO.Agv; +using SqlSugar; namespace WIDESEAWCS_Tasks { @@ -23,17 +24,19 @@ { try { - var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt() && nameof(AGV_CSJJob).Contains(x.DeviceCode)).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList(); - foreach (var agvTask in newTasks) + var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt() && !string.IsNullOrEmpty(x.DeviceCode) && nameof(AGV_CSJJob).Contains(x.DeviceCode)).OrderByDescending(x =>x.Grade).OrderBy(x=>x.CreateDate).ToList(); + if (newTasks.Count>0) { - try + foreach (var agvTask in newTasks) { - AgvTaskDTO taskDTO = new AgvTaskDTO() + try { - ReqCode = Guid.NewGuid().ToString().Replace("-", ""), - TaskTyp = AgvTaskType(agvTask.TaskType, agvTask.DeviceCode), - PositionCodePath = new List<CodePath>() - { + AgvTaskDTO taskDTO = new AgvTaskDTO() + { + ReqCode = Guid.NewGuid().ToString().Replace("-", ""), + TaskTyp = AgvTaskType(agvTask.TaskType, agvTask.DeviceCode), + PositionCodePath = new List<CodePath>() + { new CodePath() { type="00", @@ -44,32 +47,52 @@ type="00", positionCode=agvTask.NextAddress } - }, - TaskCode = agvTask.AgvTaskNum, - PodTyp = agvTask.PalletType < 3 ? "XX" : "DD", - }; - WebResponseContent content = _taskService.AgvSendTask(taskDTO); - if (content.Status) - { - agvTask.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt(); - //agvTask.Remark = content.Data.ObjToString(); + }, + TaskCode = agvTask.AgvTaskNum, + PodTyp = agvTask.PalletType < 3 ? "ZC" : "DX", + }; + WebResponseContent content = _taskService.AgvSendTask(taskDTO); + if (content.Status) + { + agvTask.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt(); + //agvTask.Remark = content.Data.ObjToString(); + _taskService.UpdateTask(agvTask, TaskStatusEnum.AGV_Executing); + } + else + { + agvTask.TaskState = TaskStatusEnum.Exception.ObjToInt(); + //agvTask.Remark = content.Data.ObjToString(); + agvTask.ExceptionMessage = content.Message; + } } - else + catch (Exception ex) { agvTask.TaskState = TaskStatusEnum.Exception.ObjToInt(); //agvTask.Remark = content.Data.ObjToString(); - agvTask.ExceptionMessage = content.Message; + agvTask.ExceptionMessage = ex.Message; + WriteError(nameof(AGV_CSJJob), ex.Message, ex); } } - catch (Exception ex) + _taskService.UpdateData(newTasks); + } + //鍑哄簱缁戝畾鏌ヨ + Dt_Task outBound = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskStatusEnum.Exception.ObjToInt() && nameof(AGV_CSJJob).Contains(x.DeviceCode) && x.TaskType==TaskTypeEnum.Outbound.ObjToInt()).ToList().OrderByDescending(x => x.Grade).ThenBy(x=>x.CreateDate).First(); + if (outBound != null) + { + AgvPodBerthAndMatDTO andMatDTO = new AgvPodBerthAndMatDTO() { - agvTask.TaskState = TaskStatusEnum.Exception.ObjToInt(); + ReqCode = Guid.NewGuid().ToString().Replace("-", ""), + PositionCode=outBound.TargetAddress + }; + WebResponseContent content = _taskService.AgvPodBerthAndMat(andMatDTO); + if (content.Status) + { + outBound.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt(); + outBound.ExceptionMessage = ""; //agvTask.Remark = content.Data.ObjToString(); - agvTask.ExceptionMessage = ex.Message; - WriteError(nameof(AGV_CSJJob), ex.Message, ex); + _taskService.UpdateTask(outBound, TaskStatusEnum.AGV_Execute); } } - _taskService.UpdateData(newTasks); } catch (Exception ex) { @@ -88,6 +111,10 @@ { if (WaitToTask.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { + if (WaitToTasks.FirstOrDefault(x=>x.TaskState==TaskStatusEnum.AGV_Puting.ObjToInt() || x.TaskState == TaskStatusEnum.Finish.ObjToInt()) !=null) + { + continue; + } Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.AGVStationCode == WaitToTask.NextAddress); if (stationManger == null) { @@ -143,14 +170,22 @@ taskCode = WaitToTask.AgvTaskNum, }; WebResponseContent content = _taskService.AgvSecureReply(replyDTO); - if (content.Status) + if (content.Status && WaitToTask.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) + { + WaitToTask.TaskState = TaskStatusEnum.AGV_Puting.ObjToInt(); + _taskService.UpdateTask(WaitToTask, TaskStatusEnum.AGV_Puting); + break; + } + else if (content.Status && WaitToTask.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { WaitToTask.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt(); + _taskService.UpdateTask(WaitToTask, TaskStatusEnum.AGV_Executing); } else { WaitToTask.TaskState = TaskStatusEnum.Exception.ObjToInt(); WaitToTask.ExceptionMessage = content.Message; + _taskService.UpdateTask(WaitToTask, TaskStatusEnum.Exception); } } _taskService.UpdateData(WaitToTasks); -- Gitblit v1.9.3