-
Notifications
You must be signed in to change notification settings - Fork 96
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adiciona filtro por espécie no historico de movimentações
- Loading branch information
1 parent
9f61216
commit 9695dda
Showing
8 changed files
with
549 additions
and
18 deletions.
There are no files selected for viewing
116 changes: 116 additions & 0 deletions
116
sigaex/src/main/java/br/gov/jfrj/siga/ex/api/v1/DocumentosIdConsultarEspecieGet.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
package br.gov.jfrj.siga.ex.api.v1; | ||
|
||
import br.gov.jfrj.siga.base.AplicacaoException; | ||
import br.gov.jfrj.siga.base.Prop; | ||
import br.gov.jfrj.siga.context.AcessoPublico; | ||
import br.gov.jfrj.siga.ex.ExDocumento; | ||
import br.gov.jfrj.siga.ex.ExMobil; | ||
import br.gov.jfrj.siga.ex.ExMovimentacao; | ||
import br.gov.jfrj.siga.ex.model.enm.ExTipoDeMovimentacao; | ||
import br.gov.jfrj.siga.hibernate.ExDao; | ||
import br.gov.jfrj.siga.persistencia.ExMobilDaoFiltro; | ||
import com.crivano.swaggerservlet.SwaggerServlet; | ||
|
||
import java.math.BigDecimal; | ||
import java.util.Collections; | ||
import java.util.List; | ||
import java.util.Set; | ||
|
||
@AcessoPublico | ||
public class DocumentosIdConsultarEspecieGet implements IExApiV1.IDocumentosIdConsultarEspecieGet { | ||
|
||
@Override | ||
public void run(Request req, Response resp, ExApiV1Context ctx) throws Exception { | ||
String siglaDoDocumento = req.id; | ||
Long idDoDocumento = getIdDoDocumentoBySigla(compactarSigla(siglaDoDocumento)); | ||
resp.idDoc = idDoDocumento.toString(); | ||
resp.siglaDocumento = siglaDoDocumento; | ||
Long IdDoModeloDoDocumento = obterModeloDoDocumento(idDoDocumento); | ||
resp.idModelo = IdDoModeloDoDocumento.toString(); | ||
resp.status = "Ok"; | ||
resp.nomeDoModelo = obterNomeDoModeloDoDocumento(idDoDocumento); | ||
|
||
resp.especie = obterEspecieDoDocumento(idDoDocumento); | ||
} | ||
|
||
private String obterEspecieDoDocumento(Long idDoDocumento) throws AplicacaoException { | ||
ExDocumento exDocumento = ExDao.getInstance().consultarExDocumentoPorId(idDoDocumento); | ||
if (exDocumento == null) { | ||
throw new AplicacaoException("Documento não encontrado com o ID: " + idDoDocumento); | ||
} | ||
String nomeDoModelo = exDocumento.getExModelo().getNmMod(); | ||
|
||
String especie = exDocumento.getExModelo().getExFormaDocumento().toString(); | ||
return especie; | ||
} | ||
|
||
private Long obterModeloDoDocumento(Long idDoDocumento) throws AplicacaoException { | ||
//Código equivalente a select ID_MOD from ex_documento where ID_DOC = 2 | ||
ExDocumento exDocumento = ExDao.getInstance().consultarExDocumentoPorId(idDoDocumento); | ||
if (exDocumento == null) { | ||
throw new AplicacaoException("Documento não encontrado com o ID: " + idDoDocumento); | ||
} | ||
|
||
Long idDoModeloDoDocumento = exDocumento.getExModelo().getIdMod(); | ||
if (idDoModeloDoDocumento == null) { | ||
throw new AplicacaoException("Modelo do documento não encontrado para o ID: " + idDoDocumento); | ||
} | ||
|
||
return idDoModeloDoDocumento; | ||
} | ||
|
||
private String obterNomeDoModeloDoDocumento(Long idDoDocumento) throws AplicacaoException { | ||
|
||
ExDocumento exDocumento = ExDao.getInstance().consultarExDocumentoPorId(idDoDocumento); | ||
if (exDocumento == null) { | ||
throw new AplicacaoException("Documento não encontrado com o ID: " + idDoDocumento); | ||
} | ||
String nomeDoModelo = exDocumento.getExModelo().getNmMod(); | ||
return nomeDoModelo; | ||
} | ||
|
||
public static String compactarSigla(String sigla) { | ||
if (sigla == null) | ||
return null; | ||
return sigla.replace("-", "").replace("/", ""); | ||
} | ||
|
||
public Long getIdDoDocumentoBySigla(String sigla) throws AplicacaoException{ | ||
Long idDocumento = ExDao.getInstance().consultarIdDocumentoPorSigla(descompactarSigla(sigla)); | ||
return idDocumento; | ||
|
||
} | ||
|
||
public static String descompactarSigla(String siglaCompactada) { | ||
if (siglaCompactada == null) { | ||
return null; // Ou lançar uma exceção, dependendo da lógica do seu negócio | ||
} | ||
|
||
// Verifica se a sigla tem o comprimento mínimo esperado (sem sufixo) | ||
if (siglaCompactada.length() < 15) { | ||
return null; // Ou lançar uma exceção | ||
} | ||
|
||
String prefixo = siglaCompactada.substring(0, 4); | ||
String tipoDocumento = siglaCompactada.substring(4, 7); | ||
String ano = siglaCompactada.substring(7, 11); | ||
String numeroSequencial; | ||
String sufixo = ""; | ||
|
||
// Verifica se existe um sufixo após o número sequencial | ||
if (siglaCompactada.length() > 16) { | ||
numeroSequencial = siglaCompactada.substring(11, 16); | ||
sufixo = "-" + siglaCompactada.substring(16); | ||
} else { | ||
numeroSequencial = siglaCompactada.substring(11); | ||
} | ||
|
||
return prefixo + "-" + tipoDocumento + "-" + ano + "/" + numeroSequencial + sufixo; | ||
} | ||
|
||
|
||
@Override | ||
public String getContext() { | ||
return "verificar assinatura"; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
88 changes: 88 additions & 0 deletions
88
sigaex/src/main/java/br/gov/jfrj/siga/ex/api/v1/ModelosListaHierarquicaEspecieGet.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
package br.gov.jfrj.siga.ex.api.v1; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
import br.gov.jfrj.siga.dp.DpLotacao; | ||
import br.gov.jfrj.siga.dp.DpPessoa; | ||
import br.gov.jfrj.siga.ex.ExMobil; | ||
import br.gov.jfrj.siga.ex.ExModelo; | ||
import br.gov.jfrj.siga.ex.api.v1.IExApiV1.IModelosListaHierarquicaEspecieGet; | ||
import br.gov.jfrj.siga.ex.api.v1.IExApiV1.ModeloListaHierarquicaEspecieItem; | ||
import br.gov.jfrj.siga.ex.bl.Ex; | ||
import br.gov.jfrj.siga.util.ListaHierarquica; | ||
import br.gov.jfrj.siga.util.ListaHierarquicaEspecie; | ||
import br.gov.jfrj.siga.util.ListaHierarquicaEspecieItem; | ||
import br.gov.jfrj.siga.util.ListaHierarquicaItem; | ||
|
||
public class ModelosListaHierarquicaEspecieGet implements IModelosListaHierarquicaEspecieGet { | ||
|
||
@Override | ||
public String getContext() { | ||
return "obter lista de modelos"; | ||
} | ||
|
||
@Override | ||
public void run(Request req, Response resp, ExApiV1Context ctx) throws Exception { | ||
boolean isEditandoAnexo = (req.isEditandoAnexo != null && req.isEditandoAnexo ? true : false); | ||
boolean isCriandoSubprocesso = (req.isCriandoSubprocesso != null && req.isCriandoSubprocesso ? true : false); | ||
ExMobil mobPai = null; | ||
String headerValue = null; | ||
boolean isAutuando = (req.isAutuando != null && req.isAutuando ? true : false); | ||
|
||
if (req.siglaMobPai != null) { | ||
mobPai = ctx.buscarMobil(req.siglaMobPai, req, resp, "Documento Pai"); | ||
} | ||
DpPessoa titular = ctx.getTitular(); | ||
DpLotacao lotaTitular = ctx.getLotaTitular(); | ||
List<ExModelo> modelos = Ex.getInstance().getBL().obterListaModelos(null, null, isEditandoAnexo, | ||
isCriandoSubprocesso, mobPai, headerValue, true, titular, lotaTitular, isAutuando); | ||
|
||
resp.list = new ArrayList<>(); | ||
for (ListaHierarquicaEspecieItem m : getListaHierarquicaEspecie(modelos).getList()) { | ||
ModeloListaHierarquicaEspecieItem mi = new ModeloListaHierarquicaEspecieItem(); | ||
mi.idModelo = (m.getValue() != null ? m.getValue().toString() : ""); | ||
mi.idModeloInicial = (m.getIdInicial() != null ? m.getIdInicial().toString() : ""); | ||
mi.nome = m.getText(); | ||
mi.descr = m.getSearchText(); | ||
mi.level = (long) m.getLevel(); | ||
mi.group = m.getGroup(); | ||
mi.selected = m.getSelected(); | ||
mi.keywords = m.getKeywords(); | ||
mi.especie = m.getEspecie(); | ||
System.out.println("##################"); | ||
System.out.println("##################"); | ||
System.out.println(mi); | ||
System.out.println("##################"); | ||
System.out.println("##################"); | ||
resp.list.add(mi); | ||
} | ||
} | ||
|
||
private ListaHierarquicaEspecie getListaHierarquicaEspecie(List<ExModelo> modelos) { | ||
ListaHierarquicaEspecie lh = new ListaHierarquicaEspecie(); | ||
for (ExModelo m : modelos) { | ||
//TODO remover os system out println | ||
System.out.println("##################"); | ||
System.out.println("##################"); | ||
System.out.println(m); | ||
System.out.println("##################"); | ||
System.out.println("##################"); | ||
System.out.println(m.getIdInicial().toString()); | ||
System.out.println(m.getNmMod()); | ||
System.out.println(m.getDescMod()); | ||
System.out.println(m.getId()); | ||
System.out.println(false); | ||
String especie = ""; | ||
if (m.getExFormaDocumento() != null ) { | ||
if (m.getExFormaDocumento().getDescricao() != null) { | ||
especie = m.getExFormaDocumento().getDescricao(); | ||
System.out.println(m.getExFormaDocumento().getDescricao()); | ||
} | ||
} | ||
|
||
lh.add(m.getIdInicial().toString(), m.getNmMod(), m.getDescMod(), m.getId(), false, especie); | ||
} | ||
return lh; | ||
} | ||
} |
58 changes: 58 additions & 0 deletions
58
sigaex/src/main/java/br/gov/jfrj/siga/util/ListaHierarquicaEspecie.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
package br.gov.jfrj.siga.util; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
import br.gov.jfrj.siga.base.util.Texto; | ||
|
||
public class ListaHierarquicaEspecie { | ||
|
||
static final String DIVIDER = ": "; | ||
List<String> groups = new ArrayList<String>(); | ||
List<ListaHierarquicaEspecieItem> l = new ArrayList<ListaHierarquicaEspecieItem>(); | ||
|
||
public void add(String idInicial, String text, Long value, boolean selected, String especie) { | ||
if (text == null || value == null) | ||
return; | ||
String as[] = text.split(DIVIDER); | ||
for (int i = 0; i < as.length; i++) { | ||
String s = as[i]; | ||
|
||
// igual ao anterior | ||
if (i < groups.size() && s.equals(groups.get(i))) | ||
continue; | ||
else { | ||
groups = groups.subList(0, i); | ||
groups.add(s); | ||
boolean group = i < as.length - 1; | ||
l.add(new ListaHierarquicaEspecieItem(i + 1, (group ? null : idInicial), s, group ? null : Texto.removeAcentoMaiusculas(text), | ||
group ? null : value, group, group ? false : selected, s)); | ||
} | ||
} | ||
} | ||
|
||
/* Com Busca complementar*/ | ||
public void add(String idInicial, String text, String keywords, Long value, boolean selected, String especie) { | ||
if (text == null || value == null) | ||
return; | ||
String as[] = text.split(DIVIDER); | ||
for (int i = 0; i < as.length; i++) { | ||
String s = as[i]; | ||
|
||
// igual ao anterior | ||
if (i < groups.size() && s.equals(groups.get(i))) | ||
continue; | ||
else { | ||
groups = groups.subList(0, i); | ||
groups.add(s); | ||
boolean group = i < as.length - 1; | ||
l.add(new ListaHierarquicaEspecieItem(i + 1, (group ? null : idInicial), s, group ? null : Texto.removeAcentoMaiusculas(text.concat(" - " + keywords)), keywords, | ||
group ? null : value, group, group ? false : selected, s)); | ||
} | ||
} | ||
} | ||
|
||
public List<ListaHierarquicaEspecieItem> getList() { | ||
return l; | ||
} | ||
} |
Oops, something went wrong.