Browse Source

bug

dev_DY_CC
刘云峰 1 year ago
parent
commit
d4425f6965
  1. 56
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs
  2. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestAppService.cs

56
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs

@ -42,14 +42,6 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
{
throw new UserFriendlyException("操作类型不是拆箱或合箱状态,源箱码和目标箱码必须相同!");
}
if (item.FromTopPackingCode.IsNullOrEmpty())
{
item.FromTopPackingCode = item.FromPackingCode;
}
if (item.ToTopPackingCode.IsNullOrEmpty())
{
item.ToTopPackingCode = item.FromPackingCode;// ToPackingCode;
}
}
#endregion
@ -91,6 +83,14 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
}
else
{
if (item.FromTopPackingCode.IsNullOrEmpty())
{
item.FromTopPackingCode = item.FromPackingCode;
}
if (item.ToTopPackingCode.IsNullOrEmpty())
{
item.ToTopPackingCode = item.FromPackingCode;// ToPackingCode;
}
SplitPackingRec newEntity = CommonHelper.CloneObj(item);
newEntity.SetId(GuidGenerator.Create());
var ret = await _repository.InsertAsync(newEntity, true).ConfigureAwait(false);
@ -202,24 +202,42 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
/// 取顶级箱码
/// </summary>
/// <param name="historyQuery">箱码历史</param>
/// <param name="item">当前箱码</param>
/// <param name="packingCode">箱码,from to时都传入from</param>
/// <returns></returns>
private static string GetTopPackingCode(IQueryable<SplitPackingRec> historyQuery, string packingCode)
{
var historyRec = historyQuery.Where(itm => itm.FromPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault();
if (historyRec != null)
{
return historyRec.FromTopPackingCode;
}
else
var qry = historyQuery.Where(itm => itm.OprType == OprTypeEnum.SplitBox || itm.OprType == OprTypeEnum.MergeBox);
string ret = null;
SplitPackingRec? firstObj = null;
string toCode = packingCode;
while (1 == 1)
{
historyRec = historyQuery.Where(itm => itm.ToPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault();
if (historyRec != null)
firstObj = qry.FirstOrDefault(itm => itm.ToPackingCode == toCode);
if (firstObj == null)
{
ret = toCode;
break;
}
else
{
return historyRec.ToTopPackingCode;
toCode = firstObj.FromPackingCode;
}
}
return null;
return ret;
//var historyRec = historyQuery.Where(itm => itm.FromPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault();
//if (historyRec != null)
//{
// return historyRec.FromTopPackingCode;
//}
//else
//{
// historyRec = historyQuery.Where(itm => itm.ToPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault();
// if (historyRec != null)
// {
// return historyRec.ToTopPackingCode;
// }
//}
//return null;
}
private static void SetBillNumber(IQueryable<SplitPackingRec> historyQuery, SplitPackingRec obj)

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestAppService.cs

@ -9,7 +9,6 @@ using Volo.Abp.Domain.Entities;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Label.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
@ -31,20 +30,20 @@ public class PurchaseReceiptRequestAppService :
{
private readonly IPurchaseReceiptRequestManager _purchaseReceiptRequestManager;
private readonly ISplitPackingRecManager _splitPackingRecManager;
private readonly ISplitPackingRecAppService _splitPackingRecAppService;
public PurchaseReceiptRequestAppService(
IPurchaseReceiptRequestRepository repository,
IPurchaseReceiptRequestManager purchaseReceiptRequestManager,
ISplitPackingRecManager splitPackingRecManager) : base(repository, purchaseReceiptRequestManager)
ISplitPackingRecAppService splitPackingRecAppService) : base(repository, purchaseReceiptRequestManager)
{
_purchaseReceiptRequestManager = purchaseReceiptRequestManager;
base.CreatePolicyName = PurchaseReceiptRequestPermissions.Create;
base.UpdatePolicyName = PurchaseReceiptRequestPermissions.Update;
base.DeletePolicyName = PurchaseReceiptRequestPermissions.Delete;
_splitPackingRecManager = splitPackingRecManager;
_splitPackingRecAppService = splitPackingRecAppService;
}
#region 东阳使用
@ -103,7 +102,7 @@ public class PurchaseReceiptRequestAppService :
public virtual async Task<PurchaseReceiptRequestDetailDTO> GetDetailByItemAndRootPackingAsync(string itemCode,
string packingCode)
{
var topObj = await _splitPackingRecManager.GetTopPackingCode(packingCode).ConfigureAwait(false);
var topObj = await _splitPackingRecAppService.GetTopPackingCode(packingCode).ConfigureAwait(false);
if (topObj == null || string.IsNullOrEmpty(topObj.ToTopPackingCode))
{
throw new UserFriendlyException($"根据箱码{packingCode}到拆箱记录表中没有取到顶级箱码!");

Loading…
Cancel
Save