First Commit - Source Code from Reply

This commit is contained in:
vincenzofariello
2024-05-13 12:54:14 +02:00
parent 73e32a5020
commit a15aee1f08
11184 changed files with 1065913 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding/<project>=UTF-8

View File

@@ -0,0 +1,9 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.6

View File

@@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="dbcm-service">
<wb-resource deploy-path="/" source-path="/src/main/java"/>
</wb-module>
</project-modules>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<installed facet="java" version="1.6"/>
<installed facet="jst.utility" version="1.0"/>
</faceted-project>

View File

@@ -0,0 +1,2 @@
disabled=06target
eclipse.preferences.version=1

66
dbcm/dbcm-service/pom.xml Normal file
View File

@@ -0,0 +1,66 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>dbcm-service</artifactId>
<packaging>jar</packaging>
<parent>
<groupId>dbcm</groupId>
<artifactId>dbcm</artifactId>
<version>1.0</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.7</version>
</dependency>
<dependency>
<groupId>dbcm</groupId>
<artifactId>dbcm-core</artifactId>
<type>jar</type>
<version>1.0</version>
</dependency>
<dependency>
<groupId>dbcm</groupId>
<artifactId>dbcm-sftp</artifactId>
<type>jar</type>
<version>1.0</version>
</dependency>
<dependency>
<groupId>dbcm</groupId>
<artifactId>dbcm-model</artifactId>
<type>jar</type>
<version>1.0</version>
</dependency>
<dependency>
<groupId>dbcm</groupId>
<artifactId>dbcm-serviceinterface</artifactId>
<type>jar</type>
<version>1.0</version>
</dependency>
<dependency>
<groupId>dbcm</groupId>
<artifactId>dbcm-dao</artifactId>
<type>jar</type>
<version>1.0</version>
</dependency>
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.4.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,318 @@
package dbcm.service.impl.business;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.log4j.Logger;
import dbcm.constants.Constants;
import dbcm.exception.NoResultException;
import dbcm.exception.TooManyResultException;
import dbcm.model.bean.EsitoAttCessModel;
import dbcm.model.business.InfoFileFtp;
import dbcm.service.business.Cessazioni13MService;
import dbcm.service.business.EsitoService;
import dbcm.sftp.handler.SftpHandler;
import dbcm.sftp.utils.SftpUtils;
import dbcm.utilities.DateUtils;
import dbcm.utilities.Resources;
import dbcm.utilities.ZipUtils;
public class Cessazioni13MServiceImpl implements Cessazioni13MService {
private Logger logger = Logger.getLogger(this.getClass().getName());
private static EsitoService sendEsitoService;
public Cessazioni13MServiceImpl() {
sendEsitoService = new EsitoServiceImpl();
}
@Override
public void getEsitiCessazioniFromGFP(Date dateForGetFiles) throws Exception {
getAndStoreCessazioni(dateForGetFiles);
elaboraFileEsitiGFP();
}
private void getAndStoreCessazioni(Date dateForGetFiles) throws Exception {
logger.info("getAndStoreCessazioni(Date) - INIZIO");
SftpHandler sftpFileHandler = null;
try {
sftpFileHandler = connectToGFP();
// Recupero file OCS
List<InfoFileFtp> listInfoFileToGetOcs = createInfoFileToGetForOcs();
getFiles(sftpFileHandler, listInfoFileToGetOcs, dateForGetFiles);
logger.info("getAndStoreCessazioni(Date) - Recuperati file OCS");
// Recupero file OPSC
List<InfoFileFtp> listInfoFileToGetOpsc = createInfoFileToGetForOpsc();
getFiles(sftpFileHandler, listInfoFileToGetOpsc, dateForGetFiles);
logger.info("getAndStoreCessazioni(Date) - Recuperati file OPSC");
} catch (Exception ex) {
logger.error("getAndStoreCessazioni(Date) - Errore nella fase di connessione SFTP per la ricezione Cessazioni " + ex.getMessage());
throw ex;
} finally {
if (sftpFileHandler != null) {
sftpFileHandler.release();
}
}
logger.info("getAndStoreCessazioni(Date) - FINE");
}
private SftpHandler connectToGFP() throws Exception {
logger.info("Start connectToGFP");
SftpHandler sftpFileHandler = new SftpHandler(Resources.getSFTP_PRIVATEKEY_PATH(), Resources.getSFTP_PRIVATEKEY_PASSPHRASE(),
Resources.getDBCM_USER_GFP(), Resources.getDBCM_HOST_GFP(), SftpUtils.sftpPort, Resources.getSFTP_KNOWNHOSTS(),
Resources.getDBCM_STRICT_HOST_KEY_CHECKING_GFP(), Resources.getDBCM_TIMEOUT_GFP());
logger.info("connectToGFP - Connessione avvenuta correttamente");
return sftpFileHandler;
}
private List<InfoFileFtp> createInfoFileToGetForOcs() {
List<InfoFileFtp> listInfoFileToGet = new ArrayList<InfoFileFtp>();
List<String> listOcsFileName = getAllOcsFileNameToGet();
for (String ocsFileName : listOcsFileName) {
InfoFileFtp infoFileToGetOcs = createInfoFile(ocsFileName, Resources.getDBCM_GFP_OCS_REMOTE_PATH(), Resources.getDBCM_GFP_LOCAL_FILE_PATH());
listInfoFileToGet.add(infoFileToGetOcs);
}
return listInfoFileToGet;
}
private List<String> getAllOcsFileNameToGet() {
List<String> listOcsFileName = new ArrayList<String>();
listOcsFileName.add(Resources.getDBCM_GFP_OCS1_FILE_NAME());
listOcsFileName.add(Resources.getDBCM_GFP_OCS2_FILE_NAME());
listOcsFileName.add(Resources.getDBCM_GFP_OCS3_FILE_NAME());
listOcsFileName.add(Resources.getDBCM_GFP_OCS4_FILE_NAME());
return listOcsFileName;
}
private List<InfoFileFtp> createInfoFileToGetForOpsc() {
List<InfoFileFtp> listInfoFileToGet = new ArrayList<InfoFileFtp>();
List<String> listOpscFileName = getAllOpscFileNameToGet();
for (String opscFileName : listOpscFileName) {
InfoFileFtp infoFileToGetOpsc = createInfoFile(opscFileName, Resources.getDBCM_GFP_OPSC_REMOTE_PATH(), Resources.getDBCM_GFP_LOCAL_FILE_PATH());
listInfoFileToGet.add(infoFileToGetOpsc);
}
return listInfoFileToGet;
}
private List<String> getAllOpscFileNameToGet() {
List<String> listOcsFileName = new ArrayList<String>();
listOcsFileName.add(Resources.getDBCM_GFP_OPSC1_FILE_NAME());
listOcsFileName.add(Resources.getDBCM_GFP_OPSC2_FILE_NAME());
listOcsFileName.add(Resources.getDBCM_GFP_OPSC3_FILE_NAME());
listOcsFileName.add(Resources.getDBCM_GFP_OPSC4_FILE_NAME());
return listOcsFileName;
}
private InfoFileFtp createInfoFile(String fileName, String remotePathToGet, String localPathToStore) {
InfoFileFtp infoFileGet = new InfoFileFtp();
infoFileGet.setRemotePathToGet(remotePathToGet);
infoFileGet.setLocalPathToStore(localPathToStore);
infoFileGet.setFileName(fileName);
logger.info("getAndStoreCessazioni(Date) - createInfoFile infofile= " + infoFileGet.toString());
return infoFileGet;
}
private void getFiles(SftpHandler sftpFileHandler, List<InfoFileFtp> listInfoFileToGet, Date dateForGetFiles) throws Exception {
try {
List<InfoFileFtp> completeListInfoFileToGet = getFileListByReg(sftpFileHandler, listInfoFileToGet, dateForGetFiles);
getAndStoreFileFromList(sftpFileHandler, completeListInfoFileToGet);
} catch (NoResultException ex) {
logger.info("getAndStoreCessazioni(Date) - Non sono presenti file dateForGetFiles " + DateUtils.toString(dateForGetFiles, DateUtils.FORMAT_YYYY_MM_DD));
}
}
private List<InfoFileFtp> getFileListByReg(SftpHandler sftpFileHandler, List<InfoFileFtp> listInfoFileGet, Date dateForGetFiles) throws Exception {
logger.info("Start getFileListByReg");
List<InfoFileFtp> completeListInfoFileToGet = new ArrayList<InfoFileFtp>();
for (InfoFileFtp infoFileFtp : listInfoFileGet) {
logger.info("Filename in gestione " + infoFileFtp.getFileName());
String pattern = getPatternForGetFile(infoFileFtp.getFileName(), dateForGetFiles);
List<String> completeFileNameList = getCompleteFileNameFromPattern(sftpFileHandler, infoFileFtp, pattern);
if (completeFileNameList == null || completeFileNameList.isEmpty()) {
logger.info("Non sono presenti file sul server per pattern " + pattern);
} else {
addFileNameList(completeListInfoFileToGet, infoFileFtp, pattern, completeFileNameList);
}
}
if (completeListInfoFileToGet == null || completeListInfoFileToGet.isEmpty()) {
logger.info("Non sono presenti file sul server");
throw new NoResultException("Non sono presenti file sul server");
}
logger.info("End getFileListByReg");
return completeListInfoFileToGet;
}
private void addFileNameList(List<InfoFileFtp> completeListInfoFileToGet, InfoFileFtp infoFileFtp, String pattern,
List<String> completeFileNameList) {
logger.info("Start addFileNameList per pattern " + pattern);
for(String completeFileName :completeFileNameList) {
logger.info("Aggiunta file " + completeFileName);
InfoFileFtp compleInfoFileFtp = createCompleteInfoFileFtp(infoFileFtp, completeFileName);
logger.info("completeFileName compleInfoFileFtp = " + compleInfoFileFtp.toString());
completeListInfoFileToGet.add(compleInfoFileFtp);
}
logger.info("End addFileNameList");
}
private String getPatternForGetFile(String partFileName, Date dateForGetFiles) {
String datePattern = DateUtils.toString(dateForGetFiles, DateUtils.FORMAT_YYYY_MM_DD);
return partFileName + datePattern + SftpUtils.specialCharStar + Resources.getDBCM_GFP_FILE_EXT();
}
private List<String> getCompleteFileNameFromPattern(SftpHandler sftpFileHandler, InfoFileFtp infoFileFtp, String pattern) throws Exception {
logger.info("Start getCompleteFileNameFromPattern");
String fileName = null;
List<String> fileNameList = sftpFileHandler.getFileListFromPattern(infoFileFtp.getRemotePathToGet(), pattern);
if (fileNameList != null && !fileNameList.isEmpty()) {
//Il file restituito in generale è sempre uno ma ci sono casistiche in cui potrebbero essere restituti più file
if (fileNameList.size() > 1) {
logger.info("Sono stati restituiti più file per il pattern " + pattern);
}
logger.info("Lista file ottenuta correttamente con numero elementi " + fileNameList.size());
} else {
logger.info("Non sono stati ottenuti valori per pattern " + pattern);
}
logger.info("End getCompleteFileNameFromPattern");
return fileNameList;
}
private InfoFileFtp createCompleteInfoFileFtp(InfoFileFtp infoFileFtp, String completeFileName) {
InfoFileFtp compleInfoFileFtp = new InfoFileFtp();
compleInfoFileFtp.setFileName(completeFileName);
compleInfoFileFtp.setLocalPathToStore(infoFileFtp.getLocalPathToStore());
compleInfoFileFtp.setRemotePathToGet(infoFileFtp.getRemotePathToGet());
return compleInfoFileFtp;
}
private void getAndStoreFileFromList(SftpHandler sftpFileHandler, List<InfoFileFtp> completeListInfoFile) throws Exception {
logger.info("Start getAndStoreFileFromList");
for (InfoFileFtp completeInfoFileFtp : completeListInfoFile) {
logger.info("Start get file " + completeInfoFileFtp.getFileName());
getFileSftp(sftpFileHandler, completeInfoFileFtp);
}
logger.info("End getAndStoreFileFromList");
}
private void getFileSftp(SftpHandler sftpFileHandler, InfoFileFtp completeInfoFileFtp) throws Exception {
try {
sftpFileHandler.getAndStoreFile(completeInfoFileFtp.getRemotePathToGet(), completeInfoFileFtp.getFileName(), completeInfoFileFtp.getLocalPathToStore());
logger.info("File trasferito correttamente");
} catch (Exception ex) {
logger.error("Errore nel get SFTP del file " + completeInfoFileFtp.getFileName() + "exception " + ex.getMessage());
throw ex;
}
}
private void elaboraFileEsitiGFP() throws Exception {
logger.info("elaboraFileEsitiGFP() - INIZIO");
String path = Resources.getDBCM_GFP_LOCAL_FILE_PATH();
String pathBackup = Resources.getDBCM_GFP_LOCAL_BACKUP_PATH();
logger.info("elaboraFileEsitiGFP() - Directory di estrazione: " + path);
logger.info("elaboraFileEsitiGFP() - Directory di backup: " + pathBackup);
File dir = new File(path);
if (dir.isDirectory()) {
// Estrazione dei file GZ
File[] files = dir.listFiles();
logger.info("elaboraFileEsitiGFP() - Trovati " + files.length + " file nella directory");
for (File file : files) {
if (file.isFile()) {
if (ZipUtils.unzip(file)) {
logger.info("elaboraFileEsitiGFP() - Estrazione del file " + file.getName() + " eseguita correttamente ");
file.delete();
logger.info("elaboraFileEsitiGFP() - Eliminazione del file " + file.getName() + " eseguita correttamente ");
} else {
logger.info("elaboraFileEsitiGFP() - Estrazione del file " + file.getName() + " fallita! ");
}
}
}
// Lettura dei file estratti
dir = new File(path);
files = dir.listFiles();
for (File file : files) {
if (file.isFile()) {
InputStream is = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// Lettura a vuoto della prima riga corrispondente all'header
String line = br.readLine();
logger.info("elaboraFileEsitiGFP() - Inserimento dei dati da File " + file.getName() + " in Tabella ");
while ((line = br.readLine()) != null) {
// Se non è l'ultima riga corrispondente al footer...
if (!line.startsWith("F") && !"".equals(line)) {
EsitoAttCessModel esitoAttCessModel = new EsitoAttCessModel(line);
sendEsitoService.sendEsitoHandler(esitoAttCessModel);
}
}
is.close();
br.close();
file.renameTo(new File(pathBackup + file.getName()));
logger.info("elaboraFileEsitiGFP() - Spostamento del file " + file.getName() + " nella directory di backup: " + pathBackup);
}
}
}
logger.info("elaboraFileEsitiGFP() - FINE");
}
@Override
public void getEsitiCessazioniFromGFP(String fileName, String pathName) throws Exception {
logger.info("Start getEsitiCessazioniFromGFP per fileName "+fileName +" pathName "+pathName);
try {
getAndStoreFileFromFileName(fileName, pathName);
elaboraFileEsitiGFP();
}catch(Exception ex) {
logger.error("Exception in getEsitiCessazioniFromGFP "+ ex.getMessage());
throw ex;
}
logger.info("End getEsitiCessazioniFromGFP");
}
private void getAndStoreFileFromFileName(String fileName, String pathName) throws Exception {
SftpHandler sftpFileHandler = null;
try {
sftpFileHandler = connectToGFP();
String remotePath = getPathFromPathName(pathName);
InfoFileFtp infoFileForSftp = createInfoFile(fileName, remotePath, Resources.getDBCM_GFP_LOCAL_FILE_PATH());
getFileSftp(sftpFileHandler, infoFileForSftp);
}catch(Exception ex) {
logger.error("getAndStoreFileFromFileName - Exception " + ex.getMessage());
throw ex;
}finally {
if (sftpFileHandler != null) {
sftpFileHandler.release();
}
}
logger.info("getAndStoreFileFromFileName - FINE");
}
private String getPathFromPathName(String pathName) throws Exception {
if(Constants.OCS_SYSTEM.equalsIgnoreCase(pathName)) {
return Resources.getDBCM_GFP_OCS_REMOTE_PATH();
}else if(Constants.OPSC_SYSTEM.equalsIgnoreCase(pathName)){
return Resources.getDBCM_GFP_OPSC_REMOTE_PATH();
}
throw new Exception("il Path name passato "+pathName +"risulta essere errato");
}
}

