From 0fb0f17319ecf71d66b96a6acfd07f754be9443e Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 24 十月 2024 13:44:38 +0800
Subject: [PATCH] WCS添加穿梭车信息表,修改任务信息表
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs | 177 ++++++++++++----------------------------------------------
1 files changed, 38 insertions(+), 139 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 29c88cd..f66f4b5 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"
@@ -2,7 +2,9 @@
using Magicodes.ExporterAndImporter.Core.Models;
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Options;
+using Newtonsoft.Json;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using SqlSugar;
using System.Drawing.Drawing2D;
@@ -13,6 +15,7 @@
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_Core.Utilities;
+using static OfficeOpenXml.ExcelErrorValue;
namespace WIDESEA_Core.BaseServices
{
@@ -31,7 +34,7 @@
public ISqlSugarClient Db => BaseDal.Db;
private PropertyInfo[] _propertyInfo { get; set; } = null;
- private PropertyInfo[] TProperties
+ public PropertyInfo[] TProperties
{
get
{
@@ -46,133 +49,14 @@
public virtual PageGridData<TEntity> GetPageData(PageDataOptions options)
{
- string wheres = ValidatePageOptions(options);
+ string wheres = options.ValidatePageOptions(TProperties);
//鑾峰彇鎺掑簭瀛楁
- Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
+ Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(TProperties);
PageGridData<TEntity> pageGridData = new PageGridData<TEntity>();
- //if (QueryRelativeExpression != null)
- //{
- // queryable = QueryRelativeExpression.Invoke(queryable);
- //}
- //if (options.Export)
- //{
- // queryable = queryable.GetIQueryableOrderBy(orderbyDic);
- // if (Limit > 0)
- // {
- // queryable = queryable.Take(Limit);
- // }
- // pageGridData.rows = queryable.ToList();
- //}
- //else
- //{
- // pageGridData.rows = repository.IQueryablePage(queryable,
- // options.Page,
- // options.Rows,
- // out int rowCount,
- // orderbyDic).ToList();
- // pageGridData.total = rowCount;
- // //鏌ヨ鐣岄潰缁熻姹傜瓑瀛楁
- // if (SummaryExpress != null)
- // {
- // pageGridData.summary = SummaryExpress.Invoke(queryable);
- // //Func<T, T> groupExpress = x =>x;
- // //pageGridData.summary = queryable.GroupBy(groupExpress).Select(SummaryExpress).FirstOrDefault();
- // }
- //}
- //GetPageDataOnExecuted?.Invoke(pageGridData);
-
pageGridData = BaseDal.QueryPage(wheres, options.Page, options.Rows, orderbyDic);
return pageGridData;
- }
-
-
- protected string ValidatePageOptions(PageDataOptions options)
- {
- options = options ?? new PageDataOptions();
- string where = "";
- 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 { }
- }
- QueryRelativeList?.Invoke(searchParametersList);
-
- for (int i = 0; i < searchParametersList.Count; i++)
- {
- if (string.IsNullOrEmpty(searchParametersList[i].Value))
- {
- continue;
- }
-
- PropertyInfo property = TProperties.Where(c => c.Name.ToUpper() == searchParametersList[i].Name.ToUpper()).FirstOrDefault();
-
- if (property == null) continue;
-
- (bool, string, object) result = property.ValidationVal(searchParametersList[i].Value.Split(','));
- if (!result.Item1)
- {
- continue;
- }
-
- LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
- if (expressionType == LinqExpressionType.Equal)
- {
- if (string.IsNullOrEmpty(where))
- where += $"{searchParametersList[i].Name} = '{searchParametersList[i].Value}'";
- else
- where += $" and {searchParametersList[i].Name} = '{searchParametersList[i].Value}'";
- }
- else
- {
- if (string.IsNullOrEmpty(where))
- where += $"{searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{searchParametersList[i].Value}'";
- else
- where += $" and {searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{searchParametersList[i].Value}'";
- }
- }
- return where;
- }
-
- /// <summary>
- /// 鑾峰彇鎺掑簭瀛楁
- /// </summary>
- /// <param name="pageData"></param>
- /// <param name="propertyInfo"></param>
- /// <returns></returns>
- private Dictionary<string, OrderByType> GetPageDataSort(PageDataOptions pageData, PropertyInfo[] propertyInfo)
- {
- if (!string.IsNullOrEmpty(pageData.Sort))
- {
- if (pageData.Sort.Contains(","))
- {
- List<string> sortArr = pageData.Sort.Split(",").Where(x => propertyInfo.Any(p => p.Name == x)).ToList();
- Dictionary<string, OrderByType> sortDic = new Dictionary<string, OrderByType>();
- foreach (var item in sortArr)
- {
- sortDic[item] = pageData.Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc;
- }
- return sortDic;
- }
- else if (propertyInfo.Any(x => x.Name == pageData.Sort))
- {
- return new Dictionary<string, OrderByType> {
- {
- pageData.Sort,pageData.Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc
- } };
- }
- }
- return new Dictionary<string, OrderByType> { { "CreateDate", pageData.Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc } };
}
public virtual object GetDetailPage(PageDataOptions pageData)
@@ -260,16 +144,15 @@
}
else if (keyPro.PropertyType == typeof(int) || keyPro.PropertyType == typeof(long))
{
- SugarColumn sugarColumn = keyPro.GetCustomAttribute<SugarColumn>();
- if (sugarColumn.IsIdentity)
+ SugarColumn? sugarColumn = keyPro.GetCustomAttribute<SugarColumn>();
+ if (sugarColumn?.IsIdentity ?? true)
{
saveModel.MainData.Remove(keyPro.Name.FirstLetterToUpper());
saveModel.MainData.Remove(keyPro.Name.FirstLetterToLower());
}
}
TEntity entity = saveModel.MainData.DicToModel<TEntity>();
- //if (saveModel.DetailData == null && saveModel.DetailData.Count == 0)
- if (saveModel.DetailData == null )
+ if (saveModel.DetailData == null || saveModel.DetailData.Count == 0)
{
BaseDal.AddData(entity);
return WebResponseContent.Instance.OK();
@@ -328,7 +211,6 @@
return content;
}
-
/// <summary>
/// 淇敼鏁版嵁
/// </summary>
@@ -377,7 +259,7 @@
{
return WebResponseContent.Instance.Error("浼犲弬閿欒,鍙傛暟涓嶈兘涓虹┖");
}
- string validResult = typeof(TEntity).ValidateDicInEntity(saveModel.MainData, false, TProperties, list?.ToArray());
+ string validResult = typeof(TEntity).ValidateDicInEntity(saveModel.MainData, false, TProperties, list?.ToArray() ?? null);
if (!string.IsNullOrEmpty(validResult))
{
@@ -395,7 +277,7 @@
List<string> listCol = new List<string>();
foreach (var item in saveModel.MainData)
{
- PropertyInfo propertyInfo = typeof(TEntity).GetProperty(item.Key);
+ PropertyInfo? propertyInfo = typeof(TEntity).GetProperty(item.Key);
if (propertyInfo == null)
{
propertyInfo = typeof(TEntity).GetProperty(item.Key.FirstLetterToLower());
@@ -408,12 +290,11 @@
listCol.Add(propertyInfo?.Name);
}
- //if (saveModel.DetailData == null && saveModel.DetailData.Count == 0)
- if (saveModel.DetailData == null)
+ if (saveModel.DetailData == null || saveModel.DetailData.Count == 0)
{
- if (list != null)
- listCol = listCol.Where(x => !list.Contains(x)).ToList();
- bool result = BaseDal.UpdateData(entity, listCol, list);
+ //if (list != null)
+ // listCol = listCol.Where(x => !list.Contains(x)).ToList();
+ bool result = BaseDal.UpdateData(entity/*, listCol, list*/);
return WebResponseContent.Instance.OK();
}
@@ -512,7 +393,6 @@
return content;
}
-
/// <summary>
/// 鍒犻櫎鏁版嵁
/// </summary>
@@ -540,7 +420,7 @@
try
{
if (typeof(TEntity).GetNavigatePro() == null)
- return BaseDal.DeleteDataByIds(keys) ? WebResponseContent.Instance.OK("鍒犻櫎鎴愬姛") : WebResponseContent.Instance.Error();
+ return BaseDal.DeleteDataByIds(keys) ? WebResponseContent.Instance.OK() : WebResponseContent.Instance.Error();
else
{
if (keys != null)
@@ -562,7 +442,7 @@
((SqlSugarClient)BaseDal.Db).CommitTran();
- return WebResponseContent.Instance.OK("鍒犻櫎鎴愬姛");
+ return WebResponseContent.Instance.OK();
}
else
{
@@ -625,9 +505,9 @@
string savePath = AppDomain.CurrentDomain.BaseDirectory + $"ExcelExport";
IExporter exporter = new ExcelExporter();
- string wheres = ValidatePageOptions(options);
+ string wheres = options.ValidatePageOptions(TProperties);
//鑾峰彇鎺掑簭瀛楁
- Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
+ Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(TProperties);
List<TEntity> entities = BaseDal.QueryData(wheres, orderbyDic);
@@ -726,5 +606,24 @@
content = WebResponseContent.Instance.OK(data: savePath + "\\" + fileName);
return content;
}
+
+ public WebResponseContent ExportSeedData()
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ string seedDataFolder = $"WIDESEA_DB.DBSeed.Json/{typeof(TEntity).Name}.tsv";
+ List<TEntity> deviceInfos = BaseDal.QueryData();
+ string str = JsonConvert.SerializeObject(deviceInfos, Formatting.Indented);
+ List<Dictionary<string, object>> keyValuePairs = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(str);
+ FileHelper.WriteFileAndDelOldFile($"{AppDomain.CurrentDomain.BaseDirectory}wwwroot/{seedDataFolder}", str);
+ content = WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ content = WebResponseContent.Instance.Error(ex.Message);
+ }
+ return content;
+ }
}
}
--
Gitblit v1.9.3