using langguanApi.Extensions.AutoDI; using langguanApi.Model; using langguanApi.Model.Dto; using langguanApi.Model.Entity; using Mapster; using Npoi.Mapper; using System.Linq.Expressions; namespace langguanApi.Service { [ServiceInjection(InjectionType.Transient)] public class AlertService : BaseService { public AlertService(IConfiguration config) : base(config, nameof(Alert)) { } /// /// 新加 /// /// /// public async Task Add(AddAlertDto input) { if (input != null) { var entity = input.Adapt(); await base.CreateAsync(entity); return new ApiResult { code = 0, msg = "" }; } return new ApiResult { code = -1, msg = "" }; ; } /// /// 首页数据,最近7天的 /// /// public async Task IndexData(int num = 50) { Expression> exp = filter => filter.IsDelete == false; return (await base.GetListWithExp(exp)) .OrderByDescending(s => s.CreateDateTime) .Take(num) .Select(s => new { s.AlertContent, s.deviceName, s.CreateDateTime }).ToList(); } /// ///导出数据 /// /// /// /// public async Task ExportData(DateTime? start, DateTime? end) { Expression> exp = filter => filter.CreateDateTime >= start && filter.CreateDateTime <= end && filter.IsDelete == false; var list = (await base.GetListWithExp(exp)).OrderByDescending(s => s.CreateDateTime).ToList(); if (list.Any()) { var mapper = new Mapper(); mapper.Map("报警开始时间", s => s.CreateDateTime) .Map("设备名称", s => s.deviceName) // .Map("工序", s => s.) .Map("内容", s => s.AlertContent) .Format("yyyy-MM-dd HH:mm:ss", s => s.CreateDateTime); MemoryStream stream = new MemoryStream(); mapper.Save(stream, list, sheetName: "sheet1", leaveOpen: true); return stream.ToArray(); } return null; } /// /// 分页取数据 /// /// /// 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); } } }