lixiaojun
2024-04-30 b4db153d2e28d451592811fea29c6d1bab71887b
优化运行分析,运行记录结构更改,运行服务新增监测中断判断
已重命名27个文件
已修改29个文件
已添加2个文件
667 ■■■■■ 文件已修改
Yw.Application.Run.Core/00-core/Mapper.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Application.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Application.Run.Core/Yw.Application.Run.Core.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/01-configure/AddRunAnalyConfigureInput.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/01-configure/RunAnalyConfigureStdDto.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/01-configure/SetRunAnalyConfigureInput.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/01-configure/UpdateRunAnalyConfigureInput.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/02-record/AddRunRealLastRecordInput.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/02-record/RunRealRecordStdDto.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/Yw.Dto.Run.Core.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Server.Run/01-equipment/01-service/EquipmentRunAnalyServiceJob.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Server.Run/01-equipment/02-single/EquipmentRunAnalyChangeTimesHelper.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Server.Run/01-equipment/02-single/EquipmentRunAnalySingleJob.cs 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Server.Run/02-emws/01-service/EMWSRunAnalyServiceJob.cs 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Server.Run/02-emws/02-single/EMWSRunAnalyChangeTimesHelper.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Server.Run/02-emws/02-single/EMWSRunAnalySingleJob.cs 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Server.Run/Yw.Server.Run.csproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/00-core/AnalyStatus.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/00-core/DataType.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/00-core/Flags.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/00-core/RunStatus.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/00-core/SysParas.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/01-entity/RunAnalyConfigure.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/01-entity/RunRealRecord.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/02-model/RunAnalyConfigure.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/02-model/RunRealRecord.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/00-core/RunFileHelper.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/00-core/RunParasHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/00-core/Paras_Run.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/00-core/RunParas.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/01-database/Paras_Run_DataBase.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/01-database/Paras_Run_DataBase_Factory.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/01-database/Paras_Run_DataBase_PostgreSql.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/01-database/Paras_Run_DataBase_SQLite.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/02-lcache/Paras_Run_LCache.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/02-lcache/Paras_Run_LCache_Factory.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/03-queue/Paras_Run_Queue.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/03-queue/Paras_Run_Queue_Factory.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/04-exchange/Paras_Run_Exchange.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/04-exchange/Paras_Run_Exchange_Factory.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/05-cal/Paras_Run_CAL.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/05-cal/Paras_Run_CAL_HttpClient.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/05-cal/Paras_Run_CAL_LocalClient.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/06-run/Paras_Run_Run.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/03-settings/01-paras/07-task/Paras_Run_Task.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/04-dal/02-postgresql/RunRealRecord.cs 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/04-dal/03-sqlite/RunRealRecord.cs 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/05-lcache/00-core/CacheKeyHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/06-exchange/00-core/RunExchangeNameHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/07-service/00-core/01-create/DALCreateHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/07-service/00-core/01-create/ExchangeCreateHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/07-service/00-core/01-create/LCacheCreateHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/07-service/00-core/01-create/QueueCreateHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/07-service/00-core/02-cache/CacheHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/07-service/00-core/03-extensions/Extensions.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/Yw.Service.Run.Core.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Application.Run.Core/00-core/Mapper.cs
@@ -26,6 +26,7 @@
            config.ForType<AddRunRealLastRecordInput, Model.RunRealRecord>()
                .Map(dest => dest.DataTime, src => DateTime.Now)
                .Map(dest => dest.AnalyStatus, src => AnalyStatus.Normal);
            #endregion
        }
Yw.Application.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@
-->
<Project>
  <PropertyGroup>
    <History>True|2024-04-26T03:52:38.6381832Z;True|2024-04-01T11:40:26.8126073+08:00;True|2024-03-26T09:54:08.7672773+08:00;True|2024-02-01T15:13:33.2518157+08:00;True|2024-01-27T11:05:20.5193198+08:00;True|2024-01-21T14:54:51.3939785+08:00;True|2024-01-08T17:00:51.0941947+08:00;True|2023-12-16T15:43:21.8065953+08:00;True|2023-12-11T11:56:46.3121435+08:00;True|2023-12-11T11:27:23.3317604+08:00;True|2023-12-11T11:27:14.6709240+08:00;True|2023-07-13T12:10:11.2591498+08:00;True|2023-05-25T18:02:16.3580168+08:00;True|2023-05-25T15:44:32.4909866+08:00;</History>
    <History>True|2024-04-30T05:48:09.3970916Z;True|2024-04-26T11:52:38.6381832+08:00;True|2024-04-01T11:40:26.8126073+08:00;True|2024-03-26T09:54:08.7672773+08:00;True|2024-02-01T15:13:33.2518157+08:00;True|2024-01-27T11:05:20.5193198+08:00;True|2024-01-21T14:54:51.3939785+08:00;True|2024-01-08T17:00:51.0941947+08:00;True|2023-12-16T15:43:21.8065953+08:00;True|2023-12-11T11:56:46.3121435+08:00;True|2023-12-11T11:27:23.3317604+08:00;True|2023-12-11T11:27:14.6709240+08:00;True|2023-07-13T12:10:11.2591498+08:00;True|2023-05-25T18:02:16.3580168+08:00;True|2023-05-25T15:44:32.4909866+08:00;</History>
    <LastFailureDetails />
  </PropertyGroup>
</Project>
Yw.Application.Run.Core/Yw.Application.Run.Core.csproj
@@ -7,7 +7,7 @@
    <RootNamespace>Yw.Application</RootNamespace>
    <GenerateDocumentationFile>True</GenerateDocumentationFile>
    <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
    <Version>3.0.2</Version>
    <Version>3.0.6</Version>
  </PropertyGroup>
  <ItemGroup>
@@ -27,7 +27,7 @@
  <ItemGroup>
    <PackageReference Include="Yw.Application.Core" Version="3.0.5" />
    <PackageReference Include="Yw.Dto.Run.Core" Version="3.0.2" />
    <PackageReference Include="Yw.Dto.Run.Core" Version="3.0.6" />
  </ItemGroup>
</Project>
Yw.Dto.Run.Core/01-configure/AddRunAnalyConfigureInput.cs
@@ -18,7 +18,7 @@
        public long ObjectID { get; set; }
        /// <summary>
        /// åˆ†æžé¢‘率
        /// åˆ†æžé¢‘率(秒)
        /// </summary>    
        [Required]
        public int Frequency { get; set; }
Yw.Dto.Run.Core/01-configure/RunAnalyConfigureStdDto.cs
@@ -39,7 +39,7 @@
        public long ObjectID { get; set; }
        /// <summary>
        /// åˆ†æžé¢‘率
        /// åˆ†æžé¢‘率(秒)
        /// </summary>    
        public int Frequency { get; set; }
Yw.Dto.Run.Core/01-configure/SetRunAnalyConfigureInput.cs
@@ -24,7 +24,7 @@
        public long ObjectID { get; set; }
        /// <summary>
        /// åˆ†æžé¢‘率
        /// åˆ†æžé¢‘率(秒)
        /// </summary>    
        [Required]
        public int Frequency { get; set; }
Yw.Dto.Run.Core/01-configure/UpdateRunAnalyConfigureInput.cs
@@ -13,7 +13,7 @@
        public long ID { get; set; }
        /// <summary>
        /// åˆ†æžé¢‘率
        /// åˆ†æžé¢‘率(秒)
        /// </summary>    
        [Required]
        public int Frequency { get; set; }
Yw.Dto.Run.Core/02-record/AddRunRealLastRecordInput.cs
@@ -24,10 +24,16 @@
        public int RSa { get; set; }
        /// <summary>
        /// è¿žç»­è¿è¡Œæ—¶é—´
        /// è¿žç»­æ—¶é—´
        /// </summary>
        [Required, Range(0, int.MaxValue, ErrorMessage = "ContinueRunTime ä¸èƒ½ä¸ºè´Ÿæ•°")]
        public int ContinueRunTime { get; set; }
        [Required, Range(0, int.MaxValue, ErrorMessage = "ContinueTime ä¸èƒ½ä¸ºè´Ÿæ•°")]
        public int ContinueTime { get; set; }
        /// <summary>
        /// æ€»åœæœºæ—¶é—´
        /// </summary>
        [Required, Range(0, int.MaxValue, ErrorMessage = "TotalShutTime ä¸èƒ½ä¸ºè´Ÿæ•°")]
        public int TotalShutTime { get; set; }
        /// <summary>
        /// æ€»è¿è¡Œæ—¶é—´
Yw.Dto.Run.Core/02-record/RunRealRecordStdDto.cs
@@ -19,7 +19,8 @@
            this.ObjectID = rhs.ObjectID;
            this.DataTime = rhs.DataTime;
            this.RSa = rhs.RSa;
            this.ContinueRunTime = rhs.ContinueRunTime;
            this.ContinueTime = rhs.ContinueTime;
            this.TotalShutTime = rhs.TotalShutTime;
            this.TotalRunTime = rhs.TotalRunTime;
            this.BootTimes = rhs.BootTimes;
            this.AnalyStatus = rhs.AnalyStatus;
@@ -47,9 +48,14 @@
        public int RSa { get; set; }
        /// <summary>
        /// è¿žç»­è¿è¡Œæ—¶é—´
        /// è¿žç»­æ—¶é—´
        /// </summary>
        public int ContinueRunTime { get; set; }
        public int ContinueTime { get; set; }
        /// <summary>
        /// æ€»åœæœºæ—¶é—´
        /// </summary>
        public int TotalShutTime { get; set; }
        /// <summary>
        /// æ€»è¿è¡Œæ—¶é—´
Yw.Dto.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@
-->
<Project>
  <PropertyGroup>
    <History>True|2024-04-26T03:51:11.4880401Z;True|2024-04-26T11:50:49.7392651+08:00;True|2024-04-26T11:50:39.7372723+08:00;True|2024-04-01T11:39:12.7290526+08:00;True|2024-03-26T09:51:34.4055575+08:00;</History>
    <History>True|2024-04-30T05:46:18.9575803Z;True|2024-04-30T11:29:49.6927256+08:00;True|2024-04-26T11:51:11.4880401+08:00;True|2024-04-26T11:50:49.7392651+08:00;True|2024-04-26T11:50:39.7372723+08:00;True|2024-04-01T11:39:12.7290526+08:00;True|2024-03-26T09:51:34.4055575+08:00;</History>
    <LastFailureDetails />
  </PropertyGroup>
</Project>
Yw.Dto.Run.Core/Yw.Dto.Run.Core.csproj
@@ -4,13 +4,13 @@
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>disable</Nullable>
    <Version>3.0.2</Version>
    <Version>3.0.6</Version>
    <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Yw.Dto.Core" Version="3.0.5" />
    <PackageReference Include="Yw.Service.Run.Core" Version="3.0.2" />
    <PackageReference Include="Yw.Service.Run.Core" Version="3.0.6" />
  </ItemGroup>
</Project>
Yw.Server.Run/01-equipment/01-service/EquipmentRunAnalyServiceJob.cs
@@ -31,6 +31,24 @@
                   #endregion
                   #region å…³é—­ä»»åŠ¡
                   foreach (var jobHelper in _jobHelpers.ToList())
                   {
                       var configure = configureList.Find(x => x.ObjectType == jobHelper.Configure.ObjectType
                           && x.ObjectID == jobHelper.Configure.ObjectID
                           && x.ChangeTimes == jobHelper.Configure.ChangeTimes
                           && x.Frequency == jobHelper.Configure.Frequency);
                       if (configure == null)
                       {
                           await jobHelper.CancelJob();
                           _jobHelpers.Remove(jobHelper);
                           LogHelper.Info($"设备运行分析服务任务中,,数据id:{jobHelper.Configure.ObjectID},改变次数:{jobHelper.Configure.ChangeTimes},分析频率:{jobHelper.Configure.Frequency},计划任务关闭!");
                       }
                   }
                   #endregion
                   #region å¼€å¯ä»»åŠ¡
                   foreach (var configure in configureList)
@@ -50,23 +68,7 @@
                   #endregion
                   #region å…³é—­ä»»åŠ¡
                   foreach (var jobHelper in _jobHelpers.ToList())
                   {
                       var configure = configureList.Find(x => x.ObjectType == jobHelper.Configure.ObjectType
                           && x.ObjectID == jobHelper.Configure.ObjectID
                           && x.ChangeTimes == jobHelper.Configure.ChangeTimes
                           && x.Frequency == jobHelper.Configure.Frequency);
                       if (configure == null)
                       {
                           await jobHelper.CancelJob();
                           _jobHelpers.Remove(jobHelper);
                           LogHelper.Info($"设备运行分析服务任务中,,数据id:{jobHelper.Configure.ObjectID},改变次数:{jobHelper.Configure.ChangeTimes},分析频率:{jobHelper.Configure.Frequency},计划任务关闭!");
                       }
                   }
                   #endregion
                   LogHelper.Info($"设备运行分析服务任务中,开启任务数量为{_jobHelpers.Count}!");
               }
