using Autofac ;
using Entity.Ammeter ;
using Entity.DbModel ;
using HybirdFrameworkCore.Autofac ;
using HybirdFrameworkCore.Entity ;
using Microsoft.AspNetCore.Mvc ;
using Repository.Station ;
using Service.Ammeter ;
using Service.Station ;
using Service.System ;
using System.Collections.Generic ;
namespace WebStarter.Controllers.Ammeter
{
/// <summary>
/// 查询电表信息
/// </summary>
[ApiController]
[Route("api/[controller] ")]
public class AmmeterController : ControllerBase
{
private EmeterDayEnergyService _emeterDayEnergyService ;
private EmeterHourEnergyService _emeterHourEnergyService ;
private EmeterMinutesEnergyService _emeterMinutesEnergyService ;
private EmeterMinutesEnergyChangeService _emeterMinutesEnergyChangeService ;
private EquipInfoService _equipInfoService ;
/// <summary>
/// 查询电表信息
/// </summary>
/// <param name="emeterDayEnergyService"></param>
/// <param name="emeterHourEnergyService"></param>
/// <param name="emeterMinutesEnergyService"></param>
/// <param name="emeterMinutesEnergyChangeService"></param>
/// <param name="equipInfoService"></param>
public AmmeterController ( EmeterDayEnergyService emeterDayEnergyService , EmeterHourEnergyService emeterHourEnergyService ,
EmeterMinutesEnergyService emeterMinutesEnergyService , EmeterMinutesEnergyChangeService emeterMinutesEnergyChangeService ,
EquipInfoService equipInfoService )
{
_emeterDayEnergyService = emeterDayEnergyService ;
_emeterHourEnergyService = emeterHourEnergyService ;
_emeterMinutesEnergyService = emeterMinutesEnergyService ;
_emeterMinutesEnergyChangeService = emeterMinutesEnergyChangeService ;
_equipInfoService = equipInfoService ;
}
#region 统计分析/电能表累计值信息
/// <summary>
/// 统计分析/电能表累计值信息
/// </summary>
[HttpGet("TEgEmeterTotalEnergyValue")]
public async Task < Result < List < EmeterMinutesEnergy > > > GetNewEmeterMinutesEnergy ( )
{
return Result < List < EmeterMinutesEnergy > > . Success ( await _emeterMinutesEnergyService . SqlQueryable ( "SELECT t1.* \r\nFROM ( \r\n SELECT code, MAX(time) AS latest_time \r\n FROM emeter_minutes_energy \r\n GROUP BY code \r\n) AS latest_records \r\nJOIN emeter_minutes_energy t1 ON latest_records.code = t1.code AND latest_records.latest_time = t1.time;" ) ) ;
}
/// <summary>
/// 删除电能表累计值信息
/// </summary>
[HttpGet("TEgEmeterTotalEnergyValue{id}")]
public Result < bool > DeleteOneEmeterMinutesEnergy ( long id )
{
return Result < bool > . Success ( _emeterMinutesEnergyService . DeleteById ( id ) ) ;
}
/// <summary>
/// 删除电能表累计值信息
/// </summary>
[HttpGet("TEgEmeterTotalEnergyValue/BatchDelete")]
public Result < bool > DeleteMoreEmeterMinutesEnergy ( int [ ] ids )
{
return Result < bool > . Success ( _emeterMinutesEnergyService . DeleteByIds ( ids ) ) ;
}
# endregion
#region 统计分析/电能表变化值信息
/// <summary>
/// 统计分析/电能表变化值信息
/// </summary>
[HttpGet("TEgEmeterRealEnergyValue")]
public Result < List < EmeterMinutesEnergyChange > > GetEmeterMinutesEnergyChange ( )
{
return Result < List < EmeterMinutesEnergyChange > > . Success ( _emeterMinutesEnergyChangeService . Query ( ) ) ;
}
/// <summary>
/// 删除电能表变化值信息
/// </summary>
[HttpGet("TEgEmeterRealEnergyValue{id}")]
public Result < bool > DeleteEmeterMinutesEnergyChange ( long id )
{
return Result < bool > . Success ( _emeterMinutesEnergyChangeService . DeleteById ( id ) ) ;
}
/// <summary>
/// 批量删除电能表变化值信息
/// </summary>
[HttpGet("TEgEmeterRealEnergyValue/BatchDelete")]
public Result < bool > DeleteEmeterMinutesEnergyChange ( int [ ] ids )
{
return Result < bool > . Success ( _emeterMinutesEnergyChangeService . DeleteByIds ( ids ) ) ;
}
# endregion
#region 统计分析/电能表小时能耗值
/// <summary>
/// 统计分析/电能表小时能耗值
/// </summary>
[HttpGet("TEgEmeterHourEnergyValue")]
public Result < List < EmeterHourEnergy > > GetEmeterHourEnergy ( )
{
return Result < List < EmeterHourEnergy > > . Success ( _emeterHourEnergyService . Query ( ) ) ;
}
/// <summary>
/// 删除电能表小时能耗值
/// </summary>
[HttpGet("TEgEmeterHourEnergyValue{id}")]
public Result < bool > DeleteEmeterHourEnergy ( long id )
{
return Result < bool > . Success ( _emeterHourEnergyService . DeleteById ( id ) ) ;
}
/// <summary>
/// 批量删除电能表小时能耗值
/// </summary>
[HttpGet("TEgEmeterHourEnergyValue/BatchDelete")]
public Result < bool > DeleteListEmeterHourEnergy ( int [ ] ids )
{
return Result < bool > . Success ( _emeterHourEnergyService . DeleteByIds ( ids ) ) ;
}
# endregion
#region 统计分析/电能表每天能耗值
/// <summary>
/// 统计分析/电能表每天能耗值
/// </summary>
[HttpGet("TEgEmeterDayEnergyValue")]
public Result < List < EmeterDayEnergy > > GetEmeterDayEnergy ( )
{
return Result < List < EmeterDayEnergy > > . Success ( _emeterDayEnergyService . Query ( ) ) ;
}
/// <summary>
/// 删除电能表每天能耗值
/// </summary>
[HttpGet("TEgEmeterDayEnergyValue{id}")]
public Result < bool > DeleteEmeterDayEnergy ( long id )
{
return Result < bool > . Success ( _emeterDayEnergyService . DeleteById ( id ) ) ;
}
/// <summary>
/// 批量删除电能表每天能耗值
/// </summary>
[HttpGet("TEgEmeterDayEnergyValue/BatchDelete")]
public Result < bool > DeleteListEmeterDayEnergy ( int [ ] ids )
{
return Result < bool > . Success ( _emeterDayEnergyService . DeleteByIds ( ids ) ) ;
}
# endregion
#region 统计分析/换电站分时用电统计信息
//TODO::
//小时计算总能耗值,小时计算充电能耗值,小时计算换电能耗值,小时计算其他能耗值,开始时间,结束时间
# endregion
#region 统计分析/换电站每天用电统计信息
//TODO::
//每天计算总能耗值,每天计算充电能耗值,每天计算换电能耗值,每天计算其他能耗值,开始时间,结束时间
# endregion
#region 电能监控/交流电能监控
/// <summary>
/// 电能监控/交流电能监控
/// </summary>
[HttpGet("ElecMeterParam/GetElecMeterParamValue")]
public Result < List < EmeterMinutesEnergy > > GetElecMeterParamValue ( )
{
var EquipInfo = _equipInfoService . QueryListByClause ( i = > i . TypeCode = = 0 ) ;
List < string > strings = new List < string > ( ) ;
foreach ( var kvp in EquipInfo )
{
strings . Add ( kvp . Code ) ;
}
return Result < List < EmeterMinutesEnergy > > . Success ( _emeterMinutesEnergyService . QueryListByClause ( i = > strings . Contains ( i . Code ) ) . ToList ( ) ) ;
}
# endregion
#region 电能监控/直流电能监控
/// <summary>
/// 电能监控/交流电能监控
/// </summary>
[HttpGet("ManualSwap/GetDcCurrentInfo")]
public Result < List < EmeterMinutesEnergy > > GetDcCurrentInfo ( )
{
var EquipInfo = _equipInfoService . QueryListByClause ( i = > i . TypeCode = = 1 ) ;
List < string > strings = new List < string > ( ) ;
foreach ( var kvp in EquipInfo )
{
strings . Add ( kvp . Code ) ;
}
return Result < List < EmeterMinutesEnergy > > . Success ( _emeterMinutesEnergyService . QueryListByClause ( i = > strings . Contains ( i . Code ) ) . ToList ( ) ) ;
}
# endregion
}
}