diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/Entities/SfsMasterAggregateRootBase.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/Entities/SfsMasterAggregateRootBase.cs index 02df8fc8c..4cd6d8ee4 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/Entities/SfsMasterAggregateRootBase.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/Entities/SfsMasterAggregateRootBase.cs @@ -67,7 +67,7 @@ public abstract class SfsMasterAggregateRootBase : SfsAggregateRootBase Details.AddRange(details); } - public void ReplaceDetail(Guid id, TDetail newDetail) + public void ReplaceDetail(Guid id,TDetail newDetail) { var detail = GetDetail(id); @@ -106,7 +106,6 @@ public abstract class SfsMasterAggregateRootBase : SfsAggregateRootBase property.SetValue(detail, newValue); } } - /* ////todo check //var detail = GetDetail(id); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/RecycledMaterialReceiptNotes/RecycledMaterialReceiptNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/RecycledMaterialReceiptNotes/RecycledMaterialReceiptNoteAppService.cs index ba42b49cf..3e09d396c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/RecycledMaterialReceiptNotes/RecycledMaterialReceiptNoteAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/RecycledMaterialReceiptNotes/RecycledMaterialReceiptNoteAppService.cs @@ -49,31 +49,32 @@ public class RecycledMaterialReceiptNoteAppService : [HttpPost("")] public override async Task CreateAsync(RecycledMaterialReceiptNoteEditInput input) { - var entity= ObjectMapper.Map(input); + var entity = ObjectMapper.Map(input); - entity.Number=string.IsNullOrEmpty(input.Number) + entity.Number = string.IsNullOrEmpty(input.Number) ? await GenerateNumberAsync(nameof(RecycledMaterialReceiptNote), input.ActiveDate) .ConfigureAwait(false) : input.Number; + entity.SetId(GuidGenerator.Create()); foreach (var detail in entity.Details) { var detailNumber = await GenerateNumberAsync(nameof(RecycledMaterialReceiptNote), input.ActiveDate) .ConfigureAwait(false); - detail.Number=detailNumber; + detail.SetIdAndNumber(GuidGenerator, entity.Id, detailNumber); var locationDto = await _locationAppService.GetByCodeAsync(detail.LocationCode).ConfigureAwait(false); detail.LocationErpCode = locationDto.ErpLocationCode; detail.LocationArea = locationDto.AreaCode; detail.LocationGroup = locationDto.LocationGroupCode; - detail.WarehouseCode=locationDto.WarehouseCode; - var itemBasicDto=await _itemBasicAppService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false); + detail.WarehouseCode = locationDto.WarehouseCode; + var itemBasicDto = await _itemBasicAppService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false); detail.StdPackQty = itemBasicDto.StdPackQty; detail.Uom = itemBasicDto.BasicUom; } - entity=await _repository.InsertAsync(entity).ConfigureAwait(false); + entity = await _repository.InsertAsync(entity).ConfigureAwait(false); - await LocalEventBus.PublishAsync(new SfsCreatedEntityEventData(entity),false).ConfigureAwait(false); + await LocalEventBus.PublishAsync(new SfsCreatedEntityEventData(entity), false).ConfigureAwait(false); return ObjectMapper.Map(entity); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs index 02f0fe835..f64b4e6e4 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs @@ -27,7 +27,7 @@ public class MaterialRequestManager /// public virtual async Task CreateBynNumberAsync(MaterialRequest entity) { - var number = string.IsNullOrEmpty(entity.Number) ? await GenerateNumberAsync(typeof(MaterialRequest).Name, entity.ActiveDate).ConfigureAwait(false) : entity.Number; + var number = string.IsNullOrEmpty(entity.Number) ? await GenerateNumberAsync(nameof(MaterialRequest), entity.ActiveDate).ConfigureAwait(false) : entity.Number; entity.SetIdAndNumberWithDetails(GuidGenerator, number); entity.Submit(); entity.Agree(); @@ -128,16 +128,35 @@ public class MaterialRequestManager oldEntity.ReplaceDetail(newDetail.Id, newDetail); } - var flag=oldEntity.Details.Any(p => p.ReceivedQty < p.Qty);//还有补料完 没收到的货 - - if (!flag) + foreach (var detail in oldEntity.Details) { - oldEntity.Complete(); + SetMaterialRequestDetailStatus(detail); } + //SetMaterialRequestStatus(oldEntity); + await Repository.UpdateAsync(oldEntity).ConfigureAwait(false); } + private void SetMaterialRequestDetailStatus(MaterialRequestDetail detail) + { + if (detail.Qty > detail.IssuedQty)//要100 实际只有50 + { + if (detail.ReceivedQty >= detail.Qty)//执行的时候发的比100还多 就完成 + { + detail.Status = EnumStatus.Close; + } + else + { + detail.Status=EnumStatus.Open; + } + } + else//要100 实际够100 + { + detail.Status = EnumStatus.Close; + } + } + public virtual async Task CompleteAsync(string number) { var entity = await GetByNumberAsync(number).ConfigureAwait(false);