release:6.0.5.23
feat: 基础库增加 net8 编译项 feat: SqlHisAlarm添加表名称配置属性 refactor: 默认server gc true,如有低内存需要,更改 MSBuild 项
This commit is contained in:
@@ -25,6 +25,11 @@ import Highlight from '@site/src/components/Highlight.js';
|
||||
|
||||
具体升级详情请查看链接 **https://github.com/kimdiego2098/ThingsGateway/compare/v5...master**
|
||||
|
||||
### 6.0.5.23
|
||||
|
||||
- <Tag>新增</Tag> 基础库增加 net8 编译项
|
||||
- <Tag>调整</Tag> 默认server gc true,如有低内存需要,更改 MSBuild 项
|
||||
|
||||
|
||||
### 6.0.5.21
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<NoWarn>CS8603;CS8618;CS1591;CS8625;CS8602;CS8604;CS8600;CS8601;</NoWarn>
|
||||
<TargetFrameworks>net6.0;</TargetFrameworks>
|
||||
<TargetFrameworks>net6.0;net8.0;</TargetFrameworks>
|
||||
<LangVersion>12.0</LangVersion>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net462;netstandard2.0;net6.0;</TargetFrameworks>
|
||||
<TargetFrameworks>net462;netstandard2.0;net6.0;net8.0;</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Content Remove="Locales\*.json" />
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net6.0;</TargetFrameworks>
|
||||
<TargetFrameworks>net6.0;net8.0;</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@@ -57,7 +57,7 @@ public partial class ParentMenu
|
||||
{
|
||||
Option = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Size = Size.ExtraLarge,
|
||||
Title = Localizer["ChoiceMenu"],
|
||||
BodyTemplate = BootstrapDynamicComponent.CreateComponent<ParentMenuTree>(new Dictionary<string, object?>
|
||||
|
@@ -37,7 +37,7 @@ public partial class SysResourceEdit
|
||||
|
||||
private Task OnToggleIconDialog() => DialogService.Show(new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = Localizer["ChoiceIcon"],
|
||||
ShowFooter = false,
|
||||
Component = BootstrapDynamicComponent.CreateComponent<MenuIconList>(new Dictionary<string, object?>()
|
||||
|
@@ -69,7 +69,7 @@ public partial class SysRolePage
|
||||
ids.AddRange(hasResources.Select(a => a.ApiUrl));
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Size = Size.ExtraLarge,
|
||||
Title = OperDescLocalizer["RoleGrantApiPermission"],
|
||||
ShowCloseButton = false,
|
||||
@@ -88,7 +88,7 @@ public partial class SysRolePage
|
||||
var ids = (await SysRoleService.OwnResourceAsync(id))?.GrantInfoList;
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Size = Size.ExtraLarge,
|
||||
Title = OperDescLocalizer["RoleGrantResource"],
|
||||
ShowCloseButton = false,
|
||||
@@ -106,7 +106,7 @@ public partial class SysRolePage
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = OperDescLocalizer["RoleGrantUser"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
|
@@ -41,7 +41,7 @@ public partial class SessionPage
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = Localizer[nameof(VerificatInfo)],
|
||||
ShowFooter = false,
|
||||
Size = Size.ExtraLarge
|
||||
|
@@ -52,7 +52,7 @@ public partial class SysUserPage
|
||||
ids.AddRange(hasResources.Select(a => a.ApiUrl));
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Size = Size.ExtraLarge,
|
||||
Title = OperDescLocalizer["UserGrantApiPermission"],
|
||||
ShowCloseButton = false,
|
||||
@@ -70,7 +70,7 @@ public partial class SysUserPage
|
||||
var ids = (await SysUserService.OwnResourceAsync(id))?.GrantInfoList;
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Size = Size.ExtraLarge,
|
||||
Title = OperDescLocalizer["UserGrantResource"],
|
||||
ShowCloseButton = false,
|
||||
@@ -87,7 +87,7 @@ public partial class SysUserPage
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = OperDescLocalizer["UserGrantRole"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
|
@@ -198,7 +198,7 @@ public abstract class BusinessBaseWithCacheIntervalAlarmModel<VarModel, DevModel
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当设备状态发生变化时触发此事件处理方法。该方法内部会检查是否需要进行设备上传,如果需要,则调用 <see cref="DeviceChange(DeviceRunTime, DeviceData)"/> 方法。
|
||||
/// 当设备状态发生变化时触发此事件处理方法。该方法内部会检查是否需要进行设备上传,如果需要,则调用 <see cref="DeviceChange(DeviceRunTime, DeviceBasicData)"/> 方法。
|
||||
/// </summary>
|
||||
/// <param name="deviceRunTime">设备运行时信息</param>
|
||||
/// <param name="deviceData">设备数据</param>
|
||||
@@ -216,7 +216,7 @@ public abstract class BusinessBaseWithCacheIntervalAlarmModel<VarModel, DevModel
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当变量值发生变化时触发此事件处理方法。该方法内部会检查是否需要进行变量上传,如果需要,则调用 <see cref="VariableChange(VariableRunTime, VariableData)"/> 方法。
|
||||
/// 当变量值发生变化时触发此事件处理方法。该方法内部会检查是否需要进行变量上传,如果需要,则调用 <see cref="VariableChange(VariableRunTime, VariableBasicData)"/> 方法。
|
||||
/// </summary>
|
||||
/// <param name="variableRunTime">变量运行时信息</param>
|
||||
/// <param name="variable">变量数据</param>
|
||||
|
@@ -357,6 +357,26 @@ public class ChannelThread
|
||||
|
||||
driverBase.AfterStop();
|
||||
|
||||
|
||||
// 如果需要移除的是采集设备
|
||||
if (IsCollectChannel)
|
||||
{
|
||||
// 锁定采集设备集合,并移除与DriverBases关联的设备
|
||||
//lock (GlobalData.CollectDevices)
|
||||
{
|
||||
GlobalData.CollectDevices.RemoveWhere(it => DriverBases.Any(a => a.DeviceId == it.Value.Id));
|
||||
GlobalData.Variables.RemoveWhere(it => DriverBases.Any(a => a.DeviceId == it.Value.DeviceId));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 锁定业务设备集合,并移除与DriverBases关联的设备
|
||||
//lock (GlobalData.BusinessDevices)
|
||||
{
|
||||
GlobalData.BusinessDevices.RemoveWhere(it => DriverBases.Any(a => a.DeviceId == it.Value.Id));
|
||||
}
|
||||
}
|
||||
|
||||
// 从驱动程序集合和令牌源集合中移除驱动程序对象和相关令牌
|
||||
DriverBases.Remove(driverBase);
|
||||
CancellationTokenSources.Remove(deviceId);
|
||||
@@ -493,7 +513,7 @@ public class ChannelThread
|
||||
if (IsCollectChannel)
|
||||
{
|
||||
// 锁定采集设备集合,并移除与DriverBases关联的设备
|
||||
lock (GlobalData.CollectDevices)
|
||||
//lock (GlobalData.CollectDevices)
|
||||
{
|
||||
GlobalData.CollectDevices.RemoveWhere(it => DriverBases.Any(a => a.DeviceId == it.Value.Id));
|
||||
GlobalData.Variables.RemoveWhere(it => DriverBases.Any(a => a.DeviceId == it.Value.DeviceId));
|
||||
@@ -502,7 +522,7 @@ public class ChannelThread
|
||||
else
|
||||
{
|
||||
// 锁定业务设备集合,并移除与DriverBases关联的设备
|
||||
lock (GlobalData.BusinessDevices)
|
||||
//lock (GlobalData.BusinessDevices)
|
||||
{
|
||||
GlobalData.BusinessDevices.RemoveWhere(it => DriverBases.Any(a => a.DeviceId == it.Value.Id));
|
||||
}
|
||||
|
@@ -137,7 +137,7 @@ public abstract class CollectBase : DriverBase
|
||||
DeviceMethods = data;
|
||||
|
||||
// 使用全局锁确保多线程安全地更新全局数据
|
||||
lock (GlobalData.CollectDevices)
|
||||
//lock (GlobalData.CollectDevices)
|
||||
{
|
||||
// 从全局设备字典中移除具有相同 Id 的设备
|
||||
GlobalData.CollectDevices.RemoveWhere(it => it.Value.Id == device.Id);
|
||||
|
@@ -13,7 +13,6 @@ using BootstrapBlazor.Components;
|
||||
using Microsoft.Extensions.Localization;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
using ThingsGateway.Core.Extension;
|
||||
using ThingsGateway.NewLife.X.Threading;
|
||||
|
||||
using TouchSocket.Core;
|
||||
@@ -213,24 +212,24 @@ public abstract class DriverBase : DisposableObject
|
||||
this.SafeDispose();
|
||||
// 根据是否正在采集设备来从全局设备集合或业务设备集合中移除指定设备ID的驱动程序对象
|
||||
//if (!HostedServiceUtil.ManagementHostedService.StartBusinessDeviceEnable)
|
||||
{
|
||||
if (IsCollectDevice)
|
||||
{
|
||||
lock (GlobalData.CollectDevices)
|
||||
{
|
||||
GlobalData.CollectDevices.RemoveWhere(it => it.Value.Id == DeviceId);
|
||||
//{
|
||||
// if (IsCollectDevice)
|
||||
// {
|
||||
// lock (GlobalData.CollectDevices)
|
||||
// {
|
||||
// GlobalData.CollectDevices.RemoveWhere(it => it.Value.Id == DeviceId);
|
||||
|
||||
GlobalData.Variables.RemoveWhere(it => it.Value.DeviceId == DeviceId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lock (GlobalData.BusinessDevices)
|
||||
{
|
||||
GlobalData.BusinessDevices.RemoveWhere(it => it.Value.Id == DeviceId);
|
||||
}
|
||||
}
|
||||
}
|
||||
// GlobalData.Variables.RemoveWhere(it => it.Value.DeviceId == DeviceId);
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// lock (GlobalData.BusinessDevices)
|
||||
// {
|
||||
// GlobalData.BusinessDevices.RemoveWhere(it => it.Value.Id == DeviceId);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
IsInitSuccess = true;
|
||||
IsBeforStarted = false;
|
||||
|
@@ -67,7 +67,7 @@ public partial class ChannelPage : IDisposable
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = DefaultLocalizer["BatchEdit"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
@@ -151,7 +151,7 @@ public partial class ChannelPage : IDisposable
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = Localizer["ImportExcel"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
|
@@ -99,7 +99,7 @@ public partial class DeviceEditComponent
|
||||
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = ChannelLocalizer["SaveChannel"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
@@ -243,7 +243,7 @@ public partial class DeviceEditComponent
|
||||
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = Localizer["Check"],
|
||||
ShowFooter = false,
|
||||
|
||||
|
@@ -144,7 +144,7 @@ public abstract partial class DevicePage : IDisposable
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = DefaultLocalizer["BatchEdit"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
@@ -251,7 +251,7 @@ public abstract partial class DevicePage : IDisposable
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = Localizer["ImportExcel"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
|
@@ -59,7 +59,7 @@ public partial class PluginPage
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = PluginAddInputLoaclozer["SavePlugin"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
|
@@ -107,7 +107,7 @@ public partial class VariablePage : IDisposable
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = DefaultLocalizer["BatchEdit"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
@@ -208,7 +208,7 @@ public partial class VariablePage : IDisposable
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = Localizer["ImportExcel"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
|
@@ -63,7 +63,7 @@ public partial class DeviceStatus
|
||||
}
|
||||
await DialogService.Show(new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = _driverBaseItem.DeviceName,
|
||||
Component = BootstrapDynamicComponent.CreateComponent(driver, new Dictionary<string, object?>()
|
||||
{
|
||||
|
@@ -9,8 +9,11 @@
|
||||
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
||||
<TargetFrameworks>net6.0;</TargetFrameworks>
|
||||
<!--<PublishAot>true</PublishAot>-->
|
||||
|
||||
<!--动态适用GC-->
|
||||
<GarbageCollectionAdaptationMode>true</GarbageCollectionAdaptationMode>
|
||||
<!--使用工作站GC-->
|
||||
<ServerGarbageCollection>false</ServerGarbageCollection>
|
||||
<!--<ServerGarbageCollection>false</ServerGarbageCollection>-->
|
||||
<!--<PlatformTarget>x86</PlatformTarget>-->
|
||||
</PropertyGroup>
|
||||
|
||||
|
@@ -61,7 +61,7 @@ public partial class MainLayout : IDisposable
|
||||
|
||||
op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Size = Size.ExtraLarge,
|
||||
ShowFooter = false,
|
||||
Title = Localizer["ChoiceModule"],
|
||||
@@ -91,7 +91,7 @@ public partial class MainLayout : IDisposable
|
||||
{
|
||||
return DialogService.Show(new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = Localizer["UserCenter"],
|
||||
ShowFooter = false,
|
||||
Component = BootstrapDynamicComponent.CreateComponent<UserCenterPage>(new Dictionary<string, object?>()
|
||||
@@ -213,7 +213,7 @@ public partial class MainLayout : IDisposable
|
||||
|
||||
op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Size = Size.Medium,
|
||||
ShowFooter = false,
|
||||
Title = Localizer["About"],
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<!--<UseWindowsThreadPool>false</UseWindowsThreadPool> -->
|
||||
|
||||
<!--使用工作站GC-->
|
||||
<ServerGarbageCollection>false</ServerGarbageCollection>
|
||||
<!--<ServerGarbageCollection>false</ServerGarbageCollection>-->
|
||||
|
||||
<!--<PlatformTarget>x86</PlatformTarget>-->
|
||||
</PropertyGroup>
|
||||
@@ -66,7 +66,6 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.8" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.8" />
|
||||
</ItemGroup>
|
||||
|
||||
<!--安装服务守护-->
|
||||
|
@@ -9,8 +9,10 @@
|
||||
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
||||
<TargetFrameworks>net8.0-windows;</TargetFrameworks>
|
||||
|
||||
<!--动态适用GC-->
|
||||
<GarbageCollectionAdaptationMode>true</GarbageCollectionAdaptationMode>
|
||||
<!--使用工作站GC-->
|
||||
<ServerGarbageCollection>false</ServerGarbageCollection>
|
||||
<!--<ServerGarbageCollection>false</ServerGarbageCollection>-->
|
||||
<!--<PlatformTarget>x86</PlatformTarget>-->
|
||||
</PropertyGroup>
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Version>6.0.5.21</Version>
|
||||
<Version>6.0.5.23</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net6.0;</TargetFrameworks>
|
||||
<TargetFrameworks>net8.0;</TargetFrameworks>
|
||||
<OutputType>Exe</OutputType>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<Import Project="$(SolutionDir)PackNuget.props" />
|
||||
<Import Project="$(SolutionDir)Version.props" />
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net462;netstandard2.0;net6.0;</TargetFrameworks>
|
||||
<TargetFrameworks>net462;netstandard2.0;net6.0;net8.0;</TargetFrameworks>
|
||||
<Description>工业设备通讯协议-OpcDa协议</Description>
|
||||
<DocumentationFile></DocumentationFile>
|
||||
<IncludeSymbols>false</IncludeSymbols>
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<Import Project="$(SolutionDir)PackNuget.props" />
|
||||
<Import Project="$(SolutionDir)Version.props" />
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net48;netstandard2.1;net6.0;</TargetFrameworks>
|
||||
<TargetFrameworks>net48;netstandard2.1;net6.0;net8.0;</TargetFrameworks>
|
||||
<Description>工业设备通讯协议-OpcUa协议</Description>
|
||||
<DocumentationFile></DocumentationFile>
|
||||
</PropertyGroup>
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<Import Project="$(SolutionDir)PackNuget.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net6.0;</TargetFrameworks>
|
||||
<TargetFrameworks>netstandard2.0;net6.0;net8.0;</TargetFrameworks>
|
||||
<Version>8.8.9</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@@ -5,6 +5,14 @@
|
||||
<OutputType>WinExe</OutputType>
|
||||
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
||||
<TargetFrameworks>net6.0</TargetFrameworks>
|
||||
|
||||
<!--动态适用GC-->
|
||||
<GarbageCollectionAdaptationMode>true</GarbageCollectionAdaptationMode>
|
||||
<!--使用自托管线程池-->
|
||||
<!--<UseWindowsThreadPool>false</UseWindowsThreadPool> -->
|
||||
|
||||
<!--使用工作站GC-->
|
||||
<!--<ServerGarbageCollection>false</ServerGarbageCollection>-->
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
|
@@ -70,7 +70,7 @@ public partial class MainLayout
|
||||
|
||||
op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Size = Size.Medium,
|
||||
ShowFooter = false,
|
||||
Title = Localizer["About"],
|
||||
|
@@ -15,7 +15,7 @@
|
||||
<!--<UseWindowsThreadPool>false</UseWindowsThreadPool> -->
|
||||
|
||||
<!--使用工作站GC-->
|
||||
<ServerGarbageCollection>false</ServerGarbageCollection>
|
||||
<!--<ServerGarbageCollection>false</ServerGarbageCollection>-->
|
||||
|
||||
<!--<PlatformTarget>x86</PlatformTarget>-->
|
||||
</PropertyGroup>
|
||||
|
@@ -22,12 +22,12 @@ public partial class HisAlarmPage : IDriverUIBase
|
||||
[Parameter, EditorRequired]
|
||||
public object Driver { get; set; }
|
||||
|
||||
public SqlHisAlarm QuestDBProducer => (SqlHisAlarm)Driver;
|
||||
public SqlHisAlarm SqlHisAlarmProducer => (SqlHisAlarm)Driver;
|
||||
private HistoryAlarmPageInput CustomerSearchModel { get; set; } = new();
|
||||
|
||||
private async Task<QueryData<HistoryAlarm>> OnQueryAsync(QueryPageOptions options)
|
||||
{
|
||||
var query = await QuestDBProducer.QueryData(options);
|
||||
var query = await SqlHisAlarmProducer.QueryData(options);
|
||||
return query;
|
||||
}
|
||||
}
|
||||
|
@@ -28,4 +28,8 @@ public class SqlHisAlarmProperty : BusinessPropertyWithCache
|
||||
[Required]
|
||||
[AutoGenerateColumn(ComponentType = typeof(Textarea), Rows = 1)]
|
||||
public string BigTextConnectStr { get; set; } = "server=.;uid=sa;pwd=111111;database=test;";
|
||||
|
||||
[DynamicProperty]
|
||||
public string TableName { get; set; } = "historyAlarm";
|
||||
|
||||
}
|
||||
|
@@ -61,9 +61,9 @@ public partial class SqlHisAlarm : BusinessBaseWithCacheVarModel<HistoryAlarm>,
|
||||
|
||||
protected override Task ProtectedBeforStartAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
var db = BusinessDatabaseUtil.GetDb(_driverPropertys.DbType, _driverPropertys.BigTextConnectStr);
|
||||
using var db = BusinessDatabaseUtil.GetDb(_driverPropertys.DbType, _driverPropertys.BigTextConnectStr);
|
||||
db.DbMaintenance.CreateDatabase();
|
||||
db.CodeFirst.InitTables(typeof(HistoryAlarm));
|
||||
db.CodeFirst.As<HistoryAlarm>(_driverPropertys.TableName).InitTables<HistoryAlarm>();
|
||||
return base.ProtectedBeforStartAsync(cancellationToken);
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ public partial class SqlHisAlarm : BusinessBaseWithCacheVarModel<HistoryAlarm>,
|
||||
internal ISugarQueryable<HistoryAlarm> Query(DBHistoryAlarmPageInput input)
|
||||
{
|
||||
using var db = BusinessDatabaseUtil.GetDb(_driverPropertys.DbType, _driverPropertys.BigTextConnectStr);
|
||||
var query = db.Queryable<HistoryAlarm>().SplitTable()
|
||||
var query = db.Queryable<HistoryAlarm>().AS(_driverPropertys.TableName)
|
||||
.WhereIF(input.StartTime != null, a => a.EventTime >= input.StartTime)
|
||||
.WhereIF(input.EndTime != null, a => a.EventTime <= input.EndTime)
|
||||
.WhereIF(!string.IsNullOrEmpty(input.VariableName), it => it.Name.Contains(input.VariableName))
|
||||
@@ -119,7 +119,7 @@ public partial class SqlHisAlarm : BusinessBaseWithCacheVarModel<HistoryAlarm>,
|
||||
IsSearch = option.Searches.Any()
|
||||
};
|
||||
|
||||
var query = db.GetQuery<HistoryAlarm>(option);
|
||||
var query = db.GetQuery<HistoryAlarm>(option).AS(_driverPropertys.TableName);
|
||||
|
||||
if (option.IsPage)
|
||||
{
|
||||
|
@@ -44,9 +44,9 @@ public partial class SqlHisAlarm : BusinessBaseWithCacheVarModel<HistoryAlarm>
|
||||
//.SplitTable()
|
||||
|
||||
if (db.CurrentConnectionConfig.DbType == SqlSugar.DbType.QuestDB)
|
||||
result = await db.Insertable(dbInserts).UseParameter().ExecuteCommandAsync().ConfigureAwait(false);//不要加分表
|
||||
result = await db.Insertable(dbInserts).AS(_driverPropertys.TableName).UseParameter().ExecuteCommandAsync().ConfigureAwait(false);//不要加分表
|
||||
else
|
||||
result = await db.Fastest<HistoryAlarm>().PageSize(50000).BulkCopyAsync(dbInserts).ConfigureAwait(false);
|
||||
result = await db.Fastest<HistoryAlarm>().AS(_driverPropertys.TableName).PageSize(50000).BulkCopyAsync(dbInserts).ConfigureAwait(false);
|
||||
|
||||
//var result = await db.Insertable(dbInserts).SplitTable().ExecuteCommandAsync().ConfigureAwait(false);
|
||||
if (result > 0)
|
||||
|
@@ -141,7 +141,7 @@ public partial class OpcDaMaster : IDisposable
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = OpcDaPropertyLocalizer["ShowImport"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
|
@@ -140,7 +140,7 @@ public partial class OpcUaMaster : IDisposable
|
||||
{
|
||||
var op = new DialogOption()
|
||||
{
|
||||
IsScrolling = true,
|
||||
IsScrolling = false,
|
||||
Title = OpcUaPropertyLocalizer["ShowImport"],
|
||||
ShowFooter = false,
|
||||
ShowCloseButton = false,
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="$(SolutionDir)Version.props" />
|
||||
<Import Project="$(SolutionDir)PackNuget.props" />
|
||||
|
||||
|
||||
<PropertyGroup>
|
||||
<OpenApiGenerateDocuments>false</OpenApiGenerateDocuments>
|
||||
</PropertyGroup>
|
||||
@@ -10,12 +10,19 @@
|
||||
<None Remove="SpecificationDocument\Assets\index.html" />
|
||||
<EmbeddedResource Include="SpecificationDocument\Assets\index.html" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<FrameworkReference Include="Microsoft.AspNetCore.App" />
|
||||
<ProjectReference Include="$(SolutionDir)\tools\ThingsGateway.Startup\ThingsGateway.Startup.csproj" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.32" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.7.2" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
|
||||
<ItemGroup Condition="'$(TargetFramework)'=='net8.0'">
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.8" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetFramework)'=='net6.0'">
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.32" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@@ -2,7 +2,7 @@
|
||||
<Import Project="$(SolutionDir)PackNuget.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net6.0;</TargetFrameworks>
|
||||
<TargetFrameworks>netstandard2.0;net6.0;net8.0;</TargetFrameworks>
|
||||
<Version>8.8.9</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@@ -4,10 +4,10 @@
|
||||
<Import Project="$(SolutionDir)Version.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net462;netstandard2.0;netstandard2.1;net6.0;</TargetFrameworks>
|
||||
<TargetFrameworks>net462;netstandard2.0;netstandard2.1;net6.0;net8.0;</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(TargetFramework)'=='net462' or '$(TargetFramework)'=='net6.0-windows'">
|
||||
<PropertyGroup Condition=" '$(TargetFramework)'=='net462' or '$(TargetFramework)'=='net6.0-windows' or '$(TargetFramework)'=='net8.0-windows'">
|
||||
<DefineConstants>$(DefineConstants);__WIN__</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
|
Reference in New Issue
Block a user