lixiaojun
2024-07-17 a60f3ee45a6b86de936d19a122acdfb30570a867
bug修复,优化
已删除1个文件
已重命名4个文件
已修改19个文件
已添加5个文件
716 ■■■■ 文件已修改
Yw.Application.Run.Core/00-core/Mapper.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Application.Run.Core/01-configure/RunAnalyConfigure_Controller.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Application.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Application.Run.Core/Yw.Application.Run.Core.csproj 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/01-configure/SetRunAnalyConfigureInput.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Dto.Run.Core/Yw.Dto.Run.Core.csproj 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Server.Run/00-core/JobHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Server.Run/Yw.Server.Run.csproj 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/00-core/ConfigHelper.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/00-core/DbType.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/01-entity/01-configure/RunAnalyConfigure.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/01-entity/01-configure/RunAnalyConfigurePure.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/01-entity/02-record/RunRealRecord.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/02-model/01-configure/RunAnalyConfigure.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/02-model/01-configure/RunAnalyConfigurePure.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/02-model/02-record/RunRealRecord.cs 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/04-dal/01-interface/IRunAnalyConfigure.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/04-dal/02-postgresql/RunAnalyConfigure.cs 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/04-dal/03-sqlite/RunAnalyConfigure.cs 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/07-service/00-core/03-extensions/Extensions.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/07-service/00-core/03-extensions/RunAnalyConfigureExtensions.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/07-service/00-core/04-helper/DbFirstHelper.cs 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/07-service/01-configure/RunAnalyConfigure.cs 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/Yw.Service.Run.Core.csproj 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Service.Run.Core/paras_run_settings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.TopShelf.Run/Program.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.TopShelf.Run/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Yw.Application.Run.Core/00-core/Mapper.cs
@@ -16,7 +16,8 @@
            config.ForType<AddRunAnalyConfigureInput, Model.RunAnalyConfigure>();
            config.ForType<UpdateRunAnalyConfigureInput, Model.RunAnalyConfigure>();
            config.ForType<Model.RunAnalyConfigure, RunAnalyConfigureDto>();
            config.ForType<SetRunAnalyConfigureInput, Model.RunAnalyConfigure>();
            config.ForType<SetRunAnalyConfigureInput, Model.RunAnalyConfigurePure>();
            #endregion
Yw.Application.Run.Core/01-configure/RunAnalyConfigure_Controller.cs
@@ -1,4 +1,6 @@
namespace Yw.Application
using Mapster;
namespace Yw.Application
{
    /// <summary>
    /// RunAnalyConfigure
@@ -120,14 +122,30 @@
        #region Set
        /// <summary>
        /// æ’入或更新
        /// </summary>
        [Route("InsertOrUpdate@V1.0")]
        [HttpPost]
        public long InsertOrUpdate([Required] SetRunAnalyConfigureInput input)
        {
            var pure = input.Adapt<SetRunAnalyConfigureInput, Model.RunAnalyConfigurePure>();
            var id = _service.InsertOrUpdate(pure);
            return id;
        }
        /// <summary>
        /// è®¾ç½®
        /// </summary>
        [Route("Set@V1.0")]
        [HttpPost]
        public bool Set(List<SetRunAnalyConfigureInput> input)
        {
            var list = input?.Select(x => x.Adapt<SetRunAnalyConfigureInput, Model.RunAnalyConfigure>()).ToList();
            var bol = _service.Set(list);
            var list = input?.Select(x => x.Adapt<SetRunAnalyConfigureInput, Model.RunAnalyConfigurePure>()).ToList();
            var bol = _service.Set(list, out string Msg);
            if (!bol)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, Msg);
            }
            return bol;
        }
@@ -137,7 +155,7 @@
        #region Delete
        /// <summary>
        /// åˆ é™¤
        /// é€šè¿‡ ID åˆ é™¤
        /// </summary>
        [Route("DeleteByID@V1.0")]
        [HttpDelete]
@@ -151,6 +169,21 @@
            return bol;
        }
        /// <summary>
        /// é€šè¿‡ ObjectType å’Œ ObjectID åˆ é™¤
        /// </summary>
        [Route("DeleteByObjectTypeAndObjectID@V1.0")]
        [HttpDelete]
        public bool DeleteByObjectTypeAndObjectID([FromQuery][Required] ObjectInput input)
        {
            var bol = _service.DeleteByObjectTypeAndObjectID(input.ObjectType, input.ObjectID, out string Msg);
            if (!bol)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, Msg);
            }
            return bol;
        }
        #endregion
