327915 - Modifica flussi Cubo Saldi Netti (Consumer e Business) - Consolidato

This commit is contained in:
manuelstefanile
2025-01-17 17:59:05 +01:00
parent dd1636242c
commit bdf5aa4456
11 changed files with 783 additions and 26 deletions

View File

@@ -1,13 +1,23 @@
########################### INVIO FILE A DWHE ###########################
########################### INIZIO DWHE2E_REPOSALDINETTI ###########################
#header edl Donor
#PATH IN DWHE2E_REPOSALDINETTI
PATH_FILE_DWHE2E_REPOSALDINETTI_CON_IN=/gnpapp/batch/ftpin/dwhe2e_saldinetti_con/
PATH_FILE_DWHE2E_REPOSALDINETTI_BUS_IN=/gnpapp/batch/ftpin/dwhe2e_saldinetti_bus/
DWHE2E_REPOSALDINETTI_CON_BACKUP_IN=/gnpapp/batch/backup_in/dwhe2e_saldinetti_con/
DWHE2E_REPOSALDINETTI_BUS_BACKUP_IN=/gnpapp/batch/backup_in/dwhe2e_saldinetti_bus/
#estensione dei file da inviare a CRMB
#FILE OUT DWHE2E_REPOSALDINETTI
DWHE2E_REPOSALDINETTI_NOME_FILE_CON_OUT =DBCFX_DWHE2E_USCITE_CON_
DWHE2E_REPOSALDINETTI_NOME_FILE_BUS_OUT =DBCFX_DWHE2E_USCITE_BUS_
DWHE2E_REPOSALDINETTI_FILENAME_EXT=.csv
#Prefisso dei file per CRMB
DWHE2E_REPOSALDINETTI_FULL=01/01/2025
DWHE2E_REPOSALDINETTI_DELTA=15
DWHE2E_REPOSALDINETTI_DATA_FILENAME="yyyyMMdd"
#PATH OUT DWHE2E_REPOSALDINETTI
PATH_FILE_DWHE2E_REPOSALDINETTI_CON_OUT =/gnpapp/batch/ftpout/dwhe2e_saldinetti_con/
PATH_FILE_DWHE2E_REPOSALDINETTI_BUS_OUT =/gnpapp/batch/ftpout/dwhe2e_saldinetti_bus/
DWHE2E_REPOSALDINETTI_OUT_HEADER=E2E_DATA_CESSAZIONE;E2E_SERVIZIO_ACCESSO;E2E_DIMENSIONE_1;E2E_DIMENSIONE_2;E2E_DIMENSIONE_3;E2E_DIMENSIONE_4;E2E_DIMENSIONE_5;DBCFX_DIM_CODICE_OLO;DBCFX_DIM_TIPO_USCITA;DBCFX_DIM_DELIBERA;DBCFX_NRO_USCITE
########################### FINE DWHE2E_REPOSALDINETTI ###########################

View File

