92 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
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<Alert>
 | 
						|
    {
 | 
						|
        public AlertService(IConfiguration config) : base(config, nameof(Alert))
 | 
						|
        {
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 新加
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="input"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public async Task<ApiResult> Add(AddAlertDto input)
 | 
						|
        {
 | 
						|
            if (input != null)
 | 
						|
            {
 | 
						|
                var entity = input.Adapt<Alert>();
 | 
						|
                await base.CreateAsync(entity);
 | 
						|
                return new ApiResult { code = 0, msg = "" };
 | 
						|
            }
 | 
						|
            return new ApiResult { code = -1, msg = "" }; ;
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 首页数据,最近7天的
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        public async Task<object> IndexData(int num = 50)
 | 
						|
        {
 | 
						|
            Expression<Func<Alert, bool>> 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();
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        ///导出数据
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="start"></param>
 | 
						|
        /// <param name="end"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        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)).OrderByDescending(s => s.CreateDateTime).ToList();
 | 
						|
            if (list.Any())
 | 
						|
            {
 | 
						|
                var mapper = new Mapper();
 | 
						|
                mapper.Map<Alert>("报警开始时间", s => s.CreateDateTime)
 | 
						|
                .Map<Alert>("设备名称", s => s.deviceName)
 | 
						|
                // .Map<Alert>("工序", s => s.)
 | 
						|
                .Map<Alert>("内容", s => s.AlertContent)
 | 
						|
                 .Format<Alert>("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;
 | 
						|
        }
 | 
						|
        /// <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);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |