|
|
@ -46,12 +46,18 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
//缓存数据
|
|
|
|
List<SplitPackingRec> historyLst = new List<SplitPackingRec>(); |
|
|
|
List<SplitPackingRec> hisLst2 = new List<SplitPackingRec>(); |
|
|
|
Dictionary<string, SplitPackingRec> hisLst3 = new Dictionary<string, SplitPackingRec>(); |
|
|
|
if (input.Any(itm => itm.OprType == OprTypeEnum.SplitBox || itm.OprType == OprTypeEnum.MergeBox)) |
|
|
|
{ |
|
|
|
var query = await _repository.GetQueryableAsync().ConfigureAwait(false); |
|
|
|
var fromPackCodeLst = input.Select(itm => itm.FromPackingCode).ToList(); |
|
|
|
var toPackCodeLst = input.Select(itm => itm.ToPackingCode).ToList(); |
|
|
|
var historyLst = await query.Where(itm => fromPackCodeLst.Contains(itm.ToPackingCode) && (itm.OprType == OprTypeEnum.SplitBox || itm.OprType == OprTypeEnum.MergeBox)).ToListAsync().ConfigureAwait(false); //取顶级箱码时用到
|
|
|
|
var hisLst2 = await query.Where(itm => fromPackCodeLst.Contains(itm.FromPackingCode)).ToListAsync().ConfigureAwait(false); |
|
|
|
Dictionary<string, SplitPackingRec> hisLst3 = await query.Where(itm => toPackCodeLst.Contains(itm.FromPackingCode) && itm.OprType == OprTypeEnum.Other).ToDictionaryAsync(itm => itm.FromPackingCode, it2 => it2).ConfigureAwait(false); |
|
|
|
historyLst = await query.Where(itm => fromPackCodeLst.Contains(itm.ToPackingCode) && (itm.OprType == OprTypeEnum.SplitBox || itm.OprType == OprTypeEnum.MergeBox)).ToListAsync().ConfigureAwait(false); //取顶级箱码时用到
|
|
|
|
hisLst2 = await query.Where(itm => fromPackCodeLst.Contains(itm.FromPackingCode)).ToListAsync().ConfigureAwait(false); |
|
|
|
hisLst3 = await query.Where(itm => toPackCodeLst.Contains(itm.FromPackingCode) && itm.OprType == OprTypeEnum.Other).ToDictionaryAsync(itm => itm.FromPackingCode, it2 => it2).ConfigureAwait(false); |
|
|
|
} |
|
|
|
|
|
|
|
//遍历、批量插入
|
|
|
|
List<SplitPackingRec> operLst = new List<SplitPackingRec>(); |
|
|
@ -76,8 +82,6 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager |
|
|
|
//拆箱时,如果目标箱不存在,插入目标箱(两个箱码相同)
|
|
|
|
if (hisLst3.ContainsKey(item.ToPackingCode) == false) |
|
|
|
{ |
|
|
|
//SplitPackingRec newObj = CommonHelper.CloneObj(item);
|
|
|
|
//SplitPackingRec newObj = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
|
|
|
|
SplitPackingRec newObj = CloneSplitPackingRec(item); |
|
|
|
newObj.SetId(GuidGenerator.Create()); |
|
|
|
newObj.OprType = OprTypeEnum.Other; |
|
|
@ -94,8 +98,6 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager |
|
|
|
//if (toHis == null)
|
|
|
|
//{
|
|
|
|
//}
|
|
|
|
//SplitPackingRec newEntity = CommonHelper.CloneObj(item);
|
|
|
|
//SplitPackingRec newEntity = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
|
|
|
|
SplitPackingRec newEntity = CloneSplitPackingRec(item); |
|
|
|
|
|
|
|
newEntity.SetId(GuidGenerator.Create()); |
|
|
@ -113,8 +115,6 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager |
|
|
|
{ |
|
|
|
item.ToTopPackingCode = item.FromPackingCode; |
|
|
|
} |
|
|
|
//SplitPackingRec newEntity = CommonHelper.CloneObj(item);
|
|
|
|
//SplitPackingRec newEntity = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
|
|
|
|
SplitPackingRec newEntity = CloneSplitPackingRec(item); |
|
|
|
newEntity.SetId(GuidGenerator.Create()); |
|
|
|
//var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false);
|
|
|
@ -408,28 +408,38 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager |
|
|
|
|
|
|
|
public async Task<bool> BatchInsertTestAsync(List<SplitPackingRec> input) |
|
|
|
{ |
|
|
|
List<SplitPackingRec> operLst = new List<SplitPackingRec>(); |
|
|
|
var firstObj = input[0]; |
|
|
|
int cnt = (int)(firstObj.FromStdPackQty); |
|
|
|
for (int i = 1; i <= cnt; i++) |
|
|
|
{ |
|
|
|
var newObj = CloneSplitPackingRec(firstObj); |
|
|
|
newObj.SetId(this.GuidGenerator.Create()); |
|
|
|
newObj.FromTopPackingCode = newObj.FromPackingCode; |
|
|
|
newObj.ToTopPackingCode = newObj.ToPackingCode; |
|
|
|
operLst.Add(newObj); |
|
|
|
} |
|
|
|
//List<SplitPackingRec> operLst = new List<SplitPackingRec>();
|
|
|
|
//var firstObj = input[0];
|
|
|
|
//int cnt = (int)(firstObj.FromStdPackQty);
|
|
|
|
//for (int i = 1; i <= cnt; i++)
|
|
|
|
//{
|
|
|
|
// var newObj = CloneSplitPackingRec(firstObj);
|
|
|
|
// newObj.SetId(this.GuidGenerator.Create());
|
|
|
|
// newObj.FromTopPackingCode = newObj.FromPackingCode;
|
|
|
|
// newObj.ToTopPackingCode = newObj.ToPackingCode;
|
|
|
|
// operLst.Add(newObj);
|
|
|
|
//}
|
|
|
|
|
|
|
|
//分页
|
|
|
|
int pageSize = 50; |
|
|
|
int pageTotal = PageHelper.GetTotalPages(operLst.Count, pageSize); |
|
|
|
for (int i = 1; i <= pageTotal; i++) |
|
|
|
////分页
|
|
|
|
//int pageSize = 50;
|
|
|
|
//int pageTotal = PageHelper.GetTotalPages(operLst.Count, pageSize);
|
|
|
|
//for (int i = 1; i <= pageTotal; i++)
|
|
|
|
//{
|
|
|
|
// var curPage = PageHelper.GetPage<SplitPackingRec>(operLst, i, pageSize);
|
|
|
|
// bool autoSave = false;
|
|
|
|
// await _repository.InsertManyAsync(curPage, autoSave).ConfigureAwait(false);
|
|
|
|
//}
|
|
|
|
|
|
|
|
foreach(var item in input) |
|
|
|
{ |
|
|
|
var curPage = PageHelper.GetPage<SplitPackingRec>(operLst, i, pageSize); |
|
|
|
item.SetId(this.GuidGenerator.Create()); |
|
|
|
item.FromTopPackingCode = item.FromPackingCode; |
|
|
|
item.ToTopPackingCode = item.ToPackingCode; |
|
|
|
} |
|
|
|
|
|
|
|
bool autoSave = false; |
|
|
|
await _repository.InsertManyAsync(curPage, autoSave).ConfigureAwait(false); |
|
|
|
await _repository.InsertManyAsync(input, autoSave).ConfigureAwait(false); |
|
|
|
|
|
|
|
} |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|