View File

@@ -0,0 +1,140 @@
package dbcm.service.impl.business;
import java.io.FileOutputStream;
import java.util.Date;
import java.util.List;
import org.apache.log4j.Logger;
import dbcm.constants.Constants;
import dbcm.model.bean.EsitoAttCessModel;
import dbcm.model.bean.GestioneRichiestaModel;
import dbcm.model.bean.GestioneRichiestaRecModel;
import dbcm.model.business.ServiceErrMap;
import dbcm.service.business.EsitoService;
import dbcm.service.db.EsitoAttCessScartiService;
import dbcm.service.db.EsitoAttCessService;
import dbcm.service.db.GestioneRichiestaRecService;
import dbcm.service.db.GestioneRichiestaService;
import dbcm.service.impl.db.EsitoAttCessScartiServiceImpl;
import dbcm.service.impl.db.EsitoAttCessServiceImpl;
import dbcm.service.impl.db.GestioneRichiestaRecServiceImpl;
import dbcm.service.impl.db.GestioneRichiestaServiceImpl;
import dbcm.utilities.DateUtils;
import dbcm.utilities.Resources;
import dbcm.utilities.StringUtils;
public class EsitoServiceImpl implements EsitoService {
private Logger logger = Logger.getLogger(this.getClass().getName());
private EsitoAttCessService esitoAttCessService;
private EsitoAttCessScartiService esitoAttCessScartiService;
private GestioneRichiestaService gestioneRichiestaService;
private GestioneRichiestaRecService gestioneRichiestaRecService;
public EsitoServiceImpl() {
esitoAttCessService = new EsitoAttCessServiceImpl();
esitoAttCessScartiService = new EsitoAttCessScartiServiceImpl();
gestioneRichiestaService = new GestioneRichiestaServiceImpl();
gestioneRichiestaRecService = new GestioneRichiestaRecServiceImpl();
}
@Override
public String sendEsitoHandler(EsitoAttCessModel esitoAttCessModel) {
String result = null;
try {
logger.info("sendEsitoHandler() - INIZIO");
logger.info("sendEsitoHandler() - Esito Attivazione Cessazione: " + esitoAttCessModel);
EsitoAttCessModel esitoAttCessModelApp = esitoAttCessService.findExisting(esitoAttCessModel);
if (esitoAttCessModelApp != null) {
esitoAttCessModelApp.setDataRicezioneWeb(DateUtils.getToday());
esitoAttCessService.update(esitoAttCessModelApp);
logger.info("sendEsitoHandler() - Aggiornamento della data ricezione web dell'esito effettuato con successo");
} else {
logger.info("sendEsitoHandler() - Controllo esistenza richiesta DONOR in base ai dati dell'esito in ingresso");
GestioneRichiestaModel richiestaDonor = gestioneRichiestaService.findExisting(esitoAttCessModel);
logger.info("sendEsitoHandler() - Controllo esistenza richiesta RECIPIENT in base ai dati dell'esito in ingresso");
GestioneRichiestaRecModel richiestaRecipient = gestioneRichiestaRecService.findExisting(esitoAttCessModel);
if (richiestaDonor == null && richiestaRecipient == null && !esitoAttCessModel.getTipoRichiesta().equals(Constants.TIPO_RICHIESTA_CESSAZIONE_PORTING)) {
logger.info("sendEsitoHandler() - L'esito verrà inserito nella tabella degli scarti in quanto corrispondente a Donor/Recipient Virtuale");
esitoAttCessScartiService.insert(esitoAttCessModel);
logger.info("sendEsitoHandler() - Scarto esito effettuato con successo");
} else {
logger.info("sendEsitoHandler() - L'esito verrà inserito nella tabella regolare");
esitoAttCessService.insert(esitoAttCessModel);
logger.info("sendEsitoHandler() - Inserimento esito effettuato con successo");
esitoAttCessService.updateIdRichiesta(esitoAttCessModel);
logger.info("sendEsitoHandler() - Aggiornamento dell'idRichiesta effettuato con successo");
}
}
result = ServiceErrMap.C_OK_SUCCESS;
} catch (Exception ex) {
logger.error("Errore durante l'inserimento/aggiornamento dell'esito: " + ex.getMessage());
result = ServiceErrMap.C_KO_GENERIC_ERROR;
}
logger.info("sendEsitoHandler() - FINE");
return result;
}
@Override
public void createFileEsitiHandler() throws Exception {
try {
logger.info("createFileEsitiHandler() - INIZIO");
logger.info("createFileEsitiHandler() - Recupero degli esiti da elaborare...");
List<EsitoAttCessModel> esitoAttCessModels = esitoAttCessService.findDaProcessare();
if (esitoAttCessModels != null && !esitoAttCessModels.isEmpty()) {
final String NOME_FILE_SUFFIX = "NPG-GMNP_";
Date now = new Date();
String nomeFile = Resources.getDBCM_PATH_FILE_IN() + NOME_FILE_SUFFIX + DateUtils.toString(now, DateUtils.FORMAT_YYYYMMDDHHMMSS000);
FileOutputStream fileMSS = new FileOutputStream(nomeFile);
logger.info("createFileEsitiHandler() - Creazione del file di esiti: " + nomeFile + "...");
for (EsitoAttCessModel esitoAttCessModel : esitoAttCessModels) {
// Costruzione record del file MSS
String dataEspletamento = DateUtils.toString(esitoAttCessModel.getDataEspletamento(), DateUtils.FORMAT_YYYYMMDDHHMMSS000);
String record = esitoAttCessModel.getMsisdn().substring(2) + " ";
if (Constants.TIPO_RICHIESTA_DONOR.equals(esitoAttCessModel.getTipoRichiesta())) {
record = (StringUtils.isEmpty(esitoAttCessModel.getRgn()) ? "D " + record : "I " + record + esitoAttCessModel.getRgn());
} else if (Constants.TIPO_RICHIESTA_RECIPIENT.equals(esitoAttCessModel.getTipoRichiesta())) {
record = (StringUtils.isEmpty(esitoAttCessModel.getImsi()) ? "D " + record : "I " + record + esitoAttCessModel.getImsi());
} else if (Constants.TIPO_RICHIESTA_CESSAZIONE_PORTING.equals(esitoAttCessModel.getTipoRichiesta())) {
record = "D " + record;
}
record += " " + dataEspletamento + " " + dataEspletamento + "\n";
// Salvataggio del record nel file e aggiornamento della data elaborazione in tabella
// tramite transazione gestita da applicazione:
// in caso di eccezione durante il salvataggio di un record, si passa al record successivo
// senza interrompere il ciclo
try {
// Salvataggio della data elaborazione
esitoAttCessModel.setDataElaborazione(now);
esitoAttCessService.update(esitoAttCessModel);
try {
// Scrittura del record sul file
fileMSS.write(record.getBytes());
logger.info("createFileEsitiHandler() - Record: " + record.replace("\n", "") + " inserito correttamente nel file e Data Elaborazione aggiornata sul DB");
} catch (Exception ex1) {
try {
// Rollback della data elaborazione
esitoAttCessModel.setDataElaborazione(null);
esitoAttCessService.update(esitoAttCessModel);
logger.info("createFileEsitiHandler() - Record: " + record.replace("\n", "") + " non inserito nel file a causa dell'eccezione: " + ex1.getMessage());
} catch (Exception ex2) {
logger.error("createFileEsitiHandler() - Eccezione durante il rollback: " + ex2.getMessage());
}
}
} catch (Exception ex3) {
logger.error("createFileEsitiHandler() - Eccezione durante il salvataggio della data elaborazione: " + ex3.getMessage());
}
}
fileMSS.close();
} else {
logger.info("createFileEsitiHandler() - Non sono presenti esiti da elaborare");
}
} catch (Exception ex) {
// Eccezione loggata nel metodo chiamante
throw ex;
} finally {
logger.info("createFileEsitiHandler() - FINE");
}
}
}

View File

@@ -0,0 +1,34 @@
package dbcm.service.impl.db;
import org.apache.log4j.Logger;
import dbcm.dao.EsitoAttCessScartiDao;
import dbcm.entity.EsitoAttCessScartiEntity;
import dbcm.model.bean.EsitoAttCessModel;
import dbcm.service.db.EsitoAttCessScartiService;
import dbcm.utils.BeanMapper;
public class EsitoAttCessScartiServiceImpl implements EsitoAttCessScartiService {
private Logger logger = Logger.getLogger(this.getClass().getName());
private EsitoAttCessScartiDao esitoAttCessScartiDao;
private BeanMapper mapper;
public EsitoAttCessScartiServiceImpl() {
esitoAttCessScartiDao = new EsitoAttCessScartiDao();
mapper = new BeanMapper();
}
@Override
public Long insert(EsitoAttCessModel esitoAttCessModel) throws Exception {
try {
Long uniqueId = esitoAttCessScartiDao.save(mapper.map(esitoAttCessModel, EsitoAttCessScartiEntity.class));
esitoAttCessModel.setUniqueId(uniqueId);
logger.info("insert(EsitoAttCessScartiModel) - Inserimento avvenuto correttamente con uniqueId " + uniqueId);
return uniqueId;
} catch (Exception ex) {
logger.error("insert(EsitoAttCessModel) - Eccezione durante l'inserimento: ", ex);
throw ex;
}
}
}

