diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
index 4a67b9616..9c2c3045b 100644
--- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
@@ -32,9 +32,10 @@ public class InjectionIssueRequestController : AbpController
///
///
[HttpPost("")]
- public virtual async Task CreateAsync(InjectionIssueRequestEditInput input)
+ public virtual async Task> CreateAsync(InjectionIssueRequestEditInput input)
{
- _ = await _injectionRequestAppService.CreateAsync(input).ConfigureAwait(false);
+ var result = await _injectionRequestAppService.CreateAsync(input).ConfigureAwait(false);
+ return Ok(result);
}
///
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLines/ProductionLineAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLines/ProductionLineAppService.cs
index 188bfb5f4..3bb63cb76 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLines/ProductionLineAppService.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLines/ProductionLineAppService.cs
@@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Caching;
+using Volo.Abp.Domain.Repositories;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
@@ -48,7 +49,7 @@ public class ProductionLineAppService
[HttpPost("get-by-location")]
public virtual async Task GetByLocationCodeAsync(string locationCode)
{
- var entity = await _repository.FindAsync(p => p.LocationCode == locationCode).ConfigureAwait(false);
+ var entity = await _repository.FirstOrDefaultAsync(p => p.LocationCode == locationCode).ConfigureAwait(false);
if (entity == null)
{
throw new UserFriendlyException($"【{locationCode}】库位不存在");
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs
index 8a87550c5..b998f6bbc 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs
@@ -42,6 +42,7 @@ public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase0)
+ {
+ detailInput.Uom = itemContainerDto[0].BasicUom;
+ detailInput.Qty = itemContainerDto[0].Qty;
+ detailInput.StdPackQty = itemBasicDto.StdPackQty;
+ }
+ else
+ {
+ detailInput.Uom = itemBasicDto.BasicUom;
+ detailInput.StdPackQty = itemBasicDto.StdPackQty;
+ detailInput.Qty = itemBasicDto.StdPackQty;
+ }
+
detailInput.Status = EnumStatus.Open;
//因为是刚创建的 所以发料数一定是0
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs
index deb859cb5..29927219a 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs
@@ -249,6 +249,11 @@ public class InjectionIssueRequestEventHandler
var productionLineItemDto =
productionLineItemDtos.FirstOrDefault(p => p.ItemCode == injectionRequestDetail.ItemCode);
+ if (productionLineItemDto == null)
+ {
+ throw new UserFriendlyException(
+ $"物品代码【{injectionRequestDetail.ItemCode}】在生产线【{productionLineDto.Code}】中没有对应的【生产线物品关系】");
+ }
var input = new RecommendBalanceRequestInput
{
ItemCode = injectionRequestDetail.ItemCode,
@@ -268,20 +273,10 @@ public class InjectionIssueRequestEventHandler
var detail =
await BuildInjectionIssueJobDetailWithQtyTypeAsync(injectionRequestDetail, recommend,
toLocationGroupCode)
- .ConfigureAwait(false);
- if (injectionRequest.UseOnTheWayLocation)
- {
- //获取在途库
- var locationDto = await _locationAppService.GetFirstByTypeAsync(EnumLocationType.TRANSPORT)
- .ConfigureAwait(false);
-
- detail.OnTheWayLocationCode = locationDto.Code;
- }
+ .ConfigureAwait(false);
jobDetails.Add(detail);
- injectionRequestDetail.IssuedQty += recommend.Qty;
-
- //await _injectionRequestManager.UpdateDetailsAsync(injectionRequest).ConfigureAwait(false);
+
}
}
@@ -298,36 +293,63 @@ public class InjectionIssueRequestEventHandler
private async Task BuildInjectionIssueJobDetailWithQtyTypeAsync(
InjectionIssueRequestDetail injectionRequestDetail, BalanceDTO balance, string toLocationGroupCode)
{
- //ProductionLineDTO prodLine = await _productionLineAppService.GetByLocationGroupCodeAsync(toLocationGroupCode).ConfigureAwait(false);
-
- var detail = ObjectMapper.Map(balance);
+ var detail = new InjectionIssueJobDetailInput();
detail.RequestLocationCode = injectionRequestDetail.ToLocationCode;
+ detail.RequestLocationGroup=injectionRequestDetail.ToLocationGroup;
+ detail.RequestLocationArea = injectionRequestDetail.ToLocationArea;
+ detail.RequestLocationErpCode = injectionRequestDetail.ToLocationErpCode;
+ detail.RequestWarehouseCode=injectionRequestDetail.ToWarehouseCode;
+
detail.PositionCode = injectionRequestDetail.PositionCode;
detail.RecommendType = injectionRequestDetail.RecommendType;
+ detail.ProdLine = injectionRequestDetail.ToLocationCode;
+
+ detail.ItemCode = injectionRequestDetail.ItemCode;
+ detail.ItemName=injectionRequestDetail.ItemName;
+ detail.ItemDesc1=injectionRequestDetail.ItemDesc1;
+ detail.ItemDesc2 = injectionRequestDetail.ItemDesc2;
+ detail.StdPackQty = injectionRequestDetail.StdPackQty;
+ detail.RequestQty= injectionRequestDetail.Qty;
+
+ detail.Status = EnumInventoryStatus.OK;
+ detail.Uom = balance.Uom;
detail.RecommendFromPackingCode = balance.PackingCode;
detail.RecommendFromContainerCode = balance.ContainerCode;
+ detail.RecommendFromLot = balance.Lot;
+
+ detail.RecommendFromQty = balance.Qty;
+
detail.RecommendFromSupplierBatch = balance.SupplierBatch;
detail.RecommendFromProduceDate = balance.ProduceDate;
detail.RecommendFromExpireDate = balance.ExpireDate;
- detail.RecommendFromLot = balance.Lot;
detail.RecommendFromProduceDate = balance.ProduceDate;
detail.RecommendFromArriveDate = balance.ArriveDate;
+
detail.RecommendFromLocationArea = balance.LocationArea;
detail.RecommendFromLocationCode = balance.LocationCode;
detail.RecommendFromLocationErpCode = balance.LocationErpCode;
detail.RecommendFromLocationGroup = balance.LocationGroup;
detail.RecommendFromWarehouseCode = balance.WarehouseCode;
- detail.RecommendFromQty = balance.Qty;
- detail.Uom = balance.Uom;
+
+ detail.RecommendToPackingCode = balance.PackingCode;
+ detail.RecommendToContainerCode = balance.ContainerCode;
+ detail.RecommendToLot = balance.Lot;
+
+ detail.RecommendToQty = balance.Qty;
+
+ detail.RecommendToSupplierBatch = balance.SupplierBatch;
+ detail.RecommendToProduceDate = balance.ProduceDate;
+ detail.RecommendToExpireDate = balance.ExpireDate;
+ detail.RecommendToProduceDate = balance.ProduceDate;
+ detail.RecommendToArriveDate = balance.ArriveDate;
detail.RecommendToLocationCode = injectionRequestDetail.ToLocationCode;
detail.RecommendToLocationErpCode = injectionRequestDetail.ToLocationErpCode;
detail.RecommendToLocationArea = injectionRequestDetail.ToLocationArea;
detail.RecommendToWarehouseCode = injectionRequestDetail.ToWarehouseCode;
+ detail.RecommendToLocationGroup = injectionRequestDetail.ToLocationGroup;
- //detail.ProdLine = prodLine == null ? toLocationGroupCode : prodLine.Code;
- detail.ProdLine = toLocationGroupCode;
await Task.CompletedTask.ConfigureAwait(false);
return detail;
}