加快装箱速度
This commit is contained in:
@@ -105,7 +105,15 @@ namespace BarCode.Web.Domain.Services
|
||||
dto.Details = dto.Details.Distinct().ToList();
|
||||
var sAll = dto.Details.Select(s => s.SerialNumber).ToList();
|
||||
var serialNumberList = await _serialNumbersRepositories.GetEntityListContainNumber(sAll);
|
||||
List<SerialNumbers> serialList;
|
||||
// List<SerialNumbers> serialList;
|
||||
|
||||
//两件装
|
||||
var sAllTwo = dto.Details.Select(s => s.TwoSerialNumber).ToList();
|
||||
sAllTwo.RemoveAll(string.IsNullOrEmpty);
|
||||
var serialNumberListTwo = await _serialNumbersRepositories.GetEntityListContainNumber(sAllTwo);
|
||||
// List<SerialNumbers> serialListTwo;
|
||||
|
||||
|
||||
if (serialNumberList.Count() != sAll.Count())
|
||||
return Result.ReFailure(ResultCodes.SerialNumberNoDateError);
|
||||
if (serialNumberList.Where(w => w.BoxId != 0 || w.IsUse == true).Any())
|
||||
@@ -127,32 +135,53 @@ namespace BarCode.Web.Domain.Services
|
||||
s.Clear();
|
||||
var detail = box.Details.FirstOrDefault(f => f.MaterialNumber.Equals(m));
|
||||
var serialNumbers = dto.Details.Where(w => w.MaterialNumber.Equals(m)).Select(s => s.SerialNumber).ToList();
|
||||
for(int i=0;i<serialNumbers.Count;i++)
|
||||
var serialNumbersTwo = dto.Details.Where(w => w.MaterialNumber.Equals(m)).Select(s => s.TwoSerialNumber).ToList();
|
||||
var intCount = serialNumbers.Count();
|
||||
s = serialNumbers;
|
||||
serialNumbersTwo.RemoveAll(string.IsNullOrEmpty);
|
||||
if (serialNumbersTwo != null)
|
||||
{
|
||||
//跟据serialNumbers 取得对应的serialNumber
|
||||
var serialList2 = await _serialNumbersRepositories.GetEntityListBySuitNumber(serialNumbers[i]);
|
||||
for (int j = 0; j < serialList2.Count; j++)
|
||||
for(int i = 0; i < serialNumbersTwo.Count; i++)
|
||||
{
|
||||
s.Add( serialList2[j].SerialNumber);
|
||||
s.Add(serialNumbersTwo[i]);
|
||||
}
|
||||
|
||||
}
|
||||
s.OrderDescending();
|
||||
|
||||
|
||||
|
||||
//for(int i=0;i<serialNumbers.Count;i++)
|
||||
//{
|
||||
// //跟据serialNumbers 取得对应的serialNumber
|
||||
// var serialList2 = await _serialNumbersRepositories.GetEntityListBySuitNumber(serialNumbers[i]);
|
||||
// for (int j = 0; j < serialList2.Count; j++)
|
||||
// {
|
||||
// s.Add( serialList2[j].SerialNumber);
|
||||
// }
|
||||
|
||||
//}
|
||||
|
||||
|
||||
if (detail == null)
|
||||
{
|
||||
detail = new BoxDetails()
|
||||
{
|
||||
MaterialNumber = m,
|
||||
Qty = serialNumbers.Count(),
|
||||
//SerialNumbers = serialNumbers
|
||||
// Qty = serialNumbers.Count(),
|
||||
Qty = intCount,
|
||||
// SerialNumbers = serialNumbers
|
||||
SerialNumbers = s
|
||||
};
|
||||
box.Details.Add(detail);
|
||||
}
|
||||
else
|
||||
{
|
||||
detail.Qty += serialNumbers.Count();
|
||||
detail.SerialNumbers.AddRange(serialNumbers);
|
||||
//detail.Qty += serialNumbers.Count();
|
||||
//detail.SerialNumbers.AddRange(serialNumbers);
|
||||
|
||||
detail.Qty += intCount;
|
||||
detail.SerialNumbers.AddRange(s);
|
||||
|
||||
}
|
||||
}
|
||||
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
|
||||
@@ -161,52 +190,68 @@ namespace BarCode.Web.Domain.Services
|
||||
//装箱
|
||||
foreach (var d in dto.Details.Select(s => s.SerialNumber).Reverse())
|
||||
{
|
||||
////原来的
|
||||
//var serial = serialNumberList.FirstOrDefault(f => f.SerialNumber.Equals(d)
|
||||
//|| f.NumberCode.Equals(d));
|
||||
//if (serial == null) return Result.ReFailure(ResultCodes.SerialNumberNoDateError);
|
||||
//serial.CompleteBox(box.Id, d);
|
||||
////原来的到此
|
||||
|
||||
|
||||
serialList = await _serialNumbersRepositories.GetEntityListBySuitNumber(d);
|
||||
//原来的
|
||||
var serial = serialNumberList.FirstOrDefault(f => f.SerialNumber.Equals(d)
|
||||
|| f.NumberCode.Equals(d));
|
||||
if (serial == null) return Result.ReFailure(ResultCodes.SerialNumberNoDateError);
|
||||
serial.CompleteBox(box.Id, d,"0");
|
||||
//原来的到此
|
||||
|
||||
|
||||
if (serialList == null) return Result.ReFailure(ResultCodes.SerialNumberNoDateError);
|
||||
if (serialList.Count == 0) return Result.ReFailure(ResultCodes.SerialNumberNoDateError);
|
||||
//serialList = await _serialNumbersRepositories.GetEntityListBySuitNumber(d);
|
||||
|
||||
|
||||
//if (serialList == null) return Result.ReFailure(ResultCodes.SerialNumberNoDateError);
|
||||
//if (serialList.Count == 0) return Result.ReFailure(ResultCodes.SerialNumberNoDateError);
|
||||
|
||||
|
||||
|
||||
for (int i = 0; i < serialList.Count; i++)
|
||||
{
|
||||
if(serialList[i].SerialNumber.ToString() == d)
|
||||
{
|
||||
serialList[i].CompleteBox(box.Id, d,"0");
|
||||
}
|
||||
else
|
||||
{
|
||||
serialList[i].CompleteBox(box.Id, d,"1");
|
||||
}
|
||||
//for (int i = 0; i < serialList.Count; i++)
|
||||
//{
|
||||
// if (serialList[i].SerialNumber.ToString() == d)
|
||||
// {
|
||||
// serialList[i].CompleteBox(box.Id, d, "0");
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// serialList[i].CompleteBox(box.Id, d, "1");
|
||||
// }
|
||||
|
||||
}
|
||||
if (!res_Rollback)
|
||||
{
|
||||
isSuccess = await _serialNumbersRepositories.EditEntityList(serialList, false);
|
||||
if (!isSuccess) res_Rollback = true;
|
||||
}
|
||||
//}
|
||||
//if (!res_Rollback)
|
||||
//{
|
||||
// isSuccess = await _serialNumbersRepositories.EditEntityList(serialNumberList, false);
|
||||
// if (!isSuccess) res_Rollback = true;
|
||||
//}
|
||||
|
||||
|
||||
}
|
||||
//装箱
|
||||
foreach (var d in dto.Details.Select(s => s.TwoSerialNumber).Reverse())
|
||||
{
|
||||
|
||||
|
||||
|
||||
//原来的
|
||||
if (d==null) continue;
|
||||
if (d == "") continue;
|
||||
var serial = serialNumberListTwo.FirstOrDefault(f => f.SerialNumber.Equals(d)
|
||||
|| f.NumberCode.Equals(d));
|
||||
|
||||
if (serial == null) return Result.ReFailure(ResultCodes.SerialNumberNoDateError);
|
||||
serial.CompleteBox(box.Id, d, "1");
|
||||
}
|
||||
var res = await _boxRepositories.Edit(box, false);
|
||||
if (res == null) res_Rollback = true;
|
||||
//if (!res_Rollback)
|
||||
//{
|
||||
// isSuccess = await _serialNumbersRepositories.EditEntityList(serialNumberList, false);
|
||||
// if (!isSuccess) res_Rollback = true;
|
||||
//}
|
||||
|
||||
if (!res_Rollback)
|
||||
{
|
||||
isSuccess = await _serialNumbersRepositories.EditEntityList(serialNumberList, false);
|
||||
if (!isSuccess) res_Rollback = true;
|
||||
}
|
||||
if (!res_Rollback)
|
||||
{
|
||||
isSuccess = await _serialNumbersRepositories.EditEntityList(serialNumberListTwo, false);
|
||||
if (!isSuccess) res_Rollback = true;
|
||||
}
|
||||
|
||||
if (!res_Rollback)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user