From 0f710285d9f02e3d4cea19557e17945e9ef9532b Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期五, 01 五月 2026 09:48:49 +0800
Subject: [PATCH] Merge branch 'dev' of http://115.159.85.185:8098/r/SuZhouGuanHong/ShanMeiXinNengYuan into dev

---
 Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs |   97 +++++++++++++++++-------------------------------
 1 files changed, 35 insertions(+), 62 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 c8a798c..53cd86a 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
@@ -1,6 +1,4 @@
-using Microsoft.AspNetCore.Http.HttpResults;
 using Newtonsoft.Json;
-using System.Diagnostics;
 using WIDESEA_Common.Constants;
 using WIDESEA_Common.LocationEnum;
 using WIDESEA_Common.StockEnum;
@@ -122,7 +120,6 @@
         /// </summary>
         public async Task<WebResponseContent> InboundFinishTaskAsync(CreateTaskDto taskDto)
         {
-            var stopwatch = Stopwatch.StartNew();
             try
             {
                 var task = await BaseDal.QueryFirstAsync(s => s.PalletCode == taskDto.PalletCode);
@@ -144,8 +141,10 @@
                             Creater = StockConstants.SYSTEM_USER,
                             Details = null,
                             LocationCode = location.LocationCode,
-                            LocationId = location.Id
+                            LocationId = location.Id,
+                            OutboundDate = DateTime.Now
                         };
+                        location.LocationStatus = LocationStatusEnum.InStock.GetHashCode();
                         var updateLocationResult = await _locationInfoService.UpdateLocationInfoAsync(location);
                         var updateStockResult = await _stockInfoService.Repository.AddDataAsync(stockInfo);
                         return await CompleteTaskAsync(task, "鍏ュ簱瀹屾垚");
@@ -153,8 +152,6 @@
                 }
                 else
                 {
-
-
                     // 鍒ゆ柇鏄笉鏄瀬鍗峰簱浠诲姟
                     if (taskDto.WarehouseId == (int)WarehouseEnum.FJ1 || taskDto.WarehouseId == (int)WarehouseEnum.ZJ1)
                     {
@@ -166,10 +163,13 @@
                         WebResponseContent content = new WebResponseContent();
                         stockInfo.LocationCode = location.LocationCode;
                         stockInfo.LocationId = location.Id;
+                        stockInfo.WarehouseId = task.WarehouseId;
 
                         SetOutboundDateByRoadway(task, stockInfo);
 
                         stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.GetHashCode();
+
+                        stockInfo.CreateDate = DateTime.Now;
 
                         location.LocationStatus = LocationStatusEnum.InStock.GetHashCode();
 
@@ -188,62 +188,34 @@
                         string token = mesConfig?.Token;
 
                         // 寮傛璋冪敤MES鎵樼洏杩涚珯锛屼笉闃诲涓婚�昏緫
-                        var palletCode = taskDto.PalletCode;
-                        var localEquipmentCode = equipmentCode;
-                        var localResourceCode = resourceCode;
-                        var localToken = token;
-                        _ = Task.Run(async () =>
+                        var inboundRequest = new InboundInContainerRequest
                         {
-                            var localStopwatch = Stopwatch.StartNew();
-                            try
+                            EquipmentCode = equipmentCode,
+                            ResourceCode = resourceCode,
+                            LocalTime = DateTime.Now,
+                            ContainerCode = taskDto.PalletCode,
+                        };
+                        string requestJson = inboundRequest.ToJson();
+                        var palletCode = taskDto.PalletCode;
+
+                        _mesUploadHelper.FireAndForget(
+                            palletCode,
+                            MesUploadStatusEnum.杩涚珯涓婁紶鎴愬姛,
+                            "InboundInContainer",
+                            requestJson,
+                            () =>
                             {
-                                var inboundRequest = new InboundInContainerRequest
-                                {
-                                    EquipmentCode = localEquipmentCode,
-                                    ResourceCode = localResourceCode,
-                                    LocalTime = DateTime.Now,
-                                    ContainerCode = palletCode
-                                };
-                                string localRequestJson = inboundRequest.ToJson();
-                                var inboundResult = string.IsNullOrWhiteSpace(localToken)
+                                var result = string.IsNullOrWhiteSpace(token)
                                     ? _mesService.InboundInContainer(inboundRequest)
-                                    : _mesService.InboundInContainer(inboundRequest, localToken);
-                                localStopwatch.Stop();
+                                    : _mesService.InboundInContainer(inboundRequest, token);
+                                return (
+                                    result?.Data?.IsSuccess ?? false,
+                                    JsonConvert.SerializeObject(result),
+                                    result?.Data?.Msg ?? result?.ErrorMessage ?? "鏈煡閿欒",
+                                    _mesService.BuildConfig(token ?? string.Empty).ToJson()
+                                );
+                            });
 
-                                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, "鍏ュ簱瀹屾垚");
                     });
                 }
@@ -261,14 +233,15 @@
         /// <param name="stockInfo">搴撳瓨淇℃伅</param>
         private void SetOutboundDateByRoadway(Dt_Task task, Dt_StockInfo stockInfo)
         {
+            var config = _outboundTimeOptions.CurrentValue;
             var now = DateTime.Now;
             if (task.Roadway.Contains("GW"))
             {
                 stockInfo.OutboundDate = string.IsNullOrEmpty(stockInfo.Remark)
-                    ? now.AddHours(OutboundTimeConstants.OUTBOUND_HOURS_GW1_FIRST)
+                    ? now.AddHours(config.Gw1FirstHours)
                     : stockInfo.Remark == StockRemarkConstants.GW1
-                        ? now.AddHours(OutboundTimeConstants.OUTBOUND_HOURS_GW1_SECOND)
-                        : now.AddHours(OutboundTimeConstants.OUTBOUND_HOURS_GW1_FIRST);
+                        ? now.AddHours(config.Gw1SecondHours)
+                        : now.AddHours(config.Gw1FirstHours);
 
                 stockInfo.Remark = string.IsNullOrEmpty(stockInfo.Remark)
                     ? StockRemarkConstants.GW1
@@ -278,7 +251,7 @@
             }
             else if (task.Roadway.Contains("CW"))
             {
-                stockInfo.OutboundDate = now.AddHours(OutboundTimeConstants.OUTBOUND_HOURS_CW1);
+                stockInfo.OutboundDate = now.AddHours(config.Cw1Hours);
                 if (stockInfo.Remark == StockRemarkConstants.GW2)
                     stockInfo.Remark = StockRemarkConstants.CW1;
             }

--
Gitblit v1.9.3