454 lines
29 KiB
Java
454 lines
29 KiB
Java
package it.valueteam.gnp.manager;
|
||
|
||
import it.valueteam.gnp.dao.db.hb.*;
|
||
import it.valueteam.gnp.exception.MessageToDiscardException;
|
||
import it.valueteam.gnp.exception.StateTransitionNotPossibleException;
|
||
import it.valueteam.gnp.log.ProcessLogger;
|
||
import it.valueteam.gnp.obj.*;
|
||
import it.valueteam.gnp.obj.olo.OLOMap;
|
||
import it.valueteam.gnp.systemcontroller.ControllerFactory;
|
||
import it.valueteam.gnp.systemcontroller.crm.AbstractCRMController;
|
||
import it.valueteam.gnp.systemcontroller.crm.SistemaCrmIF;
|
||
import it.valueteam.gnp.systemcontroller.formatcontroller.dbss.DBSSController;
|
||
import it.valueteam.gnp.systemcontroller.olo.OLOController;
|
||
import it.valueteam.gnp.utility.DoubleDonatingStateManager;
|
||
import it.valueteam.gnp.utility.Func;
|
||
import it.valueteam.gnp.utility.StateManager;
|
||
|
||
import java.util.Date;
|
||
|
||
public class RequestDoppioDonatingManager {
|
||
|
||
private RequestDoppioDonatingManager() {
|
||
}
|
||
|
||
/**
|
||
* avanzaStatoValidataOK
|
||
*
|
||
* @param richiestaRec GnpGestioneRichiestaRec
|
||
* @param log ProcessLogger
|
||
*/
|
||
public static void avanzaStatoInInviata(GnpDoppioDonatingOloBridge richiestaDD, String nomeFile, ProcessLogger log) throws StateTransitionNotPossibleException, Exception {
|
||
log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInInviata - idRichiesta: " + richiestaDD.getIdRichiesta() + " nome file: " + nomeFile);
|
||
int statoPartenza = richiestaDD.getStato().intValue();
|
||
GnpDoppioDonatingOloBridgeDAO ddBridgeDAO = new GnpDoppioDonatingOloBridgeDAO();
|
||
|
||
try {
|
||
int status = DoubleDonatingStateManager.CheckTransition(richiestaDD, StatoRichiestaDoppioDonating.INVIATA);
|
||
if (status != DoubleDonatingStateManager.TRANSIZIONE_NON_POSSIBILE) {
|
||
// salvo la richiesta con stato INVIATA
|
||
richiestaDD.setStato((long) StatoRichiestaDoppioDonating.INVIATA);
|
||
ddBridgeDAO.merge(richiestaDD);
|
||
insertStoricoRichiestaDoppioDonating(statoPartenza, nomeFile, ApplicationCostants.IO_OUTPUT, richiestaDD);
|
||
} else {
|
||
log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - UNIQUE_ID - " +
|
||
richiestaDD.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) +
|
||
" IN STATO INVIATA");
|
||
|
||
if (StatoRichiestaDoppioDonating.isStatoFinale((long) statoPartenza)) {
|
||
throw new MessageToDiscardException("Messaggio scartato per richiesta in stato finale: " + richiestaDD.getIdRichiesta(), richiestaDD.getIdRichiesta().toString());
|
||
} else {
|
||
throw new StateTransitionNotPossibleException("StateTransitionNotPossibleException");
|
||
}
|
||
}
|
||
} catch (Exception ex) {
|
||
//0009 W - NON ESEGUITA TRANSIZIONE DI STATO UNIQUE_ID
|
||
log.write("0009", richiestaDD.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO INVIATA : " + ex.toString());
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* avanzaStatoInAcquisita
|
||
*
|
||
* @param crmInRec GnpCrmInRec
|
||
* @param flagBlackList
|
||
* @param log ProcessLogger
|
||
*/
|
||
public static void avanzaStatoInAccettata(GnpDoppioDonatingOloBridge richiestaDoppioDonating, String codiceSessioneOlo, ProcessLogger log) throws Exception {
|
||
log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInAcettata - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta());
|
||
GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO();
|
||
boolean flagFonia = richiestaDoppioDonating.getTipoServizio().equals(ApplicationCostants.TIPO_CHIAMATA_FONIA_F);
|
||
GnpRichiesteRecDAO richDAO = new GnpRichiesteRecDAO();
|
||
GnpRichiesteRec richiesta = richDAO.findById(richiestaDoppioDonating.getIdRichiesta());
|
||
int statoPartenza = richiestaDoppioDonating.getStato().intValue();
|
||
|
||
try {
|
||
int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.ACCETTATA);
|
||
|
||
if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) {
|
||
// salvo la richiesta con stato validating
|
||
richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.ACCETTATA);
|
||
recDoppioDonatingDAO.merge(richiestaDoppioDonating);
|
||
|
||
log.write("0008", richiestaDoppioDonating.getUniqueId().toString() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO ACCETTATA");
|
||
insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating);
|
||
|
||
if (flagFonia) {
|
||
if (DBSSMap.PIATTAFORMA_DBSS.equals(richiesta.getPiattaformaProvenienza())) {
|
||
DBSSController dbssController = DBSSController.getInstance();
|
||
dbssController.notificaVariazioneStatoRichiestaDoppioDonating(
|
||
richiesta.getIdRichiesta(),
|
||
DBSSMap.CHIAMATA_FONIA,
|
||
DBSSMap.EVENTO_ACCETTAZIONE_OLO,
|
||
DBSSMap.ESITO_OK,
|
||
null, codiceSessioneOlo);
|
||
} else {
|
||
AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiesta.getPiattaformaProvenienza());
|
||
crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiesta.getIdRichiesta(),
|
||
CRMMap.CHIAMATA_FONIA,
|
||
CRMMap.EVENTO_ACCETTAZIONE_OLO,
|
||
CRMMap.ESITO_OK,
|
||
null);
|
||
}
|
||
} else {
|
||
if (DBSSMap.PIATTAFORMA_DBSS.equals(richiesta.getPiattaformaProvenienza())) {
|
||
DBSSController dbssController = DBSSController.getInstance();
|
||
dbssController.notificaVariazioneStatoRichiestaDoppioDonating(
|
||
richiesta.getIdRichiesta(),
|
||
DBSSMap.CHIAMATA_ADSL,
|
||
DBSSMap.EVENTO_ACCETTAZIONE_OLO,
|
||
DBSSMap.ESITO_OK,
|
||
null, codiceSessioneOlo);
|
||
} else {
|
||
AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiesta.getPiattaformaProvenienza());
|
||
crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiesta.getIdRichiesta(),
|
||
CRMMap.CHIAMATA_ADSL,
|
||
CRMMap.EVENTO_ACCETTAZIONE_OLO,
|
||
CRMMap.ESITO_OK,
|
||
null);
|
||
}
|
||
}
|
||
|
||
} else {
|
||
log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - UNIQUE_ID - " +
|
||
richiestaDoppioDonating.getUniqueId() + " DA STATO : " +
|
||
StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) +
|
||
" IN STATO ACCETTATA");
|
||
if (StatoRichiestaDoppioDonating.isStatoFinale((long) statoPartenza)) {
|
||
throw new MessageToDiscardException("Messaggio scartato per richiesta in stato finale: " + richiesta.getIdRichiesta(), richiesta.getIdRichiesta().toString());
|
||
} else {
|
||
throw new StateTransitionNotPossibleException("StateTransitionNotPossibleException");
|
||
}
|
||
}
|
||
} catch (Exception ex) {
|
||
//0009 W - NON ESEGUITA TRANSIZIONE DI STATO UNIQUE_ID
|
||
log.write("0009", richiestaDoppioDonating.getUniqueId() + " DA STATO : " +
|
||
StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) +
|
||
" IN STATO ACCETTATA : " + ex.toString());
|
||
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
public static void avanzaStatoInDaReinviare(GnpDoppioDonatingOloBridge richiestaDoppioDonating, int codiceCausale, ProcessLogger log) throws Exception {
|
||
log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInDaReinviare - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta());
|
||
int statoPartenza = richiestaDoppioDonating.getStato().intValue();
|
||
GnpRichiesteRecDAO recDAO = new GnpRichiesteRecDAO();
|
||
GnpRichiesteRec richiestaRec = null;
|
||
GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO();
|
||
try {
|
||
// recuper la richiesta di business di appartenenza
|
||
richiestaRec = recDAO.findById(richiestaDoppioDonating.getIdRichiesta());
|
||
int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.DA_REINVIARE);
|
||
|
||
if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) {
|
||
// salvo la richiesta con stato DA_REINVIARE
|
||
richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.DA_REINVIARE);
|
||
richiestaDoppioDonating.setDaInviare((long) 1);
|
||
if (statoPartenza == StatoRichiestaDoppioDonating.INVIATA) {
|
||
richiestaDoppioDonating.setDataReinvioOlo(Func.calcolaDataReinvioOLO(ApplicationCostants.GIORNI_PER_KO_SUPERMENTO_SOGLIA_VER_FORMALI));
|
||
|
||
if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) {
|
||
DBSSController dbssController = DBSSController.getInstance();
|
||
dbssController.notificaDbss(richiestaRec.getIdRichiesta(), DBSSMap.NOTIFICA_RICICLO);
|
||
} else {
|
||
//NOTIFICA A CRM PER SUPERAMENTO SOGLIA, POI CONTROLLO LATO CRM CONTROLLER SE LA NOTIFICA E' GI<47> STATA INVIATA
|
||
SistemaCrmIF crmController = ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza());
|
||
crmController.notificaCRM(richiestaRec.getIdRichiesta(), CRMMap.NOTIFICA_RICICLO);
|
||
}
|
||
|
||
} else {// provengo dallo stato ACCETTATA
|
||
richiestaDoppioDonating.setDataReinvioOlo(Func.calcolaDataReinvioOLO(ApplicationCostants.GIORNI_PER_KO_TRASLOCO_VER_GESTIONALI));
|
||
int numKOTrasloco = richiestaDoppioDonating.getNumKoTraslocoOlo() == null ? 0 : richiestaDoppioDonating.getNumKoTraslocoOlo().intValue();
|
||
richiestaDoppioDonating.setNumKoTraslocoOlo((long) (numKOTrasloco + 1));
|
||
// cristiano modifica per X11 2012
|
||
if (richiestaDoppioDonating.getNumKoTraslocoOlo() == 1) {
|
||
if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) {
|
||
DBSSController dbssController = DBSSController.getInstance();
|
||
dbssController.notificaDbss(richiestaRec.getIdRichiesta(), DBSSMap.NOTIFICA_RICICLO_TRASLOCO_OLO);
|
||
} else {
|
||
SistemaCrmIF crmController = ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza());
|
||
crmController.notificaCRM(richiestaDoppioDonating.getIdRichiesta(), CRMMap.NOTIFICA_RICICLO_TRASLOCO_OLO);
|
||
}
|
||
}
|
||
}
|
||
|
||
recDoppioDonatingDAO.merge(richiestaDoppioDonating);
|
||
log.write("0008", "RICHIESTA DOPPIO DONATING: " + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza)
|
||
+ " IN STATO DA_REINVIARE");
|
||
insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating);
|
||
|
||
} else {
|
||
log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - ID_RICHIESTA - "
|
||
+ richiestaDoppioDonating.getUniqueId()
|
||
+ " DA STATO : "
|
||
+ StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO DA_REINVIARE. "
|
||
+ " STATO DELLA RICHIESTA DI BUSINESS: " + (richiestaRec != null ?
|
||
StatoRichiestaRec.getStatoDescr(richiestaRec.getStato().intValue()) :
|
||
"SCONOSCIUTO"));
|
||
|
||
if (StatoRichiestaDoppioDonating.isStatoFinale((long) statoPartenza)) {
|
||
throw new MessageToDiscardException("Messaggio scartato per richiesta in stato finale: " + richiestaRec.getIdRichiesta(), richiestaRec.getIdRichiesta().toString());
|
||
} else {
|
||
throw new StateTransitionNotPossibleException("StateTransitionNotPossibleException");
|
||
}
|
||
}
|
||
} catch (Exception ex) {
|
||
// 0009 W - NON ESEGUITA TRANSIZIONE DI STATO UNIQUE_ID
|
||
log.write("0009", richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza)
|
||
+ " IN STATO DA_REINVIARE : " + ex.toString());
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
public static void avanzaStatoInAccettataKO(GnpDoppioDonatingOloBridge richiestaDoppioDonating, int codiceCausaleKoOLO, ProcessLogger log) throws Exception {
|
||
log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInAccettataKO - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta());
|
||
int statoPartenza = richiestaDoppioDonating.getStato().intValue();
|
||
//boolean flagFonia=true;
|
||
// correzione bug 18-08-2009
|
||
boolean flagFonia = richiestaDoppioDonating.getTipoServizio().equals(ApplicationCostants.TIPO_CHIAMATA_FONIA_F);
|
||
GnpRichiesteRecDAO recDAO = new GnpRichiesteRecDAO();
|
||
GnpRichiesteRec richiestaRec = null;
|
||
GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = null;
|
||
try {
|
||
|
||
int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.ACCETTATAKO);
|
||
if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) {
|
||
// recupero la richiesta di business a cui <20> associata questa di doppio donating
|
||
richiestaRec = recDAO.findById(richiestaDoppioDonating.getIdRichiesta());
|
||
|
||
recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO();
|
||
richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.ACCETTATAKO);
|
||
recDoppioDonatingDAO.merge(richiestaDoppioDonating);
|
||
|
||
log.write("0008", richiestaDoppioDonating.getUniqueId().toString() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO ACCETTATAKO");
|
||
insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating);
|
||
|
||
if (flagFonia) {
|
||
if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) {
|
||
DBSSController dbssController = DBSSController.getInstance();
|
||
dbssController.notificaVariazioneStatoRichiestaDoppioDonating(
|
||
richiestaDoppioDonating.getIdRichiesta(),
|
||
DBSSMap.CHIAMATA_FONIA,
|
||
DBSSMap.EVENTO_ACCETTAZIONE_OLO,
|
||
DBSSMap.ESITO_KO,
|
||
Integer.toString(codiceCausaleKoOLO), null);
|
||
} else {
|
||
AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza());
|
||
crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiestaDoppioDonating.getIdRichiesta(),
|
||
CRMMap.CHIAMATA_FONIA,
|
||
CRMMap.EVENTO_ACCETTAZIONE_OLO,
|
||
CRMMap.ESITO_KO,
|
||
Integer.toString(codiceCausaleKoOLO));
|
||
}
|
||
} else {
|
||
if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) {
|
||
DBSSController dbssController = DBSSController.getInstance();
|
||
dbssController.notificaVariazioneStatoRichiestaDoppioDonating(
|
||
richiestaDoppioDonating.getIdRichiesta(),
|
||
DBSSMap.CHIAMATA_ADSL,
|
||
DBSSMap.EVENTO_ACCETTAZIONE_OLO,
|
||
DBSSMap.ESITO_KO,
|
||
Integer.toString(codiceCausaleKoOLO), null);
|
||
} else {
|
||
AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza());
|
||
crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiestaDoppioDonating.getIdRichiesta(),
|
||
CRMMap.CHIAMATA_ADSL,
|
||
CRMMap.EVENTO_ACCETTAZIONE_OLO,
|
||
CRMMap.ESITO_KO,
|
||
Integer.toString(codiceCausaleKoOLO));
|
||
}
|
||
}
|
||
} else {
|
||
log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - ID_RICHIESTA - " + richiestaDoppioDonating.getUniqueId()
|
||
+ " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO ACCETTATAKO");
|
||
|
||
if (StatoRichiestaDoppioDonating.isStatoFinale((long) statoPartenza)) {
|
||
throw new MessageToDiscardException("Messaggio scartato per richiesta in stato finale: " + richiestaDoppioDonating.getIdRichiesta(), richiestaDoppioDonating.getIdRichiesta().toString());
|
||
} else {
|
||
throw new StateTransitionNotPossibleException("StateTransitionNotPossibleException");
|
||
}
|
||
}
|
||
} catch (Exception ex) {
|
||
// 0009 W - NON ESEGUITA TRANSIZIONE DI STATO ID_RICHIESTA
|
||
log.write("0009", "" + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO ACCETTATAKO : " + ex.toString());
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
public static void avanzaStatoInRifiutata(GnpDoppioDonatingOloBridge richiestaDoppioDonating, int codiceCausaleKoOLO, ProcessLogger log) throws Exception {
|
||
log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInRifiutata - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta());
|
||
int statoPartenza = richiestaDoppioDonating.getStato().intValue();
|
||
//boolean flagFonia=true;
|
||
//correzione bug 18-08-2009
|
||
boolean flagFonia = richiestaDoppioDonating.getTipoServizio().equals(ApplicationCostants.TIPO_CHIAMATA_FONIA_F);
|
||
GnpRichiesteRec richiestaRec = null;
|
||
GnpRichiesteRecDAO recDAO = new GnpRichiesteRecDAO();
|
||
GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = null;
|
||
try {
|
||
|
||
int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.RIFIUTATA);
|
||
if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) {
|
||
// recupero la richiesta di business a cui <20> associata questa di doppio donating
|
||
richiestaRec = recDAO.findById(richiestaDoppioDonating.getIdRichiesta());
|
||
|
||
// salvo la richiesta con stato ESPLETATA
|
||
recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO();
|
||
richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.RIFIUTATA);
|
||
|
||
// Se il rifiuto <20> per KO TRASLOCO, incrementa anche il numero di tentativi fatti
|
||
if (codiceCausaleKoOLO == ApplicationCostants.KO_TRASLOCO_VER_GESTIONALI) {
|
||
int numKoTrasloco = richiestaRec.getNumKoTraslocoOlo().intValue() + 1;
|
||
richiestaDoppioDonating.setNumKoTraslocoOlo((long) numKoTrasloco);
|
||
}
|
||
|
||
recDoppioDonatingDAO.merge(richiestaDoppioDonating);
|
||
log.write("0008", "" + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO RIFIUTATA");
|
||
insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating);
|
||
|
||
if (flagFonia) {
|
||
if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) {
|
||
DBSSController dbssController = DBSSController.getInstance();
|
||
dbssController.notificaVariazioneStatoRichiestaDoppioDonating(
|
||
richiestaDoppioDonating.getIdRichiesta(),
|
||
DBSSMap.CHIAMATA_FONIA,
|
||
DBSSMap.EVENTO_VALIDAZIONE_OLO,
|
||
DBSSMap.ESITO_KO,
|
||
Integer.toString(codiceCausaleKoOLO), null);
|
||
} else {
|
||
AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza());
|
||
crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiestaDoppioDonating.getIdRichiesta(),
|
||
CRMMap.CHIAMATA_FONIA,
|
||
CRMMap.EVENTO_VALIDAZIONE_OLO,
|
||
CRMMap.ESITO_KO,
|
||
Integer.toString(codiceCausaleKoOLO));
|
||
}
|
||
|
||
} else {
|
||
if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) {
|
||
DBSSController dbssController = DBSSController.getInstance();
|
||
dbssController.notificaVariazioneStatoRichiestaDoppioDonating(
|
||
richiestaDoppioDonating.getIdRichiesta(),
|
||
DBSSMap.CHIAMATA_ADSL,
|
||
DBSSMap.EVENTO_VALIDAZIONE_OLO,
|
||
DBSSMap.ESITO_KO,
|
||
Integer.toString(codiceCausaleKoOLO), null);
|
||
} else {
|
||
AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza());
|
||
crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiestaDoppioDonating.getIdRichiesta(),
|
||
CRMMap.CHIAMATA_ADSL,
|
||
CRMMap.EVENTO_VALIDAZIONE_OLO,
|
||
CRMMap.ESITO_KO,
|
||
Integer.toString(codiceCausaleKoOLO));
|
||
}
|
||
}
|
||
} else {
|
||
//0009 W - NON ESEGUITA TRANSIZIONE DI STATO
|
||
log.write("0009", richiestaDoppioDonating.getUniqueId() + " IN STATO RIFIUTATA");
|
||
if (StatoRichiestaDoppioDonating.isStatoFinale((long) statoPartenza)) {
|
||
throw new MessageToDiscardException("Messaggio scartato per richiesta in stato finale: " + richiestaDoppioDonating.getIdRichiesta(), richiestaDoppioDonating.getIdRichiesta().toString());
|
||
} else {
|
||
throw new StateTransitionNotPossibleException("StateTransitionNotPossibleException");
|
||
}
|
||
}
|
||
} catch (Exception ex) {
|
||
//0009 W - NON ESEGUITA TRANSIZIONE DI STATO
|
||
log.write("0009", richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO RIFIUTATA : " + ex.toString());
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
public static void avanzaStatoInValidata(GnpDoppioDonatingOloBridge richiestaDoppioDonating, ProcessLogger log) throws Exception {
|
||
log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInValidata - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta());
|
||
int statoPartenza = richiestaDoppioDonating.getStato().intValue();
|
||
GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = null;
|
||
int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.VALIDATA);
|
||
if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) {
|
||
recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO();
|
||
//per la notifica di emissione faccio l'update della DAC
|
||
richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.VALIDATA);
|
||
recDoppioDonatingDAO.merge(richiestaDoppioDonating);
|
||
insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating);
|
||
log.write("0008", "" + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO VALIDAT");
|
||
} else {
|
||
log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - UNIQUE_ID - " +
|
||
richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO VALIDATA");
|
||
}
|
||
}
|
||
|
||
public static void avanzaStatoInDisdetta(GnpDoppioDonatingOloBridge richiestaDoppioDonating, ProcessLogger log) throws Exception {
|
||
log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInDisdetta - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta());
|
||
int statoPartenza = richiestaDoppioDonating.getStato().intValue();
|
||
GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = null;
|
||
int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.DISDETTA);
|
||
if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) {
|
||
recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO();
|
||
|
||
if (notificaDisdetta(richiestaDoppioDonating)) {
|
||
OLOController.getInstance().notificaEventoDoppioDonating(
|
||
richiestaDoppioDonating,
|
||
OLOMap.TIPO_EVENTO_INTERRUZIONE_MIGRAZIONE,
|
||
richiestaDoppioDonating.getTipoServizio());
|
||
}
|
||
|
||
richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.DISDETTA);
|
||
recDoppioDonatingDAO.merge(richiestaDoppioDonating);
|
||
insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating);
|
||
log.write("0008", "" + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO DISDETTA");
|
||
} else {
|
||
log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - UNIQUE_ID - " +
|
||
richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO DISDETTA");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param stato_da
|
||
* @param richiestaddBridge
|
||
* @throws Exception
|
||
*/
|
||
public static void insertStoricoRichiestaDoppioDonating(int stato_da, String nomeFile, int i_o, GnpDoppioDonatingOloBridge richiestaDoppioDonating) throws Exception {
|
||
GnpStoricoRichiesteDdDAO richRec = new GnpStoricoRichiesteDdDAO();
|
||
//creo lo storico
|
||
GnpStoricoRichiesteDd storico = new GnpStoricoRichiesteDd();
|
||
storico.setIdRichiesta(richiestaDoppioDonating.getUniqueId());
|
||
storico.setNomeFile(nomeFile);
|
||
storico.setStatoDa((long) stato_da);
|
||
storico.setStatoA(richiestaDoppioDonating.getStato());
|
||
storico.setDfw(richiestaDoppioDonating.getDfw());
|
||
storico.setDac(richiestaDoppioDonating.getDac());
|
||
storico.setDataIO(new Date());
|
||
storico.setDataLavorazione(new Date());
|
||
storico.setIO((long) i_o);
|
||
richRec.save(storico);
|
||
}
|
||
|
||
/**
|
||
* Metodo che determina se bisogna notificare a OLO la disdetta della richiesta
|
||
*
|
||
* @param richiestaRec
|
||
* @param tipoDisdetta
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
private static boolean notificaDisdetta(GnpDoppioDonatingOloBridge richiestaDD) throws Exception {
|
||
switch (richiestaDD.getStato().intValue()) {
|
||
case StatoRichiestaDoppioDonating.INVIATA:
|
||
case StatoRichiestaDoppioDonating.ACCETTATA:
|
||
case StatoRichiestaDoppioDonating.VALIDATA:
|
||
return true;
|
||
}
|
||
|
||
return false;
|
||
}
|
||
} |