From 0705cb6170a9ba77ba48bbb6dcebb9cf3d73cbea Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 14 十月 2025 02:12:25 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs | 252 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 185 insertions(+), 67 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 58a7512..37e02d8 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"
@@ -46,51 +46,116 @@
{
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;
+
+ 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;
+ case "inventoryage":
+ int inventoryage = param.Value.ObjToInt();
+ if (inventoryage > 0)
+ {
+ DateTime dateTime = DateTime.Now.AddDays(-inventoryage);
+ sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate >= dateTime);
+ }
+ break;
+ case "inventoryage1":
+ int inventoryage1 = param.Value.ObjToInt();
+ if (inventoryage1 > 0)
+ {
+ DateTime dateTime = DateTime.Now.AddDays(-inventoryage1);
+ sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate <= dateTime);
+ }
+ 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);
+
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,
@@ -112,52 +177,55 @@
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)
{
@@ -217,28 +285,76 @@
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);
@@ -254,6 +370,7 @@
{
LocationCode = b.LocationCode,
Column = a.Column,
+ Expirationlabel = b.Expirationlabel,
WarehouseId = b.WarehouseId,
CreateDate = b.CreateDate,
Creater = b.Creater,
@@ -279,6 +396,7 @@
LocationCode = b.LocationCode,
Column = 0,
WarehouseId = b.WarehouseId,
+ Expirationlabel = b.Expirationlabel,
CreateDate = b.CreateDate,
Creater = b.Creater,
Depth = 0,
--
Gitblit v1.9.3