From 73757dd8b71eb8439c9a4586e1df7bf269366600 Mon Sep 17 00:00:00 2001 From: "wallace.henrique" Date: Tue, 27 Aug 2024 15:27:24 -0300 Subject: [PATCH 1/4] fixes bug#AL-4718 --- pom.xml | 2 +- .../relatorios/impl/RelatorioEstoque.java | 107 ++++++++++++------ .../ItemReporteControleEstoqueBoletos.java | 8 ++ 3 files changed, 80 insertions(+), 37 deletions(-) diff --git a/pom.xml b/pom.xml index f33a2fb8b..e305e46ca 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.130.0 + 1.130.1 war diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java index 39103b1c5..9c2fdf869 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java @@ -82,6 +82,7 @@ public class RelatorioEstoque extends Relatorio { item.setFechorAquisicion((Date) rset.getObject("fechorAquisicion")); item.setFecVencimento((Date) rset.getObject("fecVencimento")); item.setID((String) rset.getObject("ID")); + item.setPuntoVentaId(rset.getInt("puntoVentaId") > 0 ? rset.getInt("puntoVentaId") : null); lsEstoquePorSalto.add(item); } @@ -137,6 +138,7 @@ public class RelatorioEstoque extends Relatorio { List lsTemp = new ArrayList<>(); List lsTempRetorno = new ArrayList<>(); List lsTempRetornoAux = new ArrayList<>(); + lsEstoquePorSalto = validarFolioPreImpressoPuntoventa(lsEstoquePorSalto, puntoVentaId); for (ItemReporteControleEstoqueBoletos i : lsEstoquePorSalto) { if(map.get(i.getID()) == null) { for (ItemReporteControleEstoqueBoletos item : lsEstoquePorSalto) { @@ -145,6 +147,7 @@ public class RelatorioEstoque extends Relatorio { } } map.put(i.getID(), i.getID()); + //criar metodo for dentro do outro para remover o que a consulta retornar lsTempRetorno.addAll(gerarRangesDeFolios(recuperarOsFaltantes(lsTemp), lsTemp)); lsTemp = new ArrayList(); } @@ -211,12 +214,13 @@ public class RelatorioEstoque extends Relatorio { sb.append(" TB.articuloId as articuloId, "); sb.append(" TB.nombEmpresa as nombEmpresa, "); sb.append(" TB.empresaId as empresaId, "); - sb.append(" TB.marcaId as marcaId, "); +// sb.append(" TB.marcaId as marcaId, "); sb.append(" TB.fechorAquisicion as fechorAquisicion, "); sb.append(" TB.tipo as tipo, "); sb.append(" TB.fecVencimento as fecVencimento, "); sb.append(" TB.ID as ID , TB.nomeEstado as nomeEstado, "); - sb.append(" TB.tipoAidf as tipoAidf "); + sb.append(" TB.tipoAidf as tipoAidf, "); + sb.append(" TB.puntoVentaId as puntoVentaId, TB.fechorventa as fechorVenta "); sb.append(" from (SELECT DAB.AIDF_ID AS aidfId, est.NOMBESTADO as nomeEstado, "); sb.append(" dab.NUMSERIEPREIMPRESA AS serie, "); sb.append(" TO_NUMBER(CJ.NUMFOLIOPREIMPRESO) AS folioCaja, "); @@ -226,7 +230,7 @@ public class RelatorioEstoque extends Relatorio { sb.append(" AB.ARTICULO_ID AS articuloId, "); sb.append(" EM.NOMBEMPRESA AS nombEmpresa, "); sb.append(" EM.EMPRESA_ID AS empresaId, "); - sb.append(" M.MARCA_ID AS marcaId, "); +// sb.append(" M.MARCA_ID AS marcaId, "); sb.append(" DAB.AIDF_ID || DAB.NUMSERIEPREIMPRESA || DAB.NUMFOLIOINICIAL || DAB.NUMFOLIOFINAL || EM.EMPRESA_ID AS ID, "); sb.append(" CASE "); sb.append(" WHEN dab.STATUSOPERACION = 4 THEN CONCAT(a.descarticulo, ' (Distribuição Estoque)') "); @@ -234,12 +238,13 @@ public class RelatorioEstoque extends Relatorio { sb.append(" END AS tipo , "); sb.append(" to_date(to_char(AI.fecadquisicion, 'dd/MM/yyyy'), 'dd/MM/yyyy') AS fechorAquisicion, "); sb.append(" to_date(to_char(ai.fecvencimiento, 'dd/MM/yyyy'), 'dd/MM/yyyy') AS fecVencimento, "); - sb.append(" AIT.DESCTIPO tipoAidf "); + sb.append(" AIT.DESCTIPO tipoAidf, "); + sb.append(" PV.PUNTOVENTA_ID AS puntoVentaId, cj.fechorVenta as fechorVenta "); sb.append(" FROM CAJA CJ, "); sb.append(" ARTICULO A, "); sb.append(" EMPRESA EM, "); - sb.append(" MARCA M, "); - sb.append(" USUARIO U, "); +// sb.append(" MARCA M, "); +// sb.append(" USUARIO U, "); sb.append(" AIDF AI, "); sb.append(" AIDF_TIPO AIT, "); sb.append(" ESTADO est,"); @@ -249,19 +254,18 @@ public class RelatorioEstoque extends Relatorio { sb.append(" LEFT JOIN DET_ABASTO_BOLETO DAB ON (AB.ABASTOBOLETO_ID = DAB.ABASTOBOLETO_ID) "); sb.append(" WHERE TO_NUMBER(CJ.NUMFOLIOPREIMPRESO) BETWEEN TO_NUMBER(DAB.NUMFOLIOINICIAL) AND TO_NUMBER(DAB.NUMFOLIOFINAL) "); // sb.append(" AND CJ.PUNTOVENTA_ID = AB.PUNTOVENTA_ID "); - sb.append(" AND DAB.ACTIVO = 1 "); - sb.append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA "); - sb.append(" OR (cj.NUMSERIEPREIMPRESA IS NULL "); - sb.append(" AND dab.NUMSERIEPREIMPRESA IS NULL)) "); - if (puntoVentaId != null) { - sb.append(" AND (cj.PUNTOVENTA_ID in("+puntoVentaId+ ") or AB.PUNTOVENTA_ID in("+puntoVentaId+")) "); - } + sb.append(" AND DAB.ACTIVO = 1 "); + sb.append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA OR (cj.NUMSERIEPREIMPRESA IS NULL AND dab.NUMSERIEPREIMPRESA IS NULL)) "); +// if (puntoVentaId != null) { +// sb.append(" AND (cj.PUNTOVENTA_ID in("+puntoVentaId+ ") or AB.PUNTOVENTA_ID in("+puntoVentaId+")) "); +// } if(empresaId != null) { sb.append(" AND Em.empresa_ID = ") .append(empresaId); } if(dataInicio!= null && dataFim != null) { sb.append(" AND AI.fecadquisicion BETWEEN TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFinal,'dd/mm/yyyy hh24:mi:ss') "); + sb.append(" AND cj.fechorventa BETWEEN TO_DATE('01/08/2022 00:00:00','dd/mm/yyyy hh24:mi:ss') AND TO_DATE('17/09/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') "); }else if(dataInicio!= null) { sb.append(" AND AI.fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); } @@ -270,10 +274,10 @@ public class RelatorioEstoque extends Relatorio { sb.append(" 1, "); sb.append(" 4) "); sb.append(" AND A.ARTICULO_ID = AB.ARTICULO_ID "); - sb.append(" AND EM.EMPRESA_ID = AB.EMPRESA_ID "); - sb.append(" AND M.EMPRESA_ID = EM.EMPRESA_ID "); - sb.append(" AND M.ACTIVO = 1 "); - sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID "); + sb.append(" AND EM.EMPRESA_ID = AB.EMPRESA_ID AND AI.EMPRESA_ID = AB.EMPRESA_ID "); +// sb.append(" AND M.EMPRESA_ID = EM.EMPRESA_ID "); +// sb.append(" AND M.ACTIVO = 1 "); +// sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID "); sb.append(" AND (CJ.INDREIMPRESION = 0 "); sb.append(" OR (CJ.INDREIMPRESION = 1 "); sb.append(" AND CJ.INDSTATUSBOLETO = 'E')) "); @@ -290,14 +294,14 @@ public class RelatorioEstoque extends Relatorio { sb.append(" PV.NOMBPUNTOVENTA, "); sb.append(" AB.ARTICULO_ID, "); sb.append(" EM.NOMBEMPRESA, "); - sb.append(" U.USUARIO_ID, "); +// sb.append(" U.USUARIO_ID, "); sb.append(" EM.EMPRESA_ID, "); sb.append(" DAB.AIDF_ID, "); - sb.append(" M.MARCA_ID, "); +// sb.append(" M.MARCA_ID, "); sb.append(" A.descarticulo, "); sb.append(" dab.STATUSOPERACION , "); sb.append(" to_char(AI.fecadquisicion, 'dd/MM/yyyy'), "); - sb.append(" to_char(ai.fecvencimiento, 'dd/MM/yyyy'), est.NOMBESTADO , AIT.DESCTIPO "); + sb.append(" to_char(ai.fecvencimiento, 'dd/MM/yyyy'), est.NOMBESTADO , AIT.DESCTIPO, PV.PUNTOVENTA_ID, cj.fechorVenta "); sb.append(" "); sb.append(" UNION ALL "); sb.append(" SELECT DAB.AIDF_ID AS aidfId, est.NOMBESTADO as nomeEstado , "); @@ -309,7 +313,7 @@ public class RelatorioEstoque extends Relatorio { sb.append(" AB.ARTICULO_ID AS articuloId, "); sb.append(" EM.NOMBEMPRESA AS nombEmpresa, "); sb.append(" EM.EMPRESA_ID AS empresaId, "); - sb.append(" M.MARCA_ID AS marcaId, "); +// sb.append(" M.MARCA_ID AS marcaId, "); sb.append(" DAB.AIDF_ID || DAB.NUMSERIEPREIMPRESA || DAB.NUMFOLIOINICIAL || DAB.NUMFOLIOFINAL || EM.EMPRESA_ID AS ID, "); sb.append(" CASE "); sb.append(" WHEN dab.STATUSOPERACION = 4 THEN CONCAT(a.descarticulo, ' (Distribuição Estoque)') "); @@ -317,15 +321,17 @@ public class RelatorioEstoque extends Relatorio { sb.append(" END AS tipo, "); sb.append(" to_date(to_char(AI.fecadquisicion, 'dd/MM/yyyy'), 'dd/MM/yyyy') AS fechorAquisicion, "); sb.append(" to_date(to_char(ai.fecvencimiento, 'dd/MM/yyyy'), 'dd/MM/yyyy') AS fecVencimento, "); - sb.append(" AIT.DESCTIPO tipoAidf "); + sb.append(" AIT.DESCTIPO tipoAidf, "); + sb.append(" PV.PUNTOVENTA_ID AS puntoVentaId, "); + sb.append(" CJ.FECHORVTA as fechorVenta "); sb.append(" FROM CAJA_DIVERSOS CJ, "); sb.append(" ARTICULO A, "); sb.append(" EMPRESA EM, "); - sb.append(" MARCA M, "); +// sb.append(" MARCA M, "); sb.append(" AIDF AI, "); sb.append(" AIDF_TIPO AIT, "); sb.append(" ESTADO est,"); - sb.append(" USUARIO U, "); +// sb.append(" USUARIO U, "); sb.append(" PUNTO_VENTA PV, "); sb.append(" ABASTO_BOLETO AB "); sb.append(" LEFT JOIN DET_ABASTO_BOLETO DAB ON (AB.ABASTOBOLETO_ID = DAB.ABASTOBOLETO_ID) "); @@ -334,15 +340,16 @@ public class RelatorioEstoque extends Relatorio { sb.append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA "); sb.append(" OR (cj.NUMSERIEPREIMPRESA IS NULL "); sb.append(" AND dab.NUMSERIEPREIMPRESA IS NULL)) "); - if (puntoVentaId != null) { - sb.append(" AND (cj.PUNTOVENTA_ID in("+puntoVentaId+ ") or AB.PUNTOVENTA_ID in("+puntoVentaId+")) "); - } +// if (puntoVentaId != null) { +// sb.append(" AND (cj.PUNTOVENTA_ID in("+puntoVentaId+ ") or AB.PUNTOVENTA_ID in("+puntoVentaId+")) "); +// } if(empresaId != null) { sb.append(" AND Em.empresa_ID = ") .append(empresaId); } if(dataInicio!= null && dataFim != null) { sb.append(" AND AI.fecadquisicion BETWEEN TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFinal,'dd/mm/yyyy hh24:mi:ss') "); + sb.append(" AND CJ.FECHORVTA BETWEEN TO_DATE('01/08/2022 00:00:00','dd/mm/yyyy hh24:mi:ss') AND TO_DATE('17/09/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') "); }else if(dataInicio!= null) { sb.append(" AND AI.fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); } @@ -350,15 +357,16 @@ public class RelatorioEstoque extends Relatorio { sb.append(" AND DAB.STATUSOPERACION IN(0, "); sb.append(" 1, "); sb.append(" 4) "); - sb.append(" AND A.ARTICULO_ID = AB.ARTICULO_ID "); + sb.append(" AND A.ARTICULO_ID = AB.ARTICULO_ID AND AI.EMPRESA_ID = AB.EMPRESA_ID "); sb.append(" AND EM.EMPRESA_ID = AB.EMPRESA_ID "); - sb.append(" AND M.EMPRESA_ID = EM.EMPRESA_ID "); - sb.append(" AND M.ACTIVO = 1 "); - sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID "); +// sb.append(" AND M.EMPRESA_ID = EM.EMPRESA_ID "); +// sb.append(" AND M.ACTIVO = 1 "); +// sb.append(" AND CJ.USUARIO_ID = U.USUARIO_ID "); sb.append(" AND CJ.PUNTOVENTA_ID = PV.PUNTOVENTA_ID "); sb.append(" AND DAB.ACTIVO = 1 "); - sb.append(" AND AB.activo =1 AND AI.activo = 1 and est.estado_id = ai.ESTADO_ID "); + sb.append(" AND AB.activo =1 AND AI.activo = 1 and est.estado_id = ai.ESTADO_ID "); sb.append(aidfTipo != null ? " AND (AI.AIDFTIPO_ID =:aidfTipo AND AIT.AIDFTIPO_ID = AI.AIDFTIPO_ID) " : " AND AIT.AIDFTIPO_ID = AI.AIDFTIPO_ID "); + sb.append(" and CJ.aidf_id = AI.AIDF_ID "); sb.append(aidfId != null ? " AND (AI.AIDF_ID =:aidfId AND DAB.AIDF_ID = AI.AIDF_ID) " : " AND DAB.AIDF_ID = AI.AIDF_ID "); sb.append(" GROUP BY DAB.AIDF_ID, "); sb.append(" DAB.NUMSERIEPREIMPRESA, "); @@ -368,14 +376,16 @@ public class RelatorioEstoque extends Relatorio { sb.append(" PV.NOMBPUNTOVENTA, "); sb.append(" AB.ARTICULO_ID, "); sb.append(" EM.NOMBEMPRESA, "); - sb.append(" U.USUARIO_ID, "); +// sb.append(" U.USUARIO_ID, "); sb.append(" EM.EMPRESA_ID, "); sb.append(" DAB.AIDF_ID, "); - sb.append(" M.MARCA_ID, "); +// sb.append(" M.MARCA_ID, "); sb.append(" A.descarticulo, "); sb.append(" dab.STATUSOPERACION, "); sb.append(" to_char(AI.fecadquisicion, 'dd/MM/yyyy'), "); - sb.append(" to_char(ai.fecvencimiento, 'dd/MM/yyyy') , est.NOMBESTADO , AIT.DESCTIPO ) TB "); + sb.append(" to_char(ai.fecvencimiento, 'dd/MM/yyyy') , est.NOMBESTADO , AIT.DESCTIPO, PV.PUNTOVENTA_ID, CJ.FECHORVTA ) TB "); + sb.append(" where exists ( SELECT * FROM CAJA_DIVERSOS CA WHERE CA.ACTIVO = 1 AND CA.NUMFOLIOPREIMPRESO = TB.folioCaja and ca.numseriepreimpresa = TB.SERIE and CA.FECHORVTA = TB.fechorVenta) "); + sb.append(" OR exists ( SELECT * FROM CAJA CA WHERE CA.ACTIVO = 1 AND CA.NUMFOLIOPREIMPRESO = TB.folioCaja and ca.numseriepreimpresa = TB.SERIE AND CA.ACTIVO = 1 AND CA.INDSTATUSBOLETO <> 'C' AND ( CA.motivocancelacion_id is null OR CA.motivocancelacion_id = 31 ) AND CA.EMPRESACORRIDA_ID = TB.empresaId and TB.fechorVenta = CA.fechorventa) "); sb.append(" ORDER BY TB.aidfId, "); sb.append(" TB.serie, "); sb.append(" TB.folioCaja "); @@ -439,12 +449,20 @@ public class RelatorioEstoque extends Relatorio { .append("LEFT JOIN aidf_tipo ait ON ait.AIDFTIPO_ID= ai.AIDFTIPO_ID ") .append("LEFT JOIN ESTADO est ON est.ESTADO_ID = ai.ESTADO_ID ") .append("LEFT JOIN ESTACION ES ON es.ESTACION_ID = ab.ESTACION_ID ") + .append("JOIN CAJA_DIVERSOS CJ ON CJ.AIDF_ID = dab.AIDF_ID ") .append("WHERE dab.STATUSOPERACION IN(0,1,4) ") .append("AND dab.ACTIVO = 1 ") .append(" and dab.NUMFOLIOFINAL < 2147483647 ") .append(" AND DAB.AIDF_ID = AI.AIDF_ID and ai.activo = 1 ") .append(aidfTipo != null ? " AND AI.AIDFTIPO_ID = :aidfTipo " : " ") - .append(aidfId != null ? " AND AI.AIDF_ID = :aidfId " : " "); + .append(aidfId != null ? " AND AI.AIDF_ID = :aidfId " : " ") + .append("AND TO_NUMBER(CJ.NUMFOLIOPREIMPRESO) BETWEEN TO_NUMBER(DAB.NUMFOLIOINICIAL) AND TO_NUMBER(DAB.NUMFOLIOFINAL) ") + .append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA ") + .append(" OR (cj.NUMSERIEPREIMPRESA IS NULL ") + .append("AND dab.NUMSERIEPREIMPRESA IS NULL)) ") + .append("AND CJ.FECHORVTA BETWEEN TO_DATE('01/08/2022 00:00:00', 'dd/mm/yyyy hh24:mi:ss') AND TO_DATE('30/08/2024 23:59:00', 'dd/mm/yyyy hh24:mi:ss') "); + + @@ -599,5 +617,22 @@ public class RelatorioEstoque extends Relatorio { return lsBlocoJaTodoUtilizado; } + private List validarFolioPreImpressoPuntoventa(List lsEstoquePorSalto, String puntoVentaId) { + + List lsEstoquePorSaltoaux = new ArrayList<>(lsEstoquePorSalto); + String[] puntoVentaIds = null; + + if (puntoVentaId != null) { + puntoVentaIds = puntoVentaId.split(","); + for (ItemReporteControleEstoqueBoletos itemReporteControleEstoqueBoletos : lsEstoquePorSalto) { + for (String id : puntoVentaIds) { + if(!itemReporteControleEstoqueBoletos.getPuntoVentaId().equals(Integer.valueOf(id))) { + lsEstoquePorSaltoaux.remove(itemReporteControleEstoqueBoletos); + } + } + } + } + return lsEstoquePorSaltoaux; + } } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java index f61a7f4c0..ba150795b 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ItemReporteControleEstoqueBoletos.java @@ -33,6 +33,7 @@ public class ItemReporteControleEstoqueBoletos { private String ID; private String tipoAidf; private Integer quantidade; + private Integer puntoVentaId; public Integer getEstacionId() { @@ -199,6 +200,13 @@ public class ItemReporteControleEstoqueBoletos { public void setQuantidade(Integer quantidade) { this.quantidade = quantidade; } + + public Integer getPuntoVentaId() { + return puntoVentaId; + } + public void setPuntoVentaId(Integer puntoVentaId) { + this.puntoVentaId = puntoVentaId; + } @Override public int hashCode() { final int prime = 31; From 1db2bc3118bfa8148413bbab83c0bdd52b9a275f Mon Sep 17 00:00:00 2001 From: "valdir.cordeiro" Date: Tue, 27 Aug 2024 15:37:55 -0300 Subject: [PATCH 2/4] =?UTF-8?q?74307=20-=20Exclus=C3=A3o=20do=20cache=20po?= =?UTF-8?q?r=20operador=20feat=20bug#AL-4243?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +- .../EditarOperadorEmbarcadaController.java | 16 +++ .../api/LimparCacheApiController.java | 3 +- .../web/utilerias/api/ApiCallRunnable.java | 23 ++-- .../utilerias/api/CacheOperadorEmbarcada.java | 120 ++++++++++++++++++ .../web/utilerias/api/ETipoEnvio.java | 5 + 6 files changed, 158 insertions(+), 13 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/api/CacheOperadorEmbarcada.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/api/ETipoEnvio.java diff --git a/pom.xml b/pom.xml index e305e46ca..f10a820b3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,11 +4,11 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.130.1 + 1.131.0 war - 1.100.0 + 1.101.0 1.88.0 UTF-8 diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/EditarOperadorEmbarcadaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/EditarOperadorEmbarcadaController.java index dc8d85917..ab1af2d65 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/EditarOperadorEmbarcadaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/EditarOperadorEmbarcadaController.java @@ -42,9 +42,11 @@ import com.rjconsultores.ventaboletos.service.ClaseServicioService; import com.rjconsultores.ventaboletos.service.MarcaService; import com.rjconsultores.ventaboletos.service.OperadorEmbarcadaService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.InputMessageBox; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.api.CacheOperadorEmbarcada; import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; import com.rjconsultores.ventaboletos.web.utilerias.render.ItemRenderRutaOperadorEmbarcada; @@ -553,7 +555,13 @@ public class EditarOperadorEmbarcadaController extends MyGenericForwardComposer operador = operadorService.suscribirActualizar(operador, linhas, listaServicos); + Usuario usuario = operador.getUsuario(); + String OperadorId = operadorEdicao.getOperadorEmbarcadaId().toString(); + String senha = InputMessageBox.showQuestion(Labels.getLabel("limparCacheAPI.message.senha"), + Labels.getLabel("limparCacheAPI.title"), Messagebox.OK); + + CacheOperadorEmbarcada.getInstance().limparCacheOperador(OperadorId, senha, usuario); } try { Messagebox.show(Labels.getLabel("busquedaOperadorEmbarcada.mensage.operadorSalvo"), Labels.getLabel("busquedaOperadorEmbarcada.mensage.operadorSalvo.title"), @@ -582,6 +590,12 @@ public class EditarOperadorEmbarcadaController extends MyGenericForwardComposer if (resp == Messagebox.YES) { + String senha = InputMessageBox.showQuestion(Labels.getLabel("limparCacheAPI.message.senha"), + Labels.getLabel("limparCacheAPI.title"), Messagebox.OK); + + Usuario usuario = operadorEdicao.getUsuario(); + String OperadorId = operadorEdicao.getOperadorEmbarcadaId().toString(); + operadorService.apagar(operadorEdicao); Messagebox.show( @@ -589,6 +603,8 @@ public class EditarOperadorEmbarcadaController extends MyGenericForwardComposer Labels.getLabel("busquedaOperadorEmbarcada.MSG.borrarPergunta.title"), Messagebox.OK, Messagebox.INFORMATION); + CacheOperadorEmbarcada.getInstance().limparCacheOperador(OperadorId, senha, usuario); + closeWindow(); } } catch (Exception ex) { diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/api/LimparCacheApiController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/api/LimparCacheApiController.java index e5867eb22..d7d50ad99 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/api/LimparCacheApiController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/api/LimparCacheApiController.java @@ -24,6 +24,7 @@ import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.web.utilerias.InputMessageBox; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.api.ApiCallRunnable; +import com.rjconsultores.ventaboletos.web.utilerias.api.ETipoEnvio; import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; /** @@ -119,7 +120,7 @@ public class LimparCacheApiController extends MyGenericForwardComposer { urlBase, user.getClaveUsuario(), secret, - false); + ETipoEnvio.POST); Thread thread = new Thread(cache); thread.start(); thread.join(); diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/api/ApiCallRunnable.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/api/ApiCallRunnable.java index c8dc0ba97..e8dcd6336 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/api/ApiCallRunnable.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/api/ApiCallRunnable.java @@ -10,6 +10,7 @@ import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpUriRequest; @@ -39,7 +40,7 @@ public class ApiCallRunnable implements Runnable { private String retorno; private String urlBase; private String user = "internal"; - private boolean get = true; + private ETipoEnvio tipoEnvio; public String getUrl() { return url; @@ -71,14 +72,14 @@ public class ApiCallRunnable implements Runnable { this.urlBase = urlOriginal; } - public ApiCallRunnable(String url, String tenant, String urlBase, String user, String secret, boolean get) { + public ApiCallRunnable(String url, String tenant, String urlBase, String user, String secret, ETipoEnvio tipoEnvio) { super(); this.secret = secret; this.url = url; this.tenant = tenant; this.urlBase = urlBase; this.user = user; - this.get = get; + this.tipoEnvio = tipoEnvio; } @SuppressWarnings("deprecation") @@ -90,10 +91,12 @@ public class ApiCallRunnable implements Runnable { HttpUriRequest request; - if(isGet()) { - request = new HttpGet(url); - }else { + if(ETipoEnvio.POST.equals(tipoEnvio)) { request = new HttpPost(url); + } else if(ETipoEnvio.DELETE.equals(tipoEnvio)) { + request = new HttpDelete(url); + } else { + request = new HttpGet(url); } UsernamePasswordCredentials creds = null; @@ -172,12 +175,12 @@ public class ApiCallRunnable implements Runnable { this.secret = secret; } - public boolean isGet() { - return get; + public ETipoEnvio getTipoEnvio() { + return tipoEnvio; } - public void setGet(boolean get) { - this.get = get; + public void setTipoEnvio(ETipoEnvio tipoEnvio) { + this.tipoEnvio = tipoEnvio; } } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/api/CacheOperadorEmbarcada.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/api/CacheOperadorEmbarcada.java new file mode 100644 index 000000000..e250a7234 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/api/CacheOperadorEmbarcada.java @@ -0,0 +1,120 @@ +package com.rjconsultores.ventaboletos.web.utilerias.api; + +import java.util.List; + +import org.apache.commons.lang.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.context.ApplicationContext; +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.enums.CacheApiEnum; +import com.rjconsultores.ventaboletos.service.ConstanteService; +import com.rjconsultores.ventaboletos.service.UsuarioEmpresaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; + +public class CacheOperadorEmbarcada { + + private static CacheOperadorEmbarcada instance; + + public final String URL_API_EMB = "URL_API_EMB"; + + private static Logger log = LogManager.getLogger(CacheOperadorEmbarcada.class); + + public static CacheOperadorEmbarcada getInstance() { + if(instance == null) { + instance = new CacheOperadorEmbarcada(); + } + + return instance; + } + + public void limparCacheOperador(String OperadorId, String senha, Usuario usuario) { + try { + log.info("Inicio limparCacheOperador, OperadorId: " + OperadorId); + CacheApiEnum entidade = CacheApiEnum.OPERADOR_ESPECIFICO; + + String[] urls = getURLSAPI(); + + if (urls == null || urls.length == 0) { + log.info(Labels.getLabel("limparCacheAPI.message.naoconfigurado")); + return; + } + + Usuario user = UsuarioLogado.getUsuarioLogado(); + + List empresas = buscarEmpresas(usuario); + + for (String url : urls) { + + if (StringUtils.isBlank(url) || url.contains("|")) { + log.info(Labels.getLabel("limparCacheAPI.message.naoconfigurado")); + return; + } + + String tenant = StringUtils.substringBetween(url, "[", "]"); + if (tenant != null) { + url = url.replaceAll("\\[.*?\\]", ""); + } + String urlBase = url; + + for(Empresa emp : empresas) { + + url = montarUrlRequest(url, entidade.getUri(), OperadorId, emp.getEmpresaId()); + + log.info("URL: " + url); + + ApiCallRunnable cache = new ApiCallRunnable( + url, + tenant, + urlBase, + user.getClaveUsuario(), + senha, + ETipoEnvio.DELETE); + + Thread thread = new Thread(cache); + thread.start(); + thread.join(); + + log.info(cache.getRetorno()); + } + } + + log.info("Final limparCacheOperador, OperadorId: " + OperadorId); + } catch (Exception e) { + log.error("Erro ao limpar cache operador embarcada", e); + } + } + + private String montarUrlRequest(String url, String uri, String OperadorId, Integer empresaId) { + url = url.toLowerCase(); + + if (!url.endsWith("/")) { + url += "/"; + } + + uri = uri.replace("operador_id", OperadorId); + uri = uri.replace("empresa_id", empresaId.toString()); + + return url.concat(uri); + } + + private List buscarEmpresas(Usuario usuario) { + ApplicationContext appContext = AppContext.getApplicationContext(); + UsuarioEmpresaService usuarioEmpService = (UsuarioEmpresaService) appContext.getBean("usuarioEmpresaService"); + + return usuarioEmpService.obtenerEmpresa(usuario); + } + + private String[] getURLSAPI() { + ApplicationContext appContext = AppContext.getApplicationContext(); + ConstanteService constanteService = (ConstanteService) appContext.getBean("constanteService"); + String constante = constanteService.buscarURLAPIEmb(); + + return constante == null ? null : constante.split("\\|"); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/api/ETipoEnvio.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/api/ETipoEnvio.java new file mode 100644 index 000000000..24e490eae --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/api/ETipoEnvio.java @@ -0,0 +1,5 @@ +package com.rjconsultores.ventaboletos.web.utilerias.api; + +public enum ETipoEnvio { + GET, POST, DELETE; +} From 257b0fa0ed1bd3a4a461b50b66bd6eeab4699d30 Mon Sep 17 00:00:00 2001 From: "wallace.henrique" Date: Tue, 27 Aug 2024 16:18:09 -0300 Subject: [PATCH 3/4] fixes bugAL-4718 --- pom.xml | 2 +- .../relatorios/impl/RelatorioEstoque.java | 27 ++++++++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index f10a820b3..0102be3de 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.131.0 + 1.131.1 war diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java index 9c2fdf869..0fc1b8547 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.sql.Connection; import java.sql.ResultSet; import java.util.ArrayList; +import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.Date; @@ -14,7 +15,6 @@ import java.util.Map; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ItemReporteControleEstoqueBoletos; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; -import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioBilhetesVendidosEstoqueAgenciaBean; import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; @@ -48,12 +48,21 @@ public class RelatorioEstoque extends Relatorio { } String sql = retornarItensConsultaPorPuloFolio(puntoVentaId,empresaId, dtInicio, dtFim, aidfTipoId, aidfId); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + if(dtInicio != null && dtFim != null) { stmt.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); - stmt.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59"); + stmt.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59"); }else if(dtInicio != null) { stmt.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); } + + Calendar c = Calendar.getInstance(); + c.setTime(dtInicio); + c.add(Calendar.YEAR, -3); + + stmt.setString("dataInicioVenda", DateUtil.getStringDate(c.getTime(), "dd/MM/yyyy") + " 23:59:59"); + stmt.setString("dataFimVenda", DateUtil.getStringDate(new Date(), "dd/MM/yyyy") + " 23:59:59"); + if(aidfTipoId != null) { stmt.setInt("aidfTipo",aidfTipoId); } @@ -99,6 +108,10 @@ public class RelatorioEstoque extends Relatorio { }else if(dtInicio != null) { stmt2.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00"); } + + stmt2.setString("dataInicioVenda", DateUtil.getStringDate(c.getTime(), "dd/MM/yyyy") + " 23:59:59"); + stmt2.setString("dataFimVenda", DateUtil.getStringDate(new Date(), "dd/MM/yyyy") + " 23:59:59"); + if(aidfTipoId != null) { stmt2.setInt("aidfTipo",aidfTipoId); } @@ -264,12 +277,12 @@ public class RelatorioEstoque extends Relatorio { .append(empresaId); } if(dataInicio!= null && dataFim != null) { - sb.append(" AND AI.fecadquisicion BETWEEN TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFinal,'dd/mm/yyyy hh24:mi:ss') "); - sb.append(" AND cj.fechorventa BETWEEN TO_DATE('01/08/2022 00:00:00','dd/mm/yyyy hh24:mi:ss') AND TO_DATE('17/09/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') "); + sb.append(" AND AI.fecadquisicion BETWEEN TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFinal,'dd/mm/yyyy hh24:mi:ss') "); }else if(dataInicio!= null) { sb.append(" AND AI.fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); } - sb.append(" AND DAB.NUMFOLIOFINAL < 2147483647 "); + sb.append(" AND cj.fechorventa BETWEEN TO_DATE(:dataInicioVenda,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFimVenda,'dd/mm/yyyy hh24:mi:ss') "); + sb.append(" AND DAB.NUMFOLIOFINAL < 2147483647 "); sb.append(" AND DAB.STATUSOPERACION IN(0, "); sb.append(" 1, "); sb.append(" 4) "); @@ -349,10 +362,10 @@ public class RelatorioEstoque extends Relatorio { } if(dataInicio!= null && dataFim != null) { sb.append(" AND AI.fecadquisicion BETWEEN TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFinal,'dd/mm/yyyy hh24:mi:ss') "); - sb.append(" AND CJ.FECHORVTA BETWEEN TO_DATE('01/08/2022 00:00:00','dd/mm/yyyy hh24:mi:ss') AND TO_DATE('17/09/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') "); }else if(dataInicio!= null) { sb.append(" AND AI.fecadquisicion >= TO_DATE(:dataInicio,'dd/mm/yyyy hh24:mi:ss') "); } + sb.append(" AND FECHORVTA BETWEEN TO_DATE(:dataInicioVenda,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFimVenda,'dd/mm/yyyy hh24:mi:ss') "); sb.append(" AND DAB.NUMFOLIOFINAL < 2147483647 "); sb.append(" AND DAB.STATUSOPERACION IN(0, "); sb.append(" 1, "); @@ -460,7 +473,7 @@ public class RelatorioEstoque extends Relatorio { .append(" AND (cj.NUMSERIEPREIMPRESA = dab.NUMSERIEPREIMPRESA ") .append(" OR (cj.NUMSERIEPREIMPRESA IS NULL ") .append("AND dab.NUMSERIEPREIMPRESA IS NULL)) ") - .append("AND CJ.FECHORVTA BETWEEN TO_DATE('01/08/2022 00:00:00', 'dd/mm/yyyy hh24:mi:ss') AND TO_DATE('30/08/2024 23:59:00', 'dd/mm/yyyy hh24:mi:ss') "); + .append(" AND CJ.FECHORVTA BETWEEN TO_DATE(:dataInicioVenda,'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:dataFimVenda,'dd/mm/yyyy hh24:mi:ss') "); From 77a08757ca535694c2dc5f3bae1660fb9f8512d0 Mon Sep 17 00:00:00 2001 From: "wallace.henrique" Date: Tue, 27 Aug 2024 16:19:38 -0300 Subject: [PATCH 4/4] fixes bug#AL-4718 --- pom.xml | 2 +- .../ventaboletos/relatorios/impl/RelatorioEstoque.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0102be3de..ebfb3d852 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,5 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0 br.com.rjconsultores diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java index 0fc1b8547..ff90965ed 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEstoque.java @@ -121,6 +121,7 @@ public class RelatorioEstoque extends Relatorio { ResultSet rset2 = null; rset2 = stmt2.executeQuery(); + List lsEstoque = new ArrayList<>() ; while (rset2.next()) {