Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -226,5 +226,12 @@ /// <param name="targetAddress">目标地址</param> /// <returns>存在返回 true</returns> bool HasExecutingTaskToTarget(string roadway, string targetAddress); /// <summary> /// 任务取消 /// </summary> /// <param name="taskNum"></param> /// <returns></returns> WebResponseContent CancelTask(int taskNum); } } Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Threading.Channels; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseController; using WIDESEAWCS_DTO.TaskInfo; @@ -54,5 +55,16 @@ { return Service.RollbackTaskStatusToLast(taskNum); } /// <summary> /// 任务取消 /// </summary> /// <param name="taskNum"></param> /// <returns></returns> [HttpPost, Route("CancelTask"), AllowAnonymous] public WebResponseContent CancelTask(int taskNum) { return Service.CancelTask(taskNum); } } } Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService/TaskService.Complete.cs
@@ -1,6 +1,7 @@ using MapsterMapper; using SqlSugar; using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; @@ -177,4 +178,36 @@ BaseDal.DeleteAndMoveIntoHty(tasks, OperateTypeEnum.人工删除); return WebResponseContent.Instance.OK($"成功删除{tasks.Count}条数据"); } /// <summary> /// 任务取消 /// </summary> /// <param name="taskNum"></param> /// <returns></returns> public WebResponseContent CancelTask(int taskNum) { WebResponseContent content = new WebResponseContent(); try { if (taskNum <= 0) return content.Error("任务编号无效"); Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task == null) return content.OK("任务不存在,强制取消"); task.TaskStatus = (int)TaskOutStatusEnum.OutCancel; if (task.TaskStatus == (int)TaskInStatusEnum.InNew || task.TaskStatus == (int)TaskOutStatusEnum.OutNew) { bool deleteResult = BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.自动删除); if (!deleteResult) return content.Error("删除任务失败"); return content.OK(); } } catch (Exception ex) { content.Error($"WCS任务取消接口失败,{ex.Message}"); } return content.Error("当前任务在执行中!"); } } Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_AGV.cs
@@ -19,6 +19,7 @@ public string AGV_OutTaskComplete = WIDESEA_Core.Helper.AppSettings.Configuration["AGV_OutTaskComplete"]; public string WCS_ReceiveTask = WIDESEA_Core.Helper.AppSettings.Configuration["WCS_ReceiveTask"]; public string WCS_CancelTask = WIDESEA_Core.Helper.AppSettings.Configuration["WCS_CancelTask"]; /// <summary> /// 极卷库出入库申请 @@ -611,6 +612,11 @@ private async Task<AGVResponse> CancelAgvInboundTask(Dt_Task task) { AGVResponse response = new AGVResponse(); var httpResponse = _httpClientHelper.Post<WebResponseContent>(WCS_ReceiveTask, task.TaskNum.ToString()); if (httpResponse == null || httpResponse.Data == null || !httpResponse.Data.Status) return response.Error(httpResponse?.Data?.Message ?? "下发WCS取消失败"); task.TaskStatus = (int)TaskInStatusEnum.InCancel; _unitOfWorkManage.BeginTran(); @@ -644,6 +650,10 @@ private async Task<AGVResponse> CancelAgvOutboundTaskAsync(Dt_Task task) { AGVResponse response = new AGVResponse(); var httpResponse = _httpClientHelper.Post<WebResponseContent>(WCS_ReceiveTask, task.TaskNum.ToString()); if (httpResponse == null || httpResponse.Data == null || !httpResponse.Data.Status) return response.Error(httpResponse?.Data?.Message ?? "下发WCS失败"); var stockInfo = await _stockInfoService.GetStockInfoAsync(task.PalletCode); if (stockInfo == null) return response.Error($"未找到托盘{task.PalletCode}的库存信息"); Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -76,6 +76,7 @@ }, "A0GV_OutTaskComplete": "http://localhost:9999/OutTaskComplete", // 上报AGV出库输送线完成 "WCS_ReceiveTask": "http://localhost:9292/api/Task/ReceiveTask" // WMS输送线任务下发 "AGV_OutTaskComplete": "http://localhost:9999/OutTaskComplete", // 上报AGV出库输送线完成 "WCS_ReceiveTask": "http://localhost:9292/api/Task/ReceiveTask", // WMS输送线任务下发 "WCS_CancelTask": "http://localhost:9292/api/Task/ReceiveTask" // WCS任务取消 }