From 41a5531dc31a642623f0a7a766fbe9c256ba9247 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 11 二月 2025 13:53:29 +0800
Subject: [PATCH] 优化WMS前端
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs | 62 +++++++++++++++++++++++++++++++
1 files changed, 62 insertions(+), 0 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs"
index f66f4b5..2db7ace 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs"
@@ -58,6 +58,68 @@
return pageGridData;
}
+ public string ValidatePageOptions(PageDataOptions options)
+ {
+ options = options ?? new PageDataOptions();
+ string text = "";
+ List<SearchParameters> searchParametersList = new List<SearchParameters>();
+ if (options.Filter != null && options.Filter.Count > 0)
+ {
+ searchParametersList.AddRange(options.Filter);
+ }
+ else if (!string.IsNullOrEmpty(options.Wheres))
+ {
+ try
+ {
+ searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
+ options.Filter = searchParametersList;
+ }
+ catch
+ {
+ }
+ }
+
+ base.QueryRelativeList?.Invoke(searchParametersList);
+ int i;
+ for (i = 0; i < searchParametersList.Count; i++)
+ {
+ if (string.IsNullOrEmpty(searchParametersList[i].Value))
+ {
+ continue;
+ }
+
+ PropertyInfo propertyInfo = TProperties.Where((PropertyInfo c) => c.Name.ToUpper() == searchParametersList[i].Name.ToUpper()).FirstOrDefault();
+ if (propertyInfo == null)
+ {
+ continue;
+ }
+
+ object[] values = searchParametersList[i].Value.Split(',');
+ List<(bool, string, object)> list = propertyInfo.ValidationValueForDbType(values).ToList();
+ if (list == null || list.Count() == 0)
+ {
+ continue;
+ }
+
+ for (int j = 0; j < list.Count(); j++)
+ {
+ if (j == 0)
+ {
+ text += "(";
+ }
+
+ text = ((searchParametersList[i].DisplayType.GetLinqCondition() != 0) ? (text + $"{searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{list[j].Item3}'") : (text + $"{searchParametersList[i].Name} = '{list[j].Item3}'"));
+ text = ((j != list.Count() - 1) ? (text + " or ") : (text + ")"));
+ }
+
+ if (i < searchParametersList.Count - 1)
+ {
+ text += " and ";
+ }
+ }
+
+ return text;
+ }
public virtual object GetDetailPage(PageDataOptions pageData)
{
--
Gitblit v1.9.3