@@ -1,4 +1,4 @@
######################## INIZIO CONFIGURAZIONE DWHE2E_REPOSALDINETTI_CO ###################
######################## GET INIZIO CONFIGURAZIONE DWHE2E_REPOSALDINETTI_CO ###################
GET.LOCAL.PATH.DWHE2E_REPOSALDINETTI_CO=/gnpapp/batch/ftpin/dwhe2e_saldinetti_con
GET.IDENTITY.DWHE2E_REPOSALDINETTI_CO=/home/bea/.ssh/id_rsa
GET.PASSPHRASE.DWHE2E_REPOSALDINETTI_CO=
@@ -18,9 +18,9 @@ GET.UNCOMPRESS.DWHE2E_REPOSALDINETTI_CO=NO
GET.CONNECT.TIMEOUT.DWHE2E_REPOSALDINETTI_CO=30000
# FILE PER GESTIONE STORICO FILE LAVORATI (in /gnpapp/
GET.FILENAME.LAVORATI.DWHE2E_REPOSALDINETTI_CO=/gnpapp/properties/DWHE2E_SALDINETTI_STORICO_CO.txt
######################## FINE CONFIGURAZIONE DWHE2E_REPOSALDINETTI_CO ###################
######################## GET FINE CONFIGURAZIONE DWHE2E_REPOSALDINETTI_CO ###################
######################## INIZIO CONFIGURAZIONE DWHE2E_REPOSALDINETTI_BU ###################
######################## GET INIZIO CONFIGURAZIONE DWHE2E_REPOSALDINETTI_BU ###################
GET.LOCAL.PATH.DWHE2E_REPOSALDINETTI_BU=/gnpapp/batch/ftpin/dwhe2e_saldinetti_bus
GET.IDENTITY.DWHE2E_REPOSALDINETTI_BU=/home/bea/.ssh/id_rsa
GET.PASSPHRASE.DWHE2E_REPOSALDINETTI_BU=
@@ -40,4 +40,43 @@ GET.UNCOMPRESS.DWHE2E_REPOSALDINETTI_BU=NO
GET.CONNECT.TIMEOUT.DWHE2E_REPOSALDINETTI_BU=30000
# FILE PER GESTIONE STORICO FILE LAVORATI (in /gnpapp/
GET.FILENAME.LAVORATI.DWHE2E_REPOSALDINETTI_BU=/gnpapp/properties/DWHE2E_SALDINETTI_STORICO_BU.txt
######################## FINE CONFIGURAZIONE DWHE2E_REPOSALDINETTI_BU ###################
######################## GET FINE CONFIGURAZIONE DWHE2E_REPOSALDINETTI_BU ###################
######################## PUT INIZIO CONFIGURAZIONE DWHE2E_REPOSALDINETTI_CO ###################
PUT.LOCAL.PATH.DWHE2E_REPOSALDINETTI_CO=/gnpapp/batch/ftpout/dwhe2e_saldinetti_con
PUT.LOCAL.BACKUP.PATH.DWHE2E_REPOSALDINETTI_CO=/gnpapp/batch/backup_out/dwhe2e_saldinetti_con
# Estensione files da inviare verso DWHE2E (POSSONO ESSERE PIU' DI UNA DELIMITATE DA ";")
PUT.EXTENSION.DWHE2E_REPOSALDINETTI_CO=.csv
PUT.IDENTITY.DWHE2E_REPOSALDINETTI_CO=/bea/.ssh/id_rsa
PUT.PASSPHRASE.DWHE2E_REPOSALDINETTI_CO=bea
PUT.USERNAME.DWHE2E_REPOSALDINETTI_CO=bea
PUT.HOST.DWHE2E_REPOSALDINETTI_CO=10.192.65.18
PUT.PORT.DWHE2E_REPOSALDINETTI_CO=22
PUT.KNOWN_HOSTS.DWHE2E_REPOSALDINETTI_CO=/bea/.ssh/known_hosts
PUT.REMOTE_PATH.DWHE2E_REPOSALDINETTI_CO=/home/bea/temp/dwhe2e
PUT.RENAMECTR.DWHE2E_REPOSALDINETTI_CO=NO
PUT.RENAMECTR.SUFFIX.DWHE2E_REPOSALDINETTI_CO=
PUT_SENDCTR.DWHE2E_REPOSALDINETTI_CO=YES
# TIMEOUT IN MILLISECONDI (10000 = 10sec, 1800000 = 30min)
PUT.CONNECT.TIMEOUT.DWHE2E_REPOSALDINETTI_CO=30000
######################## PUT FINE CONFIGURAZIONE DWHE2E_REPOSALDINETTI_BU ###################
######################## PUT INIZIO CONFIGURAZIONE DWHE2E_REPOSALDINETTI_BU ###################
PUT.LOCAL.PATH.DWHE2E_REPOSALDINETTI_BU=/gnpapp/batch/ftpout/dwhe2e_saldinetti_bus
PUT.LOCAL.BACKUP.PATH.DWHE2E_REPOSALDINETTI_BU=/gnpapp/batch/backup_out/dwhe2e_saldinetti_bus
# Estensione files da inviare verso DWHE2E (POSSONO ESSERE PIU' DI UNA DELIMITATE DA ";")
PUT.EXTENSION.DWHE2E_REPOSALDINETTI_BU=.csv
PUT.IDENTITY.DWHE2E_REPOSALDINETTI_BU=/bea/.ssh/id_rsa
PUT.PASSPHRASE.DWHE2E_REPOSALDINETTI_BU=bea
PUT.USERNAME.DWHE2E_REPOSALDINETTI_BU=bea
PUT.HOST.DWHE2E_REPOSALDINETTI_BU=10.192.65.18
PUT.PORT.DWHE2E_REPOSALDINETTI_BU=22
PUT.KNOWN_HOSTS.DWHE2E_REPOSALDINETTI_BU=/bea/.ssh/known_hosts
PUT.REMOTE_PATH.DWHE2E_REPOSALDINETTI_BU=/home/bea/temp/dwhe2e
PUT.RENAMECTR.DWHE2E_REPOSALDINETTI_BU=NO
PUT.RENAMECTR.SUFFIX.DWHE2E_REPOSALDINETTI_BU=
PUT_SENDCTR.DWHE2E_REPOSALDINETTI_BU=YES
# TIMEOUT IN MILLISECONDI (10000 = 10sec, 1800000 = 30min)
PUT.CONNECT.TIMEOUT.DWHE2E_REPOSALDINETTI_BU=30000
######################## PUT FINE CONFIGURAZIONE DWHE2E_REPOSALDINETTI_BU ###################

View File

@@ -42,7 +42,9 @@ public class SFTPPutDaemon {
&& !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.RAES)
&& !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.MFENP) //ADD FENP RU_279
&& !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.PDC) //ADD PDC RU_352
&& !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.CRMB)){ //ADD CRMB RU_XXX
&& !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.CRMB) //ADD CRMB RU_XXX
&& !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.DWHE2E_REPOSALDINETTI_CO) //ADD DHWE2E_REPOSALDINETTI
&& !idSistemaRemoto.equalsIgnoreCase(ApplicationConstants.DWHE2E_REPOSALDINETTI_BU)){
log.fatal("Sistema remoto sconosciuto: "+idSistemaRemoto);
}
initConfig(idSistemaRemoto);

View File

@@ -15,12 +15,14 @@
**********************************************************************
-->
<table-filter match-name="GNP_DWHE2E_SALDINETTI_IN" />
<!--
Il <table-filter> definisce un filtro per selezionare quali tabelle del database devono essere incluse
(o escluse, se configurato diversamente) durante la generazione automatica delle entità Hibernate.
<table-filter match-name="GNP_DWHE2E_SALDINETTI_OUT" />
<table-filter match-name="GNP_DWHE2E_SALDINETTI_IN" />
<table-filter match-name="GNP_RICHIESTE_DONOR" />
<table-filter match-name="GNP_NOW_XDSL_SCARTI_IN" />
<table-filter match-name="GNP_NOW_XDSL_RICHIESTE_IN" />
@@ -1367,4 +1369,12 @@
</primary-key>
</table>
<table name="GNP_DWHE2E_SALDINETTI_OUT">
<primary-key>
<generator class="sequence">
<param name="sequence">SEQ_DWE2EREPORT</param>
</generator>
</primary-key>
</table>
</hibernate-reverse-engineering>

View File

@@ -306,6 +306,7 @@
<!-- INIZIO DWHE2E REPORTISTICA SALDI NETTI -->
<mapping resource="it/valueteam/gnp/dao/db/hb/GnpDwhe2eSaldiNettiIn.hbm.xml" />
<mapping resource="it/valueteam/gnp/dao/db/hb/GnpDwhe2eSaldiNettiOut.hbm.xml" />
<!-- FINE DWHE2E REPORTISTICA SALDI NETTI -->
<!-- cache settings -->

View File

@@ -0,0 +1,56 @@
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 14-gen-2025 15.52.30 by Hibernate Tools 3.2.0.CR1 -->
<hibernate-mapping>
<class name="it.valueteam.gnp.dao.db.hb.GnpDwhe2eSaldinettiOut" table="GNP_DWHE2E_SALDINETTI_OUT">
<id name="uniqueId" type="java.lang.Long">
<column name="UNIQUE_ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_DWE2EREPORT</param>
</generator>
</id>
<property name="nomeFile" type="string">
<column name="NOME_FILE" length="50" />
</property>
<property name="flagElaborato" type="string">
<column name="FLAG_ELABORATO" length="1" not-null="true" />
</property>
<property name="crm" type="string">
<column name="CRM" length="2" />
</property>
<property name="e2eDataCessazione" type="date">
<column name="E2E_DATA_CESSAZIONE" length="7" />
</property>
<property name="e2eServizioAccesso" type="string">
<column name="E2E_SERVIZIO_ACCESSO" length="12" />
</property>
<property name="e2eDimensione1" type="string">
<column name="E2E_DIMENSIONE_1" length="10" />
</property>
<property name="e2eDimensione2" type="string">
<column name="E2E_DIMENSIONE_2" length="50" />
</property>
<property name="e2eDimensione3" type="string">
<column name="E2E_DIMENSIONE_3" length="1000" />
</property>
<property name="e2eDimensione4" type="string">
<column name="E2E_DIMENSIONE_4" length="1000" />
</property>
<property name="e2eDimensione5" type="string">
<column name="E2E_DIMENSIONE_5" length="1000" />
</property>
<property name="dbcfxDimCodiceOlo" type="string">
<column name="DBCFX_DIM_CODICE_OLO" length="3" />
</property>
<property name="dbcfxDimTipoUscita" type="string">
<column name="DBCFX_DIM_TIPO_USCITA" length="30" />
</property>
<property name="dbcfxDimDelibera" type="string">
<column name="DBCFX_DIM_DELIBERA" length="20" />
</property>
<property name="dbcfxNroUscite" type="java.lang.Long">
<column name="DBCFX_NRO_USCITE" precision="22" scale="0" />
</property>
</class>
</hibernate-mapping>

View File