Yw.Server.Run/01-equipment/02-single/EquipmentRunAnalyChangeTimesHelper.cs
@@ -1,26 +1,48 @@
namespace Yw.Server
using Yw.Service.Basic;
using Yw.Service.Monitor;
namespace Yw.Server
{
    /// <summary>
    /// 
    /// </summary>
    public class EquipmentRunAnalyChangeTimesHelper
    {
        private static ConcurrentDictionary<long, List<Yw.Model.MonitorRealRecord>> _dict = new();//缓存
        private static readonly ConcurrentDictionary<long, List<int>> _dict = new();//缓存
        /// <summary>
        /// è®¾ç½®
        /// </summary>
        public static void Set(long configureId, int changeTimes, Yw.Model.MonitorRealRecord record)
        public static void Set(long configureId, int changeTimes, Yw.Model.MonitorPoint monitor, Yw.Model.MonitorRealRecord record)
        {
            _dict.TryAdd(configureId, new List<Yw.Model.MonitorRealRecord>());
            _dict.TryAdd(configureId, new List<int>());
            if (_dict[configureId].Count >= changeTimes)
            {
                _dict[configureId].RemoveAt(0);
            }
            if (record != null)
            var rsa = Yw.Run.RunStatus.Shut;
            if (monitor != null)
            {
                _dict[configureId].Add(record);
                if (record != null)
                {
                    if (int.TryParse(record.DataValue, out int intDataValue))
                    {
                        if (intDataValue > Yw.Monitor.RunStatus.Shut)
                        {
                            rsa = Yw.Run.RunStatus.Run;
                        }
                    }
                }
                var config_interrupt = Yw.Run.SysParas.EnableMonitorInterruptJudgement.GetPValue<bool?>();
                if (config_interrupt.HasValue && config_interrupt.Value)
                {
                    if (monitor.IsInterrupt(record))
                    {
                        rsa = Yw.Run.RunStatus.Shut;
                    }
                }
            }
            _dict[configureId].Add(rsa);
        }
        /// <summary>
@@ -36,7 +58,7 @@
            {
                return false;
            }
            if (_dict[configureId].Select(x => x.DataValue).Distinct().Count() > 1)
            if (_dict[configureId].Distinct().Count() > 1)
            {
                return false;
            }
Yw.Server.Run/01-equipment/02-single/EquipmentRunAnalySingleJob.cs
@@ -1,4 +1,7 @@
namespace Yw.Server
using Yw.Service.Basic;
using Yw.Service.Monitor;
namespace Yw.Server
{
    /// <summary>
    /// è®¾å¤‡è¿è¡Œåˆ†æžå•任务
@@ -68,37 +71,37 @@
                    #region è¿è¡Œæµ‹ç‚¹
                    var monitorList = allMonitorList.Where(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.运行状态)).ToList();
                    if (monitorList == null || monitorList.Count < 1)
                    var signal = allMonitorList.Matching(Yw.Monitor.SignalType.运行状态, new List<string>() { Yw.Run.Flags.默认 });
                    if (signal == null)
                    {
                        signal = allMonitorList.Matching(Yw.Monitor.SignalType.运行状态, null);
                    }
                    if (signal == null)
                    {
                        LogHelper.Info($"设备运行分析单任务中,设备id:{configure.ObjectID} æ£€ç´¢è¿è¡ŒçŠ¶æ€æµ‹ç‚¹å¤±è´¥ï¼");
                        return;
                    }
                    var monitor = monitorList.Find(x => x.Flags.Contains(Yw.Monitor.Flags.默认));
                    if (monitor == null)
                    {
                        monitor = monitorList.First();
                    }
                    var monitor = allMonitorList.Find(x => x.ID == signal.MonitorPointID);
                    #endregion
                    #region è¿žç»­ç¼“å­˜
                    var lastRecord = new Yw.Service.MonitorRealRecord().GetLastRecord(monitor.SignalList.First().ID);
                    EquipmentRunAnalyChangeTimesHelper.Set(configure.ID, configure.ChangeTimes, lastRecord);
                    var lastRecord = new Yw.Service.MonitorRealRecord().GetLastRecord(signal.ID);
                    EquipmentRunAnalyChangeTimesHelper.Set(configure.ID, configure.ChangeTimes, monitor, lastRecord);
                    #endregion
                    #region æ•°æ®åˆ†æž
                    #region è¿è¡Œåˆ†æž
                    var run_record = new Yw.Model.RunRealRecord()
                    var runRecord = new Yw.Model.RunRealRecord()
                    {
                        ObjectType = configure.ObjectType,
                        ObjectID = configure.ObjectID,
                        DataTime = DateTime.Now,
                        RSa = Yw.Run.RunStatus.Stop,
                        ContinueRunTime = 0,
                        RSa = Yw.Run.RunStatus.Shut,
                        ContinueTime = configure.Frequency,
                        TotalShutTime = configure.Frequency,
                        TotalRunTime = 0,
                        BootTimes = 0,
                        AnalyStatus = Yw.Run.AnalyStatus.Normal,
@@ -108,69 +111,84 @@
                    var lastRunRecord = new Yw.Service.RunRealRecord().GetLastRecord(configure.ObjectType, configure.ObjectID);
                    if (lastRunRecord == null)
                    {
                        run_record.AnalyInfo = "首次分析";
                        runRecord.AnalyInfo = "首次分析";
                        if (lastRecord == null)
                        {
                            run_record.AnalyStatus = Yw.Run.AnalyStatus.Missing;
                            runRecord.AnalyStatus = Yw.Run.AnalyStatus.Missing;
                        }
                        else
                        {
                            if (double.TryParse(lastRecord.DataValue, out double outDataValue))
                            if (Yw.Monitor.DataStatus.HasError(lastRecord.DataStatus))
                            {
                                if (outDataValue > 0)
                                {
                                    run_record.RSa = Yw.Run.RunStatus.Run;
                                    run_record.ContinueRunTime += configure.Frequency;
                                    run_record.TotalRunTime += configure.Frequency;
                                    run_record.BootTimes += 1;
                                }
                                runRecord.AnalyStatus = Yw.Run.AnalyStatus.Abnormal;
                            }
                            else
                            {
                                run_record.AnalyStatus = Yw.Run.AnalyStatus.Abnormal;
                                if (int.TryParse(lastRecord.DataValue, out int intDataValue))
                                {
                                    if (intDataValue > Yw.Monitor.RunStatus.Shut)
                                    {
                                        runRecord.RSa = Yw.Run.RunStatus.Run;
                                        runRecord.BootTimes += 1;
                                        runRecord.TotalRunTime += configure.Frequency;
                                    }
                                }
                                else
                                {
                                    runRecord.AnalyStatus = Yw.Run.AnalyStatus.Error;
                                }
                            }
                        }
                    }
                    else
                    {
                        run_record.RSa = lastRunRecord.RSa;
                        run_record.ContinueRunTime = lastRunRecord.ContinueRunTime;
                        run_record.TotalRunTime = lastRunRecord.TotalRunTime;
                        run_record.BootTimes = lastRunRecord.BootTimes;
                        if (lastRecord == null)
                        runRecord.RSa = lastRunRecord.RSa;
                        runRecord.ContinueTime = lastRunRecord.ContinueTime;
                        runRecord.TotalShutTime = lastRunRecord.TotalShutTime;
                        runRecord.TotalRunTime = lastRunRecord.TotalRunTime;
                        runRecord.BootTimes = lastRunRecord.BootTimes;
                        if (EquipmentRunAnalyChangeTimesHelper.HasChanged(configure.ID, configure.ChangeTimes))
                        {
                            run_record.AnalyStatus = Yw.Run.AnalyStatus.Missing;
                            runRecord.RSa = runRecord.RSa == Yw.Run.RunStatus.Run ? Yw.Run.RunStatus.Shut : Yw.Run.RunStatus.Run;
                            runRecord.ContinueTime = configure.Frequency;
                            if (runRecord.RSa == Yw.Run.RunStatus.Run)
                            {
                                runRecord.BootTimes += 1;
                            }
                        }
                        else
                        {
                            if (double.TryParse(lastRecord.DataValue, out double outDataValue))
                            runRecord.ContinueTime += configure.Frequency;
                        }
                        if (runRecord.RSa == Yw.Run.RunStatus.Shut)
                        {
                            runRecord.TotalShutTime += configure.Frequency;
                        }
                        else
                        {
                            runRecord.TotalRunTime += configure.Frequency;
                        }
                        if (lastRecord == null)
                        {
                            runRecord.AnalyStatus = Yw.Run.AnalyStatus.Missing;
                        }
                        else
                        {
                            if (Yw.Monitor.DataStatus.HasError(lastRecord.DataStatus))
                            {
                                var run_status = outDataValue > 0 ? Yw.Run.RunStatus.Run : Yw.Run.RunStatus.Stop;
                                if (run_status != run_record.RSa)
                                runRecord.AnalyStatus = Yw.Run.AnalyStatus.Abnormal;
                            }
                            var enable_interrupt = Yw.Run.SysParas.EnableMonitorInterruptJudgement.GetPValue<bool?>();
                            if (enable_interrupt.HasValue && enable_interrupt.Value)
                            {
                                if (monitor.IsInterrupt(lastRecord))
                                {
                                    if (EquipmentRunAnalyChangeTimesHelper.HasChanged(configure.ID, configure.ChangeTimes))
                                    {
                                        run_record.RSa = run_status;
                                        if (run_status == Yw.Run.RunStatus.Run)
                                        {
                                            run_record.BootTimes += 1;
                                        }
                                        if (run_record.RSa == Yw.Run.RunStatus.Stop)
                                        {
                                            run_record.ContinueRunTime = 0;
                                        }
                                    }
                                    runRecord.AnalyStatus = Yw.Run.AnalyStatus.Interrupt;
                                }
                            }
                            else
                            {
                                run_record.AnalyStatus = Yw.Run.AnalyStatus.Abnormal;
                            }
                        }
                        if (run_record.RSa == Yw.Run.RunStatus.Run)
                        {
                            run_record.TotalRunTime += configure.Frequency;
                            run_record.ContinueRunTime += configure.Frequency;
                        }
                    }
@@ -178,7 +196,7 @@
                    #region æ•°æ®å­˜å‚¨
                    var bol = new Yw.Service.RunRealRecord().InsertLastRecord(run_record);
                    var bol = new Yw.Service.RunRealRecord().InsertLastRecord(runRecord);
                    if (bol)
                    {
                        LogHelper.Info($"设备运行分析单任务中,设备id:{configure.ObjectID} è¿è¡Œè®°å½•分析成功!");
Yw.Server.Run/02-emws/01-service/EMWSRunAnalyServiceJob.cs
@@ -31,25 +31,6 @@
                   #endregion
                   #region å¼€å¯ä»»åŠ¡
                   foreach (var configure in configureList)
                   {
                       var jobHelper = _jobHelpers.Find(x => x.Configure.ObjectType == configure.ObjectType
                           && x.Configure.ObjectID == configure.ObjectID
                           && x.Configure.ChangeTimes == configure.ChangeTimes
                           && x.Configure.Frequency == configure.Frequency);
                       if (jobHelper == null)
                       {
                           jobHelper = new EMWSRunAnalySingleJobHelper();
                           await jobHelper.StartJob(configure);
                           _jobHelpers.Add(jobHelper);
                           LogHelper.Info($"工位运行分析服务任务中,数据id:{configure.ObjectID},改变次数:{configure.ChangeTimes},分析频率:{configure.Frequency},计划任务开启!");
                       }
                   }
                   #endregion
                   #region å…³é—­ä»»åŠ¡
                   foreach (var jobHelper in _jobHelpers.ToList())
@@ -68,6 +49,24 @@
                   #endregion
                   #region å¼€å¯ä»»åŠ¡
                   foreach (var configure in configureList)
                   {
                       var jobHelper = _jobHelpers.Find(x => x.Configure.ObjectType == configure.ObjectType
                           && x.Configure.ObjectID == configure.ObjectID
                           && x.Configure.ChangeTimes == configure.ChangeTimes
                           && x.Configure.Frequency == configure.Frequency);
                       if (jobHelper == null)
                       {
                           jobHelper = new EMWSRunAnalySingleJobHelper();
                           await jobHelper.StartJob(configure);
                           _jobHelpers.Add(jobHelper);
                           LogHelper.Info($"工位运行分析服务任务中,数据id:{configure.ObjectID},改变次数:{configure.ChangeTimes},分析频率:{configure.Frequency},计划任务开启!");
                       }
                   }
                   #endregion
                   LogHelper.Info($"工位运行分析服务任务中,开启任务数量为{_jobHelpers.Count}!");
               }
Yw.Server.Run/02-emws/02-single/EMWSRunAnalyChangeTimesHelper.cs
@@ -1,26 +1,48 @@
namespace Yw.Server
using Yw.Service.Basic;
using Yw.Service.Monitor;
namespace Yw.Server
{
    /// <summary>
    /// 
    /// </summary>
    public class EMWSRunAnalyChangeTimesHelper
    {
        private static ConcurrentDictionary<long, List<Yw.Model.MonitorRealRecord>> _dict = new();//缓存
        private static readonly ConcurrentDictionary<long, List<int>> _dict = new();//缓存
        /// <summary>
        /// è®¾ç½®
        /// </summary>
        public static void Set(long configureId, int changeTimes, Yw.Model.MonitorRealRecord record)
        public static void Set(long configureId, int changeTimes, Yw.Model.MonitorPoint monitor, Yw.Model.MonitorRealRecord record)
        {
            _dict.TryAdd(configureId, new List<Yw.Model.MonitorRealRecord>());
            _dict.TryAdd(configureId, new List<int>());
            if (_dict[configureId].Count >= changeTimes)
            {
                _dict[configureId].RemoveAt(0);
            }
            if (record != null)
            var rsa = Yw.Run.RunStatus.Shut;
            if (monitor != null)
            {
                _dict[configureId].Add(record);
                if (record != null)
                {
                    if (int.TryParse(record.DataValue, out int intDataValue))
                    {
                        if (intDataValue > Yw.Monitor.RunStatus.Shut)
                        {
                            rsa = Yw.Run.RunStatus.Run;
                        }
                    }
                }
                var config_interrupt = Yw.Run.SysParas.EnableMonitorInterruptJudgement.GetPValue<bool?>();
                if (config_interrupt.HasValue && config_interrupt.Value)
                {
                    if (monitor.IsInterrupt(record))
                    {
                        rsa = Yw.Run.RunStatus.Shut;
                    }
                }
            }
            _dict[configureId].Add(rsa);
        }
        /// <summary>
@@ -36,7 +58,7 @@
            {
                return false;
            }
            if (_dict[configureId].Select(x => x.DataValue).Distinct().Count() > 1)
            if (_dict[configureId].Distinct().Count() > 1)
            {
                return false;
            }
Yw.Server.Run/02-emws/02-single/EMWSRunAnalySingleJob.cs
@@ -1,4 +1,8 @@
namespace Yw.Server
using Yw.LCache.Medis;
using Yw.Service.Basic;
using Yw.Service.Monitor;
namespace Yw.Server
{
    /// <summary>
    /// å·¥ä½è¿è¡Œåˆ†æžå•任务
@@ -80,108 +84,124 @@
                    #region è¿è¡Œæµ‹ç‚¹
                    var monitorList = allMonitorList.Where(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.运行状态)).ToList();
                    if (monitorList == null || monitorList.Count < 1)
                    var signal = allMonitorList.Matching(Yw.Monitor.SignalType.运行状态, new List<string>() { Yw.Run.Flags.默认 });
                    if (signal == null)
                    {
                        signal = allMonitorList.Matching(Yw.Monitor.SignalType.运行状态, null);
                    }
                    if (signal == null)
                    {
                        LogHelper.Info($"工位运行分析单任务中,设备id:{configure.ObjectID} æ£€ç´¢è¿è¡ŒçŠ¶æ€æµ‹ç‚¹å¤±è´¥ï¼");
                        return;
                    }
                    var monitor = monitorList.Find(x => x.Flags.Contains(Yw.Monitor.Flags.默认));
                    if (monitor == null)
                    {
                        monitor = monitorList.First();
                    }
                    var monitor = allMonitorList.Find(x => x.ID == signal.MonitorPointID);
                    #endregion
                    #region è¿žç»­ç¼“å­˜
                    var lastMonitorRecord = service_monitor_record.Value.GetLastRecord(monitor.SignalList.First().ID);
                    EMWSRunAnalyChangeTimesHelper.Set(configure.ID, configure.ChangeTimes, lastMonitorRecord);
                    var lastRecord = new Yw.Service.MonitorRealRecord().GetLastRecord(signal.ID);
                    EMWSRunAnalyChangeTimesHelper.Set(configure.ID, configure.ChangeTimes, monitor, lastRecord);
                    #endregion
                    #region æ•°æ®åˆ†æž
                    #region è¿è¡Œåˆ†æž
                    var run_record = new Yw.Model.RunRealRecord()
                    var runRecord = new Yw.Model.RunRealRecord()
                    {
                        ObjectType = configure.ObjectType,
                        ObjectID = configure.ObjectID,
                        DataTime = DateTime.Now,
                        RSa = Yw.Run.RunStatus.Stop,
                        ContinueRunTime = 0,
                        RSa = Yw.Run.RunStatus.Shut,
                        ContinueTime = configure.Frequency,
                        TotalShutTime = configure.Frequency,
                        TotalRunTime = 0,
                        BootTimes = 0,
                        AnalyStatus = Yw.Run.AnalyStatus.Normal,
                        AnalyInfo = null
                    };
                    var lastRunRecord = service_run_record.Value.GetLastRecord(configure.ObjectType, configure.ObjectID);
                    var lastRunRecord = new Yw.Service.RunRealRecord().GetLastRecord(configure.ObjectType, configure.ObjectID);
                    if (lastRunRecord == null)
                    {
                        run_record.AnalyInfo = "首次分析";
                        if (lastMonitorRecord == null)
                        runRecord.AnalyInfo = "首次分析";
                        if (lastRecord == null)
                        {
                            run_record.AnalyStatus = Yw.Run.AnalyStatus.Missing;
                            runRecord.AnalyStatus = Yw.Run.AnalyStatus.Missing;
                        }
                        else
                        {
                            if (double.TryParse(lastMonitorRecord.DataValue, out double outDataValue))
                            if (Yw.Monitor.DataStatus.HasError(lastRecord.DataStatus))
                            {
                                if (outDataValue > 0)
                                {
                                    run_record.RSa = Yw.Run.RunStatus.Run;
                                    run_record.ContinueRunTime += configure.Frequency;
                                    run_record.TotalRunTime += configure.Frequency;
                                    run_record.BootTimes += 1;
                                }
                                runRecord.AnalyStatus = Yw.Run.AnalyStatus.Abnormal;
                            }
                            else
                            {
                                run_record.AnalyStatus = Yw.Run.AnalyStatus.Abnormal;
                                if (int.TryParse(lastRecord.DataValue, out int intDataValue))
                                {
                                    if (intDataValue > Yw.Monitor.RunStatus.Shut)
                                    {
                                        runRecord.RSa = Yw.Run.RunStatus.Run;
                                        runRecord.BootTimes += 1;
                                        runRecord.TotalRunTime += configure.Frequency;
                                    }
                                }
                                else
                                {
                                    runRecord.AnalyStatus = Yw.Run.AnalyStatus.Error;
                                }
                            }
                        }
                    }
                    else
                    {
                        run_record.RSa = lastRunRecord.RSa;
                        run_record.ContinueRunTime = lastRunRecord.ContinueRunTime;
                        run_record.TotalRunTime = lastRunRecord.TotalRunTime;
                        run_record.BootTimes = lastRunRecord.BootTimes;
                        if (lastMonitorRecord == null)
                        runRecord.RSa = lastRunRecord.RSa;
                        runRecord.ContinueTime = lastRunRecord.ContinueTime;
                        runRecord.TotalShutTime = lastRunRecord.TotalShutTime;
                        runRecord.TotalRunTime = lastRunRecord.TotalRunTime;
                        runRecord.BootTimes = lastRunRecord.BootTimes;
                        if (EMWSRunAnalyChangeTimesHelper.HasChanged(configure.ID, configure.ChangeTimes))
                        {
                            run_record.AnalyStatus = Yw.Run.AnalyStatus.Missing;
                            runRecord.RSa = runRecord.RSa == Yw.Run.RunStatus.Run ? Yw.Run.RunStatus.Shut : Yw.Run.RunStatus.Run;
                            runRecord.ContinueTime = configure.Frequency;
                            if (runRecord.RSa == Yw.Run.RunStatus.Run)
                            {
                                runRecord.BootTimes += 1;
                            }
                        }
                        else
                        {
                            if (double.TryParse(lastMonitorRecord.DataValue, out double outDataValue))
                            runRecord.ContinueTime += configure.Frequency;
                        }
                        if (runRecord.RSa == Yw.Run.RunStatus.Shut)
                        {
                            runRecord.TotalShutTime += configure.Frequency;
                        }
                        else
                        {
                            runRecord.TotalRunTime += configure.Frequency;
                        }
                        if (lastRecord == null)
                        {
                            runRecord.AnalyStatus = Yw.Run.AnalyStatus.Missing;
                        }
                        else
                        {
                            if (Yw.Monitor.DataStatus.HasError(lastRecord.DataStatus))
                            {
                                var run_status = outDataValue > 0 ? Yw.Run.RunStatus.Run : Yw.Run.RunStatus.Stop;
                                if (run_status != run_record.RSa)
                                runRecord.AnalyStatus = Yw.Run.AnalyStatus.Abnormal;
                            }
                            var enable_interrupt = Yw.Run.SysParas.EnableMonitorInterruptJudgement.GetPValue<bool?>();
                            if (enable_interrupt.HasValue && enable_interrupt.Value)
                            {
                                if (monitor.IsInterrupt(lastRecord))
                                {
                                    if (EMWSRunAnalyChangeTimesHelper.HasChanged(configure.ID, configure.ChangeTimes))
                                    {
                                        run_record.RSa = run_status;
                                        if (run_status == Yw.Run.RunStatus.Run)
                                        {
                                            run_record.BootTimes += 1;
                                        }
                                        if (run_record.RSa == Yw.Run.RunStatus.Stop)
                                        {
                                            run_record.ContinueRunTime = 0;
                                        }
                                    }
                                    runRecord.AnalyStatus = Yw.Run.AnalyStatus.Interrupt;
                                }
                            }
                            else
                            {
                                run_record.AnalyStatus = Yw.Run.AnalyStatus.Abnormal;
                            }
                        }
                        if (run_record.RSa == Yw.Run.RunStatus.Run)
                        {
                            run_record.TotalRunTime += configure.Frequency;
                            run_record.ContinueRunTime += configure.Frequency;
                        }
                    }
@@ -189,7 +209,7 @@
                    #region æ•°æ®å­˜å‚¨
                    var bol = service_run_record.Value.InsertLastRecord(run_record);
                    var bol = service_run_record.Value.InsertLastRecord(runRecord);
                    if (bol)
                    {
                        LogHelper.Info($"工位运行分析单任务中,工位名称:{currentWorkSite.Name},工位id:{currentWorkSite.ID}, è¿è¡Œè®°å½•分析成功!");
Yw.Server.Run/Yw.Server.Run.csproj
@@ -10,9 +10,10 @@
  <ItemGroup>
    <PackageReference Include="Yw.Quartz.Core" Version="3.0.0" />
    <PackageReference Include="Yw.Service.Assets.Core" Version="3.1.2" />
    <PackageReference Include="Yw.Service.Basic.Core" Version="3.0.7" />
    <PackageReference Include="Yw.Service.EMWS.Core" Version="3.0.2" />
    <PackageReference Include="Yw.Service.Monitor.Core" Version="3.2.0" />
    <PackageReference Include="Yw.Service.MonitorRelation.Core" Version="3.0.3" />
    <PackageReference Include="Yw.Service.Monitor.Core" Version="3.2.7" />
    <PackageReference Include="Yw.Service.MonitorRelation.Core" Version="3.0.5" />
  </ItemGroup>
  <ItemGroup>
Yw.Service.Run.Core/00-core/AnalyStatus.cs
@@ -11,6 +11,11 @@
        public const int Unknow = -99;
        /// <summary>
        /// æ•°æ®ä¸­æ–­
        /// </summary>
        public const int Interrupt = -4;
        /// <summary>
        /// æ•°æ®å¼‚常
        /// </summary>
        public const int Abnormal = -3;
Yw.Service.Run.Core/00-core/DataType.cs
@@ -5,8 +5,11 @@
    /// </summary>
    public class DataType
    {
        /// <summary>
        /// è¿è¡Œåˆ†æžé…ç½®
        /// </summary>
        public const string RunAnalyConfigure = "run-analy-configure";
    }
Yw.Service.Run.Core/00-core/Flags.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
namespace Yw.Run
{
    /// <summary>
    ///
    /// </summary>
    public class Flags
    {
        /// <summary>
        /// é»˜è®¤
        /// </summary>
        public const string é»˜è®¤ = "默认";
    }
}
Yw.Service.Run.Core/00-core/RunStatus.cs
@@ -8,7 +8,7 @@
        /// <summary>
        /// åœæœº
        /// </summary>
        public const int Stop = 0;
        public const int Shut = 0;
        /// <summary>
        /// å¼€æœº
Yw.Service.Run.Core/00-core/SysParas.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
namespace Yw.Run
{
    /// <summary>
    ///
    /// </summary>
    public class SysParas
    {
        /// <summary>
        /// å¯ç”¨ç›‘测中断判断
        /// </summary>
        public const string EnableMonitorInterruptJudgement = "run-enable-monitor-interrupt-judgement";
    }
}
Yw.Service.Run.Core/01-entity/RunAnalyConfigure.cs
@@ -34,7 +34,7 @@
        public long ObjectID { get; set; }
        /// <summary>
        /// åˆ†æžé¢‘率
        /// åˆ†æžé¢‘率 ï¼ˆç§’)
        /// </summary>    
        public int Frequency { get; set; }
Yw.Service.Run.Core/01-entity/RunRealRecord.cs
@@ -20,7 +20,8 @@
            this.ObjectID = rhs.ObjectID;
            this.DataTime = rhs.DataTime;
            this.RSa = rhs.RSa;
            this.ContinueRunTime = rhs.ContinueRunTime;
            this.ContinueTime = rhs.ContinueTime;
            this.TotalShutTime = rhs.TotalShutTime;
            this.TotalRunTime = rhs.TotalRunTime;
            this.BootTimes = rhs.BootTimes;
            this.AnalyStatus = rhs.AnalyStatus;
@@ -48,12 +49,17 @@
        public int RSa { get; set; }
        /// <summary>
        /// è¿žç»­è¿è¡Œæ—¶é—´
        /// è¿žç»­æ—¶é—´ï¼ˆç§’)
        /// </summary>
        public int ContinueRunTime { get; set; }
        public int ContinueTime { get; set; }
        /// <summary>
        /// æ€»è¿è¡Œæ—¶é—´
        /// æ€»åœæœºæ—¶é—´ï¼ˆç§’)
        /// </summary>
        public int TotalShutTime { get; set; }
        /// <summary>
        /// æ€»è¿è¡Œæ—¶é—´ï¼ˆç§’)
        /// </summary>
        public int TotalRunTime { get; set; }
Yw.Service.Run.Core/02-model/RunAnalyConfigure.cs
@@ -46,7 +46,7 @@
        public long ObjectID { get; set; }
        /// <summary>
        /// åˆ†æžé¢‘率
        /// åˆ†æžé¢‘率 (秒)
        /// </summary>    
        public int Frequency { get; set; }
Yw.Service.Run.Core/02-model/RunRealRecord.cs
@@ -19,7 +19,8 @@
            this.ObjectID = rhs.ObjectID;
            this.DataTime = rhs.DataTime;
            this.RSa = rhs.RSa;
            this.ContinueRunTime = rhs.ContinueRunTime;
            this.ContinueTime = rhs.ContinueTime;
            this.TotalShutTime = rhs.TotalShutTime;
            this.TotalRunTime = rhs.TotalRunTime;
            this.BootTimes = rhs.BootTimes;
            this.AnalyStatus = rhs.AnalyStatus;
@@ -35,7 +36,8 @@
            this.ObjectID = rhs.ObjectID;
            this.DataTime = rhs.DataTime;
            this.RSa = rhs.RSa;
            this.ContinueRunTime = rhs.ContinueRunTime;
            this.ContinueTime = rhs.ContinueTime;
            this.TotalShutTime = rhs.TotalShutTime;
            this.TotalRunTime = rhs.TotalRunTime;
            this.BootTimes = rhs.BootTimes;
            this.AnalyStatus = rhs.AnalyStatus;
@@ -63,12 +65,17 @@
        public int RSa { get; set; }
        /// <summary>
        /// è¿žç»­è¿è¡Œæ—¶é—´
        /// è¿žç»­æ—¶é—´ï¼ˆç§’)
        /// </summary>
        public int ContinueRunTime { get; set; }
        public int ContinueTime { get; set; }
        /// <summary>
        /// æ€»è¿è¡Œæ—¶é—´
        /// æ€»åœæœºæ—¶é—´ï¼ˆç§’)
        /// </summary>
        public int TotalShutTime { get; set; }
        /// <summary>
        /// æ€»è¿è¡Œæ—¶é—´ï¼ˆç§’)
        /// </summary>
        public int TotalRunTime { get; set; }
Yw.Service.Run.Core/03-settings/00-core/RunFileHelper.cs
ÎļþÃû´Ó Yw.Service.Run.Core/03-settings/helper/RunFileHelper.cs ÐÞ¸Ä
@@ -50,7 +50,9 @@
        internal static bool Save()
        {
            if (_appparas == null)
            {
                return default;
            }
            var json = JsonHelper.Object2FormatJson(_appparas);
            File.WriteAllText(JsonFileName, json, Encoding.UTF8);
            return true;
Yw.Service.Run.Core/03-settings/00-core/RunParasHelper.cs
Yw.Service.Run.Core/03-settings/01-paras/00-core/Paras_Run.cs
ÎļþÃû´Ó Yw.Service.Run.Core/03-settings/paras/Paras_Run.cs ÐÞ¸Ä
@@ -27,6 +27,11 @@
        public Paras_Run_Exchange Exchange { get; set; }
        /// <summary>
        /// CAL
        /// </summary>
        public Paras_Run_CAL CAL { get; set; }
        /// <summary>
        /// è¿è¡Œ
        /// </summary>
        public Paras_Run_Run Run { get; set; }
@@ -36,9 +41,6 @@
        /// </summary>
        public Paras_Run_Task Task { get; set; }
        /// <summary>
        /// CAL
        /// </summary>
        public Paras_Run_CAL CAL { get; set; }
    }
}
Yw.Service.Run.Core/03-settings/01-paras/00-core/RunParas.cs
Yw.Service.Run.Core/03-settings/01-paras/01-database/Paras_Run_DataBase.cs
Yw.Service.Run.Core/03-settings/01-paras/01-database/Paras_Run_DataBase_Factory.cs
Yw.Service.Run.Core/03-settings/01-paras/01-database/Paras_Run_DataBase_PostgreSql.cs
Yw.Service.Run.Core/03-settings/01-paras/01-database/Paras_Run_DataBase_SQLite.cs
Yw.Service.Run.Core/03-settings/01-paras/02-lcache/Paras_Run_LCache.cs
Yw.Service.Run.Core/03-settings/01-paras/02-lcache/Paras_Run_LCache_Factory.cs
Yw.Service.Run.Core/03-settings/01-paras/03-queue/Paras_Run_Queue.cs
Yw.Service.Run.Core/03-settings/01-paras/03-queue/Paras_Run_Queue_Factory.cs
Yw.Service.Run.Core/03-settings/01-paras/04-exchange/Paras_Run_Exchange.cs
Yw.Service.Run.Core/03-settings/01-paras/04-exchange/Paras_Run_Exchange_Factory.cs
Yw.Service.Run.Core/03-settings/01-paras/05-cal/Paras_Run_CAL.cs
Yw.Service.Run.Core/03-settings/01-paras/05-cal/Paras_Run_CAL_HttpClient.cs
Yw.Service.Run.Core/03-settings/01-paras/05-cal/Paras_Run_CAL_LocalClient.cs
Yw.Service.Run.Core/03-settings/01-paras/06-run/Paras_Run_Run.cs
Yw.Service.Run.Core/03-settings/01-paras/07-task/Paras_Run_Task.cs
Yw.Service.Run.Core/04-dal/02-postgresql/RunRealRecord.cs
@@ -35,7 +35,7 @@
            exp.AndIF(StartTime.HasValue, x => x.DataTime >= StartTime.Value);
            exp.AndIF(EndTime.HasValue, x => x.DataTime <= EndTime.Value);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -58,7 +58,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= Day.Date && x.DataTime < Day.AddDays(1).Date);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -85,7 +85,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= StartDay.Date && x.DataTime < EndDay.AddDays(1).Date);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -112,7 +112,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= StartTime && x.DataTime <= EndTime);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -139,7 +139,7 @@
            exp.AndIF(StartTime.HasValue, x => x.DataTime >= StartTime.Value);
            exp.AndIF(EndTime.HasValue, x => x.DataTime <= EndTime.Value);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -158,7 +158,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= Day.Date && x.DataTime < Day.AddDays(1).Date);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -182,7 +182,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= StartDay.Date && x.DataTime < EndDay.AddDays(1).Date);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -205,7 +205,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= StartTime && x.DataTime <= EndTime);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -232,7 +232,7 @@
            exp.AndIF(StartTime.HasValue, x => x.DataTime >= StartTime.Value);
            exp.AndIF(EndTime.HasValue, x => x.DataTime <= EndTime.Value);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -260,7 +260,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -289,7 +289,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -310,7 +310,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -335,7 +335,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -360,7 +360,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -389,7 +389,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -460,10 +460,11 @@
        {
            var sb = new StringBuilder();
            sb.AppendLine("INSERT INTO run_real_record");
            sb.AppendLine($" VALUES(@objecttype,@objectid,@datatime,@rsa,@continueruntime,@totalruntime,@boottimes,@analystatus,@analyinfo)");
            sb.AppendLine($" VALUES(@objecttype,@objectid,@datatime,@rsa,@continuetime,@totalshuttime,@totalruntime,@boottimes,@analystatus,@analyinfo)");
            sb.AppendLine("ON CONFLICT(objecttype, objectid, datatime) DO UPDATE");
            sb.AppendLine("SET rsa = excluded.rsa,");
            sb.AppendLine("continueruntime = excluded.continueruntime,");
            sb.AppendLine("continuetime = excluded.continuetime,");
            sb.AppendLine("totalshuttime = excluded.totalshuttime,");
            sb.AppendLine("totalruntime = excluded.totalruntime,");
            sb.AppendLine("boottimes = excluded.boottimes,");
            sb.AppendLine("analystatus = excluded.analystatus,");
@@ -474,16 +475,19 @@
        //创建参数
        private List<SugarParameter> CreateParameters(Entity.RunRealRecord entity)
        {
            var list = new List<SugarParameter>();
            list.Add(new SugarParameter("@objecttype", entity.ObjectType));
            list.Add(new SugarParameter("@objectid", entity.ObjectID));
            list.Add(new SugarParameter("@datatime", entity.DataTime));
            list.Add(new SugarParameter("@rsa", entity.RSa));
            list.Add(new SugarParameter("@continueruntime", entity.ContinueRunTime));
            list.Add(new SugarParameter("@totalruntime", entity.TotalRunTime));
            list.Add(new SugarParameter("@boottimes", entity.BootTimes));
            list.Add(new SugarParameter("@analystatus", entity.AnalyStatus));
            list.Add(new SugarParameter("@analyinfo", entity.AnalyInfo));
            var list = new List<SugarParameter>
            {
                new SugarParameter("@objecttype", entity.ObjectType),
                new SugarParameter("@objectid", entity.ObjectID),
                new SugarParameter("@datatime", entity.DataTime),
                new SugarParameter("@rsa", entity.RSa),
                new SugarParameter("@continuetime", entity.ContinueTime),
                new SugarParameter("@totalshuttime", entity.TotalShutTime),
                new SugarParameter("@totalruntime", entity.TotalRunTime),
                new SugarParameter("@boottimes", entity.BootTimes),
                new SugarParameter("@analystatus", entity.AnalyStatus),
                new SugarParameter("@analyinfo", entity.AnalyInfo)
            };
            return list;
        }
Yw.Service.Run.Core/04-dal/03-sqlite/RunRealRecord.cs
@@ -35,7 +35,7 @@
            exp.AndIF(StartTime.HasValue, x => x.DataTime >= StartTime.Value);
            exp.AndIF(EndTime.HasValue, x => x.DataTime <= EndTime.Value);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -58,7 +58,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= Day.Date && x.DataTime < Day.AddDays(1).Date);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -85,7 +85,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= StartDay.Date && x.DataTime < EndDay.AddDays(1).Date);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -112,7 +112,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= StartTime && x.DataTime <= EndTime);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -139,7 +139,7 @@
            exp.AndIF(StartTime.HasValue, x => x.DataTime >= StartTime.Value);
            exp.AndIF(EndTime.HasValue, x => x.DataTime <= EndTime.Value);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -158,7 +158,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= Day.Date && x.DataTime < Day.AddDays(1).Date);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -182,7 +182,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= StartDay.Date && x.DataTime < EndDay.AddDays(1).Date);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -205,7 +205,7 @@
            var exp = Expressionable.Create<Entity.RunRealRecord>();
            exp.And(x => x.DataTime >= StartTime && x.DataTime <= EndTime);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -232,7 +232,7 @@
            exp.AndIF(StartTime.HasValue, x => x.DataTime >= StartTime.Value);
            exp.AndIF(EndTime.HasValue, x => x.DataTime <= EndTime.Value);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -260,7 +260,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -289,7 +289,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -310,7 +310,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -335,7 +335,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -360,7 +360,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -389,7 +389,7 @@
            exp.And(x => x.ObjectType == ObjectType);
            exp.And(x => x.ObjectID == ObjectID);
            exp.AndIF(Run.HasValue && Run.Value, x => x.RSa == RunStatus.Run);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Stop);
            exp.AndIF(Run.HasValue && !Run.Value, x => x.RSa == RunStatus.Shut);
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
@@ -460,10 +460,11 @@
        {
            var sb = new StringBuilder();
            sb.AppendLine("INSERT INTO run_real_record");
            sb.AppendLine($" VALUES(@objecttype,@objectid,@datatime,@rsa,@continueruntime,@totalruntime,@boottimes,@analystatus,@analyinfo)");
            sb.AppendLine($" VALUES(@objecttype,@objectid,@datatime,@rsa,@continuetime,@totalshuttime,@totalruntime,@boottimes,@analystatus,@analyinfo)");
            sb.AppendLine("ON CONFLICT(objecttype, objectid, datatime) DO UPDATE");
            sb.AppendLine("SET rsa = excluded.rsa,");
            sb.AppendLine("continueruntime = excluded.continueruntime,");
            sb.AppendLine("continuetime = excluded.continuetime,");
            sb.AppendLine("totalshuttime = excluded.totalshuttime,");
            sb.AppendLine("totalruntime = excluded.totalruntime,");
            sb.AppendLine("boottimes = excluded.boottimes,");
            sb.AppendLine("analystatus = excluded.analystatus,");
@@ -474,16 +475,19 @@
        //创建参数
        private List<SugarParameter> CreateParameters(Entity.RunRealRecord entity)
        {
            var list = new List<SugarParameter>();
            list.Add(new SugarParameter("@objecttype", entity.ObjectType));
            list.Add(new SugarParameter("@objectid", entity.ObjectID));
            list.Add(new SugarParameter("@datatime", entity.DataTime));
            list.Add(new SugarParameter("@rsa", entity.RSa));
            list.Add(new SugarParameter("@continueruntime", entity.ContinueRunTime));
            list.Add(new SugarParameter("@totalruntime", entity.TotalRunTime));
            list.Add(new SugarParameter("@boottimes", entity.BootTimes));
            list.Add(new SugarParameter("@analystatus", entity.AnalyStatus));
            list.Add(new SugarParameter("@analyinfo", entity.AnalyInfo));
            var list = new List<SugarParameter>
            {
                new SugarParameter("@objecttype", entity.ObjectType),
                new SugarParameter("@objectid", entity.ObjectID),
                new SugarParameter("@datatime", entity.DataTime),
                new SugarParameter("@rsa", entity.RSa),
                new SugarParameter("@continuetime", entity.ContinueTime),
                new SugarParameter("@totalshuttime", entity.TotalShutTime),
                new SugarParameter("@totalruntime", entity.TotalRunTime),
                new SugarParameter("@boottimes", entity.BootTimes),
                new SugarParameter("@analystatus", entity.AnalyStatus),
                new SugarParameter("@analyinfo", entity.AnalyInfo)
            };
            return list;
        }
Yw.Service.Run.Core/05-lcache/00-core/CacheKeyHelper.cs
Yw.Service.Run.Core/06-exchange/00-core/RunExchangeNameHelper.cs
Yw.Service.Run.Core/07-service/00-core/01-create/DALCreateHelper.cs
Yw.Service.Run.Core/07-service/00-core/01-create/ExchangeCreateHelper.cs
Yw.Service.Run.Core/07-service/00-core/01-create/LCacheCreateHelper.cs
Yw.Service.Run.Core/07-service/00-core/01-create/QueueCreateHelper.cs
Yw.Service.Run.Core/07-service/00-core/02-cache/CacheHelper.cs
Yw.Service.Run.Core/07-service/00-core/03-extensions/Extensions.cs
Yw.Service.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@
-->
<Project>
  <PropertyGroup>
    <History>True|2024-04-26T03:47:42.9605330Z;True|2024-04-01T11:38:17.4702370+08:00;True|2024-03-26T09:45:14.8395625+08:00;True|2024-01-21T14:51:15.9123805+08:00;True|2024-01-08T16:59:10.2219250+08:00;True|2023-12-16T15:42:50.6196932+08:00;True|2023-12-11T11:51:25.0044564+08:00;True|2023-12-11T11:25:16.9392998+08:00;True|2023-07-13T11:54:33.7989040+08:00;True|2023-07-13T11:54:23.3967174+08:00;True|2023-07-06T09:49:52.7407983+08:00;True|2023-05-25T15:37:23.5406830+08:00;False|2023-05-25T15:36:09.3589239+08:00;</History>
    <History>True|2024-04-30T05:45:44.5067765Z;True|2024-04-30T11:25:45.6839060+08:00;True|2024-04-30T11:25:41.5354173+08:00;True|2024-04-26T11:47:42.9605330+08:00;True|2024-04-01T11:38:17.4702370+08:00;True|2024-03-26T09:45:14.8395625+08:00;True|2024-01-21T14:51:15.9123805+08:00;True|2024-01-08T16:59:10.2219250+08:00;True|2023-12-16T15:42:50.6196932+08:00;True|2023-12-11T11:51:25.0044564+08:00;True|2023-12-11T11:25:16.9392998+08:00;True|2023-07-13T11:54:33.7989040+08:00;True|2023-07-13T11:54:23.3967174+08:00;True|2023-07-06T09:49:52.7407983+08:00;True|2023-05-25T15:37:23.5406830+08:00;False|2023-05-25T15:36:09.3589239+08:00;</History>
    <LastFailureDetails />
  </PropertyGroup>
</Project>
Yw.Service.Run.Core/Yw.Service.Run.Core.csproj
@@ -7,7 +7,7 @@
        <RootNamespace>Yw</RootNamespace>
        <GenerateDocumentationFile>True</GenerateDocumentationFile>
        <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
        <Version>3.0.2</Version>
        <Version>3.0.6</Version>
        <Description>引用升级</Description>
    </PropertyGroup>