73 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
using langguanApi.Extensions.AutoDI;
 | 
						|
using langguanApi.Model;
 | 
						|
using langguanApi.Model.Dto;
 | 
						|
using langguanApi.Model.Entity;
 | 
						|
using Npoi.Mapper;
 | 
						|
using System.Linq.Expressions;
 | 
						|
 | 
						|
namespace langguanApi.Service
 | 
						|
{
 | 
						|
    [ServiceInjection(InjectionType.Transient)]
 | 
						|
    public class AlertService : BaseService<Alert>
 | 
						|
    {
 | 
						|
        public AlertService(IConfiguration config) : base(config, nameof(Alert))
 | 
						|
        {
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 新加
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="input"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public async Task<ApiResult> Add(Alert input)
 | 
						|
        {
 | 
						|
            if (input != null)
 | 
						|
            {
 | 
						|
                await base.CreateAsync(input);
 | 
						|
                return new ApiResult { code = 0, msg = "" };
 | 
						|
            }
 | 
						|
            return new ApiResult { code = -1, msg = "" }; ;
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 首页数据,最近7天的
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        public async Task<object> IndexData()
 | 
						|
        {
 | 
						|
            Expression<Func<Alert, bool>> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-7) && filter.IsDelete == false;
 | 
						|
            return (await base.GetListWithExp(exp)).OrderByDescending(s => s.CreateDateTime);
 | 
						|
        }
 | 
						|
        public async Task<byte[]> ExportData(DateTime start, DateTime end)
 | 
						|
        {
 | 
						|
            Expression<Func<Alert, bool>> exp = filter => filter.CreateDateTime >= start
 | 
						|
            && filter.CreateDateTime <= end
 | 
						|
            && filter.IsDelete == false;
 | 
						|
            var list = await base.GetListWithExp(exp);
 | 
						|
            var mapper = new Mapper();
 | 
						|
            mapper.Map<Alert>("报警开始时间", s => s.CreateDateTime.ToString("yyyy-MM-dd HH:mm:ss"))
 | 
						|
            .Map<Alert>("设备名称", s => s.deviceName)
 | 
						|
            // .Map<Alert>("工序", s => s.)
 | 
						|
            .Map<Ledger>("新能源", s => s.NewCar ? "是" : "否")
 | 
						|
            .Map<Ledger>("燃油车", s => s.Emissions)
 | 
						|
            .Map<Ledger>("出厂日间 ", s => s.OutTime)
 | 
						|
             .Format<Alert>("yyyy-MM-dd HH:mm:ss", s => s.CreateDateTime);
 | 
						|
            MemoryStream stream = new MemoryStream();
 | 
						|
            mapper.Save(stream, list.ToList(), sheetName: "sheet1", leaveOpen: true);
 | 
						|
            return stream.ToArray();
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 分页取数据
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="input"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public async Task<object> GetPage(reqpage input)
 | 
						|
        {
 | 
						|
            Expression<Func<Alert, bool>> exp = filter => filter.IsDelete == false;
 | 
						|
            return await base.GetPager(new ReqPaing()
 | 
						|
            {
 | 
						|
                pageSize = input.pageSize,
 | 
						|
                current = input.current
 | 
						|
            }, exp);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |