aggiunto invio dell'errore
This commit is contained in:
@@ -1097,102 +1097,119 @@ public class VariazioniPvService {
|
||||
|
||||
public void exportByTipoReport(String tipoReport, VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
|
||||
List<String> tipiReport = new ArrayList<>();
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(tipoReport))
|
||||
tipiReport.add(tipoReport);
|
||||
else {
|
||||
tipiReport.add("V"); //Variazioni
|
||||
tipiReport.add("P"); //Promozioni
|
||||
tipiReport.add("G"); //Griglie
|
||||
}
|
||||
|
||||
boolean existVariazioni = false;
|
||||
Date dataValidita = null;
|
||||
if (variazioniPvInputDTO != null) {
|
||||
existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && !variazioniPvInputDTO.getVariazioni().isEmpty());
|
||||
dataValidita = variazioniPvInputDTO.getDataValidita();
|
||||
}
|
||||
|
||||
if (dataValidita == null)
|
||||
dataValidita = UtilityDate.RelativeDateTime(UtilityDate.getTodayWithoutTime(), 1);
|
||||
|
||||
List<VariazioniDTO> listini = getListini(variazioniPvInputDTO, existVariazioni);
|
||||
|
||||
List<RunnableArgsThrowable<Triple<String, String, List<VariazioniDettaglioDTO>>>> calls = new ArrayList<>();
|
||||
|
||||
for (VariazioniDTO pv : listini) {
|
||||
for (String report : tipiReport) {
|
||||
final Date finalDataValidita = dataValidita;
|
||||
final String finalProfileDb = multiDBTransactionManager.getPrimaryDatasource().getProfile();
|
||||
|
||||
calls.add(() -> {
|
||||
try (MultiDBTransactionManager mdb = new MultiDBTransactionManager(finalProfileDb)) {
|
||||
String codVlis = pv.getCodVlis();
|
||||
|
||||
logger.debug(
|
||||
String.format("Variazioni: Export [CodListino: %s, TipoReport: %s, Validità: %s]",
|
||||
codVlis,
|
||||
report,
|
||||
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(finalDataValidita)));
|
||||
|
||||
return new Triple<>(codVlis, report, exportVariazioni(mdb, codVlis, finalDataValidita, report, variazioniPvInputDTO));
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
final ArrayList<Result<Triple<String, String, List<VariazioniDettaglioDTO>>>> results = UtilityThread.executeParallel(calls, 6);
|
||||
|
||||
final List<Triple<String, String, List<VariazioniDettaglioDTO>>> completedExports = results.stream()
|
||||
.filter(x -> x instanceof Result.Success)
|
||||
.map(x -> ((Result.Success<Triple<String, String, List<VariazioniDettaglioDTO>>>) x).getData())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
final List<Exception> generatedErrors = results.stream()
|
||||
.filter(x -> x instanceof Result.Error)
|
||||
.map(x -> ((Result.Error<?>) x).getError())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
|
||||
String emailForLog = setupGest.getExportSetup(multiDBTransactionManager.getPrimaryConnection(), "VARIAZIONE PV", "XML_DIALOGO", "EMAIL_FOR_LOG");
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(emailForLog)) {
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
for (Triple<String, String, List<VariazioniDettaglioDTO>> completedExport : completedExports) {
|
||||
if(completedExport.getThird().isEmpty())
|
||||
continue;
|
||||
|
||||
sb.append("Esportazione ")
|
||||
.append(completedExport.getSecond())
|
||||
.append(" punto vendita ")
|
||||
.append(completedExport.getFirst())
|
||||
.append(" (").append(completedExport.getThird().size()).append(" variazioni)")
|
||||
.append(" avvenuta con successo\n\r");
|
||||
try {
|
||||
if (!UtilityString.isNullOrEmpty(tipoReport))
|
||||
tipiReport.add(tipoReport);
|
||||
else {
|
||||
tipiReport.add("V"); //Variazioni
|
||||
tipiReport.add("P"); //Promozioni
|
||||
tipiReport.add("G"); //Griglie
|
||||
}
|
||||
|
||||
if(!generatedErrors.isEmpty())
|
||||
sb.append("\n\r\n\rErrori\n\r");
|
||||
|
||||
|
||||
for (Exception generatedError : generatedErrors) {
|
||||
sb.append("Messaggio errore: ")
|
||||
.append(generatedError.getMessage())
|
||||
.append("\n\r");
|
||||
boolean existVariazioni = false;
|
||||
Date dataValidita = null;
|
||||
if (variazioniPvInputDTO != null) {
|
||||
existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && !variazioniPvInputDTO.getVariazioni().isEmpty());
|
||||
dataValidita = variazioniPvInputDTO.getDataValidita();
|
||||
}
|
||||
|
||||
if (dataValidita == null)
|
||||
dataValidita = UtilityDate.RelativeDateTime(UtilityDate.getTodayWithoutTime(), 1);
|
||||
|
||||
mailService.sendMailPrimary(multiDBTransactionManager,
|
||||
null, null,
|
||||
emailForLog, null, null,
|
||||
"Esportazione variazioni", sb.toString(), false, false,
|
||||
null, null, null,
|
||||
false, null);
|
||||
List<VariazioniDTO> listini = getListini(variazioniPvInputDTO, existVariazioni);
|
||||
|
||||
List<RunnableArgsThrowable<Triple<String, String, List<VariazioniDettaglioDTO>>>> calls = new ArrayList<>();
|
||||
|
||||
for (VariazioniDTO pv : listini) {
|
||||
for (String report : tipiReport) {
|
||||
final Date finalDataValidita = dataValidita;
|
||||
final String finalProfileDb = multiDBTransactionManager.getPrimaryDatasource().getProfile();
|
||||
|
||||
calls.add(() -> {
|
||||
try (MultiDBTransactionManager mdb = new MultiDBTransactionManager(finalProfileDb)) {
|
||||
String codVlis = pv.getCodVlis();
|
||||
|
||||
logger.debug(
|
||||
String.format("Variazioni: Export [CodListino: %s, TipoReport: %s, Validità: %s]",
|
||||
codVlis,
|
||||
report,
|
||||
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(finalDataValidita)));
|
||||
|
||||
return new Triple<>(codVlis, report, exportVariazioni(mdb, codVlis, finalDataValidita, report, variazioniPvInputDTO));
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
final ArrayList<Result<Triple<String, String, List<VariazioniDettaglioDTO>>>> results = UtilityThread.executeParallel(calls, 6);
|
||||
|
||||
final List<Triple<String, String, List<VariazioniDettaglioDTO>>> completedExports = results.stream()
|
||||
.filter(x -> x instanceof Result.Success)
|
||||
.map(x -> ((Result.Success<Triple<String, String, List<VariazioniDettaglioDTO>>>) x).getData())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
final List<Exception> generatedErrors = results.stream()
|
||||
.filter(x -> x instanceof Result.Error)
|
||||
.map(x -> ((Result.Error<?>) x).getError())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(emailForLog)) {
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
// for (Triple<String, String, List<VariazioniDettaglioDTO>> completedExport : completedExports) {
|
||||
// if (completedExport.getThird().isEmpty())
|
||||
// continue;
|
||||
//
|
||||
// sb.append("Esportazione ")
|
||||
// .append(completedExport.getSecond())
|
||||
// .append(" punto vendita ")
|
||||
// .append(completedExport.getFirst())
|
||||
// .append(" (").append(completedExport.getThird().size()).append(" variazioni)")
|
||||
// .append(" avvenuta con successo\n\r");
|
||||
// }
|
||||
|
||||
if (!generatedErrors.isEmpty())
|
||||
sb.append("\n\r\n\rErrori\n\r");
|
||||
|
||||
|
||||
for (Exception generatedError : generatedErrors) {
|
||||
sb.append("Messaggio errore: ")
|
||||
.append(generatedError.getMessage())
|
||||
.append("\n\r");
|
||||
}
|
||||
|
||||
|
||||
mailService.sendMailPrimary(multiDBTransactionManager,
|
||||
null, null,
|
||||
emailForLog, null, null,
|
||||
"Esportazione variazioni", sb.toString(), false, false,
|
||||
null, null, null,
|
||||
false, null);
|
||||
}
|
||||
}catch (Exception e ){
|
||||
if (!UtilityString.isNullOrEmpty(emailForLog)) {
|
||||
mailService.sendMailPrimary(multiDBTransactionManager,
|
||||
null, null,
|
||||
emailForLog, null, null,
|
||||
"Errore nella procedura di esportazione variazioni", e.getMessage(), false, false,
|
||||
null, null, null,
|
||||
false, null);
|
||||
} else {
|
||||
mailService.sendSystemErrorLog(
|
||||
"Errore nella procedura di esportazione variazioni " + multiDBTransactionManager.getPrimaryDatasource().getDbName(),
|
||||
"Errore nella procedura di esportazione variazioni ",
|
||||
"Errore nella procedura di esportazione variazioni",
|
||||
e, new Date());
|
||||
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private List<VariazioniDettaglioDTO> exportVariazioni(MultiDBTransactionManager multiDBTransactionManager, String codVlis, Date dataValidita, String tipoReport, VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user