DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): Implement FASE 2

This commit is contained in:
vincenzofariello
2024-06-17 15:19:15 +02:00
parent 66a27ae939
commit 8eee38ba35
12 changed files with 321 additions and 26 deletions

View File

@@ -1,5 +1,5 @@
@set ANT_HOME=apache-ant-1.9.2
@set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
@set JAVA_HOME=C:/Program Files/Java/jdk1.6.0_45s
@set PATH=%ANT_HOME%/bin;%JAVA_HOME%/bin
@set ANT_OPTS=-Xms512m -Xmx512m

View File

@@ -1,3 +1,3 @@
@set ANT_HOME=../apache-ant-1.9.2
@set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
@set JAVA_HOME=C:/Program Files/Java/jdk1.6.0_45
@set PATH=%ANT_HOME%/bin;%JAVA_HOME%/bin

View File

@@ -31,6 +31,18 @@
<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

@@ -11,10 +11,23 @@ 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
private Long codiceRichiesta;
private String cor;
private String codOLORecipient;
private String codOrdineOLO;
private String dn1;
private String dn2;
private String dn3;
private String dn4;
private String dn5;
private String dn6;
private String dn7;
public AbstractGnpCrmDonorOut() {
}
public AbstractGnpCrmDonorOut(Long daScodare, String cowDonating, String dn, String codiceSessione, String tipoChiamata) {
this.daScodare = daScodare;
this.cowDonating = cowDonating;
@@ -81,4 +94,90 @@ public abstract class AbstractGnpCrmDonorOut implements java.io.Serializable {
this.dataInvio = dataInvio;
}
public Long getCodiceRichiesta() {
return codiceRichiesta;
}
public void setCodiceRichiesta(Long codiceRichiesta) {
this.codiceRichiesta = codiceRichiesta;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public String getCodOLORecipient() {
return codOLORecipient;
}
public void setCodOLORecipient(String codOLORecipient) {
this.codOLORecipient = codOLORecipient;
}
public String getCodOrdineOLO() {
return codOrdineOLO;
}
public void setCodOrdineOLO(String codOrdineOLO) {
this.codOrdineOLO = codOrdineOLO;
}
public void setDn1(String dn1) {
this.dn1 = dn1;
}
public String getDn1() {
return dn1;
}
public String getDn2() {
return dn2;
}
public void setDn2(String dn2) {
this.dn2 = dn2;
}
public String getDn3() {
return dn3;
}
public void setDn3(String dn3) {
this.dn3 = dn3;
}
public String getDn4() {
return dn4;
}
public void setDn4(String dn4) {
this.dn4 = dn4;
}
public String getDn5() {
return dn5;
}
public void setDn5(String dn5) {
this.dn5 = dn5;
}
public String getDn6() {
return dn6;
}
public void setDn6(String dn6) {
this.dn6 = dn6;
}
public String getDn7() {
return dn7;
}
public void setDn7(String dn7) {
this.dn7 = dn7;
}
}

View File

@@ -28,5 +28,39 @@
<property name="dataInvio" type="timestamp">
<column name="DATA_INVIO" length="7" />
</property>
<!-- DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): Aggiunto mapping 11 nuovi campi per CRMB -->
<property name="codiceRichiesta" type="java.lang.Long">
<column name="CODICE_RICHIESTA" precision="22" scale="0" />
</property>
<property name="cor" type="string">
<column name="COR" length="12" />
</property>
<property name="codOrdineOLO" type="string">
<column name="CODICE_ORDINE_OLO" length="50" />
</property>
<property name="codOLORecipient" type="string">
<column name="COD_OLO_RECIPIENT" length="3" />
</property>
<property name="dn1" type="string">
<column name="DN1" length="20" />
</property>
<property name="dn2" type="string">
<column name="DN2" length="20" />
</property>
<property name="dn3" type="string">
<column name="DN3" length="20" />
</property>
<property name="dn4" type="string">
<column name="DN4" length="20" />
</property>
<property name="dn5" type="string">
<column name="DN5" length="20" />
</property>
<property name="dn6" type="string">
<column name="DN6" length="20" />
</property>
<property name="dn7" type="string">
<column name="DN7" length="20" />
</property>
</class>
</hibernate-mapping>

