Browse Source

三方库发货功能优化

dev_DY_CC
周红军 1 year ago
parent
commit
1b4c022450
  1. 29
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ThirdLocationRequests/ThirdLocationRequestAppService.cs
  2. 44
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ThirdLocationRequestEventHandler.cs

29
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ThirdLocationRequests/ThirdLocationRequestAppService.cs

@ -103,12 +103,35 @@ public class ThirdLocationRequestAppService : SfsStoreRequestAppServiceBase<Thir
}
else
{
if(item.FromLocationCode == "HOLD" || item.FromLocationCode == "INSPECT" || item.FromLocationCode == "TRANSFERONTHEWAY")
var fromLocationDto = await _locationAppService.GetByCodeAsync(item.FromLocationCode).ConfigureAwait(false);
if(fromLocationDto == null)
{
throw new UserFriendlyException($"{item.ItemCode} 来源库位不允许扫待检库、在途库、隔离库");
throw new UserFriendlyException($"库位代码为【{item.FromLocationCode}】不存在");
}
else
{
if (fromLocationDto.Type == EnumLocationType.HOLD || fromLocationDto.Type == EnumLocationType.INSP || fromLocationDto.Type == EnumLocationType.TRANSPORT)
{
throw new UserFriendlyException($"{item.ItemCode} 来源库位不允许扫待检库、在途库、隔离库");
}
}
}
//校验目标库位
if (string.IsNullOrEmpty(item.ToLocationCode))
{
throw new UserFriendlyException($"{item.ItemCode} 目标库位不能为空");
}
else
{
var toLocationDto = await _locationAppService.GetByCodeAsync(item.ToLocationCode).ConfigureAwait(false);
if (toLocationDto!=null && toLocationDto.Type != EnumLocationType.THIRDPARTY)
{
throw new UserFriendlyException($"{item.ItemCode} 目标库位不是三方库库位");
}
}
}
foreach (var detailInput in input.Details) //赋值生产线
@ -175,7 +198,7 @@ public class ThirdLocationRequestAppService : SfsStoreRequestAppServiceBase<Thir
/// <returns></returns>
private async Task SetRequestAutoPropertiesAsync(ThirdLocationRequestEditInput entity)
{
var tranType = await _transactionTypeAppService.GetByTransTypeAsync(EnumTransType.Issue, EnumTransSubType.None).ConfigureAwait(false);
var tranType = await _transactionTypeAppService.GetByTransTypeAsync(EnumTransType.TransferLib, EnumTransSubType.Transfer_Warehouse).ConfigureAwait(false);
Check.NotNull(tranType, "事务类型", "事务类型不存在");

44
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ThirdLocationRequestEventHandler.cs

@ -247,8 +247,7 @@ public class ThirdLocationRequestEventHandler
continue;
}
var fromLocationCode = jobDetails[0].RecommendFromLocationCode;
var fromLocation = await _locationAppService.GetByCodeAsync(fromLocationCode).ConfigureAwait(false);
var fromLocation = await _locationAppService.GetByCodeAsync(thirdLocationRequestDetail.FromLocationCode).ConfigureAwait(false);
var job = jobs.FirstOrDefault(p => p.WorkGroupCode == fromLocation?.WorkGroupCode);
if (job == null || job.Details.Any(p => p.ToLocationCode != thirdLocationRequestDetail.ToLocationCode))
{
@ -269,11 +268,11 @@ public class ThirdLocationRequestEventHandler
{
ThirdLocationJobEditInput job;
job = ObjectMapper.Map<ThirdLocationRequest, ThirdLocationJobEditInput>(thirdLocationRequest);
job.JobType = EnumJobType.IssueJob;
job.JobType = EnumJobType.Transfer;
job.JobStatus = EnumJobStatus.Open;
job.WorkGroupCode = fromLocation.WorkGroupCode;
job.WarehouseCode = fromLocation.WarehouseCode;
job.ProdLine = fromLocation.LocationGroupCode;
//job.ProdLine = fromLocation.LocationGroupCode;
job.Worker = thirdLocationRequest.Worker;
if (string.IsNullOrEmpty(job.Worker))
{
@ -313,8 +312,8 @@ public class ThirdLocationRequestEventHandler
}
jobDetails.Add(detail);
thirdLocationRequestDetail.IssuedQty += recommend.Qty;
//thirdLocationRequestDetail.IssuedQty += recommend.Qty;
//await _thirdLocationRequestManager.UpdateDetailsAsync(thirdLocationRequest).ConfigureAwait(false);
}
@ -334,21 +333,26 @@ public class ThirdLocationRequestEventHandler
detail.PositionCode = thirdLocationRequestDetail.PositionCode;
detail.RecommendType = thirdLocationRequestDetail.RecommendType;
detail.RecommendPackingCode = balance.PackingCode;
detail.RecommendContainerCode = balance.ContainerCode;
detail.RecommendSupplierBatch = balance.SupplierBatch;
detail.RecommendProduceDate = balance.ProduceDate;
detail.RecommendExpireDate = balance.ExpireDate;
detail.RecommendLot = balance.Lot;
detail.RecommendProduceDate = balance.ProduceDate;
detail.RecommendArriveDate = balance.ArriveDate;
detail.RecommendFromLocationArea = balance.LocationArea;
detail.RecommendFromLocationCode = balance.LocationCode;
detail.RecommendFromLocationErpCode = balance.LocationErpCode;
detail.RecommendFromLocationGroup = balance.LocationGroup;
detail.RecommendFromWarehouseCode = balance.WarehouseCode;
detail.RecommendQty = balance.Qty;
detail.Uom = balance.Uom;
//detail.RecommendPackingCode = balance.PackingCode;
//detail.RecommendContainerCode = balance.ContainerCode;
//detail.RecommendSupplierBatch = balance.SupplierBatch;
//detail.RecommendProduceDate = balance.ProduceDate;
//detail.RecommendExpireDate = balance.ExpireDate;
//detail.RecommendLot = balance.Lot;
//detail.RecommendProduceDate = balance.ProduceDate;
//detail.RecommendArriveDate = balance.ArriveDate;
//detail.RecommendFromLocationArea = balance.LocationArea;
//detail.RecommendFromLocationCode = balance.LocationCode;
//detail.RecommendFromLocationErpCode = balance.LocationErpCode;
//detail.RecommendFromLocationGroup = balance.LocationGroup;
//detail.RecommendFromWarehouseCode = balance.WarehouseCode;
//detail.RecommendQty = balance.Qty;
//detail.Uom = balance.Uom;
detail.RecommendPackingCode = "";
detail.RecommendLot = "";
detail.RecommendFromLocationCode = thirdLocationRequestDetail.FromLocationCode;
detail.RecommendFromLocationErpCode = "";
detail.ToLocationCode = thirdLocationRequestDetail.ToLocationCode;
detail.ToLocationErpCode = thirdLocationRequestDetail.ToLocationErpCode;

Loading…
Cancel
Save