View File

@@ -0,0 +1,111 @@
package dbcm.service.impl.db;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import dbcm.dao.EsitoAttCessDao;
import dbcm.dao.ViewEsitoAttCessElabDao;
import dbcm.entity.EsitoAttCessEntity;
import dbcm.entity.ViewEsitoAttCessElabEntity;
import dbcm.model.bean.EsitoAttCessModel;
import dbcm.service.db.EsitoAttCessService;
import dbcm.utils.BeanMapper;
public class EsitoAttCessServiceImpl implements EsitoAttCessService {
private Logger logger = Logger.getLogger(this.getClass().getName());
private EsitoAttCessDao esitoAttCessDao;
private ViewEsitoAttCessElabDao viewEsitoAttCessElabDao;
private BeanMapper mapper;
public EsitoAttCessServiceImpl() {
esitoAttCessDao = new EsitoAttCessDao();
viewEsitoAttCessElabDao = new ViewEsitoAttCessElabDao();
mapper = new BeanMapper();
}
@Override
public Long insert(EsitoAttCessModel esitoAttCessModel) throws Exception {
try {
Long uniqueId = esitoAttCessDao.save(mapper.map(esitoAttCessModel, EsitoAttCessEntity.class));
esitoAttCessModel.setUniqueId(uniqueId);
logger.info("insert(EsitoAttCessModel) - Inserimento avvenuto correttamente con uniqueId " + uniqueId);
return uniqueId;
} catch (Exception ex) {
logger.error("insert(EsitoAttCessModel) - Eccezione durante l'inserimento: ", ex);
throw ex;
}
}
@Override
public void update(EsitoAttCessModel esitoAttCessModel) throws Exception {
try {
EsitoAttCessEntity esitoAttCessEntity = mapper.map(esitoAttCessModel, EsitoAttCessEntity.class);
esitoAttCessDao.merge(esitoAttCessEntity);
logger.info("update(EsitoAttCessModel) - Aggiornamento avvenuto correttamente con uniqueId " + esitoAttCessEntity.getUniqueId());
} catch (Exception ex) {
logger.error("update(EsitoAttCessModel) - Eccezione durante l'aggiornamento: ", ex);
throw ex;
}
}
@Override
public void updateIdRichiesta(EsitoAttCessModel esitoAttCessModel) throws Exception {
try {
List<Criterion> criterion = new ArrayList<Criterion>();
criterion.add(Restrictions.eq("msisdn", esitoAttCessModel.getMsisdn()));
criterion.add(Restrictions.eq("tipoRichiesta", esitoAttCessModel.getTipoRichiesta()));
List<ViewEsitoAttCessElabEntity> viewEsitoAttCessElabEntities = viewEsitoAttCessElabDao.findByCriteria(criterion);
List<EsitoAttCessModel> esitoAttCessModels = mapper.mapViewEntitiesToModels(viewEsitoAttCessElabEntities);
if (esitoAttCessModels != null && !esitoAttCessModels.isEmpty()) {
EsitoAttCessModel result = esitoAttCessModels.get(0);
update(result);
}
} catch (Exception ex) {
logger.error("updateIdRichiesta(EsitoAttCessModel) - Eccezione durante l'aggiornamento dell'idRichiesta: ", ex);
throw ex;
}
}
@Override
public EsitoAttCessModel findExisting(EsitoAttCessModel esitoAttCessModel) throws Exception {
try {
String sistemaChiamante = esitoAttCessModel.getSistemaChiamante();
EsitoAttCessModel result = null;
List<Criterion> criterion = new ArrayList<Criterion>();
criterion.add(Restrictions.eq("msisdn", esitoAttCessModel.getMsisdn()));
criterion.add(Restrictions.eq("tipoRichiesta", esitoAttCessModel.getTipoRichiesta()));
criterion.add(Restrictions.not(Restrictions.and(Restrictions.isNotNull("dataElaborazione"), Restrictions.isNotNull("dataRicezioneWeb"))));
Map<String, Boolean> orderByList = new HashMap<String, Boolean>();
orderByList.put("dataElaborazione", new Boolean(true));
List<EsitoAttCessEntity> esitoAttCessEntities = esitoAttCessDao.findByCriteria(criterion, orderByList);
List<EsitoAttCessModel> esitoAttCessModels = mapper.mapEntitiesToModels(esitoAttCessEntities);
if (esitoAttCessModels != null && !esitoAttCessModels.isEmpty()) {
result = esitoAttCessModels.get(0);
// Il record è già presente, quindi valorizzo il sistema chiamante secondario
result.setSistemaChiamanteSec(sistemaChiamante);
}
return result;
} catch (Exception ex) {
logger.error("findExisting(EsitoAttCessModel) - Eccezione durante il recupero dell'esito esistente: ", ex);
throw ex;
}
}
@Override
public List<EsitoAttCessModel> findDaProcessare() throws Exception {
try {
List<ViewEsitoAttCessElabEntity> viewEsitoAttCessElabEntities = viewEsitoAttCessElabDao.findAll();
return mapper.mapViewEntitiesToModels(viewEsitoAttCessElabEntities);
} catch (Exception ex) {
logger.error("findDaProcessare() - Eccezione durante il recupero degli esiti da processare: ", ex);
throw ex;
}
}
}

