DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): Implement FASE3 richiesta di verifica codice sessione (N8/N9)

This commit is contained in:
vincenzofariello
2024-06-20 10:24:11 +02:00
parent a61c478d93
commit 111f5018a7
19 changed files with 487 additions and 70 deletions

View File

@@ -1,9 +1,12 @@
ALTER TABLE GNP_CRMB_DONOR_OUT ALTER TABLE ùGNP_CRMB_DONOR_OUT
ADD "CODICE_RICHIESTA" NUMBER; ADD "CODICE_RICHIESTA" NUMBER;
ALTER TABLE GNP_CRMB_DONOR_OUT ALTER TABLE GNP_CRMB_DONOR_OUT
ADD "COR" VARCHAR2(12 BYTE); ADD "COR" VARCHAR2(12 BYTE);
ALTER TABLE GNP_CRMB_DONOR_OUT
ADD "COS" VARCHAR2(3 BYTE);
ALTER TABLE GNP_CRMB_DONOR_OUT ALTER TABLE GNP_CRMB_DONOR_OUT
ADD "CODICE_ORDINE_OLO" VARCHAR2(50 BYTE); ADD "CODICE_ORDINE_OLO" VARCHAR2(50 BYTE);

View File

@@ -32,6 +32,8 @@
</xs:element> </xs:element>
<xs:element name="OAO" type="xs:string" minOccurs="0"/> <xs:element name="OAO" type="xs:string" minOccurs="0"/>
<xs:element name="CodiceSegreto" type="xs:string" minOccurs="0"/> <xs:element name="CodiceSegreto" type="xs:string" minOccurs="0"/>
<xs:element name="Esito_Fase3" type="xs:string" minOccurs="0"/>
<xs:element name="Causale_Fase3" type="xs:string" minOccurs="0"/>
</xs:all> </xs:all>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="SetEventiDBCFXRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="Corpo">
<xs:complexType>
<xs:all>
<xs:element name="DirectoryNumber" type="xs:string"/>
<xs:element name="CodiceRichiesta" type="xs:string"/>
<xs:element name="NativoTLC" type="xs:string" minOccurs="0"/>
<xs:element name="TipoEvento" type="xs:string" minOccurs="0"/>
<xs:element name="DAC" type="xs:string" minOccurs="0"/>
<xs:element name="DES" type="xs:string" minOccurs="0"/>
<xs:element name="TipoLinea" type="xs:string" minOccurs="0"/>
<xs:element name="Ambito" type="xs:string"/>
<xs:element name="IdentificativoOperatoreDonating" type="xs:string" minOccurs="0"/>
<xs:element name="CognomeCliente" type="xs:string" minOccurs="0"/>
<xs:element name="DataInvioMessaggio" type="xs:string" minOccurs="0"/>
<xs:element name="CodiceOrdineOLO" type="xs:string"/>
<xs:element name="Note" type="xs:string" minOccurs="0"/>
<xs:element name="FlagNP" type="xs:string" minOccurs="0"/>
<xs:element name="DataOrdine" type="xs:string" minOccurs="0"/>
<xs:element name="TelefonoReferenteRichiedente" type="xs:string" minOccurs="0"/>
<xs:element name="ListaAggiuntivi" minOccurs="0">
<xs:complexType>
<xs:sequence maxOccurs="10">
<xs:element name="Aggiuntivo" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OAO" type="xs:string" minOccurs="0"/>
<xs:element name="CodiceSegreto" type="xs:string" minOccurs="0"/>
<xs:element name="Esito_Fase3" type="xs:string" minOccurs="0"/>
<xs:element name="Causale_Fase3" type="xs:string" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@@ -31,18 +31,6 @@
<xs:element name="TI_COW" type="string3TYPE" minOccurs="1"/> <xs:element name="TI_COW" type="string3TYPE" minOccurs="1"/>
<xs:element name="TI_COR" type="string12TYPE" minOccurs="1"/> <xs:element name="TI_COR" type="string12TYPE" minOccurs="1"/>
<xs:element name="TI_TIPO_CHIAMATA" type="tipoChiamataTYPE" minOccurs="1"/> <xs:element name="TI_TIPO_CHIAMATA" type="tipoChiamataTYPE" minOccurs="1"/>
<!-- Draft Nuovi campi CRMB -->
<xs:element name="TI_ID_ODM" type="xs:string" minOccurs="0"/>
<xs:element name="TI_COD_OAO_RECIPIENT" type="xs:string" minOccurs="0"/>
<xs:element name="TI_NUMERAZIONE_PRINCIPALE" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN1" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN2" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN3" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN4" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN5" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN6" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN7" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DATA_ORA_NOTIFICA" type="xs:string" minOccurs="1"/>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="SiebelMessage">
<xs:complexType>
<xs:sequence>
<xs:element ref="ListOfTiiosetascodmigrazionedbconline"/>
</xs:sequence>
<xs:attribute name="System"/>
<xs:attribute name="Service"/>
<xs:attribute name="Tid"/>
<xs:attribute name="ReturnCode"/>
<xs:attribute name="ErrorDescription"/>
<xs:attribute name="OperationCode"/>
<xs:attribute name="MessageId"/>
<xs:attribute name="MessageType"/>
<xs:attribute name="IntObjectName"/>
<xs:attribute name="IntObjectFormat"/>
</xs:complexType>
</xs:element>
<xs:element name="ListOfTiiosetascodmigrazionedbconline">
<xs:complexType>
<xs:sequence>
<xs:element ref="Tibcascodmigrazionedbconline" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tibcascodmigrazionedbconline">
<xs:complexType>
<xs:sequence>
<xs:element name="TI_CODICE_SESSIONE" type="xs:string" minOccurs="1"/>
<xs:element name="TI_COS" type="xs:string" minOccurs="1"/>
<xs:element name="TI_COW" type="xs:string" minOccurs="1"/>
<xs:element name="TI_COR" type="xs:string" minOccurs="1"/>
<xs:element name="TI_TIPO_CHIAMATA" type="xs:string" minOccurs="1"/>
<xs:element name="TI_ID_ODM" type="xs:string" minOccurs="1"/>
<xs:element name="TI_COD_OAO_RECIPIENT" type="xs:string" minOccurs="1"/>
<xs:element name="TI_NUMERAZIONE_PRINCIPALE" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN1" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN2" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN3" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN4" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN5" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN6" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DN7" type="xs:string" minOccurs="0"/>
<xs:element name="TI_DATA_ORA_NOTIFICA" type="xs:dateTime" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="string3TYPE">
<xs:restriction base="xs:string">
<xs:maxLength value="3"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="string50TYPE">
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="tipoChiamataTYPE">
<xs:restriction base="xs:string">
<xs:pattern value="1|2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="string12TYPE">
<xs:restriction base="xs:string">
<xs:maxLength value="12"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@@ -11,9 +11,10 @@ public abstract class AbstractGnpCrmDonorOut implements java.io.Serializable {
private String tipoChiamata; private String tipoChiamata;
private Date dataInvio; 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 Long codiceRichiesta;
private String cor; private String cor;
private String cos;
private String codOLORecipient; private String codOLORecipient;
private String codOrdineOLO; private String codOrdineOLO;
private String dn1; private String dn1;
@@ -44,6 +45,28 @@ public abstract class AbstractGnpCrmDonorOut implements java.io.Serializable {
this.dataInvio = dataInvio; this.dataInvio = dataInvio;
} }
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() { public Long getUniqueId() {
return this.uniqueId; return this.uniqueId;
} }
@@ -110,6 +133,13 @@ public abstract class AbstractGnpCrmDonorOut implements java.io.Serializable {
this.cor = cor; this.cor = cor;
} }
public String getCos() {
return cos;
}
public void setCos(String cos) {
this.cos = cos;
}
public String getCodOLORecipient() { public String getCodOLORecipient() {
return codOLORecipient; return codOLORecipient;

View File

@@ -35,6 +35,9 @@
<property name="cor" type="string"> <property name="cor" type="string">
<column name="COR" length="12" /> <column name="COR" length="12" />
</property> </property>
<property name="cos" type="string">
<column name="COS" length="3" />
</property>
<property name="codOrdineOLO" type="string"> <property name="codOrdineOLO" type="string">
<column name="CODICE_ORDINE_OLO" length="50" /> <column name="CODICE_ORDINE_OLO" length="50" />
</property> </property>

View File

@@ -22,6 +22,8 @@ public class QueueControllerFactory {
return JNDINames.QUEUE_NAME_CRMB_IN; return JNDINames.QUEUE_NAME_CRMB_IN;
case NotificationMessageIF.NotificationType_CRMB_NOTIFICA_OUT: case NotificationMessageIF.NotificationType_CRMB_NOTIFICA_OUT:
case NotificationMessageIF.NotificationType_CRMB_DONOR_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; return JNDINames.QUEUE_NAME_CRMB_OUT;
case NotificationMessageIF.NotificationType_CRMB_VERIFICA_CS: case NotificationMessageIF.NotificationType_CRMB_VERIFICA_CS:
return JNDINames.QUEUE_NAME_CRMB_OUT; return JNDINames.QUEUE_NAME_CRMB_OUT;

View File

@@ -17,6 +17,7 @@ import it.valueteam.gnp.obj.ProcessMapper;
import it.valueteam.gnp.obj.StatoRichiestaDon; import it.valueteam.gnp.obj.StatoRichiestaDon;
import it.valueteam.gnp.systemcontroller.ControllerFactory; import it.valueteam.gnp.systemcontroller.ControllerFactory;
import it.valueteam.gnp.systemcontroller.SystemControllerIF; 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.crm.SistemaCrmIF;
import it.valueteam.gnp.systemcontroller.formatcontroller.dbss.DBSSController; import it.valueteam.gnp.systemcontroller.formatcontroller.dbss.DBSSController;
import it.valueteam.gnp.systemcontroller.formatcontroller.now.NowController; import it.valueteam.gnp.systemcontroller.formatcontroller.now.NowController;
@@ -722,6 +723,12 @@ public class RequestManagerDonor82 {
dbssController.invioNotificaD82(dbssDonorOut); 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) { private static boolean isUtenzaDBSS(String piattaforma) {
return "D".equalsIgnoreCase(piattaforma); return "D".equalsIgnoreCase(piattaforma);
} }

View File

@@ -117,6 +117,9 @@ public abstract class CRMMap {
public static final String DNAGG_OK = "OK"; public static final String DNAGG_OK = "OK";
public static final String DNAGG_KO = "KO"; public static final String DNAGG_KO = "KO";
// DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): Implement FASE 3
public static final String TIPOEVENTO_ESITO_VERIFICA_CODICE_SESSIONE = "FASE3DEL82";
private CRMMap() { private CRMMap() {
} }

View File

@@ -32,10 +32,14 @@ public interface NotificationMessageIF {
public static final int NotificationType_CRMB_VERIFICA_CS= 10; 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_ESITO_VERIFICA_CS= 13;
public static final int NotificationType_CRMB_DONOR_OUT = 14; public static final int NotificationType_CRMB_DONOR_OUT = 14;
// 152248 (227248) // 152248 (227248)
public static final int NotificationType_CRMB_ESPLETAMENTO_DONATING=65; 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_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 SystemProvider_CRMA = SystemControllerIF.SystemProvider_CRMA;
public static final int NotificationType_CRMA_ATTIVAZIONE_IN = 6; public static final int NotificationType_CRMA_ATTIVAZIONE_IN = 6;
public static final int NotificationType_CRMA_NOTIFICA_OUT = 7; public static final int NotificationType_CRMA_NOTIFICA_OUT = 7;

View File

@@ -657,18 +657,18 @@ public abstract class AbstractCRMController extends SystemController implements
case NotificationMessageIF.NotificationType_CRMR_ATTIVAZIONE_IN: case NotificationMessageIF.NotificationType_CRMR_ATTIVAZIONE_IN:
case NotificationMessageIF.NotificationType_CRMB_ATTIVAZIONE_IN: case NotificationMessageIF.NotificationType_CRMB_ATTIVAZIONE_IN:
case NotificationMessageIF.NotificationType_CRMA_ATTIVAZIONE_IN: case NotificationMessageIF.NotificationType_CRMA_ATTIVAZIONE_IN:
// acquisisce la rchiesta proveniente da CRM // acquisisce la rchiesta proveniente da CRM
// inserendo nella gnp_richiesta_rec // inserendo nella gnp_richiesta_rec
processaRichiesta(messaggio); processaRichiesta(messaggio);
break; break;
case NotificationMessageIF.NotificationType_CRMR_ESPLETAMNETO_HZ_NIP: case NotificationMessageIF.NotificationType_CRMR_ESPLETAMNETO_HZ_NIP:
processaRichiestaHZ(messaggio); processaRichiestaHZ(messaggio);
break; break;
case NotificationMessageIF.NotificationType_CRMR_NOTIFICA_OUT: case NotificationMessageIF.NotificationType_CRMR_NOTIFICA_OUT:
case NotificationMessageIF.NotificationType_CRMB_NOTIFICA_OUT: case NotificationMessageIF.NotificationType_CRMB_NOTIFICA_OUT:
case NotificationMessageIF.NotificationType_CRMA_NOTIFICA_OUT: case NotificationMessageIF.NotificationType_CRMA_NOTIFICA_OUT:
// notifica la risposta dell'evento ricevuto // notifica la risposta dell'evento ricevuto
inviaNotificaCRM(messaggio); inviaNotificaCRM(messaggio);
break; break;
@@ -676,7 +676,6 @@ public abstract class AbstractCRMController extends SystemController implements
case NotificationMessageIF.NotificationType_CRMA_VERIFICA_CS: case NotificationMessageIF.NotificationType_CRMA_VERIFICA_CS:
case NotificationMessageIF.NotificationType_CRMB_VERIFICA_CS: case NotificationMessageIF.NotificationType_CRMB_VERIFICA_CS:
case NotificationMessageIF.NotificationType_CRMR_VERIFICA_CS: case NotificationMessageIF.NotificationType_CRMR_VERIFICA_CS:
// crea il tracciato di verifca codice segreto donor e lo invia // crea il tracciato di verifca codice segreto donor e lo invia
inviaVerificaCS(messaggio); inviaVerificaCS(messaggio);
break; break;
@@ -684,7 +683,6 @@ public abstract class AbstractCRMController extends SystemController implements
case NotificationMessageIF.NotificationType_CRMA_ESITO_VERIFICA_CS: case NotificationMessageIF.NotificationType_CRMA_ESITO_VERIFICA_CS:
case NotificationMessageIF.NotificationType_CRMB_ESITO_VERIFICA_CS: case NotificationMessageIF.NotificationType_CRMB_ESITO_VERIFICA_CS:
case NotificationMessageIF.NotificationType_CRMR_ESITO_VERIFICA_CS: case NotificationMessageIF.NotificationType_CRMR_ESITO_VERIFICA_CS:
// crea il tracciato di verifca codice segreto donor e lo invia // crea il tracciato di verifca codice segreto donor e lo invia
elaboraEsitoVerificaCs(messaggio); elaboraEsitoVerificaCs(messaggio);
break; break;
@@ -694,9 +692,12 @@ public abstract class AbstractCRMController extends SystemController implements
inviaNotificaDonorOut(messaggio); inviaNotificaDonorOut(messaggio);
break; break;
case NotificationMessageIF.NotificationType_CRMB_ESITO_VERIFICA_DONOR_OUT_82:
inviaNotificaEsitoDonorOut82(messaggio);
break;
default: default:
log.write("9999", "NOTIFICATION TYPE SCONOSCIUTO" + Func.getFieldDescription(messaggio)); log.write("9999", "NOTIFICATION TYPE SCONOSCIUTO" + Func.getFieldDescription(messaggio));
break; break;
} }
@@ -1111,8 +1112,9 @@ public abstract class AbstractCRMController extends SystemController implements
/** /**
* Elabora le richieste di Del 35 MultiDonor (FWA ed FFTTX) * Elabora le richieste di Del 35 MultiDonor (FWA ed FFTTX)
* *
* @param uniqueId String * @param crmInRec
* @return NotificationMessage * @param processo
* @throws Exception
*/ */
private void elaboraDel35MultiDonor(AbstractGnpCrmInRec crmInRec, String processo) throws Exception { private void elaboraDel35MultiDonor(AbstractGnpCrmInRec crmInRec, String processo) throws Exception {
log.write("9999", "START elaboraDel35MultiDonor"); log.write("9999", "START elaboraDel35MultiDonor");
@@ -2911,4 +2913,127 @@ public abstract class AbstractCRMController extends SystemController implements
return toRet; 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");
}
}
} }

View File

@@ -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.*;
import it.valueteam.gnp.dao.db.hb.crm.*; import it.valueteam.gnp.dao.db.hb.crm.*;
import it.valueteam.gnp.dao.xml.CrmXAO; 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.ListOfTiiosetascodmigrazionedbconline;
import it.valueteam.gnp.dao.xml.crm.donor.dbcfxtocrm.SiebelMessage; import it.valueteam.gnp.dao.xml.crm.donor.dbcfxtocrm.SiebelMessage;
import it.valueteam.gnp.dao.xml.crm.donor.dbcfxtocrm.Tibcascodmigrazionedbconline; 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 final String versione = "1.0.0";
private static CRMBController onlyInstance; private static CRMBController onlyInstance;
protected GnpCrmNotifyDonorOutDAO crmbNotifyDonorOutDAO = null;
/** /**
* Costruttore privato di default * Costruttore privato di default
* @throws Exception * @throws Exception
*/ */
private CRMBController() throws Exception { private CRMBController() throws Exception {
crmbNotifyDonorOutDAO = new GnpCrmNotifyDonorOutDAO();
} }
/** /**
@@ -65,7 +66,6 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
* @return CRMRController * @return CRMRController
*/ */
public static CRMBController getInstance() throws Exception { public static CRMBController getInstance() throws Exception {
if (onlyInstance == null) if (onlyInstance == null)
onlyInstance = new CRMBController(); onlyInstance = new CRMBController();
return onlyInstance; return onlyInstance;
@@ -281,7 +281,6 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
GnpRichiesteDonor82DAO daoRichiesteD82 = new GnpRichiesteDonor82DAO(); GnpRichiesteDonor82DAO daoRichiesteD82 = new GnpRichiesteDonor82DAO();
richiesteD82 = daoRichiesteD82.findByCodiceSessione(crmbDonorOut.getCodiceSessione()); richiesteD82 = daoRichiesteD82.findByCodiceSessione(crmbDonorOut.getCodiceSessione());
if (richCsNpg35 == null) { if (richCsNpg35 == null) {
richiesta = dao.findByCodiceSessione(crmbDonorOut.getCodiceSessione()); richiesta = dao.findByCodiceSessione(crmbDonorOut.getCodiceSessione());
} }
@@ -289,9 +288,6 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
richiestaDonNatOlo = donNatDao.findById(new Long(crmbDonorOut.getCodiceSessione())); 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 // DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): esteso if richiesteD82 != null per Del.82
if ( if (
richCsNpg35 != null || //se e' una richiesta CsNpg35 richCsNpg35 != null || //se e' una richiesta CsNpg35
@@ -427,6 +423,7 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
ListOfTiiosetascodmigrazionedbconline list = new ListOfTiiosetascodmigrazionedbconline(); ListOfTiiosetascodmigrazionedbconline list = new ListOfTiiosetascodmigrazionedbconline();
Tibcascodmigrazionedbconline request = new Tibcascodmigrazionedbconline(); Tibcascodmigrazionedbconline request = new Tibcascodmigrazionedbconline();
request.setTI_CODICE_SESSIONE(crmbDonorOut.getCodiceSessione()); request.setTI_CODICE_SESSIONE(crmbDonorOut.getCodiceSessione());
request.setTI_COS(crmbDonorOut.getCos());
request.setTI_COR(crmbDonorOut.getCor()); request.setTI_COR(crmbDonorOut.getCor());
request.setTI_COW(crmbDonorOut.getCowDonating()); request.setTI_COW(crmbDonorOut.getCowDonating());
request.setTI_TIPO_CHIAMATA(crmbDonorOut.getTipoChiamata()); request.setTI_TIPO_CHIAMATA(crmbDonorOut.getTipoChiamata());
@@ -722,4 +719,16 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
} }
return response; 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;
}
} }

View File

@@ -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.dao.xml.crm.donor.crmtodbcfx.EsitoVerificaCS;
import it.valueteam.gnp.obj.*; import it.valueteam.gnp.obj.*;
import it.valueteam.gnp.utility.DateUtils; import it.valueteam.gnp.utility.DateUtils;
import it.valueteam.gnp.utility.Func;
import it.valueteam.gnp.utility.Resources; import it.valueteam.gnp.utility.Resources;
import it.valueteam.gnp.utility.XmlUtility; import it.valueteam.gnp.utility.XmlUtility;
import tim.infobus.data.TID; import tim.infobus.data.TID;
@@ -41,6 +42,9 @@ import java.util.List;
*/ */
public class CRMBFormatController public class CRMBFormatController
extends AbstractCRMFormatController { extends AbstractCRMFormatController {
protected static final String AMBITO_USCITA_82 = "USCITANP_DEL82";
public CRMBFormatController() { public CRMBFormatController() {
} }
@@ -102,7 +106,7 @@ extends AbstractCRMFormatController {
/** /**
* createCrmScartInRec * createCrmScartInRec
* @param crmInRec GnpCrmInRec * @param tracciato GnpCrmInRec
* *
* @return GnpCrmScartiIn * @return GnpCrmScartiIn
*/ */
@@ -220,7 +224,7 @@ extends AbstractCRMFormatController {
/** /**
* executeDuplicationControl * executeDuplicationControl
* vedi AbstractCRMFormatController * vedi AbstractCRMFormatController
* @param uniqueId String * @param idEsigenza String
* @param tipoEvento String * @param tipoEvento String
* @return boolean * @return boolean
*/ */
@@ -673,6 +677,7 @@ extends AbstractCRMFormatController {
crmbDonorOut.setCodiceRichiesta(richiesta.getIdRichiesta()); crmbDonorOut.setCodiceRichiesta(richiesta.getIdRichiesta());
crmbDonorOut.setCodiceSessione(richiesta.getCodiceSessione()); crmbDonorOut.setCodiceSessione(richiesta.getCodiceSessione());
crmbDonorOut.setCor(richiesta.getCor()); crmbDonorOut.setCor(richiesta.getCor());
crmbDonorOut.setCos(richiesta.getCos());
crmbDonorOut.setDataInvio(new Date()); crmbDonorOut.setDataInvio(new Date());
crmbDonorOut.setCodOrdineOLO(richiesta.getCodiceOrdineRecipient()); crmbDonorOut.setCodOrdineOLO(richiesta.getCodiceOrdineRecipient());
crmbDonorOut.setCodOLORecipient(richiesta.getCowRecipient()); crmbDonorOut.setCodOLORecipient(richiesta.getCowRecipient());
@@ -792,6 +797,47 @@ extends AbstractCRMFormatController {
return notifyOut; 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;
}
} }

View File

@@ -1732,7 +1732,7 @@ public class DBSSFormatController extends FormatController {
if (aggiuntivi.endsWith(";")) aggiuntivi = aggiuntivi.substring(0, aggiuntivi.length()-1); if (aggiuntivi.endsWith(";")) aggiuntivi = aggiuntivi.substring(0, aggiuntivi.length()-1);
if (!aggiuntivi.equals("")) notifyOut.setAggiuntivi(aggiuntivi); 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) { if (nowIn.getNpDn1() != null) {
notifyOut.setFlagNp("Y"); notifyOut.setFlagNp("Y");
} else { } else {
@@ -1741,7 +1741,11 @@ public class DBSSFormatController extends FormatController {
notifyOut.setSistComp(richiesta.getCrmCompetenza()); 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()); notifyOut.setDes(nowIn.getDataEspletamento());
} }

View File

@@ -238,7 +238,15 @@ public class NowController extends SystemController {
Long idRichiesta = ((GnpNowD82RichiesteIn) ((nowDonorInDAO.findByCodiceOrdineWhs(nowDonorIn.getCodiceOrdineWhs())).get(0))).getIdRichiestaD82(); Long idRichiesta = ((GnpNowD82RichiesteIn) ((nowDonorInDAO.findByCodiceOrdineWhs(nowDonorIn.getCodiceOrdineWhs())).get(0))).getIdRichiestaD82();
if(idRichiesta != null) { if(idRichiesta != null) {
GnpRichiesteDonor82 richiesta = richDonorDAO.findById(idRichiesta); GnpRichiesteDonor82 richiesta = richDonorDAO.findById(idRichiesta);
if(richiesta.getCrmCompetenza().equalsIgnoreCase("D")) {
DBSSController.getInstance().notificaDbss(richiesta, nowDonorIn); 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); DbcfxgoController.getInstance().inviaNotificaDbcfxgoD82(richiesta, null, null, nowDonorIn, null);
} }
else { else {
@@ -987,6 +995,7 @@ public class NowController extends SystemController {
RequestManagerDonor82.callNotificaFase3DBSS(log, donor82, notifyDonorOutDAO, nowDonorOut); RequestManagerDonor82.callNotificaFase3DBSS(log, donor82, notifyDonorOutDAO, nowDonorOut);
} else { } else {
//aggiungere chiamata verso CRMB //aggiungere chiamata verso CRMB
RequestManagerDonor82.callNotificaFase3CRMB(log, donor82);
} }
} }

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by VTSvil (ValueTeam) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:sm="http://dbcfx/SOA/EsitoVerificaCSDonor/2023-03-23"
targetNamespace="http://dbcfx/SOA/EsitoVerificaCSDonor/2023-03-23"
elementFormDefault="qualified"
version="1.1">
<xs:annotation>
<xs:documentation>Esito verifica CS - CRM to DBCFX </xs:documentation>
</xs:annotation>
<xs:element name="EsitoVerificaCS">
<xs:complexType>
<xs:all>
<xs:element name="CODICE_SESSIONE" type="sm:string50TYPE"/>
<xs:element name="PIATTAFORMA_PROVENIENZA" type="sm:piattaformaProvTYPE"/>
<xs:element name="ESITO" type="sm:flagOpzTYPE"/>
<xs:element name="CAUSALE" type="sm:string30TYPE" minOccurs="0"/>
<xs:element name="RADICALE_GNR" type="sm:string12TYPE" minOccurs="0"/>
<xs:element name="DN0" type="sm:string12TYPE"/>
<xs:element name="DN1" type="sm:string12TYPE" minOccurs="0"/>
<xs:element name="DN2" type="sm:string12TYPE" minOccurs="0"/>
<xs:element name="DN3" type="sm:string12TYPE" minOccurs="0"/>
<xs:element name="DN4" type="sm:string12TYPE" minOccurs="0"/>
<xs:element name="DN5" type="sm:string12TYPE" minOccurs="0"/>
<xs:element name="DN6" type="sm:string12TYPE" minOccurs="0"/>
<xs:element name="DN7" type="sm:string12TYPE" minOccurs="0"/>
<xs:element name="ADSL" type="sm:flagOpzTYPE" minOccurs="0"/>
<xs:element name="TI_OU_NUM" type="sm:string30TYPE"/>
<xs:element name="TI_ID_ODM" type="sm:string50TYPE"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="AckToCRM">
<xs:complexType>
<xs:all>
<xs:element name="COD_RISPOSTA" type="sm:string12TYPE" />
<xs:element name="DESC_RISPOSTA" type="sm:string50TYPE" />
</xs:all>
</xs:complexType>
</xs:element>
<xs:simpleType name="string50TYPE">
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="piattaformaProvTYPE">
<xs:restriction base="xs:string">
<xs:pattern value="R|B"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="string30TYPE">
<xs:restriction base="xs:string">
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="string12TYPE">
<xs:restriction base="xs:string">
<xs:maxLength value="12"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="flagTYPE">
<xs:restriction base="xs:string">
<xs:pattern value="0|1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="flagOpzTYPE">
<xs:restriction base="xs:string">
<xs:pattern value="0|1|"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>