89 lines
3.1 KiB
C#
89 lines
3.1 KiB
C#
using langguanApi.Extensions.AutoDI;
|
|
using langguanApi.Model;
|
|
using langguanApi.Model.Entity;
|
|
using Mapster;
|
|
using MathNet.Numerics.Distributions;
|
|
using Npoi.Mapper;
|
|
using Org.BouncyCastle.Asn1.IsisMtt.X509;
|
|
using System.Linq.Expressions;
|
|
using System.Security.Cryptography.X509Certificates;
|
|
|
|
namespace langguanApi.Service
|
|
{
|
|
[ServiceInjection(InjectionType.Transient)]
|
|
/// <summary>
|
|
/// Ledger service
|
|
/// </summary>
|
|
public class LedgerService : BaseService<Ledger>
|
|
{
|
|
public LedgerService(IConfiguration config) : base(config, nameof(Ledger))
|
|
{
|
|
}
|
|
/// <summary>
|
|
/// 新增数据
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
public async Task AddLedger(AddLedgerDto input)
|
|
{
|
|
var enity = input.Adapt<Ledger>();
|
|
enity.CarNum = input.CarNumber;
|
|
if (input.EntryDirection == 1)
|
|
{
|
|
enity.InTime = input.Time;
|
|
}
|
|
else
|
|
{
|
|
enity.OutTime = input.Time;
|
|
}
|
|
enity.Emissions = input.EmissionLevel;
|
|
await base.CreateAsync(enity);
|
|
}
|
|
public async Task<object> HeaderCount()
|
|
{
|
|
return new { t1 = 100, t2 = 200, t3 = 300, t4 = 400 };
|
|
}
|
|
/// <summary>
|
|
/// 导出数据
|
|
/// </summary>
|
|
/// <param name="start"></param>
|
|
/// <param name="end"></param>
|
|
/// <returns></returns>
|
|
public async Task<byte[]> Export(DateTime? start, DateTime? end)
|
|
{
|
|
start = start.HasValue ? start.Value : DateTime.Now.AddDays(-7);
|
|
end = end.HasValue ? end : DateTime.Now.AddDays(1);
|
|
Expression<Func<Ledger, bool>> exp = filter =>
|
|
filter.CreateDateTime >= start.Value && filter.CreateDateTime <= end.Value && filter.IsDelete == false;
|
|
var list = (await base.GetListWithExp(exp)).ToList();
|
|
var mapper = new Mapper();
|
|
mapper.Map<Ledger>("进场时间", s => s.InTime)
|
|
.Map<Ledger>("车牌号", s => s.CarNum)
|
|
.Map<Ledger>("车型", s => s.CarModel)
|
|
.Map<Ledger>("是否新能源", s => s.NewCar)
|
|
.Map<Ledger>("燃油车", s => s.Emissions)
|
|
.Map<Ledger>("出厂日间 ", s => s.OutTime)
|
|
.Format<Ledger>("yyyy-MM-dd HH:mm:ss", s => s.InTime)
|
|
.Format<Ledger>("yyyy-MM-dd HH:mm:ss", s => s.OutTime);
|
|
MemoryStream stream = new MemoryStream();
|
|
mapper.Save(stream, list, sheetName: "sheet1", leaveOpen: true);
|
|
return stream.ToArray();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页取数据
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
public async Task<object> GetPage(reqpage input)
|
|
{
|
|
Expression<Func<Ledger, bool>> exp = filter => filter.IsDelete == false;
|
|
return await base.GetPager(new ReqPaing()
|
|
{
|
|
pageSize = input.pageSize,
|
|
current = input.current
|
|
}, exp);
|
|
}
|
|
}
|
|
}
|