This commit is contained in:
2025-07-11 15:38:16 +08:00
parent fdd9a20a16
commit e8e4992dbe
5 changed files with 121 additions and 4 deletions

View File

@@ -24,6 +24,9 @@ namespace WMS.Web.Domain.Infrastructure
Task<List<OutStockTask>> GetEntityList(List<int> ids);
/// 查询实体集合
Task<List<OutStockTask>> GetEntityListByStatus();
Task<List<SerialNumbers>> GetEntityList(List<string> serialNumbers);
Task<List<SerialNumbers>> GetEntityListBySuitNumber(string suitNumber);
/// 查询实体集合(明细Id)
Task<List<OutStockTask>> GetEntityListByDetailIds(List<int> ids);
/// <summary>

View File

@@ -707,8 +707,16 @@ namespace WMS.Web.Domain.Services
}
else
{
string hadsavel = "";
foreach (var s in d.SerialNumberList)
{
//先跟据条码查询对应的
List<string> l= new List<string>();
l.Add(s.ToString());
var serialNumbers = await _outStockTaskRepositories.GetEntityList(l);
// hadsavel = hadsavel + serialNumbers[0].TwoSerialNumber;
list.Add(new ExportInfoResponse()
{
SourceBillNo = response.SourceBillNo,
@@ -727,15 +735,26 @@ namespace WMS.Web.Domain.Services
BoxWeight = d.BoxWeight,
Qty = d.Qty,
AccruedQty = d.AccruedQty,
SerialNumbers = s
SerialNumbers = serialNumbers[0].TwoSerialNumber
});
}
}
}
}
var list2 = list.GroupBy(p => new { p.SourceBillNo, p.SaleBillNo,p.ReceiptCustomer, p.CreateTime, p.BoxBillNo, p.Specifications, p.MaterialName, p.MaterialNumber, p.BarCode, p.IndexNumber, p.BoxLength, p.BoxWide, p.BoxHigh, p.BoxWeight, p.Qty, p.AccruedQty, p.SerialNumbers }) // Group by Name and Age properties
.Select(g => g.First()) // Select the first item of each group (arbitrary choice)
.ToList(); // Convert back to list if needed. If you only need the distinct items, you can skip this step.
// list.Distinct().ToList();
var _exportExcelService = scope.ServiceProvider.GetRequiredService<IExportExcelService>();
await _exportExcelService.Export(list, fileName, loginInfo.UserInfo.StaffId, loginInfo.UserInfo.CompanyId, FileDownLoadOrderType.OutStockTaskInfo);
await _exportExcelService.Export(list2, fileName, loginInfo.UserInfo.StaffId, loginInfo.UserInfo.CompanyId, FileDownLoadOrderType.OutStockTaskInfo);
}
}
catch (Exception ex)

View File

@@ -403,7 +403,8 @@ namespace WMS.Web.Domain.Services
//序列号操作记录
//
//操作记录
var res = await this.SerialNumberOperate(sList, false);
//提交事务
if (isTransaction)

View File

@@ -374,6 +374,37 @@ namespace WMS.Web.Repositories
}
return details;
}
/// <summary>
/// 根据序列号查询
/// </summary>
/// <param name="serialNumbers"></param>
/// <returns></returns>
public async Task<List<SerialNumbers>> GetEntityList(List<string> serialNumbers)
{
var res = await _context.SerialNumbers
// .Where(f => serialNumbers.Contains(f.SerialNumber))
.Where(f => serialNumbers.Contains(f.SerialNumber))
.ToListAsync();
var res_c = res.Clone();
//var s_e = res.Select(s => s.SerialNumber).ToList();
var s_e = res.Select(s => s.TwoSerialNumber).ToList();
//在序列表里没找到的序列码 则到老ops序列码数据里去处理 list比较 取差集
var s_c = serialNumbers.Except(s_e);
if (s_c.Count() > 0)
{
var entitys_ops = serialNumbers.Where(w => s_c.Contains(w)).ToList();
var r_o = await _context.SerialNumbers_Ops
.Where(f => serialNumbers.Contains(f.SerialNumber))
.ToListAsync();
res_c.AddRange(_mapper.Map<List<SerialNumbers>>(r_o.Clone()));
}
return res_c;
}
/// <summary>
/// 根据序列号搜索
/// </summary>

View File

@@ -617,10 +617,73 @@ namespace WMS.Web.Repositories
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
.Where(f => f.Status == OutStockStatus.Wait || f.Status == OutStockStatus.Part)
.ToListAsync();
return res.Clone();
}
/// <summary>
/// 根据序列号查询
/// </summary>
/// <param name="serialNumbers"></param>
/// <returns></returns>
public async Task<List<SerialNumbers>> GetEntityList(List<string> serialNumbers)
{
var res = await _context.SerialNumbers
// .Where(f => serialNumbers.Contains(f.SerialNumber))
.Where(f => serialNumbers.Contains(f.SerialNumber))
.ToListAsync();
var res_c = res.Clone();
//var s_e = res.Select(s => s.SerialNumber).ToList();
var s_e = res.Select(s => s.TwoSerialNumber).ToList();
//在序列表里没找到的序列码 则到老ops序列码数据里去处理 list比较 取差集
var s_c = serialNumbers.Except(s_e);
if (s_c.Count() > 0)
{
var entitys_ops = serialNumbers.Where(w => s_c.Contains(w)).ToList();
var r_o = await _context.SerialNumbers_Ops
.Where(f => serialNumbers.Contains(f.SerialNumber))
.ToListAsync();
res_c.AddRange(_mapper.Map<List<SerialNumbers>>(r_o.Clone()));
}
return res_c;
}
/// <summary>
/// 根据套装码获取序列码
/// </summary>
/// <param name="boxIds"></param>
/// <returns></returns>
public async Task<List<SerialNumbers>> GetEntityListBySuitNumber(string suitNumber)
{
return await _context.SerialNumbers.AsNoTracking()
.Where(f => f.SerialNumber.Contains(suitNumber))
.ToListAsync();
//var res = await _context.SerialNumbers
// .Where(f => serialNumbers.Contains(f.SerialNumber))
// .ToListAsync();
//var res_c = res.Clone();
//var s_e = res.Select(s => s.SerialNumber).ToList();
////在序列表里没找到的序列码 则到老ops序列码数据里去处理 list比较 取差集
//var s_c = serialNumbers.Except(s_e);
//if (s_c.Count() > 0)
//{
// var entitys_ops = serialNumbers.Where(w => s_c.Contains(w)).ToList();
// var r_o = await _context.SerialNumbers_Ops
// .Where(f => serialNumbers.Contains(f.SerialNumber))
// .ToListAsync();
// res_c.AddRange(_mapper.Map<List<SerialNumbers>>(r_o.Clone()));
//}
//return res_c;
}
public string GetInStock(List<string> codes, int companyId, string orgCode)
{
var list = codes.Where(w => w != null).ToList();