Yw.Application.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@
-->
<Project>
  <PropertyGroup>
    <History>True|2024-06-19T11:43:45.0619480Z;True|2024-05-31T15:22:21.0299608+08:00;True|2024-05-13T09:49:32.7865121+08:00;True|2024-05-08T14:57:38.9700807+08:00;True|2024-04-30T13:48:09.3970916+08:00;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>
    <History>True|2024-07-17T04:30:25.7307989Z;True|2024-06-19T19:43:45.0619480+08:00;True|2024-05-31T15:22:21.0299608+08:00;True|2024-05-13T09:49:32.7865121+08:00;True|2024-05-08T14:57:38.9700807+08:00;True|2024-04-30T13:48:09.3970916+08:00;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.1.1</Version>
    <Version>3.1.2</Version>
  </PropertyGroup>
  <ItemGroup>
@@ -26,8 +26,8 @@
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Yw.Application.Core" Version="3.0.8" />
    <PackageReference Include="Yw.Dto.Run.Core" Version="3.1.1" />
    <PackageReference Include="Yw.Application.Core" Version="3.1.0" />
    <PackageReference Include="Yw.Dto.Run.Core" Version="3.1.2" />
  </ItemGroup>
</Project>
Yw.Dto.Run.Core/01-configure/SetRunAnalyConfigureInput.cs
@@ -5,11 +5,6 @@
    /// </summary>
    public class SetRunAnalyConfigureInput
    {
        /// <summary>
        /// id
        /// </summary>
        [Required]
        public long ID { get; set; }
        /// <summary>
        /// æ•°æ®ç±»åž‹
@@ -39,5 +34,7 @@
        /// è¯´æ˜Ž
        /// </summary>    
        public string Description { get; set; }
    }
}
Yw.Dto.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@
-->
<Project>
  <PropertyGroup>
    <History>True|2024-06-19T11:42:59.0063910Z;True|2024-05-31T15:21:48.4686744+08:00;True|2024-05-13T09:48:52.9024655+08:00;True|2024-05-08T14:56:51.2185908+08:00;True|2024-05-08T14:25:43.7997185+08:00;True|2024-04-30T13:46:18.9575803+08:00;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>
    <History>True|2024-07-17T04:25:21.0318008Z;True|2024-06-19T19:42:59.0063910+08:00;True|2024-05-31T15:21:48.4686744+08:00;True|2024-05-13T09:48:52.9024655+08:00;True|2024-05-08T14:56:51.2185908+08:00;True|2024-05-08T14:25:43.7997185+08:00;True|2024-04-30T13:46:18.9575803+08:00;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.1.1</Version>
    <Version>3.1.2</Version>
    <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Yw.Dto.Core" Version="3.0.8" />
    <PackageReference Include="Yw.Service.Run.Core" Version="3.0.9" />
    <PackageReference Include="Yw.Dto.Core" Version="3.1.0" />
    <PackageReference Include="Yw.Service.Run.Core" Version="3.1.0" />
  </ItemGroup>
</Project>
Yw.Server.Run/00-core/JobHelper.cs
@@ -8,7 +8,7 @@
        private List<IJobHelper> _jobHelpers = new List<IJobHelper>()
        {
            new EquipmentRunAnalyServiceJobHelper(),
            new EMWSRunAnalyServiceJobHelper()
            //new EMWSRunAnalyServiceJobHelper()
        };
        /// <summary>
Yw.Server.Run/Yw.Server.Run.csproj
@@ -8,12 +8,17 @@
  </PropertyGroup>
  <ItemGroup>
    <Compile Remove="02-emws\**" />
    <EmbeddedResource Remove="02-emws\**" />
    <None Remove="02-emws\**" />
  </ItemGroup>
  <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.3.0" />
    <PackageReference Include="Yw.Service.MonitorRelation.Core" Version="3.0.9" />
    <PackageReference Include="Yw.Service.Assets.Core" Version="3.2.0" />
    <PackageReference Include="Yw.Service.EMWS.Core" Version="3.0.6" />
    <PackageReference Include="Yw.Service.Monitor.Core" Version="3.6.0" />
    <PackageReference Include="Yw.Service.MonitorRelation.Core" Version="3.2.1" />
  </ItemGroup>
  <ItemGroup>
