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