public ResultadoExportacao GerarArquivoAPR(DadosExportacaoAprModelo dados) { ResultadoExportacao resultadoExportacao = new ResultadoExportacao(); try { string caminhoModelo = ArquivoDiretorioUtils.ObterDiretorioModelo(); var caminhoGeracaoApr = ArquivoDiretorioUtils.ObterDiretorioApr(); caminhoGeracaoApr = ArquivoDiretorioUtils.ConstruirObterDiretorioData(caminhoGeracaoApr); var dataHora = DateTime.Now.ToString("dd_MM_yyy_HH_mm_ss"); string caminhoCompletoExportacaoModelo = $"{caminhoModelo}LayoutExportacaoApr.xlsx"; string caminhoCompletoExportacaoFinal = $"{caminhoGeracaoApr}ExportacaoApr{dataHora}.xlsx"; ArquivoDiretorioUtils.CopiarArquivo(caminhoCompletoExportacaoModelo, caminhoCompletoExportacaoFinal); using (var workbook = new XLWorkbook(caminhoCompletoExportacaoFinal)) { ExportarDadosAPR(workbook, dados); workbook.Save(); workbook.Dispose(); } string _b64 = Convert.ToBase64String(File.ReadAllBytes(caminhoCompletoExportacaoFinal)); resultadoExportacao.planilha = _b64; return(resultadoExportacao); } catch (Exception) { throw; } }
private string MontarCaminhoAprs(string numeroSerie) { var caminhoAprs = ArquivoDiretorioUtils.ObterDiretorioApr(); var dataAtual = DateTime.Now.Date.ToString("dd/MM/yyy").Replace('/', '_'); caminhoAprs = $"{caminhoAprs}/{dataAtual}"; var caminhoAprDoDia = ArquivoDiretorioUtils.ConstruirDiretorio(caminhoAprs); caminhoAprDoDia = $"{caminhoAprDoDia}/{numeroSerie}/"; if (Directory.Exists(caminhoAprDoDia)) { Directory.Delete(caminhoAprDoDia, true); } caminhoAprDoDia = ArquivoDiretorioUtils.ConstruirDiretorio(caminhoAprDoDia); return(caminhoAprDoDia); }
//public List<IGrouping<long, BloqueioModelo>> ListarBloqueioPorListaLIPorArea(DadosMapaBloqueioAprModelo dados) //{ // List<IGrouping<long, BloqueioModelo>> bloqueioModelo = new List<IGrouping<long, BloqueioModelo>>(); // List<BLOQUEIO> lista = this.bloqueioPersistencia.ListarBloqueioPorListaLIPorArea(dados.LocaisIntalacao); // if (lista.Count == 0 || lista == null) // throw new KeyNotFoundException("Não existem bloqueios para o filtro informado."); // var apr = aprPersistencia.PesquisarPorOrdemManutencao(dados.OrdemManutencao); // if (apr == null) // throw new Exception("APR não encontrada!"); // var diretorioEtiquetaMapaBloqueio = ArquivoDiretorioUtils.ObterDiretorioApr(); // diretorioEtiquetaMapaBloqueio = ArquivoDiretorioUtils.ConstruirObterDiretorioData(diretorioEtiquetaMapaBloqueio); // diretorioEtiquetaMapaBloqueio = $"{diretorioEtiquetaMapaBloqueio}/{apr.NumeroSerie}"; // diretorioEtiquetaMapaBloqueio = ArquivoDiretorioUtils.ConstruirDiretorio(diretorioEtiquetaMapaBloqueio); // var caminhoMapaBloqueioFinal = GerarMapaBloqueio(diretorioEtiquetaMapaBloqueio); // int linhas = Constantes.LINHA_INICIAL_PLANILHA_BLOQUEIO_NEGOCIO; // using (var workbook = new XLWorkbook(caminhoMapaBloqueioFinal)) // { // foreach (var itemBloqueio in lista) // { // var kks = bloqueioPersistencia.ListarTagKKS(itemBloqueio.CodTagKKSBloqueio, null); // var etiquetaBloqueio = GerarEtiquetaBloqueio(diretorioEtiquetaMapaBloqueio, kks.Codigo); // using (var workbookEtiqueta = new XLWorkbook(etiquetaBloqueio)) // { // var planilhaEtiqueta = workbookEtiqueta.Worksheets.Worksheet("Etiqueta de Bloqueio"); // ValidarEtiquetaBloqueio(apr, kks, dados.OrdemManutencao); // PreencherLinhasEtiqueta(planilhaEtiqueta, apr, kks); // workbookEtiqueta.Save(); // workbookEtiqueta.Dispose(); // } // } // var planilha = workbook.Worksheets.Worksheet("Mapa de Bloqueio"); // var listaBloqueio = lista.GroupBy(x => x.CodArea); // foreach (var area in listaBloqueio) // { // foreach (var bloqueio in area) // { // var tipoEnergia = bloqueioPersistencia.ListarTipoEnergia(bloqueio.CodTipoEnergiaBloqueio, null); // var kks = bloqueioPersistencia.ListarTagKKS(bloqueio.CodTagKKSBloqueio, null); // var dispositivo = bloqueioPersistencia.ListarDispositivo(bloqueio.CodDispositivoBloqueio, null); // var localABloquear = bloqueioPersistencia.ListarLocalABloquear(bloqueio.CodLocalABloquear, null); // ValidarMapaBloqueio(apr, tipoEnergia, kks, dispositivo, localABloquear, dados.OrdemManutencao); // PreencherLinhasMapa(planilha, linhas, apr.DataInicio, dados.OrdemManutencao, tipoEnergia.Nome, kks.Nome // , localABloquear.Nome, dispositivo.Nome); // linhas++; // } // } // workbook.Save(); // workbook.Dispose(); // } // return bloqueioModelo; //} public List <string> ListarBloqueioPorListaLIPorArea(DadosMapaBloqueioAprModelo dados) { List <IGrouping <long, BloqueioModelo> > bloqueioModelo = new List <IGrouping <long, BloqueioModelo> >(); List <string> listaCaminhosDeBloqueios = new List <string>(); foreach (var item in dados.OrdemManutencao) { var aprExistente = aprPersistencia.PesquisarPorOrdemManutencao(item); if (aprExistente == null) { throw new Exception("APR não encontrada!"); } List <long> CodLocaisOperacaoApr = new List <long>(); foreach (var itemLi in aprExistente.OPERACAO_APR) { if (itemLi.Ativo) { CodLocaisOperacaoApr.Add((long)itemLi.CodLI); } } List <BLOQUEIO> lista = this.bloqueioPersistencia.ListarBloqueioPorListaLIPorAreaLong(CodLocaisOperacaoApr); if (lista == null || !lista.Any()) { return(listaCaminhosDeBloqueios); } var diretorioEtiquetaMapaBloqueio = ArquivoDiretorioUtils.ObterDiretorioApr(); diretorioEtiquetaMapaBloqueio = ArquivoDiretorioUtils.ConstruirObterDiretorioData(diretorioEtiquetaMapaBloqueio); diretorioEtiquetaMapaBloqueio = $"{diretorioEtiquetaMapaBloqueio}/{aprExistente.NumeroSerie}"; diretorioEtiquetaMapaBloqueio = ArquivoDiretorioUtils.ConstruirDiretorio(diretorioEtiquetaMapaBloqueio); foreach (var itemBloqueio in lista) { var kks = bloqueioPersistencia.ListarTagKKS(itemBloqueio.CodTagKKSBloqueio, null); var etiquetaBloqueio = GerarEtiquetaBloqueio(diretorioEtiquetaMapaBloqueio, itemBloqueio.CodBloqueio); listaCaminhosDeBloqueios.Add(etiquetaBloqueio); using (var workbookEtiqueta = new XLWorkbook(etiquetaBloqueio)) { var planilhaEtiqueta = workbookEtiqueta.Worksheets.Worksheet("Etiqueta de Bloqueio"); ValidarEtiquetaBloqueio(aprExistente, kks, item); PreencherLinhasEtiqueta(planilhaEtiqueta, aprExistente, kks); workbookEtiqueta.Save(); workbookEtiqueta.Dispose(); } } var listaBloqueio = lista.GroupBy(x => x.CodArea); foreach (var area in listaBloqueio) { var caminhoMapaBloqueioFinal = GerarMapaBloqueio(diretorioEtiquetaMapaBloqueio, area.Key.ToString()); listaCaminhosDeBloqueios.Add(caminhoMapaBloqueioFinal); var workbook = new XLWorkbook(caminhoMapaBloqueioFinal); var planilha = workbook.Worksheets.Worksheet("Mapa de Bloqueio"); int linhas = Constantes.LINHA_INICIAL_PLANILHA_BLOQUEIO_NEGOCIO; foreach (var bloqueio in area) { var tipoEnergia = bloqueioPersistencia.ListarTipoEnergia(bloqueio.CodTipoEnergiaBloqueio, null); var kks = bloqueioPersistencia.ListarTagKKS(bloqueio.CodTagKKSBloqueio, null); var dispositivo = bloqueioPersistencia.ListarDispositivo(bloqueio.CodDispositivoBloqueio, null); var localABloquear = bloqueioPersistencia.ListarLocalABloquear(bloqueio.CodLocalABloquear, null); ValidarMapaBloqueio(aprExistente, tipoEnergia, kks, dispositivo, localABloquear, item); PreencherLinhasMapa(planilha, linhas, aprExistente.DataInicio.Value, item, tipoEnergia.Nome, kks.Nome , localABloquear.Nome, dispositivo.Nome, bloqueio.AREA.Nome); linhas++; } workbook.Save(); workbook.Dispose(); } } return(listaCaminhosDeBloqueios); }