物料搜索
This commit is contained in:
@@ -23,7 +23,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 箱库存-仓储
|
/// 箱库存-仓储
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class BoxInventoryRepositories: IAllFielRepositories<BoxInventoryQueryRequest>, IBoxInventoryRepositories
|
public class BoxInventoryRepositories : IAllFielRepositories<BoxInventoryQueryRequest>, IBoxInventoryRepositories
|
||||||
{
|
{
|
||||||
private readonly IMapper _mapper;
|
private readonly IMapper _mapper;
|
||||||
private readonly IServiceProvider _serviceProvider;
|
private readonly IServiceProvider _serviceProvider;
|
||||||
@@ -60,7 +60,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// <param name="dto"></param>
|
/// <param name="dto"></param>
|
||||||
/// <param name="companyId"></param>
|
/// <param name="companyId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<(List<BoxInventoryQueryResponse> list, int total)> GetPagedList(BoxInventoryQueryRequest dto, int companyId)
|
public async Task<(List<BoxInventoryQueryResponse> list, int total)> GetPagedList(BoxInventoryQueryRequest dto, int companyId)
|
||||||
{
|
{
|
||||||
//1.获取物料集合和组织集合
|
//1.获取物料集合和组织集合
|
||||||
var materials = new List<ErpMaterialDto>();
|
var materials = new List<ErpMaterialDto>();
|
||||||
@@ -68,15 +68,16 @@ namespace WMS.Web.Repositories
|
|||||||
if (materials_result.IsSuccess)
|
if (materials_result.IsSuccess)
|
||||||
materials = materials_result.Data.ToList();
|
materials = materials_result.Data.ToList();
|
||||||
|
|
||||||
|
List<string> materialNumbs = new List<string>();
|
||||||
//物料集合;模糊查询后的物料集合
|
//物料集合;模糊查询后的物料集合
|
||||||
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
||||||
{
|
{
|
||||||
if (materials.Count != 0)
|
if (materials.Count != 0)
|
||||||
{
|
{
|
||||||
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|
materialNumbs = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|
||||||
|| w.MaterialName.Contains(dto.MaterialNumber)
|
|| w.MaterialName.Contains(dto.MaterialNumber)
|
||||||
|| w.Specifications.Contains(dto.MaterialNumber)
|
|| w.Specifications.Contains(dto.MaterialNumber)
|
||||||
).ToList();
|
).Select(x => x.MaterialNumber).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,16 +90,16 @@ namespace WMS.Web.Repositories
|
|||||||
var query = _context.BoxInventoryDetails
|
var query = _context.BoxInventoryDetails
|
||||||
.GroupJoin(_context.BoxInventory, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
|
.GroupJoin(_context.BoxInventory, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
|
||||||
.SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
|
.SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
|
||||||
.GroupJoin(_context.Box, p => p.order.BoxId, t => t.Id, (p, ts) => new { p.detail,p.order, ts })
|
.GroupJoin(_context.Box, p => p.order.BoxId, t => t.Id, (p, ts) => new { p.detail, p.order, ts })
|
||||||
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, p.order, box })
|
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, p.order, box })
|
||||||
.Where(adv => 1 == 1 && adv.detail.Qty!=0 );
|
.Where(adv => 1 == 1 && adv.detail.Qty != 0);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(dto.BoxBillNo))
|
if (!string.IsNullOrEmpty(dto.BoxBillNo))
|
||||||
query = query.Where(w => EF.Functions.Like(w.box.BoxBillNo, "%" + dto.BoxBillNo + "%"));
|
query = query.Where(w => EF.Functions.Like(w.box.BoxBillNo, "%" + dto.BoxBillNo + "%"));
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(dto.StockCode))
|
if (!string.IsNullOrEmpty(dto.StockCode))
|
||||||
{
|
{
|
||||||
var splitStrs= dto.StockCode.Split("_$");
|
var splitStrs = dto.StockCode.Split("_$");
|
||||||
query = query.Where(w => w.order.StockCode == splitStrs[0] && w.order.OrgCode == splitStrs[1]);
|
query = query.Where(w => w.order.StockCode == splitStrs[0] && w.order.OrgCode == splitStrs[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,14 +109,8 @@ namespace WMS.Web.Repositories
|
|||||||
//物料ID在模糊后的物料
|
//物料ID在模糊后的物料
|
||||||
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
||||||
{
|
{
|
||||||
if (materials != null && materials.Count != 0)
|
query = query.Where(w => materialNumbs.Contains(w.detail.MaterialNumber));
|
||||||
{
|
|
||||||
var mids = materials.Select(x => x.MaterialNumber).ToList();
|
|
||||||
query = query.Where(w => mids.Contains(w.detail.MaterialNumber));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
var tt = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, "wmsCK0213" + "CK001" + "101");
|
|
||||||
_logger.LogInformation("箱库存列表:"+tt+"公司ID:"+companyId);
|
|
||||||
|
|
||||||
int total = await query.CountAsync();
|
int total = await query.CountAsync();
|
||||||
var list = await query.Select(s => new BoxInventoryQueryResponse()
|
var list = await query.Select(s => new BoxInventoryQueryResponse()
|
||||||
@@ -126,14 +121,14 @@ namespace WMS.Web.Repositories
|
|||||||
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber),
|
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber),
|
||||||
MaterialNumber = s.detail.MaterialNumber,
|
MaterialNumber = s.detail.MaterialNumber,
|
||||||
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber),
|
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber),
|
||||||
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.order.StockCode+s.order.OrgCode),
|
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.order.StockCode + s.order.OrgCode),
|
||||||
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, s.order.SubStockCode + s.order.StockCode + s.order.OrgCode),
|
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, s.order.SubStockCode + s.order.StockCode + s.order.OrgCode),
|
||||||
SerialNumbers =(string.Join(",",s.detail.SerialNumbers)).TrimEnd(','),
|
SerialNumbers = (string.Join(",", s.detail.SerialNumbers)).TrimEnd(','),
|
||||||
Org = _erpBasicDataExtendService.GetOrgName(orgs, s.order.OrgCode),
|
Org = _erpBasicDataExtendService.GetOrgName(orgs, s.order.OrgCode),
|
||||||
Qty = s.detail.Qty,
|
Qty = s.detail.Qty,
|
||||||
}).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
|
}).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
|
||||||
|
|
||||||
return (list,total);
|
return (list, total);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -150,26 +145,26 @@ namespace WMS.Web.Repositories
|
|||||||
materials = materials_result.Data.ToList();
|
materials = materials_result.Data.ToList();
|
||||||
|
|
||||||
|
|
||||||
var entity =await _context.BoxInventory.Include(x=>x.Details)
|
var entity = await _context.BoxInventory.Include(x => x.Details)
|
||||||
.GroupJoin(_context.Box, t => t.BoxId, box => box.Id, (boxinvent, ts) => new { boxinvent, ts })
|
.GroupJoin(_context.Box, t => t.BoxId, box => box.Id, (boxinvent, ts) => new { boxinvent, ts })
|
||||||
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.boxinvent, box })
|
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.boxinvent, box })
|
||||||
.Where(x => 1 == 1 && x.box.BoxBillNo==boxBillNo).Select(x=>x.boxinvent).FirstOrDefaultAsync();
|
.Where(x => 1 == 1 && x.box.BoxBillNo == boxBillNo).Select(x => x.boxinvent).FirstOrDefaultAsync();
|
||||||
|
|
||||||
var response = _mapper.Map<BoxInventoryResponse>(entity);
|
var response = _mapper.Map<BoxInventoryResponse>(entity);
|
||||||
if (response != null)
|
if (response != null)
|
||||||
{
|
{
|
||||||
response.Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, _loginRepositories.CompanyId, response.StockCode + response.OrgCode);
|
response.Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, _loginRepositories.CompanyId, response.StockCode + response.OrgCode);
|
||||||
response.SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, _loginRepositories.CompanyId, response.SubStockCode+ response.StockCode + response.OrgCode);
|
response.SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, _loginRepositories.CompanyId, response.SubStockCode + response.StockCode + response.OrgCode);
|
||||||
response.Details = _mapper.Map<List<BoxInventoryDetailsResponse>>(entity.Details);
|
response.Details = _mapper.Map<List<BoxInventoryDetailsResponse>>(entity.Details);
|
||||||
response.Details.ForEach(x =>
|
response.Details.ForEach(x =>
|
||||||
{
|
{
|
||||||
x.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, x.MaterialNumber);
|
x.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, x.MaterialNumber);
|
||||||
x.MaterialNumber = x.MaterialNumber;
|
x.MaterialNumber = x.MaterialNumber;
|
||||||
x.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.MaterialNumber);
|
x.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.MaterialNumber);
|
||||||
});
|
});
|
||||||
response.TotalQty = response.Details.Sum(x=>x.Qty);
|
response.TotalQty = response.Details.Sum(x => x.Qty);
|
||||||
}
|
}
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,7 +191,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<BoxInventory> Get(int id)
|
public async Task<BoxInventory> Get(int id)
|
||||||
{
|
{
|
||||||
return await _context.BoxInventory.Include(x => x.Details).Where(x => x.BoxId== id).FirstOrDefaultAsync();
|
return await _context.BoxInventory.Include(x => x.Details).Where(x => x.BoxId == id).FirstOrDefaultAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -245,7 +240,7 @@ namespace WMS.Web.Repositories
|
|||||||
List<int> list = entitys.Select(s => s.Id).ToList();
|
List<int> list = entitys.Select(s => s.Id).ToList();
|
||||||
var res = await _context.BoxInventory.Include(x => x.Details).Where(f => list.Contains(f.Id)).ToListAsync();
|
var res = await _context.BoxInventory.Include(x => x.Details).Where(f => list.Contains(f.Id)).ToListAsync();
|
||||||
_mapper.Map(entitys, res);
|
_mapper.Map(entitys, res);
|
||||||
var tt= await _context.SaveChangesAsync();
|
var tt = await _context.SaveChangesAsync();
|
||||||
if (_transaction != null)
|
if (_transaction != null)
|
||||||
_transaction.Commit();
|
_transaction.Commit();
|
||||||
}
|
}
|
||||||
@@ -296,7 +291,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<(object obj, int total)> GetListField(BoxInventoryQueryRequest dto, int companyId)
|
public async Task<(object obj, int total)> GetListField(BoxInventoryQueryRequest dto, int companyId)
|
||||||
{
|
{
|
||||||
return await GetPagedList(dto,companyId);
|
return await GetPagedList(dto, companyId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,10 +57,11 @@ namespace WMS.Web.Repositories
|
|||||||
if (materials_result.IsSuccess)
|
if (materials_result.IsSuccess)
|
||||||
materials = materials_result.Data.ToList();
|
materials = materials_result.Data.ToList();
|
||||||
|
|
||||||
|
List<string> materialNumbs = new List<string>();
|
||||||
|
|
||||||
//物料集合;模糊查询后的物料集合
|
//物料集合;模糊查询后的物料集合
|
||||||
if (!string.IsNullOrEmpty(dto.Material))
|
if (!string.IsNullOrEmpty(dto.Material))
|
||||||
materials = materials.Where(w => w.MaterialNumber.Contains(dto.Material) || w.MaterialName.Contains(dto.Material) || w.Specifications.Contains(dto.Material)).ToList();
|
materialNumbs = materials.Where(w => w.MaterialNumber.Contains(dto.Material) || w.MaterialName.Contains(dto.Material) || w.Specifications.Contains(dto.Material)).Select(x => x.MaterialNumber).ToList();
|
||||||
|
|
||||||
if (companyId == 0)
|
if (companyId == 0)
|
||||||
companyId = _loginRepositories.CompanyId;
|
companyId = _loginRepositories.CompanyId;
|
||||||
@@ -110,17 +111,10 @@ namespace WMS.Web.Repositories
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<string> mNumber = new List<string>();
|
|
||||||
//物料ID在模糊后的物料
|
//物料ID在模糊后的物料
|
||||||
if (!string.IsNullOrEmpty(dto.Material))
|
if (!string.IsNullOrEmpty(dto.Material))
|
||||||
{
|
{
|
||||||
if (materials != null)
|
query = query.Where(w => materialNumbs.Contains(w.order.MaterialNumber));
|
||||||
mNumber = materials.Where(w => w.MaterialNumber.Contains(dto.Material)
|
|
||||||
|| w.MaterialName.Contains(dto.Material)
|
|
||||||
|| w.Specifications.Contains(dto.Material)
|
|
||||||
).Select(s => s.MaterialNumber).ToList();
|
|
||||||
|
|
||||||
query = query.Where(w => mNumber.Contains(w.order.MaterialNumber));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(dto.Creator))
|
if (!string.IsNullOrEmpty(dto.Creator))
|
||||||
|
|||||||
@@ -260,12 +260,12 @@ namespace WMS.Web.Repositories
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="taskId"></param>
|
/// <param name="taskId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<ReceiveBoxResponse>> GetInstockBox(int taskId)
|
public async Task<List<ReceiveBoxResponse>> GetInstockBox(int taskId)
|
||||||
{
|
{
|
||||||
return await _context.InStockDetails.Where(x => x.TaskId == taskId).Select(x => new ReceiveBoxResponse()
|
return await _context.InStockDetails.Where(x => x.TaskId == taskId).Select(x => new ReceiveBoxResponse()
|
||||||
{
|
{
|
||||||
TaskId=x.TaskId,
|
TaskId = x.TaskId,
|
||||||
BoxId=x.BoxId
|
BoxId = x.BoxId
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -295,16 +295,17 @@ namespace WMS.Web.Repositories
|
|||||||
if (suppliers_result.IsSuccess)
|
if (suppliers_result.IsSuccess)
|
||||||
suppliers = suppliers_result.Data.ToList();
|
suppliers = suppliers_result.Data.ToList();
|
||||||
|
|
||||||
|
List<string> materialNumbs = new List<string>();
|
||||||
|
|
||||||
//物料集合;模糊查询后的物料集合
|
//物料集合;模糊查询后的物料集合
|
||||||
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
||||||
{
|
{
|
||||||
if (materials.Count != 0)
|
if (materials.Count != 0)
|
||||||
{
|
{
|
||||||
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|
materialNumbs = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|
||||||
|| w.MaterialName.Contains(dto.MaterialNumber)
|
|| w.MaterialName.Contains(dto.MaterialNumber)
|
||||||
|| w.Specifications.Contains(dto.MaterialNumber)
|
|| w.Specifications.Contains(dto.MaterialNumber)
|
||||||
).ToList();
|
).Select(x => x.MaterialNumber).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -329,11 +330,7 @@ namespace WMS.Web.Repositories
|
|||||||
//物料ID在模糊后的物料
|
//物料ID在模糊后的物料
|
||||||
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
||||||
{
|
{
|
||||||
if (materials != null && materials.Count != 0)
|
query = query.Where(w => materialNumbs.Contains(w.detail.MaterialNumber));
|
||||||
{
|
|
||||||
var mids = materials.Select(x => x.MaterialNumber).ToList();
|
|
||||||
query = query.Where(w => mids.Contains(w.detail.MaterialNumber));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(dto.Creator))
|
if (!string.IsNullOrEmpty(dto.Creator))
|
||||||
@@ -376,7 +373,7 @@ namespace WMS.Web.Repositories
|
|||||||
{
|
{
|
||||||
Id = s.order.Id,
|
Id = s.order.Id,
|
||||||
DetailsId = s.detail.Id,
|
DetailsId = s.detail.Id,
|
||||||
TaskId=s.detail.TaskId,
|
TaskId = s.detail.TaskId,
|
||||||
BillNo = s.order.BillNo,
|
BillNo = s.order.BillNo,
|
||||||
Type = s.order.Type.GetRemark(),
|
Type = s.order.Type.GetRemark(),
|
||||||
SourceBillNo = s.detail.SourceBillNo,
|
SourceBillNo = s.detail.SourceBillNo,
|
||||||
@@ -389,24 +386,24 @@ namespace WMS.Web.Repositories
|
|||||||
Qty = s.detail.Qty,
|
Qty = s.detail.Qty,
|
||||||
Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.order.CreatorId),
|
Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.order.CreatorId),
|
||||||
CreateTime = s.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
CreateTime = s.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||||
SuccessSync =(s.order.Type != InstockType.Purchase ? "--" : (s.order.SuccessSync == SyncStatus.Success ? "成功" : (s.order.SuccessSync == SyncStatus.SyncIng ? "同步中" : "失败"))),
|
SuccessSync = (s.order.Type != InstockType.Purchase ? "--" : (s.order.SuccessSync == SyncStatus.Success ? "成功" : (s.order.SuccessSync == SyncStatus.SyncIng ? "同步中" : "失败"))),
|
||||||
Remark = s.order.Remark
|
Remark = s.order.Remark
|
||||||
}).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
|
}).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
|
||||||
|
|
||||||
var taskIds= list.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
|
var taskIds = list.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
|
||||||
var taskList = await _context.InStockTask.Include(x=>x.Details).Where(x => taskIds.Contains(x.Id)).ToListAsync();
|
var taskList = await _context.InStockTask.Include(x => x.Details).Where(x => taskIds.Contains(x.Id)).ToListAsync();
|
||||||
|
|
||||||
if (taskList != null && taskList.Count != 0)
|
if (taskList != null && taskList.Count != 0)
|
||||||
{
|
{
|
||||||
var taskDetailsList= taskList.SelectMany(x => x.Details).Where(x=>x.AccruedQty<=0).ToList();
|
var taskDetailsList = taskList.SelectMany(x => x.Details).Where(x => x.AccruedQty <= 0).ToList();
|
||||||
list.ForEach(x =>
|
list.ForEach(x =>
|
||||||
{
|
{
|
||||||
var isHave= taskDetailsList.Where(t => t.MaterialNumber == x.MaterialNumber && t.Fid == x.TaskId).Any();
|
var isHave = taskDetailsList.Where(t => t.MaterialNumber == x.MaterialNumber && t.Fid == x.TaskId).Any();
|
||||||
if (isHave)
|
if (isHave)
|
||||||
x.SuccessSync = "--";
|
x.SuccessSync = "--";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return (list, total);
|
return (list, total);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -426,7 +423,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="taskIds"></param>
|
/// <param name="taskIds"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<InStockTotalDetails>> GetInStockTotalDetails(List<int> taskIds)
|
public async Task<List<InStockTotalDetails>> GetInStockTotalDetails(List<int> taskIds)
|
||||||
{
|
{
|
||||||
return await _context.InStockTotalDetails.Where(x => taskIds.Contains(x.TaskId)).ToListAsync();
|
return await _context.InStockTotalDetails.Where(x => taskIds.Contains(x.TaskId)).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<InStockTaskDetails>> GetDetailsList(List<int> ids)
|
public async Task<List<InStockTaskDetails>> GetDetailsList(List<int> ids)
|
||||||
{
|
{
|
||||||
var entitys = await _context.InStockTaskDetails
|
var entitys = await _context.InStockTaskDetails
|
||||||
.Where(f => ids.Contains(f.Id))
|
.Where(f => ids.Contains(f.Id))
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
return entitys;
|
return entitys;
|
||||||
@@ -154,7 +154,7 @@ namespace WMS.Web.Repositories
|
|||||||
if (suppliers_result.IsSuccess)
|
if (suppliers_result.IsSuccess)
|
||||||
suppliers = suppliers_result.Data.ToList();
|
suppliers = suppliers_result.Data.ToList();
|
||||||
|
|
||||||
var entity = await _context.InStockTask.Include(x=>x.Details).Where(x => x.Id == id).FirstOrDefaultAsync();
|
var entity = await _context.InStockTask.Include(x => x.Details).Where(x => x.Id == id).FirstOrDefaultAsync();
|
||||||
|
|
||||||
if (entity != null)
|
if (entity != null)
|
||||||
{
|
{
|
||||||
@@ -162,11 +162,11 @@ namespace WMS.Web.Repositories
|
|||||||
{
|
{
|
||||||
Id = entity.Id,
|
Id = entity.Id,
|
||||||
BillNo = entity.BillNo,
|
BillNo = entity.BillNo,
|
||||||
SaleBillNo= (string.Join(",", entity.Details.Select(x => x.SaleBillNo).ToList()).TrimEnd(',')),
|
SaleBillNo = (string.Join(",", entity.Details.Select(x => x.SaleBillNo).ToList()).TrimEnd(',')),
|
||||||
SourceBillNo = entity.SourceBillNo,
|
SourceBillNo = entity.SourceBillNo,
|
||||||
Status = entity.Status.GetRemark(),
|
Status = entity.Status.GetRemark(),
|
||||||
Type = entity.Type.GetRemark(),
|
Type = entity.Type.GetRemark(),
|
||||||
Supplier = _erpBasicDataExtendService.GetSupplierName(suppliers, entity.SupplierId??0),
|
Supplier = _erpBasicDataExtendService.GetSupplierName(suppliers, entity.SupplierId ?? 0),
|
||||||
Org = _erpBasicDataExtendService.GetOrgName(orgs, entity.OrgCode),
|
Org = _erpBasicDataExtendService.GetOrgName(orgs, entity.OrgCode),
|
||||||
CreateTime = entity.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")
|
CreateTime = entity.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")
|
||||||
};
|
};
|
||||||
@@ -178,14 +178,14 @@ namespace WMS.Web.Repositories
|
|||||||
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, box })
|
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, box })
|
||||||
.Where(x => x.box.TaskId == entity.Id).Select(x => new InStockTaskBoxInfoDto()
|
.Where(x => x.box.TaskId == entity.Id).Select(x => new InStockTaskBoxInfoDto()
|
||||||
{
|
{
|
||||||
BoxId=x.box.BoxId,
|
BoxId = x.box.BoxId,
|
||||||
BoxBillNo = x.box.BoxBillNo,
|
BoxBillNo = x.box.BoxBillNo,
|
||||||
MaterialNumber = x.detail.MaterialNumber,
|
MaterialNumber = x.detail.MaterialNumber,
|
||||||
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.detail.MaterialNumber),
|
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.detail.MaterialNumber),
|
||||||
ReceiveTime = x.box.CreateTime.HasValue ? "" : x.box.CreateTime.Value.ToString("yyyy-MM-dd HH:mm:ss"),
|
ReceiveTime = x.box.CreateTime.HasValue ? "" : x.box.CreateTime.Value.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||||
Receiver = x.box.ReceiverId.HasValue ? _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.box.ReceiverId.Value) : "",
|
Receiver = x.box.ReceiverId.HasValue ? _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.box.ReceiverId.Value) : "",
|
||||||
Qty = x.detail.ReceiveQty,
|
Qty = x.detail.ReceiveQty,
|
||||||
ReceiveQty=x.detail.ReceiveQty
|
ReceiveQty = x.detail.ReceiveQty
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
if (boxList != null && boxList.Count != 0)
|
if (boxList != null && boxList.Count != 0)
|
||||||
@@ -195,19 +195,20 @@ namespace WMS.Web.Repositories
|
|||||||
|
|
||||||
if (boxInstockList_details != null && boxInstockList_details.Count != 0)
|
if (boxInstockList_details != null && boxInstockList_details.Count != 0)
|
||||||
{
|
{
|
||||||
var instockOrder_ids= boxInstockList_details.GroupBy(x => x.Fid).Select(x => x.Key).ToList();
|
var instockOrder_ids = boxInstockList_details.GroupBy(x => x.Fid).Select(x => x.Key).ToList();
|
||||||
var instockOrder=await _context.Instock.Where(x => instockOrder_ids.Contains(x.Id)).ToListAsync();
|
var instockOrder = await _context.Instock.Where(x => instockOrder_ids.Contains(x.Id)).ToListAsync();
|
||||||
//var boxInstockList = boxInstockList_details.GroupBy(x => new { BoxId = x.BoxId, MaterialNumber = x.MaterialNumber }).
|
//var boxInstockList = boxInstockList_details.GroupBy(x => new { BoxId = x.BoxId, MaterialNumber = x.MaterialNumber }).
|
||||||
// Select(x => new { BoxId = x.Key.BoxId, MaterialNumber = x.Key.MaterialNumber, RealityQty = x.Sum(t => t.Qty) }).ToList();
|
// Select(x => new { BoxId = x.Key.BoxId, MaterialNumber = x.Key.MaterialNumber, RealityQty = x.Sum(t => t.Qty) }).ToList();
|
||||||
|
|
||||||
boxList.ForEach(x =>
|
boxList.ForEach(x =>
|
||||||
{
|
{
|
||||||
var currentInstock= boxInstockList_details.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).FirstOrDefault();
|
var currentInstock = boxInstockList_details.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).FirstOrDefault();
|
||||||
if (currentInstock != null) {
|
if (currentInstock != null)
|
||||||
var order= instockOrder.Where(o => o.Id == currentInstock.Fid).FirstOrDefault();
|
{
|
||||||
|
var order = instockOrder.Where(o => o.Id == currentInstock.Fid).FirstOrDefault();
|
||||||
x.RealityQty = currentInstock.Qty;
|
x.RealityQty = currentInstock.Qty;
|
||||||
x.Shelfer = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, (order == null ? 0 : order.CreatorId));
|
x.Shelfer = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, (order == null ? 0 : order.CreatorId));
|
||||||
x.ShelfTime= order == null ? "" : order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss");
|
x.ShelfTime = order == null ? "" : order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -221,7 +222,7 @@ namespace WMS.Web.Repositories
|
|||||||
x.SerialNumbers = (string.Join(",", serialNumbList.Where(x => x.MaterialNumber == x.MaterialNumber).Select(x => x.SerialNumber).ToList())).TrimEnd(',');
|
x.SerialNumbers = (string.Join(",", serialNumbList.Where(x => x.MaterialNumber == x.MaterialNumber).Select(x => x.SerialNumber).ToList())).TrimEnd(',');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -229,53 +230,54 @@ namespace WMS.Web.Repositories
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var boxList= await _context.InStockDetails
|
var boxList = await _context.InStockDetails
|
||||||
.GroupJoin(_context.Instock, det => det.Fid, ts => ts.Id, (detail, ts) => new { detail, ts })
|
.GroupJoin(_context.Instock, det => det.Fid, ts => ts.Id, (detail, ts) => new { detail, ts })
|
||||||
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, order) => new { p.detail, order })
|
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, order) => new { p.detail, order })
|
||||||
.GroupJoin(_context.Box, p => p.detail.BoxId, ts => ts.Id, (p, ts) => new { p.detail,p.order, ts })
|
.GroupJoin(_context.Box, p => p.detail.BoxId, ts => ts.Id, (p, ts) => new { p.detail, p.order, ts })
|
||||||
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, p.order,box })
|
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, p.order, box })
|
||||||
.Where(x => x.detail.TaskId == entity.Id).Select(x => new InStockTaskBoxInfoDto()
|
.Where(x => x.detail.TaskId == entity.Id).Select(x => new InStockTaskBoxInfoDto()
|
||||||
{
|
{
|
||||||
BoxId=x.box.Id,
|
BoxId = x.box.Id,
|
||||||
BoxBillNo = x.box.BoxBillNo,
|
BoxBillNo = x.box.BoxBillNo,
|
||||||
Method=x.order.Method.GetRemark(),
|
Method = x.order.Method.GetRemark(),
|
||||||
MethodForInt=(int)x.order.Method,
|
MethodForInt = (int)x.order.Method,
|
||||||
MaterialNumber = x.detail.MaterialNumber,
|
MaterialNumber = x.detail.MaterialNumber,
|
||||||
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.detail.MaterialNumber),
|
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.detail.MaterialNumber),
|
||||||
|
|
||||||
Qty=0,
|
Qty = 0,
|
||||||
RealityQty = x.detail.Qty,
|
RealityQty = x.detail.Qty,
|
||||||
ShelfTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
ShelfTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||||
Shelfer =_singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId),
|
Shelfer = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId),
|
||||||
|
|
||||||
ReceiveQty=x.detail.Qty,
|
ReceiveQty = x.detail.Qty,
|
||||||
Receiver= _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId),
|
Receiver = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId),
|
||||||
ReceiveTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
ReceiveTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||||
|
|
||||||
SerialNumbers= (string.Join(",", x.detail.SerialNumbers).TrimEnd(','))
|
SerialNumbers = (string.Join(",", x.detail.SerialNumbers).TrimEnd(','))
|
||||||
|
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
if (boxList != null && boxList.Count != 0)
|
if (boxList != null && boxList.Count != 0)
|
||||||
{
|
{
|
||||||
var boxIds= boxList.GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
|
var boxIds = boxList.GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
|
||||||
|
|
||||||
var boxdetails= await _context.BoxDetails
|
var boxdetails = await _context.BoxDetails
|
||||||
.GroupJoin(_context.Box, det => det.Fid, ts => ts.Id, (detail, ts) => new { detail, ts })
|
.GroupJoin(_context.Box, det => det.Fid, ts => ts.Id, (detail, ts) => new { detail, ts })
|
||||||
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, box })
|
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, box })
|
||||||
.Where(x => boxIds.Contains(x.box.Id)).Select(x=>new
|
.Where(x => boxIds.Contains(x.box.Id)).Select(x => new
|
||||||
{
|
{
|
||||||
BoxId=x.box.Id,
|
BoxId = x.box.Id,
|
||||||
MaterialNumber=x.detail.MaterialNumber,
|
MaterialNumber = x.detail.MaterialNumber,
|
||||||
Qty=x.detail.Qty
|
Qty = x.detail.Qty
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
if (boxdetails != null && boxdetails.Count != 0)
|
if (boxdetails != null && boxdetails.Count != 0)
|
||||||
{
|
{
|
||||||
boxList.ForEach(x =>
|
boxList.ForEach(x =>
|
||||||
{
|
{
|
||||||
var method = (InventoryInOutMethod)x.MethodForInt;
|
var method = (InventoryInOutMethod)x.MethodForInt;
|
||||||
if (method == InventoryInOutMethod.Box) {
|
if (method == InventoryInOutMethod.Box)
|
||||||
|
{
|
||||||
var currentBoxDet = boxdetails.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).FirstOrDefault();
|
var currentBoxDet = boxdetails.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).FirstOrDefault();
|
||||||
if (currentBoxDet != null)
|
if (currentBoxDet != null)
|
||||||
{
|
{
|
||||||
@@ -357,7 +359,7 @@ namespace WMS.Web.Repositories
|
|||||||
DetailsId = s.detail.Id,
|
DetailsId = s.detail.Id,
|
||||||
SupplierId = s.detail.SupplierId,
|
SupplierId = s.detail.SupplierId,
|
||||||
OrgId = s.detail.OrgId,
|
OrgId = s.detail.OrgId,
|
||||||
OrgCode=s.detail.OrgCode,
|
OrgCode = s.detail.OrgCode,
|
||||||
SourceBillNo = s.order.SourceBillNo,
|
SourceBillNo = s.order.SourceBillNo,
|
||||||
StockCode = s.detail.StockCode,
|
StockCode = s.detail.StockCode,
|
||||||
StockName = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, _loginRepositories.CompanyId, s.detail.StockCode + s.detail.OrgCode),
|
StockName = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, _loginRepositories.CompanyId, s.detail.StockCode + s.detail.OrgCode),
|
||||||
@@ -691,6 +693,7 @@ namespace WMS.Web.Repositories
|
|||||||
if (suppliers_result.IsSuccess)
|
if (suppliers_result.IsSuccess)
|
||||||
suppliers = suppliers_result.Data.ToList();
|
suppliers = suppliers_result.Data.ToList();
|
||||||
|
|
||||||
|
List<string> materialNumbs = new List<string>();
|
||||||
List<int> ids_Receiver = new List<int>();
|
List<int> ids_Receiver = new List<int>();
|
||||||
List<int> ids_Operator = new List<int>();
|
List<int> ids_Operator = new List<int>();
|
||||||
if (companyId == 0)
|
if (companyId == 0)
|
||||||
@@ -715,10 +718,10 @@ namespace WMS.Web.Repositories
|
|||||||
{
|
{
|
||||||
if (materials.Count != 0)
|
if (materials.Count != 0)
|
||||||
{
|
{
|
||||||
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|
materialNumbs = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|
||||||
|| w.MaterialName.Contains(dto.MaterialNumber)
|
|| w.MaterialName.Contains(dto.MaterialNumber)
|
||||||
|| w.Specifications.Contains(dto.MaterialNumber)
|
|| w.Specifications.Contains(dto.MaterialNumber)
|
||||||
).ToList();
|
).Select(x => x.MaterialNumber).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -733,11 +736,7 @@ namespace WMS.Web.Repositories
|
|||||||
//物料ID在模糊后的物料
|
//物料ID在模糊后的物料
|
||||||
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
||||||
{
|
{
|
||||||
if (materials != null && materials.Count != 0)
|
query = query.Where(w => materialNumbs.Contains(w.detail.MaterialNumber));
|
||||||
{
|
|
||||||
var mids = materials.Select(x => x.MaterialNumber).ToList();
|
|
||||||
query = query.Where(w => mids.Contains(w.detail.MaterialNumber));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(dto.Receiver))
|
if (!string.IsNullOrEmpty(dto.Receiver))
|
||||||
@@ -805,9 +804,9 @@ namespace WMS.Web.Repositories
|
|||||||
/// 获取明细
|
/// 获取明细
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<InStockTaskDetails>> GetNotSendErpDetails()
|
public async Task<List<InStockTaskDetails>> GetNotSendErpDetails()
|
||||||
{
|
{
|
||||||
return await _context.InStockTaskDetails.Where(x =>x.AccruedQty!=0 && x.IsHasSend != null && x.IsHasSend == false && !string.IsNullOrEmpty(x.SaleBillNo) && !string.IsNullOrEmpty(x.CustomerCode)).ToListAsync();
|
return await _context.InStockTaskDetails.Where(x => x.AccruedQty != 0 && x.IsHasSend != null && x.IsHasSend == false && !string.IsNullOrEmpty(x.SaleBillNo) && !string.IsNullOrEmpty(x.CustomerCode)).ToListAsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 库存相关-仓储
|
/// 库存相关-仓储
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class InventoryDetailsRepositories: IAllFielRepositories<InventoryDetailsQueryRequest>, IInventoryDetailsRepositories
|
public class InventoryDetailsRepositories : IAllFielRepositories<InventoryDetailsQueryRequest>, IInventoryDetailsRepositories
|
||||||
{
|
{
|
||||||
private readonly IMapper _mapper;
|
private readonly IMapper _mapper;
|
||||||
private readonly IServiceProvider _serviceProvider;
|
private readonly IServiceProvider _serviceProvider;
|
||||||
@@ -55,7 +55,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// <param name="dto"></param>
|
/// <param name="dto"></param>
|
||||||
/// <param name="companyId"></param>
|
/// <param name="companyId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<(List<InventoryDetailsQueryResponse> list,int total)> GetPagedList(InventoryDetailsQueryRequest dto, int companyId)
|
public async Task<(List<InventoryDetailsQueryResponse> list, int total)> GetPagedList(InventoryDetailsQueryRequest dto, int companyId)
|
||||||
{
|
{
|
||||||
//1.获取物料集合和组织集合
|
//1.获取物料集合和组织集合
|
||||||
var materials = new List<ErpMaterialDto>();
|
var materials = new List<ErpMaterialDto>();
|
||||||
@@ -63,15 +63,16 @@ namespace WMS.Web.Repositories
|
|||||||
if (materials_result.IsSuccess)
|
if (materials_result.IsSuccess)
|
||||||
materials = materials_result.Data.ToList();
|
materials = materials_result.Data.ToList();
|
||||||
|
|
||||||
|
List<string> materialNumbs = new List<string>();
|
||||||
//物料集合;模糊查询后的物料集合
|
//物料集合;模糊查询后的物料集合
|
||||||
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
||||||
{
|
{
|
||||||
if (materials.Count != 0)
|
if (materials.Count != 0)
|
||||||
{
|
{
|
||||||
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|
materialNumbs = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|
||||||
|| w.MaterialName.Contains(dto.MaterialNumber)
|
|| w.MaterialName.Contains(dto.MaterialNumber)
|
||||||
|| w.Specifications.Contains(dto.MaterialNumber)
|
|| w.Specifications.Contains(dto.MaterialNumber)
|
||||||
).ToList();
|
).Select(x => x.MaterialNumber).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,14 +85,11 @@ namespace WMS.Web.Repositories
|
|||||||
var query = _context.InventoryDetails
|
var query = _context.InventoryDetails
|
||||||
.Where(adv => 1 == 1);
|
.Where(adv => 1 == 1);
|
||||||
|
|
||||||
|
|
||||||
//物料ID在模糊后的物料
|
//物料ID在模糊后的物料
|
||||||
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
||||||
{
|
{
|
||||||
if (materials != null && materials.Count != 0)
|
query = query.Where(w => materialNumbs.Contains(w.MaterialNumber));
|
||||||
{
|
|
||||||
var mids = materials.Select(x => x.MaterialNumber).ToList();
|
|
||||||
query = query.Where(w => mids.Contains(w.MaterialNumber));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(dto.StockCode))
|
if (!string.IsNullOrEmpty(dto.StockCode))
|
||||||
@@ -104,24 +102,24 @@ namespace WMS.Web.Repositories
|
|||||||
query = query.Where(w => w.SubStockCode == dto.SubStockCode);
|
query = query.Where(w => w.SubStockCode == dto.SubStockCode);
|
||||||
|
|
||||||
if (dto.Qty.HasValue)
|
if (dto.Qty.HasValue)
|
||||||
query = query.Where(w => w.Qty == dto.Qty);
|
query = query.Where(w => w.Qty == dto.Qty);
|
||||||
|
|
||||||
int total = await query.CountAsync();
|
int total = await query.CountAsync();
|
||||||
|
|
||||||
var list = await query.Select(s => new InventoryDetailsQueryResponse()
|
var list = await query.Select(s => new InventoryDetailsQueryResponse()
|
||||||
{
|
{
|
||||||
Id=s.Id,
|
Id = s.Id,
|
||||||
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialNumber),
|
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialNumber),
|
||||||
MaterialNumber = s.MaterialNumber,
|
MaterialNumber = s.MaterialNumber,
|
||||||
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialNumber),
|
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialNumber),
|
||||||
Org= _erpBasicDataExtendService.GetOrgName(orgs, s.OrgCode),
|
Org = _erpBasicDataExtendService.GetOrgName(orgs, s.OrgCode),
|
||||||
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.StockCode + s.OrgCode),
|
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.StockCode + s.OrgCode),
|
||||||
Qty = s.Qty,
|
Qty = s.Qty,
|
||||||
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, s.SubStockCode + s.StockCode + s.OrgCode),
|
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, s.SubStockCode + s.StockCode + s.OrgCode),
|
||||||
Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.MaterialNumber),
|
Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.MaterialNumber),
|
||||||
}).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
|
}).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
|
||||||
|
|
||||||
return (list,total);
|
return (list, total);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -203,12 +201,12 @@ namespace WMS.Web.Repositories
|
|||||||
/// <param name="subStockCodes"></param>
|
/// <param name="subStockCodes"></param>
|
||||||
/// <param name="orgCodes"></param>
|
/// <param name="orgCodes"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<InventoryDetails>> GetListBy(List<string> materialNumbers, List<string> stockCodes, List<string> subStockCodes, List<string> orgCodes)
|
public async Task<List<InventoryDetails>> GetListBy(List<string> materialNumbers, List<string> stockCodes, List<string> subStockCodes, List<string> orgCodes)
|
||||||
{
|
{
|
||||||
return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) &&
|
return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) &&
|
||||||
stockCodes.Contains(x.StockCode) &&
|
stockCodes.Contains(x.StockCode) &&
|
||||||
orgCodes.Contains(x.OrgCode) &&
|
orgCodes.Contains(x.OrgCode) &&
|
||||||
subStockCodes.Contains(x.SubStockCode) ).ToListAsync();
|
subStockCodes.Contains(x.SubStockCode)).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -219,7 +217,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// <param name="subStockIds"></param>
|
/// <param name="subStockIds"></param>
|
||||||
/// <param name="orgCodes"></param>
|
/// <param name="orgCodes"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<InventoryDetails>> GetListBy(List<string> materialNumbers, List<string> stockCodes,List<string> orgCodes)
|
public async Task<List<InventoryDetails>> GetListBy(List<string> materialNumbers, List<string> stockCodes, List<string> orgCodes)
|
||||||
{
|
{
|
||||||
return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) &&
|
return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) &&
|
||||||
stockCodes.Contains(x.StockCode) &&
|
stockCodes.Contains(x.StockCode) &&
|
||||||
@@ -233,16 +231,16 @@ namespace WMS.Web.Repositories
|
|||||||
/// <param name="stockCodes"></param>
|
/// <param name="stockCodes"></param>
|
||||||
/// <param name="companyId"></param>
|
/// <param name="companyId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<MaterialSubStock>> GetMaterialSubStocks(List<string> materialNumbers, List<string> stockCodes, List<string> orgCodes, int companyId)
|
public async Task<List<MaterialSubStock>> GetMaterialSubStocks(List<string> materialNumbers, List<string> stockCodes, List<string> orgCodes, int companyId)
|
||||||
{
|
{
|
||||||
return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) &&
|
return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) &&
|
||||||
stockCodes.Contains(x.StockCode) &&
|
stockCodes.Contains(x.StockCode) &&
|
||||||
orgCodes.Contains(x.OrgCode)).Select(x=>new MaterialSubStock()
|
orgCodes.Contains(x.OrgCode)).Select(x => new MaterialSubStock()
|
||||||
{
|
{
|
||||||
MaterialNumber=x.MaterialNumber,
|
MaterialNumber = x.MaterialNumber,
|
||||||
SubStockCode=x.SubStockCode,
|
SubStockCode = x.SubStockCode,
|
||||||
OrgCode=x.OrgCode,
|
OrgCode = x.OrgCode,
|
||||||
StockCode=x.StockCode,
|
StockCode = x.StockCode,
|
||||||
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, x.SubStockCode + x.StockCode + x.OrgCode),
|
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, x.SubStockCode + x.StockCode + x.OrgCode),
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,16 +68,16 @@ namespace WMS.Web.Repositories
|
|||||||
var orgs_result = await _erpService.BillQueryForOrg();
|
var orgs_result = await _erpService.BillQueryForOrg();
|
||||||
if (orgs_result.IsSuccess)
|
if (orgs_result.IsSuccess)
|
||||||
orgs = orgs_result.Data.ToList();
|
orgs = orgs_result.Data.ToList();
|
||||||
|
List<string> materialNumbs = new List<string>();
|
||||||
//物料集合;模糊查询后的物料集合
|
//物料集合;模糊查询后的物料集合
|
||||||
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
||||||
{
|
{
|
||||||
if (materials.Count != 0)
|
if (materials.Count != 0)
|
||||||
{
|
{
|
||||||
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|
materialNumbs = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|
||||||
|| w.MaterialName.Contains(dto.MaterialNumber)
|
|| w.MaterialName.Contains(dto.MaterialNumber)
|
||||||
|| w.Specifications.Contains(dto.MaterialNumber)
|
|| w.Specifications.Contains(dto.MaterialNumber)
|
||||||
).ToList();
|
).Select(x => x.MaterialNumber).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,11 +87,7 @@ namespace WMS.Web.Repositories
|
|||||||
//物料ID在模糊后的物料
|
//物料ID在模糊后的物料
|
||||||
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
||||||
{
|
{
|
||||||
if (materials != null && materials.Count != 0)
|
query = query.Where(w => materialNumbs.Contains(w.MaterialNumber));
|
||||||
{
|
|
||||||
var mids = materials.Select(x => x.MaterialNumber).ToList();
|
|
||||||
query = query.Where(w => mids.Contains(w.MaterialNumber));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(dto.StockCode))
|
if (!string.IsNullOrEmpty(dto.StockCode))
|
||||||
|
|||||||
Reference in New Issue
Block a user