Jump to content

Renato Muniz

Members
  • Content count

    28
  • Joined

  • Last visited

Community Reputation

0 Comum

About Renato Muniz

  1. Renato Muniz

    Melhor prática? criam campo Total ou fazer um join sum()?

    Oi Amanda, consegui contornar separando as tabelas mesmo, tirei o join da tabela "PAI" e fiz um filtro separado com a tabela "FILHA" daí no controller deu FOR ( entity) somando manualmente e depois dei um setTotal() e enviei pra View. o que mudou pra ficar mais pesado é quantidade de vezes que preciso ir no banco de dados, com o join era uma instrução só!! por enquanto vou deixar assim, pra dar continuidade no projeto, mas depois vou melhorar esse trecho!! Obg!
  2. Renato Muniz

    Melhor prática? criam campo Total ou fazer um join sum()?

    Obg por responder Amaanda, acho q assim seria mais complicado de manter nao?? me preocupar em atualiza o campo total , sempre que houver um insert ou update na tabela de produtos, apesar que na classe entity tem as tags preupdate e preinsert dai eu poderia tentar calcular e etc... mas da forma q implementei ficaria ruim dessa forma. Obg
  3. Renato Muniz

    Spring, campo transient visível na View

    Boa noite pessoal, minha Entity tem um campo @NumberFormat(pattern = "#,##0.00") transient BigDecimal total; Esse campo é calculando la no meu repository com um JOIN.... o problema é que quando ponho ele não transitório eu não consigo exibir o valor dele na View tento como acima, como abaixo: @Transient @Column(updatable = false, insertable = false) @NumberFormat(pattern = "#,##0.00") private BigDecimal valortemporario; Meu desejo é utilizar esse campo calculado na View, mas sem persistir ele, quqndo mando salvar os dados enviando o objeto esse campo vai junto, utilizando o transient BigDecimal total ele retira da persistência mas não me deixa visualizar na view, to a um tempão procurando solução e não encontro, obrigado desde já!! Abaixo seque a query so pra efeito de visualizar o caso num todo!! public interface AtendimentosRepository extends JpaRepository<Atendimentos, Long> { String sqlPrincipal = "SELECT id_heados, usuario_heados, cadastro_heados, " + " sinistronumero_heados, pecastotal.valortemporario as total, " + "corretor_heados, custosadicionais_heados, veiculo_heados, empresa_heados, seguradora_heados, " + " datalanc_heados, dataprevsaida_heados, dataentrada_heados, deducao_heados,extramaoobra_heados ," + " extrapeca_heados, franquia_heados, maoobra_heados, materialpintura_heados,obschecklist_heados, " + " veiculo_km_heados, obsextras_heados,tipoatendimento_heados, totalpecas_heados, " + " datasaida_heados FROM heados " + " LEFT JOIN ( (SELECT pedos.controle_pedos,adicional_pedos," + " sum( ( COALESCE(valor_pedos,'0') * COALESCE(quantidade_pedos,'0') ) - ( " + " ( COALESCE(valor_pedos,'0') * COALESCE(quantidade_pedos,'0') ) * COALESCE(desconto_pedos,'0') /100" + " ) ) as valortemporario FROM pedos as pedos WHERE adicional_pedos = 'N'" + " group by pedos.controle_pedos) ) pecastotal ON controle_pedos " + " WHERE id_heados = :controle "; @Query(value = sqlPrincipal, nativeQuery = true) public Atendimentos atendimentoByControle(@Param("controle") Long controle); } Obrigado!!! Renato Muniz.
  4. Renato Muniz

    Melhor prática? criam campo Total ou fazer um join sum()?

    Acho q vcs tem preguiça de ler mesmo!! vou deixar ate amanha de excluo! pra não fazer peso aqui no forum!
  5. Olá pessoal , sempre nas minhas tabelas nunca criei campo Total, nos casos tipo... tabela_venda e tabela_pedidos, o que eu faço é um join somando os campos valor*quantidade daí é criado um campo "temporario" (Total)... correto?? pois bem, agora programando em java (spring) + JPA me deparei com problemas na hora de criar minhas classes anotadas como @Entity, pois esse campo "temporario" ta difícil de manipular na classe, pois na hora de persistir no banco ele o "JPA" tenta gravar esse campo "Total" tbm. Existe uma tag @transient que inibe essa persistência no banco, ele retira da serialização, porém tbm nao consigo visualizar o conteúdo dele na view (no HTML), ou seja, ele nao carrega nos métodos get() vem sempre null!! sei aqui é relacionado a banco de dados e acabei falando mais da linguagem do que o próprio banco, mas voltando ao assunto... Vocês preferem criar o campo Total da tabela e assim ter a preocupação de sempre atualizar o campo ao incluir ou editar um valor da tabela Pedidos , ou preferem fazer um JOIN executando um SUM(), dessa forma nao precisando se preocupar com atualizações na tabela Vendas???? com o zendFramework (PHP) eu nao tinha problema nenhuma fazia o que queria "mandava e desmandava" mas no "Spring" a coisa mudou!! Qual a preferencia de vcs!! ?? obrigado! Renato Muniz.
  6. Olá pessoal bom dia, olha só... to terminando um sistema, daí tem o seguinte, cada usuário logado terá N empresas "oficina mecânica" cadastrada em seu nome, possibilitando ele selecionar em qual deseja incluir um cadastro, dessa forma , nas pesquisas por exemplo de clientes "MARIA" o sistema terá que filtrar todas as "MARIAS" que esteja cadastrada com 1 das empresas deste usuário logado, exemplo. Pensei em fazer da seguinte forma... o usuario 1 tem no nome dele a empresa , 1,2,3 (IDs) em uma subtabela id_usuario | id_empresa | id_cadastro 1 - RENATO 1 - EMPRESA1 11 - MARIA DOS SANTOS 1 - RENATO 2 - EMPRESA1 11 - MARIA DOS SANTOS 1 - RENATO 3 - EMPRESA1 11 - MARIA DOS SANTOS 1 - RENATO 1 - EMPRESA1 108 - RICARDO SOUZA 1 - RENATO 2 - EMPRESA1 108 - RICARDO SOUZA 1 - RENATO 3 - EMPRESA1 108 - RICARDO SOUZA *** QUANDO O USUÁRIO LOGAR O SISTEMA VAI GUARDAR OS IDS DAS EMPRESAS EM QUE ELE ESTA CADASTRADO, ASSIM QUANDO ELE FOR INCLUIR ALGO, O SISTEMA DA UM FOR NOS IDS E INCLUI DE ACORDO COM A QTD DE IDS *** FAZENDO A REFERENCIA DOS CADASTROS AO IDS DAS EMPRESAS ou seja pra cada inclusão do cadastro eu gravo na sub-tabela a mesma quantidade de registros que o usuário tem cadastrado nas empresas, ou seja, se o usuário é cadastrado em 3 empresas eu incluo na tabela para o relacionamento 3 registros , pensando num sistema grande essa tabela vai crescer bastante não acham??? enfim, daí para fazer a pesquisa seria tipo isso "select id_cadatro, subtabela.id_cadastro from cadastros left join subtabela on idsub = id_cad" for (ids_cadastrados as subtabela) where " o r" + "subtabela.id_cadastro = subtabelaid_subtabela " endfor teria uma maneira melhor? qq vcs acham?? isso vai ocorrer em varias outras tabelas... e assim esse retorno de dados será bem grande, esse intuito é pra resolver o seguinte... o cliente vai controlar varias empresas dele no mesmo sistema e ele quer as informações numa só tela, os relatórios das empresas que ele controla, em precisar ta logando em uma determinada empresa, sei que eu posso por um SELECT pra ele escolher na hora de fazer um filtro ou na hora de incluir um cadastro, mas queria fazer automático qndo cadastrar um cliente ele ficar visível para as 3 empresas que ele controla qq dúvida to por aqui pessoal, já agradeço desde já!!! Obg!!! bom dia à todos!! Oss!!
  7. Renato Muniz

    Acumular Tempo Parado (rastreio)

    Vdd, é algo a se considerar! No mínimo resolver a quantidade de requisições ao servidor do banco!
  8. Renato Muniz

    Acumular Tempo Parado (rastreio)

    Olá Motta, sim essas informações são gravadas nesse momento, mas mesmo assim como acumularia resolvendo todas as questões, estou modelando aqui uma opção que imaginei que talvez dê certo, o modelo para essa situação ainda to criando! Obg!
  9. Renato Muniz

    Acumular Tempo Parado (rastreio)

    Bom dia pessoal AJUDA por favor , há dois dias estou tentando acumular o tempo parado do veículo, através das informações que recebo do rastreador, é o seguinte... a cada 1min recebo as informações, uma delas é se o veiculo está parado 0 = parado , 1 = em movimento, entre as outras colunas tem uma data_hora (dd/mm/yy hh:mm), a cada recebimento e SE parado , preciso ficar acumulando o tempo parado do mesmo!! Certamente já pensei dessas maneiras, ao receber uma nova informação e SE parado, vou procurar na tabela de todas as informações, a último momento parado do mesmo veículo , daí subtraio a hora atual com a hora do momento anterior, exemplo , peguei a informação atual PARADO agora as 08:00, fui buscar na tabela a ultima informação PARADO, registrado anteriormente, que foi as 07:30, então entre eles tem um tempo de 30min, daí teoricamente ele ficou parado 30min. O problema é que essas informações vou solicitar a cada 1min e registrar tudo no banco, esse banco logo logo, vai crescer muito, um exemplo aqui é uma tabala do sistema antigo, tem mais de 16 milhões, imagina a cada 1min eu ter que fazer essa consulta, pegar o ultimo registro do determinado veiculo PARADO nessa tabela. Fora que ao atualiza a janela do sistema (WEB, Java , Spring), preciso fazer além desse filtro os outros.. Outra Maneira seria criar uma tabela separada, (Tempo_Parado), e registrar o momento (data_hora) , veiculo_id, daí a tabela fica um pouco menor que a do rastreio propriamente dito, então a cada 1min se o veiculo tiver parado, vou nessa tabela e procuro o momento da ultima parada dele, e vou acumulando. Mas tem um problema nessas teoria.. imagina só... o cara parou as 8:00 daí fui acumulando ate as 8:30, já tenho aí 30min parado, agora o cara começou a se movimentar... rodou uns 30min e o cara para novamente...... ou seja PAROU as 9:00, quando eu for pegar a última hora que ele parou o sistema vai trazer 08:30, e se eu for usar a técnica acima citado por mim, o sistema vai calcular assim , ultima parada as 8:30, pardou agora as 9:00, tempo parado MAIS 30min... espero que vocês tenham entendido...... Pensando um pouco agora, eu poderia quando filtrar as ultimas paradas, sempre pegar as duas 2 ultimas informações, e se a penúltima informação era EM MOVIMENTO, ja sei que essa parada agora é uma parada START e não um continuação de PARADO, tipo... 07:30 Parado 08:00 Parado --------30min 08:10 Movimento 08:30 Parado se for pelo sistema, ele vai calcular 8:30 - 8:00 vai trazer 30min PARADO, que não é (nessa última situação ele nao ficou parado 30min), na verdade ele parou agora o que pensei nesse caso foi, pegar esses 2 últimos, e caso o penúltimo seja EM MOVIMENTO, desconsiderar o calculo e somente gravar que parou, daí na próxima consulta PARADO as 8:50, o sistema vai me trazer 8:50 - 8:30 = 20min parado. Assim acredito que funcione, porém vai da trabalho e pesando no banco terá muitas consultas em tabelas grandes de volume!!! Qualquer dica de vocês pode ajudar a melhorar, deve ter algo mais simples!!! Agradeço desde já!!!! Bom dia!!!
  10. Renato Muniz

    [Resolvido] Pegar valores de inputs e jogar em array com jquery

    Bom dia pessoal, e como faria pra adicionar dados no input array no jquery??? Tentei assim, mas quando vou dar um foreach nele no php so tras o ultimo! Jquery $('input[name="codigos[]"]').val(idprod); PHP $data = $request->getPost()->toArray(); if (count($data) != 0){ foreach ($data['codigos'] as $codigo) { echo $codigo . "<br/>"; } die; } Html <input type="text" name="codigos[]" value="" id="codigo" /> Agradeço desde já!! Boa páscoa!!
×

Important Information

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