DriverConfigurazioneDB_allarmiDriver.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.core.config.driver.db;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.util.ArrayList;
- import java.util.List;
- import org.openspcoop2.core.allarmi.Allarme;
- import org.openspcoop2.core.allarmi.constants.RuoloPorta;
- import org.openspcoop2.core.allarmi.constants.StatoAllarme;
- import org.openspcoop2.core.allarmi.utils.AllarmiConverterUtils;
- import org.openspcoop2.core.allarmi.utils.AllarmiDriverUtils;
- import org.openspcoop2.core.config.constants.CostantiConfigurazione;
- import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
- import org.openspcoop2.core.config.driver.DriverConfigurazioneNotFound;
- import org.openspcoop2.core.constants.CostantiDB;
- import org.openspcoop2.core.id.IDServizio;
- import org.openspcoop2.core.id.IDSoggetto;
- import org.openspcoop2.utils.jdbc.JDBCUtilities;
- import org.openspcoop2.utils.sql.ISQLQueryObject;
- import org.openspcoop2.utils.sql.SQLObjectFactory;
- /**
- * DriverConfigurazioneDB_allarmiDriver
- *
- *
- * @author Sandra Giangrandi (sandra@link.it)
- * @author Stefano Corallo (corallo@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class DriverConfigurazioneDB_allarmiDriver {
- private DriverConfigurazioneDB driver = null;
-
- protected DriverConfigurazioneDB_allarmiDriver(DriverConfigurazioneDB driver) {
- this.driver = driver;
- }
-
- protected long countAllarmi(String tipologiaRicerca, Boolean enabled, StatoAllarme stato, Boolean acknowledged, String nomeAllarme,
- List<IDSoggetto> listSoggettiProprietariAbilitati, List<IDServizio> listIDServizioAbilitati,
- List<String> tipoSoggettiByProtocollo, List<String> tipoServiziByProtocollo,
- IDSoggetto idSoggettoProprietario, List<IDServizio> listIDServizio) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
-
- Connection con = null;
- ResultSet rs = null;
- PreparedStatement stm = null;
-
- if (this.driver.atomica) {
- try {
- con = this.driver.getConnectionFromDatasource("countAllarmi");
- } catch (Exception e) {
- throw new DriverConfigurazioneException("[DriverConfigurazioneDB::countAllarmi] Exception accedendo al datasource :" + e.getMessage(),e);
- }
- } else
- con = this.driver.globalConnection;
- try {
-
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.ALLARMI);
- sqlQueryObject.addSelectCountField(CostantiDB.ALLARMI + ".id", "numeroAllarmi");
- sqlQueryObject.setANDLogicOperator(true);
-
- _setExpressionAllarmi(sqlQueryObject, tipologiaRicerca, enabled, stato, acknowledged, nomeAllarme,
- listSoggettiProprietariAbilitati, listIDServizioAbilitati,
- tipoSoggettiByProtocollo, tipoServiziByProtocollo,
- idSoggettoProprietario, listIDServizio);
-
- String sqlQuery = sqlQueryObject.createSQLQuery();
- stm = con.prepareStatement(sqlQuery);
-
- sqlQuery = _setExpressionAllarmiValues(stm, sqlQuery,
- tipologiaRicerca, enabled, stato, acknowledged, nomeAllarme,
- listSoggettiProprietariAbilitati, listIDServizioAbilitati,
- tipoSoggettiByProtocollo, tipoServiziByProtocollo,
- idSoggettoProprietario, listIDServizio);
- this.driver.logDebug("eseguo query: " + sqlQuery);
-
- rs = stm.executeQuery();
- long numeroAllarmi = 0;
- if(rs.next()) {
-
- numeroAllarmi = rs.getLong("numeroAllarmi");
- }
- rs.close(); rs=null;
- stm.close(); stm = null;
- return numeroAllarmi;
-
- } catch (Exception se) {
- throw new DriverConfigurazioneException("[DriverConfigurazioneDB::countAllarmi] Exception: " + se.getMessage(),se);
- } finally {
- //Chiudo statement and resultset
- JDBCUtilities.closeResources(rs, stm);
- this.driver.closeConnection(con);
- }
-
- }
-
- protected List<Allarme> findAllAllarmi(String tipologiaRicerca, Boolean enabled, StatoAllarme stato, Boolean acknowledged, String nomeAllarme,
- List<IDSoggetto> listSoggettiProprietariAbilitati, List<IDServizio> listIDServizioAbilitati,
- List<String> tipoSoggettiByProtocollo, List<String> tipoServiziByProtocollo,
- IDSoggetto idSoggettoProprietario, List<IDServizio> listIDServizio,
- Integer offset, Integer limit) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
-
- Connection con = null;
- ResultSet rs = null;
- PreparedStatement stm = null;
-
- if (this.driver.atomica) {
- try {
- con = this.driver.getConnectionFromDatasource("findAllAllarmi");
- } catch (Exception e) {
- throw new DriverConfigurazioneException("[DriverConfigurazioneDB::findAllAllarmi] Exception accedendo al datasource :" + e.getMessage(),e);
- }
- } else
- con = this.driver.globalConnection;
- try {
-
- List<Allarme> list = new ArrayList<Allarme>();
-
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.ALLARMI);
- sqlQueryObject.addSelectField(CostantiDB.ALLARMI + ".id");
- sqlQueryObject.addSelectField(CostantiDB.ALLARMI + ".alias");
- sqlQueryObject.setANDLogicOperator(true);
-
- _setExpressionAllarmi(sqlQueryObject, tipologiaRicerca, enabled, stato, acknowledged, nomeAllarme,
- listSoggettiProprietariAbilitati, listIDServizioAbilitati,
- tipoSoggettiByProtocollo, tipoServiziByProtocollo,
- idSoggettoProprietario, listIDServizio);
-
- sqlQueryObject.addOrderBy("alias");
-
- if(offset!=null) {
- sqlQueryObject.setOffset(offset);
- }
- if(limit!=null) {
- sqlQueryObject.setLimit(limit);
- }
-
- String sqlQuery = sqlQueryObject.createSQLQuery();
- stm = con.prepareStatement(sqlQuery);
- sqlQuery = _setExpressionAllarmiValues(stm, sqlQuery,
- tipologiaRicerca, enabled, stato, acknowledged, nomeAllarme,
- listSoggettiProprietariAbilitati, listIDServizioAbilitati,
- tipoSoggettiByProtocollo, tipoServiziByProtocollo,
- idSoggettoProprietario, listIDServizio);
- this.driver.logDebug("eseguo query: " + sqlQuery);
-
- rs = stm.executeQuery();
- while(rs.next()) {
-
- long idAllarme = rs.getLong("id");
- list.add(AllarmiDriverUtils.getAllarme(idAllarme, con, this.driver.log, this.driver.tipoDB));
-
- }
- rs.close(); rs=null;
- stm.close(); stm = null;
- return list;
-
- } catch (Exception se) {
- throw new DriverConfigurazioneException("[DriverConfigurazioneDB::findAllAllarmi] Exception: " + se.getMessage(),se);
- } finally {
- //Chiudo statement and resultset
- JDBCUtilities.closeResources(rs, stm);
- this.driver.closeConnection(con);
- }
-
- }
-
- private void _setExpressionAllarmi(ISQLQueryObject sqlQueryObject, String tipologiaRicerca, Boolean enabled, StatoAllarme stato, Boolean acknowledged, String nomeAllarme,
- List<IDSoggetto> listSoggettiProprietariAbilitati, List<IDServizio> listIDServizioAbilitati,
- List<String> tipoSoggettiByProtocollo, List<String> tipoServiziByProtocollo,
- IDSoggetto idSoggettoProprietario, List<IDServizio> listIDServizio) throws Exception {
- if(enabled!=null){
- sqlQueryObject.addWhereCondition("enabled=?");
- }
- if(stato!=null){
- sqlQueryObject.addWhereCondition("stato=?");
- }
- if(acknowledged!=null){
- sqlQueryObject.addWhereCondition("acknowledged=?");
- }
-
- if(nomeAllarme!=null) {
- sqlQueryObject.addWhereLikeCondition("alias", nomeAllarme, true, true);
- }
-
- ISQLQueryObject sqlQueryObjectPorteApplicative = null;
- ISQLQueryObject sqlQueryObjectPorteDelegate = null;
-
- if(CostantiConfigurazione.ALLARMI_TIPOLOGIA_CONFIGURAZIONE.equals(tipologiaRicerca)) {
- sqlQueryObject.addWhereIsNullCondition("filtro_porta");
- }
-
- if(CostantiConfigurazione.ALLARMI_TIPOLOGIA_APPLICATIVA.equals(tipologiaRicerca) || CostantiConfigurazione.ALLARMI_TIPOLOGIA_SOLO_ASSOCIATE.equals(tipologiaRicerca)) {
-
- String alias_PA = "pa";
- String alias_SOGGETTI = "sog";
-
- sqlQueryObjectPorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,alias_PA);
- sqlQueryObjectPorteApplicative.setANDLogicOperator(true);
- sqlQueryObjectPorteApplicative.addWhereCondition(CostantiDB.ALLARMI+".filtro_ruolo=?");
- sqlQueryObjectPorteApplicative.addWhereCondition(CostantiDB.ALLARMI+".filtro_porta="+alias_PA+".nome_porta");
- sqlQueryObjectPorteApplicative.addWhereIsNotNullCondition(alias_PA+".tipo_servizio");
- sqlQueryObjectPorteApplicative.addWhereIsNotNullCondition(alias_PA+".servizio");
- sqlQueryObjectPorteApplicative.addWhereIsNotNullCondition(alias_PA+".versione_servizio");
-
- if( (listSoggettiProprietariAbilitati!=null && !listSoggettiProprietariAbilitati.isEmpty())
- ||
- (listIDServizioAbilitati!=null && !listIDServizioAbilitati.isEmpty())
- ||
- (tipoSoggettiByProtocollo!=null && !tipoSoggettiByProtocollo.isEmpty())
- ||
- idSoggettoProprietario!=null
- ||
- listIDServizio!=null && !listIDServizio.isEmpty()
- ) {
- sqlQueryObjectPorteApplicative.addFromTable(CostantiDB.SOGGETTI,alias_SOGGETTI);
- sqlQueryObjectPorteApplicative.addWhereCondition(alias_PA+".id_soggetto = "+alias_SOGGETTI+".id");
- }
-
-
-
- // Utenza permessi
-
- List<String> condizioniUtenza = new ArrayList<>();
-
- if(listSoggettiProprietariAbilitati!=null && !listSoggettiProprietariAbilitati.isEmpty()) {
- ISQLQueryObject sqlQueryObjectUtenzaSoggetto = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectUtenzaSoggetto.setANDLogicOperator(true);
- List<String> condizioni = new ArrayList<>();
- for (@SuppressWarnings("unused") IDSoggetto idSoggetto : listSoggettiProprietariAbilitati) {
- ISQLQueryObject sqlQueryObjectSoggetto = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectSoggetto.setANDLogicOperator(true);
- sqlQueryObjectSoggetto.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
- sqlQueryObjectSoggetto.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
- condizioni.add(sqlQueryObjectSoggetto.createSQLConditions());
- }
- sqlQueryObjectUtenzaSoggetto.addWhereCondition(false, condizioni.toArray(new String[condizioni.size()]));
-
- condizioniUtenza.add(sqlQueryObjectUtenzaSoggetto.createSQLConditions());
- }
- if(listIDServizioAbilitati!=null && !listIDServizioAbilitati.isEmpty()) {
- ISQLQueryObject sqlQueryObjectUtenzaServizio = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectUtenzaServizio.setANDLogicOperator(true);
- List<String> condizioni = new ArrayList<>();
- for (@SuppressWarnings("unused") IDServizio idServizio : listIDServizioAbilitati) {
- ISQLQueryObject sqlQueryObjectServizio = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectServizio.setANDLogicOperator(true);
- sqlQueryObjectServizio.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PA+".tipo_servizio = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PA+".servizio = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PA+".versione_servizio = ?");
- condizioni.add(sqlQueryObjectServizio.createSQLConditions());
- }
- sqlQueryObjectUtenzaServizio.addWhereCondition(false, condizioni.toArray(new String[condizioni.size()]));
-
- condizioniUtenza.add(sqlQueryObjectUtenzaServizio.createSQLConditions());
- }
-
- if(!condizioniUtenza.isEmpty()) {
- sqlQueryObjectPorteApplicative.addWhereCondition(false, condizioniUtenza.toArray(new String[condizioniUtenza.size()]));
- }
-
- // protocollo
- if(tipoSoggettiByProtocollo!=null && !tipoSoggettiByProtocollo.isEmpty()) {
- sqlQueryObjectPorteApplicative.addWhereINCondition(alias_SOGGETTI+".tipo_soggetto", true, tipoSoggettiByProtocollo.toArray(new String[tipoSoggettiByProtocollo.size()]));
- }
- if(tipoServiziByProtocollo!=null && !tipoServiziByProtocollo.isEmpty()) {
- sqlQueryObjectPorteApplicative.addWhereINCondition(alias_PA+".tipo_servizio", true, tipoServiziByProtocollo.toArray(new String[tipoServiziByProtocollo.size()]));
- }
-
- // soggetto proprietario
- if(idSoggettoProprietario!=null) {
- sqlQueryObjectPorteApplicative.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
- sqlQueryObjectPorteApplicative.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
- }
-
- // servizi
- if(listIDServizio!=null && !listIDServizio.isEmpty()) {
-
- if(listIDServizio.size()==1) {
- sqlQueryObjectPorteApplicative.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
- sqlQueryObjectPorteApplicative.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
- sqlQueryObjectPorteApplicative.addWhereCondition(alias_PA+".tipo_servizio = ?");
- sqlQueryObjectPorteApplicative.addWhereCondition(alias_PA+".servizio = ?");
- sqlQueryObjectPorteApplicative.addWhereCondition(alias_PA+".versione_servizio = ?");
- }
- else {
- List<String> condizioni = new ArrayList<>();
- for (@SuppressWarnings("unused") IDServizio idServizio : listIDServizio) {
- ISQLQueryObject sqlQueryObjectServizio = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectServizio.setANDLogicOperator(true);
- sqlQueryObjectServizio.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PA+".tipo_servizio = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PA+".servizio = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PA+".versione_servizio = ?");
- condizioni.add(sqlQueryObjectServizio.createSQLConditions());
- }
- sqlQueryObjectPorteApplicative.addWhereCondition(false, condizioni.toArray(new String[condizioni.size()]));
- }
-
- }
-
- }
-
- if(CostantiConfigurazione.ALLARMI_TIPOLOGIA_DELEGATA.equals(tipologiaRicerca) || CostantiConfigurazione.ALLARMI_TIPOLOGIA_SOLO_ASSOCIATE.equals(tipologiaRicerca)) {
-
- String alias_PD = "pd";
- String alias_SOGGETTI = "sog";
-
- sqlQueryObjectPorteDelegate = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectPorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE,alias_PD);
- sqlQueryObjectPorteDelegate.setANDLogicOperator(true);
- sqlQueryObjectPorteDelegate.addWhereCondition(CostantiDB.ALLARMI+".filtro_ruolo=?");
- sqlQueryObjectPorteDelegate.addWhereCondition(CostantiDB.ALLARMI+".filtro_porta="+alias_PD+".nome_porta");
- sqlQueryObjectPorteDelegate.addWhereIsNotNullCondition(alias_PD+".tipo_soggetto_erogatore");
- sqlQueryObjectPorteDelegate.addWhereIsNotNullCondition(alias_PD+".nome_soggetto_erogatore");
- sqlQueryObjectPorteDelegate.addWhereIsNotNullCondition(alias_PD+".tipo_servizio");
- sqlQueryObjectPorteDelegate.addWhereIsNotNullCondition(alias_PD+".nome_servizio");
- sqlQueryObjectPorteDelegate.addWhereIsNotNullCondition(alias_PD+".versione_servizio");
-
- if( (listSoggettiProprietariAbilitati!=null && !listSoggettiProprietariAbilitati.isEmpty())
- ||
- (tipoSoggettiByProtocollo!=null && !tipoSoggettiByProtocollo.isEmpty())
- ||
- (tipoServiziByProtocollo!=null && !tipoServiziByProtocollo.isEmpty())
- ||
- idSoggettoProprietario!=null
- ) {
- sqlQueryObjectPorteDelegate.addFromTable(CostantiDB.SOGGETTI,alias_SOGGETTI);
- sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".id_soggetto = "+alias_SOGGETTI+".id");
- }
-
-
-
- // Utenza permessi
-
- List<String> condizioniUtenza = new ArrayList<>();
-
- if(listSoggettiProprietariAbilitati!=null && !listSoggettiProprietariAbilitati.isEmpty()) {
- ISQLQueryObject sqlQueryObjectUtenzaSoggetto = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectUtenzaSoggetto.setANDLogicOperator(true);
- List<String> condizioni = new ArrayList<>();
- for (@SuppressWarnings("unused") IDSoggetto idSoggetto : listSoggettiProprietariAbilitati) {
- ISQLQueryObject sqlQueryObjectSoggetto = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectSoggetto.setANDLogicOperator(true);
- sqlQueryObjectSoggetto.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
- sqlQueryObjectSoggetto.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
- condizioni.add(sqlQueryObjectSoggetto.createSQLConditions());
- }
- sqlQueryObjectUtenzaSoggetto.addWhereCondition(false, condizioni.toArray(new String[condizioni.size()]));
-
- condizioniUtenza.add(sqlQueryObjectUtenzaSoggetto.createSQLConditions());
- }
- if(listIDServizioAbilitati!=null && !listIDServizioAbilitati.isEmpty()) {
- ISQLQueryObject sqlQueryObjectUtenzaServizio = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectUtenzaServizio.setANDLogicOperator(true);
- List<String> condizioni = new ArrayList<>();
- for (@SuppressWarnings("unused") IDServizio idServizio : listIDServizioAbilitati) {
- ISQLQueryObject sqlQueryObjectServizio = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectServizio.setANDLogicOperator(true);
- sqlQueryObjectServizio.addWhereCondition(alias_PD+".tipo_soggetto_erogatore = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PD+".nome_soggetto_erogatore = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PD+".tipo_servizio = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PD+".nome_servizio = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PD+".versione_servizio = ?");
- condizioni.add(sqlQueryObjectServizio.createSQLConditions());
- }
- sqlQueryObjectUtenzaServizio.addWhereCondition(false, condizioni.toArray(new String[condizioni.size()]));
-
- condizioniUtenza.add(sqlQueryObjectUtenzaServizio.createSQLConditions());
- }
-
- if(!condizioniUtenza.isEmpty()) {
- sqlQueryObjectPorteDelegate.addWhereCondition(false, condizioniUtenza.toArray(new String[condizioniUtenza.size()]));
- }
-
- // protocollo
- if(tipoSoggettiByProtocollo!=null && !tipoSoggettiByProtocollo.isEmpty()) {
- sqlQueryObjectPorteDelegate.addWhereINCondition(alias_SOGGETTI+".tipo_soggetto", true, tipoSoggettiByProtocollo.toArray(new String[tipoSoggettiByProtocollo.size()]));
- sqlQueryObjectPorteDelegate.addWhereINCondition(alias_PD+".tipo_soggetto_erogatore", true, tipoSoggettiByProtocollo.toArray(new String[tipoSoggettiByProtocollo.size()]));
- }
- if(tipoServiziByProtocollo!=null && !tipoServiziByProtocollo.isEmpty()) {
- sqlQueryObjectPorteDelegate.addWhereINCondition(alias_PD+".tipo_servizio", true, tipoServiziByProtocollo.toArray(new String[tipoServiziByProtocollo.size()]));
- }
-
- // soggetto proprietario
- if(idSoggettoProprietario!=null) {
- sqlQueryObjectPorteDelegate.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
- sqlQueryObjectPorteDelegate.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
- }
-
- // servizi
- if(listIDServizio!=null && !listIDServizio.isEmpty()) {
-
- if(listIDServizio.size()==1) {
- sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".tipo_soggetto_erogatore = ?");
- sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".nome_soggetto_erogatore = ?");
- sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".tipo_servizio = ?");
- sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".nome_servizio = ?");
- sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".versione_servizio = ?");
- }
- else {
- List<String> condizioni = new ArrayList<>();
- for (@SuppressWarnings("unused") IDServizio idServizio : listIDServizio) {
- ISQLQueryObject sqlQueryObjectServizio = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectServizio.setANDLogicOperator(true);
- sqlQueryObjectServizio.addWhereCondition(alias_PD+".tipo_soggetto_erogatore = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PD+".nome_soggetto_erogatore = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PD+".tipo_servizio = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PD+".nome_servizio = ?");
- sqlQueryObjectServizio.addWhereCondition(alias_PD+".versione_servizio = ?");
- condizioni.add(sqlQueryObjectServizio.createSQLConditions());
- }
- sqlQueryObjectPorteDelegate.addWhereCondition(false, condizioni.toArray(new String[condizioni.size()]));
- }
-
- }
-
- }
-
- if(sqlQueryObjectPorteApplicative!=null && sqlQueryObjectPorteDelegate!=null) {
- ISQLQueryObject sqlQueryObjectOR = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectOR.setANDLogicOperator(false);
- sqlQueryObjectOR.addWhereExistsCondition(false, sqlQueryObjectPorteApplicative);
- sqlQueryObjectOR.addWhereExistsCondition(false, sqlQueryObjectPorteDelegate);
- sqlQueryObject.addWhereCondition(sqlQueryObjectOR.createSQLConditions());
- }
- else if(sqlQueryObjectPorteApplicative!=null) {
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectPorteApplicative);
- }
- else if(sqlQueryObjectPorteDelegate!=null) {
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectPorteDelegate);
- }
-
- }
- private String _setExpressionAllarmiValues(PreparedStatement stm, String query,
- String tipologiaRicerca,Boolean enabled, StatoAllarme stato, Boolean acknowledged, String nomeAllarme,
- List<IDSoggetto> listSoggettiProprietariAbilitati, List<IDServizio> listIDServizioAbilitati,
- List<String> tipoSoggettiByProtocollo, List<String> tipoServiziByProtocollo,
- IDSoggetto idSoggettoProprietario, List<IDServizio> listIDServizio) throws Exception {
- int index = 1;
- if(enabled!=null){
- int v = enabled? CostantiDB.TRUE : CostantiDB.FALSE;
- stm.setInt(index++, v);
- query = query.replaceFirst("\\?", v+"");
- }
- if(stato!=null){
- int v = AllarmiConverterUtils.toIntegerValue(stato);
- stm.setInt(index++,v);
- query = query.replaceFirst("\\?", v+"");
- }
- if(acknowledged!=null){
- int v = acknowledged? CostantiDB.TRUE : CostantiDB.FALSE;
- stm.setInt(index++, v);
- query = query.replaceFirst("\\?", v+"");
- }
-
- if(nomeAllarme!=null) {
- // nop
- }
-
- // if(CostantiConfigurazione.ALLARMI_TIPOLOGIA_CONFIGURAZIONE.equals(tipologiaRicerca)) {
- // // nop
- // }
-
- if(CostantiConfigurazione.ALLARMI_TIPOLOGIA_APPLICATIVA.equals(tipologiaRicerca) || CostantiConfigurazione.ALLARMI_TIPOLOGIA_SOLO_ASSOCIATE.equals(tipologiaRicerca)) {
-
- stm.setString(index++, RuoloPorta.APPLICATIVA.getValue()); query = query.replaceFirst("\\?", "'"+RuoloPorta.APPLICATIVA.getValue()+"'");
-
- // Utenza permessi
- if(listSoggettiProprietariAbilitati!=null && !listSoggettiProprietariAbilitati.isEmpty()) {
- for (IDSoggetto idSoggetto : listSoggettiProprietariAbilitati) {
- stm.setString(index++, idSoggetto.getTipo()); query = query.replaceFirst("\\?", "'"+idSoggetto.getTipo()+"'");
- stm.setString(index++, idSoggetto.getNome()); query = query.replaceFirst("\\?", "'"+idSoggetto.getNome()+"'");
- }
- }
- if(listIDServizioAbilitati!=null && !listIDServizioAbilitati.isEmpty()) {
- for (IDServizio idServizio : listIDServizioAbilitati) {
- stm.setString(index++, idServizio.getSoggettoErogatore().getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getTipo()+"'");
- stm.setString(index++, idServizio.getSoggettoErogatore().getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getNome()+"'");
- stm.setString(index++, idServizio.getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getTipo()+"'");
- stm.setString(index++, idServizio.getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getNome()+"'");
- stm.setInt(index++, idServizio.getVersione()); query = query.replaceFirst("\\?", idServizio.getVersione()+"");
- }
- }
- // protocollo
- // nop
-
- // soggetto proprietario
- if(idSoggettoProprietario!=null) {
- stm.setString(index++, idSoggettoProprietario.getTipo()); query = query.replaceFirst("\\?", "'"+idSoggettoProprietario.getTipo()+"'");
- stm.setString(index++, idSoggettoProprietario.getNome()); query = query.replaceFirst("\\?", "'"+idSoggettoProprietario.getNome()+"'");
- }
-
- // servizi
- if(listIDServizio!=null && !listIDServizio.isEmpty()) {
-
- if(listIDServizio.size()==1) {
- IDServizio idServizio = listIDServizio.get(0);
- stm.setString(index++, idServizio.getSoggettoErogatore().getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getTipo()+"'");
- stm.setString(index++, idServizio.getSoggettoErogatore().getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getNome()+"'");
- stm.setString(index++, idServizio.getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getTipo()+"'");
- stm.setString(index++, idServizio.getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getNome()+"'");
- stm.setInt(index++, idServizio.getVersione()); query = query.replaceFirst("\\?", idServizio.getVersione()+"");
- }
- else {
- for (IDServizio idServizio : listIDServizio) {
- stm.setString(index++, idServizio.getSoggettoErogatore().getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getTipo()+"'");
- stm.setString(index++, idServizio.getSoggettoErogatore().getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getNome()+"'");
- stm.setString(index++, idServizio.getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getTipo()+"'");
- stm.setString(index++, idServizio.getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getNome()+"'");
- stm.setInt(index++, idServizio.getVersione()); query = query.replaceFirst("\\?", idServizio.getVersione()+"");
- }
- }
-
- }
-
- }
-
- if(CostantiConfigurazione.ALLARMI_TIPOLOGIA_DELEGATA.equals(tipologiaRicerca) || CostantiConfigurazione.ALLARMI_TIPOLOGIA_SOLO_ASSOCIATE.equals(tipologiaRicerca)) {
-
- stm.setString(index++, RuoloPorta.DELEGATA.getValue()); query = query.replaceFirst("\\?", "'"+RuoloPorta.DELEGATA.getValue()+"'");
-
- // Utenza permessi
-
- if(listSoggettiProprietariAbilitati!=null && !listSoggettiProprietariAbilitati.isEmpty()) {
- for (IDSoggetto idSoggetto : listSoggettiProprietariAbilitati) {
- stm.setString(index++, idSoggetto.getTipo()); query = query.replaceFirst("\\?", "'"+idSoggetto.getTipo()+"'");
- stm.setString(index++, idSoggetto.getNome()); query = query.replaceFirst("\\?", "'"+idSoggetto.getNome()+"'");
- }
- }
- if(listIDServizioAbilitati!=null && !listIDServizioAbilitati.isEmpty()) {
- for (IDServizio idServizio : listIDServizioAbilitati) {
- stm.setString(index++, idServizio.getSoggettoErogatore().getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getTipo()+"'");
- stm.setString(index++, idServizio.getSoggettoErogatore().getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getNome()+"'");
- stm.setString(index++, idServizio.getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getTipo()+"'");
- stm.setString(index++, idServizio.getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getNome()+"'");
- stm.setInt(index++, idServizio.getVersione()); query = query.replaceFirst("\\?", idServizio.getVersione()+"");
- }
- }
-
- // protocollo
- // nop
-
- // soggetto proprietario
- if(idSoggettoProprietario!=null) {
- stm.setString(index++, idSoggettoProprietario.getTipo()); query = query.replaceFirst("\\?", "'"+idSoggettoProprietario.getTipo()+"'");
- stm.setString(index++, idSoggettoProprietario.getNome()); query = query.replaceFirst("\\?", "'"+idSoggettoProprietario.getNome()+"'");
- }
-
- // servizi
- if(listIDServizio!=null && !listIDServizio.isEmpty()) {
-
- if(listIDServizio.size()==1) {
- IDServizio idServizio = listIDServizio.get(0);
- stm.setString(index++, idServizio.getSoggettoErogatore().getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getTipo()+"'");
- stm.setString(index++, idServizio.getSoggettoErogatore().getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getNome()+"'");
- stm.setString(index++, idServizio.getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getTipo()+"'");
- stm.setString(index++, idServizio.getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getNome()+"'");
- stm.setInt(index++, idServizio.getVersione()); query = query.replaceFirst("\\?", idServizio.getVersione()+"");
- }
- else {
- for (IDServizio idServizio : listIDServizio) {
- stm.setString(index++, idServizio.getSoggettoErogatore().getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getTipo()+"'");
- stm.setString(index++, idServizio.getSoggettoErogatore().getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getSoggettoErogatore().getNome()+"'");
- stm.setString(index++, idServizio.getTipo()); query = query.replaceFirst("\\?", "'"+idServizio.getTipo()+"'");
- stm.setString(index++, idServizio.getNome()); query = query.replaceFirst("\\?", "'"+idServizio.getNome()+"'");
- stm.setInt(index++, idServizio.getVersione()); query = query.replaceFirst("\\?", idServizio.getVersione()+"");
- }
- }
-
- }
-
- }
-
- return query;
- }
- }