View File

@@ -0,0 +1,49 @@
package dbcm.service.impl.db;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import dbcm.dao.GestioneRichiestaRecDao;
import dbcm.entity.GestioneRichiestaRecEntity;
import dbcm.model.bean.EsitoAttCessModel;
import dbcm.model.bean.GestioneRichiestaRecModel;
import dbcm.service.db.GestioneRichiestaRecService;
import dbcm.utils.BeanMapper;
public class GestioneRichiestaRecServiceImpl implements GestioneRichiestaRecService {
private Logger logger = Logger.getLogger(this.getClass().getName());
private GestioneRichiestaRecDao gestioneRichiestaRecDao;
private BeanMapper mapper;
public GestioneRichiestaRecServiceImpl() {
gestioneRichiestaRecDao = new GestioneRichiestaRecDao();
mapper = new BeanMapper();
}
@Override
public GestioneRichiestaRecModel findExisting(EsitoAttCessModel esitoAttCessModel) throws Exception {
try {
GestioneRichiestaRecModel result = null;
List<Criterion> criterion = new ArrayList<Criterion>();
criterion.add(Restrictions.eq("msisdn", esitoAttCessModel.getMsisdn()));
criterion.add(Restrictions.eq("stato", new Long(11)));
criterion.add(Restrictions.le("dataCutOverAom", new Date()));
criterion.add(Restrictions.eq("espletamentomss", new Long(0)));
List<GestioneRichiestaRecEntity> gestioneRichiestaRecEntities = gestioneRichiestaRecDao.findByCriteria(criterion);
List<GestioneRichiestaRecModel> gestioneRichiestaRecModels = mapper.mapRichRecEntitiesToModels(gestioneRichiestaRecEntities);
if (gestioneRichiestaRecModels != null && !gestioneRichiestaRecModels.isEmpty()) {
result = gestioneRichiestaRecModels.get(0);
}
return result;
} catch (Exception ex) {
logger.error("findExisting(EsitoAttCessModel) - Eccezione durante il recupero della richiesta: ", ex);
throw ex;
}
}
}

