public CaixaProperties caixaProcesso(DocumentosProperties documento) { SqlConnection con = ConnectionFactory.ConnectionFactory.getConnection(); CaixaProperties caixa = new CaixaProperties(); try { StringBuilder sb = new StringBuilder(); sb.AppendLine("select b.IdCaixa,b.dscaixa,b.IdStatus from tb_processo a with(nolock)"); sb.AppendLine("inner join tb_caixa b with(nolock) on a.idcaixa = b.idcaixa and a.idprocesso = " + documento.idProcesso); con.Open(); SqlCommand cmd = new SqlCommand(sb.ToString(), con); cmd.CommandType = CommandType.Text; cmd.CommandTimeout = 120; IDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { caixa.IdCaixa = reader.GetInt32(reader.GetOrdinal("IdCaixa")); caixa.DsCaixa = reader.GetString(reader.GetOrdinal("dscaixa")); caixa.IdStatus = reader.GetInt32(reader.GetOrdinal("IdStatus")); } } catch (Exception ex) { throw new Exception("Caixa não encontrada para o processo " + documento.idProcesso + ex.ToString()); } finally { ConnectionFactory.ConnectionFactory.fechaConexão(con); } return(caixa); }
public DirectoryInfo trataCaixa(CaixaProperties caixa, ConfiguracaoProperties configApp, ReleaseJucecProperties releaseJucec, string path, ProjetoProperties projetoObj, DocumentosProperties documento) { String subStringCaixa = string.Empty; String destino = string.Empty; DirectoryInfo dirDestino; if (caixa.DsCaixa.Length >= 9) { subStringCaixa = caixa.DsCaixa.Substring(caixa.DsCaixa.Length - 9); } subStringCaixa = subStringCaixa.Replace(".", ""); DateTime dataAtual = DateTime.Now; string dataAtualFormatada = dataAtual.ToString("yyyyMMdd"); string pathDestino = string.Concat(new string[] { configApp.pastaPrincipal, "TCIReleaseJucec_2017\\", "Data_" + dataAtualFormatada, "\\", "Caixa_" + subStringCaixa, "\\", "Protocolo_" + Util.Util.ajustaDiretorio(releaseJucec.numProtocolo), "\\", "Processo_" + documento.idProcesso.ToString(), "\\", "Documento_" + documento.idDocumento.ToString() }); if (path.Contains(";") && projetoObj.nmProjeto.ToUpper() != "JUCEC - CADASTRO SINCRONIZADO") { pathDestino = pathDestino.Replace("NUMERO_PROTOCOLO\\", "NIRE_ARQUIVAMENTO\\"); } dirDestino = new DirectoryInfo(pathDestino); return(dirDestino); }
public FileInfo[] getPdfs(ConfiguracaoProperties configApp, CaixaProperties caixa, DirectoryInfo pathDestino) { FileInfo[] filesPdf = new DirectoryInfo(pathDestino.FullName).GetFiles("*_.*pdf", SearchOption.AllDirectories); log.escreveLog("Arquivos para assinar no diretorio: ", configApp); return(filesPdf); }
public string montagemXML(CaixaProperties caixa, DocumentosProperties documento, ReleaseJucecProperties releaseJucec, ProtocoloProperties protocolo) { StringBuilder stringBuilder = new StringBuilder(); string arg_0B_0 = string.Empty; string arg_11_0 = string.Empty; string arg_17_0 = string.Empty; string arg_1D_0 = string.Empty; string arg_23_0 = string.Empty; string arg_29_0 = string.Empty; string arg_2F_0 = string.Empty; stringBuilder.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); stringBuilder.AppendLine("<ARQUIVOINDEX>"); stringBuilder.AppendLine("\t<CAIXA>{0}</CAIXA>"); stringBuilder.AppendLine("\t<PROTOCOLO>{1}</PROTOCOLO>"); stringBuilder.AppendLine("\t<NR_PROTOCOLO>{2}</NR_PROTOCOLO>"); stringBuilder.AppendLine("\t<NR_NIRE>{3}</NR_NIRE>"); stringBuilder.AppendLine("\t<NR_ARQUIVAMENTO>{4}</NR_ARQUIVAMENTO>"); stringBuilder.AppendLine("\t<DATA_GERACAO>{5}</DATA_GERACAO>"); stringBuilder.AppendLine("\t<IMAGEM>{6}</IMAGEM>"); stringBuilder.AppendLine("</ARQUIVOINDEX>"); return(string.Format(stringBuilder.ToString(), new object[] { caixa.DsCaixa, protocolo.dsProtocolo, releaseJucec.numProtocolo.PadLeft(9, '0'), releaseJucec.nire, releaseJucec.numArquivamento, DateTime.Now.ToString("dd/MM/yyyy"), documento.idProcesso + ".pdf" })); return(null); }
public void geraArqvuivoCSV(string caminhoArquivoCSV, ReleaseJucecProperties releaseJucec, DirectoryInfo pathDestino, CaixaProperties caixa) { StreamWriter sw = null; try { DirectoryInfo directoryInfo = new DirectoryInfo(caminhoArquivoCSV.Substring(0, caminhoArquivoCSV.LastIndexOf("\\"))); if (!directoryInfo.Exists) { directoryInfo.Create(); } sw = new StreamWriter(caminhoArquivoCSV, false, Encoding.Default); sw.WriteLine("CAIXA;NUMERO_DO_PROTOCOLO;CAMINHO_IMAGEM"); sw.Write(caixa.DsCaixa); sw.Write(";"); sw.Write(releaseJucec.numProtocolo); sw.Write(";"); sw.Write(pathDestino.FullName + "\\" + releaseJucec.numProtocolo + ".pdf"); } catch (Exception ex) { throw ex; } finally { if (sw != null) { sw.Close(); sw.Dispose(); } } }
public void processamento() { log.escreveLog("Inicio ", configApp); while (!Constantes.THREAD_PARADA_SOLICITADO) { try { RegrasProjeto regraProjeto = new RegrasProjeto(); RegrasProtocolo regraProtocolo = new RegrasProtocolo(); // carrega as informaçoes do projeto projetoObj = regraProjeto.getProjeto(configApp); // Busca protocolo liberados List <ProtocoloProperties> listaProtocolosLiberado = regraProtocolo.getProtocoloProtocolosLiberado(configApp); log.escreveLog("Quantidade de protocolo disponível " + listaProtocolosLiberado.Count, configApp); foreach (ProtocoloProperties protocolo in listaProtocolosLiberado) { RegrasDocumentos regrasDocumentos = new RegrasDocumentos(); // lista de documentos liberados List <DocumentosProperties> listaDocumentosLiberados = regrasDocumentos.getDocumentosLiberado(protocolo); log.escreveLog("Quantidade de documentos disponível " + listaProtocolosLiberado.Count, configApp); foreach (DocumentosProperties documento in listaDocumentosLiberados) { log.escreveLog("Lendo o documento " + documento.idDocumento, configApp); RegrasIndexer regrasIndexer = new RegrasIndexer(); // Recupera os indices e valorIndice ReleaseJucecProperties releaseJucec = regrasIndexer.getIndexerProcesso(documento, projetoObj, protocolo, configApp); //Concatena Nire e NumeroArquivamento NireNunArquivamento = regrasIndexer.concatNire_NunArquivamento(releaseJucec, projetoObj); if (NireNunArquivamento != null) { RegrasCaixa regrasCaixa = new RegrasCaixa(); RegrasImagem regrasImagem = new RegrasImagem(); RegrasParametroProdutoProjeto regrasParametroProdutoProjeto = new RegrasParametroProdutoProjeto(); Servicos servicos = new Servicos(); // Busca caixa com base no numero arquivamento CaixaProperties caixa = regrasCaixa.getCaixaProcesso(documento); log.escreveLog("Pegou a caixa " + caixa.IdCaixa, configApp); // caminho onde será depositado os arquivos .pdf DirectoryInfo pathDestino = regrasCaixa.trataCaixa(caixa, configApp, releaseJucec, NireNunArquivamento, projetoObj, documento); // retorna um projeto produto ParametroProdutoProjetoProperties parametroProdutoProjetoProperties = regrasParametroProdutoProjeto.getParametroProdutoProjeto(projetoObj, configApp); // pega todas as imagens referente ao idDocumento passado como parametro e diferente de excluida. // busca a origem do arquivo .tiff // cria o _.pdf no destino passado como parametro releaseJucec = regrasImagem.getImagem(documento, releaseJucec, configApp, parametroProdutoProjetoProperties, pathDestino, projetoObj); documentoSemTiff = releaseJucec.flagSemImagem; if (documentoSemTiff) { if (releaseJucec.flag) { // Gera o arquivo csv no mesmo diretorio do PDF log.escreveLog("Gerando arquivo .CSV ", configApp); servicos.geraArqvuivoCSV(pathDestino.ToString() + "\\" + documento.idProcesso.ToString() + ".csv", releaseJucec, pathDestino, caixa); log.escreveLog("Gerando arquivo .CSV para o carga generica ", configApp); // Enviando cvs para o sistema carga Generica servicos.geraArqvuivoCSV(ConfigurationSettings.AppSettings["diretorioCsvContentProcessar"].ToString() + "\\" + documento.idProcesso.ToString() + ".csv", releaseJucec, pathDestino, caixa); } else { log.escreveLog("Quantidade de Indices [0] no Processo [" + documento.idProcesso + "] não é o mesmo na estrutura do arquivo", configApp); } log.escreveLog("Pesquisando as imagens no diretorio para assinatura do Protocolo [" + protocolo.dsProtocolo + "] na estrutura do arquivo", configApp); // retorna uma lista de pdf que termine com _.pdf FileInfo[] filesPdf = servicos.getPdfs(configApp, caixa, pathDestino); log.escreveLog("Foram encontrados .Pdf's com _.PDF [" + filesPdf.Length + "]", configApp); // move os pdfs sem assinatura para o diretorio informado na tag do app.config <caminhoPdfSemAssinatura> servicos.moverPdfSemAssinaturaSRM(filesPdf[0], releaseJucec, documento, configApp); // serviço que assina os pdfs de acordo com a certificado da maquina pdfisOk = servicos.arquivoParaAssinar(filesPdf[0], releaseJucec, configApp); } if (documentoSemTiff) { // documento log e status regrasDocumentos = new RegrasDocumentos(); regrasDocumentos.LogDocumento(documento, Constantes.ENVIADO_FTP); regrasDocumentos.atualizaSatusDocumento(documento, Constantes.ENVIADO_FTP); } else { // documento log e status regrasDocumentos = new RegrasDocumentos(); regrasDocumentos.LogDocumento(documento, Constantes.DOCUMENTO_SEM_TIFF); regrasDocumentos.atualizaSatusDocumento(documento, Constantes.DOCUMENTO_SEM_TIFF); } } } // processo e status regrasProtocolo = new RegrasProtocolo(); regrasProtocolo.atualizaProcesso(protocolo, Constantes.ENVIADO_FTP); regrasProtocolo.logProcesso(protocolo, Constantes.ENVIADO_FTP); } } catch (Exception ex) { log.escreveLog("\n Erro: " + ex.Message + "\n" + ex.ToString() + "\n", configApp); // MessageBox.Show(ex.StackTrace); } } }