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); } } 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); } } } } WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -1431,7 +1431,7 @@ _recordService.StockQuantityChangeRecordService.AddStockChangeRecord( stockInfo, stockInfo.Details, stockInfo.Details.Sum(x => x.StockQuantity), 0, stockInfo.Details.Sum(x => x.StockQuantity), StockChangeType.Inbound, task.TaskNum); } @@ -2488,6 +2488,7 @@ // 添加状态变更记录 AddStatusChangeRecord(task, stockInfo, locationInfo); // 根据订单类型处理不同逻辑 var outboundOrder = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrder>() @@ -2563,7 +2564,6 @@ private void DWANDYSUpdateOutboundOrderDetails(Dt_StockInfo stockInfo, Dt_OutboundOrder inboundOrder, ref List<Dt_OutboundOrderDetail> inboundOrderDetails) { List<Dt_OutboundOrderDetail> newOutboundOrderDetails = inboundOrderDetails; int overCount = inboundOrder.Details.Count(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()); foreach (var newOutboundOrderDetail in newOutboundOrderDetails) { string BatchNo = newOutboundOrderDetail.BatchNo; @@ -2582,7 +2582,6 @@ if (newOutboundOrderDetail.OverOutQuantity == newOutboundOrderDetail.OrderQuantity) { newOutboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt(); overCount++; } else if (newOutboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) { @@ -2591,7 +2590,7 @@ } } } if (inboundOrder.Details.Count() == overCount) if (newOutboundOrderDetails.All(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt())) { inboundOrder.OrderStatus = OutboundStatusEnum.出库完成.ObjToInt(); } @@ -2627,6 +2626,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,