diff --git a/ems-core/src/main/java/it/integry/ems/directory/EmailWatcherListener.java b/ems-core/src/main/java/it/integry/ems/directory/EmailWatcherListener.java index 17c3b5b3c9..b00fab99fe 100644 --- a/ems-core/src/main/java/it/integry/ems/directory/EmailWatcherListener.java +++ b/ems-core/src/main/java/it/integry/ems/directory/EmailWatcherListener.java @@ -8,6 +8,7 @@ import it.integry.ems.properties.EmsProperties; import it.integry.ems.response.EsitoType; import it.integry.ems.response.FileItem; import it.integry.ems.response.ServiceRestResponse; +import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems_model.config.EmsRestConstants; import it.integry.ems_model.service.SetupGest; import it.integry.ems_model.utility.UtilityString; @@ -192,67 +193,66 @@ public class EmailWatcherListener extends TimerTask { private void notifyErrorToEmail(String emailListen, String mittente, String messageObj, Date messageDate, String emailDbg, String errorMessage) throws Exception { if (!UtilityString.isNullOrEmpty(emailDbg)) { - DataSource ds = new DataSource(); - ds.initialize(emailListenerInfo.getDatabase()); + try (MultiDBTransactionManager mdb = new MultiDBTransactionManager(emailListenerInfo.getDatabase())) { - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); - String nomeAzienda = ""; - PreparedStatement ps = ds.getConnection().prepareStatement("select nome_ditta from azienda"); - ResultSet rs = ps.executeQuery(); - if (rs.next()) { - nomeAzienda = rs.getString("nome_ditta"); + String nomeAzienda = ""; + PreparedStatement ps = mdb.prepareStatement("select nome_ditta from azienda"); + ResultSet rs = ps.executeQuery(); + if (rs.next()) { + nomeAzienda = rs.getString("nome_ditta"); + } + rs.close(); + ps.close(); + + String htmlMailBody = "Gentile Amministratore,
si e' verificato il seguente errore
" + errorMessage + "
del servizio " + emailListenerInfo.getServiceRest() + + "
in ascolto sulla mail " + emailListen + " provocato dal messaggio (mittente " + mittente + ") con oggetto " + messageObj + " in data " + sdf.format(messageDate); + + String mailSubject = nomeAzienda + " - ERRORE SU " + InetAddress.getLocalHost().getHostName() + + " Servizio " + emailListenerInfo.getServiceRest() + ";Database " + emailListenerInfo.getDatabase(); + + // AttachmentDTO dto = new AttachmentDTO(); + // dto.setFileByte(files); + + StringWriter writer = new StringWriter(); + //jsonObjectMapper.writeValue(writer, dto); + + String jsonBody = writer.toString(); + + String database = emailListenerInfo.getDatabase(); + + String auth = RestUtil.generateAuth(database, database, "POST", jsonBody, + "application/json", prop.getRootApi() + EmsRestConstants.PATH_SEND_MAIL); + + final Client client = ClientBuilder.newClient(); + WebTarget resource = client.target(prop.getEndPointWS()).path( + prop.getRootApi() + EmsRestConstants.PATH_SEND_MAIL) + .resolveTemplate("mode", "async"); + resource = resource.queryParam(CommonConstants.PROFILE_DB, database) + .queryParam("from", "").queryParam("to", emailDbg) + .queryParam("subject", mailSubject).queryParam("msgText", htmlMailBody) + .queryParam("isHtml", true); + + resource.request().header("Authorization", database + ":" + auth) + .async() + .post(Entity.json(jsonBody), new InvocationCallback() { + @Override + public void completed(Response response) { + String value = response.readEntity(String.class); + logger.info(response.getStatus() + " - " + value); + response.close(); + client.close(); + } + + @Override + public void failed(Throwable throwable) { + throwable.printStackTrace(); + logger.error(throwable); + client.close(); + } + }); } - rs.close(); - ps.close(); - ds.forceClose(); - - String htmlMailBody = "Gentile Amministratore,
si e' verificato il seguente errore
" + errorMessage + "
del servizio " + emailListenerInfo.getServiceRest() + - "
in ascolto sulla mail " + emailListen + " provocato dal messaggio (mittente " + mittente + ") con oggetto " + messageObj + " in data " + sdf.format(messageDate); - - String mailSubject = nomeAzienda + " - ERRORE SU " + InetAddress.getLocalHost().getHostName() + - " Servizio " + emailListenerInfo.getServiceRest() + ";Database " + emailListenerInfo.getDatabase(); - - // AttachmentDTO dto = new AttachmentDTO(); - // dto.setFileByte(files); - - StringWriter writer = new StringWriter(); - //jsonObjectMapper.writeValue(writer, dto); - - String jsonBody = writer.toString(); - - String database = emailListenerInfo.getDatabase(); - - String auth = RestUtil.generateAuth(database, database, "POST", jsonBody, - "application/json", prop.getRootApi() + EmsRestConstants.PATH_SEND_MAIL); - - final Client client = ClientBuilder.newClient(); - WebTarget resource = client.target(prop.getEndPointWS()).path( - prop.getRootApi() + EmsRestConstants.PATH_SEND_MAIL) - .resolveTemplate("mode", "async"); - resource = resource.queryParam(CommonConstants.PROFILE_DB, database) - .queryParam("from", "").queryParam("to", emailDbg) - .queryParam("subject", mailSubject).queryParam("msgText", htmlMailBody) - .queryParam("isHtml", true); - - resource.request().header("Authorization", database + ":" + auth) - .async() - .post(Entity.json(jsonBody), new InvocationCallback() { - @Override - public void completed(Response response) { - String value = response.readEntity(String.class); - logger.info(response.getStatus() + " - " + value); - response.close(); - client.close(); - } - - @Override - public void failed(Throwable throwable) { - throwable.printStackTrace(); - logger.error(throwable); - client.close(); - } - }); } } diff --git a/ems-engine/src/main/java/it/integry/ems/order/export/service/OrdiniAcquistoExportServices.java b/ems-engine/src/main/java/it/integry/ems/order/export/service/OrdiniAcquistoExportServices.java index 3d44dbe94a..6d083d56fd 100644 --- a/ems-engine/src/main/java/it/integry/ems/order/export/service/OrdiniAcquistoExportServices.java +++ b/ems-engine/src/main/java/it/integry/ems/order/export/service/OrdiniAcquistoExportServices.java @@ -524,35 +524,6 @@ public class OrdiniAcquistoExportServices { } - public EntityExportResponse exportOrdiniVendita(String type, String format) throws Exception { - Connection connection = multiDBTransactionManager.getPrimaryConnection(); - - DataSource dsSlim2k = new DataSource(); - Map setup = setupGest.getImportSetupSection(connection, type, format); - EntityExportResponse> entityExportResponse = new EntityExportResponse>(); - String profileSlim2k = setup.get("PROFILE"); - - if (UtilityString.isNullOrEmpty(profileSlim2k)) { - throw new Exception("Profile non configurato per la procedura di importazione liste di scarico SLIM2K"); - } - - try { - dsSlim2k.initialize(profileSlim2k); - String listaSingoloOrdine = setup.get("LISTA_SINGOLO_ORDINE"); - - - } catch (Exception e) { - throw e; - } finally { - if (!dsSlim2k.isClosed()) { - dsSlim2k.forceClose(); - } - } - - - return entityExportResponse; - } - public EntityExportResponse exportOrdiniSlim2K(String type, String format) throws Exception { EntityExportResponse> entityExportResponse = new EntityExportResponse>(); diff --git a/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ProductServices.java b/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ProductServices.java index bd0406e8d0..a37e8c0f42 100644 --- a/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ProductServices.java +++ b/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ProductServices.java @@ -92,94 +92,91 @@ public class ProductServices { public List exportArtDialogo(String whereCond) throws Exception { //PROCEDURA DI IMPORTAZIONE ARTICOLI FORMAT - CARELLI - String query; - FileItem fileItem; - DataSource dsArticoli = new DataSource(); HashMap setup = setupGest.getSetupSection(multiDBTransactionManager.getPrimaryConnection(), "w_marti_rc", "DIALOGO"); String profileDbArt = setup.get("PROFILE_DB"); - dsArticoli.initialize(profileDbArt); + try(MultiDBTransactionManager mdb = new MultiDBTransactionManager(profileDbArt)) { - String queryArticoli = - "SELECT mtb_aart.cod_mart " + - " FROM mtb_aart LEFT OUTER JOIN mtb_lisa ON mtb_aart.cod_mart = mtb_lisa.cod_mart " + - "LEFT OUTER JOIN mvw_barcode ON mtb_aart.cod_mart = mvw_barcode.cod_mart " + - " WHERE mtb_aart.cod_mart NOT IN (SELECT cod_mart FROM " + multiDBTransactionManager.getPrimaryDatasource().getDbName() + ".dbo.mtb_aart)"; - queryArticoli = UtilityDB.addwhereCond(queryArticoli, whereCond, true); + String queryArticoli = + "SELECT mtb_aart.cod_mart " + + " FROM mtb_aart LEFT OUTER JOIN mtb_lisa ON mtb_aart.cod_mart = mtb_lisa.cod_mart " + + "LEFT OUTER JOIN mvw_barcode ON mtb_aart.cod_mart = mvw_barcode.cod_mart " + + " WHERE mtb_aart.cod_mart NOT IN (SELECT cod_mart FROM " + multiDBTransactionManager.getPrimaryDatasource().getDbName() + ".dbo.mtb_aart)"; + queryArticoli = UtilityDB.addwhereCond(queryArticoli, whereCond, true); - String sql = setup.get("QUERY"); - sql = UtilityDB.addwhereCond(sql, "mtb_aart.cod_mart IN (" + queryArticoli + ") ", false); + String sql = setup.get("QUERY"); + sql = UtilityDB.addwhereCond(sql, "mtb_aart.cod_mart IN (" + queryArticoli + ") ", false); - ResultSetMapper rsArt = new ResultSetMapper(); - List articoli = rsArt.mapQuerySetToList(dsArticoli.getConnection(), sql, MtbAart.class, OperationType.SELECT_OBJECT); + ResultSetMapper rsArt = new ResultSetMapper(); + List articoli = rsArt.mapQuerySetToList(mdb.getPrimaryConnection(), sql, MtbAart.class, OperationType.SELECT_OBJECT); - if (articoli == null || articoli.isEmpty()) { - throw new Exception("Nessun articolo trovato"); - } - - sql = - "SELECT mtb_aart_bar_code.cod_mart, " + - " cod_barre, " + - " qta_cnf " + - " FROM mtb_aart_bar_code " + - "WHERE mtb_aart_bar_code.cod_mart IN (" + queryArticoli + ") "; - - ResultSetMapper rsBarcode = new ResultSetMapper(); - List barcode = rsBarcode.mapQuerySetToList(dsArticoli.getConnection(), sql, MtbAartBarCode.class, OperationType.SELECT_OBJECT); - - sql = - "SELECT mtb_lisa.cod_mart, " + - " cod_alis, " + - " cod_art_for, " + - " unt_mis_acq, " + - " flag_attivo " + - " FROM mtb_lisa " + - " WHERE mtb_lisa.cod_mart IN (" + queryArticoli + ") "; - - - List listini = rsBarcode.mapQuerySetToList(dsArticoli.getConnection(), sql, MtbLisa.class, OperationType.SELECT_OBJECT); - - sql = "SELECT where_cond_sql FROM stb_subscription WHERE user_name = " + UtilityDB.valueToString(multiDBTransactionManager.getPrimaryDatasource().getDbName()); - - String whereCondSync = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(dsArticoli.getConnection(), sql); - - if (!UtilityString.isNullOrEmpty(whereCondSync) && !listini.isEmpty()) { - List myObjs = new ArrayList<>(); - myObjs.addAll(listini); - - String selectSql = "SELECT * FROM " + listini.get(0).getClass().getCanonicalName() + " WHERE " + whereCondSync; - - // Create a new Query. - Query q = new Query(); - q.parse(selectSql); - - QueryResults qr = q.execute(myObjs); - List res = qr.getResults(); - - if (res != null && res.size() >= 0) { - listini = (List) res; + if (articoli == null || articoli.isEmpty()) { + throw new Exception("Nessun articolo trovato"); } - } - for (MtbAart art : articoli) { - art.setOnlyPkMaster(false); + sql = + "SELECT mtb_aart_bar_code.cod_mart, " + + " cod_barre, " + + " qta_cnf " + + " FROM mtb_aart_bar_code " + + "WHERE mtb_aart_bar_code.cod_mart IN (" + queryArticoli + ") "; - List mtbAartBarCode = Stream.of(barcode).filter(x -> x.getCodMart().equalsIgnoreCase(art.getCodMart())).toList(); - if (mtbAartBarCode != null) { - art.setMtbAartBarCode(mtbAartBarCode); - } - if (!listini.isEmpty()) { - List mtbLisa = Stream.of(listini).filter(x -> x.getCodMart().equalsIgnoreCase(art.getCodMart())).toList(); - if (mtbLisa != null) { - art.setMtbLisa(mtbLisa); + ResultSetMapper rsBarcode = new ResultSetMapper(); + List barcode = rsBarcode.mapQuerySetToList(mdb.getPrimaryConnection(), sql, MtbAartBarCode.class, OperationType.SELECT_OBJECT); + + sql = + "SELECT mtb_lisa.cod_mart, " + + " cod_alis, " + + " cod_art_for, " + + " unt_mis_acq, " + + " flag_attivo " + + " FROM mtb_lisa " + + " WHERE mtb_lisa.cod_mart IN (" + queryArticoli + ") "; + + + List listini = rsBarcode.mapQuerySetToList(mdb.getPrimaryConnection(), sql, MtbLisa.class, OperationType.SELECT_OBJECT); + + sql = "SELECT where_cond_sql FROM stb_subscription WHERE user_name = " + UtilityDB.valueToString(multiDBTransactionManager.getPrimaryDatasource().getDbName()); + + String whereCondSync = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(mdb.getPrimaryConnection(), sql); + + if (!UtilityString.isNullOrEmpty(whereCondSync) && !listini.isEmpty()) { + List myObjs = new ArrayList<>(); + myObjs.addAll(listini); + + String selectSql = "SELECT * FROM " + listini.get(0).getClass().getCanonicalName() + " WHERE " + whereCondSync; + + // Create a new Query. + Query q = new Query(); + q.parse(selectSql); + + QueryResults qr = q.execute(myObjs); + List res = qr.getResults(); + + if (res != null && res.size() >= 0) { + listini = (List) res; } } - } + for (MtbAart art : articoli) { + art.setOnlyPkMaster(false); - return articoli; + List mtbAartBarCode = Stream.of(barcode).filter(x -> x.getCodMart().equalsIgnoreCase(art.getCodMart())).toList(); + if (mtbAartBarCode != null) { + art.setMtbAartBarCode(mtbAartBarCode); + } + if (!listini.isEmpty()) { + List mtbLisa = Stream.of(listini).filter(x -> x.getCodMart().equalsIgnoreCase(art.getCodMart())).toList(); + if (mtbLisa != null) { + art.setMtbLisa(mtbLisa); + } + } + + } + return articoli; + } } private String exportArtDialogoExclude(String[] elencoCampi, String nomeCampo) { @@ -784,17 +781,17 @@ public class ProductServices { public void popolaTabellaRiassegnazione() throws Exception { String profileDB = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "w_mriassegna_costo_dlg", "TABELLA COSTI", "PROFILE_DB"); - Connection conn = null; - if (!UtilityString.isNullOrEmpty(profileDB) && !profileDB.equalsIgnoreCase(multiDBTransactionManager.getPrimaryDatasource().getProfile())) { - DataSource ds = new DataSource(); - ds.initialize(profileDB); - conn = ds.getConnection(); - } else { - conn = multiDBTransactionManager.getPrimaryConnection(); + try(MultiDBTransactionManager mdb = new MultiDBTransactionManager(profileDB)) { + Connection conn = null; + if (!UtilityString.isNullOrEmpty(profileDB) && !profileDB.equalsIgnoreCase(multiDBTransactionManager.getPrimaryDatasource().getProfile())) { + conn = mdb.getPrimaryConnection(); + } else { + conn = multiDBTransactionManager.getPrimaryConnection(); + } + CallableStatement cs = conn.prepareCall("{call popolaTabelleCosti}"); + cs.execute(); + cs.close(); } - CallableStatement cs = conn.prepareCall("{call popolaTabelleCosti}"); - cs.execute(); - cs.close(); } public void aggCostiDaTabella(Date dataIniz, Date dataFine, String whereCond) throws Exception {