|
|
@ -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) |
|
|
|