Files
DMS/DMS.Core/Interfaces/Repositories/IVariableRepository.cs
David P.G cdfb906112 feat(处理器): 增强变量处理链并实现批量更新
- 新增 UpdateDbVariableProcessor 处理器,通过队列和定时器实现数据库的批量更新,以降低负载。
  - 重构 ValueConvertProcessor 处理器,使其能够解析 ConversionFormula 公式,计算出最终的 DisplayValue。
  - 扩展 IVariableRepository 仓储接口,添加 UpdateBatchAsync 方法,并使用SqlSugar实现高效的批量更新。
  - 优化 VariableContext 模型,将 NewValue 类型统一为 string,简化了数据流并提升了类型安全。
2025-10-02 17:35:35 +08:00

36 lines
1.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using DMS.Core.Models;
namespace DMS.Core.Interfaces.Repositories
{
public interface IVariableRepository:IBaseRepository<Variable>
{
/// <summary>
/// 异步根据变量表ID删除变量。
/// </summary>
/// <param name="variableTableId">变量表的唯一标识符。</param>
/// <returns>受影响的行数。</returns>
Task<int> DeleteByVariableTableIdAsync(int variableTableId);
/// <summary>
/// 异步根据OPC UA NodeId获取单个变量实体。
/// </summary>
/// <param name="opcUaNodeId">OPC UA NodeId。</param>
/// <returns>找到的变量实体如果不存在则返回null。</returns>
Task<Variable?> GetByOpcUaNodeIdAsync(string opcUaNodeId);
/// <summary>
/// 异步根据OPC UA NodeId列表获取变量实体列表。
/// </summary>
/// <param name="opcUaNodeIds">OPC UA NodeId列表。</param>
/// <returns>找到的变量实体列表。</returns>
Task<List<Variable>> GetByOpcUaNodeIdsAsync(List<string> opcUaNodeIds);
/// <summary>
/// 异步批量更新变量。
/// </summary>
/// <param name="variables">要更新的变量实体集合。</param>
/// <returns>受影响的行数。</returns>
Task<int> UpdateBatchAsync(IEnumerable<Variable> variables);
}
}