From 7f3a2e67f82c2d286e902b028b422bf07e9aacb6 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期一, 21 七月 2025 01:41:10 +0800
Subject: [PATCH] 调整超时设置,简化日志,优化节流限制

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs |   82 +++++++++++++++++++++++++++++++++++------
 1 files changed, 70 insertions(+), 12 deletions(-)

diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index 19282f0..1b68a70 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -1,4 +1,6 @@
-锘縰sing Masuit.Tools;
+锘縰sing Mapster;
+using Masuit.Tools;
+using SixLabors.Fonts.Tables.AdvancedTypographic;
 using SqlSugar;
 using WIDESEA_Common.CustomModels;
 using WIDESEA_Core.Const;
@@ -183,6 +185,12 @@
 
             if (!result.Success)
             {
+                List<string> strings = new List<string>() { "2036","2038","2084","2086"};
+                if (input.Position.Contains(strings))
+                {
+                    Console.WriteLine($"{result.MOMMessage}");
+                    return null;
+                }
                 var taskNG = new Dt_Task
                 {
                     CurrentAddress = input.Position,
@@ -203,6 +211,7 @@
                     ProcessCode = result.ProcessCode,
                 };
                 return taskNG;
+               
             }
 
             if (result.SerialNos.Count <= 0)
@@ -586,17 +595,50 @@
 
     #region 鐩存帴鍑哄簱浠诲姟瀹屾垚
 
-    public async Task<WebResponseContent> CompleteInToOutTaskAsync(Dt_Task task)
+    public async Task<WebResponseContent> CompleteInToOutTaskAsync(Dt_Task task,DtStockInfo stock)
     {
         WebResponseContent content = new WebResponseContent();
         try
         {
-            //娣诲姞鍘嗗彶
-            var taskHty = CreateHistoricalTask(task);
-            // 娣诲姞鍘嗗彶浠诲姟
-            var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
-            //鍒犻櫎浠诲姟
-            BaseDal.DeleteData(task);
+            DtStockInfo_Hty stockInfo_Hty = null;
+            if (stock != null)
+            {
+                stockInfo_Hty = stock.Adapt<DtStockInfo_Hty>();
+                stockInfo_Hty.ModifyDate = DateTime.Now;
+            }
+            var taskHty = task.Adapt<Dt_Task_Hty>();
+            taskHty.FinishTime = DateTime.Now;
+            taskHty.OperateType = App.User.UserName != null ? (int)OperateTypeEnum.浜哄伐瀹屾垚 : (int)OperateTypeEnum.鑷姩瀹屾垚;
+            taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
+
+            var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
+
+            if(location != null)
+            {
+                int lastStatus = location.LocationStatus;
+                location.LocationStatus = (int)LocationEnum.Free; 
+                _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
+            }
+
+            task.TaskState = (int)TaskOutStatusEnum.OutFinish;
+
+            
+            // 浜嬪姟澶勭悊
+            await _unitOfWorkManage.UseTranAsync(async () =>
+            {
+                if (stockInfo_Hty != null)
+                {
+                    await DeleteStockInfoAsync(stock.Id);
+                    await DeleteStockInfoDetailsAsync(stock.StockInfoDetails);
+                    await AddStockInfoHtyAsync(stockInfo_Hty);
+                }
+                if (location != null)
+                {
+                    await UpdateLocationAsync(location);
+                }
+                await DeleteTaskAsync(task.TaskId);
+                await AddTaskHtyAsync(taskHty);
+            });
 
             return content.OK();
         }
@@ -1035,6 +1077,7 @@
         WebResponseContent content = new WebResponseContent();
         try
         {
+            LogFactory.GetLog($"鍖呰璇锋眰鍑哄簱浠诲姟").Info(true, $"銆愯姹傚弬鏁般�戯細銆恵JsonConvert.SerializeObject(json)}銆憑Environment.NewLine}{Environment.NewLine}");
             Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call");
             if (station == null) { throw new Exception($"鏈壘鍒板寘瑁呯珯鍙颁俊鎭紝璇锋鏌ヤ紶鍏ュ弬鏁皗json.Position}"); }
 
@@ -1085,7 +1128,6 @@
                                 .OrderBy(x => x.OutboundTime)
                                 .FirstAsync();
 
-
             if (stockInfo == null) throw new Exception($"搴撳唴{station.productLine}鏃犳弧瓒虫潯浠剁殑搴撳瓨鍙嚭搴�");
 
             DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode);
@@ -1107,14 +1149,12 @@
                 SourceAddress = stockInfo.LocationCode,
                 TaskState = (int)TaskOutStatusEnum.OutNew,
                 TaskType = (int)TaskOutboundTypeEnum.Outbound,
-                TaskNum = await BaseDal.GetTaskNo(),
+                TaskNum = BaseDal.GetTaskNo().Result,
                 Creater = "System",
                 ProductionLine = stockInfo.ProductionLine,
                 ProcessCode = stockInfo.ProcessCode,
             };
-
             WMSTaskDTO taskDTO = CreateTaskDTO(task);
-
             int lastStatus = locationInfo.LocationStatus;
 
             BaseDal.AddData(task);
@@ -1125,11 +1165,15 @@
 
             _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(stockInfo.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
 
+            LogFactory.GetLog($"鍖呰璇锋眰鍑哄簱浠诲姟").Info(true, $"銆愯繑鍥炲弬鏁般�戯細銆恵JsonConvert.SerializeObject(taskDTO)}銆憑Environment.NewLine}{Environment.NewLine}");
             return content.OK(data: taskDTO);
         }
         catch (Exception ex)
         {
             Console.WriteLine($"CW3鑷冲寘瑁呭嚭搴撳紓甯�:{ex.ToString()}");
+
+            LogFactory.GetLog($"鍖呰璇锋眰鍑哄簱浠诲姟").Info(true, $"銆愬紓甯搞�戯細銆恵ex.Message}銆憑Environment.NewLine}銆恵ex.StackTrace}銆憑Environment.NewLine}{Environment.NewLine}");
+
             return content.Error($"澶辫触锛歿ex.Message}");
         }
     }
@@ -1637,6 +1681,20 @@
             return content.Error(ex.Message);
         }
     }
+    public WebResponseContent GetLocationStatus()
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            List<DtLocationInfo> LocationList = _locationRepository.Db.Queryable<DtLocationInfo>().Where(x => x.LocationStatus != 2 && x.LocationStatus != 0).ToList();
+            return content.OK1(total1: LocationList.Count, data: LocationList);
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+
+    }
 }
 
 internal class TaskHourData

--
Gitblit v1.9.3