diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs
index 0dde430e2..1b5403630 100644
--- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs
@@ -29,7 +29,7 @@ public class PurchaseReturnNoteController : AbpController
private readonly IInventoryLabelAppService _labelAppService;
private readonly IBalanceAppService _balanceAppService;
-
+ private readonly IPurchaseOrderAppService _purchaseOrderAppService;
///
///
///
@@ -38,12 +38,14 @@ public class PurchaseReturnNoteController : AbpController
///
public PurchaseReturnNoteController(IPurchaseReturnNoteAppService noteAppService,
IInventoryLabelAppService labelAppService,
- IBalanceAppService balanceAppService
+ IBalanceAppService balanceAppService,
+ IPurchaseOrderAppService purchaseOrderAppService
)
{
_noteAppService = noteAppService;
this._labelAppService = labelAppService;
this._balanceAppService = balanceAppService;
+ _purchaseOrderAppService = purchaseOrderAppService;
}
///
@@ -133,7 +135,7 @@ public class PurchaseReturnNoteController : AbpController
//createInputDetail.WarehouseCode= poNumberItem.
await SetDetailByBalanceAsync(packingCode, createInputDetail).ConfigureAwait(false);
-
+ await SetDetailByPoAsync(poNumberDetail.PoNumber, createInputDetail).ConfigureAwait(false);
returnNoteEditInput.Details.Add(createInputDetail);
}
@@ -142,11 +144,17 @@ public class PurchaseReturnNoteController : AbpController
return createInputs;
}
-
+ private async Task SetDetailByPoAsync(string poNumber, PurchaseReturnNoteDetailInput createInputDetail)
+ {
+ var po = await _purchaseOrderAppService.GetListByNumberAndItemCodeAsync(poNumber, createInputDetail.ItemCode).ConfigureAwait(false);
+ Check.NotNull(po, nameof(PurchaseOrderDTO));
+ var detail = po.Details.FirstOrDefault(r => r.ItemCode == createInputDetail.ItemCode);
+ Check.NotNull(detail, nameof(PurchaseOrderDetailDTO));
+ createInputDetail.PoLine = detail.PoLine;
+ }
private async Task SetDetailByBalanceAsync(string packingCode, PurchaseReturnNoteDetailInput createInputDetail)
{
var balance = await _balanceAppService.GetByPackingCodeAsync(packingCode).ConfigureAwait(false);
-
Check.NotNull(balance, nameof(BalanceDTO));
createInputDetail.LocationCode = balance.LocationCode;
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs
index 48c7c4837..2fe7efc27 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs
@@ -28,4 +28,5 @@ public interface ISplitPackingRecAppService
Task> GetListByFromPackingCode(List fromPackingCodeList);
Task GetTopPackingCode(string toPackingCode);
Task GetSplitPackingCode(string toPackingCode);
+ Task> GetFirstOrDefaultPackingCode(List toPackingCodeList);
}
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs
index 1c3c268ce..d6545a3e2 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs
@@ -76,7 +76,18 @@ public class SplitPackingRecAppService :
List ret = ObjectMapper.Map, List>(lst);
return ret;
}
-
+ ///
+ /// 取每个目标箱码的最后一条拆箱记录
+ ///
+ /// 目标箱码列表
+ ///
+ [HttpGet("get-first-or-default-packing-code")]
+ public async Task> GetFirstOrDefaultPackingCode(List toPackingCodeList)
+ {
+ var lst = await _splitPackingRecManager.GetFirstOrDefaultPackingCode(toPackingCodeList).ConfigureAwait(false);
+ List ret = ObjectMapper.Map, List>(lst);
+ return ret;
+ }
///
/// 取每个源标箱码的“操作状态=其它”的拆箱记录
///
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs
index 85d68bc5b..0d9704ec3 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs
@@ -25,4 +25,5 @@ public interface ISplitPackingRecManager : IDomainService
Task> GetListByFromPackingCode(List fromPackingCodeList);
Task GetTopPackingCode(string packingCode);
Task GetSplitPackingCode(string packingCode);
+ Task> GetFirstOrDefaultPackingCode(List toPackingCodeList);
}
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs
index c2f311b4a..3e331098e 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs
@@ -122,7 +122,28 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
}
return ret;
}
+ ///
+ /// 获取所有最后一条操作想骂记录
+ ///
+ /// 目标箱码列表
+ ///
+ public async Task> GetFirstOrDefaultPackingCode(List toPackingCodeList)
+ {
+ List ret = new List();
+ List lst = await _repository.GetListAsync(
+ itm => toPackingCodeList.Contains(itm.ToPackingCode)).ConfigureAwait(false);
+ foreach (string toCode in toPackingCodeList)
+ {
+ var obj = lst.Where(itm => itm.ToPackingCode == toCode)
+ .OrderByDescending(itm => itm.CreationTime).FirstOrDefault();
+ if (obj != null)
+ {
+ ret.Add(obj);
+ }
+ }
+ return ret;
+ }
///
/// 取每个源标箱码的“操作状态=其它”的拆箱记录
///
@@ -168,7 +189,7 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
///
public async Task GetSplitPackingCode(string packingCode)
{
- SplitPackingRec item = await _repository.FirstOrDefaultAsync(itm => itm.ToPackingCode == packingCode && itm.OprType == OprTypeEnum.SplitBox).ConfigureAwait(false);
+ SplitPackingRec item = await _repository.FirstOrDefaultAsync(itm => itm.ToPackingCode == packingCode && itm.OprType == OprTypeEnum.Other).ConfigureAwait(false);
return item;
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Orders/PurchaseOrders/IPurchaseOrderAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Orders/PurchaseOrders/IPurchaseOrderAppService.cs
index 1a1394242..40900c47b 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Orders/PurchaseOrders/IPurchaseOrderAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Orders/PurchaseOrders/IPurchaseOrderAppService.cs
@@ -41,4 +41,5 @@ public interface IPurchaseOrderAppService
Task> GetListBySupplierCodeAsync(string supplierCode, string itemCode);
Task> GetNoPoBillList(List poBillNo);
Task CreateOrUpdateAsync(PurchaseOrderEditInput input);
+ Task GetListByNumberAndItemCodeAsync(string number, string itemCode);
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAppService.cs
index 013e43786..9a8c61aad 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAppService.cs
@@ -170,14 +170,14 @@ public class PurchaseReceiptNoteAppService :
public virtual async Task GetDetailByItemAndPackingAsync(string itemCode,
string packingCode)
{
- var list=await _splitPackingRecAppService.GetListByToPackingCode(new List(){ packingCode }).ConfigureAwait(false);
+ var list=await _splitPackingRecAppService.GetFirstOrDefaultPackingCode(new List(){ packingCode }).ConfigureAwait(false);
var splitPackingRecDto=list.FirstOrDefault();
var entity = (await _repository.GetListAsync(p => p.Details.Any(y => y.ItemCode == itemCode && y.PackingCode == (splitPackingRecDto==null? packingCode: splitPackingRecDto.ToTopPackingCode)), true).ConfigureAwait(false)).FirstOrDefault();
if (entity != null)
{
- var detail = entity.Details.FirstOrDefault(y => y.ItemCode == itemCode && y.PackingCode == splitPackingRecDto.ToTopPackingCode);
+ var detail = entity.Details.FirstOrDefault(y => y.ItemCode == itemCode && y.PackingCode == (splitPackingRecDto == null ? packingCode : splitPackingRecDto.ToTopPackingCode));
var dto = ObjectMapper.Map(detail);
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs
index f083bf418..31b2a920b 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs
@@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using Volo.Abp.Domain.Entities;
+using Volo.Abp.Domain.Repositories;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
@@ -320,7 +321,16 @@ public class PurchaseOrderAppService :
return dtos;
}
+ [HttpGet("get-list-by-number-nad-item-code")]
+ public virtual async Task GetListByNumberAndItemCodeAsync(string number,string itemCode)
+ {
+ var entity = await _repository.GetListAsync(p =>p.Number==number&& p.Details.Any(y => y.ItemCode == itemCode),true)
+ .ConfigureAwait(false);
+
+ var dtos = ObjectMapper.Map(entity.FirstOrDefault());
+ return dtos;
+ }
#region 校验
[HttpPost("check-status")]
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs
index d71e51a92..a4a741a18 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs
@@ -64,8 +64,7 @@ public class PurchaseReturnNoteEventHandler
{
var inventoryLabelDto=await _inventoryLabelAppService.GetByCodeAsync(detail.PackingCode).ConfigureAwait(false);
- var purchaseOrderDetailUpdateInputs = entity.Details
- .Select(BuildPurchaseOrderDetailUpdateInput).ToList();
+ var purchaseOrderDetailUpdateInputs = entity.Details.Select(BuildPurchaseOrderDetailUpdateInput).ToList();
await _purchaseOrderAppService.UpdateDetailsAsync(entity.PoNumber, purchaseOrderDetailUpdateInputs).ConfigureAwait(false);
}
diff --git a/build/src/docker/publish/conf/settings/appsettings.Development.json b/build/src/docker/publish/conf/settings/appsettings.Development.json
index c9e77bfc5..54cd1daea 100644
--- a/build/src/docker/publish/conf/settings/appsettings.Development.json
+++ b/build/src/docker/publish/conf/settings/appsettings.Development.json
@@ -117,8 +117,8 @@
//"BaseUrl": "http://localhost:59093/"
},
"BaseData": {
- "BaseUrl": "http://dev.ccwin-in.com:60084/"
- //"BaseUrl": "http://localhost:59094/"
+ //"BaseUrl": "http://dev.ccwin-in.com:60084/"
+ "BaseUrl": "http://localhost:59094/"
},
"Default": {
"BaseUrl": "http://dev.ccwin-in.com:60083/"