From 6db89a97e81e6c26bb2d2ccb3db79ed8858462a2 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期四, 17 七月 2025 20:38:16 +0800
Subject: [PATCH] 优化异常库位出库功能

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs |   67 ++++++++++++++++++++-------------
 1 files changed, 40 insertions(+), 27 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 c0fedb2..22294eb 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
@@ -184,28 +184,33 @@
 
             if (!result.Success)
             {
-                //var taskNG = new Dt_Task
-                //{
-                //    CurrentAddress = input.Position,
-                //    Grade = 1,
-                //    Roadway = input.Roadways,
-                //    TargetAddress = stationManager.stationNGLocation,
-                //    Dispatchertime = DateTime.Now,
-                //    MaterialNo = "",
-                //    NextAddress = stationManager.stationNGChildCode,
-                //    OrderNo = null,
-                //    PalletCode = input.PalletCode,
-                //    SourceAddress = stationManager.stationLocation,
-                //    TaskState = (int)TaskInStatusEnum.Line_InFinish,
-                //    TaskType = (int)TaskOutboundTypeEnum.InToOut,
-                //    TaskNum = await BaseDal.GetTaskNo(),
-                //    Creater = "System",
-                //    ProductionLine = result.ProductionLine,
-                //    ProcessCode = result.ProcessCode,
-                //};
-                //return taskNG;
-                Console.WriteLine($"{result.MOMMessage}");
-                return null;
+                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,
+                    Grade = 1,
+                    Roadway = input.Roadways,
+                    TargetAddress = stationManager.stationNGLocation,
+                    Dispatchertime = DateTime.Now,
+                    MaterialNo = "",
+                    NextAddress = stationManager.stationNGChildCode,
+                    OrderNo = null,
+                    PalletCode = input.PalletCode,
+                    SourceAddress = stationManager.stationLocation,
+                    TaskState = (int)TaskInStatusEnum.Line_InFinish,
+                    TaskType = (int)TaskOutboundTypeEnum.InToOut,
+                    TaskNum = await BaseDal.GetTaskNo(),
+                    Creater = "System",
+                    ProductionLine = result.ProductionLine,
+                    ProcessCode = result.ProcessCode,
+                };
+                return taskNG;
+               
             }
 
             if (result.SerialNos.Count <= 0)
@@ -606,11 +611,17 @@
             taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
 
             var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
-            int lastStatus = location.LocationStatus;
-            location.LocationStatus = (int)LocationEnum.Free;
+
+            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;
 
-            _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
+            
             // 浜嬪姟澶勭悊
             await _unitOfWorkManage.UseTranAsync(async () =>
             {
@@ -620,8 +631,10 @@
                     await DeleteStockInfoDetailsAsync(stock.StockInfoDetails);
                     await AddStockInfoHtyAsync(stockInfo_Hty);
                 }
-
-                await UpdateLocationAsync(location);
+                if (location != null)
+                {
+                    await UpdateLocationAsync(location);
+                }
                 await DeleteTaskAsync(task.TaskId);
                 await AddTaskHtyAsync(taskHty);
             });

--
Gitblit v1.9.3