From e0de0f486e5f52987d42982adf5da4c241cdc92d Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期三, 19 二月 2025 09:04:06 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/Service/StockQuantityChangeRecordService.cs |   61 ++++++++++++++++++++++++++----
 1 files changed, 52 insertions(+), 9 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/Service/StockQuantityChangeRecordService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/Service/StockQuantityChangeRecordService.cs"
index 8f2f430..adf306a 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/Service/StockQuantityChangeRecordService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/Service/StockQuantityChangeRecordService.cs"
@@ -4,6 +4,7 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Common.StockEnum;
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
@@ -15,19 +16,19 @@
 {
     public partial class StockQuantityChangeRecordService : ServiceBase<Dt_StockQuantityChangeRecord, IStockQuantityChangeRecordRepository>, IStockQuantityChangeRecordService
     {
-        public void AddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> stockInfoDetails, decimal beforeQuantity, decimal totalQuantity, StockChangeType changeType,int taskNum)
+        public void AddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> stockInfoDetails, float beforeQuantity, float totalQuantity, StockChangeTypeEnum changeType, int? taskNum = null)
         {
-			try
-			{
+            try
+            {
                 List<Dt_StockQuantityChangeRecord> stockQuantityChangeRecords = new List<Dt_StockQuantityChangeRecord>();
                 stockQuantityChangeRecords = _mapper.Map<List<Dt_StockQuantityChangeRecord>>(stockInfoDetails);
                 int index = 0;
-                decimal currentQuantity = 0;
+                float currentQuantity = 0;
                 stockQuantityChangeRecords.ForEach(x =>
                 {
                     x.PalleCode = stockInfo.PalletCode;
                     x.BeforeQuantity = beforeQuantity;
-                    if (totalQuantity > beforeQuantity)
+                    if (totalQuantity >= beforeQuantity)
                     {
                         x.ChangeQuantity = stockInfoDetails[index].StockQuantity;
                         currentQuantity += stockInfoDetails[index].StockQuantity;
@@ -43,13 +44,55 @@
                     x.ChangeType = changeType.ObjToInt();
                     beforeQuantity += x.ChangeQuantity;
                     x.TaskNum = taskNum;
+                    index++;
                 });
                 BaseDal.AddData(stockQuantityChangeRecords);
             }
-			catch (Exception ex)
-			{
-				throw new Exception(ex.Message);
-			}
+            catch (Exception ex)
+            {
+                throw new Exception(ex.Message);
+            }
+        }
+
+        public void AddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> residueDetailList, List<Dt_StockInfoDetail> updateDetails, List<Dt_StockInfoDetail> deleteDetails, StockChangeTypeEnum changeType, int? taskNum = null)
+        {
+            try
+            {
+                List<Dt_StockQuantityChangeRecord> stockQuantityChangeRecords = new List<Dt_StockQuantityChangeRecord>();
+
+                int index1 = 0;
+                List<Dt_StockQuantityChangeRecord> records1 = _mapper.Map<List<Dt_StockQuantityChangeRecord>>(updateDetails);
+                float beforeQuantity = updateDetails.Sum(x => x.OutboundQuantity + x.StockQuantity) + deleteDetails.Sum(x => x.StockQuantity) + residueDetailList.Sum(x => x.StockQuantity);
+
+                records1.ForEach(x =>
+                {
+                    x.PalleCode = stockInfo.PalletCode;
+                    x.BeforeQuantity = beforeQuantity;
+                    x.ChangeQuantity = -updateDetails[index1].OutboundQuantity;
+                    x.AfterQuantity = beforeQuantity + x.ChangeQuantity;
+                    beforeQuantity -= updateDetails[index1].OutboundQuantity;
+                    index1++;
+                });
+                stockQuantityChangeRecords.AddRange(records1);
+                int index2 = 0;
+                List<Dt_StockQuantityChangeRecord> records2 = _mapper.Map<List<Dt_StockQuantityChangeRecord>>(deleteDetails);
+                records2.ForEach(x =>
+                {
+                    x.PalleCode = stockInfo.PalletCode;
+                    x.BeforeQuantity = beforeQuantity;
+                    x.ChangeQuantity = -deleteDetails[index2].StockQuantity;
+                    x.AfterQuantity = beforeQuantity + x.ChangeQuantity;
+                    beforeQuantity -= deleteDetails[index2].StockQuantity;
+                    index2++;
+                });
+                stockQuantityChangeRecords.AddRange(records2);
+
+                BaseDal.AddData(stockQuantityChangeRecords);
+            }
+            catch (Exception ex)
+            {
+                throw new Exception(ex.Message);
+            }
         }
     }
 }

--
Gitblit v1.9.3