View File

@@ -0,0 +1,48 @@
package dbcm.service.impl.db;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import dbcm.dao.GestioneRichiestaDao;
import dbcm.entity.GestioneRichiestaEntity;
import dbcm.model.bean.EsitoAttCessModel;
import dbcm.model.bean.GestioneRichiestaModel;
import dbcm.service.db.GestioneRichiestaService;
import dbcm.utils.BeanMapper;
public class GestioneRichiestaServiceImpl implements GestioneRichiestaService {
private Logger logger = Logger.getLogger(this.getClass().getName());
private GestioneRichiestaDao gestioneRichiestaDao;
private BeanMapper mapper;
public GestioneRichiestaServiceImpl() {
gestioneRichiestaDao = new GestioneRichiestaDao();
mapper = new BeanMapper();
}
@Override
public GestioneRichiestaModel findExisting(EsitoAttCessModel esitoAttCessModel) throws Exception {
try {
GestioneRichiestaModel result = null;
List<Criterion> criterion = new ArrayList<Criterion>();
criterion.add(Restrictions.eq("msisdn", esitoAttCessModel.getMsisdn()));
criterion.add(Restrictions.eq("stato", new Long(14)));
criterion.add(Restrictions.le("dataCutOverCalc", new Date()));
List<GestioneRichiestaEntity> gestioneRichiestaEntities = gestioneRichiestaDao.findByCriteria(criterion);
List<GestioneRichiestaModel> gestioneRichiestaModels = mapper.mapRichEntitiesToModels(gestioneRichiestaEntities);
if (gestioneRichiestaModels != null && !gestioneRichiestaModels.isEmpty()) {
result = gestioneRichiestaModels.get(0);
}
return result;
} catch (Exception ex) {
logger.error("findExisting(EsitoAttCessModel) - Eccezione durante il recupero della richiesta: ", ex);
throw ex;
}
}
}

