From d59b540dd78d49ddf1f2e1c6dfb7b19a7d3e3d7c Mon Sep 17 00:00:00 2001 From: 肖洋 <cathay_xy@163.com> Date: 星期日, 19 一月 2025 11:19:24 +0800 Subject: [PATCH] 优化代码结构和错误处理 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 150 insertions(+), 4 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs index 6420913..6e9638b 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs @@ -13,6 +13,9 @@ using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob.Models; +using System.Drawing; +using WIDESEAWCS_ITaskInfoService; +using Mapster; namespace WIDESEAWCS_TaskInfoService { @@ -93,21 +96,75 @@ var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString()); content = JsonConvert.DeserializeObject<WebResponseContent>(result); - + ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}"); if (!content.Status) { // wms澶辫触杩斿洖鍘籒G鍙d换鍔� - - + //if (stationManager.stationChildCode != stationManager.stationNGChildCode) + //{ + // WMSTaskDTO taskDTO = new WMSTaskDTO() + // { + // Grade = 8, + // PalletCode = palletCode, + // SourceAddress = stationManager.stationLocation, + // TargetAddress = stationManager.stationNGLocation, + // RoadWay = stationManager.Roadway, + // TaskNum = 1000, + // TaskState = (int)TaskOutStatusEnum.OutNew, + // TaskType = (int)TaskOutboundTypeEnum.InToOut + // }; + //} return content; } var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); + ConsoleHelper.WriteSuccessLine(content.Data.ToString()); return ReceiveByWMSTask(task); } catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); + } + } + + public async Task<WebResponseContent> RequestOutTaskToBZAsync(Dt_StationManager stationManager) + { + WebResponseContent content = new WebResponseContent(); + try + { + var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); + var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; + var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestOutTaskToBZ)?.ConfigValue; + if (wmsBase == null || requestTask == null) + { + throw new InvalidOperationException("WMS IP 鏈厤缃�"); + } + var wmsIpAddrss = wmsBase + requestTask; + + var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = stationManager.stationChildCode }.ToJsonString()); + content = JsonConvert.DeserializeObject<WebResponseContent>(result); + if (!content.Status) + { + //鏃犳弧瓒虫潯浠跺彲鍑哄簱鑷冲寘瑁呯殑搴撳瓨 + return content; + } + + var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); + ConsoleHelper.WriteSuccessLine(content.Data.ToString()); + //_taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO })鈥� + content = ReceiveWMSTask(new List<WMSTaskDTO> { task }); + //content = ReceiveByBZOtuTask(task); + //if (content.Status) + //{ + // //鐩稿簲鐨勫湪閫旀暟鎹�+1 + // // _taskNeedBarcodeRepository.UpdateData(); + //} + return content; + } + catch (Exception ex) + { + + return content.Error(ex.Message); } } @@ -144,6 +201,93 @@ task.SourceAddress = taskDTO.SourceAddress; task.CurrentAddress = stationinfo.stationChildCode; task.NextAddress = stationinfo.stationChildCode; + task.TargetAddress = taskDTO.TargetAddress; + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) + { + task.TaskState = (int)TaskStatus.Created; + task.SourceAddress = taskDTO.SourceAddress; + task.CurrentAddress = taskDTO.SourceAddress; + task.NextAddress = taskDTO.TargetAddress; + task.TargetAddress = taskDTO.TargetAddress; + } + + BaseDal.AddData(task); + + _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "鎺ユ敹WMS浠诲姟"); + + content = WebResponseContent.Instance.OK("鎴愬姛"); + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}"); + } + return content; + } + + /// <summary> + /// 鎺ユ敹WMS浠诲姟淇℃伅 + /// </summary> + /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param> + /// <returns>杩斿洖澶勭悊缁撴灉</returns> + public WebResponseContent ReceiveByBZOtuTask([NotNull] WMSTaskDTO taskDTO) + { + WebResponseContent content = new WebResponseContent(); + try + { + if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null) + { + return content.OK(); + } + Dt_Task task = _mapper.Map<Dt_Task>(taskDTO); + task.Creater = "WMS"; + + if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) + { + var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay); + task.TaskState = (int)TaskOutStatusEnum.OutNew; + task.CurrentAddress = stationinfo.stationChildCode; + task.NextAddress = stationinfo.stationChildCode; + task.SourceAddress = taskDTO.SourceAddress; + task.TargetAddress = taskDTO.TargetAddress; + } + BaseDal.AddData(task); + + _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "鎺ユ敹WMS浠诲姟"); + + content = WebResponseContent.Instance.OK("鎴愬姛"); + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}"); + } + return content; + } + + + /// <summary> + /// 楂樻俯鍑哄簱 + /// </summary> + /// <param name="taskDTO"></param> + /// <returns></returns> + public WebResponseContent ReceiveByWMSGWTask([NotNull] WMSTaskDTO taskDTO) + { + WebResponseContent content = new WebResponseContent(); + try + { + if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null) + { + return content.OK(); + } + Dt_Task task = _mapper.Map<Dt_Task>(taskDTO); + task.Creater = "WMS"; + + if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) + { + task.TaskState = (int)TaskOutStatusEnum.OutNew; + task.CurrentAddress = taskDTO.RoadWay; + task.NextAddress = "002-000-002"; + task.SourceAddress = taskDTO.SourceAddress; task.TargetAddress = taskDTO.TargetAddress; } BaseDal.AddData(task); @@ -198,7 +342,7 @@ } /// <summary> - /// 鏍规嵁鎵樼洏鍙峰拰璁惧鍙锋煡璇㈠叆搴撲换鍔� + /// 鏍规嵁鎵樼洏鍙峰拰璁惧鍙锋煡璇换鍔� /// </summary> /// <param name="taskNum">浠诲姟鍙�</param> /// <param name="currentAddress">褰撳墠鍦板潃</param> @@ -278,6 +422,8 @@ if (content.Status) { task.TaskState = 1; //浠诲姟瀹屾垚 + var taskHty = task.Adapt<Dt_Task_Hty>(); + _taskHtyRepository.AddData(taskHty); BaseDal.DeleteData(task); } -- Gitblit v1.9.3