using AutoMapper; using Entity.Api.Req; using Entity.DbModel.Station; using Entity.Dto; using HybirdFrameworkCore.Autofac.Attribute; using HybirdFrameworkCore.Entity; using HybirdFrameworkCore.Utils; using Magicodes.ExporterAndImporter.Excel; using Microsoft.AspNetCore.Mvc; using Repository.Station; namespace Service.Station; [Scope] public class EquipAlarmRecordService : BaseServices { public EquipAlarmProcessRecordRepository ProcessRecordRepository { get; set; } public EquipAlarmRecordService(EquipAlarmRecordRepository dal) { BaseDal = dal; } /// /// 查询未处理报警列表 /// /// 设备类型:-1-查询全部;0-充电机;1-电表;2-水冷机;3-plc< /// 设备编码 /// public Result> QueryEquipAlarmPage(QueryAlarmReq req) { int totalCount = 0; int reqTypeCode = req.TypeCode; var equipCode = req.EquipCode; List list = BaseDal.Queryable().WhereIF(reqTypeCode != -1, it => it.EquipTypeCode == reqTypeCode) .WhereIF(ObjUtils.IsNotNullOrWhiteSpace(equipCode), it => it.EquipCode == equipCode) .ToPageList(req.PageNum, req.PageSize, ref totalCount); PageResult result = new PageResult() { PageNum = req.PageNum, PageSize = req.PageSize, ToTal = totalCount, Rows = list }; return Result>.Success(result); } /// /// 导出未处理报警日志 🔖 /// /// public async Task ExportEquipAlarmRecord() { List equipAlarmRecords = await BaseDal.QueryAsync(); var config = new MapperConfiguration(cfg => { cfg.CreateMap().ReverseMap(); }); IMapper mapper = config.CreateMapper(); List logExList = mapper.Map>(equipAlarmRecords); IExcelExporter excelExporter = new ExcelExporter(); var res = await excelExporter.ExportAsByteArray(logExList); return new FileStreamResult(new MemoryStream(res), "application/octet-stream") { FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "未处理报警日志.xlsx" }; } /// /// 查询已处理报警列表 /// /// 设备类型:-1-查询全部;0-充电机;1-电表;2-水冷机;3-plc /// 设备编码 /// public Result> QueryEquipAlarmProcessPage(QueryAlarmReq req) { int totalCount = 0; int reqTypeCode = req.TypeCode; var equipCode = req.EquipCode; List list = ProcessRecordRepository.Queryable().WhereIF(reqTypeCode != -1, it => it.EquipTypeCode == reqTypeCode) .WhereIF(ObjUtils.IsNotNullOrWhiteSpace(equipCode), it => it.EquipCode == equipCode) .ToPageList(req.PageNum, req.PageSize, ref totalCount); PageResult result = new PageResult() { PageNum = req.PageNum, PageSize = req.PageSize, ToTal = totalCount, Rows = list }; return Result>.Success(result); } /// /// 导出已处理报警日志 🔖 /// /// public async Task ExportEquipAlarmProcessRecord() { List equipAlarmProcessRecords = await ProcessRecordRepository.QueryAsync(); var config = new MapperConfiguration(cfg => { cfg.CreateMap().ReverseMap(); }); IMapper mapper = config.CreateMapper(); List logExList = mapper.Map>(equipAlarmProcessRecords); IExcelExporter excelExporter = new ExcelExporter(); var res = await excelExporter.ExportAsByteArray(logExList); return new FileStreamResult(new MemoryStream(res), "application/octet-stream") { FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "已处理报警日志.xlsx" }; } }