Yw.Service.Run.Core/00-core/ConfigHelper.cs
@@ -10,26 +10,22 @@
        {
            get
            {
                //SnowFlakeSingle.WorkId = Settings.SqlSugar.SnowFlakeWorkId; ä¸åŒæœºå™¨é…ç½®çš„唯一数字; // å•服务器不需要指定
                return new ConnectionConfig()
                ConnectionConfig connectConfig = null;
                switch (RunParasHelper.Run.DataBase.DbType)
                {
                    DbType = SqlSugar.DbType.PostgreSQL,//数据库类型
                    ConnectionString = RunParasHelper.Run.DataBase.PostgreSql.ConnectString,
                    IsAutoCloseConnection = true,//是否自动关闭
                    MoreSettings = new ConnMoreSettings()
                    {
                        //PgSqlIsAutoToLower = false //数据库存在大写字段的 ï¼Œéœ€è¦æŠŠè¿™ä¸ªè®¾ä¸ºfalse ï¼Œå¹¶ä¸”实体和字段名称要一样
                    },
                    AopEvents = new AopEvents
                    {
                        OnLogExecuting = (sql, p) =>
                    case DbType.PostgreSql:
                        {
                            // var sqlString = UtilMethods.GetNativeSql(sql, p);
                            //LogHelper.Debug(sqlString);
                            // Console.WriteLine(sql);
                            connectConfig = PostgreSqlConnectionConfig;
                        }
                    }
                };
                        break;
                    case DbType.SQLite:
                        {
                            connectConfig = SQLiteConnectionConfig;
                        }
                        break;
                    default: break;
                }
                return connectConfig;
            }
        }
@@ -100,26 +96,22 @@
        {
            get
            {
                //SnowFlakeSingle.WorkId = Settings.SqlSugar.SnowFlakeWorkId; ä¸åŒæœºå™¨é…ç½®çš„唯一数字; // å•服务器不需要指定
                return new ConnectionConfig()
                ConnectionConfig connectConfig = null;
                switch (RunParasHelper.Run.DataBase.DbType)
                {
                    DbType = SqlSugar.DbType.PostgreSQL,//数据库类型
                    ConnectionString = RunParasHelper.Run.DataBase.PostgreSql.RecordConnectString,
                    IsAutoCloseConnection = true,//是否自动关闭
                    MoreSettings = new ConnMoreSettings()
                    {
                        //PgSqlIsAutoToLower = false //数据库存在大写字段的 ï¼Œéœ€è¦æŠŠè¿™ä¸ªè®¾ä¸ºfalse ï¼Œå¹¶ä¸”实体和字段名称要一样
                    },
                    AopEvents = new AopEvents
                    {
                        OnLogExecuting = (sql, p) =>
                    case DbType.PostgreSql:
                        {
                            //var sqlString = UtilMethods.GetNativeSql(sql, p);
                            // LogHelper.Debug(sqlString);
                            // Console.WriteLine(sql);
                            connectConfig = PostgreSqlRecordConnectionConfig;
                        }
                    }
                };
                        break;
                    case DbType.SQLite:
                        {
                            connectConfig = SQLiteRecordConnectionConfig;
                        }
                        break;
                    default: break;
                }
                return connectConfig;
            }
        }
