4 Commits ef98f627ca ... 33d6bfaa3b

Author SHA1 Message Date
  林豪 左 33d6bfaa3b 增强日志功能和代码可读性 1 week ago
  林豪 左 353881c58b 添加 LogInfoModeQueryDto 类及命名空间引用 2 weeks ago
  林豪 左 1ca3034920 添加 LogInfoModelDto 类及相关命名空间引用 2 weeks ago
  林豪 左 793982831f 添加日志信息模型及相关枚举 2 weeks ago

+ 2 - 1
.gitignore

@@ -360,4 +360,5 @@ MigrationBackup/
 .ionide/
 
 # Fody - auto-generated XML schema
-FodyWeavers.xsd
+FodyWeavers.xsd
+/WMS.BZWeb/appsettings.json

+ 123 - 118
WMS.BZModels/Dto/KLHC/TaskDtos/TaskInfoDto.cs

@@ -8,24 +8,24 @@ namespace WMS.BZModels.Dto.KLHC.TaskDtos
 {
     public partial class WCSTaskinfoDto
     {
-        /// <summary> 
+        /// <summary>
         /// ID
-        /// </summary> 
+        /// </summary>
         public string ID { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 生产编码
-        /// </summary> 
+        /// </summary>
         public string BarCode { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 任务类型
-        /// </summary> 
+        /// </summary>
         public int? Type { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 任务状态
-        /// </summary> 
+        /// </summary>
         public int? Status { get; set; }
 
         public string TypeName
@@ -41,14 +41,13 @@ namespace WMS.BZModels.Dto.KLHC.TaskDtos
             }
         }
 
-        /// <summary> 
+        /// <summary>
         /// 业务类型
-        /// </summary> 
+        /// </summary>
         public string BusType { get; set; }
 
         //public string TaskBusTypeName
         //{
-
         //    get
         //    {
         //        var result = "";
@@ -62,7 +61,6 @@ namespace WMS.BZModels.Dto.KLHC.TaskDtos
 
         public string StatusName
         {
-
             get
             {
                 var result = "";
@@ -74,108 +72,109 @@ namespace WMS.BZModels.Dto.KLHC.TaskDtos
             }
         }
 
-        /// <summary> 
+        /// <summary>
         /// 起始地址
-        /// </summary> 
+        /// </summary>
         public string AddrFrom { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 目标地址
-        /// </summary> 
+        /// </summary>
         public string AddrTo { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 最后一个交互点
-        /// </summary> 
+        /// </summary>
         public string LastInteractionPoint { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 下一个地址
-        /// </summary> 
+        /// </summary>
         public string AddrNext { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 巷道
-        /// </summary> 
+        /// </summary>
         public string Tunnel { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 楼层
-        /// </summary> 
+        /// </summary>
         public int? Floor { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 设备
-        /// </summary> 
+        /// </summary>
         public string Device { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 堆垛机放货站台
-        /// </summary> 
+        /// </summary>
         public string SrmStation { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 创建时间
-        /// </summary> 
+        /// </summary>
         public DateTime AddTime { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 开始时间
-        /// </summary> 
+        /// </summary>
         public DateTime? StartTime { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 结束时间
-        /// </summary> 
+        /// </summary>
         public DateTime? EedTime { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 结束时间
-        /// </summary> 
+        /// </summary>
         public DateTime? EndTime { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// 单号
-        /// </summary> 
+        /// </summary>
         public int? DocID { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 托盘类型
-        /// </summary> 
+        /// </summary>
         public int? PalletType { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 码垛工位
-        /// </summary> 
+        /// </summary>
         public int? ProdLine { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 满盘数量
-        /// </summary> 
+        /// </summary>
         public int? FullQty { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 高度
-        /// </summary> 
+        /// </summary>
         public int? Height { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 重量
-        /// </summary> 
+        /// </summary>
         public double? Weight { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// WMS任务号
-        /// </summary> 
+        /// </summary>
         public int WmsTask { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 任务组ID
-        /// </summary> 
+        /// </summary>
         public string TaskGroupKey { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 更新状态
-        /// </summary> 
+        /// </summary>
         public int Uploaded { get; set; }
 
         public string UploadedName
@@ -185,134 +184,135 @@ namespace WMS.BZModels.Dto.KLHC.TaskDtos
                 return ((TaskStatus)Uploaded).GetDescription();
             }
         }
-        /// <summary> 
+
+        /// <summary>
         /// AGV任务号
-        /// </summary> 
+        /// </summary>
         public int? AgvTaskID { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 优先级
-        /// </summary> 
+        /// </summary>
         public int Priority { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 手动处理备注
-        /// </summary> 
+        /// </summary>
         public string ManualRemarks { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 产品长度
-        /// </summary> 
+        /// </summary>
         public decimal? Length { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 产品编码
-        /// </summary> 
+        /// </summary>
         public string MaterialCode { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 是否可用
-        /// </summary> 
+        /// </summary>
         public bool Enabled { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 创建用户
-        /// </summary> 
+        /// </summary>
         public string AddWho { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 更新用户
-        /// </summary> 
+        /// </summary>
         public string EditWho { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 更新时间
-        /// </summary> 
+        /// </summary>
         public DateTime? EditTime { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 版本号
-        /// </summary> 
+        /// </summary>
         public byte[] VER { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 客户现场的机台/产线编号
-        /// </summary> 
+        /// </summary>
         public string WorkBench { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 仓库编号
-        /// </summary> 
+        /// </summary>
         public string WarehouseCode { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 物料编码
-        /// </summary> 
+        /// </summary>
         public string MatCode { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 材料号
-        /// </summary> 
+        /// </summary>
         public string InvBarCode { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 是否快投
-        /// </summary> 
+        /// </summary>
         public bool? IsFast { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 等级
-        /// </summary> 
+        /// </summary>
         public string Grade { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 是否改手盘
-        /// </summary> 
+        /// </summary>
         public bool? IsSurplus { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 是否返空
-        /// </summary> 
+        /// </summary>
         public bool? IsRework { get; set; }
 
         public int? OutType { get; set; }
+
         public string OutTypeName
         {
             get
             {
-
                 return ((AutoManualOutType)(OutType ?? 0)).GetDescription();
             }
         }
 
-        /// <summary> 
+        /// <summary>
         /// 生产单号
-        /// </summary> 
+        /// </summary>
         public string WorkOrder { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 货位类型
-        /// </summary> 
+        /// </summary>
         public int? GoodsType { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 行
-        /// </summary> 
+        /// </summary>
         public int? Line { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 列
-        /// </summary> 
+        /// </summary>
         public int? Col { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 层
-        /// </summary> 
+        /// </summary>
         public int? Layer { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 深度
-        /// </summary> 
+        /// </summary>
         public int? Depth { get; set; }
 
         public string SetGrpCode { get; set; }
@@ -326,22 +326,25 @@ namespace WMS.BZModels.Dto.KLHC.TaskDtos
         public string Type { get; set; }
 
         public string Status { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// 业务类型
-        /// </summary> 
+        /// </summary>
         public string BusType { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// 起始地址
-        /// </summary> 
+        /// </summary>
         public string AddrFrom { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 目标地址
-        /// </summary> 
+        /// </summary>
         public string AddrTo { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// 下一个地址
-        /// </summary> 
+        /// </summary>
         public string AddrNext { get; set; }
 
         public int? ProdLine { get; set; }
@@ -352,32 +355,34 @@ namespace WMS.BZModels.Dto.KLHC.TaskDtos
 
         public DateTime? AddTimeTo { get; set; }
 
-
         public string Grade { get; set; }
 
         public string MatCode { get; set; }
+
         /// <summary>
-        /// 开始时间, 
+        /// 开始时间,
         /// </summary>
         public DateTime? StartTimeBegin { get; set; }
 
         /// <summary>
-        /// 开始时间, 
+        /// 开始时间,
         /// </summary>
         public DateTime? StartTimeEnd { get; set; }
+
         /// <summary>
-        ///  结束时间, 
+        ///  结束时间,
         /// </summary>
         public DateTime? EndTimeBegin { get; set; }
 
         public DateTime? EndTimeEnd { get; set; }
 
         /// <summary>
-        /// AGV任务号, 
+        /// AGV任务号,
         /// </summary>
         public string AgvTaskID { get; set; }
+
         /// <summary>
-        /// 产品编码, 
+        /// 产品编码,
         /// </summary>
         public string MaterialCode { get; set; }
 
@@ -389,4 +394,4 @@ namespace WMS.BZModels.Dto.KLHC.TaskDtos
 
         public string WarehouseCode { get; set; }
     }
-}
+}

+ 30 - 0
WMS.BZModels/Dto/Log/LogInfoModeQueryDto.cs

@@ -0,0 +1,30 @@
+namespace WMS.BZModels.Dto.Log
+{
+    public class LogInfoModeQueryDto : PagerInfo
+    {
+        /// <summary>
+        /// 日志级别(如:信息、警告、错误等)
+        /// </summary>
+        public string? LogLevel { get; set; }
+
+        /// <summary>
+        /// 日志记录的来源渠道(即触发此日志的程序名称)
+        /// </summary>
+        public string? LogSource { get; set; }
+
+        /// <summary>
+        /// 记录发生日志的模块或系统名称
+        /// </summary>
+        public string? SourceSystem { get; set; }
+
+        /// <summary>
+        /// 记录日志产生的类名或模块名,设备调度系统中可表示交互业务名
+        /// </summary>
+        public string? SourceClass { get; set; }
+
+        /// <summary>
+        /// 记录日志产生的具体方法名,设备调度系统中可表示具体产生交互的设备号
+        /// </summary>
+        public string? SourceMethod { get; set; }
+    }
+}

+ 119 - 0
WMS.BZModels/Dto/Log/LogInfoModelDto.cs

@@ -0,0 +1,119 @@
+using SqlSugar;
+using WMS.BZModels.Models.Log;
+
+namespace WMS.BZModels.Dto.Log
+{
+    public partial class LogInfoModelDto
+    {
+        /// <summary>
+        /// 日志的生成时间,记录日志的产生时间
+        /// </summary>
+        public DateTime Timestamp { get; set; }
+
+        /// <summary>
+        /// 日志级别(如:信息、警告、错误等)
+        /// </summary>
+        public int? LogLevel { get; set; }
+
+        public string LogLevelName
+        {
+            get
+            {
+                var result = "";
+                if (LogLevel != null && LogLevel.HasValue)
+                {
+                    result = ((LogLevel)LogLevel.Value).GetDescription();
+                }
+                return result;
+            }
+        }
+
+        /// <summary>
+        /// 日志消息内容,记录具体的日志信息
+        /// </summary>
+        public string? Message { get; set; }
+
+        /// <summary>
+        /// 日志记录的来源渠道(即触发此日志的程序名称)
+        /// </summary>
+        [SugarColumn(ColumnDataType = "symbol")]
+        public string? LogSource { get; set; }
+
+        /// <summary>
+        /// 记录发生日志的模块或系统名称
+        /// </summary>
+        [SugarColumn(ColumnDataType = "symbol")]
+        public string? SourceSystem { get; set; }
+
+        /// <summary>
+        /// 记录日志产生的类名或模块名,设备调度系统中可表示交互业务名
+        /// </summary>
+        [SugarColumn(ColumnDataType = "symbol")]
+        public string? SourceClass { get; set; }
+
+        /// <summary>
+        /// 记录日志产生的具体方法名,设备调度系统中可表示具体产生交互的设备号
+        /// </summary>
+        [SugarColumn(ColumnDataType = "symbol")]
+        public string? SourceMethod { get; set; }
+
+        /// <summary>
+        /// 用户信息,记录当前操作的用户(如用户ID、用户名等)
+        /// </summary>
+        public string? UserInfo { get; set; }
+
+        /// <summary>
+        /// 额外的上下文信息,可以用来存储一些额外的详细信息
+        /// </summary>
+        public string? Context { get; set; }
+
+        /// <summary>
+        /// 异常信息,记录错误时的堆栈信息(如果有异常)
+        /// </summary>
+        public string? ExceptionDetails { get; set; }
+
+        /// <summary>
+        /// 是否是临时日志,标记日志是否可以丢弃(如调试时产生的日志)
+        /// </summary>
+        public bool IsTemporary { get; set; }
+
+        /// <summary>
+        /// 日志的类型,区分是应用日志、系统日志等
+        /// </summary>
+        public int? LogType { get; set; }
+
+        public string LogTypeName
+        {
+            get
+            {
+                var result = "";
+                if (LogType != null && LogType.HasValue)
+                {
+                    result = ((LogType)LogType.Value).GetDescription();
+                }
+                return result;
+            }
+        }
+
+        /// <summary>
+        /// 日志来源系统的标识(如微服务、模块、平台等)
+        /// </summary>
+        [SugarColumn(ColumnDataType = "symbol")]
+        public string? SourceSystemIdentifier { get; set; }
+
+        /// <summary>
+        /// 请求ID,用于分布式系统中进行日志关联,便于追溯
+        /// </summary>
+        public string? RequestId { get; set; }
+
+        /// <summary>
+        /// 事务ID,用于标识一个事务或操作链
+        /// </summary>
+        public string? TransactionId { get; set; }
+
+        /// <summary>
+        /// 线程ID,用于标识一个线程
+        /// </summary>
+        public string? ThreadId { get; set; }
+    }
+}

+ 168 - 0
WMS.BZModels/Models/Log/LogInfoModel.cs

@@ -0,0 +1,168 @@
+using SqlSugar;
+using System.ComponentModel;
+
+namespace WMS.BZModels.Models.Log
+{
+    /// <summary>
+    ///  日志信息模型
+    /// </summary>
+    [Tenant("log")]
+    [SugarTable("LogHubLogs")]
+    public class LogInfoModel : BaseEntityModel
+    {
+        public LogInfoModel()
+        {
+        }
+
+        /// <summary>
+        /// 日志的生成时间,记录日志的产生时间
+        /// </summary>
+        public DateTime Timestamp { get; set; }
+
+        /// <summary>
+        /// 日志级别(如:信息、警告、错误等)
+        /// </summary>
+        public int LogLevel { get; set; }
+
+        /// <summary>
+        /// 日志消息内容,记录具体的日志信息
+        /// </summary>
+        public string? Message { get; set; }
+
+        /// <summary>
+        /// 日志记录的来源渠道(即触发此日志的程序名称)
+        /// </summary>
+        [SugarColumn(ColumnDataType = "symbol")]
+        public string? LogSource { get; set; }
+
+        /// <summary>
+        /// 记录发生日志的模块或系统名称
+        /// </summary>
+        [SugarColumn(ColumnDataType = "symbol")]
+        public string? SourceSystem { get; set; }
+
+        /// <summary>
+        /// 记录日志产生的类名或模块名,设备调度系统中可表示交互业务名
+        /// </summary>
+        [SugarColumn(ColumnDataType = "symbol")]
+        public string? SourceClass { get; set; }
+
+        /// <summary>
+        /// 记录日志产生的具体方法名,设备调度系统中可表示具体产生交互的设备号
+        /// </summary>
+        [SugarColumn(ColumnDataType = "symbol")]
+        public string? SourceMethod { get; set; }
+
+        /// <summary>
+        /// 用户信息,记录当前操作的用户(如用户ID、用户名等)
+        /// </summary>
+        public string? UserInfo { get; set; }
+
+        /// <summary>
+        /// 额外的上下文信息,可以用来存储一些额外的详细信息
+        /// </summary>
+        public string? Context { get; set; }
+
+        /// <summary>
+        /// 异常信息,记录错误时的堆栈信息(如果有异常)
+        /// </summary>
+        public string? ExceptionDetails { get; set; }
+
+        /// <summary>
+        /// 是否是临时日志,标记日志是否可以丢弃(如调试时产生的日志)
+        /// </summary>
+        public bool IsTemporary { get; set; }
+
+        /// <summary>
+        /// 日志的类型,区分是应用日志、系统日志等
+        /// </summary>
+        public LogType LogType { get; set; }
+
+        /// <summary>
+        /// 日志来源系统的标识(如微服务、模块、平台等)
+        /// </summary>
+        [SugarColumn(ColumnDataType = "symbol")]
+        public string? SourceSystemIdentifier { get; set; }
+
+        /// <summary>
+        /// 请求ID,用于分布式系统中进行日志关联,便于追溯
+        /// </summary>
+        public string? RequestId { get; set; }
+
+        /// <summary>
+        /// 事务ID,用于标识一个事务或操作链
+        /// </summary>
+        public string? TransactionId { get; set; }
+
+        /// <summary>
+        /// 线程ID,用于标识一个线程
+        /// </summary>
+        public string? ThreadId { get; set; }
+    }
+
+    /// <summary>
+    /// 日志级别
+    /// </summary>
+    public enum LogLevel
+    {
+        /// <summary>
+        /// 信息
+        /// </summary>
+        [Description("信息")]
+        INFO,
+
+        /// <summary>
+        /// 警告
+        /// </summary>
+        [Description("警告")]
+        WARN,
+
+        /// <summary>
+        /// 错误
+        /// </summary>
+        [Description("错误")]
+        ERROR,
+
+        /// <summary>
+        /// 调试
+        /// </summary>
+        [Description("调试")]
+        DEBUG,
+
+        /// <summary>
+        /// 致命错误
+        /// </summary>
+        [Description("致命错误")]
+        FATAL
+    }
+
+    /// <summary>
+    /// 日志的类型
+    /// </summary>
+    public enum LogType
+    {
+        /// <summary>
+        /// 应用日志
+        /// </summary>
+        [Description("应用日志")]
+        Application,
+
+        /// <summary>
+        /// 系统日志
+        /// </summary>
+        [Description("系统日志")]
+        System,
+
+        /// <summary>
+        /// 安全日志
+        /// </summary>
+        [Description("安全日志")]
+        Security,
+
+        /// <summary>
+        /// 性能日志
+        /// </summary>
+        [Description("性能日志")]
+        Performance
+    }
+}

+ 102 - 0
WMS.BZServices/KLHC/LogHubService.cs

@@ -0,0 +1,102 @@
+using SqlSugar;
+using WMS.BZModels;
+using WMS.BZModels.Dto.Log;
+using WMS.BZModels.Models.Log;
+using WMS.BZSqlSugar;
+using WMS.Info;
+using Extensions = WMS.BZModels.Extensions;
+
+namespace WMS.BZServices.KLHC
+{
+    /// <summary>
+    ///  日志中心服务
+    /// </summary>
+    public class LogHubService
+    {
+        private readonly Repository<LogInfoModel> _logHubRepository;
+
+        public LogHubService(Repository<LogInfoModel> logHubRepository)
+        {
+            _logHubRepository = logHubRepository;
+        }
+
+        public PagedInfo<LogInfoModelDto> GetPageList(Pagination pagination, LogInfoModeQueryDto wCSTaskinfoQueryDto)
+        {
+            var predicate = Expressionable.Create<LogInfoModel>();
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.KeyWord), m => m.SourceMethod.ToString().Contains(wCSTaskinfoQueryDto.KeyWord));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.LogLevel), m => m.LogLevel.Equals(wCSTaskinfoQueryDto.LogLevel));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.LogSource), m => m.LogSource.ToString().Contains(wCSTaskinfoQueryDto.LogSource));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.SourceSystem), m => m.SourceSystem.ToString().Contains(wCSTaskinfoQueryDto.SourceSystem));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.SourceClass), m => m.SourceClass.ToString().Contains(wCSTaskinfoQueryDto.SourceClass));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.SourceMethod), m => m.SourceMethod.ToString().Contains(wCSTaskinfoQueryDto.SourceMethod));
+            var list = _logHubRepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).ToPage<LogInfoModel, LogInfoModelDto>(pagination);
+
+            return list;
+        }
+
+        /// <summary>
+        ///  获取日志级别列表
+        /// </summary>
+        /// <returns></returns>
+        public List<EnumEntity> GetLogLevelList()
+        {
+            return Extensions.EnumToList<LogLevel>();
+        }
+
+        /// <summary>
+        ///  获取日志来源列表
+        /// </summary>
+        /// <returns></returns>
+        public List<EnumEntity2> GetLogSourceList()
+        {
+            var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.LogSource).Select(x => new EnumEntity2
+            {
+                id = x.LogSource.ToString(),
+                text = x.LogSource.ToString()
+            }).ToList();
+            return list;
+        }
+
+        /// <summary>
+        ///  获取日志来源系统列表
+        /// </summary>
+        /// <returns></returns>
+        public List<EnumEntity2> GetSourceSystemList()
+        {
+            var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.SourceSystem).Select(x => new EnumEntity2
+            {
+                id = x.SourceSystem.ToString(),
+                text = x.SourceSystem.ToString()
+            }).ToList();
+            return list;
+        }
+
+        /// <summary>
+        ///  获取日志来源类列表
+        /// </summary>
+        /// <returns></returns>
+        public List<EnumEntity2> GetSourceClassList()
+        {
+            var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.SourceClass).Select(x => new EnumEntity2
+            {
+                id = x.SourceClass.ToString(),
+                text = x.SourceClass.ToString()
+            }).ToList();
+            return list;
+        }
+
+        /// <summary>
+        ///  获取日志来源方法列表
+        /// </summary>
+        /// <returns></returns>
+        public List<EnumEntity2> GetSourceMethodList()
+        {
+            var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.SourceMethod).Select(x => new EnumEntity2
+            {
+                id = x.SourceMethod.ToString(),
+                text = x.SourceMethod.ToString()
+            }).ToList();
+            return list;
+        }
+    }
+}

+ 2 - 3
WMS.BZSqlSugar/WMS.BZSqlSugar.csproj

@@ -11,11 +11,10 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="Mapster" Version="7.4.0" />
+    <PackageReference Include="Mapster" Version="7.3.0" />
     <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
     <PackageReference Include="SqlSugar.IOC" Version="2.0.0" />
-    <PackageReference Include="SqlSugarCore" Version="5.1.4.187" />
-    <PackageReference Include="System.Security.Cryptography.Pkcs" Version="6.0.5" />
+    <PackageReference Include="SqlSugarCore" Version="5.1.4.106" />
   </ItemGroup>
 
   <ItemGroup>

+ 95 - 0
WMS.BZWeb/Areas/KLHCManager/Controllers/LogHubController.cs

@@ -0,0 +1,95 @@
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
+using WMS.BZModels.Dto.Log;
+using WMS.BZServices.KLHC;
+using WMS.Info;
+
+namespace WMS.BZWeb.Areas.KLHCManager.Controllers
+{
+    [Area("KLHCManager")]
+    public class LogHubController : MvcControllerBase
+    {
+        private readonly LogHubService _logHubService;
+
+        public LogHubController(LogHubService logHubService)
+        {
+            _logHubService = logHubService;
+        }
+
+        public IActionResult Index()
+        {
+            return View();
+        }
+
+        public ActionResult GetPageList(string pagination, string queryJson)
+        {
+            Pagination paginationobj = InitPagination(pagination);
+            var query = new LogInfoModeQueryDto();
+            if (!string.IsNullOrEmpty(queryJson))
+            {
+                query = JsonConvert.DeserializeObject<LogInfoModeQueryDto>(queryJson);
+            }
+            var lists = _logHubService.GetPageList(paginationobj, query ?? new LogInfoModeQueryDto());
+
+            var jsonData = new
+            {
+                rows = lists.Result,
+                total = lists.TotalPage,
+                page = lists.PageIndex,
+                records = lists.TotalNum
+            };
+
+            return Success(jsonData);
+        }
+
+        /// <summary>
+        /// 获取日志级别列表
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        public ActionResult GetLogLevelList()
+        {
+            return Success(_logHubService.GetLogLevelList());
+        }
+
+        /// <summary>
+        /// 获取日志来源列表
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        public ActionResult GetLogSourceList()
+        {
+            return Success(_logHubService.GetLogSourceList());
+        }
+
+        /// <summary>
+        /// 获取日志来源系统列表
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        public ActionResult GetSourceSystemList()
+        {
+            return Success(_logHubService.GetSourceSystemList());
+        }
+
+        /// <summary>
+        /// 获取日志来源类列表
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        public ActionResult GetSourceClassList()
+        {
+            return Success(_logHubService.GetSourceClassList());
+        }
+
+        /// <summary>
+        /// 获取日志来源方法列表
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        public ActionResult GetSourceMethodList()
+        {
+            return Success(_logHubService.GetSourceMethodList());
+        }
+    }
+}

+ 119 - 0
WMS.BZWeb/Areas/KLHCManager/Views/LogHub/Index.cshtml

@@ -0,0 +1,119 @@
+@using WMS.BZWeb;
+@{
+    ViewBag.Title = "任务";
+    Layout = "~/Views/Shared/_Index.cshtml";
+}
+<style>
+    .lr-scroll-horizontal {
+        height: 12px;
+        display: block;
+        z-index: 100;
+    }
+
+    .lr-scroll-vertical {
+        width: 12px;
+        display: block;
+        z-index: 100;
+    }
+
+    .jfgrid-sub .jfgrid-body {
+        overflow-y: scroll
+    }
+</style>
+<div class="lr-layout">
+    <div class="lr-layout-center">
+        <div class="lr-layout-wrap lr-layout-wrap-notitle">
+            <div class="lr-layout-tool">
+                <div class="lr-layout-tool-left">
+                    <div class="lr-layout-tool-item">
+                        <input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" />
+                    </div>
+                    <div class="lr-layout-tool-item">
+                        <a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i>&nbsp;<span class="lrlg">查询</span></a>
+                    </div>
+
+                    <div class="lr-layout-tool-item">
+                        <div id="multiple_condition_query">
+                            <div class="lr-query-formcontent">
+                               
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">日志级别</div>
+                                    <div id="LogLevel"></div>
+                                </div>
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">来源</div>
+                                    <div id="LogSource"></div>
+                                </div>
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">系统</div>
+                                    <div id="SourceSystem"></div>
+                                </div>
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">类</div>
+                                    <div id="SourceClass"></div>
+                                </div>
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">点</div>
+                                    <div id="SourceMethod"></div>
+                                </div>
+                              
+                                @* <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">设备</div>
+                                    <input id="Device" type="text" class="form-control" placeholder="请输入设备" />
+                                </div>
+
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">起始地址</div>
+                                    <input id="AddrFrom" type="text" class="form-control" placeholder="请输入起始地址" />
+                                </div>
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">目标地址</div>
+                                    <input id="AddrTo" type="text" class="form-control" placeholder="请输入目标地址" />
+                                </div>
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">下一个地址</div>
+                                    <input id="AddrNext" type="text" class="form-control" placeholder="请输入下一个地址" />
+                                </div>
+
+                                
+
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">创建时间</div>
+                                    <input id="AddTimeFrom" placeholder="请输入创建时间" readonly style="width:180px;border: 1px solid #ccc;    height: 28px;" class="datetime" type="text" onclick="WdatePicker({el:this,dateFmt:'yyyy-MM-dd HH:mm:ss'})">
+                                    <input id="AddTimeTo" placeholder="请输入创建时间" readonly style="width:180px;border: 1px solid #ccc;    height: 28px;" class="datetime" type="text" onclick="WdatePicker({el:this,dateFmt:'yyyy-MM-dd HH:mm:ss'})">
+                                </div>
+
+                               
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">开始时间</div>
+
+                                    <input id="StartTimeBegin" placeholder="请输入开始时间" readonly style="width:180px;border: 1px solid #ccc;    height: 28px;" class="datetime" type="text" onclick="WdatePicker({el:this,dateFmt:'yyyy-MM-dd HH:mm:ss'})">
+                                    <input id="StartTimeEnd" placeholder="请输入开始时间" readonly style="width:180px;border: 1px solid #ccc;    height: 28px;" class="datetime" type="text" onclick="WdatePicker({el:this,dateFmt:'yyyy-MM-dd HH:mm:ss'})">
+
+                                </div>
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">结束时间</div>
+                                    <input id="EndTimeBegin" placeholder="请输入结束时间" readonly style="width:180px;border: 1px solid #ccc;    height: 28px;" class="datetime" type="text" onclick="WdatePicker({el:this,dateFmt:'yyyy-MM-dd HH:mm:ss'})">
+                                    <input id="EndTimeEnd" placeholder="请输入结束时间" readonly style="width:180px;border: 1px solid #ccc;    height: 28px;" class="datetime" type="text" onclick="WdatePicker({el:this,dateFmt:'yyyy-MM-dd HH:mm:ss'})">
+
+                                </div> *@
+                             
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="lr-layout-tool-right">
+                    <div class=" btn-group btn-group-sm">
+                        <a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i>&nbsp;<span class="lrlg">刷新</span></a>
+                    </div>
+                    <div class=" btn-group btn-group-sm" wms-authorize="yes">
+                        <a id="lr_exportnow" class="btn btn-default"><i class="fa fa-sign-out"></i>&nbsp;导出当前页</a>
+                        @* <a id="lr_exportall" class="btn btn-default"><i class="fa fa-sign-out"></i>&nbsp;导出全部</a> *@
+                    </div>
+                </div>
+            </div>
+            <div class="lr-layout-body" id="gridtable"></div>
+        </div>
+    </div>
+</div>
+@Html.AppendJsFile("/Areas/KLHCManager/Views/LogHub/Index.js")

+ 255 - 0
WMS.BZWeb/Areas/KLHCManager/Views/LogHub/Index.js

@@ -0,0 +1,255 @@
+var refreshGirdData;
+var logbegin = '';
+var logend = '';
+var StartTimeBegin = '';
+var StartTimeend = '';
+var EndTimeBegin = '';
+var EndTimeend = '';
+
+var bootstrap = function ($, learun) {
+    "use strict";
+    var psuid = "";
+    var page = {
+        init: function () {
+            page.initGird();
+            page.bind();
+        },
+        bind: function () {
+            $('#multiple_condition_query').lrMultipleQuery(function (queryJson) {
+                // 调用后台查询
+                // queryJson 查询条件
+                var date = $('#lr_search_date_datesearch').html();
+                if (date == '') {
+                    logbegin = '';
+                    logend = '';
+                }
+                var starttime = $('#lr_search_date_StartTime').html();
+                if (starttime == '') {
+                    StartTimeBegin = '';
+                    StartTimeend = '';
+                }
+                var endtime = $('#lr_search_date_EndTime').html();
+                if (endtime == '') {
+                    EndTimeBegin = '';
+                    EndTimeend = '';
+                }
+
+                queryJson["LogLevel"] = $("#LogLevel").lrselectGet();
+                queryJson["LogSource"] = $("#LogSource").lrselectGet();
+                queryJson["SourceSystem"] = $("#SourceSystem").lrselectGet();
+                queryJson["SourceClass"] = $("#SourceClass").lrselectGet();
+                queryJson["SourceMethod"] = $("#SourceMethod").lrselectGet();
+                //queryJson["AddTimeTo"] = $("#AddTimeTo").val();
+                //queryJson["StartTimeBegin"] = $("#StartTimeBegin").val();
+                //queryJson["StartTimeEnd"] = $("#StartTimeEnd").val();
+                //queryJson["EndTimeBegin"] = $("#EndTimeBegin").val();
+                //queryJson["EndTimeEnd"] = $("#EndTimeEnd").val();
+                //queryJson["Type"] = $("#Type").lrselectGet();
+                //queryJson["Status"] = $("#Status").lrselectGet();
+                //queryJson["Device"] = $("#Device").val();
+                page.search({ queryJson: JSON.stringify(queryJson) });
+            }, 250);
+            // 查询
+            $('#btn_Search').on('click', function () {
+                var keyword = $('#txt_Keyword').val();
+                page.search({ queryJson: JSON.stringify({ keyword: $('#txt_Keyword').val() }) });
+            });
+            // 刷新
+            $('#lr_refresh').on('click', function () {
+                location.reload();
+            });
+
+            // 导出数据
+            $('#lr_exportnow').on('click', function () {
+                var subsuid = "";
+                if (psuid == "") {
+                    psuid = $('#gridtable').attr('id');
+                }
+                else if (psuid != "") {
+                    var t = $('#' + psuid).attr('id');
+                    if (t == undefined)
+                        psuid = $('#gridtable').attr('id');
+                }
+                var mainGridId = $('#gridtable').attr('id');
+
+                learun.layerForm({
+                    id: "ExcelExportForm",
+                    title: '导出Excel数据',
+                    url: top.$.rootUrl + '/Utility/ExcelExportForm?mainGridId=' + mainGridId + '&gridId=' + psuid + '&filename=' + encodeURI(encodeURI("历史任务")),
+                    width: 500,
+                    height: 380,
+                    callBack: function (id) {
+                        return top[id].acceptClick();
+                    },
+                    btn: ['导出Excel', '关闭']
+                });
+            });
+
+            //导出
+            $('#lr_exportall').on('click', function () {
+                var query = $('#multiple_condition_query').lrGetFormData();
+
+                query["ID"] = $("#ID").val();
+                query["BarCode"] = $("#BarCode").val();
+                query["MaterialCode"] = $("#MaterialCode").val();
+                query["AddrFrom"] = $("#AddrFrom").val();
+                query["AddrTo"] = $("#AddrTo").val();
+                query["AddrNext"] = $("#AddrNext").val();
+                query["WmsTask"] = $("#WmsTask").val();
+                query["AgvTaskID"] = $("#AgvTaskID").val();
+
+                query["AddTimeFrom"] = $("#AddTimeFrom").val();
+                query["AddTimeTo"] = $("#AddTimeTo").val();
+                query["StartTimeBegin"] = $("#StartTimeBegin").val();
+                query["StartTimeEnd"] = $("#StartTimeEnd").val();
+                query["EndTimeBegin"] = $("#EndTimeBegin").val();
+                query["EndTimeEnd"] = $("#EndTimeEnd").val();
+
+                query["Type"] = $("#Type").lrselectGet();
+                query["Status"] = $("#Status").lrselectGet();
+                /* query["OutType"] = $("#OutType").lrselectGet();*/
+                query["BusType"] = $("#BusType").lrselectGet();
+                query["Tunnel"] = $("#Tunnel").val();
+                query["Floor"] = $("#Floor").val();
+                query["Device"] = $("#Device").val();
+                query["WorkBench"] = $("#WorkBench").val();
+                query["WarehouseCode"] = $("#WarehouseId").lrselectGet();
+                query["Grade"] = $("#Grade").val();
+                query["MatCode"] = $("#MatCode").val();
+                query["keyword"] = $('#txt_Keyword').val();
+
+                var queryJson = JSON.stringify(query);
+
+                learun.layerForm({
+                    id: "ExcelExportForm",
+                    title: '导出Excel数据',
+                    url: top.$.rootUrl + '/Utility/ExcelExportColumn?gridId=' + $('#gridtable').attr('id') + '&subgridId=',
+                    width: 500,
+                    height: 380,
+                    callBack: function (id) {
+                        return top[id].acceptClick(function (data) {
+                            learun.download({
+                                method: "POST",
+                                url: '/FJManager/Tasks/ExportExcel',
+                                param: {
+                                    fileName: "导出历史任务",
+                                    queryJson: queryJson,
+                                    exportField: JSON.stringify(data)
+                                }
+                            });
+                        });
+                    },
+                    btn: ['导出Excel', '关闭']
+                });
+            });
+
+            $('.datetime').each(function () {
+                $(this).lrdatetime({
+                    dfdata: [
+                        { name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
+                        { name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
+                        { name: '近1个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
+                        { name: '近3个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
+                    ],
+                    // 月
+                    mShow: false,
+                    premShow: false,
+                    // 季度
+                    jShow: false,
+                    prejShow: false,
+                    // 年
+                    ysShow: false,
+                    yxShow: false,
+                    preyShow: false,
+                    yShow: false,
+                    // 默认
+                    dfvalue: 'all',
+                    selectfn: function (begin, end) {
+                        let id = $(this).attr('id');
+                        if (id == 'datesearch') {
+                            logbegin = begin;
+                            logend = end;
+                        }
+                        else if (id == 'StartTime') {
+                            StartTimeBegin = begin;
+                            StartTimeend = end;
+                        }
+                        else if (id == 'EndTime') {
+                            EndTimeBegin = begin;
+                            EndTimeend = end;
+                        }
+                    }
+                });
+            });
+
+            $('#LogLevel').lrselect({
+                url: top.$.rootUrl + '/KLHCManager/LogHub/GetLogLevelList',
+                maxHeight: 180,
+                allowSearch: false
+            });
+            $('#LogSource').lrselect({
+                url: top.$.rootUrl + '/KLHCManager/LogHub/GetLogSourceList',
+                maxHeight: 180,
+                allowSearch: false
+            });
+            $('#SourceSystem').lrselect({
+                url: top.$.rootUrl + '/KLHCManager/LogHub/GetSourceSystemList',
+                maxHeight: 180,
+                allowSearch: true
+            });
+            $('#SourceClass').lrselect({
+                url: top.$.rootUrl + '/KLHCManager/LogHub/GetSourceClassList',
+                maxHeight: 180,
+                allowSearch: true
+            });
+            $('#SourceMethod').lrselect({
+                url: top.$.rootUrl + '/KLHCManager/LogHub/GetSourceMethodList',
+                maxHeight: 180,
+                allowSearch: true
+            });
+        },
+        // 初始化列表
+        initGird: function () {
+            $('#gridtable').jfGrid({
+                url: top.$.rootUrl + '/KLHCManager/LogHub/GetPageList',
+                headData: [
+                    { label: "时间", name: "Timestamp", width: 150, align: "left" },
+                    { label: "内容", name: "Message", width: 800, align: "left" },
+                    //{ label: "级别", name: "LogLevelName", width: 50, align: "left" },
+                    {
+                        label: '级别', name: 'LogLevelName', width: 130, align: 'left', formatter: function (cellvalue) {
+                            switch (cellvalue) {
+                                case "信息": return '<span class="label label-info"  >信息</span>';
+                                case "警告": return '<span class="label label-warning"  >警告</span>';
+                                case "错误": return '<span class="label label-danger"  >错误</span>';
+                                case "调试": return '<span class="label label-Default"  >调试</span>';
+                                case "致命错误": return '<span class="label label-danger"  >致命错误</span>';
+                            };
+                        }
+                    },
+                    { label: "点", name: "SourceMethod", width: 100, align: "left" },
+                    { label: "类", name: "SourceClass", width: 100, align: "left" },
+                    { label: "系统", name: "SourceSystem", width: 100, align: "left" },
+                    { label: "来源", name: "LogSource", width: 50, align: "left" },
+                    { label: "堆栈信息", name: "ExceptionDetails", width: 50, align: "left" },
+                    { label: "上下文", name: "Context", width: 50, align: "left" },
+
+                ],
+                mainId: 'ID',
+                isPage: true,
+                reloadSelected: true,
+                sidx: 'Timestamp',
+                sord: 'DESC',
+                isSubGrid: false,
+            });
+            page.search({ queryJson: JSON.stringify({ keyword: $('#txt_Keyword').val() }) });
+        },
+        search: function (param) {
+            $('#gridtable').jfGridSet('reload', param);
+        }
+    };
+    refreshGirdData = function () {
+        $('#gridtable').jfGridSet('reload');
+    };
+    page.init();
+}

+ 8 - 0
WMS.BZWeb/WMS.BZWeb.csproj

@@ -140,6 +140,10 @@
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
       <CopyToPublishDirectory>Always</CopyToPublishDirectory>
     </Content>
+    <Content Include="Areas\KLHCManager\Views\LogHub\Index.js">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+      <CopyToPublishDirectory>Always</CopyToPublishDirectory>
+    </Content>
     <Content Include="Areas\PTManager\Views\DeviceEffectives\IndexList.js">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
       <CopyToPublishDirectory>Always</CopyToPublishDirectory>
@@ -193,6 +197,10 @@
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
       <CopyToPublishDirectory>Always</CopyToPublishDirectory>
     </Content>
+    <Content Update="Areas\KLHCManager\Views\LogHub\Index.cshtml">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+      <CopyToPublishDirectory>Always</CopyToPublishDirectory>
+    </Content>
     <Content Update="Areas\PTManager\Views\DeviceEffectives\IndexList.cshtml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
       <CopyToPublishDirectory>Always</CopyToPublishDirectory>

+ 0 - 142
WMS.BZWeb/appsettings.json

@@ -1,142 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft.AspNetCore": "Warning"
-    }
-  },
-
-  "AllowedHosts": "*",
-  "ServerOp": {
-    "dbConn": "Server=127.0.0.1;user id=sa;password=7166766;database=adms_core;",
-    "DbType": "SqlServer", //SqlServer,Oracle,MySql
-    "RedisPrev": "admscore",
-    "RedisExchangeHosts": "127.0.0.1:6379,password=7166766,allowadmin=true",
-    "VirtualPath": "",
-    "UItheme": "AdminDefault,AdminAccordion,AdminWindows,AdminTop", //AdminDefault,AdminAccordion,AdminWindows,AdminTop 框架提供4个风格界面,可通过配置确定想要的风格
-
-    "IMOpen": false, //false/true
-    "IMUrl": "",
-
-    "MailName": "",
-    "MailUserName": "",
-    "MailPassword": "",
-    "MailHost": "",
-
-    "CorpId": "",
-    "CorpSecret": "",
-    "CorpAppId": "",
-
-    "SoftName": "",
-    "Version": "",
-    "HJWMSWebAPIUrl": "https://localhost:7044/",
-    "HJWCSWebAPIUrl": "http://10.30.36.1:8080/",
-    "JwtSecret": "learun.adms.core.jwt", //JWT 密钥 请保存好
-    "JwtExp": "12", // 认证过期时间,默认12小时
-
-    "AnnexesFile": "C:/fileAnnexes",
-    "AReportsUrl": "" // 报表服务地址
-  },
-  "RedisConfigs": {
-    "WriteServerList": "127.0.0.1:6379,password=7166766,defaultDatabase=9",
-    "ReadServerList": "127.0.0.1:6379,password=7166766,defaultDatabase=15",
-    "MaxWritePoolSize": 60,
-    "MaxReadPoolSize": 60,
-    "AutoStart": "true",
-    "LocalCacheTime": 180,
-    "RecordeLog": "false"
-  },
-  "ConnectionConfigs": {
-    "Connections": [
-      {
-        "ConnectionString": "Data Source=ZLH;User ID=sa;Password=7166766;Initial Catalog=WMS_ZT_01PT",
-        "DataBaseType": 1,
-        "ConfigId": "pt",
-        "IsAutoCloseConnection": true
-      },
-      {
-        "ConnectionString": "Data Source=ZLH;User ID=sa;Password=7166766;Initial Catalog=WMS_ZT_01PT",
-        "DataBaseType": 1,
-        "ConfigId": "hj",
-        "IsAutoCloseConnection": true
-      },
-      {
-        "ConnectionString": "Data Source=ZLH;User ID=sa;Password=7166766;Initial Catalog=WMS_ZT_01FJ",
-        "DataBaseType": 1,
-        "ConfigId": "fj",
-        "IsAutoCloseConnection": true
-      },
-      {
-        "ConnectionString": "host=localhost;port=8812;username=admin;password=quest;database=qdb;ServerCompatibilityMode=NoTypeLoading;",
-        "DataBaseType": 11,
-        "ConfigId": "log",
-        "IsAutoCloseConnection": true
-      },
-      {
-        "ConnectionString": "Data Source=ZLH;User ID=sa;Password=7166766;Initial Catalog=WMS_ZT_01PT",
-        "DataBaseType": 1,
-        "ConfigId": "sx",
-        "IsAutoCloseConnection": true
-      },
-      {
-        "ConnectionString": "Data Source=ZLH;User ID=sa;Password=7166766;Initial Catalog=WMS_ZT_01PT",
-        "DataBaseType": 1,
-        "ConfigId": "cp",
-        "IsAutoCloseConnection": true
-      },
-      {
-        "ConnectionString": "Data Source=ZLH;User ID=sa;Password=7166766;Initial Catalog=WMS_ZT_01klhc",
-        "DataBaseType": 1,
-        "ConfigId": "klhc",
-        "IsAutoCloseConnection": true
-      },
-      {
-        "ConnectionString": "Data Source=ZLH;User ID=sa;Password=7166766;Initial Catalog=WMS_ZT",
-        "DataBaseType": 1,
-        "ConfigId": "usercenter",
-        "IsAutoCloseConnection": true
-      }
-    ],
-    "WMSConnectionConfig": {
-      "ConnectionString": "Data Source=localhost;Initial Catalog=fxwms;Persist Security Info=True;User ID=sa;PWD=Bz123456;",
-      //"ConnectionString": "Data Source=10.30.44.50;User ID=bz;Password=Aa123456@;Initial Catalog=HJWMS",
-      "DbSetNo": "BaseDB",
-      "DataBaseType": 1,
-      "InitKey": 0,
-      "IsAutoCloseConn": true
-    },
-    "WCSConnectionConfig": {
-      "ConnectionString": "Data Source=localhost;Initial Catalog=WCS_OPP;Persist Security Info=True;User ID=sa;PWD=Bz123456;",
-      "DbSetNo": "BaseDB",
-      "DataBaseType": 1,
-      "InitKey": 0,
-      "IsAutoCloseConn": true
-    }
-  },
-  "QuestDBConnectionConfigs": {
-    "Connections": [
-      {
-        "ConnectionString": "host=10.30.37.2;port=8812;username=admin;password=quest;database=qdb;ServerCompatibilityMode=NoTypeLoading;",
-        //"ConnectionString": "Data Source=127.0.0.1;User ID=bz;Password=123456;Initial Catalog=WMS_ZT",
-        "DataBaseType": 11,
-        "ConfigId": "questdbfj",
-        "IsAutoCloseConnection": true
-      },
-      {
-        "ConnectionString": "host=10.30.37.2;port=8812;username=admin;password=quest;database=qdb;ServerCompatibilityMode=NoTypeLoading;",
-        //"ConnectionString": "Data Source=127.0.0.1;User ID=bz;Password=123456;Initial Catalog=WMS_ZT",
-        "DataBaseType": 11,
-        "ConfigId": "questdbsx",
-        "IsAutoCloseConnection": true
-      }
-    ]
-  },
-  "WCSRedis": {
-    "HJRedis": "10.30.44.3,password=123456,database=13,prefix=Alloy:",
-    //"HJRedis": "127.0.0.1:6379,database=14,poolsize=50,connectTimeout=5000,syncTimeout=10000",
-    "PTRedis": "127.0.0.1:6379,database=15,prefix=Alloy:,poolsize=50,connectTimeout=5000,syncTimeout=10000",
-    "FJRedis": "127.0.0.1:6379,database=13,poolsize=50,connectTimeout=5000,syncTimeout=10000",
-    "SXRedis": "127.0.0.1:6379,database=12,poolsize=50,connectTimeout=5000,syncTimeout=10000",
-    "CPRedis": "127.0.0.1:6379,database=11,poolsize=50,connectTimeout=5000,syncTimeout=10000"
-  }
-}