From a8be8f9371b6fc03b66d212b2902d08f93b087dd Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期三, 02 七月 2025 13:55:55 +0800 Subject: [PATCH] 新增任务查询方法并优化逻辑在 `ITaskService.cs` 中添加了新的 `QueryExecutingConveyorLineTask` 方法,支持根据托盘号和下一地址查询任务,同时调整了原有方法的参数以保留旧功能。在 `TaskService.cs` 中新增重载方法,允许根据下一地址和条形码查询任务。在 `CommonConveyorLine_GWJob.cs` 中更新了 `ConveyorLineOutFinish` 方法,简化了任务查询逻辑并删除了多余的注释代码。同时,增加了对 `taskNext` 的处理逻辑,确保在任务未找到时的相应处理,并更新在途数据的逻辑,提升数据一致性和准确性。 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs | 101 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 79 insertions(+), 22 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs index f9a09df..a1786ad 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs @@ -1,7 +1,13 @@ -锘縰sing LogLibrary.Log; +锘縰sing AngleSharp.Io; +using LogLibrary.Log; using Masuit.Tools; +using Newtonsoft.Json; using WIDESEA_Common; +using WIDESEA_Core; +using WIDESEA_Core.Const; using WIDESEA_DTO; +using WIDESEA_DTO.MOM; +using WIDESEA_IServices; using WIDESEA_IStoragIntegrationServices; namespace WIDESEA_StoragIntegrationServices; @@ -9,33 +15,61 @@ public class AgingInOrOutInputService : IAgingInOrOutInputService { private readonly LogFactory LogFactory = new LogFactory(); + private readonly ISys_ConfigService _configService; + + public AgingInOrOutInputService(ISys_ConfigService configRepository) + { + _configService = configRepository; + } /// <summary> /// 闈欑疆\闄堝寲鍏ュ簱锛堟暣鎵樼洏锛� /// </summary> /// <param name="input">鍏ュ簱鏁版嵁</param> /// <returns></returns> - public async Task<dynamic> GetOCVInputAsync(AgingInputDto input) + public async Task<WebResponseContent> GetOCVInputAsync(AgingInputDto input) { + WebResponseContent content = new WebResponseContent(); try { input.SessionId = Guid.NewGuid().ToString(); - input.Software = "闄堝寲鏈�"; - input.EquipmentCode = "P1K10040"; - input.EmployeeNo = "T00001"; + input.EmployeeNo = "MITest"; input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); - var inputJson = input.ToDictionary(); - var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/AgingInput", inputJson); + var inputJson = Masuit.Tools.ObjectExtensions.ToDictionary(input); // Specify the namespace explicitly + var configs = _configService.GetConfigsByCategory(CateGoryConst.SYS_MOMIPAddress); + var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.MOMBaseIP)?.ConfigValue; + var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.AgingInput)?.ConfigValue; + if (wmsBase == null || ipAddress == null) + { + throw new InvalidOperationException("WMS IP 鏈厤缃�"); + } + var wmsIpAddress = wmsBase + ipAddress; + + var result =await HttpsClient.PostAsync(wmsIpAddress, inputJson); + content.OK(data: result); + + var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.ToString()); + if (!respone.Success) + { + MoMErrorMsg.AddMoMErrorMsg(0, input.TrayBarcode, respone.MOMMessage, SysConfigConst.AgingInput); + } + else + { + MoMErrorMsg.DeleteMoMErrorMsg(0, input.TrayBarcode); + } + LogFactory.GetLog("闈欑疆闄堝寲鍏ュ簱锛堟暣鎵樼洏锛�").Info(true, $"\r\r--------------------------------------"); - LogFactory.GetLog("闈欑疆闄堝寲鍏ュ簱锛堟暣鎵樼洏锛�").Info(true, x); + LogFactory.GetLog("闈欑疆闄堝寲鍏ュ簱锛堟暣鎵樼洏锛�").Info(true, input.TrayBarcode); + LogFactory.GetLog("闈欑疆闄堝寲鍏ュ簱锛堟暣鎵樼洏锛�").Info(true, result); } catch (Exception err) { - Console.WriteLine(err.Message.ToString()); + //MoMErrorMsg.AddMoMErrorMsg(0, input.TrayBarcode, err.Message, SysConfigConst.AgingInput); + //Console.WriteLine(err.Message.ToString()); LogFactory.GetLog("闈欑疆闄堝寲鍏ュ簱锛堟暣鎵樼洏锛�").Error(true, $"\r\r--------------------------------------"); LogFactory.GetLog("闈欑疆闄堝寲鍏ュ簱锛堟暣鎵樼洏锛�").Error(true, err.StackTrace); } - return Task.FromResult<dynamic>(null); + return content; } /// <summary> @@ -43,26 +77,49 @@ /// </summary> /// <param name="input">鍑哄簱鏁版嵁</param> /// <returns></returns> - public async Task<dynamic> GetOCVOutputAsync(AgingOutputDto input) + public async Task<WebResponseContent> GetOCVOutputAsync(AgingOutputDto input) { + WebResponseContent content = new WebResponseContent(); try { input.SessionId = Guid.NewGuid().ToString(); - input.Software = "闄堝寲鏈�"; - input.EquipmentCode = "P1K10040"; - input.EmployeeNo = "T00001"; - input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); ; - var inputJson = input.ToDictionary(); - var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/AgingOutput", inputJson); + input.EmployeeNo = "MITest"; + input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); + var inputJson = Masuit.Tools.ObjectExtensions.ToDictionary(input); // Specify the namespace explicitly + var configs = _configService.GetConfigsByCategory(CateGoryConst.SYS_MOMIPAddress); + var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.MOMBaseIP)?.ConfigValue; + var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.AgingOutput)?.ConfigValue; + if (wmsBase == null || ipAddress == null) + { + throw new InvalidOperationException("WMS IP 鏈厤缃�"); + } + var wmsIpAddress = wmsBase + ipAddress; + + var result = HttpsClient.PostAsync(wmsIpAddress, inputJson).Result; + + var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.ToString()); + if (!respone.Success) + { + MoMErrorMsg.AddMoMErrorMsg(0, input.TrayBarcode, respone.MOMMessage, SysConfigConst.AgingOutput); + } + else + { + MoMErrorMsg.DeleteMoMErrorMsg(0, input.TrayBarcode); + } + + content.OK(data: result); LogFactory.GetLog("闈欑疆闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Info(true, $"\r\r--------------------------------------"); - LogFactory.GetLog("闈欑疆闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Info(true, x); + LogFactory.GetLog("闈欑疆闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Info(true, input.TrayBarcode); + LogFactory.GetLog("闈欑疆闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Info(true, result); } catch (Exception err) { - Console.WriteLine(err.Message.ToString()); - LogFactory.GetLog("闈欑疆/闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Error(true, $"\r\r--------------------------------------"); - LogFactory.GetLog("闈欑疆/闄堝寲鍑哄簱锛堟暣鎵樼洏)").Error(true, err.StackTrace); + //MoMErrorMsg.AddMoMErrorMsg(0, input.TrayBarcode, err.Message, SysConfigConst.AgingOutput); + //Console.WriteLine(err.Message.ToString()); + LogFactory.GetLog("闈欑疆闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Error(true, $"\r\r--------------------------------------"); + LogFactory.GetLog("闈欑疆闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Error(true, err.StackTrace); + content.Error(err.Message); } - return Task.FromResult<dynamic>(null); + return content; } } \ No newline at end of file -- Gitblit v1.9.3