| | |
| | | { |
| | | try |
| | | { |
| | | List<StockViewDTO> stockViewDTOs = new List<StockViewDTO>(); |
| | | |
| | | 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) |
| | | if (searchParametersList?.Any() == true) |
| | | { |
| | | foreach (var param in searchParametersList) |
| | | { |
| | | SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower()); |
| | | if (searchParameters != null) |
| | | switch (param.Name) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value))); |
| | | } |
| | | } |
| | | case var name when name == nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower(): |
| | | if (!string.IsNullOrEmpty(param.Value?.ToString())) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1 |
| | | .Where(x => x.Details.Any(v => v.MaterielCode.Contains(param.Value.ToString()))); |
| | | } |
| | | break; |
| | | case var name when name == nameof(Dt_StockInfoDetail.BatchNo).FirstLetterToLower(): |
| | | if (!string.IsNullOrEmpty(param.Value?.ToString())) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1 |
| | | .Where(x => x.Details.Any(v => v.BatchNo.Contains(param.Value.ToString()))); |
| | | } |
| | | break; |
| | | |
| | | { |
| | | 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))); |
| | | } |
| | | } |
| | | { |
| | | SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfo.LocationCode).FirstLetterToLower()); |
| | | if (searchParameters != null) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.LocationCode == searchParameters.Value); |
| | | } |
| | | } |
| | | case var name when name == nameof(Dt_StockInfo.LocationCode).FirstLetterToLower(): |
| | | if (!string.IsNullOrEmpty(param.Value?.ToString())) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1 |
| | | .Where(x => x.LocationCode == param.Value.ToString()); |
| | | } |
| | | break; |
| | | |
| | | case var name when name == nameof(Dt_StockInfo.CreateDate).FirstLetterToLower(): |
| | | if (DateTime.TryParse(param.Value?.ToString(), out DateTime minDate)) |
| | | { |
| | | LinqExpressionType expressionType = param.DisplayType.GetLinqCondition(); |
| | | if(expressionType == LinqExpressionType.ThanOrEqual) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate >= minDate); |
| | | } |
| | | else if(expressionType == LinqExpressionType.LessThanOrEqual) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate <= minDate); |
| | | } |
| | | } |
| | | break; |
| | | case var name when name == nameof(Dt_StockInfoDetail.EffectiveDate).FirstLetterToLower(): |
| | | // åç«¯ä¼ éç忰鿝 yyyy-MM-dd æ ¼å¼ï¼å¦ "2025-05-08"ï¼ï¼ç´æ¥ä½ä¸ºå符串å¤ç |
| | | string effectiveDateStr = param.Value?.ToString().Trim(); |
| | | if (!string.IsNullOrEmpty(effectiveDateStr) && effectiveDateStr.Length == 10) |
| | | { |
| | | LinqExpressionType expressionType = param.DisplayType.GetLinqCondition(); |
| | | if (expressionType == LinqExpressionType.ThanOrEqual) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.Details |
| | | .Any(d =>!string.IsNullOrEmpty(d.EffectiveDate) && d.EffectiveDate.CompareTo(effectiveDateStr) >= 0)); |
| | | } |
| | | else if (expressionType == LinqExpressionType.LessThanOrEqual) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.Details |
| | | .Any(d =>!string.IsNullOrEmpty(d.EffectiveDate) && d.EffectiveDate.CompareTo(effectiveDateStr) <= 0)); |
| | | |
| | | |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | catch { } |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | |
| | | string whereSto = GetDataRole(typeof(Dt_StockInfo)); |
| | | sugarQueryable1 = sugarQueryable1.Where(whereSto); |
| | | |
| | | EntityProperties.ValidatePageOptions(options, ref sugarQueryable1); |
| | | |
| | | string whereLo = GetDataRole(typeof(Dt_LocationInfo)); |
| | | ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>().Where(whereLo); |
| | | |
| | | ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>() |
| | | .Where(whereLo); |
| | | EntityProperties.ValidatePageOptions(options, ref sugarQueryable); |
| | | |
| | | ISugarQueryable<StockViewDTO> list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode).Select((b, a) |
| | | => new StockViewDTO |
| | | ISugarQueryable<StockViewDTO> list = sugarQueryable1 |
| | | .InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode) |
| | | .Select((b, a) => new StockViewDTO |
| | | { |
| | | LocationCode = b.LocationCode, |
| | | Expirationlabel = b.Expirationlabel, |
| | | Column = a.Column, |
| | | WarehouseId = b.WarehouseId, |
| | | CreateDate = b.CreateDate, |
| | |
| | | Details = b.Details, |
| | | }); |
| | | |
| | | var pklist = sugarQueryable1.Where(b => b.LocationCode == "å¹³åºä½").Select(b => new StockViewDTO |
| | | { |
| | | LocationCode = b.LocationCode, |
| | | Column = 0, |
| | | WarehouseId = b.WarehouseId, |
| | | CreateDate = b.CreateDate, |
| | | Creater = b.Creater, |
| | | Depth = 0, |
| | | EnalbeStatus = EnableStatusEnum.Normal.ObjToInt(), |
| | | Layer = 0, |
| | | LocationName = "å¹³åºä½", |
| | | LocationStatus = LocationStatusEnum.InStock.ObjToInt(), |
| | | LocationType = LocationTypeEnum.Undefined.ObjToInt(), |
| | | Modifier = b.Modifier, |
| | | ModifyDate = b.ModifyDate, |
| | | PalletCode = b.PalletCode, |
| | | StockRemark = b.Remark, |
| | | RoadwayNo = "å¹³åº", |
| | | Row = 0, |
| | | StockId = b.Id, |
| | | StockStatus = b.StockStatus, |
| | | Details = b.Details, |
| | | }); |
| | | // å¹³åºä½æ°æ®æ¥è¯¢ |
| | | var pklist = sugarQueryable1 |
| | | .Where(b => b.LocationCode == "å¹³åºä½") |
| | | .Select(b => new StockViewDTO |
| | | { |
| | | LocationCode = b.LocationCode, |
| | | Column = 0, |
| | | WarehouseId = b.WarehouseId, |
| | | CreateDate = b.CreateDate, |
| | | Expirationlabel = b.Expirationlabel, |
| | | Creater = b.Creater, |
| | | Depth = 0, |
| | | EnalbeStatus = EnableStatusEnum.Normal.ObjToInt(), |
| | | Layer = 0, |
| | | LocationName = "å¹³åºä½", |
| | | LocationStatus = LocationStatusEnum.InStock.ObjToInt(), |
| | | LocationType = LocationTypeEnum.Undefined.ObjToInt(), |
| | | Modifier = b.Modifier, |
| | | ModifyDate = b.ModifyDate, |
| | | PalletCode = b.PalletCode, |
| | | StockRemark = b.Remark, |
| | | RoadwayNo = "å¹³åº", |
| | | Row = 0, |
| | | StockId = b.Id, |
| | | StockStatus = b.StockStatus, |
| | | Details = b.Details, |
| | | }); |
| | | |
| | | int totalCount = 0; |
| | | int pktotalCount = 0; |
| | | |
| | | stockViewDTOs = list.ToPageList(options.Page, options.Rows, ref totalCount); |
| | | var stockViewDTOs = list.ToPageList(options.Page, options.Rows, ref totalCount); |
| | | stockViewDTOs.AddRange(pklist.ToPageList(options.Page, options.Rows, ref pktotalCount)); |
| | | |
| | | stockViewDTOs.ForEach(x => |
| | | { |
| | | x.MaterielCode = string.Join(",", x.Details.Select(x => x.MaterielCode).Distinct()); |
| | | x.BatchNo = string.Join(",", x.Details.Select(x => x.BatchNo).Distinct()); |
| | | x.MaterielCode = string.Join(",", x.Details.Select(d => d.MaterielCode).Distinct()); |
| | | x.BatchNo = string.Join(",", x.Details.Select(d => d.BatchNo).Distinct()); |
| | | x.MaterielSpec = x.Details.FirstOrDefault()?.MaterielSpec ?? ""; |
| | | x.MaterielName = x.Details.FirstOrDefault()?.MaterielName ?? ""; |
| | | } |
| | | ); |
| | | }); |
| | | |
| | | return new PageGridData<StockViewDTO>(totalCount + pktotalCount, stockViewDTOs); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | } |
| | | return new PageGridData<StockViewDTO>(); |
| | | } |
| | | |
| | | |
| | | public virtual object GetDetailPage(PageDataOptions pageData) |
| | | { |
| | |
| | | try |
| | | { |
| | | List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>(); |
| | | if (searchParametersList.Count > 0) |
| | | if (searchParametersList?.Any() == true) |
| | | { |
| | | foreach (var param in searchParametersList) |
| | | { |
| | | SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower()); |
| | | if (searchParameters != null) |
| | | switch (param.Name) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value))); |
| | | case var name when name == nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower(): |
| | | if (!string.IsNullOrEmpty(param.Value?.ToString())) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1 |
| | | .Where(x => x.Details.Any(v => v.MaterielCode.Contains(param.Value.ToString()))); |
| | | } |
| | | break; |
| | | case var name when name == nameof(Dt_StockInfoDetail.BatchNo).FirstLetterToLower(): |
| | | if (!string.IsNullOrEmpty(param.Value?.ToString())) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1 |
| | | .Where(x => x.Details.Any(v => v.BatchNo.Contains(param.Value.ToString()))); |
| | | } |
| | | break; |
| | | |
| | | case var name when name == nameof(Dt_StockInfo.LocationCode).FirstLetterToLower(): |
| | | if (!string.IsNullOrEmpty(param.Value?.ToString())) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1 |
| | | .Where(x => x.LocationCode == param.Value.ToString()); |
| | | } |
| | | break; |
| | | |
| | | case var name when name == nameof(Dt_StockInfo.CreateDate).FirstLetterToLower(): |
| | | if (DateTime.TryParse(param.Value?.ToString(), out DateTime minDate)) |
| | | { |
| | | LinqExpressionType expressionType = param.DisplayType.GetLinqCondition(); |
| | | if (expressionType == LinqExpressionType.ThanOrEqual) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate >= minDate); |
| | | } |
| | | else if (expressionType == LinqExpressionType.LessThanOrEqual) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate <= minDate); |
| | | } |
| | | } |
| | | break; |
| | | case var name when name == nameof(Dt_StockInfoDetail.EffectiveDate).FirstLetterToLower(): |
| | | // åç«¯ä¼ éç忰鿝 yyyy-MM-dd æ ¼å¼ï¼å¦ "2025-05-08"ï¼ï¼ç´æ¥ä½ä¸ºå符串å¤ç |
| | | string effectiveDateStr = param.Value?.ToString().Trim(); |
| | | if (!string.IsNullOrEmpty(effectiveDateStr) && effectiveDateStr.Length == 10) |
| | | { |
| | | LinqExpressionType expressionType = param.DisplayType.GetLinqCondition(); |
| | | if (expressionType == LinqExpressionType.ThanOrEqual) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.Details |
| | | .Any(d => !string.IsNullOrEmpty(d.EffectiveDate) && d.EffectiveDate.CompareTo(effectiveDateStr) >= 0)); |
| | | } |
| | | else if (expressionType == LinqExpressionType.LessThanOrEqual) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.Details |
| | | .Any(d => !string.IsNullOrEmpty(d.EffectiveDate) && d.EffectiveDate.CompareTo(effectiveDateStr) <= 0)); |
| | | |
| | | |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | |
| | | { |
| | | 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 { } |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | string whereSto = GetDataRole(typeof(Dt_StockInfo)); |
| | | sugarQueryable1 = sugarQueryable1.Where(whereSto); |
| | |
| | | { |
| | | LocationCode = b.LocationCode, |
| | | Column = a.Column, |
| | | Expirationlabel = b.Expirationlabel, |
| | | WarehouseId = b.WarehouseId, |
| | | CreateDate = b.CreateDate, |
| | | Creater = b.Creater, |
| | |
| | | LocationCode = b.LocationCode, |
| | | Column = 0, |
| | | WarehouseId = b.WarehouseId, |
| | | Expirationlabel = b.Expirationlabel, |
| | | CreateDate = b.CreateDate, |
| | | Creater = b.Creater, |
| | | Depth = 0, |