Exemple #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;
            }
        }
Exemple #2
0
        public IHttpActionResult ExportarDadosApr([FromBody] DadosExportacaoAprModelo dadosExportacaoModelo)
        {
            ResultadoExportacao result;

            try
            {
                if (dadosExportacaoModelo == null)
                {
                    throw new Exception("Os dados da exportação não foram informados!");
                }

                result = this.exportacaoDadosNegocio.GerarArquivoAPR(dadosExportacaoModelo);
            }
            catch (Exception exception)
            {
                throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.BadRequest,
                                                                                $"", exception), exception);
            }
            return(Ok(GeradorResponse.GenerateSuccessResponse((int)HttpStatusCode.OK,
                                                              "", result)));
        }
Exemple #3
0
        public void ExportarDadosAPR(XLWorkbook wb, DadosExportacaoAprModelo dados)
        {
            var    planilha = wb.Worksheets.Worksheet("APR");
            int    linha    = 5;
            string riscos   = "";

            var resultado = aprPersistencia.ListarAprExportacao(dados);

            foreach (var itemApr in resultado)
            {
                planilha.Cell($"B{linha}").Value = itemApr.NumeroSerie;
                planilha.Cell($"C{linha}").Value = itemApr.OrdemManutencao;
                planilha.Cell($"D{linha}").Value = itemApr.Descricao;
                planilha.Cell($"E{linha}").Value = itemApr.RiscoGeral;

                // VALIDAÇÕES
                if (itemApr.OPERACAO_APR.Count <= 0)
                {
                    throw new Exception($"A APR de número de série {itemApr.NumeroSerie} não possui operação vinculada.");
                }

                if (itemApr.RISCO_APR.Count <= 0)
                {
                    throw new Exception($"A APR de número de série {itemApr.NumeroSerie} não possui risco vinculado.");
                }

                //RISCOS APR
                foreach (var itemRisco in itemApr.RISCO_APR)
                {
                    var nomeRisco = riscoPersistencia.ListarRiscoPorId(itemRisco.CodRisco);
                    riscos = $"{nomeRisco.Nome};";
                }

                var tamanhoRisco       = riscos.Length;
                var nomeRiscoCorrigido = riscos.Substring(0, tamanhoRisco - 1);
                planilha.Cell($"G{linha}").Value = nomeRiscoCorrigido;

                //OPERAÇÃO APR
                foreach (var itemOperacao in itemApr.OPERACAO_APR)
                {
                    var localRecuperado = localInstalacaoPersistencia.ListarLocalInstalacaoPorId((long)itemOperacao.CodLI);

                    if (localRecuperado == null)
                    {
                        throw new Exception($"O local de instalação de código {itemOperacao.CodLI} não foi encontrado na base de dados.");
                    }

                    if (itemOperacao.CodAtvPadrao.Value == null || itemOperacao.CodAtvPadrao.Value == 0)
                    {
                        throw new Exception($"A atividade padrão não foi encontrado na base de dados.");
                    }

                    if (itemOperacao.CodDisciplina.Value == null || itemOperacao.CodDisciplina.Value == 0)
                    {
                        throw new Exception($"A disciplina não foi encontrado na base de dados.");
                    }

                    var atvPadrao  = atividadePersistencia.ListarAtividadePorId(itemOperacao.CodAtvPadrao.Value);
                    var disciplina = disciplinaPersistencia.ListarDisciplinaPorId(itemOperacao.CodDisciplina.Value);

                    planilha.Cell($"I{linha}").Value = itemOperacao.Codigo;
                    planilha.Cell($"J{linha}").Value = itemOperacao.Descricao;
                    planilha.Cell($"K{linha}").Value = localRecuperado.Nome;
                    planilha.Cell($"L{linha}").Value = atvPadrao.Nome;
                    planilha.Cell($"M{linha}").Value = disciplina.Nome;

                    linha++;
                }
            }

            planilha.Style.Font.FontName  = "Arial";
            planilha.Style.Font.FontSize  = 8;
            planilha.Style.Font.FontColor = XLColor.Black;
        }