View File

@@ -0,0 +1,87 @@
package dbcm.utils;
import java.util.ArrayList;
import java.util.List;
import org.dozer.DozerBeanMapper;
import dbcm.entity.EsitoAttCessEntity;
import dbcm.entity.GestioneRichiestaEntity;
import dbcm.entity.GestioneRichiestaRecEntity;
import dbcm.entity.ViewEsitoAttCessElabEntity;
import dbcm.model.bean.EsitoAttCessModel;
import dbcm.model.bean.GestioneRichiestaModel;
import dbcm.model.bean.GestioneRichiestaRecModel;
public class BeanMapper extends DozerBeanMapper {
public BeanMapper() {
super();
}
// List Mapping Custom: Entity to Model
public List<EsitoAttCessModel> mapEntitiesToModels(List<EsitoAttCessEntity> entities) {
List<EsitoAttCessModel> result = null;
if (entities != null) {
result = new ArrayList<EsitoAttCessModel>();
for (EsitoAttCessEntity entity : entities) {
EsitoAttCessModel model = map(entity, EsitoAttCessModel.class);
result.add(model);
}
}
return result;
}
public List<EsitoAttCessModel> mapViewEntitiesToModels(List<ViewEsitoAttCessElabEntity> entities) {
List<EsitoAttCessModel> result = null;
if (entities != null) {
result = new ArrayList<EsitoAttCessModel>();
for (ViewEsitoAttCessElabEntity entity : entities) {
EsitoAttCessModel model = map(entity, EsitoAttCessModel.class);
result.add(model);
}
}
return result;
}
public List<GestioneRichiestaModel> mapRichEntitiesToModels(List<GestioneRichiestaEntity> entities) {
List<GestioneRichiestaModel> result = null;
if (entities != null) {
result = new ArrayList<GestioneRichiestaModel>();
for (GestioneRichiestaEntity entity : entities) {
GestioneRichiestaModel model = map(entity, GestioneRichiestaModel.class);
result.add(model);
}
}
return result;
}
public List<GestioneRichiestaRecModel> mapRichRecEntitiesToModels(List<GestioneRichiestaRecEntity> entities) {
List<GestioneRichiestaRecModel> result = null;
if (entities != null) {
result = new ArrayList<GestioneRichiestaRecModel>();
for (GestioneRichiestaRecEntity entity : entities) {
GestioneRichiestaRecModel model = map(entity, GestioneRichiestaRecModel.class);
result.add(model);
}
}
return result;
}
// List Mapping Custom: Model to Entity
public List<EsitoAttCessEntity> mapModelsToEntities(List<EsitoAttCessModel> models) {
List<EsitoAttCessEntity> result = null;
if (models != null) {
result = new ArrayList<EsitoAttCessEntity>();
for (EsitoAttCessModel model : models) {
EsitoAttCessEntity entity = map(model, EsitoAttCessEntity.class);
result.add(entity);
}
}
return result;
}
}

