diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/DTOs/BalanceSerialDto.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/DTOs/BalanceSerialDto.cs index 3b524b101..1d31d0782 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/DTOs/BalanceSerialDto.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/DTOs/BalanceSerialDto.cs @@ -17,6 +17,22 @@ public class ReportItemSerialDto public string Configuration { get; set; } + public decimal FirstQty { get; set; } + + public decimal SumInQty { get; set; } + + public decimal SumOutQty { get; set; } + + /// + /// 此时此刻的库存 + /// + public decimal NowQty { get; set; } + + /// + /// 期末库存 期初+入库-出库 + /// + public decimal LastQty { get; set; } + public List ReportErpLocationSerialDtos { get; set; } = new(); } diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Transactions/TransactionAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Transactions/TransactionAppService.cs index 43b0c5a74..1ff0c197d 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Transactions/TransactionAppService.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Transactions/TransactionAppService.cs @@ -130,7 +130,7 @@ public class TransactionAppService /// /// [HttpPost("item-serial-list")] - public virtual async Task> GetItemSerialList(List itemCodes,DateTime startDateTime,DateTime endDateTime) + public virtual async Task> GetItemSerialList(List itemCodes,string erpLocationCode,DateTime startDateTime,DateTime endDateTime) { var itemSerialDtos = new List(); foreach (var itemCode in itemCodes) @@ -151,6 +151,10 @@ public class TransactionAppService //所有这个零件的事务 var transactions=await _repository.GetListAsync(p => p.ItemCode == itemCode).ConfigureAwait(false); + if (string.IsNullOrEmpty(erpLocationCode)) + { + transactions = transactions.Where(p => p.LocationErpCode == erpLocationCode).ToList(); + } var locationDtos=await _locationAppService.GetAllAsync().ConfigureAwait(false); var groupKey= locationDtos.GroupBy(p => p.ErpLocationCode); @@ -240,6 +244,12 @@ public class TransactionAppService itemSerialDto.ReportErpLocationSerialDtos.Add(reportErpLocationSerialDto); } + itemSerialDto.FirstQty = itemSerialDto.ReportErpLocationSerialDtos.Sum(p => p.FirstQty); + itemSerialDto.NowQty = itemSerialDto.ReportErpLocationSerialDtos.Sum(p => p.NowQty); + itemSerialDto.LastQty = itemSerialDto.ReportErpLocationSerialDtos.Sum(p => p.LastQty); + itemSerialDto.SumOutQty = itemSerialDto.ReportErpLocationSerialDtos.Sum(p => p.SumOutQty); + itemSerialDto.SumInQty = itemSerialDto.ReportErpLocationSerialDtos.Sum(p => p.SumInQty); + itemSerialDtos.Add(itemSerialDto); }