Example #1
0
        public ResultadoExportacao GerarArquivoAmbiente(DadosExportacaoAmbienteModelo dados)
        {
            ResultadoExportacao resultadoExportacao = new ResultadoExportacao();

            try
            {
                string caminhoModelo  = ArquivoDiretorioUtils.ObterDiretorioModelo();
                var    caminhoGeracao = ArquivoDiretorioUtils.ObterDiretorioExportacaoAmbiente();
                caminhoGeracao = ArquivoDiretorioUtils.ConstruirObterDiretorioData(caminhoGeracao);
                var    dataHora = DateTime.Now.ToString("dd_MM_yyy_HH_mm_ss");
                string caminhoCompletoExportacaoModelo = $"{caminhoModelo}LayoutExportacaoAmbiente.xlsx";
                string caminhoCompletoExportacaoFinal  = $"{caminhoGeracao}/ExportacaoAmbiente_{dataHora}.xlsx";
                ArquivoDiretorioUtils.CopiarArquivo(caminhoCompletoExportacaoModelo, caminhoCompletoExportacaoFinal);

                using (var workbook = new XLWorkbook(caminhoCompletoExportacaoFinal))
                {
                    ExportarDadosAmbiente(workbook, dados);
                    workbook.Save();
                    workbook.Dispose();
                }

                string _b64 = Convert.ToBase64String(File.ReadAllBytes(caminhoCompletoExportacaoFinal));

                resultadoExportacao.planilha = _b64;

                return(resultadoExportacao);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #2
0
        public IHttpActionResult ExportarDadosAmbiente([FromBody] DadosExportacaoAmbienteModelo dadosExportacaoModelo)
        {
            ResultadoExportacao result;

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

                result = this.exportacaoDadosNegocio.GerarArquivoAmbiente(dadosExportacaoModelo);
            }
            catch (Exception exception)
            {
                throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.BadRequest,
                                                                                $"", exception), exception);
            }
            return(Ok(GeradorResponse.GenerateSuccessResponse((int)HttpStatusCode.OK,
                                                              "", result)));
        }
