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)] /// /// Ledger service /// public class LedgerService : BaseService { public LedgerService(IConfiguration config) : base(config, nameof(Ledger)) { } /// /// 新增数据 /// /// /// public async Task AddLedger(AddLedgerDto input) { var enity = input.Adapt(); 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 HeaderCount() { return new { t1 = 100, t2 = 200, t3 = 300, t4 = 400 }; } /// /// 导出数据 /// /// /// /// public async Task Export(DateTime? start, DateTime? end) { start = start.HasValue ? start.Value : DateTime.Now.AddDays(-7); end = end.HasValue ? end : DateTime.Now.AddDays(1); Expression> 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("进场时间", s => s.InTime) .Map("车牌号", s => s.CarNum) .Map("车型", s => s.CarModel) .Map("是否新能源", s => s.NewCar) .Map("燃油车", s => s.Emissions) .Map("出厂日间 ", s => s.OutTime) .Format("yyyy-MM-dd HH:mm:ss", s => s.InTime) .Format("yyyy-MM-dd HH:mm:ss", s => s.OutTime); MemoryStream stream = new MemoryStream(); mapper.Save(stream, list, sheetName: "sheet1", leaveOpen: true); return stream.ToArray(); } /// /// 分页取数据 /// /// /// public async Task GetPage(reqpage input) { Expression> exp = filter => filter.IsDelete == false; return await base.GetPager(new ReqPaing() { pageSize = input.pageSize, current = input.current }, exp); } } }