From e9fbecd61a9ab8c5d906269150b6cdc8ca86dfdb Mon Sep 17 00:00:00 2001
From: yangpeixing <yangpeixing@hnkhzn.com>
Date: 星期二, 31 三月 2026 09:09:45 +0800
Subject: [PATCH] 1

---
 WMS/WIDESEA_WMSServer/WIDESEA_RecordService/Service/StockQuantityChangeRecordService.cs |   32 ++++++++++++++++++++++++++++++++
 WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs                            |   13 ++++++++++++-
 WMS/WIDESEA_WMSServer/WIDESEA_IRecordService/IStockQuantityChangeRecordService.cs       |    2 ++
 3 files changed, 46 insertions(+), 1 deletions(-)

diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_IRecordService/IStockQuantityChangeRecordService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_IRecordService/IStockQuantityChangeRecordService.cs
index 1661fb6..b96cbc7 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_IRecordService/IStockQuantityChangeRecordService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_IRecordService/IStockQuantityChangeRecordService.cs
@@ -15,5 +15,7 @@
         IStockQuantityChangeRecordRepository Repository { get; }
 
         void AddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> stockInfoDetails, decimal beforeQuantity, decimal totalQuantity, StockChangeType changeType,int? taskNum = null);
+
+        void NEWAddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> stockInfoDetails, decimal beforeQuantity, decimal totalQuantity, StockChangeType changeType, int? taskNum = null);
     }
 }
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/Service/StockQuantityChangeRecordService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/Service/StockQuantityChangeRecordService.cs
index 55648df..4892c24 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/Service/StockQuantityChangeRecordService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/Service/StockQuantityChangeRecordService.cs
@@ -53,5 +53,37 @@
                 throw new Exception(ex.Message);
             }
         }
+
+        public void NEWAddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> stockInfoDetails, decimal beforeQuantity, decimal totalQuantity, StockChangeType changeType, int? taskNum = null)
+        {
+            try
+            {
+                List<Dt_StockQuantityChangeRecord> stockQuantityChangeRecords = new List<Dt_StockQuantityChangeRecord>();
+                stockQuantityChangeRecords = _mapper.Map<List<Dt_StockQuantityChangeRecord>>(stockInfoDetails);
+                int index = 0;
+                decimal currentQuantity = 0;
+                stockQuantityChangeRecords.ForEach(x =>
+                {
+                    x.PalleCode = stockInfo.PalletCode;
+                    x.BeforeQuantity = beforeQuantity;
+                    if (totalQuantity <= beforeQuantity)
+                    {
+                        x.ChangeQuantity = stockInfoDetails[index].OutboundQuantity;
+                        currentQuantity += stockInfoDetails[index].OutboundQuantity;
+                        x.AfterQuantity = beforeQuantity - stockInfoDetails[index].OutboundQuantity ;
+                    }
+                    x.ChangeType = changeType.ObjToInt();
+                    beforeQuantity -= x.ChangeQuantity;
+                    x.TaskNum = taskNum;
+                    index++;
+                });
+                BaseDal.AddData(stockQuantityChangeRecords);
+            }
+            catch (Exception ex)
+            {
+                throw new Exception(ex.Message);
+            }
+        }
+
     }
 }
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
index c104675..711f6ef 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -2303,7 +2303,11 @@
                         {
                             Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrderDetail>()
                            .Where(x => x.OrderId == inboundOrder.Id && x.BatchNo == detail.BatchNo).First();
-                            outboundOrderDetails.Add(outboundOrderDetail);
+                            if(outboundOrderDetail != null)
+                            {
+                                outboundOrderDetails.Add(outboundOrderDetail);
+
+                            }
                         }
 
                         for (var i = 0; i < outboundOrderDetails.Count; i++)
@@ -2512,6 +2516,7 @@
                 // 娣诲姞鐘舵�佸彉鏇磋褰�
                 AddStatusChangeRecord(task, stockInfo, locationInfo);
 
+               
                 // 鏍规嵁璁㈠崟绫诲瀷澶勭悊涓嶅悓閫昏緫
 
                 var outboundOrder = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrder>()
@@ -2649,6 +2654,12 @@
                 StockChangeType.Outbound.ObjToInt(),
                 stockInfo.Details.FirstOrDefault()?.OrderNo ?? "",
                 task.TaskNum);
+
+            _recordService.StockQuantityChangeRecordService.NEWAddStockChangeRecord(
+                stockInfo, stockInfo.Details,
+                stockInfo.Details.Sum(x => x.StockQuantity),
+                stockInfo.Details.Sum(x => x.OutboundQuantity),
+                StockChangeType.Outbound, task.TaskNum);
         }
 
         private void ProcessNormalOutbound(Dt_Task task, Dt_StockInfo stockInfo,

--
Gitblit v1.9.3