Yw.Service.Run.Core/00-core/DbType.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
namespace Yw.Run
{
    /// <summary>
    ///
    /// </summary>
    internal class DbType
    {
        /// <summary>
        ///
        /// </summary>
        public const string SQLite = "SQLite";
        /// <summary>
        ///
        /// </summary>
        public const string PostgreSql = "PostgreSql";
    }
}
Yw.Service.Run.Core/01-entity/01-configure/RunAnalyConfigure.cs
ÎļþÃû´Ó Yw.Service.Run.Core/01-entity/RunAnalyConfigure.cs ÐÞ¸Ä
@@ -14,7 +14,31 @@
        /// <summary>
        /// 
        /// </summary>
        public RunAnalyConfigure(RunAnalyConfigurePure rhs)
        {
            this.ObjectType = rhs.ObjectType;
            this.ObjectID = rhs.ObjectID;
            this.Frequency = rhs.Frequency;
            this.ChangeTimes = rhs.ChangeTimes;
            this.Description = rhs.Description;
        }
        /// <summary>
        ///
        /// </summary>
        public RunAnalyConfigure(RunAnalyConfigure rhs) : base(rhs)
        {
            this.ObjectType = rhs.ObjectType;
            this.ObjectID = rhs.ObjectID;
            this.Frequency = rhs.Frequency;
            this.ChangeTimes = rhs.ChangeTimes;
            this.Description = rhs.Description;
        }
        /// <summary>
        /// é‡ç½®
        /// </summary>
        public void Reset(RunAnalyConfigurePure rhs)
        {
            this.ObjectType = rhs.ObjectType;
            this.ObjectID = rhs.ObjectID;
@@ -26,6 +50,7 @@
        /// <summary>
        /// æ•°æ®ç±»åž‹
        /// </summary>
        [SugarColumn(Length = 50, IsNullable = true)]
        public string ObjectType { get; set; }
        /// <summary>
@@ -46,6 +71,7 @@
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>    
        [SugarColumn(ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
        public string Description { get; set; }
        /// <summary>
Yw.Service.Run.Core/01-entity/01-configure/RunAnalyConfigurePure.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
namespace Yw.Entity
{
    /// <summary>
    ///
    /// </summary>
    public class RunAnalyConfigurePure
    {
        /// <summary>
        /// æ•°æ®ç±»åž‹
        /// </summary>
        public string ObjectType { get; set; }
        /// <summary>
        /// æ•°æ®id
        /// </summary>
        public long ObjectID { get; set; }
        /// <summary>
        /// åˆ†æžé¢‘率 ï¼ˆç§’)
        /// </summary>
        public int Frequency { get; set; }
        /// <summary>
        /// åˆ‡æ¢æ¬¡æ•°
        /// </summary>
        public int ChangeTimes { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
Yw.Service.Run.Core/01-entity/02-record/RunRealRecord.cs
Yw.Service.Run.Core/02-model/01-configure/RunAnalyConfigure.cs
Yw.Service.Run.Core/02-model/01-configure/RunAnalyConfigurePure.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
namespace Yw.Model
{
    /// <summary>
    ///
    /// </summary>
    public class RunAnalyConfigurePure
    {
        /// <summary>
        /// æ•°æ®ç±»åž‹
        /// </summary>
        public string ObjectType { get; set; }
        /// <summary>
        /// æ•°æ®id
        /// </summary>
        public long ObjectID { get; set; }
        /// <summary>
        /// åˆ†æžé¢‘率 (秒)
        /// </summary>
        public int Frequency { get; set; }
        /// <summary>
        /// åˆ‡æ¢æ¬¡æ•°
        /// </summary>
        public int ChangeTimes { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
Yw.Service.Run.Core/02-model/02-record/RunRealRecord.cs
Yw.Service.Run.Core/04-dal/01-interface/IRunAnalyConfigure.cs
@@ -6,11 +6,25 @@
    public interface IRunAnalyConfigure : IBaseDAL<Entity.RunAnalyConfigure>
    {
        /// <summary>
        /// é€šè¿‡ ObjectType å’Œ ObjectID èŽ·å–
        /// </summary>
        Entity.RunAnalyConfigure GetByObjectTypeAndObjectID(string ObjectType, long ObjectID);
        /// <summary>
        /// æ’入或更新
        /// </summary>
        long InsertOrUpdate(Entity.RunAnalyConfigurePure pure);
        /// <summary>
        /// è®¾ç½®
        /// </summary>
        bool Set(List<Entity.RunAnalyConfigure> entityList);
        bool Set(List<Entity.RunAnalyConfigurePure> pureList);
        /// <summary>
        /// é€šè¿‡ ObjectType å’Œ ObjectID åˆ é™¤
        /// </summary>
        bool DeleteByObjectTypeAndObjectID(string ObjectType, long ObjectID);
    }
}
Yw.Service.Run.Core/04-dal/02-postgresql/RunAnalyConfigure.cs
@@ -14,20 +14,98 @@
        }
        /// <summary>
        ///
        /// </summary>
        public Entity.RunAnalyConfigure GetByObjectTypeAndObjectID(string ObjectType, long ObjectID)
        {
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                return db.Queryable<Entity.RunAnalyConfigure>()
                        .Where(x => x.ObjectType == ObjectType && x.ObjectID == ObjectID)
                        .First();
            }
        }
        /// <summary>
        ///
        /// </summary>
        public long InsertOrUpdate(Entity.RunAnalyConfigurePure pure)
        {
            if (pure == null)
            {
                return default;
            }
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                try
                {
                    db.BeginTran();
                    var entity = db.Queryable<Entity.RunAnalyConfigure>()
                        .Where(x => x.ObjectType == pure.ObjectType && x.ObjectID == pure.ObjectID)
                        .First();
                    if (entity == null)
                    {
                        entity = new Entity.RunAnalyConfigure(pure);
                    }
                    else
                    {
                        entity.Reset(pure);
                    }
                    if (entity.ID < 1)
                    {
                        entity.ID = db.Insertable(entity).ExecuteReturnSnowflakeId();
                        if (entity.ID < 1)
                        {
                            db.RollbackTran();
                            return default;
                        }
                    }
                    else
                    {
                        var bol = db.Updateable(entity).ExecuteCommandHasChange();
                        if (!bol)
                        {
                            db.RollbackTran();
                            return default;
                        }
                    }
                    return entity.ID;
                }
                catch
                {
                    db.RollbackTran();
                    throw;
                }
            }
        }
        /// <summary>
        /// è®¾ç½®
        /// </summary>
        public bool Set(List<Entity.RunAnalyConfigure> entityList)
        public bool Set(List<Entity.RunAnalyConfigurePure> pureList)
        {
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                try
                {
                    db.BeginTran();
                    var ids = new List<long>();
                    if (entityList != null && entityList.Count > 0)
                    if (pureList != null && pureList.Count > 0)
                    {
                        foreach (var entity in entityList)
                        foreach (var pure in pureList)
                        {
                            var entity = db.Queryable<Entity.RunAnalyConfigure>()
                                .Where(x => x.ObjectType == pure.ObjectType && x.ObjectID == pure.ObjectID)
                                .First();
                            if (entity == null)
                            {
                                entity = new Entity.RunAnalyConfigure(pure);
                            }
                            else
                            {
                                entity.Reset(pure);
                            }
                            if (entity.ID < 1)
                            {
                                entity.ID = db.Insertable(entity).ExecuteReturnSnowflakeId();
@@ -46,11 +124,9 @@
                                    return false;
                                }
                            }
                            ids.Add(entity.ID);
                        }
                    }
                    db.Deleteable<Entity.RunAnalyConfigure>().Where(x => !ids.Contains(x.ID)).ExecuteCommandHasChange();
                    db.CommitTran();
                    return true;
                }
@@ -62,5 +138,18 @@
            }
        }
        /// <summary>
        /// é€šè¿‡ ObjectType å’Œ ObjectID åˆ é™¤
        /// </summary>
        public bool DeleteByObjectTypeAndObjectID(string ObjectType, long ObjectID)
        {
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                return db.Deleteable<Entity.RunAnalyConfigure>()
                    .Where(x => x.ObjectType == ObjectType && x.ObjectID == ObjectID)
                    .ExecuteCommandHasChange();
            }
        }
    }
}
Yw.Service.Run.Core/04-dal/03-sqlite/RunAnalyConfigure.cs
@@ -14,20 +14,98 @@
        }
        /// <summary>
        ///
        /// </summary>
        public Entity.RunAnalyConfigure GetByObjectTypeAndObjectID(string ObjectType, long ObjectID)
        {
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                return db.Queryable<Entity.RunAnalyConfigure>()
                        .Where(x => x.ObjectType == ObjectType && x.ObjectID == ObjectID)
                        .First();
            }
        }
        /// <summary>
        ///
        /// </summary>
        public long InsertOrUpdate(Entity.RunAnalyConfigurePure pure)
        {
            if (pure == null)
            {
                return default;
            }
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                try
                {
                    db.BeginTran();
                    var entity = db.Queryable<Entity.RunAnalyConfigure>()
                        .Where(x => x.ObjectType == pure.ObjectType && x.ObjectID == pure.ObjectID)
                        .First();
                    if (entity == null)
                    {
                        entity = new Entity.RunAnalyConfigure(pure);
                    }
                    else
                    {
                        entity.Reset(pure);
                    }
                    if (entity.ID < 1)
                    {
                        entity.ID = db.Insertable(entity).ExecuteReturnSnowflakeId();
                        if (entity.ID < 1)
                        {
                            db.RollbackTran();
                            return default;
                        }
                    }
                    else
                    {
                        var bol = db.Updateable(entity).ExecuteCommandHasChange();
                        if (!bol)
                        {
                            db.RollbackTran();
                            return default;
                        }
                    }
                    return entity.ID;
                }
                catch
                {
                    db.RollbackTran();
                    throw;
                }
            }
        }
        /// <summary>
        /// è®¾ç½®
        /// </summary>
        public bool Set(List<Entity.RunAnalyConfigure> entityList)
        public bool Set(List<Entity.RunAnalyConfigurePure> pureList)
        {
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                try
                {
                    db.BeginTran();
                    var ids = new List<long>();
                    if (entityList != null && entityList.Count > 0)
                    if (pureList != null && pureList.Count > 0)
                    {
                        foreach (var entity in entityList)
                        foreach (var pure in pureList)
                        {
                            var entity = db.Queryable<Entity.RunAnalyConfigure>()
                                .Where(x => x.ObjectType == pure.ObjectType && x.ObjectID == pure.ObjectID)
                                .First();
                            if (entity == null)
                            {
                                entity = new Entity.RunAnalyConfigure(pure);
                            }
                            else
                            {
                                entity.Reset(pure);
                            }
                            if (entity.ID < 1)
                            {
                                entity.ID = db.Insertable(entity).ExecuteReturnSnowflakeId();
@@ -46,11 +124,9 @@
                                    return false;
                                }
                            }
                            ids.Add(entity.ID);
                        }
                    }
                    db.Deleteable<Entity.RunAnalyConfigure>().Where(x => !ids.Contains(x.ID)).ExecuteCommandHasChange();
                    db.CommitTran();
                    return true;
                }
