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;
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);

View File

@@ -32,6 +32,8 @@
</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>

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_COR" type="string12TYPE" 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:complexType>
</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 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;
@@ -44,7 +45,29 @@ public abstract class AbstractGnpCrmDonorOut implements java.io.Serializable {
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;

View File

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

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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{

View File

@@ -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;

View File

@@ -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");
@@ -2911,4 +2913,127 @@ 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");
}
}
}

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.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;
}
}

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.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;
}
}

View File

@@ -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());
}

View File

@@ -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);
}
}

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>