Merge branch 'develop' into feature/JDK11
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -95,6 +95,13 @@ public class RequestDataDTO {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static RequestDataDTO systemMockupData() {
|
||||
return new RequestDataDTO()
|
||||
.setUsername("dba")
|
||||
.setPassword("sql");
|
||||
}
|
||||
|
||||
public boolean isValidProfileDB() {
|
||||
return !UtilityString.isNullOrEmpty(profileDB);
|
||||
}
|
||||
@@ -133,16 +140,18 @@ public class RequestDataDTO {
|
||||
return username;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
public RequestDataDTO setUsername(String username) {
|
||||
this.username = username;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
public RequestDataDTO setPassword(String password) {
|
||||
this.password = password;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean shouldIncludeNulls() {
|
||||
|
||||
@@ -3,6 +3,7 @@ package it.integry.ems.service;
|
||||
import it.integry.ems.properties.EmsProperties;
|
||||
import it.integry.ems.report.dto.ReportTypeDTO;
|
||||
import it.integry.ems.service.exception.EmptyReportException;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.entity.WtbJreptSetup;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
@@ -32,8 +33,6 @@ import java.io.ByteArrayInputStream;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
|
||||
@Service
|
||||
@Scope("request")
|
||||
public class PrinterService {
|
||||
@@ -239,10 +238,11 @@ public class PrinterService {
|
||||
return reportProcessor.getReportForReportType(reportTypeDTO);
|
||||
}
|
||||
|
||||
public String printReportType(ReportTypeDTO reportTypeDTO) throws Exception {
|
||||
public void printReportType(ReportTypeDTO reportTypeDTO) throws Exception {
|
||||
WtbJreptSetup impostazioniStampa = reportProcessor.getReportForReportType(reportTypeDTO);
|
||||
if (impostazioniStampa == null) {
|
||||
throw new Exception("Nessuna configurazione trovata per il tipo report " + reportTypeDTO.getReportType().toString());
|
||||
logger.warn("Nessuna configurazione trovata per il tipo report " + reportTypeDTO.getReportType().toString());
|
||||
return;
|
||||
}
|
||||
String printerName = impostazioniStampa.getPrinterName();
|
||||
Integer numberOfCopies = impostazioniStampa.getPrintQuantity();
|
||||
@@ -256,16 +256,15 @@ public class PrinterService {
|
||||
switch (impostazioniStampa.getOrientation()) {
|
||||
case PORTRAIT:
|
||||
orientation = Orientation.PORTRAIT;
|
||||
|
||||
break;
|
||||
|
||||
case LANDSCAPE:
|
||||
orientation = Orientation.LANDSCAPE;
|
||||
|
||||
break;
|
||||
default:
|
||||
case AUTO:
|
||||
orientation = Orientation.AUTO;
|
||||
|
||||
case AUTO:
|
||||
default:
|
||||
orientation = Orientation.AUTO;
|
||||
break;
|
||||
}
|
||||
numberOfCopies = numberOfCopies == null ? 1 : numberOfCopies;
|
||||
@@ -273,8 +272,6 @@ public class PrinterService {
|
||||
print(printerName, new ByteArrayInputStream(bytes), "application/pdf", orientation);
|
||||
}
|
||||
|
||||
return printerName;
|
||||
|
||||
} else {
|
||||
throw new EmptyReportException();
|
||||
}
|
||||
|
||||
@@ -59,6 +59,10 @@ public class MultiDBTransactionManager implements AutoCloseable {
|
||||
this(connectionsModel.getProfileName(), true);
|
||||
}
|
||||
|
||||
public MultiDBTransactionManager(AvailableConnectionsModel connectionsModel, boolean enableLog) throws Exception {
|
||||
this(connectionsModel.getProfileName(), enableLog);
|
||||
}
|
||||
|
||||
public MultiDBTransactionManager(String profileDb) throws Exception {
|
||||
this(profileDb, true);
|
||||
}
|
||||
|
||||
@@ -120,7 +120,8 @@ public class EmsEngineController {
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestBody ReportTypeDTO reportTypeDTO) {
|
||||
try {
|
||||
return ServiceRestResponse.createPositiveResponse(printerService.printReportType(reportTypeDTO));
|
||||
printerService.printReportType(reportTypeDTO);
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
} catch (Exception e) {
|
||||
logger.error(request.getRequestURI(), e);
|
||||
return ServiceRestResponse.createNegativeResponse(configuration, e);
|
||||
|
||||
@@ -10,6 +10,7 @@ import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
||||
import it.integry.ems.settings.Model.SettingsModel;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
@@ -296,10 +297,15 @@ public class AutofatturaService {
|
||||
}
|
||||
|
||||
public void chkAutofattura() throws Exception {
|
||||
for (AvailableConnectionsModel model : settingsModel.getAvailableConnections()) {
|
||||
if (!model.getInternalDb())
|
||||
continue;
|
||||
List<AvailableConnectionsModel> availableConnections = settingsModel.getAvailableConnections(true);
|
||||
|
||||
if (UtilityDebug.isIntegryServer()) {
|
||||
availableConnections = availableConnections.stream().filter(x ->
|
||||
x.getDbName().equalsIgnoreCase("STUDIOML"))
|
||||
.collect(java.util.stream.Collectors.toList());
|
||||
}
|
||||
|
||||
for (AvailableConnectionsModel model : availableConnections) {
|
||||
DataSource ds = new DataSource();
|
||||
ds.initialize(model.getProfileName());
|
||||
Connection conn = ds.getConnection();
|
||||
|
||||
@@ -1,114 +1,172 @@
|
||||
package it.integry.ems.product.service;
|
||||
|
||||
import it.integry.annotations.PostWebServerConstruct;
|
||||
import it.integry.ems.json.ResponseJSONObjectMapper;
|
||||
import it.integry.ems.looper.service.LooperService;
|
||||
import it.integry.ems.response.EsitoType;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.service.HttpRestWrapper;
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
||||
import it.integry.ems.settings.Model.SettingsModel;
|
||||
import it.integry.ems.settings.SettingsController;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.AtbOffr;
|
||||
import it.integry.ems_model.entity.AtbOfft;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityServer;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class ContrattiDiAcquistoHandlerService {
|
||||
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
@Autowired
|
||||
private LooperService looperService;
|
||||
|
||||
@Autowired
|
||||
private SettingsModel settingsModel;
|
||||
|
||||
@Autowired
|
||||
private SettingsController settingsController;
|
||||
|
||||
@Autowired
|
||||
private ResponseJSONObjectMapper jsonObjectMapper;
|
||||
private EntityProcessor entityProcessor;
|
||||
|
||||
private boolean canBeExecuted = false;
|
||||
|
||||
private final HashMap<String, Boolean> executionPermission = new HashMap<>();
|
||||
|
||||
@Scheduled(fixedDelay = 1, timeUnit = TimeUnit.HOURS, zone = "Europe/Rome")
|
||||
private void refreshCronPermission() throws Exception {
|
||||
canBeExecuted = !UtilityDebug.isDebugExecution() && settingsModel.isPrimaryInstance() && !UtilityDebug.isIntegryServer();
|
||||
if (!canBeExecuted) return;
|
||||
|
||||
@PostWebServerConstruct
|
||||
public void init() {
|
||||
if (executeUpdate()) {
|
||||
looperService.add(() -> this.updateProgContrattoA(), 10 * 1000, ContrattiDiAcquistoHandlerService.class.getName());
|
||||
}
|
||||
}
|
||||
private boolean executeUpdate(){
|
||||
return !UtilityDebug.isDebugExecution() && settingsModel.isPrimaryInstance() && !UtilityDebug.isIntegryServer();
|
||||
}
|
||||
public void updateProgContrattoA() {
|
||||
try {
|
||||
String sql =
|
||||
"SELECT CAST(COUNT(*) AS BIT)\n" +
|
||||
"FROM stb_abil\n" +
|
||||
"WHERE cod_opz = 'WG098'\n" +
|
||||
" AND flag_abil <> 'N'";
|
||||
|
||||
String historyProfileDb = settingsController.getHistoryProfileDb();
|
||||
final List<AvailableConnectionsModel> availableConnections = settingsModel.getAvailableConnectionsWithoutDuplicatedProfiles(true, historyProfileDb);
|
||||
|
||||
Map<String, List<AvailableConnectionsModel>> databases = settingsModel.getAvailableConnections(true)
|
||||
.stream()
|
||||
.filter(x -> !historyProfileDb.equalsIgnoreCase(x.getProfileName()))
|
||||
.collect(Collectors.groupingBy(AvailableConnectionsModel::getDbName));
|
||||
for (AvailableConnectionsModel connectionsModel : availableConnections) {
|
||||
try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(connectionsModel, false)) {
|
||||
|
||||
boolean isEnabled = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
executionPermission.remove(connectionsModel.getDbName());
|
||||
executionPermission.put(connectionsModel.getDbName(), isEnabled);
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
logger.error(ContrattiDiAcquistoHandlerService.class.getSimpleName(), ex);
|
||||
throw ex;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Scheduled(fixedDelay = 10, timeUnit = TimeUnit.SECONDS, initialDelay = 60, zone = "Europe/Rome")
|
||||
private void updateProgContrattoA() throws Exception {
|
||||
if (!canBeExecuted) return;
|
||||
|
||||
String historyProfileDb = settingsController.getHistoryProfileDb();
|
||||
final List<AvailableConnectionsModel> availableConnections = settingsModel.getAvailableConnectionsWithoutDuplicatedProfiles(true, historyProfileDb);
|
||||
|
||||
|
||||
for (String dbName : databases.keySet()) {
|
||||
String profileName = databases.get(dbName).get(0).getProfileName();
|
||||
|
||||
MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(profileName, false);
|
||||
|
||||
//Verifichiamo se la gestione dei contratti di acquisto è abilitata
|
||||
String sql =
|
||||
"SELECT CAST(COUNT(*) AS BIT)\n" +
|
||||
"FROM stb_abil\n" +
|
||||
"WHERE cod_opz = 'WG098'\n" +
|
||||
" AND flag_abil <> 'N'";
|
||||
boolean gestioneAbilitata = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
multiDBTransactionManager.closeAll();
|
||||
for (AvailableConnectionsModel connectionModel : availableConnections) {
|
||||
try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(connectionModel, false)) {
|
||||
|
||||
boolean isEnabled = executionPermission.getOrDefault(connectionModel.getDbName(), false);
|
||||
Date startDate = new Date();
|
||||
|
||||
if (gestioneAbilitata) {
|
||||
HashMap<String, String> param = new HashMap<>();
|
||||
param.put("profileDb", profileName);
|
||||
StringBuilder jsonResponse = new StringBuilder();
|
||||
if (isEnabled)
|
||||
updateProgressivi(multiDBTransactionManager);
|
||||
|
||||
final String servicename = "contratti-acquisto/updateProgressivi";
|
||||
String url = String.format(
|
||||
"http://%s:%s/ems-api/%s",
|
||||
InetAddress.getLocalHost().getHostAddress(),
|
||||
UtilityServer.getLocalServerPort(),
|
||||
servicename
|
||||
);
|
||||
int requestStatusCode = HttpRestWrapper.callGeneric(url, "", "", "", ContentType.TEXT_PLAIN, jsonResponse, param);
|
||||
|
||||
if (requestStatusCode != 200) {
|
||||
throw new Exception(String.format("Non è stato possibile chiamare il servizio di %s (Status: %s)", servicename, requestStatusCode));
|
||||
} else {
|
||||
ServiceRestResponse responseObject = jsonObjectMapper.readValue(jsonResponse.toString(), ServiceRestResponse.class);
|
||||
if (responseObject.getEsito() == EsitoType.KO) {
|
||||
throw new Exception(responseObject.getErrorMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
logger.trace(ContrattiDiAcquistoHandlerService.class.getSimpleName() + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
|
||||
|
||||
} catch (Exception ex) {
|
||||
logger.error(ex.getMessage(), ex);
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
logger.error(ex.getMessage(), ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public List<EntityBase> updateProgressivi(MultiDBTransactionManager mdb) throws Exception {
|
||||
String sql =
|
||||
"WITH ord AS\n" +
|
||||
" (SELECT dtb_ordr.id_contratto,\n" +
|
||||
" dtb_ordr.cod_mart,\n" +
|
||||
" SUM((dtb_ordr.qta_ord - dtb_ordr.qta_evasa) / dtb_ordr.rap_conv) AS qta_ord\n" +
|
||||
" FROM dtb_ordt\n" +
|
||||
" INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione AND\n" +
|
||||
" dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||
" WHERE dtb_ordt.gestione = 'A'\n" +
|
||||
" AND dtb_ordt.flag_annulla = 'N'\n" +
|
||||
" AND dtb_ordt.flag_sospeso = 'N'\n" +
|
||||
" AND dtb_ordr.flag_evaso = 'I'\n" +
|
||||
" AND dtb_ordr.id_contratto IS NOT NULL\n" +
|
||||
" GROUP BY dtb_ordr.id_contratto,\n" +
|
||||
" dtb_ordr.cod_mart)\n" +
|
||||
" , doc AS (SELECT dtb_docr.id_contratto,\n" +
|
||||
" dtb_docr.cod_mart,\n" +
|
||||
" SUM(dtb_docr.qta_doc / dtb_docr.rap_conv) AS qta_doc\n" +
|
||||
" FROM dtb_doct\n" +
|
||||
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\n" +
|
||||
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
||||
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
|
||||
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
|
||||
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
||||
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||
" WHERE dtb_doct.gestione = 'A'\n" +
|
||||
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||
" AND dtb_docr.id_contratto IS NOT NULL\n" +
|
||||
" GROUP BY dtb_docr.id_contratto,\n" +
|
||||
" dtb_docr.cod_mart)\n" +
|
||||
"SELECT atb_offr.id_contratto,\n" +
|
||||
" atb_offr.riga_off,\n" +
|
||||
" atb_offr.cod_mart,\n" +
|
||||
" ISNULL(ord.qta_ord / atb_offr.rap_conv, 0) AS qta_ord,\n" +
|
||||
" ISNULL(doc.qta_doc / atb_offr.rap_conv, 0) AS qta_doc\n" +
|
||||
"FROM atb_offr\n" +
|
||||
" LEFT OUTER JOIN ord ON atb_offr.id_contratto = ord.id_contratto AND atb_offr.cod_mart = ord.cod_mart\n" +
|
||||
" LEFT OUTER JOIN doc ON atb_offr.id_contratto = doc.id_contratto AND atb_offr.cod_mart = doc.cod_mart\n" +
|
||||
"WHERE (atb_offr.qta_ord <> ISNULL(ord.qta_ord / atb_offr.rap_conv, 0) OR\n" +
|
||||
" atb_offr.qta_doc <> ISNULL(doc.qta_doc / atb_offr.rap_conv, 0))\n" ;
|
||||
|
||||
List<AtbOffr> atbOffrs = new ResultSetMapper().mapQuerySetToList(mdb.getPrimaryConnection(), sql, AtbOffr.class, OperationType.UPDATE);
|
||||
|
||||
List<AtbOfft> atbOfftsToSave = new ArrayList<>();
|
||||
|
||||
atbOffrs.stream()
|
||||
.collect(Collectors.groupingBy(AtbOffr::getIdContratto))
|
||||
.forEach((key, value) -> {
|
||||
atbOfftsToSave.add(new AtbOfft()
|
||||
.setIdContratto(key)
|
||||
.setAtbOffr(value));
|
||||
});
|
||||
|
||||
List<EntityBase> ret = entityProcessor.processEntityList(atbOfftsToSave, null, true, false, false, mdb, true, false, RequestDataDTO.systemMockupData());
|
||||
|
||||
UtilityEntity.throwEntitiesException(ret);
|
||||
|
||||
/*
|
||||
mailService.sendSystemErrorLog("[" + multiDBTransactionManager.getPrimaryDatasource().getDbName() + " - " + azienda.getNomeDitta() + "][" + UtilityServer.getHostName() + "] Verifica autofatture ",
|
||||
"Verifica autofatture",
|
||||
"Sull'azienda " + azienda.getNomeDitta() + " non è presente nessuna email con flag default contabilità, non sarà possibile inviare la mail di verifica.",
|
||||
(String) null, new Date());
|
||||
*/
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package it.integry.ems.product.service;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.service.MailService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.entity.AtbForn;
|
||||
import it.integry.ems_model.entity.AtbList;
|
||||
import it.integry.ems_model.entity.AtbOfft;
|
||||
import it.integry.ems_model.entity.GtbAnag;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
@@ -30,7 +30,7 @@ public class ContrattiDiAcquistoService {
|
||||
MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
@Autowired
|
||||
private MailService mailService;
|
||||
private ContrattiDiAcquistoHandlerService contrattiDiAcquistoHandlerService;
|
||||
|
||||
|
||||
public List<EntityBase> save(AtbOfft atbOfft) throws Exception {
|
||||
@@ -114,70 +114,6 @@ public class ContrattiDiAcquistoService {
|
||||
}
|
||||
|
||||
public List<EntityBase> updateProgressivi() throws Exception {
|
||||
String sql =
|
||||
"WITH ord AS\n" +
|
||||
" (SELECT dtb_ordr.id_contratto,\n" +
|
||||
" dtb_ordr.cod_mart,\n" +
|
||||
" SUM((dtb_ordr.qta_ord - dtb_ordr.qta_evasa) / dtb_ordr.rap_conv) AS qta_ord\n" +
|
||||
" FROM dtb_ordt\n" +
|
||||
" INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione AND\n" +
|
||||
" dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||
" WHERE dtb_ordt.gestione = 'A'\n" +
|
||||
" AND dtb_ordt.flag_annulla = 'N'\n" +
|
||||
" AND dtb_ordt.flag_sospeso = 'N'\n" +
|
||||
" AND dtb_ordr.flag_evaso = 'I'\n" +
|
||||
" AND dtb_ordr.id_contratto IS NOT NULL\n" +
|
||||
" GROUP BY dtb_ordr.id_contratto,\n" +
|
||||
" dtb_ordr.cod_mart)\n" +
|
||||
" , doc AS (SELECT dtb_docr.id_contratto,\n" +
|
||||
" dtb_docr.cod_mart,\n" +
|
||||
" SUM(dtb_docr.qta_doc / dtb_docr.rap_conv) AS qta_doc\n" +
|
||||
" FROM dtb_doct\n" +
|
||||
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\n" +
|
||||
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
||||
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
|
||||
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
|
||||
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
||||
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||
" WHERE dtb_doct.gestione = 'A'\n" +
|
||||
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||
" AND dtb_docr.id_contratto IS NOT NULL\n" +
|
||||
" GROUP BY dtb_docr.id_contratto,\n" +
|
||||
" dtb_docr.cod_mart)\n" +
|
||||
"SELECT atb_offr.id_contratto,\n" +
|
||||
" atb_offr.riga_off,\n" +
|
||||
" atb_offr.cod_mart,\n" +
|
||||
" ISNULL(ord.qta_ord / atb_offr.rap_conv, 0) AS qta_ord,\n" +
|
||||
" ISNULL(doc.qta_doc / atb_offr.rap_conv, 0) AS qta_doc\n" +
|
||||
"FROM atb_offr\n" +
|
||||
" LEFT OUTER JOIN ord ON atb_offr.id_contratto = ord.id_contratto AND atb_offr.cod_mart = ord.cod_mart\n" +
|
||||
" LEFT OUTER JOIN doc ON atb_offr.id_contratto = doc.id_contratto AND atb_offr.cod_mart = doc.cod_mart\n" +
|
||||
"WHERE (atb_offr.qta_ord <> ISNULL(ord.qta_ord / atb_offr.rap_conv, 0) OR\n" +
|
||||
" atb_offr.qta_doc <> ISNULL(doc.qta_doc / atb_offr.rap_conv, 0))\n" ;
|
||||
|
||||
List<AtbOffr> atbOffrs = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, AtbOffr.class, OperationType.UPDATE);
|
||||
|
||||
List<AtbOfft> atbOfftsToSave = new ArrayList<>();
|
||||
|
||||
Stream.of(atbOffrs)
|
||||
.groupBy(AtbOffr::getIdContratto)
|
||||
.forEach(x -> {
|
||||
atbOfftsToSave.add(new AtbOfft()
|
||||
.setIdContratto(x.getKey())
|
||||
.setAtbOffr(x.getValue()));
|
||||
});
|
||||
|
||||
List<EntityBase> ret = entityProcessor.processEntityList(atbOfftsToSave, multiDBTransactionManager, false);
|
||||
|
||||
UtilityEntity.throwEntitiesException(ret);
|
||||
|
||||
/*
|
||||
mailService.sendSystemErrorLog("[" + multiDBTransactionManager.getPrimaryDatasource().getDbName() + " - " + azienda.getNomeDitta() + "][" + UtilityServer.getHostName() + "] Verifica autofatture ",
|
||||
"Verifica autofatture",
|
||||
"Sull'azienda " + azienda.getNomeDitta() + " non è presente nessuna email con flag default contabilità, non sarà possibile inviare la mail di verifica.",
|
||||
(String) null, new Date());
|
||||
*/
|
||||
return ret;
|
||||
return contrattiDiAcquistoHandlerService.updateProgressivi(multiDBTransactionManager);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,116 +1,165 @@
|
||||
package it.integry.ems.product.service;
|
||||
|
||||
import it.integry.annotations.PostWebServerConstruct;
|
||||
import it.integry.ems.json.ResponseJSONObjectMapper;
|
||||
import it.integry.ems.looper.service.LooperService;
|
||||
import it.integry.ems.response.EsitoType;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.service.HttpRestWrapper;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
||||
import it.integry.ems.settings.Model.SettingsModel;
|
||||
import it.integry.ems.settings.SettingsController;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.VtbOffr;
|
||||
import it.integry.ems_model.entity.VtbOfft;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityServer;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class ContrattiDiVenditaHandlerService {
|
||||
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
@Autowired
|
||||
private LooperService looperService;
|
||||
|
||||
@Autowired
|
||||
private SettingsModel settingsModel;
|
||||
|
||||
@Autowired
|
||||
private SettingsController settingsController;
|
||||
|
||||
@Autowired
|
||||
private ResponseJSONObjectMapper jsonObjectMapper;
|
||||
private EntityProcessor entityProcessor;
|
||||
|
||||
@PostWebServerConstruct
|
||||
public void init() {
|
||||
if (executeUpdate()) {
|
||||
looperService.add(this::updateProgContrattoV, 10 * 1000, ContrattiDiVenditaHandlerService.class.getName());
|
||||
}
|
||||
}
|
||||
private boolean canBeExecuted = false;
|
||||
|
||||
private boolean executeUpdate(){
|
||||
return !UtilityDebug.isDebugExecution() && settingsModel.isPrimaryInstance() && !UtilityDebug.isIntegryServer();
|
||||
}
|
||||
private final HashMap<String, Boolean> executionPermission = new HashMap<>();
|
||||
|
||||
@Scheduled(fixedDelay = 1, timeUnit = TimeUnit.HOURS, zone = "Europe/Rome")
|
||||
private void refreshCronPermission() throws Exception {
|
||||
canBeExecuted = !UtilityDebug.isDebugExecution() && settingsModel.isPrimaryInstance() && !UtilityDebug.isIntegryServer();
|
||||
if (!canBeExecuted) return;
|
||||
|
||||
public void updateProgContrattoV() {
|
||||
try {
|
||||
String sql =
|
||||
"SELECT CAST(COUNT(*) AS BIT)\n" +
|
||||
"FROM stb_abil\n" +
|
||||
"WHERE cod_opz = 'WG097'\n" +
|
||||
" AND flag_abil <> 'N'";
|
||||
|
||||
String historyProfileDb = settingsController.getHistoryProfileDb();
|
||||
final List<AvailableConnectionsModel> availableConnections = settingsModel.getAvailableConnectionsWithoutDuplicatedProfiles(true, historyProfileDb);
|
||||
|
||||
Map<String, List<AvailableConnectionsModel>> databases = settingsModel.getAvailableConnections(true)
|
||||
.stream()
|
||||
.filter(x -> !historyProfileDb.equalsIgnoreCase(x.getProfileName()))
|
||||
.collect(Collectors.groupingBy(AvailableConnectionsModel::getDbName));
|
||||
for (AvailableConnectionsModel connectionsModel : availableConnections) {
|
||||
try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(connectionsModel, false)) {
|
||||
|
||||
boolean isEnabled = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
executionPermission.remove(connectionsModel.getDbName());
|
||||
executionPermission.put(connectionsModel.getDbName(), isEnabled);
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
logger.error(ContrattiDiAcquistoHandlerService.class.getSimpleName(), ex);
|
||||
throw ex;
|
||||
}
|
||||
|
||||
}
|
||||
@Scheduled(fixedDelay = 10, timeUnit = TimeUnit.SECONDS, initialDelay = 60, zone = "Europe/Rome")
|
||||
private void updateProgContrattoV() throws Exception {
|
||||
if (!canBeExecuted) return;
|
||||
|
||||
String historyProfileDb = settingsController.getHistoryProfileDb();
|
||||
final List<AvailableConnectionsModel> availableConnections = settingsModel.getAvailableConnectionsWithoutDuplicatedProfiles(true, historyProfileDb);
|
||||
|
||||
|
||||
for (String dbName : databases.keySet()) {
|
||||
String profileName = databases.get(dbName).get(0).getProfileName();
|
||||
|
||||
MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(profileName, false);
|
||||
|
||||
//Verifichiamo se la gestione dei contratti di acquisto è abilitata
|
||||
String sql =
|
||||
"SELECT CAST(COUNT(*) AS BIT)\n" +
|
||||
"FROM stb_abil\n" +
|
||||
"WHERE cod_opz = 'WG097'\n" +
|
||||
" AND flag_abil <> 'N'";
|
||||
boolean gestioneAbilitata = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
multiDBTransactionManager.closeAll();
|
||||
for (AvailableConnectionsModel connectionModel : availableConnections) {
|
||||
try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(connectionModel, false)) {
|
||||
|
||||
boolean isEnabled = executionPermission.getOrDefault(connectionModel.getDbName(), false);
|
||||
Date startDate = new Date();
|
||||
|
||||
if (gestioneAbilitata) {
|
||||
HashMap<String, String> param = new HashMap<>();
|
||||
param.put("profileDb", profileName);
|
||||
StringBuilder jsonResponse = new StringBuilder();
|
||||
|
||||
final String servicename = "contratti-vendita/updateProgressivi";
|
||||
String url = String.format(
|
||||
"http://%s:%s/ems-api/%s",
|
||||
InetAddress.getLocalHost().getHostAddress(),
|
||||
UtilityServer.getLocalServerPort(),
|
||||
servicename
|
||||
);
|
||||
int requestStatusCode = HttpRestWrapper.callGeneric(url, "", "", "", ContentType.TEXT_PLAIN, jsonResponse, param);
|
||||
|
||||
if (requestStatusCode != 200) {
|
||||
throw new Exception(String.format("Non è stato possibile chiamare il servizio di %s (Status: %s)", servicename, requestStatusCode));
|
||||
} else {
|
||||
ServiceRestResponse responseObject = jsonObjectMapper.readValue(jsonResponse.toString(), ServiceRestResponse.class);
|
||||
if (responseObject.getEsito() == EsitoType.KO) {
|
||||
throw new Exception(responseObject.getErrorMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
logger.trace(ContrattiDiVenditaHandlerService.class.getSimpleName() + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
if (isEnabled)
|
||||
updateProgressivi(multiDBTransactionManager);
|
||||
|
||||
logger.trace(ContrattiDiAcquistoHandlerService.class.getSimpleName() + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
|
||||
} catch (Exception ex) {
|
||||
logger.error(ex.getMessage(), ex);
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
logger.error(ex.getMessage(), ex);
|
||||
}
|
||||
}
|
||||
|
||||
public List<EntityBase> updateProgressivi(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
String sql =
|
||||
"WITH ord AS\n" +
|
||||
" (SELECT dtb_ordr.id_contratto,\n" +
|
||||
" dtb_ordr.cod_mart,\n" +
|
||||
" SUM((dtb_ordr.qta_ord - dtb_ordr.qta_evasa) * dtb_ordr.rap_conv) AS qta_ord\n" +
|
||||
" FROM dtb_ordt\n" +
|
||||
" INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione AND\n" +
|
||||
" dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||
" WHERE dtb_ordt.gestione = 'V'\n" +
|
||||
" AND dtb_ordt.flag_annulla = 'N'\n" +
|
||||
" AND dtb_ordt.flag_sospeso = 'N'\n" +
|
||||
" AND dtb_ordr.flag_evaso = 'I'\n" +
|
||||
" AND dtb_ordr.id_contratto IS NOT NULL\n" +
|
||||
" GROUP BY dtb_ordr.id_contratto,\n" +
|
||||
" dtb_ordr.cod_mart)\n" +
|
||||
" , doc AS (SELECT dtb_docr.id_contratto,\n" +
|
||||
" dtb_docr.cod_mart,\n" +
|
||||
" SUM(dtb_tipi.segno_qta_scar * dtb_docr.qta_doc * dtb_docr.rap_conv) AS qta_doc,\n" +
|
||||
" SUM(IIF(dtb_doct.num_cmov is not null,1, 0) * dtb_docr.qta_doc * dtb_docr.rap_conv) AS qta_fatt\n" +
|
||||
" FROM dtb_doct\n" +
|
||||
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\n" +
|
||||
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
||||
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
|
||||
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
|
||||
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
||||
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||
" WHERE dtb_doct.gestione = 'V'\n" +
|
||||
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||
" AND dtb_docr.id_contratto IS NOT NULL\n" +
|
||||
" GROUP BY dtb_docr.id_contratto,\n" +
|
||||
" dtb_docr.cod_mart)\n" +
|
||||
"SELECT vtb_offr.id_offerta,\n" +
|
||||
" vtb_offr.cod_mart,\n" +
|
||||
" ISNULL(ord.qta_ord / vtb_offr.rap_conv_vend, 0) AS qta_ord,\n" +
|
||||
" ISNULL(doc.qta_doc / vtb_offr.rap_conv_vend, 0) AS qta_doc,\n" +
|
||||
" ISNULL(doc.qta_fatt / vtb_offr.rap_conv_vend, 0) AS qta_fatt\n" +
|
||||
"FROM vtb_offr\n" +
|
||||
" INNER JOIN vtb_offt ON vtb_offr.id_offerta = vtb_offt.id_offerta\n"+
|
||||
" LEFT OUTER JOIN ord ON vtb_offr.id_offerta = ord.id_contratto AND vtb_offr.cod_mart = ord.cod_mart\n" +
|
||||
" LEFT OUTER JOIN doc ON vtb_offr.id_offerta = doc.id_contratto AND vtb_offr.cod_mart = doc.cod_mart\n" +
|
||||
"WHERE (vtb_offr.qta_ord <> ISNULL(ord.qta_ord / vtb_offr.rap_conv_vend, 0) OR\n" +
|
||||
" vtb_offr.qta_doc <> ISNULL(doc.qta_doc / vtb_offr.rap_conv_vend, 0) OR\n" +
|
||||
" vtb_offr.qta_fatt <> ISNULL(doc.qta_fatt / vtb_offr.rap_conv_vend, 0)) AND\n" +
|
||||
" vtb_offt.stato_offerta = 3";
|
||||
List<VtbOffr> vtbOffrs = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, VtbOffr.class, OperationType.UPDATE);
|
||||
|
||||
List<VtbOfft> vtbOfftsToSave = new ArrayList<>();
|
||||
|
||||
vtbOffrs.stream()
|
||||
.collect(Collectors.groupingBy(VtbOffr::getIdOfferta))
|
||||
.forEach((key, value) -> {
|
||||
vtbOfftsToSave.add(new VtbOfft()
|
||||
.setIdOfferta(key)
|
||||
.setVtbOffr(value));
|
||||
});
|
||||
|
||||
List<EntityBase> ret = entityProcessor.processEntityList(vtbOfftsToSave, multiDBTransactionManager, false);
|
||||
UtilityEntity.throwEntitiesException(ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package it.integry.ems.product.service;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import it.integry.ems.product.dto.FatturaContoDepositoDTO;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.service.MailService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.entity.DtbDocr;
|
||||
import it.integry.ems_model.entity.DtbDoct;
|
||||
import it.integry.ems_model.entity.MtbAart;
|
||||
import it.integry.ems_model.entity.VtbOfft;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityBigDecimal;
|
||||
@@ -17,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@@ -33,7 +32,8 @@ public class ContrattiDiVenditaService {
|
||||
MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
@Autowired
|
||||
private MailService mailService;
|
||||
private ContrattiDiVenditaHandlerService contrattiDiVenditaHandlerService;
|
||||
|
||||
@Autowired
|
||||
private SetupGest setupGest;
|
||||
|
||||
@@ -47,68 +47,7 @@ public class ContrattiDiVenditaService {
|
||||
}
|
||||
|
||||
public List<EntityBase> updateProgressivi() throws Exception {
|
||||
String sql =
|
||||
"WITH ord AS\n" +
|
||||
" (SELECT dtb_ordr.id_contratto,\n" +
|
||||
" dtb_ordr.cod_mart,\n" +
|
||||
" SUM((dtb_ordr.qta_ord - dtb_ordr.qta_evasa) * dtb_ordr.rap_conv) AS qta_ord\n" +
|
||||
" FROM dtb_ordt\n" +
|
||||
" INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione AND\n" +
|
||||
" dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||
" WHERE dtb_ordt.gestione = 'V'\n" +
|
||||
" AND dtb_ordt.flag_annulla = 'N'\n" +
|
||||
" AND dtb_ordt.flag_sospeso = 'N'\n" +
|
||||
" AND dtb_ordr.flag_evaso = 'I'\n" +
|
||||
" AND dtb_ordr.id_contratto IS NOT NULL\n" +
|
||||
" GROUP BY dtb_ordr.id_contratto,\n" +
|
||||
" dtb_ordr.cod_mart)\n" +
|
||||
" , doc AS (SELECT dtb_docr.id_contratto,\n" +
|
||||
" dtb_docr.cod_mart,\n" +
|
||||
" SUM(dtb_tipi.segno_qta_scar * dtb_docr.qta_doc * dtb_docr.rap_conv) AS qta_doc,\n" +
|
||||
" SUM(IIF(dtb_doct.num_cmov is not null,1, 0) * dtb_docr.qta_doc * dtb_docr.rap_conv) AS qta_fatt\n" +
|
||||
" FROM dtb_doct\n" +
|
||||
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\n" +
|
||||
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
||||
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
|
||||
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
|
||||
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
||||
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||
" WHERE dtb_doct.gestione = 'V'\n" +
|
||||
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||
" AND dtb_docr.id_contratto IS NOT NULL\n" +
|
||||
" GROUP BY dtb_docr.id_contratto,\n" +
|
||||
" dtb_docr.cod_mart)\n" +
|
||||
"SELECT vtb_offr.id_offerta,\n" +
|
||||
" vtb_offr.cod_mart,\n" +
|
||||
" ISNULL(ord.qta_ord / vtb_offr.rap_conv_vend, 0) AS qta_ord,\n" +
|
||||
" ISNULL(doc.qta_doc / vtb_offr.rap_conv_vend, 0) AS qta_doc,\n" +
|
||||
" ISNULL(doc.qta_fatt / vtb_offr.rap_conv_vend, 0) AS qta_fatt\n" +
|
||||
"FROM vtb_offr\n" +
|
||||
" INNER JOIN vtb_offt ON vtb_offr.id_offerta = vtb_offt.id_offerta\n"+
|
||||
" LEFT OUTER JOIN ord ON vtb_offr.id_offerta = ord.id_contratto AND vtb_offr.cod_mart = ord.cod_mart\n" +
|
||||
" LEFT OUTER JOIN doc ON vtb_offr.id_offerta = doc.id_contratto AND vtb_offr.cod_mart = doc.cod_mart\n" +
|
||||
"WHERE (vtb_offr.qta_ord <> ISNULL(ord.qta_ord / vtb_offr.rap_conv_vend, 0) OR\n" +
|
||||
" vtb_offr.qta_doc <> ISNULL(doc.qta_doc / vtb_offr.rap_conv_vend, 0) OR\n" +
|
||||
" vtb_offr.qta_fatt <> ISNULL(doc.qta_fatt / vtb_offr.rap_conv_vend, 0)) AND\n" +
|
||||
" vtb_offt.stato_offerta = 3";
|
||||
List<VtbOffr> vtbOffrs = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, VtbOffr.class, OperationType.UPDATE);
|
||||
|
||||
List<VtbOfft> vtbOfftsToSave = new ArrayList<>();
|
||||
|
||||
Stream.of(vtbOffrs)
|
||||
.groupBy(VtbOffr::getIdOfferta)
|
||||
.forEach(x -> {
|
||||
vtbOfftsToSave.add(new VtbOfft()
|
||||
.setIdOfferta(x.getKey())
|
||||
.setVtbOffr(x.getValue()));
|
||||
});
|
||||
|
||||
List<EntityBase> ret = entityProcessor.processEntityList(vtbOfftsToSave, multiDBTransactionManager, false);
|
||||
|
||||
UtilityEntity.throwEntitiesException(ret);
|
||||
|
||||
return ret;
|
||||
return contrattiDiVenditaHandlerService.updateProgressivi(multiDBTransactionManager);
|
||||
}
|
||||
|
||||
public DtbDoct fatturaContoDeposito(FatturaContoDepositoDTO dto) throws Exception {
|
||||
|
||||
@@ -151,7 +151,7 @@ public class GiacenzaService {
|
||||
List<CarelliGiacenzaProg> carelliGiacenzaProgs = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, CarelliGiacenzaProg.class, OperationType.INSERT);
|
||||
|
||||
List<EntityBase> entityRet = entityProcessor.processEntityList(carelliGiacenzaProgs, null, false, true, false, multiDBTransactionManager, false, false,
|
||||
new RequestDataDTO());
|
||||
RequestDataDTO.systemMockupData());
|
||||
UtilityEntity.throwEntitiesException(entityRet);
|
||||
}
|
||||
|
||||
@@ -166,7 +166,7 @@ public class GiacenzaService {
|
||||
List<CarelliGiacenzaProg> carelliGiacenzaProgs = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, CarelliGiacenzaProg.class, OperationType.DELETE);
|
||||
|
||||
List<EntityBase> entityRet = entityProcessor.processEntityList(carelliGiacenzaProgs, null, false, true, false, multiDBTransactionManager, false, false,
|
||||
new RequestDataDTO());
|
||||
RequestDataDTO.systemMockupData());
|
||||
|
||||
UtilityEntity.throwEntitiesException(entityRet);
|
||||
}
|
||||
@@ -429,7 +429,7 @@ public class GiacenzaService {
|
||||
.setDataDoc(UtilityLocalDate.localDateToDate(collo.getDataCollo()))
|
||||
.setDataDistribuzione(new Date());
|
||||
collo.setOperation(OperationType.UPDATE);
|
||||
entityProcessor.processEntity(collo, false, false, "", multiDBTransactionManager, new RequestDataDTO(),false, false);
|
||||
entityProcessor.processEntity(collo, false, false, "", multiDBTransactionManager, RequestDataDTO.systemMockupData(),false, false);
|
||||
UtilityEntity.throwEntityException(collo);
|
||||
}
|
||||
}
|
||||
@@ -448,7 +448,7 @@ public class GiacenzaService {
|
||||
calls.add(() -> {
|
||||
try {
|
||||
for (EntityBase entityBase : entityList) {
|
||||
entityProcessor.processEntity(entityBase, false, true, "", multiDBTransactionManager, new RequestDataDTO(), false, false);
|
||||
entityProcessor.processEntity(entityBase, false, true, "", multiDBTransactionManager, RequestDataDTO.systemMockupData(), false, false);
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
|
||||
@@ -309,7 +309,7 @@ public class ExchangeOrdiniImportService {
|
||||
.setDataInizProd(field.getDataInizProd())
|
||||
.setCodVzon(field.getCodVzon())
|
||||
.setDataOrd(field.getDataInizProd());
|
||||
agribookFieldService.createField(multiDb, dto, EXCHANGE_USER, new RequestDataDTO());
|
||||
agribookFieldService.createField(multiDb, dto, EXCHANGE_USER, RequestDataDTO.systemMockupData());
|
||||
|
||||
break;
|
||||
case UPDATE:
|
||||
|
||||
Reference in New Issue
Block a user