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.

98 lines
3.7 KiB

using Common.Enum;
using Entity.Api.Resp;
using Entity.DbModel.Station;
using Entity.Dto.Req;
using HybirdFrameworkCore.Autofac.Attribute;
using HybirdFrameworkCore.Entity;
using Repository.Station;
using Repository.System;
using Service.Mgr;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AutoMapper;
using Entity.Dto;
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Mvc;
namespace Service.Station
{
[Scope("SingleInstance")]
public class ExStationDayRunResultService : BaseServices<ExchangeStationDayRunResult>
{
ExStationDayRunResultRepository _exStationDayRunResultRepository;
public ExStationDayRunResultService(ExStationDayRunResultRepository dal)
{
_exStationDayRunResultRepository = dal;
BaseDal = dal;
}
/// <summary>
/// 展示换电站日运行统计结果
/// </summary>
/// <returns></returns>
public async Task<PageResult<ExchangeStationDayRunResult>> ExStationDaySwapRunRes(QueryPageModel queryPageModel)
{
return PageResult<ExchangeStationDayRunResult>.ConvertPage(_exStationDayRunResultRepository.QueryIPageByCause(queryPageModel, null));
}
/// <summary>
/// 根据id 删除换电站日运行结果
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<bool> DeleteDaySwapRunRes(int id)
{
return await _exStationDayRunResultRepository.DeleteByIdAsync(id);
}
/// <summary>
/// 根据id 批量删除换电站日运行结果
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public async Task<bool> BatchDeleteDaySwapRunRes(List<int> ids)
{
return await _exStationDayRunResultRepository.DeleteByIdsAsync(ids);
}
/// <summary>
/// 导出换电站日运行统计结果 🔖
/// </summary>
/// <returns></returns>
public async Task<IActionResult> ExportExchangeStationDayRunResult(string language)
{
List<ExchangeStationDayRunResult> exchangeStationDayRunResults = await _exStationDayRunResultRepository.QueryAsync();
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<ExchangeStationDayRunDto, ExchangeStationDayRunResult>().ReverseMap();
cfg.CreateMap<ExchangeStationDayRunDto2, ExchangeStationDayRunResult>().ReverseMap();
});
IMapper mapper = config.CreateMapper();
if (language == "en")
{
List<ExchangeStationDayRunDto2> logExList2 = mapper.Map<List<ExchangeStationDayRunDto2>>(exchangeStationDayRunResults);
IExcelExporter excelExporter = new ExcelExporter();
var res = await excelExporter.ExportAsByteArray(logExList2);
return new FileStreamResult(new MemoryStream(res), "application/octet-stream")
{ FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "_Daily_Operation_Statistics.xlsx" };
}
else
{
List<ExchangeStationDayRunDto> logExList = mapper.Map<List<ExchangeStationDayRunDto>>(exchangeStationDayRunResults);
IExcelExporter excelExporter = new ExcelExporter();
var res = await excelExporter.ExportAsByteArray(logExList);
return new FileStreamResult(new MemoryStream(res), "application/octet-stream")
{ FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "换电站日运行统计.xlsx" };
}
}
}
}