改箱生成新箱时支持多条记录
This commit is contained in:
Binary file not shown.
@@ -82,7 +82,7 @@ namespace WMS.Web.Domain.Services
|
||||
//if (d.DestBoxBillNo.Substring(0, 3) != "CTN")
|
||||
// return Result.ReFailure(ResultCodes.BoxBillNoError);
|
||||
|
||||
var res = await CreateBox(d);
|
||||
var res = await CreateBox(dto);
|
||||
if (!res.IsSuccess) return res;
|
||||
dBox = await _boxRepositories.GetByNo(d.DestBoxBillNo);
|
||||
dto.ForEach(f => f.DestBoxId = dBox.Id);
|
||||
@@ -240,22 +240,28 @@ namespace WMS.Web.Domain.Services
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
private async Task<Result> CreateBox(SaveChangeBoxRecordRequest dto)
|
||||
private async Task<Result> CreateBox(List<SaveChangeBoxRecordRequest> dto)
|
||||
{
|
||||
//增加一个空箱子
|
||||
List<OpsBoxResponse> list = new List<OpsBoxResponse>();
|
||||
OpsBoxResponse response = new OpsBoxResponse() { BoxBillNo = dto.DestBoxBillNo };
|
||||
foreach (var d in dto.Details)
|
||||
OpsBoxResponse response = new OpsBoxResponse() { BoxBillNo = dto.First().DestBoxBillNo };
|
||||
|
||||
var details = dto.SelectMany(s => s.Details);
|
||||
var materialNumberList= details.GroupBy(g => g.MaterialNumber).Select(s => s.Key).ToList();
|
||||
|
||||
foreach (var m in materialNumberList)
|
||||
{
|
||||
var qty = details.Where(w => w.MaterialNumber.Equals(m)).Sum(s => s.Qty);
|
||||
var serialNumbers = details.Where(w => w.MaterialNumber.Equals(m)).SelectMany(s => s.SerialNumbers);
|
||||
List<OpsSerialNumbersResponse> s = new List<OpsSerialNumbersResponse>();
|
||||
foreach (var sd in d.SerialNumbers)
|
||||
foreach (var sd in serialNumbers)
|
||||
{
|
||||
s.Add(new OpsSerialNumbersResponse() { SerialNumber = sd });
|
||||
}
|
||||
OpsBoxDetailsResponse dr = new OpsBoxDetailsResponse()
|
||||
{
|
||||
MaterialNumber = d.MaterialNumber,
|
||||
Qty = d.Qty,
|
||||
MaterialNumber = m,
|
||||
Qty = qty,
|
||||
SerialNumbers = s
|
||||
};
|
||||
response.Details.Add(dr);
|
||||
|
||||
Reference in New Issue
Block a user