Browse Source

修改 回收料 发料状态

集成Redis
郑勃旭 2 years ago
parent
commit
f993ecaf70
  1. 3
      be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/Entities/SfsMasterAggregateRootBase.cs
  2. 15
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/RecycledMaterialReceiptNotes/RecycledMaterialReceiptNoteAppService.cs
  3. 29
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs

3
be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/Entities/SfsMasterAggregateRootBase.cs

@ -67,7 +67,7 @@ public abstract class SfsMasterAggregateRootBase<TDetail> : 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<TDetail> : SfsAggregateRootBase
property.SetValue(detail, newValue);
}
}
/*
////todo check
//var detail = GetDetail(id);

15
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<RecycledMaterialReceiptNoteDTO> CreateAsync(RecycledMaterialReceiptNoteEditInput input)
{
var entity= ObjectMapper.Map<RecycledMaterialReceiptNoteEditInput, RecycledMaterialReceiptNote>(input);
var entity = ObjectMapper.Map<RecycledMaterialReceiptNoteEditInput, RecycledMaterialReceiptNote>(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<RecycledMaterialReceiptNote>(entity),false).ConfigureAwait(false);
await LocalEventBus.PublishAsync(new SfsCreatedEntityEventData<RecycledMaterialReceiptNote>(entity), false).ConfigureAwait(false);
return ObjectMapper.Map<RecycledMaterialReceiptNote, RecycledMaterialReceiptNoteDTO>(entity);
}

29
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs

@ -27,7 +27,7 @@ public class MaterialRequestManager
/// <returns></returns>
public virtual async Task<MaterialRequest> 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);

Loading…
Cancel
Save