View File

@@ -24,10 +24,7 @@ import it.valueteam.gnp.recovery.RecoveryIF;
import it.valueteam.gnp.systemcontroller.SystemControllerIF;
import it.valueteam.gnp.systemcontroller.formatcontroller.crm.AbstractCRMFormatController;
import it.valueteam.gnp.systemcontroller.formatcontroller.crm.CRMBFormatController;
import it.valueteam.gnp.utility.CRMCommunicationManager;
import it.valueteam.gnp.utility.Resources;
import it.valueteam.gnp.utility.UserTransactionUtility;
import it.valueteam.gnp.utility.XmlUtility;
import it.valueteam.gnp.utility.*;
import tim.infobus.data.TID;
import javax.transaction.UserTransaction;
@@ -279,6 +276,12 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
GnpRichiesteDonor richiesta = null;
GnpRichiesteDonNatOlo richiestaDonNatOlo = null;
// DBCFX_RU_363 - Offerta Open Fiber FTTH (Business)
GnpRichiesteDonor82 richiesteD82 = new GnpRichiesteDonor82();
GnpRichiesteDonor82DAO daoRichiesteD82 = new GnpRichiesteDonor82DAO();
richiesteD82 = daoRichiesteD82.findByCodiceSessione(crmbDonorOut.getCodiceSessione());
if (richCsNpg35 == null) {
richiesta = dao.findByCodiceSessione(crmbDonorOut.getCodiceSessione());
}
@@ -286,21 +289,37 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
richiestaDonNatOlo = donNatDao.findById(new Long(crmbDonorOut.getCodiceSessione()));
}
if (richCsNpg35 != null || //se <20> una richiesta CsNpg35
// 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
(richiesta != null && richiesta.getStato().intValue() == 2) ||
(richiestaDonNatOlo != null && richiestaDonNatOlo.getStato().intValue() == StatoRichiestaDonNatOlo.ACQUISITA)) { // oppure <20> donor ma in stato 2
//perche' se esiste una richiesta donor ma <20> gi<67> in uno stato piu' avanti non manda una ceppa
// 152248 - 227248 del 103
(richiestaDonNatOlo != null && richiestaDonNatOlo.getStato().intValue() == StatoRichiestaDonNatOlo.ACQUISITA) ||
(richiesteD82 != null)
) {
if (Resources.CHECK_FB_MC_ENABLED()) {
sendVerificaCSHttp(crmbDonorOut);
} else {
if(richiesteD82 != null)
sendVerificaCS82Http(crmbDonorOut);
else
sendVerificaCSHttp(crmbDonorOut);
}
else {
sendVerificaCS(crmbDonorOut);
}
if (richCsNpg35 != null) {
RequestManagerCSNPg35.avanzaStatoInAttesaVerifica(richCsNpg35, log);
} else if (richiesta != null) {
}
else if (richiesta != null) {
RequestManagerDonor.avanzaStatoInAttesaVerifica(crmbDonorOut.getCodiceSessione(), log);
} else {
}
else if(richiesteD82 != null){
// DBCFX_RU_363 - Offerta Open Fiber FTTH (Business): avanziamo lo stato in Attesa Verifica (Fase 2)
RequestManagerDonor82.avanzaStatoInAttesaVerifica(richiesteD82.getCodiceSessione(), log);
}
else {
RequestManagerDonNatOlo.avanzaStatoInAttesaVerifica(richiestaDonNatOlo, log);
}
} else {
@@ -388,6 +407,65 @@ public class CRMBController extends AbstractCRMController implements RecoveryIF
}
}
/**
* DBCFX_RU_363 - Offerta Open Fiber FTTH (Delibera 82 - Business): invio richiesta verifica di uscita arrivata da OLO Recipient verso CRMB (FASE II)
* Colloquio DBC-FX  CRM-B per Richiesta Verifica CS - servizio: CheckFixedBusinessMigrationCode
* @param crmbDonorOut
* @throws Exception
*/
protected void sendVerificaCS82Http(GnpCrmbDonorOut crmbDonorOut) throws Exception {
SiebelMessage tracciato = new SiebelMessage();
tracciato.setSystem(InfobusMap.IDSYSTEM_VERIFICACS_CRMB);
tracciato.setService(InfobusMap.IDSRVS_VERIFICACS_CRMB);
tracciato.setTid(new TID().toString());
tracciato.setReturnCode("0");
tracciato.setErrorDescription("");
tracciato.setOperationCode("");
tracciato.setMessageId("");
tracciato.setMessageType("Integration Object");
tracciato.setIntObjectName("TIIOSetASCodMigrazioneDBCOnLine");
ListOfTiiosetascodmigrazionedbconline list = new ListOfTiiosetascodmigrazionedbconline();
Tibcascodmigrazionedbconline request = new Tibcascodmigrazionedbconline();
request.setTI_CODICE_SESSIONE(crmbDonorOut.getCodiceSessione());
request.setTI_COR(crmbDonorOut.getCor());
request.setTI_COW(crmbDonorOut.getCowDonating());
request.setTI_TIPO_CHIAMATA(crmbDonorOut.getTipoChiamata());
request.setTI_ID_ODM(crmbDonorOut.getCodOrdineOLO());
request.setTI_COD_OAO_RECIPIENT(crmbDonorOut.getCodOLORecipient());
request.setTI_NUMERAZIONE_PRINCIPALE(crmbDonorOut.getDn());
request.setTI_DATA_ORA_NOTIFICA(DateUtils.toString(crmbDonorOut.getDataInvio(), "dd-MM-yyyy"));
// check campi numerazioni opzionali DN1,...DN7.
if(!Func.isNull(crmbDonorOut.getDn1()))
request.setTI_DN1(crmbDonorOut.getDn1());
if(!Func.isNull(crmbDonorOut.getDn2()))
request.setTI_DN2(crmbDonorOut.getDn2());
if(!Func.isNull(crmbDonorOut.getDn3()))
request.setTI_DN3(crmbDonorOut.getDn3());
if(!Func.isNull(crmbDonorOut.getDn4()))
request.setTI_DN4(crmbDonorOut.getDn4());
if(!Func.isNull(crmbDonorOut.getDn5()))
request.setTI_DN5(crmbDonorOut.getDn5());
if(!Func.isNull(crmbDonorOut.getDn6()))
request.setTI_DN6(crmbDonorOut.getDn6());
if(!Func.isNull(crmbDonorOut.getDn7()))
request.setTI_DN7(crmbDonorOut.getDn7());
list.addTibcascodmigrazionedbconline(request);
tracciato.setListOfTiiosetascodmigrazionedbconline(list);
CRMCommunicationManager crmClient = new CRMCommunicationManager("CRMB", "CHECKFIXEDBUSINESSMIGRATIONCODE");
String xml = CrmXAO.getXmlFromSiebelMessage(tracciato);
log.write("9999", "tracciato sendVerificaCS82Http: " + xml);
String respXml = crmClient.sendFileMultipart(xml);
it.valueteam.gnp.dao.xml.crm.crmtodbcfx.ack.http.SiebelMessage respObj =
(it.valueteam.gnp.dao.xml.crm.crmtodbcfx.ack.http.SiebelMessage) XmlUtility
.getCastorXmlObjectFromXmlString(it.valueteam.gnp.dao.xml.crm.crmtodbcfx.ack.http.SiebelMessage.class, respXml, true);
if (!"0".equals(respObj.getReturnCode())) {
throw new Exception("esito sendVerificaCS82Http: " + respObj.getReturnCode() + " - descrizione sendVerificaCS82Http: " + respObj.getErrorDescription() +
" - Tid richiesta: " + tracciato.getTid());
}
}
/*
* RU_274
* crea il tracciato per la verifica codice segreto e lo invia mediante

View File

@@ -10,18 +10,17 @@ import it.valueteam.gnp.dao.xml.crm.dbcfxtocrm.*;
import it.valueteam.gnp.dao.xml.crm.donor.crmtodbcfx.EsitoVerificaCS;
import it.valueteam.gnp.exception.xml.MalformedXmlException;
import it.valueteam.gnp.log.ProcessLogger;
import it.valueteam.gnp.manager.RequestManagerDonor82;
import it.valueteam.gnp.obj.*;
import it.valueteam.gnp.systemcontroller.ControllerFactory;
import it.valueteam.gnp.systemcontroller.crm.SistemaCrmIF;
import it.valueteam.gnp.systemcontroller.formatcontroller.FormatController;
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 it.valueteam.gnp.utility.*;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import tim.infobus.data.TID;
import javax.transaction.UserTransaction;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@@ -300,6 +299,53 @@ public abstract class AbstractCRMFormatController extends FormatController {
}
public static dbcfx.soa.esitoverificacsdonor.x20230323.AckToCRM esitoVerificaCS82(dbcfx.soa.esitoverificacsdonor.x20230323.EsitoVerificaCS body, ProcessLogger log) throws Exception {
log.write("9999", "[esitoVerificaCS82 da CRMB] Ricevuto sendEsitoVerificaCS Del.82 per CODICE_SESSIONE[" + body.getCODICE_SESSIONE() + "] ESITO[" + body.getESITO() + "]");
dbcfx.soa.esitoverificacsdonor.x20230323.AckToCRM response = new dbcfx.soa.esitoverificacsdonor.x20230323.AckToCRM();
UserTransaction utx = null;
try {
utx = UserTransactionUtility.beginUserTransaction();
} catch (Exception e) {
log.error(e, "AbstractCRMFormatController.esitoVerificaCS82: beginUserTransaction");
throw e;
}
try {
GnpRichiesteDonor82DAO richDonorDao = new GnpRichiesteDonor82DAO();
GnpRichiesteDonor82 richiestaD82 = richDonorDao.findByCodiceSessione(body.getCODICE_SESSIONE());
if (richiestaD82 != null) {
response.setCOD_RISPOSTA("0");
response.setDESC_RISPOSTA("Esito sendEsitoVerificaCS Del.82 acquisito correttamente");
richiestaD82.setDataInvioEsitoFase2(new Date());
richiestaD82.setCodiceEsitoFase2(body.getESITO());
richiestaD82.setDescrEsitoFase2(body.getCAUSALE());
if (body.getESITO().equalsIgnoreCase("0")) {
RequestManagerDonor82.avanzaStatoInAccettata(richiestaD82, log);
} else {
RequestManagerDonor82.avanzaStatoInRifiutata(richiestaD82, body.getCAUSALE(), Integer.valueOf(body.getESITO()), false, log);
}
} else {
response.setCOD_RISPOSTA("1");
response.setDESC_RISPOSTA("Codice Sessione non trovato per Del.82");
log.write("9999", "[sendEsitoVerificaCS] Non trovata richiesta con codice sessione " + body.getCODICE_SESSIONE());
}
UserTransactionUtility.endUserTransaction(utx, true);
} catch (Exception ex) {
log.write("9999", "Errore in acquisizione esitoVerificaCS82: ] codice_sessione[" + body.getCODICE_SESSIONE() + "]" + " exception " + ex.getMessage());
response.setCOD_RISPOSTA("0");
response.setDESC_RISPOSTA(ex.getMessage());
ex.printStackTrace();
UserTransactionUtility.endUserTransaction(utx, false);
}
return response;
}
/**
* metodo per la validazione del tracciato proveniente dai sistemi CRM
* @param tracciato String - tracciato proveniente dai sistemi CRM

View File

@@ -669,6 +669,21 @@ extends AbstractCRMFormatController {
crmbDonorOut.setCodiceSessione(richiesta.getCodiceSessione());
crmbDonorOut.setTipoChiamata(ApplicationCostants.PROCESSO_DONOR.TIPO_CHIAMATA);
// DBCFX_RU_363 - Mapping nuovi campi verso CRMB
crmbDonorOut.setCodiceRichiesta(richiesta.getIdRichiesta());
crmbDonorOut.setCodiceSessione(richiesta.getCodiceSessione());
crmbDonorOut.setCor(richiesta.getCor());
crmbDonorOut.setDataInvio(new Date());
crmbDonorOut.setCodOrdineOLO(richiesta.getCodiceOrdineRecipient());
crmbDonorOut.setCodOLORecipient(richiesta.getCowRecipient());
crmbDonorOut.setDn1(richiesta.getDn2());
crmbDonorOut.setDn2(richiesta.getDn3());
crmbDonorOut.setDn3(richiesta.getDn4());
crmbDonorOut.setDn4(richiesta.getDn5());
crmbDonorOut.setDn5(richiesta.getDn6());
crmbDonorOut.setDn6(richiesta.getDn7());
crmbDonorOut.setDn7(richiesta.getDn8());
return crmbDonorOut;
}

View File

@@ -3,17 +3,24 @@ package it.valueteam.gnp.ws.crmb;
import javax.jws.HandlerChain;
import javax.jws.WebService;
import dbcfx.soa.esitoverificacsdonor.x20230323.EsitoVerificaCS;
import dbcfx.soa.esitoverificacsdonor.x20230323.AckToCRM;
import it.telecomitalia.soa.soap.soapheader.holders.HeaderTypeHolder;
import it.valueteam.gnp.log.Loggable;
import it.valueteam.gnp.log.ProcessLogger;
import it.valueteam.gnp.obj.LogInfo;
import it.valueteam.gnp.obj.LogProcess;
import it.valueteam.gnp.systemcontroller.crm.AbstractCRMController;
import it.valueteam.gnp.systemcontroller.formatcontroller.crm.AbstractCRMFormatController;
import it.valueteam.gnp.utility.Func;
import it.valueteam.gnp.utility.Resources;
import it.valueteam.gnp.utility.XmlUtility;
import it.valueteam.gnp.ws.crmws.EsitoVerificaCSDonorPortType;
import weblogic.jws.*;
/**
* EsitoVerificaCSDonorPortTypeImpl class implements web service endpoint interface EsitoVerificaCSDonorPortType */
@@ -51,21 +58,24 @@ public class EsitoVerificaCSDonorPortTypeImpl implements EsitoVerificaCSDonorPor
return logInfo;
}
public dbcfx.soa.esitoverificacsdonor.x20230323.AckToCRM sendEsitoVerificaCS(it.telecomitalia.soa.soap.soapheader.holders.HeaderTypeHolder Header,dbcfx.soa.esitoverificacsdonor.x20230323.EsitoVerificaCS body)
{
dbcfx.soa.esitoverificacsdonor.x20230323.AckToCRM toReturn = new dbcfx.soa.esitoverificacsdonor.x20230323.AckToCRM();
public AckToCRM sendEsitoVerificaCS(HeaderTypeHolder Header, EsitoVerificaCS body) {
AckToCRM toReturn = new AckToCRM();
try {
log.write("9999", "Response relativa alla richiesta con CODICE_SESSIONE[" + body.getCODICE_SESSIONE() + "]: " + XmlUtility.getXmlStringFromCastorXmlObject(toReturn));
toReturn = AbstractCRMFormatController.esitoVerificaCS(body, log);
log.write("9999", "Response sendEsitoVerificaCS relativa alla richiesta con CODICE_SESSIONE[" + body.getCODICE_SESSIONE() + "]: " + XmlUtility.getXmlStringFromCastorXmlObject(toReturn));
if(!Func.isNull(body.getCODICE_SESSIONE()) && body.getCODICE_SESSIONE().trim().startsWith("B"))
toReturn = AbstractCRMFormatController.esitoVerificaCS82(body, log);
else
toReturn = AbstractCRMFormatController.esitoVerificaCS(body, log);
} catch (Exception e) {
e.printStackTrace();
log.write("0003", " eccezione durante l'acquisizione della richiesta: " + e);
log.write("0003", " eccezione durante l'acquisizione della richiesta sendEsitoVerificaCS: " + e);
toReturn.setCOD_RISPOSTA(AbstractCRMController.KO_ATTIVAZIONE);
toReturn.setDESC_RISPOSTA(e.getMessage());
}
return toReturn;
}
}

View File

@@ -26,6 +26,7 @@
<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>