Binary file not shown.

View File

@@ -0,0 +1,5 @@
#Generated by Maven
#Fri Jun 10 14:06:53 CEST 2022
version=1.0
groupId=dbcm
artifactId=dbcm-service

View File

@@ -0,0 +1,7 @@
dbcm\utils\BeanMapper.class
dbcm\service\impl\db\EsitoAttCessServiceImpl.class
dbcm\service\impl\business\Cessazioni13MServiceImpl.class
dbcm\service\impl\business\EsitoServiceImpl.class
dbcm\service\impl\db\GestioneRichiestaRecServiceImpl.class
dbcm\service\impl\db\EsitoAttCessScartiServiceImpl.class
dbcm\service\impl\db\GestioneRichiestaServiceImpl.class

View File

@@ -0,0 +1,7 @@
C:\dev\TIM\DBCMNP\dbcmnp_workspace\dbcm\dbcm-service\src\main\java\dbcm\utils\BeanMapper.java
C:\dev\TIM\DBCMNP\dbcmnp_workspace\dbcm\dbcm-service\src\main\java\dbcm\service\impl\db\GestioneRichiestaRecServiceImpl.java
C:\dev\TIM\DBCMNP\dbcmnp_workspace\dbcm\dbcm-service\src\main\java\dbcm\service\impl\db\EsitoAttCessScartiServiceImpl.java
C:\dev\TIM\DBCMNP\dbcmnp_workspace\dbcm\dbcm-service\src\main\java\dbcm\service\impl\business\Cessazioni13MServiceImpl.java
C:\dev\TIM\DBCMNP\dbcmnp_workspace\dbcm\dbcm-service\src\main\java\dbcm\service\impl\db\EsitoAttCessServiceImpl.java
C:\dev\TIM\DBCMNP\dbcmnp_workspace\dbcm\dbcm-service\src\main\java\dbcm\service\impl\business\EsitoServiceImpl.java
C:\dev\TIM\DBCMNP\dbcmnp_workspace\dbcm\dbcm-service\src\main\java\dbcm\service\impl\db\GestioneRichiestaServiceImpl.java