Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        //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);
        }