加快装箱速度

This commit is contained in:
2025-05-10 10:11:33 +08:00
parent 06bd018e09
commit 359c09cab4
3 changed files with 100 additions and 45 deletions

View File

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