48 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using langguanApi.Extensions.AutoDI;
							 | 
						|||
| 
								 | 
							
								using langguanApi.Model;
							 | 
						|||
| 
								 | 
							
								using langguanApi.Model.Entity;
							 | 
						|||
| 
								 | 
							
								using Npoi.Mapper;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq.Expressions;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace langguanApi.Service
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    [ServiceInjection(InjectionType.Transient)]
							 | 
						|||
| 
								 | 
							
								    public class DetectionService : BaseService<Detection>
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        public DetectionService(IConfiguration config) : base(config, nameof(Detection))
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// //获取最新的数据
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="num"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public async Task<object> GetIndexData(int num = 50)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Expression<Func<Detection, bool>> exp = filter => true;
							 | 
						|||
| 
								 | 
							
								            var result = (await GetListWithExp(exp)).OrderByDescending(s => s.CreateDateTime).Take(num).ToList();
							 | 
						|||
| 
								 | 
							
								            return result;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 导出数据
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public async Task<byte[]> Export(DateTime start, DateTime end)
							 | 
						|||
| 
								 | 
							
								        { 
							 | 
						|||
| 
								 | 
							
								            Expression<Func<Detection, bool>> exp = filter => filter.CreateDateTime >= start && filter.CreateDateTime <= end;
							 | 
						|||
| 
								 | 
							
								            var result = (await GetListWithExp(exp)).OrderBy(s => s.CreateDateTime).ToList();
							 | 
						|||
| 
								 | 
							
								            var mapper = new Mapper();
							 | 
						|||
| 
								 | 
							
								            mapper.Map<Detection>("时间", s => s.CreateDateTime.ToString("yyyy-MM-dd HH:mm:ss"))
							 | 
						|||
| 
								 | 
							
								            .Map<Detection>("工序", s => s.OrganizedName)
							 | 
						|||
| 
								 | 
							
								            .Map<Detection>("设备名称", s => s.DeviceName)
							 | 
						|||
| 
								 | 
							
								            .Map<Detection>("项目", s => s.keyword)
							 | 
						|||
| 
								 | 
							
								            .Map<Detection>("检测值", s => s.deviceValue)
							 | 
						|||
| 
								 | 
							
								             .Format<Detection>("yyyy-MM-dd HH:mm:ss", s => s.CreateDateTime);
							 | 
						|||
| 
								 | 
							
								            MemoryStream stream = new MemoryStream();
							 | 
						|||
| 
								 | 
							
								            mapper.Save(stream, result.ToList(), sheetName: "sheet1", leaveOpen: true);
							 | 
						|||
| 
								 | 
							
								            return stream.ToArray();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |