From 5d20813a8a13cba9334dd7ba74f8b56c504aad61 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Mon, 1 Apr 2024 15:18:51 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BoxInventoryRepositories.cs | 51 +++++----- .../BoxMarkRepositories.cs | 12 +-- .../InStockRepositories.cs | 39 ++++---- .../InStockTaskRepositories.cs | 93 +++++++++---------- .../InventoryDetailsRepositories.cs | 48 +++++----- .../InventoryInOutDetailsRepositories.cs | 12 +-- 6 files changed, 117 insertions(+), 138 deletions(-) diff --git a/src/WMS.Web.Repositories/BoxInventoryRepositories.cs b/src/WMS.Web.Repositories/BoxInventoryRepositories.cs index 66afda78..f9e00df7 100644 --- a/src/WMS.Web.Repositories/BoxInventoryRepositories.cs +++ b/src/WMS.Web.Repositories/BoxInventoryRepositories.cs @@ -23,7 +23,7 @@ namespace WMS.Web.Repositories /// /// 箱库存-仓储 /// - public class BoxInventoryRepositories: IAllFielRepositories, IBoxInventoryRepositories + public class BoxInventoryRepositories : IAllFielRepositories, IBoxInventoryRepositories { private readonly IMapper _mapper; private readonly IServiceProvider _serviceProvider; @@ -60,7 +60,7 @@ namespace WMS.Web.Repositories /// /// /// - public async Task<(List list, int total)> GetPagedList(BoxInventoryQueryRequest dto, int companyId) + public async Task<(List list, int total)> GetPagedList(BoxInventoryQueryRequest dto, int companyId) { //1.获取物料集合和组织集合 var materials = new List(); @@ -68,15 +68,16 @@ namespace WMS.Web.Repositories if (materials_result.IsSuccess) materials = materials_result.Data.ToList(); + List materialNumbs = new List(); //物料集合;模糊查询后的物料集合 if (!string.IsNullOrEmpty(dto.MaterialNumber)) { 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.Specifications.Contains(dto.MaterialNumber) - ).ToList(); + ).Select(x => x.MaterialNumber).ToList(); } } @@ -89,16 +90,16 @@ namespace WMS.Web.Repositories var query = _context.BoxInventoryDetails .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 }) - .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 }) - .Where(adv => 1 == 1 && adv.detail.Qty!=0 ); + .Where(adv => 1 == 1 && adv.detail.Qty != 0); if (!string.IsNullOrEmpty(dto.BoxBillNo)) query = query.Where(w => EF.Functions.Like(w.box.BoxBillNo, "%" + dto.BoxBillNo + "%")); 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]); } @@ -108,14 +109,8 @@ namespace WMS.Web.Repositories //物料ID在模糊后的物料 if (!string.IsNullOrEmpty(dto.MaterialNumber)) { - if (materials != null && materials.Count != 0) - { - var mids = materials.Select(x => x.MaterialNumber).ToList(); - query = query.Where(w => mids.Contains(w.detail.MaterialNumber)); - } + query = query.Where(w => materialNumbs.Contains(w.detail.MaterialNumber)); } - var tt = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, "wmsCK0213" + "CK001" + "101"); - _logger.LogInformation("箱库存列表:"+tt+"公司ID:"+companyId); int total = await query.CountAsync(); var list = await query.Select(s => new BoxInventoryQueryResponse() @@ -126,14 +121,14 @@ namespace WMS.Web.Repositories MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber), MaterialNumber = 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), - SerialNumbers =(string.Join(",",s.detail.SerialNumbers)).TrimEnd(','), + SerialNumbers = (string.Join(",", s.detail.SerialNumbers)).TrimEnd(','), Org = _erpBasicDataExtendService.GetOrgName(orgs, s.order.OrgCode), Qty = s.detail.Qty, }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); - - return (list,total); + + return (list, total); } /// @@ -150,26 +145,26 @@ namespace WMS.Web.Repositories 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 }) - .SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.boxinvent, box }) - .Where(x => 1 == 1 && x.box.BoxBillNo==boxBillNo).Select(x=>x.boxinvent).FirstOrDefaultAsync(); + .SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.boxinvent, box }) + .Where(x => 1 == 1 && x.box.BoxBillNo == boxBillNo).Select(x => x.boxinvent).FirstOrDefaultAsync(); var response = _mapper.Map(entity); if (response != null) { 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>(entity.Details); response.Details.ForEach(x => { x.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, x.MaterialNumber); - x.MaterialNumber = x.MaterialNumber; + x.MaterialNumber = 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; } @@ -196,7 +191,7 @@ namespace WMS.Web.Repositories /// public async Task 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(); } /// @@ -245,7 +240,7 @@ namespace WMS.Web.Repositories List list = entitys.Select(s => s.Id).ToList(); var res = await _context.BoxInventory.Include(x => x.Details).Where(f => list.Contains(f.Id)).ToListAsync(); _mapper.Map(entitys, res); - var tt= await _context.SaveChangesAsync(); + var tt = await _context.SaveChangesAsync(); if (_transaction != null) _transaction.Commit(); } @@ -296,7 +291,7 @@ namespace WMS.Web.Repositories /// public async Task<(object obj, int total)> GetListField(BoxInventoryQueryRequest dto, int companyId) { - return await GetPagedList(dto,companyId); + return await GetPagedList(dto, companyId); } } } diff --git a/src/WMS.Web.Repositories/BoxMarkRepositories.cs b/src/WMS.Web.Repositories/BoxMarkRepositories.cs index 2d229ae9..bd1072de 100644 --- a/src/WMS.Web.Repositories/BoxMarkRepositories.cs +++ b/src/WMS.Web.Repositories/BoxMarkRepositories.cs @@ -57,10 +57,11 @@ namespace WMS.Web.Repositories if (materials_result.IsSuccess) materials = materials_result.Data.ToList(); + List materialNumbs = new List(); //物料集合;模糊查询后的物料集合 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) companyId = _loginRepositories.CompanyId; @@ -110,17 +111,10 @@ namespace WMS.Web.Repositories } } - List mNumber = new List(); //物料ID在模糊后的物料 if (!string.IsNullOrEmpty(dto.Material)) { - if (materials != null) - 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)); + query = query.Where(w => materialNumbs.Contains(w.order.MaterialNumber)); } if (!string.IsNullOrEmpty(dto.Creator)) diff --git a/src/WMS.Web.Repositories/InStockRepositories.cs b/src/WMS.Web.Repositories/InStockRepositories.cs index 173acd90..73256071 100644 --- a/src/WMS.Web.Repositories/InStockRepositories.cs +++ b/src/WMS.Web.Repositories/InStockRepositories.cs @@ -260,12 +260,12 @@ namespace WMS.Web.Repositories /// /// /// - public async Task> GetInstockBox(int taskId) + public async Task> 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, - BoxId=x.BoxId + TaskId = x.TaskId, + BoxId = x.BoxId }).ToListAsync(); } @@ -295,16 +295,17 @@ namespace WMS.Web.Repositories if (suppliers_result.IsSuccess) suppliers = suppliers_result.Data.ToList(); + List materialNumbs = new List(); //物料集合;模糊查询后的物料集合 if (!string.IsNullOrEmpty(dto.MaterialNumber)) { 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.Specifications.Contains(dto.MaterialNumber) - ).ToList(); + ).Select(x => x.MaterialNumber).ToList(); } } @@ -329,11 +330,7 @@ namespace WMS.Web.Repositories //物料ID在模糊后的物料 if (!string.IsNullOrEmpty(dto.MaterialNumber)) { - if (materials != null && materials.Count != 0) - { - var mids = materials.Select(x => x.MaterialNumber).ToList(); - query = query.Where(w => mids.Contains(w.detail.MaterialNumber)); - } + query = query.Where(w => materialNumbs.Contains(w.detail.MaterialNumber)); } if (!string.IsNullOrEmpty(dto.Creator)) @@ -376,7 +373,7 @@ namespace WMS.Web.Repositories { Id = s.order.Id, DetailsId = s.detail.Id, - TaskId=s.detail.TaskId, + TaskId = s.detail.TaskId, BillNo = s.order.BillNo, Type = s.order.Type.GetRemark(), SourceBillNo = s.detail.SourceBillNo, @@ -389,24 +386,24 @@ namespace WMS.Web.Repositories Qty = s.detail.Qty, Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.order.CreatorId), 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 }).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 taskList = await _context.InStockTask.Include(x=>x.Details).Where(x => taskIds.Contains(x.Id)).ToListAsync(); + 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(); - 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(); - list.ForEach(x => + var taskDetailsList = taskList.SelectMany(x => x.Details).Where(x => x.AccruedQty <= 0).ToList(); + 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) x.SuccessSync = "--"; }); } - + return (list, total); } @@ -426,7 +423,7 @@ namespace WMS.Web.Repositories /// /// /// - public async Task> GetInStockTotalDetails(List taskIds) + public async Task> GetInStockTotalDetails(List taskIds) { return await _context.InStockTotalDetails.Where(x => taskIds.Contains(x.TaskId)).ToListAsync(); } diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs index fc8dba10..d5870654 100644 --- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -107,7 +107,7 @@ namespace WMS.Web.Repositories /// public async Task> GetDetailsList(List ids) { - var entitys = await _context.InStockTaskDetails + var entitys = await _context.InStockTaskDetails .Where(f => ids.Contains(f.Id)) .ToListAsync(); return entitys; @@ -154,7 +154,7 @@ namespace WMS.Web.Repositories if (suppliers_result.IsSuccess) 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) { @@ -162,11 +162,11 @@ namespace WMS.Web.Repositories { Id = entity.Id, BillNo = entity.BillNo, - SaleBillNo= (string.Join(",", entity.Details.Select(x => x.SaleBillNo).ToList()).TrimEnd(',')), - SourceBillNo = entity.SourceBillNo, + SaleBillNo = (string.Join(",", entity.Details.Select(x => x.SaleBillNo).ToList()).TrimEnd(',')), + SourceBillNo = entity.SourceBillNo, Status = entity.Status.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), 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 }) .Where(x => x.box.TaskId == entity.Id).Select(x => new InStockTaskBoxInfoDto() { - BoxId=x.box.BoxId, + BoxId = x.box.BoxId, BoxBillNo = x.box.BoxBillNo, MaterialNumber = 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"), Receiver = x.box.ReceiverId.HasValue ? _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.box.ReceiverId.Value) : "", Qty = x.detail.ReceiveQty, - ReceiveQty=x.detail.ReceiveQty + ReceiveQty = x.detail.ReceiveQty }).ToListAsync(); if (boxList != null && boxList.Count != 0) @@ -195,19 +195,20 @@ namespace WMS.Web.Repositories if (boxInstockList_details != null && boxInstockList_details.Count != 0) { - 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_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 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(); - boxList.ForEach(x => + boxList.ForEach(x => { - var currentInstock= boxInstockList_details.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).FirstOrDefault(); - if (currentInstock != null) { - var order= instockOrder.Where(o => o.Id == currentInstock.Fid).FirstOrDefault(); + var currentInstock = boxInstockList_details.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).FirstOrDefault(); + if (currentInstock != null) + { + var order = instockOrder.Where(o => o.Id == currentInstock.Fid).FirstOrDefault(); x.RealityQty = currentInstock.Qty; 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(','); }); - + } @@ -229,53 +230,54 @@ namespace WMS.Web.Repositories } 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 }) .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 }) - .SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, p.order,box }) + .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 }) .Where(x => x.detail.TaskId == entity.Id).Select(x => new InStockTaskBoxInfoDto() { - BoxId=x.box.Id, + BoxId = x.box.Id, BoxBillNo = x.box.BoxBillNo, - Method=x.order.Method.GetRemark(), - MethodForInt=(int)x.order.Method, + Method = x.order.Method.GetRemark(), + MethodForInt = (int)x.order.Method, MaterialNumber = x.detail.MaterialNumber, Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.detail.MaterialNumber), - Qty=0, + Qty = 0, RealityQty = x.detail.Qty, ShelfTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), - Shelfer =_singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId), - - ReceiveQty=x.detail.Qty, - Receiver= _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId), + Shelfer = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId), + + ReceiveQty = x.detail.Qty, + Receiver = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId), 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(); - 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 }) .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, - MaterialNumber=x.detail.MaterialNumber, - Qty=x.detail.Qty + BoxId = x.box.Id, + MaterialNumber = x.detail.MaterialNumber, + Qty = x.detail.Qty }).ToListAsync(); - if (boxdetails != null && boxdetails.Count != 0) + if (boxdetails != null && boxdetails.Count != 0) { - boxList.ForEach(x => + boxList.ForEach(x => { 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(); if (currentBoxDet != null) { @@ -357,7 +359,7 @@ namespace WMS.Web.Repositories DetailsId = s.detail.Id, SupplierId = s.detail.SupplierId, OrgId = s.detail.OrgId, - OrgCode=s.detail.OrgCode, + OrgCode = s.detail.OrgCode, SourceBillNo = s.order.SourceBillNo, StockCode = s.detail.StockCode, 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) suppliers = suppliers_result.Data.ToList(); + List materialNumbs = new List(); List ids_Receiver = new List(); List ids_Operator = new List(); if (companyId == 0) @@ -715,10 +718,10 @@ namespace WMS.Web.Repositories { 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.Specifications.Contains(dto.MaterialNumber) - ).ToList(); + ).Select(x => x.MaterialNumber).ToList(); } } @@ -733,11 +736,7 @@ namespace WMS.Web.Repositories //物料ID在模糊后的物料 if (!string.IsNullOrEmpty(dto.MaterialNumber)) { - if (materials != null && materials.Count != 0) - { - var mids = materials.Select(x => x.MaterialNumber).ToList(); - query = query.Where(w => mids.Contains(w.detail.MaterialNumber)); - } + query = query.Where(w => materialNumbs.Contains(w.detail.MaterialNumber)); } if (!string.IsNullOrEmpty(dto.Receiver)) @@ -805,9 +804,9 @@ namespace WMS.Web.Repositories /// 获取明细 /// /// - public async Task> GetNotSendErpDetails() + public async Task> 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(); } } } diff --git a/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs b/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs index 598bcef8..6f14bc7c 100644 --- a/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs +++ b/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs @@ -22,7 +22,7 @@ namespace WMS.Web.Repositories /// /// 库存相关-仓储 /// - public class InventoryDetailsRepositories: IAllFielRepositories, IInventoryDetailsRepositories + public class InventoryDetailsRepositories : IAllFielRepositories, IInventoryDetailsRepositories { private readonly IMapper _mapper; private readonly IServiceProvider _serviceProvider; @@ -55,7 +55,7 @@ namespace WMS.Web.Repositories /// /// /// - public async Task<(List list,int total)> GetPagedList(InventoryDetailsQueryRequest dto, int companyId) + public async Task<(List list, int total)> GetPagedList(InventoryDetailsQueryRequest dto, int companyId) { //1.获取物料集合和组织集合 var materials = new List(); @@ -63,15 +63,16 @@ namespace WMS.Web.Repositories if (materials_result.IsSuccess) materials = materials_result.Data.ToList(); + List materialNumbs = new List(); //物料集合;模糊查询后的物料集合 if (!string.IsNullOrEmpty(dto.MaterialNumber)) { 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.Specifications.Contains(dto.MaterialNumber) - ).ToList(); + ).Select(x => x.MaterialNumber).ToList(); } } @@ -84,14 +85,11 @@ namespace WMS.Web.Repositories var query = _context.InventoryDetails .Where(adv => 1 == 1); + //物料ID在模糊后的物料 if (!string.IsNullOrEmpty(dto.MaterialNumber)) { - if (materials != null && materials.Count != 0) - { - var mids = materials.Select(x => x.MaterialNumber).ToList(); - query = query.Where(w => mids.Contains(w.MaterialNumber)); - } + query = query.Where(w => materialNumbs.Contains(w.MaterialNumber)); } if (!string.IsNullOrEmpty(dto.StockCode)) @@ -104,24 +102,24 @@ namespace WMS.Web.Repositories query = query.Where(w => w.SubStockCode == dto.SubStockCode); if (dto.Qty.HasValue) - query = query.Where(w => w.Qty == dto.Qty); - - int total = await query.CountAsync(); + query = query.Where(w => w.Qty == dto.Qty); + + int total = await query.CountAsync(); var list = await query.Select(s => new InventoryDetailsQueryResponse() { - Id=s.Id, + Id = s.Id, MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialNumber), - MaterialNumber = s.MaterialNumber, + MaterialNumber = 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), Qty = s.Qty, SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, s.SubStockCode + s.StockCode + s.OrgCode), Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.MaterialNumber), }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); - return (list,total); + return (list, total); } /// @@ -203,12 +201,12 @@ namespace WMS.Web.Repositories /// /// /// - public async Task> GetListBy(List materialNumbers, List stockCodes, List subStockCodes, List orgCodes) + public async Task> GetListBy(List materialNumbers, List stockCodes, List subStockCodes, List orgCodes) { return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) && stockCodes.Contains(x.StockCode) && orgCodes.Contains(x.OrgCode) && - subStockCodes.Contains(x.SubStockCode) ).ToListAsync(); + subStockCodes.Contains(x.SubStockCode)).ToListAsync(); } /// @@ -219,7 +217,7 @@ namespace WMS.Web.Repositories /// /// /// - public async Task> GetListBy(List materialNumbers, List stockCodes,List orgCodes) + public async Task> GetListBy(List materialNumbers, List stockCodes, List orgCodes) { return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) && stockCodes.Contains(x.StockCode) && @@ -233,16 +231,16 @@ namespace WMS.Web.Repositories /// /// /// - public async Task> GetMaterialSubStocks(List materialNumbers, List stockCodes, List orgCodes, int companyId) + public async Task> GetMaterialSubStocks(List materialNumbers, List stockCodes, List orgCodes, int companyId) { return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) && stockCodes.Contains(x.StockCode) && - orgCodes.Contains(x.OrgCode)).Select(x=>new MaterialSubStock() + orgCodes.Contains(x.OrgCode)).Select(x => new MaterialSubStock() { - MaterialNumber=x.MaterialNumber, - SubStockCode=x.SubStockCode, - OrgCode=x.OrgCode, - StockCode=x.StockCode, + MaterialNumber = x.MaterialNumber, + SubStockCode = x.SubStockCode, + OrgCode = x.OrgCode, + StockCode = x.StockCode, SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, x.SubStockCode + x.StockCode + x.OrgCode), }).ToListAsync(); } diff --git a/src/WMS.Web.Repositories/InventoryInOutDetailsRepositories.cs b/src/WMS.Web.Repositories/InventoryInOutDetailsRepositories.cs index 348b8081..217abb80 100644 --- a/src/WMS.Web.Repositories/InventoryInOutDetailsRepositories.cs +++ b/src/WMS.Web.Repositories/InventoryInOutDetailsRepositories.cs @@ -68,16 +68,16 @@ namespace WMS.Web.Repositories var orgs_result = await _erpService.BillQueryForOrg(); if (orgs_result.IsSuccess) orgs = orgs_result.Data.ToList(); - + List materialNumbs = new List(); //物料集合;模糊查询后的物料集合 if (!string.IsNullOrEmpty(dto.MaterialNumber)) { 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.Specifications.Contains(dto.MaterialNumber) - ).ToList(); + ).Select(x => x.MaterialNumber).ToList(); } } @@ -87,11 +87,7 @@ namespace WMS.Web.Repositories //物料ID在模糊后的物料 if (!string.IsNullOrEmpty(dto.MaterialNumber)) { - if (materials != null && materials.Count != 0) - { - var mids = materials.Select(x => x.MaterialNumber).ToList(); - query = query.Where(w => mids.Contains(w.MaterialNumber)); - } + query = query.Where(w => materialNumbs.Contains(w.MaterialNumber)); } if (!string.IsNullOrEmpty(dto.StockCode))