Example #3
0
        public void ExportarDadosAmbiente(XLWorkbook wb, DadosExportacaoAmbienteModelo dados)
        {
            var folhaAtual = wb.Worksheets.Worksheet("InventarioAmbiente");
            int linha      = 5;

            if (!folhaAtual.Cell("B1").Value.ToString().Contains("Ambiente"))
            {
                throw new Exception("É necessário realizar a exportação de um inventário de ambiente com o nome da pllanilha escrita da seguinte forma: 'InventarioAmbiente'");
            }

            var    resultadoInventario = inventariosAmbientePersistencia.ListarInventarioAmbienteExportacao(dados);
            int    linhaAPreencher     = 5;
            string locais = "";

            if (resultadoInventario != null && resultadoInventario.Count > 0)
            {
                foreach (var item in resultadoInventario)
                {
                    string nomeNR             = "";
                    var    sistemaOperacional = sistemaOperacionalPersistencia.ListarSistemaOperacionalPorId(item.CodAmbiente);

                    folhaAtual.Cell($"B{linha}").Value = item.Codigo;
                    folhaAtual.Cell($"C{linha}").Value = sistemaOperacional.Nome;
                    folhaAtual.Cell($"D{linha}").Value = item.Descricao;
                    folhaAtual.Cell($"E{linha}").Value = item.ObservacaoGeral;
                    folhaAtual.Cell($"F{linha}").Value = item.RiscoGeral;

                    var itemLocal = localInstalacaoPersistencia.ListarLocaisInstalacaoPorCodInventarioAmbiente(item.CodInventarioAmbiente);

                    if (itemLocal.Count <= 0)
                    {
                        throw new Exception($"O inventário de ambiente de código {item.Codigo} não possui local de instalação.");
                    }

                    // PREENCHIMENTO LOCAL INSTALAÇÃO
                    foreach (var itemLocalAmbiente in itemLocal)
                    {
                        locais += $"{itemLocalAmbiente.Nome};";
                    }
                    var tamanhoLocal        = locais.Length;
                    var nomeLocaisCorrigido = locais.Substring(0, tamanhoLocal - 1);

                    PreencherLocalInstalacao(folhaAtual, nomeLocaisCorrigido, linhaAPreencher);
                    locais = "";
                    // PREENCHIMENTO RISCOS
                    if (item.RISCO_INVENTARIO_AMBIENTE.Count <= 0)
                    {
                        throw new Exception($"O inventário de ambiente de código {item.Codigo} não possui riscos associados.");
                    }

                    IXLCell celulaAtual = folhaAtual.Cell($"I{linhaAPreencher}");

                    foreach (var itemRisco in item.RISCO_INVENTARIO_AMBIENTE)
                    {
                        celulaAtual = PreencherRiscosAmbiente(folhaAtual, itemRisco, celulaAtual);
                    }

                    // PREENCHIMENTO NR
                    foreach (var itemNR in item.NR_INVENTARIO_AMBIENTE)
                    {
                        if (itemNR.CodNR != (long)Constantes.NR.NR0)
                        {
                            var nr = nrPersistencia.ListarNrPorId(itemNR.CodNR);
                            nomeNR += $"{nr.Codigo};";
                        }
                    }

                    if (!string.IsNullOrEmpty(nomeNR))
                    {
                        var tamanhoNR       = nomeNR.Length;
                        var nomeNRCorrigido = nomeNR.Substring(0, tamanhoNR - 1);

                        PreencherNR(folhaAtual, nomeNRCorrigido, linhaAPreencher);
                    }

                    linhaAPreencher++;
                    linha++;
                }

                folhaAtual.Style.Font.FontName  = "Arial";
                folhaAtual.Style.Font.FontSize  = 8;
                folhaAtual.Style.Font.FontColor = XLColor.Black;
            }
            else
            {
                throw new Exception("Não há inventário(s) com os filtros informados!");
            }
        }
        public List <INVENTARIO_AMBIENTE> ListarInventarioAmbienteExportacao(DadosExportacaoAmbienteModelo dados)
        {
            using (var entities = new DB_LaborSafetyEntities())
            {
                List <INVENTARIO_AMBIENTE> resultadoSistemaOperacional = new List <INVENTARIO_AMBIENTE>();
                List <INVENTARIO_AMBIENTE> resultadoNR              = new List <INVENTARIO_AMBIENTE>();
                List <INVENTARIO_AMBIENTE> resultadoRisco           = new List <INVENTARIO_AMBIENTE>();
                List <INVENTARIO_AMBIENTE> resultadoProbabilidade   = new List <INVENTARIO_AMBIENTE>();
                List <INVENTARIO_AMBIENTE> resultadoSeveridade      = new List <INVENTARIO_AMBIENTE>();
                List <INVENTARIO_AMBIENTE> resultadoEPI             = new List <INVENTARIO_AMBIENTE>();
                List <INVENTARIO_AMBIENTE> resultadoLocalInstalacao = new List <INVENTARIO_AMBIENTE>();
                List <INVENTARIO_AMBIENTE> resultadoFinal           = new List <INVENTARIO_AMBIENTE>();
                int cont = 0;

                var resultado = entities.INVENTARIO_AMBIENTE

                                .Include(x => x.NR_INVENTARIO_AMBIENTE.Select(nr => nr.NR))
                                .Include(x => x.RISCO_INVENTARIO_AMBIENTE.Select(sev => sev.SEVERIDADE))
                                .Include(x => x.RISCO_INVENTARIO_AMBIENTE.Select(prob => prob.PROBABILIDADE))
                                .Include(x => x.RISCO_INVENTARIO_AMBIENTE.Select(risco => risco.RISCO))
                                .Include(x => x.RISCO_INVENTARIO_AMBIENTE.Select(risco => risco.RISCO).Select(tpr => tpr.TIPO_RISCO))
                                .Include(x => x.RISCO_INVENTARIO_AMBIENTE.Select(risco => risco.EPI_RISCO_INVENTARIO_AMBIENTE))
                                .Include(x => x.AMBIENTE)
                                .Where(b => b.LOCAL_INSTALACAO.All(y => y.CodLocalInstalacao != (int)Constantes.LocalInstalacao.SEM_ASSOCIACAO) &&
                                       b.CodInventarioAmbiente != (long)Constantes.InventarioAmbiente.SEM_INVENTARIO && b.Ativo).ToList();

                if (dados.AMBIENTE.Count > 0 && dados.AMBIENTE != null)
                {
                    resultadoSistemaOperacional = resultado.Where(b => dados.AMBIENTE.Contains(b.CodAmbiente)).ToList();
                    cont++;
                }


                if (dados.NR.Count > 0 && dados.NR != null)
                {
                    resultadoNR = resultado.Where(teste => teste.NR_INVENTARIO_AMBIENTE.Any(a => dados.NR.Contains(a.CodNR))).ToList();
                    cont++;
                }


                if (dados.RISCO.Count > 0 && dados.RISCO != null)
                {
                    resultadoRisco = resultado.Where(teste => teste.RISCO_INVENTARIO_AMBIENTE.Any(a => dados.RISCO.Contains(a.CodRiscoAmbiente))).ToList();
                    cont++;
                }


                if (dados.PROBABILIDADE.Count > 0 && dados.PROBABILIDADE != null)
                {
                    resultadoProbabilidade = resultado.Where(teste => teste.RISCO_INVENTARIO_AMBIENTE.Any(a => dados.PROBABILIDADE.Contains(a.CodProbabilidade))).ToList();
                    cont++;
                }


                if (dados.SEVERIDADE.Count > 0 && dados.SEVERIDADE != null)
                {
                    resultadoSeveridade = resultado.Where(teste => teste.RISCO_INVENTARIO_AMBIENTE.Any(a => dados.SEVERIDADE.Contains(a.CodSeveridade))).ToList();
                    cont++;
                }


                if (dados.EPI.Count > 0 && dados.EPI != null)
                {
                    resultadoEPI = resultado.Where(teste => teste.RISCO_INVENTARIO_AMBIENTE.All(i => i.EPI_RISCO_INVENTARIO_AMBIENTE.Any(a => dados.EPI.Contains(a.CodEPI)))).ToList();
                    cont++;
                }

                if (dados.LOCAL_INSTALACAO.Count > 0 && dados.LOCAL_INSTALACAO != null)
                {
                    List <long> listaLocais = new List <long>();
                    foreach (var item in dados.LOCAL_INSTALACAO)
                    {
                        var localInstalacao = entities.LOCAL_INSTALACAO.Where(nomeLocal => nomeLocal.CodLocalInstalacao == item).FirstOrDefault();
                        var codigoLocal     = localInstalacao.CodLocalInstalacao;

                        listaLocais.Add(codigoLocal);
                    }
                    resultadoLocalInstalacao = resultado.Where(b => b.LOCAL_INSTALACAO.Any(a => listaLocais.Contains(a.CodLocalInstalacao))).ToList();
                    cont++;
                }

                foreach (var itemSO in resultadoSistemaOperacional)
                {
                    resultadoFinal.Add(itemSO);
                }

                foreach (var itemNR in resultadoNR)
                {
                    resultadoFinal.Add(itemNR);
                }

                foreach (var itemRisco in resultadoRisco)
                {
                    resultadoFinal.Add(itemRisco);
                }

                foreach (var itemProbabilidade in resultadoProbabilidade)
                {
                    resultadoFinal.Add(itemProbabilidade);
                }

                foreach (var itemSeveridade in resultadoSeveridade)
                {
                    resultadoFinal.Add(itemSeveridade);
                }

                foreach (var itemEPI in resultadoEPI)
                {
                    resultadoFinal.Add(itemEPI);
                }

                foreach (var itemLocalInstalacao in resultadoLocalInstalacao)
                {
                    resultadoFinal.Add(itemLocalInstalacao);
                }

                if (resultado.Count > 0 && cont != 0)
                {
                    resultadoFinal = resultadoFinal.Distinct().ToList();
                }

                else if (resultado.Count > 0 && cont == 0)
                {
                    resultadoFinal = resultado.Distinct().ToList();
                }

                else
                {
                    throw new Exception("Não foram encontrados inventários para exportação.");
                }

                return(resultadoFinal);
            }
        }