@@ -4,6 +4,8 @@ package it.valueteam.gnp.dao.db.hb;
import java.util.List;
import it.valueteam.gnpgo.core.object.GnpgoSemaforoSummary;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
@@ -182,5 +184,56 @@ public class GnpDwhe2eSaldinettiInDAO extends BaseHibernateDAO{
closeSession();
}
}
/**
*
* */
public List<GnpDwhe2eSaldinettiOut> groupBy(String nomeFileParam) {
String query = "select new it.valueteam.gnp.dao.db.hb.GnpDwhe2eSaldinettiOut(" +
"saldinettiin.nomeFile, " +
"saldinettiin.crm, " +
"saldinettiin.e2eDataCessazione, " +
"saldinettiin.e2eServizioAccesso, " +
"saldinettiin.e2eDimensione1, " +
"saldinettiin.e2eDimensione2, " +
"saldinettiin.e2eDimensione3, " +
"saldinettiin.e2eDimensione4, " +
"saldinettiin.e2eDimensione5, " +
"saldinettiin.dbcfxDimCodiceOlo, " +
"saldinettiin.dbcfxDimTipoUscita, " +
"saldinettiin.dbcfxDimDelibera, " +
"count(*) as dbcfxNroUscite" +
") " +
"from GnpDwhe2eSaldinettiIn saldinettiin " +
"where saldinettiin.nomeFile = :nomeFileParam " +
"group by " +
"saldinettiin.nomeFile, " +
"saldinettiin.crm, " +
"saldinettiin.e2eDataCessazione, " +
"saldinettiin.e2eServizioAccesso, " +
"saldinettiin.e2eDimensione1, " +
"saldinettiin.e2eDimensione2, " +
"saldinettiin.e2eDimensione3, " +
"saldinettiin.e2eDimensione4, " +
"saldinettiin.e2eDimensione5, " +
"saldinettiin.dbcfxDimCodiceOlo, " +
"saldinettiin.dbcfxDimTipoUscita, " +
"saldinettiin.dbcfxDimDelibera";
try{
Query hqlQuery = getSession().createQuery(query)
.setParameter("nomeFileParam", nomeFileParam);
return hqlQuery.list();
} catch (RuntimeException re)
{
log.error("find by custom query failed", re);
throw re;
} finally
{
closeSession();
}
}
}

View File

@@ -0,0 +1,179 @@
package it.valueteam.gnp.dao.db.hb;
// Generated 14-gen-2025 15.52.30 by Hibernate Tools 3.2.0.CR1
import java.util.Date;
/**
* GnpDwhe2eSaldinettiOut generated by hbm2java
*/
public class GnpDwhe2eSaldinettiOut implements java.io.Serializable {
private Long uniqueId;
private String nomeFile;
private String flagElaborato;
private String crm;
private Date e2eDataCessazione;
private String e2eServizioAccesso;
private String e2eDimensione1;
private String e2eDimensione2;
private String e2eDimensione3;
private String e2eDimensione4;
private String e2eDimensione5;
private String dbcfxDimCodiceOlo;
private String dbcfxDimTipoUscita;
private String dbcfxDimDelibera;
private Long dbcfxNroUscite;
public GnpDwhe2eSaldinettiOut() {
}
public GnpDwhe2eSaldinettiOut(String nomeFile, String flagElaborato, String crm, Date e2eDataCessazione, String e2eServizioAccesso, String e2eDimensione1, String e2eDimensione2, String e2eDimensione3, String e2eDimensione4, String e2eDimensione5, String dbcfxDimCodiceOlo, String dbcfxDimTipoUscita, String dbcfxDimDelibera, Long dbcfxNroUscite) {
this.nomeFile = nomeFile;
this.flagElaborato = flagElaborato;
this.crm = crm;
this.e2eDataCessazione = e2eDataCessazione;
this.e2eServizioAccesso = e2eServizioAccesso;
this.e2eDimensione1 = e2eDimensione1;
this.e2eDimensione2 = e2eDimensione2;
this.e2eDimensione3 = e2eDimensione3;
this.e2eDimensione4 = e2eDimensione4;
this.e2eDimensione5 = e2eDimensione5;
this.dbcfxDimCodiceOlo = dbcfxDimCodiceOlo;
this.dbcfxDimTipoUscita = dbcfxDimTipoUscita;
this.dbcfxDimDelibera = dbcfxDimDelibera;
this.dbcfxNroUscite = dbcfxNroUscite;
}
//quando effettuo la group dalla IN setto il default flagElaborato ad "N"
public GnpDwhe2eSaldinettiOut(String nomeFile, String crm, Date e2eDataCessazione, String e2eServizioAccesso, String e2eDimensione1, String e2eDimensione2, String e2eDimensione3, String e2eDimensione4, String e2eDimensione5, String dbcfxDimCodiceOlo, String dbcfxDimTipoUscita, String dbcfxDimDelibera, Long dbcfxNroUscite) {
this.nomeFile = nomeFile;
this.crm = crm;
this.e2eDataCessazione = e2eDataCessazione;
this.e2eServizioAccesso = e2eServizioAccesso;
this.e2eDimensione1 = e2eDimensione1;
this.e2eDimensione2 = e2eDimensione2;
this.e2eDimensione3 = e2eDimensione3;
this.e2eDimensione4 = e2eDimensione4;
this.e2eDimensione5 = e2eDimensione5;
this.dbcfxDimCodiceOlo = dbcfxDimCodiceOlo;
this.dbcfxDimTipoUscita = dbcfxDimTipoUscita;
this.dbcfxDimDelibera = dbcfxDimDelibera;
this.dbcfxNroUscite = dbcfxNroUscite;
this.flagElaborato = "N";
}
public Long getUniqueId() {
return this.uniqueId;
}
public void setUniqueId(Long uniqueId) {
this.uniqueId = uniqueId;
}
public String getNomeFile() {
return this.nomeFile;
}
public void setNomeFile(String nomeFile) {
this.nomeFile = nomeFile;
}
public String getFlagElaborato() {
return this.flagElaborato;
}
public void setFlagElaborato(String flagElaborato) {
this.flagElaborato = flagElaborato;
}
public String getCrm() {
return this.crm;
}
public void setCrm(String crm) {
this.crm = crm;
}
public Date getE2eDataCessazione() {
return this.e2eDataCessazione;
}
public void setE2eDataCessazione(Date e2eDataCessazione) {
this.e2eDataCessazione = e2eDataCessazione;
}
public String getE2eServizioAccesso() {
return this.e2eServizioAccesso;
}
public void setE2eServizioAccesso(String e2eServizioAccesso) {
this.e2eServizioAccesso = e2eServizioAccesso;
}
public String getE2eDimensione1() {
return this.e2eDimensione1;
}
public void setE2eDimensione1(String e2eDimensione1) {
this.e2eDimensione1 = e2eDimensione1;
}
public String getE2eDimensione2() {
return this.e2eDimensione2;
}
public void setE2eDimensione2(String e2eDimensione2) {
this.e2eDimensione2 = e2eDimensione2;
}
public String getE2eDimensione3() {
return this.e2eDimensione3;
}
public void setE2eDimensione3(String e2eDimensione3) {
this.e2eDimensione3 = e2eDimensione3;
}
public String getE2eDimensione4() {
return this.e2eDimensione4;
}
public void setE2eDimensione4(String e2eDimensione4) {
this.e2eDimensione4 = e2eDimensione4;
}
public String getE2eDimensione5() {
return this.e2eDimensione5;
}
public void setE2eDimensione5(String e2eDimensione5) {
this.e2eDimensione5 = e2eDimensione5;
}
public String getDbcfxDimCodiceOlo() {
return this.dbcfxDimCodiceOlo;
}
public void setDbcfxDimCodiceOlo(String dbcfxDimCodiceOlo) {
this.dbcfxDimCodiceOlo = dbcfxDimCodiceOlo;
}
public String getDbcfxDimTipoUscita() {
return this.dbcfxDimTipoUscita;
}
public void setDbcfxDimTipoUscita(String dbcfxDimTipoUscita) {
this.dbcfxDimTipoUscita = dbcfxDimTipoUscita;
}
public String getDbcfxDimDelibera() {
return this.dbcfxDimDelibera;
}
public void setDbcfxDimDelibera(String dbcfxDimDelibera) {
this.dbcfxDimDelibera = dbcfxDimDelibera;
}
public Long getDbcfxNroUscite() {
return this.dbcfxNroUscite;
}
public void setDbcfxNroUscite(Long dbcfxNroUscite) {
this.dbcfxNroUscite = dbcfxNroUscite;
}
}

