You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.3 KiB

using Entity.Ammeter;
using HybirdFrameworkCore.Autofac.Attribute;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using Repository.Ammeter;
using SqlSugar;
namespace Service.Ammeter;
[Scope("SingleInstance")]
public class EmeterEnergyChangeService : BaseServices<EmeterEnergyChange>
{
private readonly EmeterEnergyChangeRepository _emeterEnergyChangeRep;
public EmeterEnergyChangeService(EmeterEnergyChangeRepository emeterEnergyChangeRep)
{
_emeterEnergyChangeRep = emeterEnergyChangeRep;
BaseDal = emeterEnergyChangeRep;
}
/// <summary>
/// 获取交流电表实时数据
/// </summary>
/// <returns></returns>
public async Task<List<EmeterEnergyChange>> GetEnergyMeterRealTime(string endTime)
{
// 将传入的时间参数转换为DateTime类型
DateTime endDateTime = DateTime.Parse(endTime);
// 根据传入的时间参数计算1分钟的时间
DateTime startDateTime = endDateTime.AddMinutes(-1);
List<EmeterEnergyChange> list = await _emeterEnergyChangeRep.QueryListByClauseAsync(i => i.UploadTime>=startDateTime);
return list
.GroupBy(e => e.Code)
.Select(g => g.OrderByDescending(e => e.UploadTime).First())
.ToList();
}
}