Jump to content
rtavix

[Resolvido] Pegar o último Numero de uma coluna Excel

Recommended Posts

Boa Tarde Pessoal, tenho uma consulta de processo judicial e gravação do mesmo dentro do método da thread. Gostaria de saber se existe a possibilidade de pegar pelo ultimo numero do processo judicial em ordem? 

 

Índice 2.

 

Coluna C

NUMERO JUDICIAL
000021367.2017.8.08.0048
000638185.2017.8.08.0048
001049737.2017.8.08.0048
001133917.2017.8.08.0048
001542883.2017.8.08.0048
001929402.2017.8.08.0048
002028223.2017.8.08.0048
002149042.2017.8.08.0048
002257733.2017.8.08.0048
002330052.2017.8.08.0048
003441427.2016.8.08.0014
002186638.2015.8.08.0035
000169323.2014.8.08.0004
000462858.2013.8.08.0008
000719472.2016.8.08.0008
000437297.2013.8.08.0014
000073242.2016.8.08.0027
000418944.2014.8.08.0030
001558009.2017.8.08.0024
001751436.2016.8.08.0024
002317848.2016.8.08.0024
003026033.2016.8.08.0024

 

 

Meu código:

 

private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int i, Usuario usuarioLogado)
        {
            
            //usuarioLogado = aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login);
            i = 4;
            i++;
            
            Action<object> processamento = (dados) =>
            {
                /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/
                NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession());
                //Tentativa de ordenação por linha dentro do foreach direto no método da thread.
                //foreach (var linha in ((IEnumerable<DataRow>)dados).OrderBy(linha => linha["indice"]))
                foreach (var linha in (IEnumerable<DataRow>)dados)
                {

                    List<Processo> listaProcessoExistente = new List<Processo>();
                    Processo processo = null;
                    Interessado interessado = new Interessado();

                    //busca o processo pelo nº judicial anterior ou atual
                    if (!linha.ItemArray[1].ToString().Equals(""))
                        processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[1].ToString());
                    if (processo == null)
                    {
                        if (!linha.ItemArray[2].ToString().Equals(""))
                            processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[2].ToString());
                        processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[2].ToString().OrderBy());
                    }

                    //busca o interessado por cpf/cnpj
                    if (linha.ItemArray[7].ToString().Length == 14)
                        interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString()));

                    if (linha.ItemArray[7].ToString().Length == 18)
                        interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString()));

                    if (processo != null)
                    {
                        
                        //se o processo não for nulo busco todos procinter relacionados a ele
                        List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo);
                        if (listaprocinter.Exists(o => o.Interessado == interessado))
                            log.Append("O interessado informado na linha " + (linha["indice"]) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                        setProcInter(processo, interessado, linha, i);
                    }

                    else
                    {
                        //Novo Processo - 6.3
                        processo = new Processo();
                        processo.Interessado = interessado;
                        processo.NumProcessoJudicial = linha.ItemArray[2].ToString().Trim();
                        processo.RenunciaCredito = "N";
                        processo.Situacao = new AplSituacao().ConsultarPorId(1);
                        processo.HonorarioDativo = "S";
                        processo.Reclamado = new AplReclamado().buscaItem(2);
                        processo.TipoDocumento = new AplTipoDocumento().buscaItem(4);
                        processo.TipoProcesso = "O";
                        if (linha.ItemArray[5].ToString().Contains("juizado"))
                            processo.Tribunal = new AplTribunal().buscaItem(71);
                        else
                            processo.Tribunal = new AplTribunal().buscaItem(3);
                        processo.NaturezaDespeza = new AplNaturezadeDespesa().buscaItem(3);

                        VaraExecucao vara = new VaraExecucao();
                        if (!linha.ItemArray[3].ToString().Equals("") && !linha.ItemArray[5].ToString().Equals(""))
                        {
                            List<VaraExecucao> listaVaraComarca = aplVaraExecucao.Consultar---omeVaraNomeComarca(linha.ItemArray[5].ToString().Trim(), linha.ItemArray[3].ToString().Trim());
                            if (listaVaraComarca.Count != 0)
                            {
                                if (linha.ItemArray[4].ToString().Equals(""))
                                {
                                    vara = listaVaraComarca.Find(o => o.NumeroVara == null);
                                }
                                else
                                {
                                    vara = listaVaraComarca.Find(o => o.NumeroVara == int.Parse(linha.ItemArray[4].ToString().Trim()));
                                }
                            }
                        }
                        if (vara != null && vara.Codigo != 0)
                        {
                            processo.VaraExecucao = vara;
                        }
                        aplProcesso.gravar(processo);
                        //aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial
                        aplLog.LogarAtividade(usuarioLogado, "Importação do processo de número judicial: " + processo.NumProcessoJudicial
                                                + ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal "
                                                + processo.Tribunal.NomeTribunal + ".", DateTime.Now);
                        //log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + (i + 1) + " foi cadastrado com sucesso. <br>");

                        setProcInter(processo, interessado, linha, i);
                    }

                }//Fim Foreach

                //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>");

                logimportacao.Visible = true;
                loglbl.Text = log.ToString();
                //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>");
                ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>");
                
            };


            ISession sessao = ThreadStaticSessionContext.Unbind(NhibernateHelper.HelpThreading());
            if (sessao != null)
            {
                if (sessao.Transaction != null && sessao.Transaction.IsActive)
                {
                    sessao.Transaction.Rollback();
                }
                else
                {
                    sessao.Flush();
                }
                sessao.Close();

            }
            //Tarefas baseadas de forma assíncrona
            System.Threading.Tasks.Task tarefa_executar = new System.Threading.Tasks.Task(processamento, dadosparam);

            return tarefa_executar;
        }

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By RYNNES
      Um parque de diversão está começando a investir em tecnologia e a realizar automatização de alguns brinquedos, por meio do uso de inteligência artificial e tecnologias de escâner, a fim de verificar a altura dos clientes, e definir se eles estão aptos a entrar ou não em um brinquedo, sem precisar utilizar réguas ou medidor físico. Você foi contratado para desenvolver um protótipo de algoritmo para realizar essa verificação.
       
       
       
      Sendo assim, é necessário descrever a importância de fazer uma análise de um problema, aplicando as estruturas de repetição e o conceito na prática para verificar se três pessoas, medindo 1,73, 1,81 e 1,85 m podem entrar em um brinquedo que aceita somente maiores de 1,80 m. O algoritmo deve medir a altura das pessoas e efetuar uma avaliação, constatando se a altura é maior ou igual a 1,80 m, para possam entrar. Se menor do que 1,80 m, o programa apresenta a mensagem “Entrada Não Permitida”.
       
    • By alekoxid
      Olá pessoal, estou fazendo um programa em Python, baseado em outro em C.
       
      Como eu escreveria esse trecho aqui em python?
      Se alguém puder me explicar, eu agradeço
       
      Código:
      #S é definido como 1000000
      #n_pts=20
       
       
      Void numeric(){
            float a, b , c, d;
            float P_[100],Q_[100], T[100];
            float den;
            float dx=L/(n_pts-1);
       
           P_[1]=0;
           Q_[1]=Ta;
           T[1]=Ta;
           T[n_pts]=Tb;
           a=(2*k/dx);
           c=d=k/dx;
           d=S*dx;
           int n;
       
          for ( n=2; n< n_pts; n++){
          den= (a-c*P_[n-1]);
          P_[n]= b/ den;
         Q_[n]= (d+c*Q_[n-1])/den
         }
       
        printf("\n\n Solução : \n")
        print("\n Ponto %2d T=%4.1f C", n_pts, T[n_pts]);
       
      for ( n=n_pts-1; n>1; n--){
          T[n]=Q_[n]+P_[n]*T[n+1];
          printf("\n Ponto %2 T=%4.1f C", n, T[n]);
          }
    • By jeffer261
      Pessoal, boa noite!
       
      Alguem poderia por gentileza modificar o codigo abaixo  em C++ para C?
       
       
      #include <stdio.h>
      #include <stack>
      int main(){
          int n, i, j;
          char linha[2000];
          char entrada[1000], saida[1000];
          std::stack<char> pilha;
          
          while(scanf("%d", &n) && n){
              for (i = 0; i < n; i++) 
                  scanf(" %c", &entrada);
              for (i = 0; i < n; i++) 
                  scanf(" %c", &saida);
              entrada[n] = saida[n] = '\0';
              i = j = 0;
              while(1){
                       if(!pilha.empty() && j < n && pilha.top() == saida[j]){
                             pilha.pop();
                             printf("R");
                             j++;
                       }else if(i < n){
                              pilha.push(entrada);
                              printf("I");
                              i++;
                       }else break;                    
              }
              
              if(pilha.empty()) printf("\n");
              else  printf(" Impossible\n");
              while (!pilha.empty()){
                    pilha.pop();
              }
          }
          return 0;
      }
    • By kateLorrayne
      Oii, Preciso de ajuda em uma atividade que sinceramente não estou sabendo montar, em partes individual eu ate sei, mas unificar é a minha dificuldade, peguei essa resposta da internet, porem não roda, se alguém puder me ajudar, eu agradeço.
       
      *Faça um programa em linguagem de programação C++ para resolver o problema abaixo:
      “Dado um número inteiro positivo N, determinar:
      (a) o total de dígitos pares de N;
      (b) o total de dígitos impares de N;
      (c) a soma dos dígitos de N;
      (d) qual é o maior e qual é o menor digito que ocorre em N.
       
      #include <stdio.h>
      #include <stdlib.h>
      int main()
      {
          int num1[5], par[5],impar[5];
          //Entrada do numero de 4 digitos
          printf("Digite um numero entre 1000-9999:\n");
          scanf("%d", &num1);
          if(num1<1000 || num1>9999)  /*Condição de existência*/
          {
              printf("Numero Invalido");
          }
           return 0;
      }
      #include <stdio.h>
      int ckdig (int n, int* p, int* i)
      {
          int d = 0;
          
          if(n < 0)   n = -n;
          *p = *i = 0;
          
          while(n)
          {
              if((n % 2) == 0)
                  (*p)++;
              else
                  (*i)++;
              n /= 10;
              d++;
          }
          return d;
      }
       
       
    • By victormota1695
      Estou desenvolvendo um programa para trabalho de faculdade onde
      preciso usar estrutura de repetição para perguntar ao usuario um nome/itens armazena-los e quando o usuario nao quiser mais digitar os nomes ao sair do loop mostra todos os nomes que ele digitou.
       
      nao estou conseguindo preciso de ajuda. dese ja agradeço.
       
      meu codigo ate o momento e:
       
      #include <stdio.h>
      #include<stdlib.h>

      int main (){
      char lista,lista2;
      int menu1,menu2;

      printf("***BEM-VINDO AO LISTSUPER***\n\n");
      // ****Aqui o 1º menu de seleção****//
      printf("Escolha uma opção\n");
      printf("1-inserir novos itens\n2-inserir quantidade\n3-calcular valor\n4-mostrar itens\n\n");
      scanf("%i",&menu1);

      // ***Aqui e o loop para digitar os itens desejados****//
      if (menu1==1){
        while(1) {
             printf("insira os itens\n");
             scanf("%s",&lista);
             printf("deseja inserir novos itens? [1-sim/2-nao]\n");
             scanf("%i",&menu2);

       if (menu2==2){ break;}
      }
      }
      // ***Caso ele não selecione a opção para inserir novos itens aparecera esta mensagem***//
      else {
          printf("Não ha itens inseridos\nEscolha a opção ( inserir novos itens )");
      }
      //***Apos acabar de digitar os itens mostrar a lista dos itens digitados***//

      return 0;

      }
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.