diff --git a/gnpapp/script/del82/alterTableGnpCrmbDonorOut.sql b/gnpapp/script/del82/alterTableGnpCrmbDonorOut.sql index b88040e8..742ad301 100644 --- a/gnpapp/script/del82/alterTableGnpCrmbDonorOut.sql +++ b/gnpapp/script/del82/alterTableGnpCrmbDonorOut.sql @@ -1,9 +1,12 @@ -ALTER TABLE GNP_CRMB_DONOR_OUT +ALTER TABLE ùGNP_CRMB_DONOR_OUT ADD "CODICE_RICHIESTA" NUMBER; ALTER TABLE GNP_CRMB_DONOR_OUT ADD "COR" VARCHAR2(12 BYTE); +ALTER TABLE GNP_CRMB_DONOR_OUT +ADD "COS" VARCHAR2(3 BYTE); + ALTER TABLE GNP_CRMB_DONOR_OUT ADD "CODICE_ORDINE_OLO" VARCHAR2(50 BYTE); diff --git a/gnpdev/build/databinding/schema/crm/SetEventiDBCFXRequest.xsd b/gnpdev/build/databinding/schema/crm/SetEventiDBCFXRequest.xsd index e4c55a5d..76849749 100644 --- a/gnpdev/build/databinding/schema/crm/SetEventiDBCFXRequest.xsd +++ b/gnpdev/build/databinding/schema/crm/SetEventiDBCFXRequest.xsd @@ -32,6 +32,8 @@ + + diff --git a/gnpdev/build/databinding/schema/crm/SetEventiDBCFXRequest_19062024.xsd b/gnpdev/build/databinding/schema/crm/SetEventiDBCFXRequest_19062024.xsd new file mode 100644 index 00000000..182c42ed --- /dev/null +++ b/gnpdev/build/databinding/schema/crm/SetEventiDBCFXRequest_19062024.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnpdev/build/databinding/schema/crm/TIIOSetASCodMigrazioneDBCOnLine.xsd b/gnpdev/build/databinding/schema/crm/TIIOSetASCodMigrazioneDBCOnLine.xsd index e4562e47..cacada78 100644 --- a/gnpdev/build/databinding/schema/crm/TIIOSetASCodMigrazioneDBCOnLine.xsd +++ b/gnpdev/build/databinding/schema/crm/TIIOSetASCodMigrazioneDBCOnLine.xsd @@ -31,18 +31,6 @@ - - - - - - - - - - - - diff --git a/gnpdev/build/databinding/schema/crm/TIIOSetASCodMigrazioneDBCOnLine_Del82.xsd b/gnpdev/build/databinding/schema/crm/TIIOSetASCodMigrazioneDBCOnLine_Del82.xsd new file mode 100644 index 00000000..447e0dbb --- /dev/null +++ b/gnpdev/build/databinding/schema/crm/TIIOSetASCodMigrazioneDBCOnLine_Del82.xsd @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnpdev/dbcfx/ear/res/APP-INF/lib/Castor-DbcFX2CRM-Donor-Http.jar b/gnpdev/dbcfx/ear/res/APP-INF/lib/Castor-DbcFX2CRM-Donor-Http.jar index c8c5648a..93dab39e 100644 Binary files a/gnpdev/dbcfx/ear/res/APP-INF/lib/Castor-DbcFX2CRM-Donor-Http.jar and b/gnpdev/dbcfx/ear/res/APP-INF/lib/Castor-DbcFX2CRM-Donor-Http.jar differ diff --git a/gnpdev/dbcfx/ear/res/APP-INF/lib/Castor-DbcFX2CRMReqEventi.jar b/gnpdev/dbcfx/ear/res/APP-INF/lib/Castor-DbcFX2CRMReqEventi.jar index 15b2f257..be351b24 100644 Binary files a/gnpdev/dbcfx/ear/res/APP-INF/lib/Castor-DbcFX2CRMReqEventi.jar and b/gnpdev/dbcfx/ear/res/APP-INF/lib/Castor-DbcFX2CRMReqEventi.jar differ diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/crm/AbstractGnpCrmDonorOut.java b/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/crm/AbstractGnpCrmDonorOut.java index 2c6f60f4..6dc8f676 100644 --- a/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/crm/AbstractGnpCrmDonorOut.java +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/crm/AbstractGnpCrmDonorOut.java @@ -11,9 +11,10 @@ public abstract class AbstractGnpCrmDonorOut implements java.io.Serializable { private String tipoChiamata; private Date dataInvio; - // DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): Aggiunti 11 nuovi campi per CRMB + // DBCFX_RU_363 - Offerta Open Fiber FTTH (Del.82 Business): Aggiunti 12 nuovi campi per CRMB private Long codiceRichiesta; private String cor; + private String cos; private String codOLORecipient; private String codOrdineOLO; private String dn1; @@ -43,8 +44,30 @@ public abstract class AbstractGnpCrmDonorOut implements java.io.Serializable { this.tipoChiamata = tipoChiamata; this.dataInvio = dataInvio; } - - public Long getUniqueId() { + + public AbstractGnpCrmDonorOut(Long uniqueId, Long daScodare, String cowDonating, String dn, String codiceSessione, String tipoChiamata, Date dataInvio, Long codiceRichiesta, String cor, String cos, String codOLORecipient, String codOrdineOLO, String dn1, String dn2, String dn3, String dn4, String dn5, String dn6, String dn7) { + this.uniqueId = uniqueId; + this.daScodare = daScodare; + this.cowDonating = cowDonating; + this.dn = dn; + this.codiceSessione = codiceSessione; + this.tipoChiamata = tipoChiamata; + this.dataInvio = dataInvio; + this.codiceRichiesta = codiceRichiesta; + this.cor = cor; + this.cos = cos; + this.codOLORecipient = codOLORecipient; + this.codOrdineOLO = codOrdineOLO; + this.dn1 = dn1; + this.dn2 = dn2; + this.dn3 = dn3; + this.dn4 = dn4; + this.dn5 = dn5; + this.dn6 = dn6; + this.dn7 = dn7; + } + + public Long getUniqueId() { return this.uniqueId; } @@ -110,6 +133,13 @@ public abstract class AbstractGnpCrmDonorOut implements java.io.Serializable { this.cor = cor; } + public String getCos() { + return cos; + } + + public void setCos(String cos) { + this.cos = cos; + } public String getCodOLORecipient() { return codOLORecipient; diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/crm/GnpCrmbDonorOut.hbm.xml b/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/crm/GnpCrmbDonorOut.hbm.xml index 8e21706b..e9ee861c 100644 --- a/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/crm/GnpCrmbDonorOut.hbm.xml +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/crm/GnpCrmbDonorOut.hbm.xml @@ -35,6 +35,9 @@ + + + diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/jms/QueueControllerFactory.java b/gnpdev/dbcfx/src/it/valueteam/gnp/jms/QueueControllerFactory.java index 55dcd737..c5783de2 100644 --- a/gnpdev/dbcfx/src/it/valueteam/gnp/jms/QueueControllerFactory.java +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/jms/QueueControllerFactory.java @@ -22,6 +22,8 @@ public class QueueControllerFactory { return JNDINames.QUEUE_NAME_CRMB_IN; case NotificationMessageIF.NotificationType_CRMB_NOTIFICA_OUT: case NotificationMessageIF.NotificationType_CRMB_DONOR_OUT: + case NotificationMessageIF.NotificationType_CRMB_ESITO_VERIFICA_DONOR_OUT_82: + case NotificationMessageIF.NotificationType_CRMB_DONOR_OUT_82: return JNDINames.QUEUE_NAME_CRMB_OUT; case NotificationMessageIF.NotificationType_CRMB_VERIFICA_CS: return JNDINames.QUEUE_NAME_CRMB_OUT; diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/manager/RequestManagerDonor82.java b/gnpdev/dbcfx/src/it/valueteam/gnp/manager/RequestManagerDonor82.java index 05e4c924..493f826d 100644 --- a/gnpdev/dbcfx/src/it/valueteam/gnp/manager/RequestManagerDonor82.java +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/manager/RequestManagerDonor82.java @@ -17,6 +17,7 @@ import it.valueteam.gnp.obj.ProcessMapper; import it.valueteam.gnp.obj.StatoRichiestaDon; import it.valueteam.gnp.systemcontroller.ControllerFactory; import it.valueteam.gnp.systemcontroller.SystemControllerIF; +import it.valueteam.gnp.systemcontroller.crm.CRMBController; import it.valueteam.gnp.systemcontroller.crm.SistemaCrmIF; import it.valueteam.gnp.systemcontroller.formatcontroller.dbss.DBSSController; import it.valueteam.gnp.systemcontroller.formatcontroller.now.NowController; @@ -722,6 +723,12 @@ public class RequestManagerDonor82 { dbssController.invioNotificaD82(dbssDonorOut); } + public static void callNotificaFase3CRMB(ProcessLogger log, GnpRichiesteDonor82 richiesta) throws Exception { + CRMBController controller = CRMBController.getInstance(); + GnpCrmNotifyDonorOut crmbNotifyDonorOut = controller.creaNotificaEsitoN9(richiesta); + controller.invioNotificaEsitoD82(crmbNotifyDonorOut); + } + private static boolean isUtenzaDBSS(String piattaforma) { return "D".equalsIgnoreCase(piattaforma); } diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/obj/CRMMap.java b/gnpdev/dbcfx/src/it/valueteam/gnp/obj/CRMMap.java index 66711bd3..1371b38d 100644 --- a/gnpdev/dbcfx/src/it/valueteam/gnp/obj/CRMMap.java +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/obj/CRMMap.java @@ -117,7 +117,10 @@ public abstract class CRMMap { public static final String DNAGG_OK = "OK"; public static final String DNAGG_KO = "KO"; - private CRMMap() { + // DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): Implement FASE 3 + public static final String TIPOEVENTO_ESITO_VERIFICA_CODICE_SESSIONE = "FASE3DEL82"; + + private CRMMap() { } public static CRMMapInfo getInfoNotifica(int tipoNotifica) throws Exception{ diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/obj/jms/NotificationMessageIF.java b/gnpdev/dbcfx/src/it/valueteam/gnp/obj/jms/NotificationMessageIF.java index 44997b7f..63ef6e81 100644 --- a/gnpdev/dbcfx/src/it/valueteam/gnp/obj/jms/NotificationMessageIF.java +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/obj/jms/NotificationMessageIF.java @@ -32,10 +32,14 @@ public interface NotificationMessageIF { public static final int NotificationType_CRMB_VERIFICA_CS= 10; public static final int NotificationType_CRMB_ESITO_VERIFICA_CS= 13; public static final int NotificationType_CRMB_DONOR_OUT = 14; + // 152248 (227248) public static final int NotificationType_CRMB_ESPLETAMENTO_DONATING=65; public static final int NotificationType_CRMB_VERIFICA_CS_103 = 66; + public static final int NotificationType_CRMB_ESITO_VERIFICA_DONOR_OUT_82 = 16; + public static final int NotificationType_CRMB_DONOR_OUT_82 = 17; + public static final int SystemProvider_CRMA = SystemControllerIF.SystemProvider_CRMA; public static final int NotificationType_CRMA_ATTIVAZIONE_IN = 6; public static final int NotificationType_CRMA_NOTIFICA_OUT = 7; 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 a2d32107..9b91eabd 100644 --- a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/AbstractCRMController.java +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/AbstractCRMController.java @@ -650,54 +650,55 @@ public abstract class AbstractCRMController extends SystemController implements log.write("0004", this.getVersione() + " TIPO_NOTIFICA = [" + messaggio.getNotificationType() + "]"); try { switch (notificationtype) { - case NotificationMessageIF.NotificationType_CRMB_ESPLETAMENTO_DONATING: + case NotificationMessageIF.NotificationType_CRMB_ESPLETAMENTO_DONATING: processaEspletamentoDonating(messaggio); break; - case NotificationMessageIF.NotificationType_CRMR_ATTIVAZIONE_IN: - case NotificationMessageIF.NotificationType_CRMB_ATTIVAZIONE_IN: - case NotificationMessageIF.NotificationType_CRMA_ATTIVAZIONE_IN: + case NotificationMessageIF.NotificationType_CRMR_ATTIVAZIONE_IN: + case NotificationMessageIF.NotificationType_CRMB_ATTIVAZIONE_IN: + case NotificationMessageIF.NotificationType_CRMA_ATTIVAZIONE_IN: + // acquisisce la rchiesta proveniente da CRM + // inserendo nella gnp_richiesta_rec + processaRichiesta(messaggio); + break; - // acquisisce la rchiesta proveniente da CRM - // inserendo nella gnp_richiesta_rec - processaRichiesta(messaggio); - break; - case NotificationMessageIF.NotificationType_CRMR_ESPLETAMNETO_HZ_NIP: - processaRichiestaHZ(messaggio); - break; - case NotificationMessageIF.NotificationType_CRMR_NOTIFICA_OUT: - case NotificationMessageIF.NotificationType_CRMB_NOTIFICA_OUT: - case NotificationMessageIF.NotificationType_CRMA_NOTIFICA_OUT: + case NotificationMessageIF.NotificationType_CRMR_ESPLETAMNETO_HZ_NIP: + processaRichiestaHZ(messaggio); + break; - // notifica la risposta dell'evento ricevuto - inviaNotificaCRM(messaggio); - break; + case NotificationMessageIF.NotificationType_CRMR_NOTIFICA_OUT: + case NotificationMessageIF.NotificationType_CRMB_NOTIFICA_OUT: + case NotificationMessageIF.NotificationType_CRMA_NOTIFICA_OUT: + // notifica la risposta dell'evento ricevuto + inviaNotificaCRM(messaggio); + break; - case NotificationMessageIF.NotificationType_CRMA_VERIFICA_CS: - case NotificationMessageIF.NotificationType_CRMB_VERIFICA_CS: - case NotificationMessageIF.NotificationType_CRMR_VERIFICA_CS: + case NotificationMessageIF.NotificationType_CRMA_VERIFICA_CS: + case NotificationMessageIF.NotificationType_CRMB_VERIFICA_CS: + case NotificationMessageIF.NotificationType_CRMR_VERIFICA_CS: + // crea il tracciato di verifca codice segreto donor e lo invia + inviaVerificaCS(messaggio); + break; - // crea il tracciato di verifca codice segreto donor e lo invia - inviaVerificaCS(messaggio); - break; + case NotificationMessageIF.NotificationType_CRMA_ESITO_VERIFICA_CS: + case NotificationMessageIF.NotificationType_CRMB_ESITO_VERIFICA_CS: + case NotificationMessageIF.NotificationType_CRMR_ESITO_VERIFICA_CS: + // crea il tracciato di verifca codice segreto donor e lo invia + elaboraEsitoVerificaCs(messaggio); + break; - case NotificationMessageIF.NotificationType_CRMA_ESITO_VERIFICA_CS: - case NotificationMessageIF.NotificationType_CRMB_ESITO_VERIFICA_CS: - case NotificationMessageIF.NotificationType_CRMR_ESITO_VERIFICA_CS: + case NotificationMessageIF.NotificationType_CRMB_DONOR_OUT: + case NotificationMessageIF.NotificationType_CRMR_DONOR_OUT: + inviaNotificaDonorOut(messaggio); + break; - // crea il tracciato di verifca codice segreto donor e lo invia - elaboraEsitoVerificaCs(messaggio); - break; + case NotificationMessageIF.NotificationType_CRMB_ESITO_VERIFICA_DONOR_OUT_82: + inviaNotificaEsitoDonorOut82(messaggio); + break; - case NotificationMessageIF.NotificationType_CRMB_DONOR_OUT: - case NotificationMessageIF.NotificationType_CRMR_DONOR_OUT: - inviaNotificaDonorOut(messaggio); - break; - - default: - log.write("9999", "NOTIFICATION TYPE SCONOSCIUTO" + Func.getFieldDescription(messaggio)); - - break; + default: + log.write("9999", "NOTIFICATION TYPE SCONOSCIUTO" + Func.getFieldDescription(messaggio)); + break; } // Log 0006 (N) = 'FINE TRATTAMENTO MESSAGGIO' @@ -1111,8 +1112,9 @@ public abstract class AbstractCRMController extends SystemController implements /** * Elabora le richieste di Del 35 MultiDonor (FWA ed FFTTX) * - * @param uniqueId String - * @return NotificationMessage + * @param crmInRec + * @param processo + * @throws Exception */ private void elaboraDel35MultiDonor(AbstractGnpCrmInRec crmInRec, String processo) throws Exception { log.write("9999", "START elaboraDel35MultiDonor"); @@ -2910,5 +2912,128 @@ public abstract class AbstractCRMController extends SystemController implements } return toRet; } - + + public void invioNotificaEsitoD82(GnpCrmNotifyDonorOut notifica) throws Exception { + log.write("9999", "invioNotifica - codice richiesta: " + notifica.getCodiceRichiesta() + " - tipo evento: " + notifica.getTipoEvento() + " - unique id: " + notifica.getUniqueId()); + NotificationMessage message = creaNotificaEsitoDonorOut82(notifica.getUniqueId()); + inserisciNotificaInCoda(message); + } + + public NotificationMessage creaNotificaEsitoDonorOut82(Long uniqueId) { + UniqueIdNotificationMessage messaggio = new UniqueIdNotificationMessage(); + messaggio.setUnique_id(uniqueId); + messaggio.setNotificationType(NotificationMessageIF.NotificationType_CRMB_ESITO_VERIFICA_DONOR_OUT_82); + messaggio.setSystemProvider(NotificationMessageIF.SystemProvider_CRMB); + return messaggio; + } + + /** + * DBCFX_RU_363 - Offerta Open Fiber FTTH (Business) - FASE3 Verifica del codice sessione da NOW (N8), ed uscita verso CRMB con l'esito (N9) + * Il metodo inviaNotificaDonorOut82 invia le notifiche N9 da DBCFX a CRMB tramite il metodo per le Notifiche Processo di Migrazione (Uscite) + * @param messaggio + * @throws Exception + */ + protected void inviaNotificaEsitoDonorOut82(NotificationMessage messaggio) throws Exception { + log.write("9999", "inviaNotificaEsitoDonorOut82"); + + GnpCrmNotifyDonorOutDAO dao = new GnpCrmNotifyDonorOutDAO(); + Long uniqueId = ((UniqueIdNotificationMessage) messaggio).getUnique_id(); + log.write("9999", "Ricerca GnpCrmNotifyDonorOut con UNIQUE_ID [" + uniqueId + "]"); + GnpCrmNotifyDonorOut gnpCrmNotifyDonorOut = new GnpCrmNotifyDonorOutDAO().findById(uniqueId); + + 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 VERIFICA CODICE SESSIONE DEL.82 FASE3 GIA' SCODATA :[" + Func.getFieldDescription(gnpCrmNotifyDonorOut) + "]"); + break; + case 1: + + GnpNowD82RichiesteOutDAO nowDonorOutDAO = new GnpNowD82RichiesteOutDAO(); + GnpNowD82RichiesteOut nowDonorOut = null; + nowDonorOut = nowDonorOutDAO.findByIdRichiesta82(gnpCrmNotifyDonorOut.getCodiceRichiesta()); + + gnpCrmNotifyDonorOut.setDaScodare((long) 0); + + gnpCrmNotifyDonorOut.setDataInvioMessaggio(new java.util.Date()); + dao.merge(gnpCrmNotifyDonorOut); + + SetEventiDBCFXRequest eventReq = new SetEventiDBCFXRequest(); + Corpo corpo = new Corpo(); + + corpo.setDirectoryNumber(gnpCrmNotifyDonorOut.getDirectoryNumber()); + corpo.setCodiceRichiesta(gnpCrmNotifyDonorOut.getCodiceSessione()); + corpo.setNativoTLC(gnpCrmNotifyDonorOut.getNativoTlc()); + corpo.setTipoEvento(gnpCrmNotifyDonorOut.getTipoEvento()); + corpo.setAmbito(gnpCrmNotifyDonorOut.getAmbito()); + corpo.setIdentificativoOperatoreDonating(gnpCrmNotifyDonorOut.getIdOperatoreDonating()); + + if (!Func.isNull(gnpCrmNotifyDonorOut.getCodFiscalePartitaIva())) + corpo.setCognomeCliente(gnpCrmNotifyDonorOut.getCodFiscalePartitaIva()); + else if(!Func.isNull(gnpCrmNotifyDonorOut.getCognomeCliente())) + corpo.setCognomeCliente(gnpCrmNotifyDonorOut.getCognomeCliente()); + + // Data/ora di invio OK/KO Fase 3 + if (gnpCrmNotifyDonorOut.getDataInvioMessaggio() != null) { + corpo.setDataInvioMessaggio(new SimpleDateFormat(dimStrFormat).format(new Date())); + } + + corpo.setCodiceOrdineOLO(gnpCrmNotifyDonorOut.getCodiceOrdineOlo()); + + //Per Del.82 non gestiamo le Note provenienti da NOW, per Del.274 in assenza delle note si mappa il valore getNOW_CAMPO_NOTE_DEFAULT_SR_CRMB + //corpo.setNote(Resources.getNOW_CAMPO_NOTE_DEFAULT_SR_CRMB()); + + corpo.setFlagNP(gnpCrmNotifyDonorOut.getFlagNp()); + + // Data/ora ricezione notifica di verifica Codice Sessione (N8) preso da GnpNowD82RichiesteOut + corpo.setDataOrdine(new SimpleDateFormat(dimStrFormat).format(nowDonorOut.getDataCreazione())); + + if (gnpCrmNotifyDonorOut.getAggiuntivi() != null) { + String[] aggiuntivi = gnpCrmNotifyDonorOut.getAggiuntivi().split(";"); + ListaAggiuntivi tagDnAgg = new ListaAggiuntivi(); + for (String singleDn : aggiuntivi) { + ListaAggiuntiviItem numero = new ListaAggiuntiviItem(); + numero.setAggiuntivo(singleDn); + tagDnAgg.addListaAggiuntiviItem(numero); + } + corpo.setListaAggiuntivi(tagDnAgg); + } + + // I dati di COS, COR e COW non vengono passati a CRMB, poiche' mancano nell'interfaccia esposta a DBCFX + // corpo.setCodiceSegreto(gnpCrmNotifyDonorOut.getCodiceSegreto()); + // In corpo non abbiamo i campi per gnpCrmNotifyDonorOut.getCow() e gnpCrmNotifyDonorOut.getCor() + + corpo.setOAO(gnpCrmNotifyDonorOut.getCodiceOloRecipient()); + + // Set Esito (OK/KO) e Motivo Rifiuto in caso di KO nello scenario gnpCrmNotifyDonorOut.getTipoEvento() == "FASE3DEL82" and gnpCrmNotifyDonorOut.getAmbito() == "USCITANP_DEL82" + corpo.setEsito_Fase3(nowDonorOut.getEsito()); + corpo.setCausale_Fase3(nowDonorOut.getMotivazione()); + + eventReq.setCorpo(corpo); + String xml = CrmXAO.getXmlFromSetEvDBCFXReq(eventReq); + + log.write("9999", "xml: " + xml); + + CRMCommunicationManager crmClient; + if (CRMMap.PIATTAFORMA_B.equalsIgnoreCase(gnpCrmNotifyDonorOut.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(); + log.write("9999", + "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()); + } + log.write("9999", "inviaNotificaEsitoDonorOut82 - FINE"); + } + } } 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 3c4730b0..623fd28c 100644 --- a/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/CRMBController.java +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/systemcontroller/crm/CRMBController.java @@ -6,7 +6,6 @@ import it.telecomitalia.soa.soap.soapheader.HeaderType; import it.valueteam.gnp.dao.db.hb.*; import it.valueteam.gnp.dao.db.hb.crm.*; import it.valueteam.gnp.dao.xml.CrmXAO; -import it.valueteam.gnp.dao.xml.crm.dbcfxtocrm.respeventi.SetEventiDBCFXResponse; import it.valueteam.gnp.dao.xml.crm.donor.dbcfxtocrm.ListOfTiiosetascodmigrazionedbconline; import it.valueteam.gnp.dao.xml.crm.donor.dbcfxtocrm.SiebelMessage; import it.valueteam.gnp.dao.xml.crm.donor.dbcfxtocrm.Tibcascodmigrazionedbconline; @@ -51,13 +50,15 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF private static final String versione = "1.0.0"; private static CRMBController onlyInstance; + protected GnpCrmNotifyDonorOutDAO crmbNotifyDonorOutDAO = null; + /** * Costruttore privato di default * @throws Exception */ private CRMBController() throws Exception { - + crmbNotifyDonorOutDAO = new GnpCrmNotifyDonorOutDAO(); } /** @@ -65,7 +66,6 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF * @return CRMRController */ public static CRMBController getInstance() throws Exception { - if (onlyInstance == null) onlyInstance = new CRMBController(); return onlyInstance; @@ -281,7 +281,6 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF GnpRichiesteDonor82DAO daoRichiesteD82 = new GnpRichiesteDonor82DAO(); richiesteD82 = daoRichiesteD82.findByCodiceSessione(crmbDonorOut.getCodiceSessione()); - if (richCsNpg35 == null) { richiesta = dao.findByCodiceSessione(crmbDonorOut.getCodiceSessione()); } @@ -289,9 +288,6 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF richiestaDonNatOlo = donNatDao.findById(new Long(crmbDonorOut.getCodiceSessione())); } - // oppure e' donor ma in stato 2 - //perche' se esiste una richiesta donor ma e' gia' in uno stato piu' avanti non manda una ceppa - // 152248 - 227248 del 103 // DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): esteso if richiesteD82 != null per Del.82 if ( richCsNpg35 != null || //se e' una richiesta CsNpg35 @@ -427,6 +423,7 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF ListOfTiiosetascodmigrazionedbconline list = new ListOfTiiosetascodmigrazionedbconline(); Tibcascodmigrazionedbconline request = new Tibcascodmigrazionedbconline(); request.setTI_CODICE_SESSIONE(crmbDonorOut.getCodiceSessione()); + request.setTI_COS(crmbDonorOut.getCos()); request.setTI_COR(crmbDonorOut.getCor()); request.setTI_COW(crmbDonorOut.getCowDonating()); request.setTI_TIPO_CHIAMATA(crmbDonorOut.getTipoChiamata()); @@ -722,4 +719,16 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF } return response; } + + public GnpCrmNotifyDonorOut creaNotificaEsitoN9(GnpRichiesteDonor82 richiesta) throws Exception { + log.write("9999", "Entro in creaNotificaEsitoN9 per richiesta " + richiesta.getIdRichiesta()); + GnpCrmNotifyDonorOut crmbNotifyDonorOut = null; + + crmbNotifyDonorOut = (new CRMBFormatController()).createNotificaCsDonor82(richiesta); + + crmbNotifyDonorOutDAO.save(crmbNotifyDonorOut); + return crmbNotifyDonorOut; + } + + } 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 9b51ace7..cd698326 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 @@ -10,6 +10,7 @@ import it.valueteam.gnp.dao.xml.crm.dbcfxtocrm.http.*; import it.valueteam.gnp.dao.xml.crm.donor.crmtodbcfx.EsitoVerificaCS; import it.valueteam.gnp.obj.*; import it.valueteam.gnp.utility.DateUtils; +import it.valueteam.gnp.utility.Func; import it.valueteam.gnp.utility.Resources; import it.valueteam.gnp.utility.XmlUtility; import tim.infobus.data.TID; @@ -41,6 +42,9 @@ import java.util.List; */ public class CRMBFormatController extends AbstractCRMFormatController { + + protected static final String AMBITO_USCITA_82 = "USCITANP_DEL82"; + public CRMBFormatController() { } @@ -102,7 +106,7 @@ extends AbstractCRMFormatController { /** * createCrmScartInRec - * @param crmInRec GnpCrmInRec + * @param tracciato GnpCrmInRec * * @return GnpCrmScartiIn */ @@ -220,7 +224,7 @@ extends AbstractCRMFormatController { /** * executeDuplicationControl * vedi AbstractCRMFormatController - * @param uniqueId String + * @param idEsigenza String * @param tipoEvento String * @return boolean */ @@ -673,6 +677,7 @@ extends AbstractCRMFormatController { crmbDonorOut.setCodiceRichiesta(richiesta.getIdRichiesta()); crmbDonorOut.setCodiceSessione(richiesta.getCodiceSessione()); crmbDonorOut.setCor(richiesta.getCor()); + crmbDonorOut.setCos(richiesta.getCos()); crmbDonorOut.setDataInvio(new Date()); crmbDonorOut.setCodOrdineOLO(richiesta.getCodiceOrdineRecipient()); crmbDonorOut.setCodOLORecipient(richiesta.getCowRecipient()); @@ -792,6 +797,47 @@ extends AbstractCRMFormatController { return notifyOut; } + + public GnpCrmNotifyDonorOut createNotificaCsDonor82(GnpRichiesteDonor82 richiesta) throws Exception { + GnpCrmNotifyDonorOut crmbNotifyDonorOut = new GnpCrmNotifyDonorOut(); + crmbNotifyDonorOut.setDaScodare(new Long(1)); + crmbNotifyDonorOut.setAmbito(AMBITO_USCITA_82); + crmbNotifyDonorOut.setTipoEvento(CRMMap.TIPOEVENTO_ESITO_VERIFICA_CODICE_SESSIONE); + crmbNotifyDonorOut.setCodiceRichiesta(richiesta.getIdRichiesta()); + crmbNotifyDonorOut.setCodiceSessione(richiesta.getCodiceSessione()); + crmbNotifyDonorOut.setCow(richiesta.getCowDonating()); + crmbNotifyDonorOut.setDirectoryNumber(richiesta.getDn()); + crmbNotifyDonorOut.setCodiceOrdineOlo(richiesta.getCodiceOrdineRecipient()); + crmbNotifyDonorOut.setCodiceOloRecipient(richiesta.getCowRecipient()); + crmbNotifyDonorOut.setCodiceSegreto(richiesta.getCos()); + crmbNotifyDonorOut.setFlagNp("N"); + crmbNotifyDonorOut.setCor(richiesta.getCor()); + crmbNotifyDonorOut.setCodiceSegreto(richiesta.getCos()); + crmbNotifyDonorOut.setSistComp(richiesta.getCrmCompetenza()); + crmbNotifyDonorOut.setDataOrdine(richiesta.getDataRicezione()); + crmbNotifyDonorOut.setCognomeCliente(richiesta.getCognomeCliente()); + crmbNotifyDonorOut.setIdOperatoreDonor("TLC"); + crmbNotifyDonorOut.setIdOperatoreDonating("TLC"); + crmbNotifyDonorOut.setCodFiscalePartitaIva(richiesta.getCodFiscalePartitaIva()); + crmbNotifyDonorOut.setNativoTlc("Y"); + + String aggiuntivi = ""; + + if (!Func.isNull(richiesta.getDn2())) aggiuntivi += richiesta.getDn2() + ";"; + if (!Func.isNull(richiesta.getDn3())) aggiuntivi += richiesta.getDn3() + ";"; + if (!Func.isNull(richiesta.getDn4())) aggiuntivi += richiesta.getDn4() + ";"; + if (!Func.isNull(richiesta.getDn5())) aggiuntivi += richiesta.getDn5() + ";"; + if (!Func.isNull(richiesta.getDn6())) aggiuntivi += richiesta.getDn6() + ";"; + if (!Func.isNull(richiesta.getDn7())) aggiuntivi += richiesta.getDn7() + ";"; + if (!Func.isNull(richiesta.getDn8())) aggiuntivi += richiesta.getDn8() + ";"; + if (!Func.isNull(richiesta.getDn9())) aggiuntivi += richiesta.getDn9() + ";"; + if (!Func.isNull(richiesta.getDn10())) aggiuntivi += richiesta.getDn10() + ";"; + if (aggiuntivi.endsWith(";")) aggiuntivi = aggiuntivi.substring(0, aggiuntivi.length()-1); + if (!"".equals(aggiuntivi)) crmbNotifyDonorOut.setAggiuntivi(aggiuntivi); + + return crmbNotifyDonorOut; + } + } 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 02c2a6cc..ccf8553d 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 @@ -1732,7 +1732,7 @@ public class DBSSFormatController extends FormatController { if (aggiuntivi.endsWith(";")) aggiuntivi = aggiuntivi.substring(0, aggiuntivi.length()-1); if (!aggiuntivi.equals("")) notifyOut.setAggiuntivi(aggiuntivi); - // TODO adeguamento IS NP se ci sono num metto ad Y else a N + // TODO adeguamento IS NP flag, se ci sono numerazioni metto ad "Y" altrimenti ad "N" if (nowIn.getNpDn1() != null) { notifyOut.setFlagNp("Y"); } else { @@ -1741,7 +1741,11 @@ public class DBSSFormatController extends FormatController { notifyOut.setSistComp(richiesta.getCrmCompetenza()); - if ((DBSSMap.EVENTO_ESPLETAMENTO).equals(notifyOut.getTipoEvento()) || (DBSSMap.EVENTO_ANNULLAMENTO).equals(notifyOut.getTipoEvento())) { + if ( + (DBSSMap.EVENTO_ESPLETAMENTO).equals(notifyOut.getTipoEvento()) || + (DBSSMap.EVENTO_ANNULLAMENTO).equals(notifyOut.getTipoEvento()) || + (DBSSMap.EVENTO_ESPLETAMENTO_KO).equals(notifyOut.getTipoEvento()) + ) { notifyOut.setDes(nowIn.getDataEspletamento()); } 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 cdbaf96a..73fd0979 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 @@ -238,7 +238,15 @@ public class NowController extends SystemController { Long idRichiesta = ((GnpNowD82RichiesteIn) ((nowDonorInDAO.findByCodiceOrdineWhs(nowDonorIn.getCodiceOrdineWhs())).get(0))).getIdRichiestaD82(); if(idRichiesta != null) { GnpRichiesteDonor82 richiesta = richDonorDAO.findById(idRichiesta); - DBSSController.getInstance().notificaDbss(richiesta, nowDonorIn); + + if(richiesta.getCrmCompetenza().equalsIgnoreCase("D")) { + DBSSController.getInstance().notificaDbss(richiesta, nowDonorIn); + } + else { // DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): aggiunto else per lo scenario Business getCrmCompetenza == "B" + // invocare notifiche espletamenti (N10) verso CRMB + + } + DbcfxgoController.getInstance().inviaNotificaDbcfxgoD82(richiesta, null, null, nowDonorIn, null); } else { @@ -987,6 +995,7 @@ public class NowController extends SystemController { RequestManagerDonor82.callNotificaFase3DBSS(log, donor82, notifyDonorOutDAO, nowDonorOut); } else { //aggiungere chiamata verso CRMB + RequestManagerDonor82.callNotificaFase3CRMB(log, donor82); } } diff --git a/gnpdev/wsdbcfx/wsdl/crmdonor/CRM_TO_DBCFX_DONORFase2Del82.xsd b/gnpdev/wsdbcfx/wsdl/crmdonor/CRM_TO_DBCFX_DONORFase2Del82.xsd new file mode 100644 index 00000000..c1c30068 --- /dev/null +++ b/gnpdev/wsdbcfx/wsdl/crmdonor/CRM_TO_DBCFX_DONORFase2Del82.xsd @@ -0,0 +1,71 @@ + + + + + Esito verifica CS - CRM to DBCFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +