diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/AbstractCRMController.java b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/AbstractCRMController.java
index 9b91eabd..2d9e27a7 100644
--- a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/AbstractCRMController.java
+++ b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/AbstractCRMController.java
@@ -8,6 +8,8 @@ import java.util.List;
import it.valueteam.gnp.dao.db.hb.*;
import it.valueteam.gnp.dao.db.hb.crm.*;
import it.valueteam.gnp.manager.*;
+import it.valueteam.gnp.obj.*;
+
import it.valueteam.gnp.systemcontroller.olo.OLOControllerFENP;
import it.valueteam.gnp.utility.*;
import org.hibernate.StaleObjectStateException;
@@ -34,12 +36,6 @@ import it.valueteam.gnp.exception.infobus.IBSendException;
import it.valueteam.gnp.exception.xml.MalformedXmlException;
import it.valueteam.gnp.helper.MultiLineaHelper;
import it.valueteam.gnp.log.ProcessLogger;
-import it.valueteam.gnp.obj.ApplicationCostants;
-import it.valueteam.gnp.obj.CRMMap;
-import it.valueteam.gnp.obj.ProcessMapper;
-import it.valueteam.gnp.obj.StatoRichiestaDon;
-import it.valueteam.gnp.obj.StatoRichiestaDonNatOlo;
-import it.valueteam.gnp.obj.StatoRichiestaNPg35;
import it.valueteam.gnp.obj.jms.NotificationMessage;
import it.valueteam.gnp.obj.jms.NotificationMessageIF;
import it.valueteam.gnp.obj.jms.UniqueIdNotificationMessage;
@@ -50,6 +46,7 @@ import it.valueteam.gnp.systemcontroller.dbcfxgo.DbcfxgoController;
import it.valueteam.gnp.systemcontroller.formatcontroller.crm.AbstractCRMFormatController;
import it.valueteam.gnp.systemcontroller.formatcontroller.crm.CRMRFormatController;
import it.valueteam.gnp.systemcontroller.monitoraggio.E2EContoller;
+import tim.infobus.data.TID;
import javax.transaction.UserTransaction;
@@ -693,7 +690,11 @@ public abstract class AbstractCRMController extends SystemController implements
break;
case NotificationMessageIF.NotificationType_CRMB_ESITO_VERIFICA_DONOR_OUT_82:
- inviaNotificaEsitoDonorOut82(messaggio);
+ inviaNotificaN9CRMBDonorOut82(messaggio);
+ break;
+
+ case NotificationMessageIF.NotificationType_CRMB_DONOR_OUT_82:
+ inviaNotificaN10CRMBDonorOut82(messaggio);
break;
default:
@@ -872,8 +873,7 @@ public abstract class AbstractCRMController extends SystemController implements
"codice esito: " + codiceEsito + " - id richiesta: " + gnpCrmNotifyDonorOut.getCodiceRichiesta());
if (!codiceEsito.equals("0")) {
String descrizione = respObj.getDescrizioneEsito();
- throw new Exception("esito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: "
- + gnpCrmNotifyDonorOut.getCodiceRichiesta());
+ throw new Exception("esito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: " + gnpCrmNotifyDonorOut.getCodiceRichiesta());
}
log.write("9999", "inviaNotificaDonorOut - FINE");
}
@@ -2933,8 +2933,8 @@ public abstract class AbstractCRMController extends SystemController implements
* @param messaggio
* @throws Exception
*/
- protected void inviaNotificaEsitoDonorOut82(NotificationMessage messaggio) throws Exception {
- log.write("9999", "inviaNotificaEsitoDonorOut82");
+ protected void inviaNotificaN9CRMBDonorOut82(NotificationMessage messaggio) throws Exception {
+ log.write("9999", "inviaNotificaN9CRMBDonorOut82 - INIZIO - unique id: " + ((UniqueIdNotificationMessage) messaggio).getUnique_id());
GnpCrmNotifyDonorOutDAO dao = new GnpCrmNotifyDonorOutDAO();
Long uniqueId = ((UniqueIdNotificationMessage) messaggio).getUnique_id();
@@ -3013,7 +3013,7 @@ public abstract class AbstractCRMController extends SystemController implements
eventReq.setCorpo(corpo);
String xml = CrmXAO.getXmlFromSetEvDBCFXReq(eventReq);
- log.write("9999", "xml: " + xml);
+ log.write("9999", "xml Request: " + xml);
CRMCommunicationManager crmClient;
if (CRMMap.PIATTAFORMA_B.equalsIgnoreCase(gnpCrmNotifyDonorOut.getSistComp())) {
@@ -3023,17 +3023,334 @@ public abstract class AbstractCRMController extends SystemController implements
}
String respXml = crmClient.sendFileMultipart(xml);
- SetEventiDBCFXResponse respObj = (SetEventiDBCFXResponse) XmlUtility
- .getCastorXmlObjectFromXmlString(SetEventiDBCFXResponse.class, respXml, true);
+ SetEventiDBCFXResponse respObj = (SetEventiDBCFXResponse) XmlUtility.getCastorXmlObjectFromXmlString(SetEventiDBCFXResponse.class, respXml, true);
String codiceEsito = respObj.getCodiceEsito();
- log.write("9999",
- "codice esito: " + codiceEsito + " - id richiesta: " + gnpCrmNotifyDonorOut.getCodiceRichiesta());
+ String descrizione = null;
if (!codiceEsito.equals("0")) {
- String descrizione = respObj.getDescrizioneEsito();
- throw new Exception("esito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: "
- + gnpCrmNotifyDonorOut.getCodiceRichiesta());
+ descrizione = respObj.getDescrizioneEsito();
}
- log.write("9999", "inviaNotificaEsitoDonorOut82 - FINE");
+ log.write("9999", "esito Notifica N9 CRMB: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: " + gnpCrmNotifyDonorOut.getCodiceRichiesta());
+
+ log.write("9999", "inviaNotificaN9CRMBDonorOut82 - FINE - unique id:" + ((UniqueIdNotificationMessage) messaggio).getUnique_id());
}
}
+
+ private void inviaNotificaN10CRMBDonorOut82(NotificationMessage messaggio) throws Exception {
+ log.write("9999", "inviaNotificaN10CRMBDonorOut82 INIZIO - unique id: " + ((UniqueIdNotificationMessage) messaggio).getUnique_id());
+
+ GnpCrmNotifyDonorOutDAO gnpCrmNotifyDonorOutDao = new GnpCrmNotifyDonorOutDAO();
+ GnpCrmNotifyDonorOut gnpCrmNotifyDonorOut = new GnpCrmNotifyDonorOutDAO().findById(((UniqueIdNotificationMessage) messaggio).getUnique_id());
+
+ if (gnpCrmNotifyDonorOut == null)
+ log.write("0010", "gnpCrmNotifyDonorOut nullo");
+
+ int daScodare = gnpCrmNotifyDonorOut.getDaScodare().intValue();
+
+ switch (daScodare) {
+ case 0:
+ case 3:
+ //se non ci sono record da aggiornare il messaggio e' gia' stato scodato
+ //e dunque viene solamente loggato l'id_richiesta
+ log.write("9999", "RICHIESTA GIA' SCODATA :[" + Func.getFieldDescription(gnpCrmNotifyDonorOut) + "]");
+ break;
+ case 1:
+ log.write("9999", Func.getFieldDescription(gnpCrmNotifyDonorOut));
+
+ if (DBSSMap.EVENTO_PRENOTIFICA.equals(gnpCrmNotifyDonorOut.getTipoEvento())) {
+ invioNotificaN10PrenotificaCRMB(gnpCrmNotifyDonorOut);
+ log.write("9999", "invio [Prenotifica] a DBSS - id: " + ((UniqueIdNotificationMessage) messaggio).getUnique_id() + " - FINE");
+ } else if (DBSSMap.EVENTO_ESPLETAMENTO.equals(gnpCrmNotifyDonorOut.getTipoEvento())) {
+ invioNotificaN10EspletamentoCRMB(gnpCrmNotifyDonorOut);
+ log.write("9999", "invio [Espletamento] a DBSS - id: " + ((UniqueIdNotificationMessage) messaggio).getUnique_id() + " - FINE");
+ }
+ else if (DBSSMap.EVENTO_ESPLETAMENTO_KO.equals(gnpCrmNotifyDonorOut.getTipoEvento())) {
+ invioNotificaN10EspletamentoKOCRMB(gnpCrmNotifyDonorOut);
+ log.write("9999", "invio [Espletamento KO] a DBSS - id: " + ((UniqueIdNotificationMessage) messaggio).getUnique_id() + " - FINE");
+ } else if (DBSSMap.EVENTO_ANNULLAMENTO.equals(gnpCrmNotifyDonorOut.getTipoEvento())) {
+ invioNotificaN10AnnullamentoCRMB(gnpCrmNotifyDonorOut);
+ log.write("9999", "invio [Annullamento] a DBSS - id: " + ((UniqueIdNotificationMessage) messaggio).getUnique_id() + " - FINE");
+ } else {
+ log.write("9999", "inviaNotificaDbssDonorOut - unique id: " + ((UniqueIdNotificationMessage) messaggio).getUnique_id() + " - evento non riconosciuto");
+ }
+ gnpCrmNotifyDonorOutDao.save(gnpCrmNotifyDonorOut);
+ }
+ log.write("9999", "inviaNotificaN10CRMBDonorOut82 - FINE - unique id: " + ((UniqueIdNotificationMessage) messaggio).getUnique_id());
+ }
+
+
+ private void invioNotificaN10PrenotificaCRMB(GnpCrmNotifyDonorOut notifica) throws Exception {
+ log.write("9999", "invioNotificaN10PrenotificaCRMB INIZIO - codice richiesta: " + notifica.getCodiceRichiesta() + " - unique id: " + notifica.getUniqueId());
+
+ GnpRichiesteDonor82DAO richDonor82DAO = new GnpRichiesteDonor82DAO();
+ GnpRichiesteDonor82 richiesta82 = richDonor82DAO.findById(notifica.getCodiceRichiesta());
+
+ String businessID = new TID().toString();
+ String transactionID = new TID().toString();
+
+ notifica.setDaScodare((long) 0);
+ notifica.setDataInvioMessaggio(new Date());
+ notifica.setBusinessId(businessID);
+ notifica.setTransactionId(transactionID);
+
+ SetEventiDBCFXRequest eventReq = new SetEventiDBCFXRequest();
+ Corpo corpo = new Corpo();
+
+ corpo.setDirectoryNumber(notifica.getDirectoryNumber());
+ corpo.setCodiceRichiesta(notifica.getCodiceSessione());
+ corpo.setTipoEvento(notifica.getTipoEvento());
+ corpo.setDAC(new SimpleDateFormat(dimStrFormat).format(notifica.getDac()));
+ corpo.setAmbito(notifica.getAmbito());
+ corpo.setIdentificativoOperatoreDonating(notifica.getIdOperatoreDonating());
+ corpo.setDataInvioMessaggio(new SimpleDateFormat(dimStrFormat).format(new Date()));
+ corpo.setCodiceOrdineOLO(notifica.getCodiceOrdineOlo());
+ if(!Func.isNull(notifica.getNote()))
+ corpo.setNote(notifica.getNote());
+
+ corpo.setFlagNP(notifica.getFlagNp());
+ corpo.setDataOrdine(new SimpleDateFormat(dimStrFormat).format(notifica.getDataOrdine()));
+ if (notifica.getAggiuntivi() != null) {
+ String[] aggiuntivi = notifica.getAggiuntivi().split(";");
+ ListaAggiuntivi tagDnAgg = new ListaAggiuntivi();
+ for (String singleDn : aggiuntivi) {
+ ListaAggiuntiviItem numero = new ListaAggiuntiviItem();
+ numero.setAggiuntivo(singleDn);
+ tagDnAgg.addListaAggiuntiviItem(numero);
+ }
+ corpo.setListaAggiuntivi(tagDnAgg);
+ }
+ corpo.setOAO(notifica.getCodiceOloRecipient());
+
+ // I dati di COS, COR e COW non vengono passati a CRMB, poiche' mancano nell'interfaccia esposta a DBCFX
+
+ eventReq.setCorpo(corpo);
+ String xml = CrmXAO.getXmlFromSetEvDBCFXReq(eventReq);
+ log.write("9999", "xml Request: " + xml);
+
+ CRMCommunicationManager crmClient;
+ if (CRMMap.PIATTAFORMA_B.equalsIgnoreCase(notifica.getSistComp())) {
+ crmClient = new CRMCommunicationManager("CRMB", "NOTIFICHE");
+ } else {
+ crmClient = new CRMCommunicationManager("CRMR", "NOTIFICHE");
+ }
+ String respXml = crmClient.sendFileMultipart(xml);
+
+ SetEventiDBCFXResponse respObj = (SetEventiDBCFXResponse) XmlUtility.getCastorXmlObjectFromXmlString(SetEventiDBCFXResponse.class, respXml, true);
+ String codiceEsito = respObj.getCodiceEsito();
+
+ if (!codiceEsito.equals("0")) {
+ String descrizione = respObj.getDescrizioneEsito();
+ log.write("9999", "Notifica N10-Prenotifica CRMB - codiceEsito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: " + notifica.getCodiceRichiesta());
+ throw new Exception("codiceEsito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: " + notifica.getCodiceRichiesta());
+ }
+ log.write("9999", "Notifica N10-Prenotifica CRMB - codiceEsito: " + codiceEsito + " - id richiesta: " + notifica.getCodiceRichiesta());
+
+ // Aggiornamento della DAC nella tabella GNP_RICHIESTE_D82 a valle dell'evento di Prenotifica
+ if (richiesta82 != null && richiesta82.getDac() == null) {
+ log.write("9999", "Richiesta Del.82 Business - id richiesta: " + richiesta82.getIdRichiesta() + " set DAC:" + notifica.getDac().toString());
+ richiesta82.setDac(notifica.getDac());
+ richDonor82DAO.merge(richiesta82);
+ }
+
+ log.write("9999", "invioNotificaN10PrenotificaCRMB FINE - codice richiesta: " + notifica.getCodiceRichiesta() + " - unique id: " + notifica.getUniqueId());
+ }
+
+ private void invioNotificaN10EspletamentoCRMB(GnpCrmNotifyDonorOut notifica) throws Exception {
+ log.write("9999", "invioNotificaN10EspletamentoCRMB - codice richiesta: " + notifica.getCodiceRichiesta() + " - unique id: " + notifica.getUniqueId());
+
+ String businessID = new TID().toString();
+ String transactionID = new TID().toString();
+
+ notifica.setDaScodare((long) 0);
+ notifica.setDataInvioMessaggio(new Date());
+ notifica.setBusinessId(businessID);
+ notifica.setTransactionId(transactionID);
+
+ SetEventiDBCFXRequest eventReq = new SetEventiDBCFXRequest();
+ Corpo corpo = new Corpo();
+
+ corpo.setDirectoryNumber(notifica.getDirectoryNumber());
+ corpo.setCodiceRichiesta(notifica.getCodiceSessione());
+ corpo.setNativoTLC(notifica.getNativoTlc());
+ corpo.setTipoEvento(notifica.getTipoEvento());
+ corpo.setDES(new SimpleDateFormat(dimStrFormat).format(notifica.getDes()));
+ corpo.setAmbito(notifica.getAmbito());
+ corpo.setIdentificativoOperatoreDonating(notifica.getIdOperatoreDonating());
+ corpo.setDataInvioMessaggio(new SimpleDateFormat(dimStrFormat).format(new Date()));
+ corpo.setCodiceOrdineOLO(notifica.getCodiceOrdineOlo());
+ if(!Func.isNull(notifica.getNote()))
+ corpo.setNote(notifica.getNote());
+ corpo.setFlagNP(notifica.getFlagNp());
+ corpo.setDataOrdine(new SimpleDateFormat(dimStrFormat).format(notifica.getDataOrdine()));
+ if (notifica.getAggiuntivi() != null) {
+ String[] aggiuntivi = notifica.getAggiuntivi().split(";");
+ ListaAggiuntivi tagDnAgg = new ListaAggiuntivi();
+ for (String singleDn : aggiuntivi) {
+ ListaAggiuntiviItem numero = new ListaAggiuntiviItem();
+ numero.setAggiuntivo(singleDn);
+ tagDnAgg.addListaAggiuntiviItem(numero);
+ }
+ corpo.setListaAggiuntivi(tagDnAgg);
+ }
+ corpo.setOAO(notifica.getCodiceOloRecipient());
+
+ // I dati di COS, COR e COW non vengono passati a CRMB, poiche' mancano nell'interfaccia esposta a DBCFX
+
+ eventReq.setCorpo(corpo);
+ String xml = CrmXAO.getXmlFromSetEvDBCFXReq(eventReq);
+ log.write("9999", "xml Request: " + xml);
+
+ CRMCommunicationManager crmClient;
+ if (CRMMap.PIATTAFORMA_B.equalsIgnoreCase(notifica.getSistComp())) {
+ crmClient = new CRMCommunicationManager("CRMB", "NOTIFICHE");
+ } else {
+ crmClient = new CRMCommunicationManager("CRMR", "NOTIFICHE");
+ }
+ String respXml = crmClient.sendFileMultipart(xml);
+
+ SetEventiDBCFXResponse respObj = (SetEventiDBCFXResponse) XmlUtility.getCastorXmlObjectFromXmlString(SetEventiDBCFXResponse.class, respXml, true);
+ String codiceEsito = respObj.getCodiceEsito();
+
+ if (!codiceEsito.equals("0")) {
+ String descrizione = respObj.getDescrizioneEsito();
+ log.write("9999", "Notifica N10-Espletamento CRMB - codiceEsito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: " + notifica.getCodiceRichiesta());
+ throw new Exception("codiceEsito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: " + notifica.getCodiceRichiesta());
+ }
+ log.write("9999", "Notifica N10-Espletamento CRMB codiceEsito: " + codiceEsito + " - id richiesta: " + notifica.getCodiceRichiesta());
+
+ log.write("9999", "invioNotificaN10EspletamentoCRMB FINE - codice richiesta: " + notifica.getCodiceRichiesta() + " - unique id: " + notifica.getUniqueId());
+ }
+
+ private void invioNotificaN10EspletamentoKOCRMB(GnpCrmNotifyDonorOut notifica) throws Exception {
+ log.write("9999", "invioNotificaN10EspletamentoKOCRMB - codice richiesta: " + notifica.getCodiceRichiesta() + " - unique id: " + notifica.getUniqueId());
+
+ String businessID = new TID().toString();
+ String transactionID = new TID().toString();
+
+ notifica.setDaScodare((long) 0);
+ notifica.setDataInvioMessaggio(new Date());
+ notifica.setBusinessId(businessID);
+ notifica.setTransactionId(transactionID);
+
+ SetEventiDBCFXRequest eventReq = new SetEventiDBCFXRequest();
+ Corpo corpo = new Corpo();
+
+ corpo.setDirectoryNumber(notifica.getDirectoryNumber());
+ corpo.setCodiceRichiesta(notifica.getCodiceSessione());
+ corpo.setNativoTLC(notifica.getNativoTlc());
+ corpo.setTipoEvento(notifica.getTipoEvento());
+ corpo.setDES(new SimpleDateFormat(dimStrFormat).format(notifica.getDes()));
+ corpo.setAmbito(notifica.getAmbito());
+ corpo.setIdentificativoOperatoreDonating(notifica.getIdOperatoreDonating());
+ corpo.setDataInvioMessaggio(new SimpleDateFormat(dimStrFormat).format(new Date()));
+ corpo.setCodiceOrdineOLO(notifica.getCodiceOrdineOlo());
+ if(!Func.isNull(notifica.getNote()))
+ corpo.setNote(notifica.getNote());
+ corpo.setFlagNP(notifica.getFlagNp());
+ corpo.setDataOrdine(new SimpleDateFormat(dimStrFormat).format(notifica.getDataOrdine()));
+ if (notifica.getAggiuntivi() != null) {
+ String[] aggiuntivi = notifica.getAggiuntivi().split(";");
+ ListaAggiuntivi tagDnAgg = new ListaAggiuntivi();
+ for (String singleDn : aggiuntivi) {
+ ListaAggiuntiviItem numero = new ListaAggiuntiviItem();
+ numero.setAggiuntivo(singleDn);
+ tagDnAgg.addListaAggiuntiviItem(numero);
+ }
+ corpo.setListaAggiuntivi(tagDnAgg);
+ }
+ corpo.setOAO(notifica.getCodiceOloRecipient());
+
+ // I dati di COS, COR e COW non vengono passati a CRMB, poiche' mancano nell'interfaccia esposta a DBCFX
+
+ eventReq.setCorpo(corpo);
+ String xml = CrmXAO.getXmlFromSetEvDBCFXReq(eventReq);
+ log.write("9999", "xml Request: " + xml);
+
+ CRMCommunicationManager crmClient;
+ if (CRMMap.PIATTAFORMA_B.equalsIgnoreCase(notifica.getSistComp())) {
+ crmClient = new CRMCommunicationManager("CRMB", "NOTIFICHE");
+ } else {
+ crmClient = new CRMCommunicationManager("CRMR", "NOTIFICHE");
+ }
+ String respXml = crmClient.sendFileMultipart(xml);
+
+ SetEventiDBCFXResponse respObj = (SetEventiDBCFXResponse) XmlUtility.getCastorXmlObjectFromXmlString(SetEventiDBCFXResponse.class, respXml, true);
+ String codiceEsito = respObj.getCodiceEsito();
+
+ if (!codiceEsito.equals("0")) {
+ String descrizione = respObj.getDescrizioneEsito();
+ log.write("9999", "Notifica N10-EspletamentoKO CRMB - codiceEsito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: " + notifica.getCodiceRichiesta());
+ throw new Exception("codiceEsito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: " + notifica.getCodiceRichiesta());
+ }
+ log.write("9999", "Notifica N10-EspletamentoKO CRMB codiceEsito: " + codiceEsito + " - id richiesta: " + notifica.getCodiceRichiesta());
+
+
+ log.write("9999", "invioNotificaN10EspletamentoKOCRMB FINE - codice richiesta: " + notifica.getCodiceRichiesta() + " - unique id: " + notifica.getUniqueId());
+ }
+
+ private void invioNotificaN10AnnullamentoCRMB(GnpCrmNotifyDonorOut notifica) throws Exception {
+ log.write("9999", "invioNotificaN10AnnullamentoCRMB - codice richiesta: " + notifica.getCodiceRichiesta() + " - unique id: " + notifica.getUniqueId());
+
+ String businessID = new TID().toString();
+ String transactionID = new TID().toString();
+
+ notifica.setDaScodare((long) 0);
+ notifica.setDataInvioMessaggio(new Date());
+ notifica.setBusinessId(businessID);
+ notifica.setTransactionId(transactionID);
+
+ SetEventiDBCFXRequest eventReq = new SetEventiDBCFXRequest();
+ Corpo corpo = new Corpo();
+
+ corpo.setDirectoryNumber(notifica.getDirectoryNumber());
+ corpo.setCodiceRichiesta(notifica.getCodiceSessione());
+ corpo.setNativoTLC(notifica.getNativoTlc());
+ corpo.setTipoEvento(notifica.getTipoEvento());
+ corpo.setDES(new SimpleDateFormat(dimStrFormat).format(notifica.getDes()));
+ corpo.setAmbito(notifica.getAmbito());
+ corpo.setIdentificativoOperatoreDonating(notifica.getIdOperatoreDonating());
+ corpo.setDataInvioMessaggio(new SimpleDateFormat(dimStrFormat).format(new Date()));
+ corpo.setCodiceOrdineOLO(notifica.getCodiceOrdineOlo());
+ if(!Func.isNull(notifica.getNote()))
+ corpo.setNote(notifica.getNote());
+ corpo.setFlagNP(notifica.getFlagNp());
+ corpo.setDataOrdine(new SimpleDateFormat(dimStrFormat).format(notifica.getDataOrdine()));
+ if (notifica.getAggiuntivi() != null) {
+ String[] aggiuntivi = notifica.getAggiuntivi().split(";");
+ ListaAggiuntivi tagDnAgg = new ListaAggiuntivi();
+ for (String singleDn : aggiuntivi) {
+ ListaAggiuntiviItem numero = new ListaAggiuntiviItem();
+ numero.setAggiuntivo(singleDn);
+ tagDnAgg.addListaAggiuntiviItem(numero);
+ }
+ corpo.setListaAggiuntivi(tagDnAgg);
+ }
+ corpo.setOAO(notifica.getCodiceOloRecipient());
+
+ // I dati di COS, COR e COW non vengono passati a CRMB, poiche' mancano nell'interfaccia esposta a DBCFX
+
+ eventReq.setCorpo(corpo);
+ String xml = CrmXAO.getXmlFromSetEvDBCFXReq(eventReq);
+ log.write("9999", "xml Request: " + xml);
+
+ CRMCommunicationManager crmClient;
+ if (CRMMap.PIATTAFORMA_B.equalsIgnoreCase(notifica.getSistComp())) {
+ crmClient = new CRMCommunicationManager("CRMB", "NOTIFICHE");
+ } else {
+ crmClient = new CRMCommunicationManager("CRMR", "NOTIFICHE");
+ }
+ String respXml = crmClient.sendFileMultipart(xml);
+
+ SetEventiDBCFXResponse respObj = (SetEventiDBCFXResponse) XmlUtility.getCastorXmlObjectFromXmlString(SetEventiDBCFXResponse.class, respXml, true);
+ String codiceEsito = respObj.getCodiceEsito();
+
+ if (!codiceEsito.equals("0")) {
+ String descrizione = respObj.getDescrizioneEsito();
+ log.write("9999", "Notifica N10-Annullamento CRMB - codiceEsito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: " + notifica.getCodiceRichiesta());
+ throw new Exception("codiceEsito: " + codiceEsito + " - descrizione: " + descrizione + " - id richiesta: " + notifica.getCodiceRichiesta());
+ }
+ log.write("9999", "Notifica N10-Annullamento CRMB codiceEsito: " + codiceEsito + " - id richiesta: " + notifica.getCodiceRichiesta());
+
+ log.write("9999", "invioNotificaN10AnnullamentoCRMB FINE - codice richiesta: " + notifica.getCodiceRichiesta() + " - unique id: " + notifica.getUniqueId());
+ }
+
}
diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/CRMBController.java b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/CRMBController.java
index 623fd28c..7ddfef88 100644
--- a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/CRMBController.java
+++ b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/CRMBController.java
@@ -50,7 +50,7 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
private static final String versione = "1.0.0";
private static CRMBController onlyInstance;
- protected GnpCrmNotifyDonorOutDAO crmbNotifyDonorOutDAO = null;
+ //protected GnpCrmNotifyDonorOutDAO crmbNotifyDonorOutDAO = null;
/**
@@ -58,7 +58,7 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
* @throws Exception
*/
private CRMBController() throws Exception {
- crmbNotifyDonorOutDAO = new GnpCrmNotifyDonorOutDAO();
+ //crmbNotifyDonorOutDAO = new GnpCrmNotifyDonorOutDAO();
}
/**
@@ -726,9 +726,52 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
crmbNotifyDonorOut = (new CRMBFormatController()).createNotificaCsDonor82(richiesta);
+ GnpCrmNotifyDonorOutDAO crmbNotifyDonorOutDAO = new GnpCrmNotifyDonorOutDAO();
crmbNotifyDonorOutDAO.save(crmbNotifyDonorOut);
+
return crmbNotifyDonorOut;
}
+ public void notificaN10CRMBFase3(GnpRichiesteDonor82 richiesta, GnpNowD82RichiesteIn nowIn) throws Exception {
+ log.write("9999", "CRMBController.notificaN10CRMBFase3(richiesta donor 82" + richiesta.getIdRichiesta() + " - INIZIO");
+ try {
+ CRMBFormatController formatController = new CRMBFormatController();
+ GnpCrmNotifyDonorOut gnpNotifyDonorOut = formatController.createNotificaDonor82(richiesta, nowIn, log);
+ GnpCrmNotifyDonorOutDAO dao = new GnpCrmNotifyDonorOutDAO();
+ dao.save(gnpNotifyDonorOut);
+ notificaVariazioneStatoCRMB(gnpNotifyDonorOut, "USCITA DEL 82 BUSINESS");
+ } catch (Exception ex) {
+ log.write("9999", "PROBLEMI DURANTE L'INVIO IN CODA DELLA NOTIFICA A " + getSystemProviderDesc() + "- ID_RICHIESTA : "
+ + (richiesta != null ? richiesta.getIdRichiesta() : "NON IDENTIFICATA") + " - " + ex.toString());
+ throw ex;
+ }
+ log.write("9999", "CRMBController.notificaN10CRMBFase3 FINE");
+ }
+
+ private void notificaVariazioneStatoCRMB(GnpCrmNotifyDonorOut gnpCrmNotifyDonorOut, String processo) {
+ log.write("9999", "CRMBController.notificaVariazioneStatoCRMB(GnpCrmNotifyDonorOut gnpNotifyDonorOut, String processo) - " +
+ "unique id: " + gnpCrmNotifyDonorOut.getUniqueId() + " - processo: " + processo);
+
+ try {
+ NotificationMessage message = creaNotificaDonorOut82(gnpCrmNotifyDonorOut.getUniqueId());
+ inserisciNotificaInCoda(message);
+
+ log.write("9999", "CRMBController.notificaVariazioneStatoCRMB(GnpCrmNotifyDonorOut gnpNotifyDonorOut, String processo) - " +
+ "unique id: " + gnpCrmNotifyDonorOut.getUniqueId() + " - processo: " + processo + " - FINE");
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ log.write("0010", "CRMBController.notificaVariazioneStatoCRMB(GnpCrmNotifyDonorOut gnpNotifyDonorOut, String processo) - " +
+ "unique id: " + gnpCrmNotifyDonorOut.getUniqueId() + " - processo: " + processo + " - FINE CON ECCEZIONE");
+ }
+ }
+
+ protected NotificationMessage creaNotificaDonorOut82(Long uniqueId){
+ UniqueIdNotificationMessage messaggio = new UniqueIdNotificationMessage();
+ messaggio.setUnique_id(uniqueId);
+ messaggio.setNotificationType(NotificationMessageIF.NotificationType_CRMB_DONOR_OUT_82);
+ messaggio.setSystemProvider(NotificationMessageIF.SystemProvider_CRMB);
+ return messaggio;
+ }
}
diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/crm/AbstractCRMFormatController.java b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/crm/AbstractCRMFormatController.java
index e9bccc15..de2cf780 100644
--- a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/crm/AbstractCRMFormatController.java
+++ b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/crm/AbstractCRMFormatController.java
@@ -12,6 +12,7 @@ import it.valueteam.gnp.exception.xml.MalformedXmlException;
import it.valueteam.gnp.log.ProcessLogger;
import it.valueteam.gnp.manager.RequestManagerDonor82;
import it.valueteam.gnp.obj.*;
+import it.valueteam.gnp.obj.jms.NotificationMessage;
import it.valueteam.gnp.systemcontroller.ControllerFactory;
import it.valueteam.gnp.systemcontroller.crm.SistemaCrmIF;
import it.valueteam.gnp.systemcontroller.formatcontroller.FormatController;
@@ -403,7 +404,7 @@ public abstract class AbstractCRMFormatController extends FormatController {
/**
* crea l'oggetto AbstractGnpCrmOutRec a partire dalla richiesta in ingresso
* se naturalemnte risciuma a parsarla
- * @param crmInRec AbstractGnpCrmInRec
+ *
* @return AbstractGnpCrmOutRec
*/
public abstract AbstractGnpCrmOutRec createResponseObject() throws Exception;
@@ -422,10 +423,14 @@ public abstract class AbstractCRMFormatController extends FormatController {
/**
* crea l'oggetto AbstractGnpCrmOutRec a partire dalla richiesta di business
* se naturalemnte risciuma a parsarla
- * @param crmInRec
- * @param crmInRec AbstractGnpCrmInRec
+ *
+ * @param richiestaRec
* @param tipoChiamata
- * @return AbstractGnpCrmOutRec
+ * @param evento
+ * @param esito
+ * @param causaleScarto
+ * @return
+ * @throws Exception
*/
public AbstractGnpCrmOutRec createCustomResponseObject(GnpRichiesteRec richiestaRec,String tipoChiamata,String evento,
String esito, String causaleScarto) throws Exception
@@ -436,7 +441,7 @@ public abstract class AbstractCRMFormatController extends FormatController {
/**
* createCrmScartInRec
* @param tracciato
- * @param crmInRec GnpCrmInRec
+ * @param tracciato GnpCrmInRec
*
* @return GnpCrmScartiIn
*/
@@ -682,7 +687,7 @@ public abstract class AbstractCRMFormatController extends FormatController {
* Esegue tutti i controlli di business
* esegue i controlli di compatibilita' stato_attuale_richiesta-tipo_evento in ingresso
* e in controlli sulla duplicazione della richiesta - tipo_evento
- * @param gnpCrmInRec AbstractGnpCrmInRec
+ * @param notificaFromCRM AbstractGnpCrmInRec
* @throws Exception
* @return boolean - se false scarto e non rispondo a crm
*/
@@ -906,11 +911,15 @@ public abstract class AbstractCRMFormatController extends FormatController {
return false;
}
- /***
+
+ /**
* notExistRequest
* Esegue i controlli di duplicazione dele richieste (coppia id_esigenza-tipo_evento)
- * @param gnpCrmInRec AbstractGnpCrmInRec
- * @return boolean true se non esiste altrimenti false
+ *
+ * @param idEsigenza
+ * @param tipoEvento
+ * @return
+ * @throws Exception
*/
protected abstract boolean existRequest(String idEsigenza, String tipoEvento) throws
Exception;
@@ -2084,7 +2093,7 @@ public abstract class AbstractCRMFormatController extends FormatController {
/**
* setIdRichiestaRicavato
* utilizzato per fare l'update della tabella di out dopo la creazione della notifica verso i sistemi CRM
- * @param long Long
+ * @param idRichiestaRic Long
*/
protected void setIdRichiestaRicavato(Long idRichiestaRic) {
@@ -2174,31 +2183,28 @@ public abstract class AbstractCRMFormatController extends FormatController {
public AbstractGnpCrmDonorIn getCrmDonorInBean(EsitoVerificaCS esito) throws Exception {
return createCrmDonorIn(esito);
}
+
/**
* Crea il bean AbstractGnpCrmInRec a partire dall'oggetto castor ottenuto
* dal tracciato in ingresso proveniente da crm
*
- * @param notificaFromCRM
- * NotificaFromCRM
- * @param ibSystem
- * String
+ * @param esito
+ * @return
* @throws Exception
- * @return AbstractGnpCrmInRec
*/
protected abstract AbstractGnpCrmDonorIn createCrmDonorIn(EsitoVerificaCS esito) throws Exception;
public AbstractGnpCrmScartiDonorIn getCrmDonorScartiIn(EsitoVerificaCS esito, String causale) throws Exception {
return createCrmScartiDonorIn(esito, causale);
}
+
/**
* Crea il bean AbstractGnpCrmInRec a partire dall'oggetto castor ottenuto
* dal tracciato in ingresso proveniente da crm
*
- * @param notificaFromCRM
- * NotificaFromCRM
- * @param ibSystem
- * String
+ * @param esito
+ * @param causale
+ * @return
* @throws Exception
- * @return AbstractGnpCrmInRec
*/
protected abstract AbstractGnpCrmScartiDonorIn createCrmScartiDonorIn(EsitoVerificaCS esito, String causale) throws Exception;
/**
@@ -2522,7 +2528,6 @@ public abstract class AbstractCRMFormatController extends FormatController {
// Di default viene preimpostato a N
notifyOut.setFlagNp("N");
-
// 20171213 DBCFX_RU_254 BEGIN
notifyOut.setNote(CAMPO_NOTE_DEFAULT_NGA_XDSL);
@@ -3089,4 +3094,5 @@ public abstract class AbstractCRMFormatController extends FormatController {
}
return OK_VALIDAZIONE;
}
+
}
diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/crm/CRMBFormatController.java b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/crm/CRMBFormatController.java
index cd698326..3ba0c389 100644
--- a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/crm/CRMBFormatController.java
+++ b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/crm/CRMBFormatController.java
@@ -8,7 +8,9 @@ import it.valueteam.gnp.dao.xml.crm.crmtodbcfx.NotificaFromCRM;
import it.valueteam.gnp.dao.xml.crm.dbcfxtocrm.NotificaRid;
import it.valueteam.gnp.dao.xml.crm.dbcfxtocrm.http.*;
import it.valueteam.gnp.dao.xml.crm.donor.crmtodbcfx.EsitoVerificaCS;
+import it.valueteam.gnp.log.ProcessLogger;
import it.valueteam.gnp.obj.*;
+import it.valueteam.gnp.obj.jms.NotificationMessage;
import it.valueteam.gnp.utility.DateUtils;
import it.valueteam.gnp.utility.Func;
import it.valueteam.gnp.utility.Resources;
@@ -44,6 +46,10 @@ public class CRMBFormatController
extends AbstractCRMFormatController {
protected static final String AMBITO_USCITA_82 = "USCITANP_DEL82";
+ private static final String FLAG_NATIVO_YES = "Y";
+ private static final String CRM_COMPETENZA_BUSINESS = "B";
+
+ private static final String CAMPO_NOTE_DEFAULT_NGA_XDSL = "MANTENIMENTOPRODOTTI:0|BANDADACESSARE:F+D|";
public CRMBFormatController() {
}
@@ -838,6 +844,92 @@ extends AbstractCRMFormatController {
return crmbNotifyDonorOut;
}
+ public GnpCrmNotifyDonorOut createNotificaDonor82(GnpRichiesteDonor82 richiesta, GnpNowD82RichiesteIn nowIn, ProcessLogger log) throws Exception{
+ GnpCrmNotifyDonorOut notifyOut = new GnpCrmNotifyDonorOut();
+ notifyOut.setDaScodare((long) 1);
+ notifyOut.setAmbito(AMBITO_USCITA_82);
+ String tipoEvento = nowIn.getTipoEvento();
+
+ if (tipoEvento.equalsIgnoreCase("2")) {
+ notifyOut.setTipoEvento(DBSSMap.EVENTO_PRENOTIFICA);
+ } else if (tipoEvento.equalsIgnoreCase("0")) {
+ notifyOut.setTipoEvento(DBSSMap.EVENTO_ESPLETAMENTO);
+ } else if (tipoEvento.equalsIgnoreCase("1")) {
+ notifyOut.setTipoEvento(DBSSMap.EVENTO_ESPLETAMENTO_KO);
+ } else { //TIPO EVENTO 3
+ notifyOut.setTipoEvento(DBSSMap.EVENTO_ANNULLAMENTO);
+ }
+
+ notifyOut.setSistComp(CRM_COMPETENZA_BUSINESS);
+ notifyOut.setCodiceSegreto(richiesta.getCos());
+ // Per la Del.82 in continuità con la Del.274 in mancanza del DN1 da NOW mappiamo il COR (Codice Risorsa)
+ notifyOut.setDirectoryNumber(nowIn.getNpDn1() != null ? nowIn.getNpDn1() : richiesta.getCor());
+ notifyOut.setIdOperatoreDonating(richiesta.getCowDonating());
+ notifyOut.setCognomeCliente(richiesta.getCognomeCliente());
+ notifyOut.setCodiceRichiesta(richiesta.getIdRichiesta());
+ notifyOut.setCodiceOrdineOlo(nowIn.getCodiceOrdineWhs());
+ notifyOut.setNativoTlc(FLAG_NATIVO_YES);
+ notifyOut.setDac(nowIn.getDataDac());
+
+ if(null != nowIn.getNote()) {
+ notifyOut.setNote(nowIn.getNote());
+ }
+ else { // In continuità con la Del. 274 se il campo note è NULL settiamo i valori di default
+ if (DBSSMap.EVENTO_ANNULLAMENTO.equals(notifyOut.getTipoEvento())){
+ notifyOut.setNote(Resources.getNOW_CAMPO_NOTE_DEFAULT_SR_DBSS());
+ }
+ else if (DBSSMap.EVENTO_ESPLETAMENTO.equals(notifyOut.getTipoEvento())){
+ notifyOut.setNote(CAMPO_NOTE_DEFAULT_NGA_XDSL);
+ }
+ else if (DBSSMap.EVENTO_ESPLETAMENTO_KO.equals(notifyOut.getTipoEvento())){
+ notifyOut.setNote(Resources.getNOW_CAMPO_NOTE_DEFAULT_SR_DBSS());
+ }
+ else if (DBSSMap.EVENTO_PRENOTIFICA.equals(notifyOut.getTipoEvento())){
+ notifyOut.setNote(CAMPO_NOTE_DEFAULT_NGA_XDSL);
+ }
+ }
+
+ String aggiuntivi = "";
+ if (!Func.isNull(nowIn.getNpDn2())) aggiuntivi += nowIn.getNpDn2() + ";";
+ if (!Func.isNull(nowIn.getNpDn3())) aggiuntivi += nowIn.getNpDn3() + ";";
+ if (!Func.isNull(nowIn.getNpDn4())) aggiuntivi += nowIn.getNpDn4() + ";";
+ if (!Func.isNull(nowIn.getNpDn5())) aggiuntivi += nowIn.getNpDn5() + ";";
+ if (!Func.isNull(nowIn.getNpDn6())) aggiuntivi += nowIn.getNpDn6() + ";";
+ if (!Func.isNull(nowIn.getNpDn7())) aggiuntivi += nowIn.getNpDn7() + ";";
+ if (!Func.isNull(nowIn.getNpDn8())) aggiuntivi += nowIn.getNpDn8() + ";";
+ if (!Func.isNull(nowIn.getNpDn9())) aggiuntivi += nowIn.getNpDn9() + ";";
+ if (!Func.isNull(nowIn.getNpDn10())) aggiuntivi += nowIn.getNpDn10() + ";";
+ if (aggiuntivi.endsWith(";")) aggiuntivi = aggiuntivi.substring(0, aggiuntivi.length()-1);
+ if (!aggiuntivi.equals("")) notifyOut.setAggiuntivi(aggiuntivi);
+
+ //TODO adeguamento IS NP flag, se ci sono numerazioni metto ad "Y" altrimenti ad "N"
+ if (nowIn.getNpDn1() != null) {
+ notifyOut.setFlagNp("Y");
+ } else {
+ notifyOut.setFlagNp("N");
+ }
+
+ notifyOut.setSistComp(richiesta.getCrmCompetenza());
+
+ if (
+ (DBSSMap.EVENTO_ESPLETAMENTO).equals(notifyOut.getTipoEvento()) ||
+ (DBSSMap.EVENTO_ANNULLAMENTO).equals(notifyOut.getTipoEvento()) ||
+ (DBSSMap.EVENTO_ESPLETAMENTO_KO).equals(notifyOut.getTipoEvento())
+ ) {
+ notifyOut.setDes(nowIn.getDataEspletamento());
+ }
+
+ notifyOut.setDataOrdine(richiesta.getDataRicezione());
+ notifyOut.setDataInvioMessaggio(nowIn.getDataNotifica());
+ notifyOut.setCow(richiesta.getCowDonating());
+ notifyOut.setIdOperatoreDonor("TLC");
+ notifyOut.setCodiceOloRecipient(nowIn.getCodiceOperatoreRecipient());
+ notifyOut.setCor(richiesta.getCor());
+ notifyOut.setCodiceSessione(richiesta.getCodiceSessione());
+
+ return notifyOut;
+ }
+
}
diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/dbss/DBSSFormatController.java b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/dbss/DBSSFormatController.java
index ccf8553d..3801ef3c 100644
--- a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/dbss/DBSSFormatController.java
+++ b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/dbss/DBSSFormatController.java
@@ -1704,7 +1704,6 @@ public class DBSSFormatController extends FormatController {
notifyOut.setDirectoryNumber(nowIn.getNpDn1() != null ? nowIn.getNpDn1() : richiesta.getCor());
notifyOut.setIdOperatoreDonating(richiesta.getCowDonating());
notifyOut.setCognomeCliente(richiesta.getCognomeCliente());
-
notifyOut.setCodiceRichiesta(richiesta.getIdRichiesta());
notifyOut.setCodiceOrdineOlo(nowIn.getCodiceOrdineWhs());
notifyOut.setNativoTlc(FLAG_NATIVO_YES);
diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/now/NowController.java b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/now/NowController.java
index 73fd0979..c601f231 100644
--- a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/now/NowController.java
+++ b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/formatcontroller/now/NowController.java
@@ -19,6 +19,7 @@ import it.telecomitalia.soa.soap.soapheader.HeaderType;
import it.telecomitalia.soa.soap.soapheader.InteractionDateType;
import it.valueteam.gnp.dao.db.hb.*;
import it.valueteam.gnp.manager.RequestManagerDonor82;
+import it.valueteam.gnp.systemcontroller.crm.CRMBController;
import it.valueteam.gnp.systemcontroller.dbcfxgo.DbcfxgoController;
import it.valueteam.gnp.utility.DateUtils;
@@ -244,7 +245,7 @@ public class NowController extends SystemController {
}
else { // DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): aggiunto else per lo scenario Business getCrmCompetenza == "B"
// invocare notifiche espletamenti (N10) verso CRMB
-
+ CRMBController.getInstance().notificaN10CRMBFase3(richiesta, nowDonorIn);
}
DbcfxgoController.getInstance().inviaNotificaDbcfxgoD82(richiesta, null, null, nowDonorIn, null);
diff --git a/gnpdev/wsdbcfx/wsdl/crmdonor/CRM_TO_DBCFX_DONOR.xsd b/gnpdev/wsdbcfx/wsdl/crmdonor/CRM_TO_DBCFX_DONOR.xsd
index c1c30068..f1f0f4ac 100644
--- a/gnpdev/wsdbcfx/wsdl/crmdonor/CRM_TO_DBCFX_DONOR.xsd
+++ b/gnpdev/wsdbcfx/wsdl/crmdonor/CRM_TO_DBCFX_DONOR.xsd
@@ -26,7 +26,6 @@
-