From a23f4d86c588a3fa0bc23e5252bc1ddd1f5a1787 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期三, 08 一月 2025 23:19:36 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs | 146 ++++++++++++++++++++++++------------------------ 1 files changed, 73 insertions(+), 73 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs" index a843426..5348412 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs" @@ -8,12 +8,14 @@ using System.Drawing.Printing; using System.Dynamic; using System.Linq; +using System.Linq.Expressions; using System.Reflection; using System.Text; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; +using WIDESEA_Core.Const; using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; using WIDESEA_Core.Utilities; @@ -37,84 +39,82 @@ public virtual PageGridData<StockViewDTO> GetPageData(PageDataOptions options) { + List<StockViewDTO> stockViewDTOs = new List<StockViewDTO>(); - //string where = options.ValidatePageOptions(typeof(StockViewDTO).GetProperties()); - //鑾峰彇鎺掑簭瀛楁 - //Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(typeof(StockViewDTO).GetProperties()); - //List<OrderByModel> orderByModels = new List<OrderByModel>(); - //foreach (var item in orderbyDic) - //{ - // OrderByModel orderByModel = new OrderByModel() - // { - // FieldName = item.Key, - // OrderByType = item.Value - // }; - // orderByModels.Add(orderByModel); - //} + string where = string.Empty; + ISugarQueryable<Dt_StockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfo>().Includes(x => x.Details); + if (!string.IsNullOrEmpty(options.Wheres)) + { + try + { + List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>(); + if (searchParametersList.Count > 0) + { + { + SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower()); + if (searchParameters != null) + { + sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value))); + } + } + + { + SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.BatchNo).FirstLetterToLower()); + if (searchParameters != null) + { + sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.BatchNo.Contains(searchParameters.Value))); + } + } + + } + + } + catch { } + } + + EntityProperties.ValidatePageOptions(options, ref sugarQueryable1); + + ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>(); + + EntityProperties.ValidatePageOptions(options, ref sugarQueryable); + + ISugarQueryable<StockViewDTO> list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode).Select((b, a) + => new StockViewDTO + { + LocationCode = b.LocationCode, + Column = a.Column, + CreateDate = b.CreateDate, + Creater = b.Creater, + Depth = a.Depth, + EnalbeStatus = a.EnableStatus, + Layer = a.Layer, + LocationName = a.LocationName, + LocationStatus = a.LocationStatus, + LocationType = a.LocationType, + Modifier = b.Modifier, + ModifyDate = b.ModifyDate, + PalletCode = b.PalletCode, + StockRemark = b.Remark, + RoadwayNo = a.RoadwayNo, + Row = a.Row, + StockId = b.Id, + StockStatus = b.StockStatus, + Details = b.Details, + }); + + int totalCount = 0; - ISugarQueryable<Dt_StockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfo>().Includes(x=>x.Details); - ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>(); - - List<StockViewDTO> list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode).Select((b, a) - => new StockViewDTO + stockViewDTOs = list.ToPageList(options.Page, options.Rows, ref totalCount); + + stockViewDTOs.ForEach(x => { - LocationCode = b.LocationCode, - Column = a.Column, - CreateDate = b.CreateDate, - Creater = b.Creater, - Depth = a.Depth, - EnalbeStatus = a.EnableStatus, - Layer = a.Layer, - LocationName = a.LocationName, - LocationStatus = a.LocationStatus, - LocationType = a.LocationType, - Modifier = b.Modifier, - ModifyDate = b.ModifyDate, - PalletCode = b.PalletCode, - StockRemark = b.Remark, - RoadwayNo = a.RoadwayNo, - Row = a.Row, - StockId = b.Id, - StockStatus = b.StockStatus, - Details = b.Details, - }).ToPageList(options.Page, options.Rows, ref totalCount); - list.ForEach(x => - { - x.MaterielCode = string.Join(",", x.Details.Select(x => x.MaterielCode).Distinct()); - x.BatchNo = string.Join(",", x.Details.Select(x => x.BatchNo).Distinct()); - } - ); - if (options.Wheres.IsNotEmptyOrNull()) - { - List<SearchParameters> searchParameters = options.Wheres.DeserializeObject<List<SearchParameters>>(); - foreach (var item in searchParameters) - { - switch (item.Name) - { - case "palletCode": - list = list.Where(x => x.PalletCode.Contains(item.Value)).ToList(); - break; - case "locationStatus": - List<int> locationStatus = item.Value.Split(",").Select(int.Parse).ToList(); - list = list.Where(x => locationStatus.Contains(x.LocationStatus)).ToList(); - break; - case "stockStatus": - List<int> stockStatus = item.Value.Split(",").Select(int.Parse).ToList(); - list = list.Where(x => stockStatus.Contains(x.StockStatus)).ToList(); - break; - case "materielCode": - list = list.Where(x => x.MaterielCode.Contains(item.Value)).ToList(); - break; - case "batchNo": - list=list.Where(x => x.BatchNo.Contains(item.Value)).ToList(); - break; - default: - break; - } - } + x.MaterielCode = string.Join(",", x.Details.Select(x => x.MaterielCode).Distinct()); + x.BatchNo = string.Join(",", x.Details.Select(x => x.BatchNo).Distinct()); } - return new PageGridData<StockViewDTO>(totalCount, list); + ); + + return new PageGridData<StockViewDTO>(totalCount, stockViewDTOs); } -- Gitblit v1.9.3