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. 46
      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 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) //赋值生产线 foreach (var detailInput in input.Details) //赋值生产线
@ -175,7 +198,7 @@ public class ThirdLocationRequestAppService : SfsStoreRequestAppServiceBase<Thir
/// <returns></returns> /// <returns></returns>
private async Task SetRequestAutoPropertiesAsync(ThirdLocationRequestEditInput entity) 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, "事务类型", "事务类型不存在"); Check.NotNull(tranType, "事务类型", "事务类型不存在");

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

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

Loading…
Cancel
Save