View File

@@ -0,0 +1,249 @@
package it.valueteam.gnp.dao.db.hb;
// Generated 14-gen-2025 15.53.35 by Hibernate Tools Customizzato per GNP da C.A. 3.2.0.CR1
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.*;
import static org.hibernate.criterion.Example.create;
/**
* DAO object for domain model class GnpDwhe2eSaldinettiOut.
* @see .GnpDwhe2eSaldinettiOut
* @author C.A.
*/
import org.hibernate.criterion.Criterion;
import java.util.*;
public class GnpDwhe2eSaldinettiOutDAO extends BaseHibernateDAO{
protected static final Log log = LogFactory.getLog(GnpDwhe2eSaldinettiOutDAO.class);
private static final String QUERY_UPDATE_FLAG_LAVORATO = "UPDATE GNP_DWHE2E_SALDINETTI_OUT D SET D.FLAG_LAVORATO = :flagLavorato WHERE D.NOME_FILE = :nomeFile ";
public void save(GnpDwhe2eSaldinettiOut transientInstance) {
log.debug("saving GnpDwhe2eSaldinettiOut instance");
try {
getSession().save(transientInstance);
log.debug("save successful");
}
catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
public List findByProperty(String propertyName, Object value) {
log.debug("finding GnpDwhe2eSaldinettiOut instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "select model from GnpDwhe2eSaldinettiOut model where model."
+ propertyName + "= ?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
finally {
closeSession();
}
}
public List findAll() {
log.debug("finding all GnpDwhe2eSaldinettiOut ");
try {
String queryString = " from GnpDwhe2eSaldinettiOut";
Query queryObject = getSession().createQuery(queryString);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find all name failed", re);
throw re;
}finally {
closeSession();
}
}
public void attachDirty(GnpDwhe2eSaldinettiOut instance) {
log.debug("attaching dirty GnpDwhe2eSaldinettiOut instance");
try {
getSession().saveOrUpdate(instance);
log.debug("attach successful");
}
catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
public void attachClean(GnpDwhe2eSaldinettiOut instance) {
log.debug("attaching clean GnpDwhe2eSaldinettiOut instance");
try {
getSession().lock(instance, LockMode.NONE);
log.debug("attach successful");
}
catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
public void delete(GnpDwhe2eSaldinettiOut persistentInstance) {
log.debug("deleting GnpDwhe2eSaldinettiOut instance");
try {
getSession().delete(persistentInstance);
log.debug("delete successful");
}
catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
public GnpDwhe2eSaldinettiOut merge(GnpDwhe2eSaldinettiOut detachedInstance) {
log.debug("merging GnpDwhe2eSaldinettiOut instance");
try {
GnpDwhe2eSaldinettiOut result = (GnpDwhe2eSaldinettiOut) getSession().merge(detachedInstance);
log.debug("merge successful");
flush();
return result;
}
catch (RuntimeException re) {
log.error("merge failed", re);
throw re;
}
}
public List findByCriteria(List criterion) {
log.debug("finding GnpDwhe2eSaldinettiOut instance by criteria");
try {
Criteria crit = getSession() .createCriteria("it.valueteam.gnp.dao.db.hb.GnpDwhe2eSaldinettiOut");
Iterator iter = criterion.iterator();
while (iter.hasNext()) {
crit.add((Criterion) iter.next());
}
List results = crit.list();
log.debug("find by criteria successful, result size: "
+ results.size());
return results;
} catch (RuntimeException e) {
log.error("find by criteria failed", e);
throw e;
} finally {
closeSession();
}
}
public GnpDwhe2eSaldinettiOut findById( java.lang.Long id) {
log.debug("getting GnpDwhe2eSaldinettiOut instance with id: " + id);
try {
GnpDwhe2eSaldinettiOut instance = (GnpDwhe2eSaldinettiOut) getSession()
.get("it.valueteam.gnp.dao.db.hb.GnpDwhe2eSaldinettiOut", id);
if (instance==null) {
log.debug("get successful, no instance found");
}
else {
log.debug("get successful, instance found");
}
return instance;
}
catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
finally {
closeSession();
}
}
public List<GnpDwhe2eSaldinettiOut> findByExample(GnpDwhe2eSaldinettiOut instance) {
log.debug("finding GnpDwhe2eSaldinettiOut instance by example");
try {
List<GnpDwhe2eSaldinettiOut> results = (List<GnpDwhe2eSaldinettiOut>) getSession()
.createCriteria("it.valueteam.gnp.dao.db.hb.GnpDwhe2eSaldinettiOut")
.add( create(instance) )
.list();
log.debug("find by example successful, result size: " + results.size());
return results;
}
catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
finally {
closeSession();
}
}
public boolean updateFlagElaborato(String nomeFile, String flagElaborato) {
try {
String sqlQuery = this.QUERY_UPDATE_FLAG_LAVORATO;
Query hqlQuery = getSession().createSQLQuery(sqlQuery).addEntity("D", GnpDwhe2eSaldinettiOut.class)
.setParameter("nomeFile", nomeFile)
.setParameter("flagElaborato",flagElaborato);
// Esegui l'update
int rowsUpdated = hqlQuery.executeUpdate();
//almeno 1 update l'ha fatto
return rowsUpdated>0;
} catch (RuntimeException re) {
log.error("getNativiOloOpenAccess query failed", re);
throw re;
}finally {
closeSession();
}
}
/** nel caso in cui ci metta troppo tempo per salvare i record nella OUT. Testare questo metodo */
/*
public void saveAll(List<GnpDwhe2eSaldinettiOut> listSaldinettiOut) {
log.debug("saving list of GnpDwhe2eSaldinettiOut instances");
Transaction transaction = null;
try {
Session session = getSession();
transaction = session.beginTransaction();
for (int i = 0; i < listSaldinettiOut.size(); i++) {
session.save(listSaldinettiOut.get(i));
// Flush e clear ogni 20 elementi per gestire la memoria
if (i % 20 == 0) {
session.flush();
session.clear();
}
}
transaction.commit();
log.debug("saveAll successful");
} catch (RuntimeException re) {
if (transaction != null) {
transaction.rollback();
}
log.error("saveAll failed", re);
throw re;
} finally {
closeSession();
}
}
*/
}

View File

@@ -2,28 +2,28 @@ package it.valueteam.gnp.internalflow.in;
import it.valueteam.crontab.processexecutor.ProcessIF;
import it.valueteam.gnp.dao.db.hb.*;
import it.valueteam.gnp.internalflow.out.InternalSenderProcess;
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.DateUtils;
import it.valueteam.gnp.utility.Resources;
import it.valueteam.gnpgo.core.object.GnpgoSemaforoSummary;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.*;
public class Dwhe2eRepoSaldiNettiIn implements Loggable, ProcessIF {
public class Dwhe2eRepoSaldiNettiIn extends InternalSenderProcess implements Loggable, ProcessIF {
private ProcessLogger log;
//TODO verificare il codice processo
private static final String codiceProcesso = "IG";
private static final String versione = "1.0.0";
private String separator = ";";
private String SEPARATOR = ";";
private static final String CTR = ".ctr";
private static final String CONSUMER = "CO";
@@ -79,18 +79,41 @@ public class Dwhe2eRepoSaldiNettiIn implements Loggable, ProcessIF {
private void readFile() throws Exception{
log.write("9999", "Start readFile");
//leggo i file da cartella CO
List<String> listFileName = getListFileName(Resources.getPATH_FILE_DWHE2E_REPOSALDINETTI_CON_IN());
readFilesAndStore(listFileName);
//geneFileOut()
//per ogni nome file, se .csv allora prendine il nome assoluto DWHE2E_DBCFX_USCITE_CON_aaaammgg
for(String fileName : listFileName){
String estensioneFname = fileName.substring(fileName.lastIndexOf("."),fileName.length());
if (estensioneFname.equals(Resources.getDWHE2E_REPOSALDINETTI_FILENAME_EXT())) {
//String fileNameAbsolute = fileName.substring(0,fileName.lastIndexOf("."));
generaFileOut(generaRecordAndStoreOut(fileName),
Resources.getDWHE2E_REPOSALDINETTI_NOME_FILE_CON_OUT(),
Resources.getPATH_FILE_DWHE2E_REPOSALDINETTI_CON_OUT(),
fileName);
}
}
//leggo i file da cartella BU
listFileName = getListFileName(Resources.getPATH_FILE_DWHE2E_REPOSALDINETTI_BUS_IN());
readFilesAndStore(listFileName);
//per ogni nome file, se .csv allora prendine il nome assoluto DWHE2E_DBCFX_USCITE_BUS_aaaammgg
for(String fileName : listFileName){
String estensioneFname = fileName.substring(fileName.lastIndexOf("."),fileName.length());
if (estensioneFname.equals(Resources.getDWHE2E_REPOSALDINETTI_FILENAME_EXT())) {
//String fileNameAbsolute = fileName.substring(0,fileName.lastIndexOf("."));
generaFileOut(generaRecordAndStoreOut(fileName),
Resources.getDWHE2E_REPOSALDINETTI_NOME_FILE_BUS_OUT(),
Resources.getPATH_FILE_DWHE2E_REPOSALDINETTI_BUS_OUT(),
fileName);
}
}
log.write("9999", "End readFile");
}//chiude metodo
@@ -191,7 +214,7 @@ public class Dwhe2eRepoSaldiNettiIn implements Loggable, ProcessIF {
String fileNameAbsolute = fileName.substring(0,fileName.lastIndexOf("."));
File ctrlFile = new File(pathLetturaFile+fileNameAbsolute +this.CTR);
//spostato il file .ctr
spostaFile(pathBackupFile,ctrlFile);
if(ctrlFile.exists()) spostaFile(pathBackupFile,ctrlFile);
} catch (Exception e) {
@@ -227,7 +250,7 @@ public class Dwhe2eRepoSaldiNettiIn implements Loggable, ProcessIF {
private GnpDwhe2eSaldinettiIn getDataFromLine(String line, String nomeFile, String piattaforma) throws Exception {
log.write("9999", "start getDataFromLine line= "+line);
String[] parts = line.split(separator);
String[] parts = line.split(this.SEPARATOR);
GnpDwhe2eSaldinettiIn gnpDwhe2eSaldinettiIn = new GnpDwhe2eSaldinettiIn();
gnpDwhe2eSaldinettiIn.setNomeFile(nomeFile);
@@ -297,6 +320,117 @@ public class Dwhe2eRepoSaldiNettiIn implements Loggable, ProcessIF {
log.write("9999", "End aggiungiInfoAndSave");
}
//TODO
private List<GnpDwhe2eSaldinettiOut> generaRecordAndStoreOut(String fileName){
GnpDwhe2eSaldinettiOutDAO saldinettiOutDAO =new GnpDwhe2eSaldinettiOutDAO();
GnpDwhe2eSaldinettiInDAO saldinettiInDAO =new GnpDwhe2eSaldinettiInDAO();
//preleva dalla dwhe2eSaldinettiInDAO tutti i record con quel nome file facendo
//group by e torna l'istanza di una list<dwhe2eSaldinettiOut>.
//Il flag Lavorato ad N è settato nel costruttore quando fa il mapping HB
List<GnpDwhe2eSaldinettiOut> listSaldinettiOut = saldinettiInDAO.groupBy(fileName);
//salva i record nella tabella di out
for(GnpDwhe2eSaldinettiOut itemOut : listSaldinettiOut){
saldinettiOutDAO.save(itemOut);
}
//ritorna la lista
return listSaldinettiOut;
}
//TODO
private void generaFileOut(List<GnpDwhe2eSaldinettiOut> results, String nomeFileOut, String pathFileDwhe2eOut, String nomeFileIn ){
// DAO out
GnpDwhe2eSaldinettiOutDAO saldinettiOutDAO =new GnpDwhe2eSaldinettiOutDAO();
//aggiungo yyyymmdd.csv al nome file
nomeFileOut += DateUtils.toString(new Date(), Resources.getDWHE2E_REPOSALDINETTI_DATA_FILENAME()) + Resources.getDWHE2E_REPOSALDINETTI_FILENAME_EXT();
try {
log.write("9999", "TROVATI " + results.size() + " RECORD DA INSERIRE NEL FILE PER DWHE2E SALDI NETTI - FILENAME: " + nomeFileOut);
if (results.isEmpty()) {
log.write("9999", "NESSUN DATO RECUPERATO PER DWHE2E SALDI NETTI ");
return;
}
String record = null;
log.write("9999", "INIZIO CREAZIONE FILE " + nomeFileOut);
openFile(nomeFileOut, pathFileDwhe2eOut);
String header = Resources.getDWHE2E_REPOSALDINETTI_OUT_HEADER();
writeRecord(header);
Iterator<GnpDwhe2eSaldinettiOut> it = results.iterator();
while (it.hasNext()) {
GnpDwhe2eSaldinettiOut rec = it.next();
List<String> valori = new ArrayList<String>(11);
add(valori, rec.getE2eDataCessazione(), this.DATACESSAZIONE_FORMAT);
add(valori, rec.getE2eServizioAccesso());
add(valori, rec.getE2eDimensione1());
add(valori, rec.getE2eDimensione2());
add(valori, rec.getE2eDimensione3());
add(valori, rec.getE2eDimensione4());
add(valori, rec.getE2eDimensione5());
add(valori, rec.getDbcfxDimCodiceOlo());
add(valori, rec.getDbcfxDimTipoUscita());
add(valori, rec.getDbcfxDimDelibera());
add(valori, String.valueOf(rec.getDbcfxNroUscite()));
record = generaRecord(valori);
writeRecord(record);
}
log.write("9999", "CREATO FILE " + pathFileDwhe2eOut + nomeFileOut);
// genero anche ctr
closeFile(true);
//aggiorno flag_elaborato a "Y"
saldinettiOutDAO.updateFlagElaborato(nomeFileIn, "Y");
} catch (Exception ex) {
log.write("0003", "ERRORE NEL RECUPERO DEI DATI PER MONITORAGGIO E2E " + ex.toString());
// il file è già stato creato con l'header. Per questo elimino
deleteFile(pathFileDwhe2eOut + nomeFileOut, true);
}
}
private void add(List<String> list, String value) {
if (value == null) {
list.add("");
return;
}
list.add(value.trim());
}
private void add(List<String> list, Date date, String format) {
if (date == null) {
list.add("");
return;
}
list.add(DateUtils.toString(date, format));
}
/**
* Restituisce un record a partire dalla lista di campi
*
* @param campi di campi
* @return il record
*/
private String generaRecord(List<String> campi) {
String record = "";
/* l'ultimo campo è senza ;
for(int i=0; i<campi.size();i++){
if(i<campi.size()-1)
record +=campi.get(i) + SEPARATOR;
else
record +=campi.get(i) ;
}
*/
for (String campo : campi) {
record += campo + SEPARATOR;
}
return record;
}
/**
* Interfaccia ProcessExecutor
* Ritorniamo sempre false perche' gestiamo le TX internamente

View File

@@ -3311,16 +3311,40 @@ public class Resources {
return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_FILENAME_EXT"));
}
public static String getDWHE2E_REPOSALDINETTI_FULL() {
public static String getDWHE2E_REPOSALDINETTI_NOME_FILE_CON_OUT() {
if (props == null)
init();
return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_FULL"));
return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_NOME_FILE_CON_OUT"));
}
public static String getDWHE2E_REPOSALDINETTI_DELTA() {
public static String getDWHE2E_REPOSALDINETTI_NOME_FILE_BUS_OUT() {
if (props == null)
init();
return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_DELTA"));
return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_NOME_FILE_BUS_OUT"));
}
public static String getDWHE2E_REPOSALDINETTI_DATA_FILENAME() {
if (props == null)
init();
return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_DATA_FILENAME"));
}
public static String getPATH_FILE_DWHE2E_REPOSALDINETTI_CON_OUT() {
if (props == null)
init();
return Trim(props.getProperty("PATH_FILE_DWHE2E_REPOSALDINETTI_CON_OUT"));
}
public static String getPATH_FILE_DWHE2E_REPOSALDINETTI_BUS_OUT() {
if (props == null)
init();
return Trim(props.getProperty("PATH_FILE_DWHE2E_REPOSALDINETTI_BUS_OUT"));
}
public static String getDWHE2E_REPOSALDINETTI_OUT_HEADER() {
if (props == null)
init();
return Trim(props.getProperty("DWHE2E_REPOSALDINETTI_OUT_HEADER"));
}
}