From 63ca4ac71443473a0ff72758e1ae3739b7640a68 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期二, 21 四月 2026 00:32:22 +0800
Subject: [PATCH] refactor(TaskService_Inbound): InboundInContainer改为Task.Run异步执行

---
 Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs |   98 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 64 insertions(+), 34 deletions(-)

diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
index 20956e7..c8a798c 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
@@ -179,41 +179,71 @@
                             return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
 
                         // 鏍规嵁搴撳瓨Remark閫夋嫨闈欑疆璁惧锛屾煡MES鍔ㄦ�佸嚟璇�
-                        //string deviceName = stockInfo.Remark == "GW_1" ? "楂樻俯闈欑疆1"
-                        //    : stockInfo.Remark == "GW_2" ? "楂樻俯闈欑疆2"
-                        //    : "甯告俯闈欑疆1";
-                        //var mesConfig = _mesDeviceConfigService.GetByDeviceName(deviceName);
-                        //string equipmentCode = mesConfig?.EquipmentCode ?? StockConstants.MES_EQUIPMENT_CODE;
-                        //string resourceCode = mesConfig?.ResourceCode ?? StockConstants.MES_RESOURCE_CODE;
-                        //string token = mesConfig?.Token;
+                        string deviceName = stockInfo.Remark == "GW_1" ? "楂樻俯闈欑疆1"
+                            : stockInfo.Remark == "GW_2" ? "楂樻俯闈欑疆2"
+                            : "甯告俯闈欑疆1";
+                        var mesConfig = _mesDeviceConfigService.GetByDeviceName(deviceName);
+                        string equipmentCode = mesConfig?.EquipmentCode ?? StockConstants.MES_EQUIPMENT_CODE;
+                        string resourceCode = mesConfig?.ResourceCode ?? StockConstants.MES_RESOURCE_CODE;
+                        string token = mesConfig?.Token;
 
-                        // 璋冪敤MES鎵樼洏杩涚珯
-                        //var inboundRequest = new InboundInContainerRequest
-                        //{
-                        //    EquipmentCode = equipmentCode,
-                        //    ResourceCode = resourceCode,
-                        //    LocalTime = DateTime.Now,
-                        //    ContainerCode = taskDto.PalletCode
-                        //};
-                        //string requestJson = inboundRequest.ToJson();
-                        //var inboundResult = string.IsNullOrWhiteSpace(token)
-                        //    ? _mesService.InboundInContainer(inboundRequest)
-                        //    : _mesService.InboundInContainer(inboundRequest, token);
-                        //stopwatch.Stop();
-                        //await _mesLogService.LogAsync(new MesApiLogDto
-                        //{
-                        //    ApiType = "InboundInContainer",
-                        //    RequestJson = requestJson,
-                        //    ResponseJson = JsonConvert.SerializeObject(inboundResult),
-                        //    IsSuccess = inboundResult.IsSuccess,
-                        //    ErrorMessage = inboundResult.ErrorMessage,
-                        //    ElapsedMs = (int)stopwatch.ElapsedMilliseconds,
-                        //    Creator = "systeam"
-                        //});
-                        //if (inboundResult == null || inboundResult.Data == null || !inboundResult.Data.IsSuccess)
-                        //{
-                        //    return content.Error($"浠诲姟瀹屾垚澶辫触锛歁ES杩涚珯澶辫触: {inboundResult?.Data?.Msg ?? inboundResult?.ErrorMessage ?? "鏈煡閿欒"}");
-                        //}
+                        // 寮傛璋冪敤MES鎵樼洏杩涚珯锛屼笉闃诲涓婚�昏緫
+                        var palletCode = taskDto.PalletCode;
+                        var localEquipmentCode = equipmentCode;
+                        var localResourceCode = resourceCode;
+                        var localToken = token;
+                        _ = Task.Run(async () =>
+                        {
+                            var localStopwatch = Stopwatch.StartNew();
+                            try
+                            {
+                                var inboundRequest = new InboundInContainerRequest
+                                {
+                                    EquipmentCode = localEquipmentCode,
+                                    ResourceCode = localResourceCode,
+                                    LocalTime = DateTime.Now,
+                                    ContainerCode = palletCode
+                                };
+                                string localRequestJson = inboundRequest.ToJson();
+                                var inboundResult = string.IsNullOrWhiteSpace(localToken)
+                                    ? _mesService.InboundInContainer(inboundRequest)
+                                    : _mesService.InboundInContainer(inboundRequest, localToken);
+                                localStopwatch.Stop();
+
+                                bool isSuccess = inboundResult?.Data?.IsSuccess ?? false;
+                                int status = isSuccess
+                                    ? (int)MesUploadStatusEnum.杩涚珯涓婁紶鎴愬姛
+                                    : (int)MesUploadStatusEnum.杩涚珯涓婁紶澶辫触;
+
+                                await _stockInfoService.UpdateMesUploadStatusAsync(palletCode, status);
+
+                                await _mesLogService.LogAsync(new MesApiLogDto
+                                {
+                                    PalletCode = palletCode,
+                                    ApiType = "InboundInContainer",
+                                    RequestJson = localRequestJson,
+                                    ResponseJson = JsonConvert.SerializeObject(inboundResult),
+                                    IsSuccess = isSuccess,
+                                    ErrorMessage = inboundResult?.Data?.Msg ?? inboundResult?.ErrorMessage ?? "鏈煡閿欒",
+                                    ElapsedMs = (int)localStopwatch.ElapsedMilliseconds,
+                                    Creator = "systeam"
+                                });
+                            }
+                            catch (Exception ex)
+                            {
+                                localStopwatch.Stop();
+                                await _stockInfoService.UpdateMesUploadStatusAsync(palletCode, (int)MesUploadStatusEnum.杩涚珯涓婁紶澶辫触);
+                                await _mesLogService.LogAsync(new MesApiLogDto
+                                {
+                                    PalletCode = palletCode,
+                                    ApiType = "InboundInContainer",
+                                    IsSuccess = false,
+                                    ErrorMessage = ex.Message,
+                                    ElapsedMs = (int)localStopwatch.ElapsedMilliseconds,
+                                    Creator = "systeam"
+                                });
+                            }
+                        });
                         return await CompleteTaskAsync(task, "鍏ュ簱瀹屾垚");
                     });
                 }

--
Gitblit v1.9.3