diff --git a/gnpapp/properties/delta_RU_XXX_resources.properties b/gnpapp/properties/delta_RU_XXX_resources.properties new file mode 100644 index 00000000..e147b4ba --- /dev/null +++ b/gnpapp/properties/delta_RU_XXX_resources.properties @@ -0,0 +1,11 @@ + +########################### INVIO FILE A DWHE ########################### +#header edl Donor + +PATH_FILE_DWHE2E_REPOSALDINETTI_IN=/gnpapp/batch/ftpin/dwhe2e_report/ +DWHE2E_REPOSALDINETTI_BACKUP_IN=/gnpapp/batch/backup_in/dwhe2e_report/ +#estensione dei file da inviare a CRMB +DWHE2E_REPOSALDINETTI_FILENAME_EXT=.csv +#Prefisso dei file per CRMB +DWHE2E_REPOSALDINETTI_FULL=01/01/2025 +DWHE2E_REPOSALDINETTI_DELTA=15 diff --git a/gnpdev/SFTPDaemon/properties/DELTA_RU_XXX_sfdp.properties b/gnpdev/SFTPDaemon/properties/DELTA_RU_XXX_sfdp.properties new file mode 100644 index 00000000..88c91617 --- /dev/null +++ b/gnpdev/SFTPDaemon/properties/DELTA_RU_XXX_sfdp.properties @@ -0,0 +1,53 @@ +######################## INIZIO CONFIGURAZIONE DWHE2E_REPOSALDINETTI_CO ################### +GET.LOCAL.PATH.DWHE2E_REPOSALDINETTI_CO=/gnpapp/batch/ftpin/dwhe2e_reposaldinetti +GET.IDENTITY.DWHE2E_REPOSALDINETTI_CO=/home/bea/.ssh/id_rsa +GET.PASSPHRASE.DWHE2E_REPOSALDINETTI_CO= +GET.USERNAME.DWHE2E_REPOSALDINETTI_CO=dbcfx +#GET.HOST.XDSL=10.119.3.119 + +# PORTALE WHOLESALE LINUX +GET.HOST.REG=172.30.16.178 + +GET.PORT.DWHE2E_REPOSALDINETTI_CO=22 +GET.KNOWN_HOSTS.DWHE2E_REPOSALDINETTI_CO=/home/bea/.ssh/known_hosts +GET.REMOTE_PATH.DWHE2E_REPOSALDINETTI_CO=/HOME/xdsl/adsl_002/dwhe2e +GET.EXTENSION.DWHE2E_REPOSALDINETTI_CO=.xml.gz;.bad +# Pattern di inizio del nome file da prelevare +GET.NOMEFILE_PATTERN.DWHE2E_REPOSALDINETTI_CO=002_*_NGA[.]* +# Abilita o disabilita decompressione GZip per estensione .gz (YES|NO) +GET.UNCOMPRESS.DWHE2E_REPOSALDINETTI_CO=YES +# TIMEOUT IN MILLISECONDI (10000 = 10sec, 1800000 = 30min) +GET.CONNECT.TIMEOUT.DWHE2E_REPOSALDINETTI_CO=30000 +# FILE PER GESTIONE STORICO FILE LAVORATI (in /gnpapp/ +GET.FILENAME.LAVORATI.DWHE2E_REPOSALDINETTI_CO=/gnpapp/properties/002_TLC_STORICO_NOW.txt +######################## FINE CONFIGURAZIONE DWHE2E_REPOSALDINETTI_CO ################### + + + + + + + +######################## INIZIO CONFIGURAZIONE DWHE2E_REPOSALDINETTI_BU ################### +GET.LOCAL.PATH.DWHE2E_REPOSALDINETTI_BU=/gnpapp/batch/ftpin/dwhe2e_reposaldinetti +GET.IDENTITY.DWHE2E_REPOSALDINETTI_BU=/home/bea/.ssh/id_rsa +GET.PASSPHRASE.DWHE2E_REPOSALDINETTI_BU= +GET.USERNAME.DWHE2E_REPOSALDINETTI_BU=dbcfx +#GET.HOST.XDSL=10.119.3.119 + +# PORTALE WHOLESALE LINUX +GET.HOST.REG=172.30.16.178 + +GET.PORT.DWHE2E_REPOSALDINETTI_BU=22 +GET.KNOWN_HOSTS.DWHE2E_REPOSALDINETTI_BU=/home/bea/.ssh/known_hosts +GET.REMOTE_PATH.DWHE2E_REPOSALDINETTI_BU=/HOME/xdsl/adsl_002/PATH_BU_REPO +GET.EXTENSION.DWHE2E_REPOSALDINETTI_BU=.xml.gz;.bad +# Pattern di inizio del nome file da prelevare +GET.NOMEFILE_PATTERN.DWHE2E_REPOSALDINETTI_BU=002_*_NGA[.]* +# Abilita o disabilita decompressione GZip per estensione .gz (YES|NO) +GET.UNCOMPRESS.DWHE2E_REPOSALDINETTI_BU=YES +# TIMEOUT IN MILLISECONDI (10000 = 10sec, 1800000 = 30min) +GET.CONNECT.TIMEOUT.DWHE2E_REPOSALDINETTI_BU=30000 +# FILE PER GESTIONE STORICO FILE LAVORATI (in /gnpapp/ +GET.FILENAME.LAVORATI.DWHE2E_REPOSALDINETTI_BU=/gnpapp/properties/002_TLC_STORICO_NOW.txt +######################## FINE CONFIGURAZIONE DWHE2E_REPOSALDINETTI_BU ################### diff --git a/gnpdev/SFTPDaemon/src/it/alescar/sftp/daemon/get/SFTPGetDaemon.java b/gnpdev/SFTPDaemon/src/it/alescar/sftp/daemon/get/SFTPGetDaemon.java index 417d17d5..6c8e1d9a 100644 --- a/gnpdev/SFTPDaemon/src/it/alescar/sftp/daemon/get/SFTPGetDaemon.java +++ b/gnpdev/SFTPDaemon/src/it/alescar/sftp/daemon/get/SFTPGetDaemon.java @@ -57,8 +57,8 @@ public class SFTPGetDaemon { && !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.MPA) && !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.DWHE2E) && !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.NOW_REGOLATORIO) - && !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.NOW_XDSL) - && !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.NOW_NGA)){ + && !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.DWHE2E_REPOSALDINETTI_CO) + && !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.DWHE2E_REPOSALDINETTI_BU)){ log.fatal("Sistema remoto sconosciuto: " + idSistemaRemoto); } initConfig(idSistemaRemoto); diff --git a/gnpdev/SFTPDaemon/src/it/alescar/sftp/utils/ApplicationConstants.java b/gnpdev/SFTPDaemon/src/it/alescar/sftp/utils/ApplicationConstants.java index 40dac9cb..07eb4ecf 100644 --- a/gnpdev/SFTPDaemon/src/it/alescar/sftp/utils/ApplicationConstants.java +++ b/gnpdev/SFTPDaemon/src/it/alescar/sftp/utils/ApplicationConstants.java @@ -20,6 +20,8 @@ public class ApplicationConstants { public static final String NOW_REGOLATORIO = "NOW_REG"; // Utilizzato per la GET da NOW dei servizi regolamentati public static final String NOW_XDSL = "NOW_XDSL"; // Utilizzato per la GET da NOW dei servizi xDSL public static final String NOW_NGA = "NOW_NGA"; // Utilizzato per la GET da NOW dei servizi NGA + public static final String DWHE2E_REPOSALDINETTI_CO = "DWHE2E_REPOSALDINETTI_CO"; + public static final String DWHE2E_REPOSALDINETTI_BU = "DWHE2E_REPOSALDINETTI_BU"; public static final String EXTENSION_CTR = "ctr"; public static final String EXTENSION_GZ = "gz"; diff --git a/gnpdev/build/hibernate/hibernateGen.cfg.xml b/gnpdev/build/hibernate/hibernateGen.cfg.xml index 93f0da2c..6637ac14 100644 --- a/gnpdev/build/hibernate/hibernateGen.cfg.xml +++ b/gnpdev/build/hibernate/hibernateGen.cfg.xml @@ -6,7 +6,8 @@ GNP GNP - jdbc:oracle:thin:@(description=(address=(host=10.166.19.163)(protocol=tcp)(port=1521))(connect_data=(service_name=MNP))) + jdbc:oracle:thin:@(description=(address=(host=10.13.196.42)(protocol=tcp)(port=1540))(connect_data=(service_name=V0NCSIDBCFX.griffon.local))) + org.hibernate.dialect.Oracle9Dialect org.hibernate.hql.classic.ClassicQueryTranslatorFactory diff --git a/gnpdev/build/hibernate/hibernateOTHER.reveng.xml b/gnpdev/build/hibernate/hibernateOTHER.reveng.xml index 0877c76c..11b3d4a5 100644 --- a/gnpdev/build/hibernate/hibernateOTHER.reveng.xml +++ b/gnpdev/build/hibernate/hibernateOTHER.reveng.xml @@ -1354,6 +1354,14 @@ - + + + + + + SEQ_DWE2EREPORT + + +
\ No newline at end of file diff --git a/gnpdev/dbcfx/ear/res/APP-INF/classes/hibernate.cfg.xml b/gnpdev/dbcfx/ear/res/APP-INF/classes/hibernate.cfg.xml index 87b5cba9..219b3c54 100644 --- a/gnpdev/dbcfx/ear/res/APP-INF/classes/hibernate.cfg.xml +++ b/gnpdev/dbcfx/ear/res/APP-INF/classes/hibernate.cfg.xml @@ -304,6 +304,10 @@ + + + + diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/GnpDwhe2eSaldiNettiIn.hbm.xml b/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/GnpDwhe2eSaldiNettiIn.hbm.xml new file mode 100644 index 00000000..d9ed0af8 --- /dev/null +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/dao/db/hb/GnpDwhe2eSaldiNettiIn.hbm.xml @@ -0,0 +1,60 @@ + + + + + + + + + SEQ_DWE2EREPORT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/internalflow/in/Dwhe2eRepoSaldiNettiIn.java b/gnpdev/dbcfx/src/it/valueteam/gnp/internalflow/in/Dwhe2eRepoSaldiNettiIn.java new file mode 100644 index 00000000..cd447a57 --- /dev/null +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/internalflow/in/Dwhe2eRepoSaldiNettiIn.java @@ -0,0 +1,276 @@ +package it.valueteam.gnp.internalflow.in; + +import it.valueteam.crontab.processexecutor.ProcessIF; +import it.valueteam.gnp.dao.db.hb.GnpVerificaCsWhitelist; +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.utility.Resources; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class Dwhe2eRepoSaldiNettiIn implements Loggable, ProcessIF { + private ProcessLogger log; + + //TODO EDL verificare il codice processo + private static final String codiceProcesso = "IG"; + private static final String versione = "1.0.0"; + private String separator = ";"; + private static final String ESTRAZIONE_FULL = "FULL"; + private static final String ESTRAZIONE_DELTA = "DELTA"; + private static final String CONSUMER = "CO"; + private static final String BUSINESS = "BU"; + + + + public Dwhe2eRepoSaldiNettiIn() throws Exception { + try { + initLog(); + } catch (Exception ex) { + System.out.println("Errore nell'inizializzazione di Dwhe2eRepoSaldiNettiIn"); + throw ex; + } + } + + private void initLog() throws Exception { + LogProcess logProcess = new LogProcess(); + logProcess.setCodice(codiceProcesso); + logProcess.setProcess(this); + log = new ProcessLogger(logProcess); + } + + /** + * Inizia il processo di creazione del file + * + * @param args String[] + */ + public void execute(String[] args) throws Exception { + log.write("9999", " CRMB "); + + try { + if (args.length == 1 && (ESTRAZIONE_FULL.equalsIgnoreCase(args[0]) || ESTRAZIONE_DELTA.equalsIgnoreCase(args [0]))) { + readFile(args[0]); + } else { + log.write("9999", "Creazione file non eseguita. Inserire parametro (FULL o DELTA) e (DONOR)"); + } + } catch (Exception ex) { + //0003 C - PROCESSO TERMINATO CON ECCEZIONI + log.write("0003", "" + ex.toString()); + ex.printStackTrace(); + //Termino l'esecuzione ritornando un errore a chi mi ha eseguito + throw ex; + } + } + + + private void readFile(String arg) throws Exception{ + + //argomento full o delta + log.write("9999", "Start Dwhe2eRepoSaldiNettiIn"); + String resourceParam; + if(ESTRAZIONE_FULL.equalsIgnoreCase(arg)) { + resourceParam = Resources.getDWHE2E_REPOSALDINETTI_FULL(); + } else { + resourceParam = Resources.getDWHE2E_REPOSALDINETTI_DELTA(); + } + List listFileName = getListFileName(Resources.getPATH_FILE_DWHE2E_REPOSALDINETTI_IN()); + readFilesAndStore(listFileName,resourceParam); + + log.write("9999", "End readFileAndGetList"); + + + /* + + + + */ + }//chiude metodo + + + private List getListFileName(String folderName) throws Exception { + log.write("9999", "Start getFiles for folder "+folderName); + List listFileName = new ArrayList(); + + try { + File folder = new File(folderName); + File[] listOfFiles = folder.listFiles(); + + for (File file : listOfFiles) { + if (file.isFile()) { + log.write("9999", "file presente "+file.getName()); + listFileName.add(file.getName()); + } + } + }catch(Exception ex) { + log.write("9999", "Excetpion in getListFileName " +ex.getMessage()); + throw ex; + } + + log.write("9999", "END getFiles"); + + return listFileName; + } + + private void readFilesAndStore(List listFileName, String resourceParam) throws Exception { + log.write("9999", "Start readFiles"); + + + for(String fileName : listFileName) { + + String estensioneFname = fileName.substring(fileName.lastIndexOf("."),fileName.length()); + if (estensioneFname.equals(Resources.getDWHE2E_REPOSALDINETTI_FILENAME_EXT())) { + String piattaforma = null; + if (fileName.contains("_CON_")) { + piattaforma = this.CONSUMER; + } else if (fileName.contains("_BUS_")) + piattaforma = this.BUSINESS; + + //lista di oggetti tabella in senza i dati di FX + List listForFile = readFileAndGetList(fileName); + + //AGGIUNGI ad ogni oggetto i dati di FX ricercando in tabelle + // e salva nel db. Per evitare di scorrere la lista 2 volte! + this.aggiungiInfoAndSave(listForFile,resourceParam,piattaforma); + + } + + } + + log.write("9999", "End readFiles"); + + } + + + // TODO MODIFICA LE CLASSI una volta generate dai file HB + private List readFileAndGetList(String fileName) throws Exception { + log.write("9999", "Start readFileAndGetList"); + + List listForFile = new ArrayList(); + + try { + log.write("9999", "file da elaborare "+Resources.getPATH_FILE_DWHE2E_REPOSALDINETTI_IN()+fileName); + File wlFile = new File(Resources.getPATH_FILE_DWHE2E_REPOSALDINETTI_IN()+fileName); + + Scanner reader = new Scanner(wlFile); + + int row=0; + int firstRowHeader= 0; + + while (reader.hasNextLine()) { + if(row == firstRowHeader) { + reader.nextLine(); + }else { + //passo file name per inserirlo nella tabella + GnpVerificaCsWhitelist gnpVerificaCsWhitelist = getDataFromLine(reader.nextLine(),fileName); + listForFile.add(gnpVerificaCsWhitelist); + } + row++; + } + reader.close(); + + backupFile(wlFile,fileName); + } catch (Exception e) { + log.write("9999", "exception in readFileAndGetList "+e.getMessage()); + throw e; + } + return listForFile; + } + + private void backupFile(File wlFile, String fileName) { + log.write("9999", "Start backup file"); + + wlFile.renameTo(new File(Resources.getDWHE2E_REPOSALDINETTI_BACKUP_IN()+"backup_"+fileName)); + + log.write("9999", "Backup effettuato "+Resources.getDWHE2E_REPOSALDINETTI_BACKUP_IN()+fileName); + } + + + private GnpVerificaCsWhitelist getDataFromLine(String line, String nomeFile) { + log.write("9999", "start getDataFromLine line= "+line); + + String[] parts = line.split(separator); + + GnpVerificaCsWhitelist gnpVerificaCsWhitelist = new GnpVerificaCsWhitelist(); + // TODO non dimenticare filename + /* aggiungi i dati provenienti dal file in SENZA i dati fx + gnpVerificaCsWhitelist.setNumeroTelefono(parts[0]); + gnpVerificaCsWhitelist.setCodiceSegreto(parts[1]); + gnpVerificaCsWhitelist.setCodiceFiscalePartitaIva(parts[2]); + gnpVerificaCsWhitelist.setSistComp(parts[3]); + gnpVerificaCsWhitelist.setFlagVerificaCs(parts[4]); + + */ + + + log.write("9999", "Created obj gnpVerificaCsWhitelist "+gnpVerificaCsWhitelist.toString()); + + log.write("9999", "End getDataFromLine"); + + return gnpVerificaCsWhitelist; + } + + // TODO + private void aggiungiInfoAndSave(List listadwhe2ein,String resourceParam, String piattaforma){ + //instanzia la classe DAO + //daodel82 d82dao = new daodel82(); + //daodel274 d274dao = new daodel274(); + //DAO per il save IN + // daodwhe2e daodwhe2e = new daodwhe2e() + + //effettua la ricerca nelle tabelle sfruttando resourceParam DELTA/FULL e piattaforma e aggiorna i campi dbcfx + /* + for(oggettodwhe2ein : listadwhe2ein){ + + del82Entity dent82 = d82dao.find(oggettodwhe2ein.getid(), resourcesParam, piattaforma) + if (dent82!=null){ + oggettodwhe2ein.popolaAggiuntDBCFX(del82.getcodiceOlo(),del82.getTipoUscita,del82.getDelibera) + daodwhe2e.save(oggettodwhe2ein); + continue; + } + del274Entity del274 = d274dao.find(oggettodwhe2ein.getid(), resourcesParam, piattaforma) + if (del274!=null){ + oggettodwhe2ein.popolaAggiuntDBCFX(del274.getcodiceOlo(),del274.getTipoUscita,del274.getDelibera) + daodwhe2e.save(oggettodwhe2ein); + continue; + } + ... + + + } + */ + } + + /** + * Interfaccia ProcessExecutor + * Ritorniamo sempre false perche' gestiamo le TX internamente + * + * @return boolean + */ + public boolean requiredTX() { + return false; + } + + /** + * getLogInfo + * + * @return LogInfo + */ + public LogInfo getLogInfo() { + LogInfo logInfo = new LogInfo(); + logInfo.setProcess(getClass().getName()); + logInfo.setLogPath(Resources.getLogPath()); + logInfo.setTypeInfo(Resources.getTypeInfo()); + logInfo.setTypeDebug(Resources.getTypeDebug()); + logInfo.setTypeError(Resources.getTypeError()); + return logInfo; + } + + + + + +} diff --git a/gnpdev/dbcfx/src/it/valueteam/gnp/utility/Resources.java b/gnpdev/dbcfx/src/it/valueteam/gnp/utility/Resources.java index 3060478d..3ef1d51c 100644 --- a/gnpdev/dbcfx/src/it/valueteam/gnp/utility/Resources.java +++ b/gnpdev/dbcfx/src/it/valueteam/gnp/utility/Resources.java @@ -3279,4 +3279,37 @@ public class Resources { init(); return Trim(props.getProperty("TIMEOUT_WIRELINE_CEASE_CHECK82")); } + + + public static String getPATH_FILE_DWHE2E_REPOSALDINETTI_IN() { + if (props == null) + init(); + return Trim(props.getProperty("PATH_FILE_DWHE2E_REPOSALDINETTI_IN")); + } + + + public static String getDWHE2E_REPOSALDINETTI_BACKUP_IN() { + if (props == null) + init(); + return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_BACKUP_IN")); + } + + public static String getDWHE2E_REPOSALDINETTI_FILENAME_EXT() { + if (props == null) + init(); + return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_FILENAME_EXT")); + } + + public static String getDWHE2E_REPOSALDINETTI_FULL() { + if (props == null) + init(); + return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_FULL")); + } + + public static String getDWHE2E_REPOSALDINETTI_DELTA() { + if (props == null) + init(); + return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_DELTA")); + } + }