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