From 1e12c140c041c0cb52306a0db9ff0ba18354d0d8 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 03 四月 2025 18:01:52 +0800
Subject: [PATCH] 优化WMS前端首页,货位查询column数据库关键字处理
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs | 174 +++++++++++++++++++++++++++++++---------------------------
1 files changed, 93 insertions(+), 81 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs"
index eabf102..5efcea3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs"
@@ -25,11 +25,13 @@
{
private readonly IUnitOfWorkManage _unitOfWorkManage;
private readonly ICacheService _cacheService;
+ private readonly ISys_RoleService _sys_RoleService;
- public Sys_DictionaryService(ISys_DictionaryRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService) : base(BaseDal)
+ public Sys_DictionaryService(ISys_DictionaryRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService, ISys_RoleService sys_RoleService) : base(BaseDal)
{
_unitOfWorkManage = unitOfWorkManage;
_cacheService = cacheService;
+ _sys_RoleService = sys_RoleService;
}
public ISys_DictionaryRepository Repository => BaseDal;
@@ -50,10 +52,37 @@
public List<VueDictionaryDTO> GetVueDictionary(string[] dicNos)
{
- if (dicNos == null || dicNos.Count() == 0) return new List<VueDictionaryDTO>();
+ //if (dicNos == null || dicNos.Count() == 0) return new List<VueDictionaryDTO>();
List<VueDictionaryDTO> vueDictionaryDTOs = new List<VueDictionaryDTO>();
List<string> cacheDicNos = new List<string>();
+ #region 鏌ヨ鏁版嵁搴撲笅鎷夋鏁版嵁
+ if (dicNos.Where(x => !cacheDicNos.Contains(x)).Count() > 0)
+ {
+ var selectDics = BaseDal.GetDictionaries(dicNos.Where(x => !cacheDicNos.Contains(x)), _sys_RoleService.GetAllChildren(App.User.RoleId));
+
+ foreach (var item in selectDics)
+ {
+ if (!_cacheService.Exists(item.DicNo))
+ {
+ vueDictionaryDTOs.Add(item);
+ //_cacheService.Add(item.DicNo, item.Serialize());
+ }
+ else
+ {
+ VueDictionaryDTO? vueDictionary = JsonConvert.DeserializeObject<VueDictionaryDTO>(_cacheService.Get(item.DicNo));
+ if (vueDictionary != null && vueDictionary.Data.ToJson() != item.Data.ToJson())
+ {
+ vueDictionaryDTOs.Add(item);
+ _cacheService.AddOrUpdate(item.DicNo, item.Serialize());
+ }
+ }
+ }
+ }
+ #endregion
+
+
+
foreach (string n in dicNos)
{
string str = _cacheService.Get(n);
@@ -61,84 +90,43 @@
{
VueDictionaryDTO? vueDictionary = JsonConvert.DeserializeObject<VueDictionaryDTO>(str);
- if (vueDictionary != null)
+ if (vueDictionary != null && vueDictionaryDTOs.Where(x => x.DicNo == vueDictionary.DicNo).FirstOrDefault() == null)
{
vueDictionaryDTOs.Add(vueDictionary);
cacheDicNos.Add(n);
}
}
}
+ List<string> dicList = dicNos.ToList();
if (dicNos.Where(x => !cacheDicNos.Contains(x)).Count() > 0)
{
- List<VueDictionaryDTO> selectDics = BaseDal.GetDictionaries(dicNos.Where(x => !cacheDicNos.Contains(x))).Select(s => new VueDictionaryDTO
+ string str = AppSettings.Configuration["dics"];
+ if (!string.IsNullOrEmpty(str))
{
- DicNo = s.DicNo,
- Config = s.Config,
- //dbSql = s.Sql,
- Data = s.DicList.OrderByDescending(o => o.OrderNo).Select(list => new { key = list.DicValue, value = list.DicName })
- }).ToList();
+ List<string> cusDics = new List<string>();
- foreach (var item in selectDics)
- {
- if (!_cacheService.Exists(item.DicNo))
+ List<string> dics = str.Split(",").ToList();
+
+ foreach (var item in dics)
{
- _cacheService.Add(item.DicNo, item.Serialize());
- }
- }
- vueDictionaryDTOs.AddRange(selectDics);
- }
-
- //object GetSourceData(string dicNo, string dbSql, object data)
- //{
- // if (string.IsNullOrEmpty(dbSql))
- // {
- // return data;
- // }
- // return BaseDal.QueryObjectDataBySql(dbSql, null);
- //}
- //List<VueDictionaryDTO> vueDictionaryDTOs = dicConfig.Select(item => new VueDictionaryDTO
- //{
- // DicNo = item.dicNo,
- // Config = item.config,
- // Data = GetSourceData(item.dicNo, item.dbSql, item.list)
- //}).ToList();
-
- try
- {
- List<string> dicList = dicNos.ToList();
- if (dicNos.Where(x => !cacheDicNos.Contains(x)).Count() > 0)
- {
- string str = AppSettings.Configuration["dics"];
- if (!string.IsNullOrEmpty(str))
- {
- List<string> cusDics = new List<string>();
-
- List<string> dics = str.Split(",").ToList();
-
- foreach (var item in dics)
- {
- dicList.Remove(item);
+ if (dicList.Contains(item))
cusDics.Add(item);
- }
+ dicList.Remove(item);
+ }
- foreach (var item in cusDics)
+ foreach (var item in cusDics)
+ {
+ VueDictionaryDTO vueDictionaryDTO = GetVueDictionary(item.Trim());
+ if (vueDictionaryDTO != null)
{
- VueDictionaryDTO vueDictionaryDTO = GetVueDictionary(item.Trim());
- if (vueDictionaryDTO != null)
+ if (!_cacheService.Exists(item))
{
vueDictionaryDTOs.Add(vueDictionaryDTO);
- if (!_cacheService.Exists(item))
- {
- _cacheService.Add(item, vueDictionaryDTO.Serialize());
- }
+ _cacheService.Add(item, vueDictionaryDTO.Serialize());
}
}
}
}
- }
- catch
- {
-
}
return vueDictionaryDTOs;
}
@@ -485,25 +473,25 @@
}
}
- {
- Type type = typeof(AGVTaskStatusEnum);
- List<int> enums = Enum.GetValues(typeof(AGVTaskStatusEnum)).Cast<int>().ToList();
- int index = 0;
- foreach (var item in enums)
- {
- FieldInfo? fieldInfo = typeof(AGVTaskStatusEnum).GetField(((AGVTaskStatusEnum)item).ToString());
- DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
- if (description != null)
- {
- data.Add(new { key = item.ToString(), value = description.Description });
- }
- else
- {
- data.Add(new { key = item.ToString(), value = item.ToString() });
- }
- index++;
- }
- }
+ //{
+ // Type type = typeof(AGVTaskStatusEnum);
+ // List<int> enums = Enum.GetValues(typeof(AGVTaskStatusEnum)).Cast<int>().ToList();
+ // int index = 0;
+ // foreach (var item in enums)
+ // {
+ // FieldInfo? fieldInfo = typeof(AGVTaskStatusEnum).GetField(((AGVTaskStatusEnum)item).ToString());
+ // DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+ // if (description != null)
+ // {
+ // data.Add(new { key = item.ToString(), value = description.Description });
+ // }
+ // else
+ // {
+ // data.Add(new { key = item.ToString(), value = item.ToString() });
+ // }
+ // index++;
+ // }
+ //}
result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
}
@@ -520,11 +508,35 @@
DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
if (description != null)
{
- data.Add(new { key = item.ToString(), value = description.Description });
+ data.Add(new { key = item, value = description.Description });
}
else
{
- data.Add(new { key = item.ToString(), value = item.ToString() });
+ data.Add(new { key = item, value = item.ToString() });
+ }
+ index++;
+ }
+
+ result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+ }
+ break;
+ case "locationChangeType":
+ {
+ List<object> data = new List<object>();
+ Type type = typeof(LocationChangeType);
+ List<int> enums = Enum.GetValues(typeof(LocationChangeType)).Cast<int>().ToList();
+ int index = 0;
+ foreach (var item in enums)
+ {
+ FieldInfo? fieldInfo = typeof(LocationChangeType).GetField(((LocationChangeType)item).ToString());
+ DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+ if (description != null)
+ {
+ data.Add(new { key = item, value = description.Description });
+ }
+ else
+ {
+ data.Add(new { key = item, value = item.ToString() });
}
index++;
}
--
Gitblit v1.9.3