@@ -62,5 +138,18 @@
            }
        }
        /// <summary>
        /// é€šè¿‡ ObjectType å’Œ ObjectID åˆ é™¤
        /// </summary>
        public bool DeleteByObjectTypeAndObjectID(string ObjectType, long ObjectID)
        {
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                return db.Deleteable<Entity.RunAnalyConfigure>()
                    .Where(x => x.ObjectType == ObjectType && x.ObjectID == ObjectID)
                    .ExecuteCommandHasChange();
            }
        }
    }
}
Yw.Service.Run.Core/07-service/00-core/03-extensions/Extensions.cs
ÎļþÒÑɾ³ý
Yw.Service.Run.Core/07-service/00-core/03-extensions/RunAnalyConfigureExtensions.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
namespace Yw.Service.Run
{
    /// <summary>
    ///
    /// </summary>
    public static class RunAnalyConfigureExtensions
    {
        /// <summary>
        ///
        /// </summary>
        public static List<Entity.RunAnalyConfigurePure> ToEntityList(this List<Model.RunAnalyConfigurePure> modelList)
        {
            if (modelList == null || modelList.Count < 1)
            {
                return default;
            }
            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<Model.RunAnalyConfigurePure, Entity.RunAnalyConfigurePure>()
                ).CreateMapper();
            var entityList = mapper.Map<List<Model.RunAnalyConfigurePure>, List<Entity.RunAnalyConfigurePure>>(modelList);
            return entityList;
        }
        /// <summary>
        ///
        /// </summary>
        public static Entity.RunAnalyConfigurePure ToEntity(this Model.RunAnalyConfigurePure model)
        {
            if (model == null)
            {
                return default;
            }
            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<Model.RunAnalyConfigurePure, Entity.RunAnalyConfigurePure>()
           ).CreateMapper();
            var entity = mapper.Map<Model.RunAnalyConfigurePure, Entity.RunAnalyConfigurePure>(model);
            return entity;
        }
    }
}
Yw.Service.Run.Core/07-service/00-core/04-helper/DbFirstHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
namespace Yw.Service.Run
{
    /// <summary>
    ///
    /// </summary>
    public class DbFirstHelper
    {
        /// <summary>
        /// åˆå§‹åŒ–
        /// </summary>
        public static bool Initial(out string msg)
        {
            msg = string.Empty;
            try
            {
                var connectConfig = Yw.Run.ConfigHelper.DefaultConnectionConfig;
                if (connectConfig == null)
                {
                    msg = "连接配置初始化失败";
                    return false;
                }
                connectConfig.ConfigureExternalServices = new ConfigureExternalServices()
                {
                    EntityService = (property, column) =>
                    {
                        //除主键外其他列都可空
                        if (!column.IsPrimarykey)
                        {
                            column.IsNullable = true;
                        }
                        if (column.DataType == StaticConfig.CodeFirst_BigString)
                        {
                            if (RunParasHelper.Run.DataBase.DbType == Yw.Run.DbType.PostgreSql)
                            {
                                column.DataType = "character varying";
                            }
                        }
                    }
                };
                var typeList = new List<Type>()
                {
                    typeof(Entity.RunAnalyConfigure)
                };
                using (var db = new SqlSugarClient(connectConfig))
                {
                    //设置字符串默认长度
                    //db.CodeFirst.SetStringDefaultLength(250);
                    //db.CodeFirst.SetStringDefaultLength(int.MaxValue);
                    //建库:如果不存在创建数据库存在不会重复创建 createdb;注意 ï¼šOracle和个别国产库需不支持该方法,需要手动建库
                    db.DbMaintenance.CreateDatabase();
                    db.CodeFirst.InitTables
                        (
                           typeList.ToArray()
                        );
                }
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return false;
            }
        }
    }
}
Yw.Service.Run.Core/07-service/01-configure/RunAnalyConfigure.cs
@@ -69,6 +69,14 @@
        }
        //移除缓存
        private static void RemoveCacheByObjectTypeAndObjectID(string ObjectType, long ObjectID)
        {
            var all = GetCache();
            all.RemoveAll(x => x.ObjectType == ObjectType && x.ObjectID == ObjectID);
            RunAnalyConfigureCacheHelper.Trigger();
        }
        //移除缓存
        private static void RemoveCache()
        {
            RunAnalyConfigureCacheHelper.Remove();
@@ -168,6 +176,26 @@
            return false;
        }
        /// <summary>
        /// æ’入或更新
        /// </summary>
        public long InsertOrUpdate(Model.RunAnalyConfigurePure pure)
        {
            if (pure == null)
            {
                return default;
            }
            var dal = DALCreateHelper.CreateDAL<Yw.DAL.IRunAnalyConfigure>();
            var entity = pure.ToEntity();
            var id = dal.InsertOrUpdate(entity);
            if (id > 0)
            {
                UpdateCache(id);
            }
            return id;
        }
        #endregion
        #region Update
