From abff6261e5e74ff16a844f4739f84d49b6133000 Mon Sep 17 00:00:00 2001 From: xxyy <cathay_xy@163.com> Date: 星期六, 15 二月 2025 13:01:02 +0800 Subject: [PATCH] 新增分容空框出库功能及代码结构优化 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 119 ++++++++++++++++++----------------------------------------- 1 files changed, 37 insertions(+), 82 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs index 5b06bf3..909b441 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs @@ -1,11 +1,9 @@ 锘縰sing AutoMapper; using HslCommunication; using Mapster; -using Microsoft.AspNetCore.Components.Routing; using Newtonsoft.Json; using SqlSugar; using System.Diagnostics.CodeAnalysis; -using System.Threading.Tasks; using WIDESEAWCS_BasicInfoRepository; using WIDESEAWCS_BasicInfoService; using WIDESEAWCS_Common; @@ -20,12 +18,9 @@ using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; -using WIDESEAWCS_QuartzJob; -using WIDESEAWCS_QuartzJob.DeviceBase; using WIDESEAWCS_QuartzJob.Models; using WIDESEAWCS_QuartzJob.Repository; using WIDESEAWCS_QuartzJob.Service; -using WIDESEAWCS_TaskInfoRepository; namespace WIDESEAWCS_TaskInfoService { @@ -98,7 +93,7 @@ if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { // 鍒ゆ柇浠诲姟鐩爣鍦板潃鍜岃矾寰勬槸鍚︽弧瓒崇壒瀹氭潯浠� - if (task.TargetAddress == "002-021-001" && task.Roadway.Contains("JZ") && task.TaskType == (int)TaskOutboundTypeEnum.OutTray) + if ((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ")) { // 璁剧疆浠诲姟鐘舵�佷负鍑哄簱鏂板缓 task.TaskState = (int)TaskOutStatusEnum.OutNew; @@ -139,8 +134,11 @@ // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄叆搴撲换鍔� else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { + var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue; + var valueList = value.Split(',').ToList(); // 鍒ゆ柇婧愬湴鍧�鏄惁涓嶇瓑浜�"1359-4" - if (task.SourceAddress != "1359-4") + //if (task.SourceAddress != "1359-4" && task.SourceAddress != "1357-4") + if (!valueList.Contains(task.SourceAddress)) { // 鏌ヨ浠庢簮鍦板潃鍒扮洰鏍囧湴鍧�鐨勮矾鐢� List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress); @@ -156,8 +154,13 @@ } else { - // 璁剧疆褰撳墠鍦板潃涓�"002-021-001" - task.CurrentAddress = "002-021-001"; + task.CurrentAddress = string.Empty; + if (task.SourceAddress == "1325-6") + // 璁剧疆褰撳墠鍦板潃涓�"001-021-001" + task.CurrentAddress = "001-021-001"; + else + // 璁剧疆褰撳墠鍦板潃涓�"002-021-001" + task.CurrentAddress = "002-021-001"; // 璁剧疆涓嬩竴涓湴鍧�涓虹洰鏍囧湴鍧� task.NextAddress = item.TargetAddress; } @@ -211,7 +214,7 @@ wmsIpAddrss = GetIpAddress(SysConfigKeyConst.WMSIP_BASE, SysConfigKeyConst.RequestTask); } - var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = sourceAddress, PalletCode = palletCode }.ToJsonString()); + var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = sourceAddress, PalletCode = palletCode, stationManager.productLine }.ToJsonString()); content = JsonConvert.DeserializeObject<WebResponseContent>(result); if (!content.Status) @@ -505,81 +508,11 @@ _taskHtyRepository.AddData(task_Hty); } - if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) { - #region WMS鍚屾浠诲姟瀹屾垚 - - var keys = new Dictionary<string, object>() - { - {"taskNum", task.TaskNum} - }; - // 鑾峰彇WMSip鍦板潃 - var configs = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); - var wmsBasex = configs.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; - var completeTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; - if (wmsBasex == null || completeTask == null) - { - throw new InvalidOperationException("WMS IP 鏈厤缃�"); - } - var wmsIpAddressx = wmsBasex + completeTask; - - var results = HttpHelper.GetAsync(wmsIpAddressx, keys).Result; - content = JsonConvert.DeserializeObject<WebResponseContent>(results); - if (!content.Data.IsNullOrEmpty()) - { - if (content.Data.ToString() == "NG") - { - task.Remark = "NG"; - } - } - task.ExceptionMessage += " " + content.Message; - - #endregion WMS鍚屾浠诲姟瀹屾垚 - - - if (!task.Roadway.Contains("GW")) - { - var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); - if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�"); - task.CurrentAddress = task.NextAddress; - task.NextAddress = routers.FirstOrDefault().ChildPosi; - task.ModifyDate = DateTime.Now; - task.Modifier = "System"; - BaseDal.UpdateData(task); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�"); - } - else - { - task.TaskState = (int)TaskOutStatusEnum.OutFinish; - //濡傞珮娓╁嚭搴撳悗 NG 鍒欏皢浠诲姟鏍囪涓篘G 骞跺湪鍑哄簱鐢宠鍚庡皢浠诲姟鍑鸿嚦NG鍙� - if (task.Remark == "NG") - { - BaseDal.UpdateData(task); - } - else - { - BaseDal.DeleteData(task); - ConsoleHelper.WriteWarningLine($"楂樻俯鍑哄簱鐩殑鍦板潃{task.TargetAddress}"); - } - - var taskHty = task.Adapt<Dt_Task_Hty>(); - _taskHtyRepository.AddData(taskHty); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�"); - } - - //鏆備笉鑰冭檻澶氫釜鍑哄簱鍙� - - if (task.Roadway.Contains("CH") && task.TaskType == (int)TaskOutboundTypeEnum.Outbound) - { - Dt_Task? newTask = UpdatePosition(task.TaskNum, task.CurrentAddress); - if (newTask != null) - { - task = newTask; - } - } + content = StackCraneTaskCompleted(task.TaskNum); + return content; } - } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { @@ -630,6 +563,12 @@ } else if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish) { + if (App.User.UserId > 0) + { + content = StackCraneTaskCompleted(task.TaskNum); + return content; + } + task.ModifyDate = DateTime.Now; task.Modifier = "System"; @@ -944,5 +883,21 @@ } return wcsBasez + address; } + + #region 閲嶅啓鏂规硶 + + public override WebResponseContent DeleteData(object[] key) + { + foreach (var item in key) + { + var task = BaseDal.QueryFirst(x => x.TaskId == Convert.ToInt32(item)); + var taskHty = task.Adapt<Dt_Task_Hty>(); + taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System"; + _taskHtyRepository.AddData(taskHty); + } + return base.DeleteData(key); + } + + #endregion 閲嶅啓鏂规硶 } } \ No newline at end of file -- Gitblit v1.9.3