@@ -179,11 +207,11 @@
        {
            if (model == null)
            {
                return default;
                return false;
            }
            if (model.ID < 1)
            {
                return default;
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<Yw.DAL.IRunAnalyConfigure>();
            var entity = Model2Entity(model);
@@ -202,14 +230,14 @@
        {
            if (list == null || list.Count < 1)
            {
                return default;
                return false;
            }
            if (list.ToList().Exists(x => x.ID < 1))
            if (list.Exists(x => x.ID < 1))
            {
                return default;
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<Yw.DAL.IRunAnalyConfigure>();
            var entity_list = Model2Entities(list.ToList());
            var entity_list = Model2Entities(list);
            var bol = dal.Updates(entity_list);
            if (bol)
            {
@@ -250,6 +278,21 @@
            return bol;
        }
        /// <summary>
        /// é€šè¿‡ ObjectType å’Œ ObjectID åˆ é™¤
        /// </summary>
        public bool DeleteByObjectTypeAndObjectID(string ObjectType, long ObjectID, out string Msg)
        {
            Msg = string.Empty;
            var dal = DALCreateHelper.CreateDAL<Yw.DAL.IRunAnalyConfigure>();
            var bol = dal.DeleteByObjectTypeAndObjectID(ObjectType, ObjectID);
            if (bol)
            {
                RemoveCacheByObjectTypeAndObjectID(ObjectType, ObjectID);
            }
            return bol;
        }
        #endregion
        #region Set
@@ -257,9 +300,14 @@
        /// <summary>
        /// è®¾ç½®
        /// </summary>
        public bool Set(List<Model.RunAnalyConfigure> list)
        public bool Set(List<Model.RunAnalyConfigurePure> list, out string Msg)
        {
            var entityList = Model2Entities(list);
            Msg = string.Empty;
            if (list == null || list.Count < 1)
            {
                return false;
            }
            var entityList = list.ToEntityList();
            var dal = DALCreateHelper.CreateDAL<Yw.DAL.IRunAnalyConfigure>();
            var bol = dal.Set(entityList);
            if (bol)
Yw.Service.Run.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@
-->
<Project>
  <PropertyGroup>
    <History>True|2024-06-19T11:42:06.2329654Z;True|2024-05-31T15:21:11.9622287+08:00;True|2024-05-08T14:21:37.5917430+08:00;True|2024-04-30T13:45:44.5067765+08:00;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>
    <History>True|2024-07-17T04:22:58.4192354Z;True|2024-06-19T19:42:06.2329654+08:00;True|2024-05-31T15:21:11.9622287+08:00;True|2024-05-08T14:21:37.5917430+08:00;True|2024-04-30T13:45:44.5067765+08:00;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.9</Version>
        <Version>3.1.0</Version>
        <Description>引用升级</Description>
    </PropertyGroup>
@@ -27,17 +27,17 @@
    </ItemGroup>
    <ItemGroup>
      <PackageReference Include="Yw.DAL.PostgreSql.Core" Version="3.0.6" />
      <PackageReference Include="Yw.DAL.SQLite.Core" Version="3.0.6" />
      <PackageReference Include="Yw.DALFactory.Core" Version="3.0.1" />
      <PackageReference Include="Yw.ExchangeFactory.Core" Version="3.0.1" />
      <PackageReference Include="Yw.LCacheFactory.Core" Version="3.0.1" />
      <PackageReference Include="Yw.DAL.PostgreSql.Core" Version="3.0.7" />
      <PackageReference Include="Yw.DAL.SQLite.Core" Version="3.0.7" />
      <PackageReference Include="Yw.DALFactory.Core" Version="3.0.2" />
      <PackageReference Include="Yw.ExchangeFactory.Core" Version="3.0.2" />
      <PackageReference Include="Yw.LCacheFactory.Core" Version="3.0.2" />
      <PackageReference Include="Yw.Medis.Core" Version="3.0.0" />
      <PackageReference Include="Yw.MemoryQueue.Core" Version="3.0.0" />
      <PackageReference Include="Yw.QueueFactory.Core" Version="3.0.1" />
      <PackageReference Include="Yw.QueueFactory.Core" Version="3.0.2" />
      <PackageReference Include="Yw.RabbitMq.Core" Version="3.0.0" />
      <PackageReference Include="Yw.Redis.Core" Version="3.0.0" />
      <PackageReference Include="Yw.Service.Core" Version="3.0.3" />
      <PackageReference Include="Yw.Service.Core" Version="3.0.6" />
    </ItemGroup>
    <ItemGroup>
Yw.Service.Run.Core/paras_run_settings.json
@@ -49,7 +49,7 @@
    "CAL": {
      "CALType": "HttpClient", //HttpClient/LocalClient
      "HttpClient": {
        "HttpUrl": "http://101.133.133.173:97"
        "HttpUrl": ""
      },
      "LocalClient": {
      }
Yw.TopShelf.Run/Program.cs
@@ -3,31 +3,31 @@
using Topshelf;
//SZJT
HostFactory.Run(x =>
{
    x.Service<Service>();
    x.RunAsLocalSystem();
    x.SetDescription("智慧泵站Core版运行分析程序(SZJT)");
    x.SetDisplayName("IStation.Core.Server.Run.SZJT");
    x.SetServiceName("IStation.Core.Server.Run.SZJT");
    x.EnableServiceRecovery(r => r.RestartService(TimeSpan.FromSeconds(120)));
    x.StartAutomatically();
});
//SMI
//HostFactory.Run(x =>
//{
//    x.Service<Service>();
//    x.RunAsLocalSystem();
//    x.SetDescription("智慧泵站Core版运行分析程序(SMI)");
//    x.SetDisplayName("IStation.Core.Server.Run.SMI");
//    x.SetServiceName("IStation.Core.Server.Run.SMI");
//    x.SetDescription("智慧泵站Core版运行分析程序(SZJT)");
//    x.SetDisplayName("IStation.Core.Server.Run.SZJT");
//    x.SetServiceName("IStation.Core.Server.Run.SZJT");
//    x.EnableServiceRecovery(r => r.RestartService(TimeSpan.FromSeconds(120)));
//    x.StartAutomatically();
//});
//SMI
HostFactory.Run(x =>
{
    x.Service<Service>();
    x.RunAsLocalSystem();
    x.SetDescription("智慧泵站Core版运行分析程序(SMI)");
    x.SetDisplayName("IStation.Core.Server.Run.SMI");
    x.SetServiceName("IStation.Core.Server.Run.SMI");
    x.EnableServiceRecovery(r => r.RestartService(TimeSpan.FromSeconds(120)));
    x.StartAutomatically();
});
//PHM
//HostFactory.Run(x =>
//{
Yw.TopShelf.Run/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@
-->
<Project>
  <PropertyGroup>
    <History>True|2024-05-10T03:12:55.4519037Z;True|2024-05-09T17:33:36.3181674+08:00;True|2024-05-04T21:41:10.0872570+08:00;True|2024-04-26T13:38:39.5183442+08:00;False|2024-04-26T13:36:48.1771029+08:00;True|2024-04-04T16:12:48.6153997+08:00;</History>
    <History>True|2024-06-22T15:59:23.5776860Z;True|2024-06-21T11:37:51.0791047+08:00;True|2024-05-10T11:12:55.4519037+08:00;True|2024-05-09T17:33:36.3181674+08:00;True|2024-05-04T21:41:10.0872570+08:00;True|2024-04-26T13:38:39.5183442+08:00;False|2024-04-26T13:36:48.1771029+08:00;True|2024-04-04T16:12:48.6153997+08:00;</History>
    <LastFailureDetails />
  </PropertyGroup>
</Project>