- Creata classe Wrapper per la connessione al DB,

- Gestita la possibilità di far partire funzioni al postCommit
- corretta gestione delle rollBack nelle sincronizzazioni offline
This commit is contained in:
2024-11-07 16:11:07 +01:00
parent f428d46ed4
commit 26bfc1a099
268 changed files with 3110 additions and 2483 deletions

View File

@@ -28,7 +28,9 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

View File

@@ -8,6 +8,7 @@ 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.AdvancedDataSource;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.service.UserCacheService;
import it.integry.ems_model.entity.Azienda;
@@ -19,7 +20,6 @@ import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.sql.Connection;
import java.util.HashMap;
@Component
@@ -27,7 +27,7 @@ public class EmsCoreDBLoader {
private final Logger logger = LogManager.getLogger();
private MultiDBTransactionManager multiDBTransactionManager;
@Autowired
private SetupGest setupGest;
@@ -90,7 +90,7 @@ public class EmsCoreDBLoader {
private void discoverAllConnections() {
for (AvailableConnectionsModel model : settingsModel.getAvailableConnections()) {
if ( !model.getInternalDb() )
if (!model.getInternalDb())
continue;
try {
DataSource ds = new DataSource();
@@ -114,36 +114,36 @@ public class EmsCoreDBLoader {
private void setupAzienda() throws Exception {
for (final AdvancedDataSource advancedDataSource : multiDBTransactionManager.getActiveConnections()) {
try {
Connection conn = advancedDataSource.getConnection();
if (advancedDataSource.isInternalDb()) {
Azienda azienda = Azienda.getDefaultAzienda(conn);
try {
Connection conn = advancedDataSource.getConnection();
if (advancedDataSource.isInternalDb()) {
Azienda azienda = Azienda.getDefaultAzienda(conn);
if (azienda != null) {
String applicationDbName = azienda.getApplicationName();
String nomeAzienda = azienda.getNomeDitta();
if (azienda != null) {
String applicationDbName = azienda.getApplicationName();
String nomeAzienda = azienda.getNomeDitta();
if(UtilityString.isNullOrEmpty(applicationDbName)) {
throw new Exception("Impostare il campo \"Application Name\"");
}
HashMap<String, String> gestSetupValues =
setupGest.getSetupSection(conn, "DATI_AZIENDA", "FATTURAZIONE_ELETTRONICA");
emsDBConst.getConsts(advancedDataSource.getDataSource().getProfile())
.setApplicationDbName(applicationDbName)
.setNomeAzienda(nomeAzienda)
.setAzienda(azienda)
.setGestSetupDatiAzienda(gestSetupValues);
} else {
throw new Exception("Non è stato possibile leggere i dati dalla tabella azienda");
if (UtilityString.isNullOrEmpty(applicationDbName)) {
throw new Exception("Impostare il campo \"Application Name\"");
}
HashMap<String, String> gestSetupValues =
setupGest.getSetupSection(conn, "DATI_AZIENDA", "FATTURAZIONE_ELETTRONICA");
emsDBConst.getConsts(advancedDataSource.getDataSource().getProfile())
.setApplicationDbName(applicationDbName)
.setNomeAzienda(nomeAzienda)
.setAzienda(azienda)
.setGestSetupDatiAzienda(gestSetupValues);
} else {
throw new Exception("Non è stato possibile leggere i dati dalla tabella azienda");
}
} catch (Exception ex) {
ex.printStackTrace();
logger.error(String.format("Impossibile caricare alcune informazioni dal DB \"%s\". %s", advancedDataSource.getProfileName(), ex.getMessage()));
}
} catch (Exception ex) {
ex.printStackTrace();
logger.error(String.format("Impossibile caricare alcune informazioni dal DB \"%s\". %s", advancedDataSource.getProfileName(), ex.getMessage()));
}
}
}

View File

@@ -2,6 +2,7 @@ package it.integry.ems.datasource;
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_model.config.EmsRestConstants;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityHashMap;
@@ -11,7 +12,6 @@ import org.springframework.stereotype.Service;
import javax.annotation.PreDestroy;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@@ -57,7 +57,9 @@ public class DataSource {
private void init() throws SQLException, IOException {
connection = DriverManager.getConnection(connectionModel.getDbConnectionString(), connectionModel.getUsername(), connectionModel.getPasswordDecrypted());
connection = Connection.fromConnection(
DriverManager.getConnection(connectionModel.getDbConnectionString(), connectionModel.getUsername(), connectionModel.getPasswordDecrypted())
);
connection.setTransactionIsolation(java.sql.Connection.TRANSACTION_READ_UNCOMMITTED);
connection.setAutoCommit(false);

View File

@@ -2,6 +2,7 @@ package it.integry.ems.devices;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.UserSession;
import it.integry.ems_model.entity.StbDevices;
@@ -15,7 +16,6 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import org.springframework.web.context.ContextLoader;
import java.sql.Connection;
import java.util.Date;
@Service
@@ -30,7 +30,7 @@ public class DevicesService {
private final Logger logger = LogManager.getLogger();
public void register(App application, String deviceId) throws Exception{
public void register(App application, String deviceId) throws Exception {
MultiDBTransactionManager multiDBTransactionManager = ContextLoader.getCurrentWebApplicationContext().getBean(MultiDBTransactionManager.class);
EntityProcessor entityProcessor = ContextLoader.getCurrentWebApplicationContext().getBean(EntityProcessor.class);
UserSession userSession = ContextLoader.getCurrentWebApplicationContext().getBean(UserSession.class);
@@ -47,7 +47,7 @@ public class DevicesService {
boolean exists =
UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), selectSql);
if(!exists) {
if (!exists) {
StbDevices stbDevices = new StbDevices()
.setName(appName)
.setIdentificationId(deviceId)

View File

@@ -5,6 +5,7 @@ import it.integry.ems.expansion.RunnableWithReturn;
import it.integry.ems.looper.service.LooperService;
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_model.base.EntityBase;
import it.integry.ems_model.utility.UtilityDB;
@@ -13,7 +14,6 @@ import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -46,7 +46,7 @@ public class DynamicCacheService {
}, invalidateTimeInMins * 60 * 1000, "dynamic-cache-" + key);
}
public <T>void addDbItem(Keys key, int invalidateTimeInMins, RunnableArgsWithReturn<Connection, T> refreshAction, List<String> dbNames) {
public <T> void addDbItem(Keys key, int invalidateTimeInMins, RunnableArgsWithReturn<Connection, T> refreshAction, List<String> dbNames) {
List<String> finalDbNames = dbNames.stream().map(String::toLowerCase).collect(Collectors.toList());
RunnableWithReturn<Object> internalRefreshAction = () -> {
@@ -183,7 +183,7 @@ public class DynamicCacheService {
return cachedEntityList;
}
public <T>T getDbItem(Keys key, String dbName) {
public <T> T getDbItem(Keys key, String dbName) {
dbName = dbName.toLowerCase();
final HashMap<String, T> cacheObjectByDB = (HashMap<String, T>) cacheData.getOrDefault(key, null);
if (cacheObjectByDB == null) return null;

View File

@@ -3,6 +3,7 @@ package it.integry.ems.entity_logger.db_schema_manager.component;
import com.annimon.stream.Stream;
import com.microsoft.sqlserver.jdbc.SQLServerException;
import it.integry.ems.entity_logger.db_schema_manager.dto.*;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityHashMap;
import it.integry.ems_model.utility.UtilityLocalDate;
@@ -10,7 +11,7 @@ import it.integry.ems_model.utility.UtilityString;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
@@ -38,7 +39,7 @@ public class SQLServerDBSchemaManager {
}
public void connect() throws SQLException {
mConnection = DriverManager.getConnection(getConnectionString(mHost), mUsername, mPassword);
mConnection = Connection.fromConnection(DriverManager.getConnection(getConnectionString(mHost), mUsername, mPassword));
mConnection.setTransactionIsolation(java.sql.Connection.TRANSACTION_READ_UNCOMMITTED);
mConnection.setAutoCommit(false);
}

View File

@@ -21,7 +21,8 @@ import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.util.HashMap;
import java.util.List;
@@ -89,8 +90,9 @@ public class LicenseComponent {
if (response.getEsito() == EsitoType.KO) {
throw new Exception(response.getErrorMessage());
} else {
List<LicenseStatusDTO> licenses = response.getDTO(new TypeReference<List<LicenseStatusDTO>>() {});
if(licenses == null) return;
List<LicenseStatusDTO> licenses = response.getDTO(new TypeReference<List<LicenseStatusDTO>>() {
});
if (licenses == null) return;
listAziende.forEach((key, value) -> {
cachedLicenseStatus.remove(key);

View File

@@ -15,7 +15,9 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.DriverManager;
import java.util.List;
import java.util.Map;
@@ -30,7 +32,7 @@ public class MenuStaticCreator {
String username = "sa";
String password = "sa";
Connection connection = DriverManager.getConnection(connectionString, username, password);
Connection connection = Connection.fromConnection(DriverManager.getConnection(connectionString, username, password));
connection.setTransactionIsolation(java.sql.Connection.TRANSACTION_READ_UNCOMMITTED);
connection.setAutoCommit(false);

View File

@@ -26,7 +26,9 @@ import org.springframework.stereotype.Service;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.util.List;
import static it.integry.ems_model.utility.UtilityDB.executeStatement;
@@ -155,17 +157,17 @@ public class MenuConfigurationService {
insertBulkPs.setString(2, stbMenuDto.getDescrizione());
insertBulkPs.setString(3, stbMenuDto.getCodParent());
if(stbMenuDto.getPos() != null) insertBulkPs.setInt(4, stbMenuDto.getPos());
if (stbMenuDto.getPos() != null) insertBulkPs.setInt(4, stbMenuDto.getPos());
else insertBulkPs.setObject(4, null);
insertBulkPs.setString(5, stbMenuDto.getTipoAzienda());
insertBulkPs.setString(6, stbMenuDto.getFlagAttivo());
insertBulkPs.setString(7, stbMenuDto.getUrlDescrizione());
if(stbMenuDto.getPosTipoAzienda() != null) insertBulkPs.setInt(8, stbMenuDto.getPosTipoAzienda());
if (stbMenuDto.getPosTipoAzienda() != null) insertBulkPs.setInt(8, stbMenuDto.getPosTipoAzienda());
else insertBulkPs.setObject(8, null);
if(stbMenuDto.getPosCliente() != null) insertBulkPs.setInt(9, stbMenuDto.getPosCliente());
if (stbMenuDto.getPosCliente() != null) insertBulkPs.setInt(9, stbMenuDto.getPosCliente());
else insertBulkPs.setObject(9, null);
insertBulkPs.setString(10, stbMenuDto.getDescrizioneEstesa());

View File

@@ -7,6 +7,7 @@ import it.integry.ems.schedule.new_cron_job.service.AutomatedOperationHandlerCom
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.settings.SettingsController;
import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems_model.entity.Azienda;
import it.integry.ems_model.entity.StbGestSetup;
@@ -25,7 +26,10 @@ import org.apache.logging.log4j.Logger;
import org.springframework.web.context.ContextLoader;
import java.io.IOException;
import java.sql.*;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Arrays;
import java.util.List;
@@ -129,7 +133,7 @@ public abstract class BaseMigration implements MigrationModelInterface {
}
protected void createIndex(IndexTableDTO indexTableDTO) throws Exception {
UtilityDB.createIndex(advancedDataSource.getConnection(), indexTableDTO );
UtilityDB.createIndex(advancedDataSource.getConnection(), indexTableDTO);
}
@@ -459,7 +463,7 @@ public abstract class BaseMigration implements MigrationModelInterface {
protected void enableSaveToRest(String gestName) throws Exception {
boolean existRow =
UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(),
Query.format("SELECT cast(count(*) as bit) FROM stb_gest_sync WHERE gest_name = %s", gestName));
Query.format("SELECT cast(count(*) as bit) FROM stb_gest_sync WHERE gest_name = %s", gestName));
StbGestSync gestSync =
new StbGestSync()
@@ -467,7 +471,7 @@ public abstract class BaseMigration implements MigrationModelInterface {
.setSyncronize("R");
if (existRow) {
gestSync.setOperation(OperationType.UPDATE);
} else{
} else {
String entityName =
UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(),
Query.format("SELECT entity_name FROM stb_menu_opz WHERE gest_name = %s", gestName));

View File

@@ -5,7 +5,8 @@ import it.integry.ems.migration._base.MigrationModelInterface;
import it.integry.ems.settings.Model.AvailableConnectionsModel;
import it.integry.ems_model.utility.UtilityDB;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.List;
@@ -28,7 +29,7 @@ public class Migration_20210721093948 extends BaseMigration implements Migration
String connectionString = String.format("jdbc:sqlserver://%s;applicationName=%s", dbHost, "EMS Connection");
Connection connection = DriverManager.getConnection(connectionString, dbUsername, dbPassword);
Connection connection = Connection.fromConnection(DriverManager.getConnection(connectionString, dbUsername, dbPassword));
String sqlSessions = "SELECT conn.session_id " +
"FROM sys.dm_exec_sessions AS sess " +

View File

@@ -5,7 +5,8 @@ import it.integry.ems.migration._base.MigrationModelInterface;
import it.integry.ems.settings.Model.AvailableConnectionsModel;
import it.integry.ems_model.utility.UtilityDB;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.List;
@@ -29,7 +30,7 @@ public class Migration_20210924152555 extends BaseMigration implements Migration
String connectionString = String.format("jdbc:sqlserver://%s;applicationName=%s", dbHost, "EMS Connection");
Connection connection = DriverManager.getConnection(connectionString, dbUsername, dbPassword);
Connection connection = Connection.fromConnection(DriverManager.getConnection(connectionString, dbUsername, dbPassword));
String sqlSessions = "SELECT conn.session_id " +
"FROM sys.dm_exec_sessions AS sess " +

View File

@@ -13,7 +13,8 @@ import it.integry.ems_model.utility.UtilityString;
import org.json.JSONArray;
import org.json.JSONObject;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

View File

@@ -14,7 +14,8 @@ import it.integry.ems_model.utility.UtilityString;
import org.json.JSONArray;
import org.json.JSONObject;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

View File

@@ -8,7 +8,9 @@ import it.integry.ems_model.utility.UtilityHashMap;
import javax.validation.constraints.NotNull;
import java.io.IOException;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
@@ -50,8 +52,8 @@ public class Migration_20240212000000 extends BaseMigration implements Migration
Long newParentId = getNewGeneratedIdFromOldKey(oldId, oldStbPublications);
String insertSql = Query.format("INSERT INTO stb_publications_detail " +
"(stb_publication_id, entity_name, where_cond_sql, recalc_columns, active, where_cond, ready_to_transmit) " +
"VALUES (%s, %s, %s, %s, %s, %s, %s)",
"(stb_publication_id, entity_name, where_cond_sql, recalc_columns, active, where_cond, ready_to_transmit) " +
"VALUES (%s, %s, %s, %s, %s, %s, %s)",
newParentId,
entityName,
whereCondSql,

View File

@@ -3,7 +3,9 @@ package it.integry.ems.object_storage.interfaces;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import javax.annotation.Nonnull;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.util.List;
public interface IObjectStorageService {

View File

@@ -24,7 +24,9 @@ import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,9 +1,9 @@
package it.integry.ems.response;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

View File

@@ -4,6 +4,9 @@ import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.text.SimpleDateFormat;

View File

@@ -3,7 +3,8 @@ package it.integry.ems.response;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

View File

@@ -3,6 +3,9 @@ package it.integry.ems.response;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import org.json.JSONObject;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.util.Date;

View File

@@ -1,5 +1,6 @@
package it.integry.ems.response;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
@@ -8,8 +9,13 @@ import org.apache.logging.log4j.Logger;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import java.sql.*;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class WsPriceList {
@@ -78,12 +84,12 @@ public class WsPriceList {
JSONObject le_priceList = new JSONObject();
SetupGest setupGest = new SetupGest();
ls_codMdep = UtilityString.streNull(setupGest.getSetup("WS_PRICELIST","SETUP","COD_MDEP"));
if (ls_codMdep.length() == 0){
throw new Exception("Codice deposito non configurato in WS_PRICELIST");
ls_codMdep = UtilityString.streNull(setupGest.getSetup("WS_PRICELIST", "SETUP", "COD_MDEP"));
if (ls_codMdep.length() == 0) {
throw new Exception("Codice deposito non configurato in WS_PRICELIST");
}
ls_orderBy1 = UtilityString.streNull(setupGest.getSetup("WS_PRICELIST","SETUP","ORDE_BY"));
if (ls_orderBy1.length() == 0){
ls_orderBy1 = UtilityString.streNull(setupGest.getSetup("WS_PRICELIST", "SETUP", "ORDE_BY"));
if (ls_orderBy1.length() == 0) {
ls_orderBy1 = "mtb_grup.descrizione,mtb_sgrp.descrizione,";
}

View File

@@ -3,6 +3,7 @@ package it.integry.ems.rules.businessLogic;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.rules.businessLogic.enums.TipoPartita;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.coollection.Coollection;
import it.integry.ems_model.coollection.query.order.Order;
import it.integry.ems_model.db.ResultSetMapper;
@@ -10,50 +11,43 @@ import it.integry.ems_model.entity.*;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.*;
import org.joda.time.DateTime;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static java.time.temporal.ChronoUnit.DAYS;
public class AccountingBusinessLogic {
public static CtbPart completePartita(CtbMovt ctbMovt) {
Integer annoPart = Integer.parseInt(new SimpleDateFormat("yyyy").format(ctbMovt.getDataDoc()));
CtbPart ctbPart =
new CtbPart()
.setTipoAnag(ctbMovt.getTipoAnag())
.setCodAnag(ctbMovt.getCodAnag())
.setCodVage(ctbMovt.getCodVage())
.setAnnoPart(annoPart)
.setDataDoc(ctbMovt.getDataDoc())
.setSerDoc(ctbMovt.getSerDoc())
.setNumDoc(ctbMovt.getNumDoc())
.setCodDiviCont(ctbMovt.getCodDiviCont())
.setCambioDiviCont(ctbMovt.getCambioDiviCont())
.setTipoPartita(ctbMovt.getTipoPartita())
.setIban(ctbMovt.getIban());
.setTipoAnag(ctbMovt.getTipoAnag())
.setCodAnag(ctbMovt.getCodAnag())
.setCodVage(ctbMovt.getCodVage())
.setAnnoPart(annoPart)
.setDataDoc(ctbMovt.getDataDoc())
.setSerDoc(ctbMovt.getSerDoc())
.setNumDoc(ctbMovt.getNumDoc())
.setCodDiviCont(ctbMovt.getCodDiviCont())
.setCambioDiviCont(ctbMovt.getCambioDiviCont())
.setTipoPartita(ctbMovt.getTipoPartita())
.setIban(ctbMovt.getIban());
ctbPart.setOperation(OperationType.INSERT_OR_UPDATE);
if (ctbMovt.getCtbMovi() == null || ctbMovt.getCtbMovi().size() == 0) {
ctbPart.setTotImponib(ctbMovt.getImporto());
} else {
ctbPart
.setTotImponib(ctbMovt.getTotImponib())
.setTotIva(ctbMovt.getTotIva());
.setTotImponib(ctbMovt.getTotImponib())
.setTotIva(ctbMovt.getTotIva());
}
ctbPart
.setCodPaga(ctbMovt.getCodPaga())
.setNumDocForn(ctbMovt.getNumDocForn());
.setCodPaga(ctbMovt.getCodPaga())
.setNumDocForn(ctbMovt.getNumDocForn());
return ctbPart;
}
@@ -61,21 +55,22 @@ public class AccountingBusinessLogic {
List<CtbScad> elencoScad = generaScad(conn, testata);
testata.setCtbScad(elencoScad);
}
public static List<CtbScad> generaScad(Connection conn, CtbMovt testata) throws Exception {
if (testata.getDataDoc() == null)
throw new Exception("Data documento non presente");
Integer annoPart = Integer.parseInt(new SimpleDateFormat("yyyy").format(testata.getDataDoc()));
BigDecimal totImponib = testata.getTotImponib();
if ( UtilityString.isNullOrEmpty(testata.getCodPaga() ))
if (UtilityString.isNullOrEmpty(testata.getCodPaga()))
throw new Exception(
String.format(
"Attezione, codice pagamento non presente nel documento %s/%s del %s, %s %s",
testata.getSerDoc(),
testata.getNumDoc(),
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(testata.getDataDoc()),
(testata.getTipoAnag().equalsIgnoreCase("F")?"fornitore":"cliente"),
testata.getCodAnag()));
"Attezione, codice pagamento non presente nel documento %s/%s del %s, %s %s",
testata.getSerDoc(),
testata.getNumDoc(),
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(testata.getDataDoc()),
(testata.getTipoAnag().equalsIgnoreCase("F") ? "fornitore" : "cliente"),
testata.getCodAnag()));
if ("S".equals(testata.getGeneraScad()) &&
@@ -141,13 +136,13 @@ public class AccountingBusinessLogic {
ritenuta = ritenuta.divide(testata.getCambioDiviCont()).setScale(5, RoundingMode.HALF_UP);
CtbScad ctbScad =
new CtbScad()
.setCodPaga(setup.get("RITENUTA"))
.setTipoAnag(testata.getTipoAnag())
.setCodAnag(testata.getCodAnag())
.setAnnoPart(annoPart)
.setSerDoc(testata.getSerDoc())
.setNumDoc(testata.getNumDoc())
.setDataScad(testata.getDataDoc());
.setCodPaga(setup.get("RITENUTA"))
.setTipoAnag(testata.getTipoAnag())
.setCodAnag(testata.getCodAnag())
.setAnnoPart(annoPart)
.setSerDoc(testata.getSerDoc())
.setNumDoc(testata.getNumDoc())
.setDataScad(testata.getDataDoc());
if (testata.getTipoPartitaEnum() == TipoPartita.ATTIVA) {
ctbScad.setImpDare(ritenuta);
ctbScad.setImpAvere(BigDecimal.ZERO);
@@ -165,13 +160,13 @@ public class AccountingBusinessLogic {
enasarco = enasarco.divide(testata.getCambioDiviCont()).setScale(5, RoundingMode.HALF_UP);
CtbScad ctbScad =
new CtbScad()
.setCodPaga(setup.get("ENASARCO"))
.setTipoAnag(testata.getTipoAnag())
.setCodAnag(testata.getCodAnag())
.setAnnoPart(annoPart)
.setSerDoc(testata.getSerDoc())
.setNumDoc(testata.getNumDoc())
.setDataScad(testata.getDataDoc());
.setCodPaga(setup.get("ENASARCO"))
.setTipoAnag(testata.getTipoAnag())
.setCodAnag(testata.getCodAnag())
.setAnnoPart(annoPart)
.setSerDoc(testata.getSerDoc())
.setNumDoc(testata.getNumDoc())
.setDataScad(testata.getDataDoc());
if (testata.getTipoPartitaEnum() == TipoPartita.ATTIVA) {
ctbScad.setImpDare(enasarco);
ctbScad.setImpAvere(BigDecimal.ZERO);
@@ -220,16 +215,16 @@ public class AccountingBusinessLogic {
String sql =
Query.format(
"SELECT crl_movt_rif_cmov.num_cmov_rif, "
+ "ctb_movt.num_doc, "
+ "ctb_movt.num_prot, "
+ "ctb_movt.ser_doc, "
+ "ctb_movt.num_ireg "
+ "FROM crl_movt_rif_cmov INNER JOIN ctb_movt on crl_movt_rif_cmov.num_cmov_rif = ctb_movt.num_cmov "
+ "INNER JOIN (SELECT distinct cod_ccau_rc "
+ " FROM ctb_caus "
+ " WHERE cod_ccau IS NOT NULL) ctb_caus ON ctb_movt.cod_ccau = ctb_caus.cod_ccau_rc "
+ "WHERE crl_movt_rif_cmov.num_cmov = %s", UtilityDB.valueToString(numCmov));
"SELECT crl_movt_rif_cmov.num_cmov_rif, "
+ "ctb_movt.num_doc, "
+ "ctb_movt.num_prot, "
+ "ctb_movt.ser_doc, "
+ "ctb_movt.num_ireg "
+ "FROM crl_movt_rif_cmov INNER JOIN ctb_movt on crl_movt_rif_cmov.num_cmov_rif = ctb_movt.num_cmov "
+ "INNER JOIN (SELECT distinct cod_ccau_rc "
+ " FROM ctb_caus "
+ " WHERE cod_ccau IS NOT NULL) ctb_caus ON ctb_movt.cod_ccau = ctb_caus.cod_ccau_rc "
+ "WHERE crl_movt_rif_cmov.num_cmov = %s", UtilityDB.valueToString(numCmov));
HashMap<String, Object> datiMovRc = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
@@ -304,29 +299,29 @@ public class AccountingBusinessLogic {
if (!isReverseCharge && numCmovRC != null) {
ctbMovtRC = new CtbMovt()
.setNumCmov(numCmovRC)
.setNumCmovRif(numCmov);
.setNumCmov(numCmovRC)
.setNumCmovRif(numCmov);
ctbMovtRC.setOperation(OperationType.DELETE);
} else if (isReverseCharge) {
totDoc = totImponib.add(totIva);
ctbMovtRC =
new CtbMovt()
.setNumCmov(numCmovRC)
.setDataCmov(dataCmov)
.setCodCcau(testata.getCodCcauRc())
.setImporto(totDoc)
.setDataDoc(dataCmov)
.setNumIreg(numIregRc)
.setSerDoc(serDocRc)
.setNumDoc(numDocRC)
.setNumProt(numProtRC)
.setTipoAnag(testata.getTipoAnag())
.setCodAnag(testata.getCodAnag())
.setCodJcom(testata.getCodJcom())
.setGeneraScad("N")
.setCtbMovi(ctbMoviRC)
.setNumCmovRif(numCmov)
.setDataCompIva(testata.getDataCompIva());
.setNumCmov(numCmovRC)
.setDataCmov(dataCmov)
.setCodCcau(testata.getCodCcauRc())
.setImporto(totDoc)
.setDataDoc(dataCmov)
.setNumIreg(numIregRc)
.setSerDoc(serDocRc)
.setNumDoc(numDocRC)
.setNumProt(numProtRC)
.setTipoAnag(testata.getTipoAnag())
.setCodAnag(testata.getCodAnag())
.setCodJcom(testata.getCodJcom())
.setGeneraScad("N")
.setCtbMovi(ctbMoviRC)
.setNumCmovRif(numCmov)
.setDataCompIva(testata.getDataCompIva());
OperationType op;
if (numCmovRC != null) {
@@ -420,6 +415,7 @@ public class AccountingBusinessLogic {
public static BigDecimal pagaScadenze(Date dataCmov, BigDecimal residuo, List<CtbScad> elencoScadenze) {
return pagaScadenze(dataCmov, residuo, elencoScadenze, null);
}
public static BigDecimal pagaScadenze(Date dataCmov, BigDecimal residuo, List<CtbScad> elencoScadenze, Integer idRigaMov) {
long countScad =
Stream.of(elencoScadenze)
@@ -443,7 +439,7 @@ public class AccountingBusinessLogic {
BigDecimal impScad = ctbScadOrig.getImpDare().subtract(ctbScadOrig.getImpAvere());
impScad = impScad.abs();
if (!UtilityBigDecimal.isNullOrZero(residuo) && ctbScadOrig.getDataPag() == null ) {
if (!UtilityBigDecimal.isNullOrZero(residuo) && ctbScadOrig.getDataPag() == null) {
residuo = residuo.abs();
if (UtilityBigDecimal.equalsOrGreaterThan(residuo, impScad)) {
if (UtilityBigDecimal.equalsTo(residuo, impScad)) {
@@ -534,7 +530,7 @@ public class AccountingBusinessLogic {
long giorniTot = UtilityLocalDate.daysAfterDate(dataInizComp, dataFineCompMov);
long giorniAnno = UtilityLocalDate.daysAfterDate(dataInizComp, UtilityLocalDate.localDateFromDate(dataFineComp));
importoCompetenza = impRisconto.divide(new BigDecimal(giorniTot ), 10, RoundingMode.HALF_UP).multiply(new BigDecimal(giorniAnno)).setScale(2, RoundingMode.HALF_UP);
importoCompetenza = impRisconto.divide(new BigDecimal(giorniTot), 10, RoundingMode.HALF_UP).multiply(new BigDecimal(giorniAnno)).setScale(2, RoundingMode.HALF_UP);
}
return importoCompetenza;

View File

@@ -1,12 +1,11 @@
package it.integry.ems.rules.businessLogic;
import com.annimon.stream.Optional;
import com.annimon.stream.OptionalInt;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.rules.businessLogic.dto.DocCompDTO;
import it.integry.ems.rules.completing.CommonRules;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.coollection.Coollection;
import it.integry.ems_model.db.ResultSetMapper;
@@ -19,10 +18,11 @@ import org.apache.logging.log4j.Logger;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.*;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;
public class DocumentBusinessLogic {
protected final static Logger logger = LogManager.getLogger();
@@ -215,12 +215,12 @@ public class DocumentBusinessLogic {
if (dtbDoct.getCtbScad() != null && dtbDoct.getCtbScad().size() > 0) {
query =
"SELECT * " +
" FROM ctb_part " +
"WHERE cod_anag = " + UtilityDB.valueToString(dtbDoct.getCodAnag()) + " AND " +
" data_doc = " + UtilityDB.valueDateToString(dtbDoct.getDataDoc(), CommonConstants.DATE_FORMAT_YMD) + " AND " +
" ser_doc = " + UtilityDB.valueToString(dtbDoct.getSerDoc()) + " AND " +
" num_doc = " + UtilityDB.valueToString(dtbDoct.getNumDoc()) + " AND " +
" tipo_partita = " + UtilityDB.valueToString(tipoPartita);
" FROM ctb_part " +
"WHERE cod_anag = " + UtilityDB.valueToString(dtbDoct.getCodAnag()) + " AND " +
" data_doc = " + UtilityDB.valueDateToString(dtbDoct.getDataDoc(), CommonConstants.DATE_FORMAT_YMD) + " AND " +
" ser_doc = " + UtilityDB.valueToString(dtbDoct.getSerDoc()) + " AND " +
" num_doc = " + UtilityDB.valueToString(dtbDoct.getNumDoc()) + " AND " +
" tipo_partita = " + UtilityDB.valueToString(tipoPartita);
ctbPart = new ResultSetMapper()
.mapQueryToObject(conn, query, CtbPart.class, OperationType.UPDATE);
@@ -257,9 +257,9 @@ public class DocumentBusinessLogic {
if (!UtilityString.isNullOrEmpty(codPaga)) {
query =
Query.format(
"SELECT Cast(case WHEN (CASE WHEN %s = 'V' THEN flag_banca_ven ELSE flag_banca_acq END) = 'A' THEN 1 ELSE 0 END as bit) " +
" FROM gtb_paga INNER JOIN gtb_tipi_paga on gtb_paga.tipo_paga = gtb_tipi_paga.tipo_paga " +
" WHERE gtb_paga.cod_paga = %s",
"SELECT Cast(case WHEN (CASE WHEN %s = 'V' THEN flag_banca_ven ELSE flag_banca_acq END) = 'A' THEN 1 ELSE 0 END as bit) " +
" FROM gtb_paga INNER JOIN gtb_tipi_paga on gtb_paga.tipo_paga = gtb_tipi_paga.tipo_paga " +
" WHERE gtb_paga.cod_paga = %s",
dtbDoct.getGestione(), codPaga);
Boolean setBancaAziendale = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, query);
@@ -441,7 +441,7 @@ public class DocumentBusinessLogic {
if ("S".equalsIgnoreCase(generaScad)) {
AccountingBusinessLogic.pagaScadenze(dataCmov, totDoc, elencoScad, riga);
Integer finalRiga = riga;
ctbMovr.setCtbScad(Stream.of(elencoScad).filter(x->x.getIdRigaMov().equals(finalRiga)).toList());
ctbMovr.setCtbScad(Stream.of(elencoScad).filter(x -> x.getIdRigaMov().equals(finalRiga)).toList());
}
}
righeMov.add(ctbMovr);
@@ -648,7 +648,7 @@ public class DocumentBusinessLogic {
//RIGHE COSTI
if (!isAutofattura) {
if (dtbDoct.getGestione().equalsIgnoreCase("A") &&
!UtilityString.isNullOrEmpty(codCconDocAp) && dtbDoct.getGestione().equalsIgnoreCase("A")) {
!UtilityString.isNullOrEmpty(codCconDocAp) && dtbDoct.getGestione().equalsIgnoreCase("A")) {
listaCosti = Stream.of(listaCosti)
.filter(value -> !value.getCostoAP()).toList();
}
@@ -844,10 +844,10 @@ public class DocumentBusinessLogic {
BigDecimal totCostiRicavi = BigDecimal.ZERO;
String sql =
Query.format(
"SELECT DateAdd(day, -1, data_iniz) as data_cmov, anno - 1 as anno \n" +
" FROM gtb_periodo_fisc\n "+
" WHERE %s BETWEEN data_iniz AND data_fine", dataCmov );
Query.format(
"SELECT DateAdd(day, -1, data_iniz) as data_cmov, anno - 1 as anno \n" +
" FROM gtb_periodo_fisc\n " +
" WHERE %s BETWEEN data_iniz AND data_fine", dataCmov);
HashMap<String, Object> datiMov = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
@@ -872,16 +872,16 @@ public class DocumentBusinessLogic {
if (codCconCosto.compareTo(codCconCostoOld) != 0) {
riga++;
ctbMovr =
new CtbMovr()
.setCodCcon(codCconCosto)
.setCodJcom(costo.getCodJcom())
.setCodJfas(costo.getCodJfas())
.setDataInizCompRisc(costo.getDataInizComp())
.setDataFineCompRisc(costo.getDataFineComp())
.setImpAvere(BigDecimal.ZERO)
.setImpDare(BigDecimal.ZERO)
.setRiga(riga)
.setIdRiga(riga);
new CtbMovr()
.setCodCcon(codCconCosto)
.setCodJcom(costo.getCodJcom())
.setCodJfas(costo.getCodJfas())
.setDataInizCompRisc(costo.getDataInizComp())
.setDataFineCompRisc(costo.getDataFineComp())
.setImpAvere(BigDecimal.ZERO)
.setImpDare(BigDecimal.ZERO)
.setRiga(riga)
.setIdRiga(riga);
costiCoan = new ArrayList<>();
ctbMovr.setCtbMovrCoan(costiCoan);
righeMov.add(ctbMovr);

View File

@@ -7,6 +7,8 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.util.Date;
import java.util.HashMap;
@@ -38,12 +40,12 @@ public class StoredProcedure {
String codDtip = UtilityHashMap.getValueIfExists(inputData, "cod_dtip");
Date dataDoc = UtilityHashMap.getValueIfExists(inputData, "data_doc");
String serDoc = UtilityHashMap.getValueIfExists(inputData, "ser_doc");
Integer numDoc = UtilityHashMap.getValueIfExists(inputData, "num_doc");
Integer numDoc = UtilityHashMap.getValueIfExists(inputData, "num_doc");
String codAnagOld = UtilityHashMap.getValueIfExists(inputData, "cod_anag_old");
String codDtipOld = UtilityHashMap.getValueIfExists(inputData, "cod_dtip_old");
Date dataDocOld = UtilityHashMap.getValueIfExists(inputData, "data_doc_old");
String serDocOld = UtilityHashMap.getValueIfExists(inputData, "ser_doc_old");
Integer numDocOld = UtilityHashMap.getValueIfExists(inputData, "num_doc_old");
Integer numDocOld = UtilityHashMap.getValueIfExists(inputData, "num_doc_old");
int segno = UtilityHashMap.getValueIfExists(inputData, "segno");
String operation = UtilityHashMap.getValueIfExists(inputData, "operation");
@@ -70,7 +72,7 @@ public class StoredProcedure {
} catch (Exception e) {
try {
if (multiDBTransactionManager != null ) {
if (multiDBTransactionManager != null) {
multiDBTransactionManager.rollbackAll();
multiDBTransactionManager.closeAll();
}
@@ -108,7 +110,7 @@ public class StoredProcedure {
boolean mrpIsAbil = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
if (mrpIsAbil){
if (mrpIsAbil) {
String articoli = StringUtils.join(listaArticoli, '|');
CallableStatement StoredProcedure = multiDBTransactionManager.getPrimaryConnection().prepareCall("{call MRP_UpdateQtaImpProx(?)}");
@@ -132,7 +134,7 @@ public class StoredProcedure {
//DEADLOCK
// new Thread(new StoredProcedure.UpdImpProx(profileDB, listaArticoli)).start();
}
if (multiDBTransactionManager != null ) {
if (multiDBTransactionManager != null) {
multiDBTransactionManager.rollbackAll();
multiDBTransactionManager.closeAll();
}

View File

@@ -4,6 +4,7 @@ import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.exception.CheckConstraintException;
import it.integry.ems.rules.businessLogic.AccountingBusinessLogic;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.*;
@@ -41,7 +42,7 @@ public class AccountingRules extends QueryRules {
" ctb_parr.num_doc = cp.num_doc AND\n" +
" ctb_movt.num_cmov <> cp.num_cmov\n" +
"where ctb_movt.num_cmov = " + UtilityDB.valueToString(numCmov) + " AND\n" +
" ctb_caus.azione_su_partita = 0\n"+
" ctb_caus.azione_su_partita = 0\n" +
"and not exists (select * from crl_movt_rif_cmov where num_cmov = ctb_movt.num_cmov and cp.num_cmov = crl_movt_rif_cmov. num_cmov_rif )";
boolean existParr = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
return existParr;
@@ -99,10 +100,10 @@ public class AccountingRules extends QueryRules {
if (numProt == 0) numProt = 1;
CtbInum ctbInum =
new CtbInum()
.setAnno(annoComp)
.setCodIreg(codIreg)
.setNumIreg(numIreg)
.setNumProt(numProt);
.setAnno(annoComp)
.setCodIreg(codIreg)
.setNumIreg(numIreg)
.setNumProt(numProt);
entity.setCtbInum(ctbInum);
}
@@ -126,7 +127,7 @@ public class AccountingRules extends QueryRules {
String sql =
Query.format(
"SELECT dbo.f_getAnnoFisc(%s)",
dataCmov );
dataCmov);
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
}
@@ -432,32 +433,32 @@ public class AccountingRules extends QueryRules {
public static List<CrlScadParr> completeCrlParrScadScad(Connection conn, CtbScad ctbScad) throws Exception {
String sql =
Query.format(
"SELECT *\n" +
"FROM crl_scad_parr\n" +
"where tipo_anag = %s \n" +
" and cod_anag = %s\n" +
" and anno_part = %s\n" +
" and ser_doc = %s\n" +
" and num_doc = %s\n" +
" and id_riga_scad = %s\n" +
" and num_cmov = %s\n" +
" and id_riga_mov = %s ",
ctbScad.getTipoAnag(),
ctbScad.getCodAnag(),
ctbScad.getAnnoPart(),
ctbScad.getSerDoc(),
ctbScad.getNumDoc(),
ctbScad.getIdRiga(),
ctbScad.getNumCmov(),
ctbScad.getIdRigaMov());
Query.format(
"SELECT *\n" +
"FROM crl_scad_parr\n" +
"where tipo_anag = %s \n" +
" and cod_anag = %s\n" +
" and anno_part = %s\n" +
" and ser_doc = %s\n" +
" and num_doc = %s\n" +
" and id_riga_scad = %s\n" +
" and num_cmov = %s\n" +
" and id_riga_mov = %s ",
ctbScad.getTipoAnag(),
ctbScad.getCodAnag(),
ctbScad.getAnnoPart(),
ctbScad.getSerDoc(),
ctbScad.getNumDoc(),
ctbScad.getIdRiga(),
ctbScad.getNumCmov(),
ctbScad.getIdRigaMov());
List<CrlScadParr> crlScadParrs = UtilityDB.executeSimpleQueryDTO(conn, sql, CrlScadParr.class);
if (crlScadParrs != null) {
crlScadParrs.stream().forEach(x -> x.setOperation(OperationType.DELETE));
}
if (crlScadParrs != null && crlScadParrs.size() > 0 ){
if (crlScadParrs != null && crlScadParrs.size() > 0) {
sql =
Query.format(
"SELECT *\n" +
@@ -477,7 +478,7 @@ public class AccountingRules extends QueryRules {
ctbScad.getNumCmov(),
ctbScad.getIdRigaMov());
List<CtbParr> ctbParr = UtilityDB.executeSimpleQueryDTO(conn, sql, CtbParr.class);
ctbParr.stream().forEach(x->x.setOperation(OperationType.DELETE));
ctbParr.stream().forEach(x -> x.setOperation(OperationType.DELETE));
ctbScad.setCtbParr(ctbParr);
}
@@ -510,7 +511,7 @@ public class AccountingRules extends QueryRules {
.findFirst();
if (UtilityBigDecimal.equalsOrGreaterThan(scad.getImpAvere(), BigDecimal.ZERO) &&
UtilityBigDecimal.equalsOrGreaterThan(scad.getImpDare(), BigDecimal.ZERO)) {
UtilityBigDecimal.equalsOrGreaterThan(scad.getImpDare(), BigDecimal.ZERO)) {
CtbParr ctbParr;
if (ctbParrFirst.isPresent()) {
@@ -603,7 +604,7 @@ public class AccountingRules extends QueryRules {
sql = UtilityDB.addwhereCond(sql, where, true);
Long id = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
if (id == null )
if (id == null)
crlScadParr.setOperation(OperationType.INSERT);
else {
crlScadParr.setId(id);
@@ -619,15 +620,15 @@ public class AccountingRules extends QueryRules {
} else {
String sql =
Query.format(
"SELECT cast(count(*) as bit)" +
" FROM ctb_parr " +
" WHERE cod_anag = %s AND " +
"tipo_anag = %s AND " +
"anno_part = %s AND " +
"ser_doc = %s AND " +
"num_doc = %s AND " +
"id_riga = %s ",
ctbMovr.getCodAnag(), ctbMovr.getTipoAnag(), ctbMovr.getAnnoPart(), ctbMovr.getSerDoc(), ctbMovr.getNumDoc(), ctbMovr.getIdRiga());
"SELECT cast(count(*) as bit)" +
" FROM ctb_parr " +
" WHERE cod_anag = %s AND " +
"tipo_anag = %s AND " +
"anno_part = %s AND " +
"ser_doc = %s AND " +
"num_doc = %s AND " +
"id_riga = %s ",
ctbMovr.getCodAnag(), ctbMovr.getTipoAnag(), ctbMovr.getAnnoPart(), ctbMovr.getSerDoc(), ctbMovr.getNumDoc(), ctbMovr.getIdRiga());
boolean existRow = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
@@ -654,7 +655,7 @@ public class AccountingRules extends QueryRules {
return elencoPartite;
}
public static List<CtbMovrCoan> completeCtbMovrCoan(Connection conn, CtbMovr ctbMovr) throws Exception{
public static List<CtbMovrCoan> completeCtbMovrCoan(Connection conn, CtbMovr ctbMovr) throws Exception {
String sql = String.format(
"SELECT * FROM ctb_movr_coan WHERE num_cmov = %s AND id_riga = %s",
UtilityDB.valueToString(ctbMovr.getNumCmov()),
@@ -758,11 +759,11 @@ public class AccountingRules extends QueryRules {
String sql = "SELECT anno_contab, anno_attuale FROM azienda ";
HashMap<String, Object> dati = UtilityDB.executeSimpleQueryOnlyFirstRow(connection, sql);
if (dati != null && dati.size() >0 ) {
if (dati != null && dati.size() > 0) {
Short annoContab = UtilityHashMap.getValueIfExists(dati, "anno_contab");
Short annoAttuale = UtilityHashMap.getValueIfExists(dati, "anno_attuale");
return (annoComp.compareTo(annoContab.intValue()) != 0 && annoComp.compareTo(annoAttuale.intValue()) != 0);
return (annoComp.compareTo(annoContab.intValue()) != 0 && annoComp.compareTo(annoAttuale.intValue()) != 0);
}
}
return ret;
@@ -816,7 +817,7 @@ public class AccountingRules extends QueryRules {
}
public static void completeIdRigaScad(Connection conn, CtbScad ctbScad) throws Exception {
if ( ctbScad.getParent() != null && ctbScad.getParent() instanceof CtbPart) return;
if (ctbScad.getParent() != null && ctbScad.getParent() instanceof CtbPart) return;
String sql =
"SELECT IsNull(max(id_riga), 0) + 1 " +
" FROM ctb_scad " +
@@ -994,7 +995,7 @@ public class AccountingRules extends QueryRules {
ResultSetMapper resultSetMapper = new ResultSetMapper();
List<CtbScad> ctbScad = resultSetMapper.mapQuerySetToList(conn, sql, CtbScad.class);
if (ctbMovr.getOperation() == OperationType.DELETE && ctbScad.size() > 0) {
for ( CtbScad x: ctbScad) {
for (CtbScad x : ctbScad) {
x.setOperation(x.getIsInsoluto() ? OperationType.DELETE : OperationType.UPDATE);
CrlScadParr crlScadParr =
new CrlScadParr()
@@ -1008,9 +1009,10 @@ public class AccountingRules extends QueryRules {
.setNumCmov(ctbMovr.getNumCmov())
.setId(x.getPkRelazione());
crlScadParr.setOperation(OperationType.DELETE);
if (x.getCrlScadParr() == null ) x.setCrlScadParr(new ArrayList<>());
if (x.getCrlScadParr() == null) x.setCrlScadParr(new ArrayList<>());
x.getCrlScadParr().add(crlScadParr);
};
}
;
}
return ctbScad;

View File

@@ -1,10 +1,10 @@
package it.integry.ems.rules.completing;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.rules.util.DroolsUtil;
import it.integry.ems_model.utility.UtilityDB;
import java.sql.Connection;
import java.util.HashMap;
public class AgentiRules extends QueryRules {

View File

@@ -2,6 +2,7 @@ package it.integry.ems.rules.completing;
import it.integry.ems.service.comuni.entities.Comune;
import it.integry.ems.service.comuni.service.ComuniService;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.Query;
@@ -12,7 +13,6 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.context.ContextLoader;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.*;

View File

@@ -1,12 +1,12 @@
package it.integry.ems.rules.completing;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.ArlListDataAttach;
import it.integry.ems_model.entity.CrlMovAttached;
import it.integry.ems_model.entity.StbFilesAttached;
import it.integry.ems_model.types.OperationType;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Types;
public class AttachedRules extends QueryRules {

View File

@@ -1,11 +1,11 @@
package it.integry.ems.rules.completing;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.JtbComt;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

View File

@@ -4,6 +4,7 @@ import com.annimon.stream.ComparatorCompat;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.annotation.ReloadRow;
import it.integry.ems_model.annotation.SqlField;
import it.integry.ems_model.base.EntityBase;
@@ -25,9 +26,11 @@ import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.*;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
@@ -40,7 +43,7 @@ public class CommonRules extends QueryRules {
public static MtbAart completeDatiMtbAart(Connection connection, String codMart) throws Exception {
String sql = "SELECT * FROM mtb_aart WHERE cod_mart = " + UtilityDB.valueToString(codMart);
if(codMart == null || codMart.isEmpty())
if (codMart == null || codMart.isEmpty())
throw new Exception("Impossibile trovare l'articolo");
final MtbAart mtbAart = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(connection, sql, MtbAart.class);
@@ -154,7 +157,7 @@ public class CommonRules extends QueryRules {
String sql = "SELECT full_name FROM stb_user WHERE user_name = '" + username + "'";
String value = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
if (!UtilityString.isNullOrEmpty(value)) return value;
if (!UtilityString.isNullOrEmpty(value)) return value;
return username;
}
@@ -177,7 +180,7 @@ public class CommonRules extends QueryRules {
finalList = new ArrayList<>();
field.setAccessible(true);
Object object = field.get(testata);
if (object != null && field.getType().isAssignableFrom(List.class) && ( field.getAnnotation(ReloadRow.class) != null || testata.getOperation() == OperationType.SUBSTITUTE)) {
if (object != null && field.getType().isAssignableFrom(List.class) && (field.getAnnotation(ReloadRow.class) != null || testata.getOperation() == OperationType.SUBSTITUTE)) {
List<? extends EntityBase> rows = (ArrayList<EntityBase>) object;
List<? extends EntityBase> list = null;
if (testata.getOperation() != OperationType.DELETE_THEN_INSERT &&
@@ -312,7 +315,7 @@ public class CommonRules extends QueryRules {
}
for (EntityBase row : rows) {
if (rigaField.get(row) == null || testata.getOperation() == OperationType.INSERT ) {
if (rigaField.get(row) == null || testata.getOperation() == OperationType.INSERT) {
startRiga++;
rigaField.set(row, startRiga);
}
@@ -354,7 +357,7 @@ public class CommonRules extends QueryRules {
}
public static void completePosRigaEntity(Connection conn, DtbOrdt testata) throws Exception {
public static void completePosRigaEntity(Connection conn, DtbOrdt testata) throws Exception {
List<DtbOrdr> rows = Stream.of(testata.getDtbOrdr()).filter(x -> x.getOperation() != OperationType.DELETE).toList();
if (rows.size() > 0) {
if (testata.getExecuteRecalc()) {
@@ -366,7 +369,7 @@ public class CommonRules extends QueryRules {
} else {
Integer posRigaLista =
Stream.of(rows)
.filter(x -> x.getPosRiga() != null).max(Comparator.comparingInt(DtbOrdr::getPosRiga)).map(x->x.getPosRiga()).orElse(1);
.filter(x -> x.getPosRiga() != null).max(Comparator.comparingInt(DtbOrdr::getPosRiga)).map(x -> x.getPosRiga()).orElse(1);
String sql =
"SELECT ISNULL(max(pos_riga), 0) as pos_riga " +
" FROM dtb_ordr ";
@@ -379,11 +382,11 @@ public class CommonRules extends QueryRules {
posRigaLista = posRigaDb;
}
AtomicReference<Integer> i = new AtomicReference<>(posRigaLista);
Stream.of(rows).filter(x->x.getPosRiga() == null).forEach(x->x.setPosRiga(i.getAndSet(i.get() + 1)));
Stream.of(rows).filter(x -> x.getPosRiga() == null).forEach(x -> x.setPosRiga(i.getAndSet(i.get() + 1)));
}
Integer rigaPrec = 0;
for (DtbOrdr row: rows) {
for (DtbOrdr row : rows) {
if (row.getPosRiga() == null || rigaPrec.equals(row.getPosRiga())) {
rigaPrec++;
row.setPosRiga(rigaPrec);
@@ -778,31 +781,32 @@ public class CommonRules extends QueryRules {
}
return value;
}
public static BigDecimal completeQtaCnfOffA(Connection connection, AtbOffr atbOffr) throws Exception {
AtbOfft atbOfft = (AtbOfft) atbOffr.getParent();
String sql= null;
String sql = null;
BigDecimal qtaCnf = null;
if (atbOfft.getCodAlis() != null) {
sql =
Query.format(
"SELECT qta_cnf\n" +
" FROM dbo.getListinoAcquisto(%s,%s,%s,%s, 'N', null) lisa\n" +
" WHERE IsNull(lisa.tipo_variazione, 'I') <> 'D' AND\n" +
"lisa.flag_attivo = 'S' ",
atbOfft.getDataIniz(),
atbOfft.getCodAlis(),
atbOffr.getCodArtForn(),
atbOffr.getCodMart());
Query.format(
"SELECT qta_cnf\n" +
" FROM dbo.getListinoAcquisto(%s,%s,%s,%s, 'N', null) lisa\n" +
" WHERE IsNull(lisa.tipo_variazione, 'I') <> 'D' AND\n" +
"lisa.flag_attivo = 'S' ",
atbOfft.getDataIniz(),
atbOfft.getCodAlis(),
atbOffr.getCodArtForn(),
atbOffr.getCodMart());
qtaCnf = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
}
if (UtilityBigDecimal.isNullOrZero(qtaCnf)) {
sql =
Query.format("SELECT qta_cnf FROM mtb_aart WHERE cod_mart = %s", atbOffr.getCodMart());
Query.format("SELECT qta_cnf FROM mtb_aart WHERE cod_mart = %s", atbOffr.getCodMart());
qtaCnf = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
}
if (!UtilityBigDecimal.isNullOrZero(atbOffr.getRapConv()) && atbOffr.getRapConv().compareTo(BigDecimal.ONE) != 0 ) {
if (!UtilityBigDecimal.isNullOrZero(atbOffr.getRapConv()) && atbOffr.getRapConv().compareTo(BigDecimal.ONE) != 0) {
qtaCnf = qtaCnf.divide(atbOffr.getRapConv(), RoundingMode.HALF_UP);
}
return qtaCnf;
@@ -932,9 +936,9 @@ public class CommonRules extends QueryRules {
+ UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ","
+ UtilityDB.valueToString(codMdep) + ") as costo_dist";
BigDecimal valUnt = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
if ( valUnt == null)
if (valUnt == null)
return BigDecimal.ZERO;
else
else
return valUnt;
}

View File

@@ -2,6 +2,7 @@ package it.integry.ems.rules.completing;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.Query;
@@ -17,12 +18,13 @@ import java.util.Map;
public class ConfigActivityRules extends QueryRules {
public static boolean checkRapportino(Connection conn,JtbRLavr jtbRLavr) throws Exception {
public static boolean checkRapportino(Connection conn, JtbRLavr jtbRLavr) throws Exception {
String sql = Query.format("SELECT * FROM stb_activity WHERE activity_id = %s", jtbRLavr.getActivityId());
StbActivity stbActivity = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(conn, sql, StbActivity.class);
return checkAttivita(conn, stbActivity);
}
public static boolean checkAttivita(Connection conn,StbActivity stbActivity) throws Exception {
public static boolean checkAttivita(Connection conn, StbActivity stbActivity) throws Exception {
boolean blocca = false;
if (stbActivity.getFlagTipologia().equalsIgnoreCase("P")) {
String sql =
@@ -31,15 +33,15 @@ public class ConfigActivityRules extends QueryRules {
if (!UtilityString.equalsIgnoreCase(parentActivityId, stbActivity.getParentActivityId())) {
sql =
Query.format(
"SELECT CAST(COUNT(*) AS BIT)\n" +
"FROM stb_activity_check\n" +
" INNER JOIN stb_activity ON stb_activity.cod_jcom = stb_activity_check.cod_jcom AND\n" +
" stb_activity.effective_enddate BETWEEN stb_activity_check.data_iniz AND stb_activity_check.data_fine\n" +
"WHERE stb_activity.parent_activity_id = %s" , stbActivity.getActivityId());
"SELECT CAST(COUNT(*) AS BIT)\n" +
"FROM stb_activity_check\n" +
" INNER JOIN stb_activity ON stb_activity.cod_jcom = stb_activity_check.cod_jcom AND\n" +
" stb_activity.effective_enddate BETWEEN stb_activity_check.data_iniz AND stb_activity_check.data_fine\n" +
"WHERE stb_activity.parent_activity_id = %s", stbActivity.getActivityId());
blocca = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
}
} else {
} else {
List<Date> dataDaControllare = new ArrayList<>();
//if (stbActivity.getEstimatedDate() != null) dataDaControllare.add(stbActivity.getEstimatedDate());
if (stbActivity.getEffectiveDate() != null) dataDaControllare.add(stbActivity.getEffectiveDate());
@@ -58,7 +60,7 @@ public class ConfigActivityRules extends QueryRules {
break;
}
}
if ( blocca)
if (blocca)
throw new Exception("Impossibile modificare\\inserire un'attività in un periodo fatturato.");
return false;
@@ -79,27 +81,27 @@ public class ConfigActivityRules extends QueryRules {
sql =
Query.format("SELECT * FROM jtb_rlavr WHERE cod_jflav = %s AND activity_id = %s",
codJflav, entity.getActivityId());
codJflav, entity.getActivityId());
List<JtbRLavr> jtbRLavrs = UtilityDB.executeSimpleQueryDTO(connection, sql, JtbRLavr.class);
if (jtbRLavrs !=null ) {
if (jtbRLavrs != null) {
Stream.of(jtbRLavrs).forEach(x -> x.setOperation(OperationType.DELETE));
List<Map.Entry<JtbRLavt, List<JtbRLavr>>> list =
Stream.of(jtbRLavrs)
.groupBy(
x -> {
JtbRLavt jtbRLavt = new JtbRLavt();
jtbRLavt.setCodJflav(x.getCodJflav());
jtbRLavt.setDataLav(x.getDataLav());
jtbRLavt.setOperation(OperationType.NO_OP);
jtbRLavt.setJtbRlavr(new ArrayList<>());
return jtbRLavt;
}
.groupBy(
x -> {
JtbRLavt jtbRLavt = new JtbRLavt();
jtbRLavt.setCodJflav(x.getCodJflav());
jtbRLavt.setDataLav(x.getDataLav());
jtbRLavt.setOperation(OperationType.NO_OP);
jtbRLavt.setJtbRlavr(new ArrayList<>());
return jtbRLavt;
}
).toList();
).toList();
for (Map.Entry<JtbRLavt, List<JtbRLavr>> r: list) {
for (Map.Entry<JtbRLavt, List<JtbRLavr>> r : list) {
r.getKey().setJtbRlavr(r.getValue());
returnList.add(r.getKey());
}
@@ -118,7 +120,7 @@ public class ConfigActivityRules extends QueryRules {
jtbRLavr.setCodJcom(entity.getCodJcom())
.setCodJfas(entity.getCodJfas())
.setOre(entity.getOreRapportino())
.setNote(UtilityString.isNullOrEmpty(entity.getActivityDescription())?null:UtilityString.left(entity.getActivityDescription(), 255))
.setNote(UtilityString.isNullOrEmpty(entity.getActivityDescription()) ? null : UtilityString.left(entity.getActivityDescription(), 255))
.setDaOra(entity.getEffectiveTime())
.setaOra(entity.getEffectiveEndtime())
.setCodMart(entity.getCodMart())

View File

@@ -1,18 +1,17 @@
package it.integry.ems.rules.completing;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.rules.util.DroolsUtil;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.utility.UtilityDB;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.HashMap;
public class DistBaseRules extends QueryRules {
protected static SetupGest setupGest = new SetupGest();

View File

@@ -5,6 +5,7 @@ import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.rules.businessLogic.enums.TipoEmissione;
import it.integry.ems.rules.completing.dto.DatiTrasportoDTO;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.db.ResultSetMapper;
@@ -19,7 +20,6 @@ import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Connection;
import java.util.*;
import java.util.Map.Entry;
@@ -31,11 +31,11 @@ public class DocOrdCalTotaliRules extends QueryRules {
String gestione = row.getGestione();
int segno = 1;
if ( row instanceof DtbDocr ) {
if (row instanceof DtbDocr) {
String sql =
Query.format(
"SELECT cast(segno_qta_car as int) FROM dtb_tipi WHERE cod_dtip = %S", ((DtbDocr) row).getCodDtip());
segno = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn,sql);
"SELECT cast(segno_qta_car as int) FROM dtb_tipi WHERE cod_dtip = %S", ((DtbDocr) row).getCodDtip());
segno = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
}
Date dataReg = null, dataValidita = null;
@@ -581,7 +581,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
row.setImportoRiga(importoRiga);
if ("S".equals(flagIvaInclusa)) {
impRigaIva = DocOrdCalTotaliRules.completeImportoRigaIva( row, cifreDec);
impRigaIva = DocOrdCalTotaliRules.completeImportoRigaIva(row, cifreDec);
//IMPORTO RIGA PER IL CASTELLETTO CONTIENE L'IVA
if (!UtilityString.isNullOrEmpty(codAliq)) {
importoRiga = CommonRules.scorporoIva(impRigaIva, percAliq);
@@ -619,7 +619,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
nettoMerce = nettoMerce.add(importoRiga.setScale(2, RoundingMode.HALF_UP));
}
if (!UtilityBigDecimal.isNullOrZero(sconto4) && !UtilityBigDecimal.isNullOrZero(importoRiga) ) {
if (!UtilityBigDecimal.isNullOrZero(sconto4) && !UtilityBigDecimal.isNullOrZero(importoRiga)) {
importoRiga = importoRiga.multiply(BigDecimal.valueOf(1).subtract((sconto4.divide(BigDecimal.valueOf(100)))));
importoRiga = CommonRules.roundValue(importoRiga, cifreDec);
}
@@ -693,7 +693,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
if (((DtbDoct) testata).getDtbTipi().getTipoEmissioneEnum() == TipoEmissione.DIFFERITA &&
dtbDocr.getDtbDocrBolla() == null &&
dtbDocr.getIdRigaBolla() == null &&
!UtilityString.isNullOrEmpty(codDtipBolla) ) {
!UtilityString.isNullOrEmpty(codDtipBolla)) {
DtbDocr dtbDocrBolla = DocumentRules.setDatiBolla(conn, ((DtbDocr) row), codDtipBolla, dataDocBolla, serDocBolla, numDocBolla);
dtbDocr.setDtbDocrBolla(dtbDocrBolla);
} else if (dtbDocr.getDtbDocrBolla() != null) {

View File

@@ -3,6 +3,7 @@ package it.integry.ems.rules.completing;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.db.ResultSetMapper;
@@ -22,7 +23,10 @@ import it.integry.ems_model.utility.UtilityString;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.*;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -966,7 +970,7 @@ public class DocOrdRules extends QueryRules {
.setNumOrd(dtbOrdt.getNumOrdRif())
.setGeneraOrdLavDaProd(false);
dtbOrdtProd.setOperation(OperationType.NO_OP);
BigDecimal valUnt = dtbOrdt.getTotImponib().divide(dtbOrdt.getQtaProd(),5, BigDecimal.ROUND_HALF_UP);
BigDecimal valUnt = dtbOrdt.getTotImponib().divide(dtbOrdt.getQtaProd(), 5, BigDecimal.ROUND_HALF_UP);
DtbOrdr dtbOrdrProd =
new DtbOrdr().setRigaOrd(dtbOrdt.getRigaOrdRif());

View File

@@ -3,6 +3,7 @@ package it.integry.ems.rules.completing;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import it.integry.ems.rules.completing.dto.UntMisDTO;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.DtbDocr;
@@ -18,7 +19,6 @@ import it.integry.ems_model.utility.UtilityString;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Connection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;

View File

@@ -2,15 +2,18 @@ package it.integry.ems.rules.completing;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.Azienda;
import it.integry.ems_model.entity.DtbDocr;
import it.integry.ems_model.entity.DtbDoct;
import it.integry.ems_model.entity.NtbDoct;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.*;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityDate;
import it.integry.ems_model.utility.UtilityHashMap;
import it.integry.ems_model.utility.UtilityString;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
@@ -18,7 +21,6 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.HashMap;
import static it.integry.ems.rules.completing.QueryRules.getSingleValue;
@@ -64,7 +66,7 @@ public class DocumentCheckRules {
" anno = " + UtilityDB.valueToString(annoMov);
Date ultDataIva = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, query);
if (ultDataIva != null) {
if ((dataCmov.before(ultDataIva) || dataCmov.equals(ultDataIva) )) {
if ((dataCmov.before(ultDataIva) || dataCmov.equals(ultDataIva))) {
throw new Exception("La data deve essere superiore all'ultima data stampata sul registro IVA bollato");
}
} else {
@@ -381,17 +383,17 @@ public class DocumentCheckRules {
// NEL REGISTRO, NELLA SERIE E NEL NUMERO DEL DOCUMENTO CHE SI STA SALVANDO
sql =
"SELECT dtb_doct.cod_anag, " +
" dtb_doct.cod_dtip, " +
" dtb_doct.data_doc, " +
" dtb_doct.ser_doc, " +
" dtb_doct.num_doc " +
" FROM dtb_doct " +
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip " +
" WHERE dtb_tipi.cod_ireg = " + UtilityDB.valueToString(codIreg) + " AND " +
" dtb_tipi.num_ireg = " + UtilityDB.valueToString(numIreg) + " AND " +
" Datepart(year, dtb_doct.data_doc) = " + UtilityDB.valueToString(annoDoc) + " AND " +
" ser_doc = " + UtilityDB.valueToString(serDoc) + " AND " +
" num_doc = " + UtilityDB.valueToString(numDoc);
" dtb_doct.cod_dtip, " +
" dtb_doct.data_doc, " +
" dtb_doct.ser_doc, " +
" dtb_doct.num_doc " +
" FROM dtb_doct " +
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip " +
" WHERE dtb_tipi.cod_ireg = " + UtilityDB.valueToString(codIreg) + " AND " +
" dtb_tipi.num_ireg = " + UtilityDB.valueToString(numIreg) + " AND " +
" Datepart(year, dtb_doct.data_doc) = " + UtilityDB.valueToString(annoDoc) + " AND " +
" ser_doc = " + UtilityDB.valueToString(serDoc) + " AND " +
" num_doc = " + UtilityDB.valueToString(numDoc);
HashMap<String, Object> datiDoc = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
@@ -414,7 +416,7 @@ public class DocumentCheckRules {
" Datepart(year, dtb_doct.data_doc) = " + UtilityDB.valueToString(annoDoc) + " AND " +
" ser_doc = " + UtilityDB.valueToString(serDoc) + " AND " +
" num_doc = " + UtilityDB.valueToString(numDoc) + " AND " +
" IsNull(cod_vdes, '') = ISNULL(" + UtilityDB.valueToString(entity.getCodVdes())+",'')";
" IsNull(cod_vdes, '') = ISNULL(" + UtilityDB.valueToString(entity.getCodVdes()) + ",'')";
} else {
sql =
"SELECT cod_anag, " +
@@ -433,8 +435,8 @@ public class DocumentCheckRules {
returnVal = existDoc(datiDoc, codAnagOld, codDtipOld, dataDocOld, serDocOld, numDocOld);
}
if (returnVal && entity.getOperation() == OperationType.INSERT ) {
if (returnVal && entity.getOperation() == OperationType.INSERT) {
throw new Exception("DOCUMENTO INTESTATO A " + entity.getCodAnag() + " - " + entity.getCodDtip() + " N. " + entity.getNumDoc().toString() + "/" + entity.getSerDoc() + " DEL " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(entity.getDataDoc()) + " GIA' ESISTENTE");
} else {
if (checkDocInSequenza(conn, entity) == false && "AUTOMATICA".equalsIgnoreCase(tipoNumeraz) &&
@@ -449,21 +451,22 @@ public class DocumentCheckRules {
private static boolean existDoc(HashMap<String, Object> datiDoc, String codAnagOld, String codDtipOld, Date dataDocOld, String serDocOld, Integer numDocOld) {
boolean returnVal;
if (datiDoc == null || datiDoc.size() == 0){
if (datiDoc == null || datiDoc.size() == 0) {
returnVal = false; // IL DOCUMENTO NON ESISTE NEL DATABASE
} else if (codAnagOld != null) {
returnVal = (UtilityString.equalsIgnoreCase(UtilityHashMap.getValueIfExists(datiDoc, "cod_anag"), codAnagOld) &&
UtilityString.equalsIgnoreCase(UtilityHashMap.getValueIfExists(datiDoc, "cod_dtip"), codDtipOld) &&
UtilityHashMap.<Date>getValueIfExists(datiDoc, "data_doc").compareTo(dataDocOld) == 0 &&
UtilityString.equalsIgnoreCase(UtilityHashMap.getValueIfExists(datiDoc, "ser_doc"), serDocOld) &&
UtilityHashMap.<Integer>getValueIfExists(datiDoc, "num_doc").compareTo(numDocOld) == 0);
returnVal = (UtilityString.equalsIgnoreCase(UtilityHashMap.getValueIfExists(datiDoc, "cod_anag"), codAnagOld) &&
UtilityString.equalsIgnoreCase(UtilityHashMap.getValueIfExists(datiDoc, "cod_dtip"), codDtipOld) &&
UtilityHashMap.<Date>getValueIfExists(datiDoc, "data_doc").compareTo(dataDocOld) == 0 &&
UtilityString.equalsIgnoreCase(UtilityHashMap.getValueIfExists(datiDoc, "ser_doc"), serDocOld) &&
UtilityHashMap.<Integer>getValueIfExists(datiDoc, "num_doc").compareTo(numDocOld) == 0);
//se returnVal = false; IL DOCUMENTO ESISTENTE è QUELLO IN CORSO DI VARIAZIONE
//se returnVal = true; IL DOCUMENTO ESISTENTE NON è QUELLO IN CORSO DI VARIAZIONE
//se returnVal = false; IL DOCUMENTO ESISTENTE è QUELLO IN CORSO DI VARIAZIONE
//se returnVal = true; IL DOCUMENTO ESISTENTE NON è QUELLO IN CORSO DI VARIAZIONE
} else {
returnVal = true; // IL DOCUMENTO ESISTENTE NON è QUELLO IN CORSO DI VARIAZIONE
} return returnVal;
}
return returnVal;
}
public static Boolean checkNtbDoctDoc(Connection conn, DtbDoct dtbDoct) throws Exception {

View File

@@ -4,6 +4,7 @@ import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.rules.businessLogic.enums.TipoEmissione;
import it.integry.ems.rules.completing.dto.DatiPartitaMagDTO;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.*;
@@ -264,10 +265,10 @@ public class DocumentRules extends QueryRules {
sql =
"SELECT CASE WHEN " + UtilityDB.valueToString(gestione) + " = 'A' " +
" THEN atb_forn.cod_ccon_costi ELSE vtb_clie.cod_ccon_ricavi END " +
" FROM gtb_anag " +
" FROM gtb_anag " +
"left outer join vtb_clie on gtb_anag.cod_anag = vtb_clie.cod_anag " +
"left outer join atb_forn on gtb_anag.cod_anag = atb_forn.cod_anag " +
" WHERE gtb_anag.cod_anag = " + UtilityDB.valueToString(entity.getCodAnag());
" WHERE gtb_anag.cod_anag = " + UtilityDB.valueToString(entity.getCodAnag());
codCcon = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
}
@@ -286,12 +287,12 @@ public class DocumentRules extends QueryRules {
public static boolean chkDocAP(Connection conn, DtbDocr dtbDocr) throws Exception {
boolean isDocAp = false;
Date dataReg = dtbDocr.getDataDoc();
Date dataReg = dtbDocr.getDataDoc();
if (dtbDocr.getTipoEmissione().equalsIgnoreCase(String.valueOf(TipoEmissione.DIFFERITA)) &&
dtbDocr.getDataDocBolla() != null &&
dtbDocr.getCodDtipBolla() != null &&
dtbDocr.getSerDocBolla() != null &&
dtbDocr.getNumDocBolla() != null ) {
dtbDocr.getNumDocBolla() != null) {
String sql =
"SELECT data_reg " +
" FROM dtb_doct " +
@@ -339,7 +340,7 @@ public class DocumentRules extends QueryRules {
}
if (UtilityString.isNullOrEmpty(codJfas) ){
if (UtilityString.isNullOrEmpty(codJfas)) {
sql = "SELECT cod_jfas FROM mtb_depo WHERE cod_mdep = " + UtilityDB.valueToString(codMdep);
codJfas = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
}
@@ -546,12 +547,12 @@ public class DocumentRules extends QueryRules {
public static MtbPartitaMag insertPartitaMag(Connection conn, DtbDocr entity) throws Exception {
String sql =
Query.format(
"SELECT data_scad from mtb_partita_mag where cod_mart = %s and partita_mag = %s",
entity.getCodMart(), entity.getPartitaMag());
Query.format(
"SELECT data_scad from mtb_partita_mag where cod_mart = %s and partita_mag = %s",
entity.getCodMart(), entity.getPartitaMag());
Date dataScad = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
OperationType operationType = OperationType.NO_OP;
if ( dataScad == null || ( entity.getDataScad() != null && !UtilityDate.equals(dataScad, entity.getDataScad())))
if (dataScad == null || (entity.getDataScad() != null && !UtilityDate.equals(dataScad, entity.getDataScad())))
operationType = OperationType.INSERT_OR_UPDATE;
MtbPartitaMag mtbPartitaMag = new MtbPartitaMag();
@@ -624,8 +625,8 @@ public class DocumentRules extends QueryRules {
public static DtbDocPdf getDtbDocPdf(Connection conn, DtbDocXml dtbDocXml) throws Exception {
String sql =
"SELECT dtb_doc_pdf.cod_anag, dtb_doc_pdf.cod_dtip, dtb_doc_pdf.data_doc, dtb_doc_pdf.ser_doc, dtb_doc_pdf.num_doc, dtb_doc_pdf.versione, '[NULL]' as prog_sdi " +
"FROM dtb_doc_pdf " +
"WHERE dtb_doc_pdf.prog_sdi =" + UtilityDB.valueToString(dtbDocXml.getProgSdi());
"FROM dtb_doc_pdf " +
"WHERE dtb_doc_pdf.prog_sdi =" + UtilityDB.valueToString(dtbDocXml.getProgSdi());
DtbDocPdf docPdf = new ResultSetMapper()
.mapQueryToObject(conn, sql, DtbDocPdf.class, OperationType.UPDATE);
@@ -683,8 +684,8 @@ public class DocumentRules extends QueryRules {
String sql =
"SELECT cod_jfas, " +
"data_reg " +
" FROM dtb_doct " +
" WHERE dtb_doct.cod_anag = " + UtilityDB.valueToString(dtbDocr.getCodAnag()) + " AND " +
" FROM dtb_doct " +
" WHERE dtb_doct.cod_anag = " + UtilityDB.valueToString(dtbDocr.getCodAnag()) + " AND " +
" dtb_doct.cod_dtip = " + UtilityDB.valueToString(dtbDocr.getCodDtipBolla()) + " AND " +
" dtb_doct.data_doc = " + UtilityDB.valueDateToString(dtbDocr.getDataDocBolla(), CommonConstants.DATE_FORMAT_YMD) + " AND " +
" dtb_doct.ser_doc = " + UtilityDB.valueToString(dtbDocr.getSerDocBolla()) + " AND " +
@@ -693,9 +694,9 @@ public class DocumentRules extends QueryRules {
if (datiBolla != null) {
dtbDocr
.setCodJfas((String) datiBolla.get("cod_jfas"))
.setDataInizComp((Date) datiBolla.get("data_reg"))
.setDataFineComp((Date) datiBolla.get("data_reg"));
.setCodJfas((String) datiBolla.get("cod_jfas"))
.setDataInizComp((Date) datiBolla.get("data_reg"))
.setDataFineComp((Date) datiBolla.get("data_reg"));
}
return dtbDocrBolla;
@@ -782,23 +783,23 @@ public class DocumentRules extends QueryRules {
boolean chkTracciabilita = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
if (chkTracciabilita) {
List<String> articoli = null;
if (dtbDoct.getDtbDocr().size() > 0 ) {
List<String> articoli = null;
if (dtbDoct.getDtbDocr().size() > 0) {
articoli = Stream.of(dtbDoct.getDtbDocr())
.filter(value -> value.getOperation() != OperationType.DELETE && value.getCodMart() != null && value.getMtbAart().getFlagTracciabilita().equalsIgnoreCase("S") &&
value.getPartitaMag() == null)
.map(x->x.getCodMart() + " - " + x.getMtbAart().getDescrizione()).toList();
.map(x -> x.getCodMart() + " - " + x.getMtbAart().getDescrizione()).toList();
} else {
sql =
"SELECT dtb_docr.cod_mart + ' - ' + dtb_docr.descrizione as articolo " +
" FROM dtb_docr inner join mtb_aart on dtb_docr.cod_mart = mtb_aart.cod_mart " +
" WHERE dtb_docr.cod_anag = %s AND " +
"dtb_docr.cod_dtip = %s AND " +
"dtb_docr.data_doc = %s AND " +
"dtb_docr.ser_doc = %s AND " +
"dtb_docr.num_doc = %s AND " +
"dtb_docr.partita_mag is null AND " +
"mtb_aart.flag_tracciabilita = 'S' " ;
"SELECT dtb_docr.cod_mart + ' - ' + dtb_docr.descrizione as articolo " +
" FROM dtb_docr inner join mtb_aart on dtb_docr.cod_mart = mtb_aart.cod_mart " +
" WHERE dtb_docr.cod_anag = %s AND " +
"dtb_docr.cod_dtip = %s AND " +
"dtb_docr.data_doc = %s AND " +
"dtb_docr.ser_doc = %s AND " +
"dtb_docr.num_doc = %s AND " +
"dtb_docr.partita_mag is null AND " +
"mtb_aart.flag_tracciabilita = 'S' ";
sql = String.format(sql,
UtilityDB.valueToString(dtbDoct.getCodAnag()),
@@ -828,14 +829,14 @@ public class DocumentRules extends QueryRules {
DatiPartitaMagDTO datiPartita =
new DatiPartitaMagDTO()
.setCodMart(dtbDocr.getCodMart())
.setCodAnag(dtbDocr.getCodAnag())
.setNumDoc(dtbDocr.getNumDoc())
.setGestione(dtbDocr.getGestione())
.setDataOrd(dtbDocr.getDataOrd())
.setNumOrd(dtbDocr.getNumOrd())
.setCodJfas(dtbDocr.getCodJfas())
.setDataScad(dtbDocr.getDataScad());
.setCodMart(dtbDocr.getCodMart())
.setCodAnag(dtbDocr.getCodAnag())
.setNumDoc(dtbDocr.getNumDoc())
.setGestione(dtbDocr.getGestione())
.setDataOrd(dtbDocr.getDataOrd())
.setNumOrd(dtbDocr.getNumOrd())
.setCodJfas(dtbDocr.getCodJfas())
.setDataScad(dtbDocr.getDataScad());
partitaMag = PartitaMagRules.suggestCodePartitaMag(conn, datiPartita);
}
return partitaMag;

View File

@@ -2,11 +2,11 @@ package it.integry.ems.rules.completing;
import it.integry.ems.exception.CheckConstraintException;
import it.integry.ems.rules.completing.dto.ForeignKeyDTO;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityMessage;
import it.integry.ems_model.utility.UtilityQuery;
import java.sql.Connection;
import java.util.HashMap;
import java.util.List;

View File

@@ -5,7 +5,9 @@ import it.integry.ems_model.utility.UtilityDB;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

View File

@@ -7,7 +7,9 @@ import it.integry.ems_model.utility.Query;
import it.integry.ems_model.utility.UtilityDB;
import java.sql.CallableStatement;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.SQLException;
import java.sql.Types;
import java.util.HashMap;

View File

@@ -10,7 +10,8 @@ import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -94,8 +95,8 @@ public class OrdWebRules extends QueryRules {
}
} else if (testata instanceof DtbOrdt &&
testata.getGestione().equalsIgnoreCase("A") &&
UtilityString.equalsIgnoreCase(((DtbOrdt)testata).getGestioneRif(), "A")) {
((DtbOrdt) testata).getDtbOrdr().stream().forEach(x->x.setIdArt(x.getPosRiga()));
UtilityString.equalsIgnoreCase(((DtbOrdt) testata).getGestioneRif(), "A")) {
((DtbOrdt) testata).getDtbOrdr().stream().forEach(x -> x.setIdArt(x.getPosRiga()));
}
}

View File

@@ -8,8 +8,12 @@ import it.integry.ems_model.entity.common.DtbOrdCommonR;
import it.integry.ems_model.types.ApplicationName;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.*;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.math.BigDecimal;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
@@ -263,7 +267,7 @@ public class OrderRules extends QueryRules {
HashMap<String, Object> dati = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, query);
if (UtilityHashMap.isPresent(dati)){
if (UtilityHashMap.isPresent(dati)) {
descrizioneCommessa = UtilityHashMap.getValueIfExists(dati, "rag_soc");
destinazione = UtilityHashMap.getValueIfExists(dati, "citta");
} else

View File

@@ -14,7 +14,9 @@ import it.integry.ems_model.utility.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.CallableStatement;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.SQLException;
import java.sql.Types;
import java.time.LocalDate;

View File

@@ -2,11 +2,11 @@ package it.integry.ems.rules.completing;
import it.integry.ems.rules.completing.dto.DatiPartitaMagDTO;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.MtbPartitaMag;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashMap;

View File

@@ -7,7 +7,8 @@ import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.Statement;
public class PreventRules extends QueryRules {

View File

@@ -6,9 +6,13 @@ import it.integry.ems_model.utility.Query;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityDate;
import it.integry.ems_model.utility.UtilityString;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.math.BigDecimal;
import java.math.RoundingMode;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;

View File

@@ -3,7 +3,6 @@ package it.integry.ems.rules.completing;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.entity.common.*;
@@ -14,11 +13,13 @@ import it.integry.ems_model.utility.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.math.BigDecimal;
import java.math.RoundingMode;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;
import java.util.HashMap;

View File

@@ -10,6 +10,10 @@ import org.apache.commons.codec.binary.Base64;
import java.math.BigDecimal;
import java.math.BigInteger;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
@@ -82,7 +86,7 @@ public class QueryRules {
return campi;
}
public static <T> T getEntityData(EntityBase dati, EntityBase entity, String columnName, Boolean override) throws Exception {
public static <T> T getEntityData(EntityBase dati, EntityBase entity, String columnName, Boolean override) throws Exception {
Object ret = null;
Object valueEntity = DroolsUtil.getFieldValue(entity, columnName);

View File

@@ -13,7 +13,9 @@ import it.integry.ems_model.utility.UtilityString;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
@@ -51,7 +53,7 @@ public class ReceiptRules extends QueryRules {
.distinct()
.toList();
if (articoli.size() > 0 ) {
if (articoli.size() > 0) {
String whereCondArt = StringUtils.join(articoli, "','");
if (!UtilityString.isNullOrEmpty(whereCondArt)) {
whereCondArt = "lisv.cod_mart in ('" + whereCondArt + "')";
@@ -65,17 +67,17 @@ public class ReceiptRules extends QueryRules {
sql = UtilityDB.addwhereCond(sql, whereCondArt, true);
List<HashMap<String, Object>> datiListino = UtilityDB.executeSimpleQuery(conn, sql);
if ( datiListino == null) return;
if (datiListino == null) return;
for (String articolo: articoli) {
for (String articolo : articoli) {
Optional<HashMap<String, Object>> firstUntMis = Stream.of(datiListino)
.filter(x -> UtilityString.equalsIgnoreCase(UtilityHashMap.getValueIfExists(x, "cod_mart"), articolo))
.findFirst();
if (firstUntMis.isPresent() ) {
if (firstUntMis.isPresent()) {
String untMisVen = UtilityHashMap.getValueIfExists(firstUntMis.get(), "unt_mis_ven");
Stream.of(ntbDoct.getNtbDocr()).filter(x->UtilityString.equalsIgnoreCase(x.getCodMart(),articolo)).forEach(x->{
Stream.of(ntbDoct.getNtbDocr()).filter(x -> UtilityString.equalsIgnoreCase(x.getCodMart(), articolo)).forEach(x -> {
x.setUntMis(untMisVen);
});
}
@@ -84,7 +86,7 @@ public class ReceiptRules extends QueryRules {
}
public static MtbDepoOper completeMtbDepoOper(Connection connection, String codMdep, String codOper) throws Exception {
String sql = "select * from mtb_depo_oper where cod_mdep='" + codMdep + "' and cod_mdep_oper='" + codOper + "'" ;
String sql = "select * from mtb_depo_oper where cod_mdep='" + codMdep + "' and cod_mdep_oper='" + codOper + "'";
List<HashMap<String, Object>> list = execQuery(connection, sql);
if (list.size() == 0) {
@@ -136,19 +138,19 @@ public class ReceiptRules extends QueryRules {
/*ESCLUDI_PROMO_INFORMATIVE*/
boolean esludiPromo = setupGest.getSetupBoolean(connection, "NTB_DOCT", "PROMOZIONI", "ESCLUDI_PROMO_INFORMATIVE");
String whereCond = "";
if (esludiPromo){
if (esludiPromo) {
whereCond = "(flag_tipologia is null or flag_tipologia <> 'I')";
}
String sql =
Query.format(
"SELECT cod_promo " +
" FROM dbo.getPromozioneVendita(%s, null, null, null, %s) as promo_vend , " +
" mtb_depo WHERE promo_vend.cod_vlis = mtb_depo.cod_vlis AND " +
" mtb_depo.cod_mdep = %s",
dataDoc,
codMart,
codMdep);
"SELECT cod_promo " +
" FROM dbo.getPromozioneVendita(%s, null, null, null, %s) as promo_vend , " +
" mtb_depo WHERE promo_vend.cod_vlis = mtb_depo.cod_vlis AND " +
" mtb_depo.cod_mdep = %s",
dataDoc,
codMart,
codMdep);
sql = UtilityDB.addwhereCond(sql, whereCond, true);
String codPromo = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
return codPromo;

View File

@@ -15,9 +15,13 @@ import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.*;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTimeComparator;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.math.BigDecimal;
import java.math.RoundingMode;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -802,9 +806,9 @@ public class SalesRules extends QueryRules {
Object valueEntity = DroolsUtil.getFieldValue(entity, columnName);
BigDecimal percScoContr = BigDecimal.ZERO;
if (valueEntity == null) {
if ("sconto5".equals(columnName)){
if ("sconto5".equals(columnName)) {
percScoContr = rs.getBigDecimal(1);
} else if ("sconto6".equals(columnName)){
} else if ("sconto6".equals(columnName)) {
percScoContr = rs.getBigDecimal(2);
} else {
percScoContr = rs.getBigDecimal(3);

View File

@@ -8,7 +8,8 @@ import it.integry.ems_model.entity.OltbOperregiFile;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.util.List;
public class SianRules extends QueryRules {

View File

@@ -6,7 +6,8 @@ import it.integry.ems_model.entity.TtbAnnoStag;
import it.integry.ems_model.entity.TtbStyleTaglie;
import it.integry.ems_model.types.OperationType;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.util.HashMap;
import java.util.List;
@@ -31,13 +32,12 @@ public class TabGenTextiles extends QueryRules {
.sortBy(TtbStyleTaglie::getPos)
.toList();
String taglia = Stream.of(taglie).findFirst().map(TtbStyleTaglie::getCodTagl).orElse(null);
if ( taglia != null)rangeTaglie.put("min", taglia);
if (taglia != null) rangeTaglie.put("min", taglia);
taglia = Stream.of(taglie).findLast().map(TtbStyleTaglie::getCodTagl).orElse(null);
if ( taglia != null)rangeTaglie.put("max", taglia);
if (taglia != null) rangeTaglie.put("max", taglia);
return rangeTaglie;
}
}

View File

@@ -12,7 +12,9 @@ import it.integry.ems_model.utility.UtilityQuery;
import it.integry.ems_model.utility.UtilityString;
import java.lang.reflect.Field;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.util.HashMap;
import java.util.List;

View File

@@ -12,7 +12,8 @@ import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import it.integry.security.utility.CryptoUtils;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
@@ -22,16 +23,16 @@ public class UtentiRules {
public static List<SrlUser> insSrlUser(Connection conn, StbUser stbUser) throws Exception {
List<SrlUser> srlUsers = stbUser.getSrlUser();
String sql = "SELECT cast(count(*) as bit) FROM srl_user WHERE user_name1 = [user_name] AND user_name2 = [user_name]";
sql = sql.replace("[user_name]", UtilityDB.valueToString(stbUser.getUserName()));
sql = sql.replace("[user_name]", UtilityDB.valueToString(stbUser.getUserName()));
boolean existSrl = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
if ((srlUsers == null || srlUsers.size() == 0 ||
Stream.of(stbUser.getSrlUser()).noneMatch(x -> UtilityString.equalsIgnoreCase(x.getUserName2(), stbUser.getUserName()))) &&
!existSrl){
Stream.of(stbUser.getSrlUser()).noneMatch(x -> UtilityString.equalsIgnoreCase(x.getUserName2(), stbUser.getUserName()))) &&
!existSrl) {
SrlUser srlUser =
new SrlUser()
.setUserName1(stbUser.getUserName())
.setUserName2(stbUser.getUserName())
.setFlagAzione("T");
.setUserName1(stbUser.getUserName())
.setUserName2(stbUser.getUserName())
.setFlagAzione("T");
srlUser.setOperation(OperationType.INSERT);
srlUsers.add(srlUser);
return srlUsers;
@@ -43,8 +44,8 @@ public class UtentiRules {
public static List<StbAbil> copyStbAbil(Connection conn, StbUser user) throws Exception {
String sql = String.format(
"SELECT cod_opz, flag_abil, gest_name\n" +
"FROM stb_abil\n" +
"WHERE user_name = (SELECT TOP 1 stb_user.user_name FROM stb_user WHERE flag_attivo = 'S' AND key_group = %s)",
"FROM stb_abil\n" +
"WHERE user_name = (SELECT TOP 1 stb_user.user_name FROM stb_user WHERE flag_attivo = 'S' AND key_group = %s)",
UtilityDB.valueToString(user.getKeyGroup())
);
@@ -62,11 +63,11 @@ public class UtentiRules {
return stbAbils;
}
public static Integer setDefaultFtpPort(Integer ftpType){
if (ftpType == 2 ) {
public static Integer setDefaultFtpPort(Integer ftpType) {
if (ftpType == 2) {
//SFTP
return 22;
} else if (ftpType == 3 ) {
} else if (ftpType == 3) {
//FTPS
return 990;
} else {

View File

@@ -13,6 +13,7 @@ import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.model.ColumnMetadataDTO;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.sync.SyncManager;
import it.integry.ems.user.UtilityUser;
@@ -35,8 +36,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.context.ContextLoader;
import java.io.StringWriter;
import java.sql.*;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -131,7 +132,7 @@ public class EntityProcessor {
if (!overrideEntityChildCheck) this.checkEntityChildsUsage(entity, mdb, requestDataDTO);
if (settingsModel.isEnablePermissionCheck() && !checkUserPermissions(entity,mdb))
if (settingsModel.isEnablePermissionCheck() && !checkUserPermissions(entity, mdb))
throw new InvalidPermissionsException();
if (entity.getOperation() == OperationType.NO_OP) {
@@ -165,7 +166,8 @@ public class EntityProcessor {
private void checkEntityChildsUsage(EntityInterface entityInterface, MultiDBTransactionManager multiDBTransactionManager, RequestDataDTO requestDataDTO) throws Exception {
boolean isMaster = entityPropertyHolder.isEntityMaster(((EntityBase) entityInterface).getClass());;
boolean isMaster = entityPropertyHolder.isEntityMaster(((EntityBase) entityInterface).getClass());
;
OperationType operationType = entityInterface.getOperation();
if (!isMaster && (operationType != OperationType.SELECT_OBJECT && operationType != OperationType.SELECT)) {
@@ -458,7 +460,6 @@ public class EntityProcessor {
RequestDataDTO requestDataDTO) throws Exception {
if (UtilityString.isNullOrEmpty(username) && requestDataDTO != null && requestDataDTO.isValidUsername()) {
username = requestDataDTO.getUsername();
}

View File

@@ -49,7 +49,9 @@ import java.io.StringWriter;
import java.net.InetAddress;
import java.net.SocketTimeoutException;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;

View File

@@ -31,7 +31,8 @@ import java.awt.print.PrinterJob;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
@Service
@Scope("request")

View File

@@ -40,7 +40,9 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.io.*;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.text.SimpleDateFormat;
import java.util.*;

View File

@@ -6,6 +6,7 @@ import it.integry.annotations.PostContextConstruct;
import it.integry.ems.datasource.DataSource;
import it.integry.ems.json.ResponseJSONObjectMapper;
import it.integry.ems.looper.service.LooperService;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.sync.dto.ExportHistoryGroupDTO;
import it.integry.ems.sync.dto.ExportHistoryItemDTO;
@@ -26,7 +27,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.AbstractMap;
@@ -159,7 +159,7 @@ public class AsyncHistoryManager {
for (Field entityChildField : childs) {
try {
Object entityChildRef = entityChildField.get(data);
if(entityChildRef == null) continue;
if (entityChildRef == null) continue;
if (entityChildRef instanceof List) {
for (EntityBase entityChild : (List<EntityBase>) entityChildRef) {

View File

@@ -7,6 +7,7 @@ import it.integry.ems.looper.service.LooperService;
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.Connection;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems_model.base.EntityBase;
@@ -14,7 +15,10 @@ import it.integry.ems_model.entity.StbPublications;
import it.integry.ems_model.entity.StbPublicationsDetail;
import it.integry.ems_model.entity.StbTransactionLog;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.*;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityList;
import it.integry.ems_model.utility.UtilityLocalDate;
import it.integry.ems_model.utility.UtilityString;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.josql.Query;
@@ -23,7 +27,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.context.ContextLoader;
import java.sql.Connection;
import java.util.*;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.stream.Collectors;
@@ -48,7 +51,7 @@ public class AsyncManager {
@PostContextConstruct
public void init() {
if (!UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer()) {
if (true || (!UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer())) {
looperService.add(this::internalCachePublicationsSetup, 5 * 60 * 1000, "sync-setup-cache");
looperService.add(this::consumeToBeSavedQueue, 20 * 1000, "sync-flush-data");
}
@@ -145,7 +148,7 @@ public class AsyncManager {
.setGroupId(transactionGroupId);
stbTransactionLog.setOperation(OperationType.INSERT);
toBeSavedQueue.add(new AbstractMap.SimpleEntry<>(dbName, stbTransactionLog));
connection.addOnPostCommit(()-> toBeSavedQueue.add(new AbstractMap.SimpleEntry<>(dbName, stbTransactionLog)));
return transactionGroupId;
}

View File

@@ -3,7 +3,6 @@ package it.integry.ems.sync.MultiDBTransaction;
import it.integry.ems.datasource.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Savepoint;

View File

@@ -0,0 +1,318 @@
package it.integry.ems.sync.MultiDBTransaction;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.Executor;
public class Connection implements java.sql.Connection {
private final java.sql.Connection connection;
private final List<Runnable> onPostCommit = new ArrayList<>();
private final Logger logger = LogManager.getLogger();
public Connection(java.sql.Connection connection) {
this.connection = connection;
}
@Override
public Statement createStatement() throws SQLException {
return connection.createStatement();
}
@Override
public PreparedStatement prepareStatement(String sql) throws SQLException {
return connection.prepareStatement(sql);
}
@Override
public CallableStatement prepareCall(String sql) throws SQLException {
return connection.prepareCall(sql);
}
@Override
public String nativeSQL(String sql) throws SQLException {
return connection.nativeSQL(sql);
}
@Override
public void setAutoCommit(boolean autoCommit) throws SQLException {
connection.setAutoCommit(autoCommit);
}
@Override
public boolean getAutoCommit() throws SQLException {
return connection.getAutoCommit();
}
@Override
public void commit() throws SQLException {
connection.commit();
if (!onPostCommit.isEmpty()) {
for (Runnable stmt : onPostCommit) {
try {
stmt.run();
} catch (Exception e) {
logger.error(e);
}
}
onPostCommit.clear();
}
}
@Override
public void rollback() throws SQLException {
connection.rollback();
this.onPostCommit.clear();
}
@Override
public void close() throws SQLException {
connection.close();
}
@Override
public boolean isClosed() throws SQLException {
return connection.isClosed();
}
@Override
public DatabaseMetaData getMetaData() throws SQLException {
return connection.getMetaData();
}
@Override
public void setReadOnly(boolean readOnly) throws SQLException {
connection.setReadOnly(readOnly);
}
@Override
public boolean isReadOnly() throws SQLException {
return connection.isReadOnly();
}
@Override
public void setCatalog(String catalog) throws SQLException {
connection.setCatalog(catalog);
}
@Override
public String getCatalog() throws SQLException {
return connection.getCatalog();
}
@Override
public void setTransactionIsolation(int level) throws SQLException {
connection.setTransactionIsolation(level);
}
@Override
public int getTransactionIsolation() throws SQLException {
return connection.getTransactionIsolation();
}
@Override
public SQLWarning getWarnings() throws SQLException {
return connection.getWarnings();
}
@Override
public void clearWarnings() throws SQLException {
connection.clearWarnings();
}
@Override
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
return connection.createStatement(resultSetType, resultSetConcurrency);
}
@Override
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
return connection.prepareStatement(sql, resultSetType, resultSetConcurrency);
}
@Override
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
return connection.prepareCall(sql, resultSetType, resultSetConcurrency);
}
@Override
public Map<String, Class<?>> getTypeMap() throws SQLException {
return connection.getTypeMap();
}
@Override
public void setTypeMap(Map<String, Class<?>> map) throws SQLException {
connection.setTypeMap(map);
}
@Override
public void setHoldability(int holdability) throws SQLException {
connection.setHoldability(holdability);
}
@Override
public int getHoldability() throws SQLException {
return connection.getHoldability();
}
@Override
public Savepoint setSavepoint() throws SQLException {
return connection.setSavepoint();
}
@Override
public Savepoint setSavepoint(String name) throws SQLException {
return connection.setSavepoint(name);
}
@Override
public void rollback(Savepoint savepoint) throws SQLException {
connection.rollback();
}
@Override
public void releaseSavepoint(Savepoint savepoint) throws SQLException {
connection.releaseSavepoint(savepoint);
}
@Override
public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
return connection.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
}
@Override
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
return connection.prepareStatement(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
}
@Override
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
return connection.prepareCall(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
}
@Override
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException {
return connection.prepareStatement(sql, autoGeneratedKeys);
}
@Override
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException {
return connection.prepareStatement(sql, columnIndexes);
}
@Override
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException {
return connection.prepareStatement(sql, columnNames);
}
@Override
public Clob createClob() throws SQLException {
return connection.createClob();
}
@Override
public Blob createBlob() throws SQLException {
return connection.createBlob();
}
@Override
public NClob createNClob() throws SQLException {
return connection.createNClob();
}
@Override
public SQLXML createSQLXML() throws SQLException {
return connection.createSQLXML();
}
@Override
public boolean isValid(int timeout) throws SQLException {
return connection.isValid(timeout);
}
@Override
public void setClientInfo(String name, String value) throws SQLClientInfoException {
connection.setClientInfo(name, value);
}
@Override
public void setClientInfo(Properties properties) throws SQLClientInfoException {
connection.setClientInfo(properties);
}
@Override
public String getClientInfo(String name) throws SQLException {
return connection.getClientInfo(name);
}
@Override
public Properties getClientInfo() throws SQLException {
return connection.getClientInfo();
}
@Override
public Array createArrayOf(String typeName, Object[] elements) throws SQLException {
return connection.createArrayOf(typeName, elements);
}
@Override
public Struct createStruct(String typeName, Object[] attributes) throws SQLException {
return connection.createStruct(typeName, attributes);
}
@Override
public void setSchema(String schema) throws SQLException {
connection.setSchema(schema);
}
@Override
public String getSchema() throws SQLException {
return connection.getSchema();
}
@Override
public void abort(Executor executor) throws SQLException {
connection.abort(executor);
}
@Override
public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException {
connection.setNetworkTimeout(executor, milliseconds);
}
@Override
public int getNetworkTimeout() throws SQLException {
return connection.getNetworkTimeout();
}
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
return connection.unwrap(iface);
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
return connection.isWrapperFor(iface);
}
public static Connection fromConnection(java.sql.Connection conn) {
return new Connection(conn);
}
public java.sql.Connection getConnection() {
return connection;
}
public Connection addOnPostCommit(Runnable onPostCommit) {
this.onPostCommit.add(onPostCommit);
return this;
}
}

View File

@@ -18,7 +18,6 @@ import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;

View File

@@ -25,7 +25,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.ByteArrayOutputStream;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;

View File

@@ -17,7 +17,9 @@ import org.apache.logging.log4j.Logger;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

View File

@@ -20,7 +20,8 @@ import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

View File

@@ -17,7 +17,8 @@ import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.util.ArrayList;
public class UtilityExport {

View File

@@ -30,7 +30,9 @@ import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.security.Security;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

View File

@@ -23,6 +23,7 @@ import it.integry.ems.rules.completing.UniqueKeyRules;
import it.integry.ems.rules.completing.dto.ForeignKeyDTO;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.sync.AsyncManager;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems_model.annotation.*;
import it.integry.ems_model.config.EmsRestConstants;
@@ -1364,11 +1365,12 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter
public void insertEntity() throws Exception {
if (!(connection instanceof SQLServerConnection)) {
java.sql.Connection con = connection.getConnection();
if (!(con instanceof SQLServerConnection)) {
throw new Exception("Impossibile processare una entity su una connessione diversa da SQL Server");
}
SQLServerConnection sqlServerConnection = (SQLServerConnection) connection;
SQLServerConnection sqlServerConnection = (SQLServerConnection) con;
if (nativeSql != null) {
SQLServerPreparedStatement pstm = (SQLServerPreparedStatement) sqlServerConnection.prepareStatement(nativeSql);

View File

@@ -1,12 +1,12 @@
package it.integry.ems_model.base;
import com.fasterxml.jackson.annotation.JsonIgnore;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.exception.EntityException;
import it.integry.ems_model.rulescompleting.DroolsDataCompleting;
import it.integry.ems_model.types.OperationType;
import java.io.IOException;
import java.sql.Connection;
import java.util.List;
public interface EntityInterface {

View File

@@ -6,6 +6,7 @@ import com.google.common.collect.HashBiMap;
import it.integry.ems.dto.EntityHierarchy;
import it.integry.ems.object_storage.minio.MinIOService;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.annotation.*;
import it.integry.ems_model.resolver.SqlFieldHolder;
import it.integry.ems_model.rulescompleting.DroolsDataCompleting;
@@ -26,7 +27,6 @@ import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.sql.Connection;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@@ -291,7 +291,7 @@ public class EntityPropertyHolder {
.map(EntityHierarchy::getChildren)
.flatMap(Collection::stream);
if(filter != null) fieldStream = fieldStream.filter(filter);
if (filter != null) fieldStream = fieldStream.filter(filter);
return fieldStream.collect(Collectors.toList());
}

View File

@@ -6,6 +6,7 @@ import it.integry.ems.rules.completing.ConfigActivityRules;
import it.integry.ems.rules.completing.DocOrdRules;
import it.integry.ems.rules.completing.OrderRules;
import it.integry.ems.rules.completing.dto.DatiPartitaMagDTO;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.business_logic.dto.ActivityCicloProdDTO;
import it.integry.ems_model.business_logic.dto.CommessaDTO;
@@ -25,7 +26,6 @@ import org.json.JSONArray;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

View File

@@ -23,6 +23,10 @@ import org.json.JSONArray;
import java.math.BigDecimal;
import java.math.RoundingMode;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
@@ -378,12 +382,12 @@ public class ProductionBusinessLogic {
partitaMag = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
Integer existLotto = 0;
if (checkExistLotto){
if (checkExistLotto) {
sql = "select COUNT(*)" +
" from dtb_ordt inner join mtb_partita_mag on dtb_ordt.cod_prod = mtb_partita_mag.cod_mart and " +
" dtb_ordt.partita_mag = mtb_partita_mag.partita_mag " +
" where dtb_ordt.gestione = 'L' and" +
" dtb_ordt.data_ord >= dateadd(month, -2, GETDATE()) and dtb_ordt.cod_mdep = " +UtilityDB.valueToString(codMdep) + " and " +
" dtb_ordt.data_ord >= dateadd(month, -2, GETDATE()) and dtb_ordt.cod_mdep = " + UtilityDB.valueToString(codMdep) + " and " +
" dtb_ordt.cod_prod = " + UtilityDB.valueToString(codMart) + " and " +
" dtb_ordt.partita_mag = " + UtilityDB.valueToString(partitaMag);
@@ -414,7 +418,7 @@ public class ProductionBusinessLogic {
if (partitaMagRequired && partitaMag == null) {
throw new Exception("Partita di magazzino obbligatoria, impossibile procedere alla generazione");
} else {
if (existLotto != 0){
if (existLotto != 0) {
dtbOrdr.setPartitaMag(partitaMag);
}
}
@@ -1139,12 +1143,12 @@ public class ProductionBusinessLogic {
"SELECT cod_mdep\n" +
"FROM ( SELECT ISNULL(cod_mdep, '') AS cod_mdep, cod_vdes \n" +
" FROM mtb_depo\n" +
" WHERE cod_anag = "+ UtilityDB.valueToString(codAnag)+"\n" +
" AND (ISNULL(cod_vdes,'') = ISNULL("+ UtilityDB.valueToString(codVdes)+",''))\n" +
" WHERE cod_anag = " + UtilityDB.valueToString(codAnag) + "\n" +
" AND (ISNULL(cod_vdes,'') = ISNULL(" + UtilityDB.valueToString(codVdes) + ",''))\n" +
" UNION ALL\n" +
" SELECT ISNULL(cod_mdep, '') AS cod_mdep, cod_vdes \n" +
" FROM mtb_depo\n" +
" WHERE cod_anag = "+ UtilityDB.valueToString(codAnag)+" and cod_vdes is NULL ) depos \n" +
" WHERE cod_anag = " + UtilityDB.valueToString(codAnag) + " and cod_vdes is NULL ) depos \n" +
" ORDER BY cod_vdes desc ";
codMdep = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);

View File

@@ -8,7 +8,8 @@ import it.integry.ems_model.utility.Query;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
@@ -24,7 +25,7 @@ public class UtilityProduction {
HashMap<String, String> setupOrdProdGest = setup.getSetupSection(conn, classNameOrdProd, "SETUP");
ordProdSetupDTO.setCheckLockProd(UtilityString.isNull(setupOrdProdGest.get("LOCK_PROD"), "S").equalsIgnoreCase("S"));
ordProdSetupDTO.setCheckDepTerzista (UtilityString.isNull(setupOrdProdGest.get("CHECK_DEP_TERZISTA"), "N").equalsIgnoreCase("S"));
ordProdSetupDTO.setCheckDepTerzista(UtilityString.isNull(setupOrdProdGest.get("CHECK_DEP_TERZISTA"), "N").equalsIgnoreCase("S"));
ordProdSetupDTO.setGenAutoCommOrdProd(UtilityString.isNull(setupOrdProdGest.get("GENERA_COMM_ORD_PROD"), "N").equalsIgnoreCase("S"));
ordProdSetupDTO.setFlagDescrizDaOrdine(UtilityString.equalsIgnoreCase(setupOrdProdGest.get("DESCRIZIONE_DA_ORDINE"), "S"));
ordProdSetupDTO.setStatoCommessa(UtilityString.isNull(setupOrdProdGest.get("STATO_COMMESSA"), null));
@@ -44,8 +45,8 @@ public class UtilityProduction {
HashMap<String, String> setupActivity = setup.getSetupSection(conn, classNameOrdProd, "ACTIVITY");
ordProdSetupDTO.setAssegnaAttivita( UtilityString.isNull(setupActivity.get("GENERA_ATTIVITA"), "N").equalsIgnoreCase("S"));
ordProdSetupDTO.setTipoGenerazione( UtilityString.isNull(setupActivity.get("TIPO_GENERAZIONE"), ""));
ordProdSetupDTO.setAssegnaAttivita(UtilityString.isNull(setupActivity.get("GENERA_ATTIVITA"), "N").equalsIgnoreCase("S"));
ordProdSetupDTO.setTipoGenerazione(UtilityString.isNull(setupActivity.get("TIPO_GENERAZIONE"), ""));
HashMap<String, String> setupLottoProd = setup.getSetupSection(conn, classNameOrdProd, "GENERA_LOTTO_PROD");
ordProdSetupDTO.setGenerateLotto(UtilityString.isNull(setupLottoProd.get("GENERA_LOTTO"), "N").equalsIgnoreCase("S"));
@@ -91,10 +92,10 @@ public class UtilityProduction {
return ordProdSetupDTO;
}
private static List<HashMap<String, Object>> getSetupDepo (Connection conn, String gestName, String section) throws SQLException {
private static List<HashMap<String, Object>> getSetupDepo(Connection conn, String gestName, String section) throws SQLException {
String sql =
Query.format("SELECT cod_mdep, key_section, value FROM stb_gest_setup_depo"
+ " WHERE gest_name = %s and section = %s",gestName, section);
Query.format("SELECT cod_mdep, key_section, value FROM stb_gest_setup_depo"
+ " WHERE gest_name = %s and section = %s", gestName, section);
List<HashMap<String, Object>> hashMaps = UtilityDB.executeSimpleQuery(conn, sql);

View File

@@ -1,5 +1,6 @@
package it.integry.ems_model.db;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.annotation.Blob;
import it.integry.ems_model.annotation.Clob;
import it.integry.ems_model.annotation.MapToTable;
@@ -12,7 +13,10 @@ import org.apache.logging.log4j.Logger;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.sql.*;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

View File

@@ -25,6 +25,9 @@ import org.apache.logging.log4j.Logger;
import javax.validation.constraints.NotNull;
import java.lang.reflect.Field;
import java.lang.reflect.Type;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.util.*;
import java.util.stream.Collectors;

View File

@@ -2,6 +2,7 @@ package it.integry.ems_model.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonTypeName;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.annotation.Master;
import it.integry.ems_model.annotation.PK;
import it.integry.ems_model.annotation.SqlField;
@@ -15,7 +16,6 @@ import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;

View File

@@ -1236,9 +1236,13 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
this.idLotto = idLotto;
}
public String getTipoTrasporto() { return tipoTrasporto; }
public String getTipoTrasporto() {
return tipoTrasporto;
}
public void setTipoTrasporto(String tipoTrasporto) { this.tipoTrasporto = tipoTrasporto; }
public void setTipoTrasporto(String tipoTrasporto) {
this.tipoTrasporto = tipoTrasporto;
}
@Override
public String getExplodeKit() {
@@ -1729,7 +1733,7 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
if (this == other)
return true;
if(hashCodeKey() != other.hashCodeKey())
if (hashCodeKey() != other.hashCodeKey())
return false;
return Objects.equals(getCodAnag(), other.getCodAnag()) && Objects.equals(getCodDtip(), other.getCodDtip()) && Objects.equals(getDataDoc(), other.getDataDoc()) && Objects.equals(getNumDoc(), other.getNumDoc()) && Objects.equals(getSerDoc(), other.getSerDoc());

View File

@@ -1,6 +1,7 @@
package it.integry.ems_model.entity;
import com.fasterxml.jackson.annotation.JsonTypeName;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.annotation.Master;
import it.integry.ems_model.annotation.PK;
import it.integry.ems_model.annotation.SqlField;
@@ -13,7 +14,6 @@ import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
import java.math.BigDecimal;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

View File

@@ -1,6 +1,7 @@
package it.integry.ems_model.entity;
import com.fasterxml.jackson.annotation.JsonTypeName;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.annotation.Master;
import it.integry.ems_model.annotation.PK;
import it.integry.ems_model.annotation.SqlField;
@@ -11,8 +12,6 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
import java.sql.Connection;
@Master
@PropertyReactive
@Table(GtbNaziIso.ENTITY)

View File

@@ -8,6 +8,9 @@ import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.IOUtils;
import java.io.IOException;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
public class ResultSetSerializer extends JsonSerializer<ResultSet> {

View File

@@ -1,11 +1,10 @@
package it.integry.ems_model.rules.completing;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.DtbDoct;
import it.integry.ems_model.entity.MtbColt;
import it.integry.ems_model.types.OperationType;
import java.sql.Connection;
public class DocumentExtEntityRules {
public static void completeColliDoc(Connection conn, DtbDoct entity) throws Exception {

View File

@@ -1,6 +1,7 @@
package it.integry.ems_model.rulescompleting;
import it.integry.annotations.PostContextConstruct;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems.utility.UtilityDirs;
import it.integry.ems_model.base.EntityInterface;
@@ -27,7 +28,6 @@ import java.io.ObjectOutputStream;
import java.net.URISyntaxException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.Connection;
@Service
public class DroolsDataCompleting {
@@ -63,75 +63,75 @@ public class DroolsDataCompleting {
public void createKieContainerForProject() throws IOException, ClassNotFoundException, URISyntaxException {
// try {
KieServices kieServices = KieServices.Factory.get();
KieFileSystem kFileSystem = kieServices.newKieFileSystem();
KieServices kieServices = KieServices.Factory.get();
KieFileSystem kFileSystem = kieServices.newKieFileSystem();
String compiledRulesPath = getCompiledDroolsFolder();
String compiledRulesPath = getCompiledDroolsFolder();
String compiledRulesFileName = "compiled_kie_base.ckie";
File compiledDrlFile = new File(compiledRulesPath, compiledRulesFileName);
String compiledRulesFileName = "compiled_kie_base.ckie";
File compiledDrlFile = new File(compiledRulesPath, compiledRulesFileName);
//System.out.println("AIO: " + compiledRulesPath);
//throw new RuntimeException("AIO: " + compiledRulesPath);
//System.out.println("AIO: " + compiledRulesPath);
//throw new RuntimeException("AIO: " + compiledRulesPath);
System.setProperty("drools.dialect.mvel.strict", "false");
System.setProperty("drools.dialect.mvel.strict", "false");
if (!shouldSkipDroolsCompile() || !compiledDrlFile.exists()) {
File directory = new File(compiledRulesPath);
if (!directory.exists())
directory.mkdirs();
if (!shouldSkipDroolsCompile() || !compiledDrlFile.exists()) {
File directory = new File(compiledRulesPath);
if (!directory.exists())
directory.mkdirs();
if(compiledDrlFile.exists())
compiledDrlFile.delete();
if (compiledDrlFile.exists())
compiledDrlFile.delete();
for (String drl : dlrs) {
String resourcePath = pathS + "rules" + pathS + drl;
if (getClass().getResource(resourcePath) != null) {
for (String drl : dlrs) {
String resourcePath = pathS + "rules" + pathS + drl;
if (getClass().getResource(resourcePath) != null) {
try {
Resource resDrl = kieServices
.getResources()
.newClassPathResource(resourcePath)
.setResourceType(ResourceType.DRL);
try {
Resource resDrl = kieServices
.getResources()
.newClassPathResource(resourcePath)
.setResourceType(ResourceType.DRL);
kFileSystem.write(resDrl);
} catch (Exception ex) {
File fileDRL = new File(getClass().getResource(pathS + "rules" + pathS + drl).toURI());
if (fileDRL.exists()) {
Resource resDrl = kieServices.getResources().
newFileSystemResource(fileDRL).setResourceType(ResourceType.DRL);
kFileSystem.write(resDrl);
} catch (Exception ex) {
File fileDRL = new File(getClass().getResource(pathS + "rules" + pathS + drl).toURI());
if (fileDRL.exists()) {
Resource resDrl = kieServices.getResources().
newFileSystemResource(fileDRL).setResourceType(ResourceType.DRL);
kFileSystem.write(resDrl);
} else {
System.out.println("Il file di regole \"" + drl + "\" non è stato trovato");
}
} else {
System.out.println("Il file di regole \"" + drl + "\" non è stato trovato");
}
} else {
logger.warn("Il file di regole \"" + drl + "\" non è stato trovato");
}
} else {
logger.warn("Il file di regole \"" + drl + "\" non è stato trovato");
}
KieBuilder kbuilder = kieServices.newKieBuilder(kFileSystem);
kbuilder.buildAll();
if (kbuilder.getResults().hasMessages(org.kie.api.builder.Message.Level.ERROR)) {
throw new RuntimeException("Build time Errors: " + kbuilder.getResults().toString());
}
KieContainer kieContainer = kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId());
kieBase = kieContainer.getKieBase();
serialize(kieBase, compiledDrlFile);
} else {
kieBase = deserialize(KieBase.class, compiledDrlFile);
}
KieBuilder kbuilder = kieServices.newKieBuilder(kFileSystem);
kbuilder.buildAll();
if (kbuilder.getResults().hasMessages(org.kie.api.builder.Message.Level.ERROR)) {
throw new RuntimeException("Build time Errors: " + kbuilder.getResults().toString());
}
KieContainer kieContainer = kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId());
kieBase = kieContainer.getKieBase();
serialize(kieBase, compiledDrlFile);
} else {
kieBase = deserialize(KieBase.class, compiledDrlFile);
}
// } catch (Exception ex) {
// logger.error("Drools build", ex);
// }

View File

@@ -13,7 +13,9 @@ import org.springframework.stereotype.Service;
import org.springframework.web.context.ContextLoader;
import java.math.BigDecimal;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -185,7 +187,7 @@ public class SetupGest {
return getSetupSection(connection, gestName, section, null);
}
///DEPOSITO
/// DEPOSITO
public boolean getSetupDepoBoolean(Connection conn, String gestName, String section, String keySection, String codMdep) throws Exception {
return "S".equalsIgnoreCase(getSetupDepo(conn, gestName, section, keySection, codMdep));
}
@@ -224,7 +226,7 @@ public class SetupGest {
return stringReturn;
}
public HashMap<String, String> getSetupSectionDepo(Connection connection, String gestName, String section, String codMdep) throws Exception {
public HashMap<String, String> getSetupSectionDepo(Connection connection, String gestName, String section, String codMdep) throws Exception {
String query = "SELECT key_section, value FROM stb_gest_setup_depo"
+ " WHERE gest_name = " + UtilityDB.valueToString(gestName)
+ " AND section = " + UtilityDB.valueToString(section)
@@ -375,7 +377,7 @@ public class SetupGest {
return new JSONArray(jsonString);
}
public boolean getSetupDetBoolean(String gestName, String section, String keySection,String colRif) throws Exception {
public boolean getSetupDetBoolean(String gestName, String section, String keySection, String colRif) throws Exception {
return "S".equalsIgnoreCase(getSetupDet(gestName, section, keySection, colRif));
}
}

View File

@@ -5,6 +5,7 @@ import com.microsoft.sqlserver.jdbc.SQLServerResultSet;
import com.microsoft.sqlserver.jdbc.SQLServerStatement;
import it.integry.common.var.CommonConstants;
import it.integry.ems.expansion.RunnableArgs;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.annotation.EntityChild;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.base.EntityPropertyHolder;
@@ -21,6 +22,9 @@ import javax.annotation.Nullable;
import javax.validation.constraints.NotNull;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.time.Instant;
@@ -84,7 +88,7 @@ public class UtilityDB {
statement.close();
}
public static List<? extends EntityBase> reloadOnlyDbRow(Connection conn, EntityBase testata, List<? extends EntityBase> rows, Field field) throws Exception {
public static List<? extends EntityBase> reloadOnlyDbRow(it.integry.ems.sync.MultiDBTransaction.Connection conn, EntityBase testata, List<? extends EntityBase> rows, Field field) throws Exception {
ParameterizedType pType = (ParameterizedType) field.getGenericType();
Class<? extends EntityBase> rowClass = (Class<? extends EntityBase>) pType.getActualTypeArguments()[0];

View File

@@ -9,7 +9,9 @@ import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.time.LocalDate;

View File

@@ -27,7 +27,9 @@ import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import java.io.*;
import java.math.BigDecimal;
import java.sql.Connection;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;

View File

@@ -2,6 +2,7 @@ package it.integry.firebase.service;
import com.annimon.stream.Stream;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems_model.entity.WtbDeviceTokenTopic;
import it.integry.ems_model.entity.WtbUserDeviceToken;
@@ -13,7 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

View File

@@ -6,7 +6,7 @@ import it.integry.ems_model.entity.*
import it.integry.ems_model.base.EntityBase
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
global Connection conn
global String username

View File

@@ -7,7 +7,7 @@ import it.integry.ems_model.base.EntityBase
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import it.integry.ems_model.types.OperationType
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
global Connection conn
global String username

View File

@@ -6,7 +6,7 @@ import it.integry.ems_model.entity.*
import it.integry.ems_model.base.EntityBase
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.service.SetupGest
global Connection conn

View File

@@ -6,7 +6,7 @@ import it.integry.ems_model.entity.*
import it.integry.ems_model.base.EntityBase
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
global Connection conn
global String username

View File

@@ -6,7 +6,7 @@ import it.integry.ems_model.entity.*
import it.integry.ems_model.base.EntityBase
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
global Connection conn
global String username

View File

@@ -6,7 +6,7 @@ import it.integry.ems_model.entity.*
import it.integry.ems_model.base.EntityBase
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.types.OperationType
global Connection conn

View File

@@ -6,7 +6,7 @@ import it.integry.ems_model.entity.*
import it.integry.ems_model.base.EntityBase
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.types.OperationType
global Connection conn

View File

@@ -6,7 +6,7 @@ import it.integry.ems_model.entity.*
import it.integry.ems_model.base.EntityBase
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.types.OperationType
import it.integry.ems_model.utility.UtilityString
import it.integry.ems_model.utility.UtilityDB;

View File

@@ -7,7 +7,7 @@ import it.integry.ems_model.base.EntityBase
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import it.integry.ems_model.types.OperationType
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
import org.drools.core.util.bitmask.LongBitMask
import it.integry.ems.utility.UtilityEntity
import it.integry.ems_model.utility.UtilityDB

View File

@@ -7,7 +7,7 @@ import it.integry.ems_model.entity.JtbLott
import it.integry.ems_model.base.EntityBase
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
global Connection conn
global String username

View File

@@ -7,7 +7,7 @@ import it.integry.ems_model.base.EntityBase
import it.integry.ems_model.entity.common.*
import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import java.sql.Connection
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.utility.UtilityDB
import it.integry.ems_model.utility.UtilityDate
import it.integry.ems_model.utility.UtilityString

Some files were not shown because too many files have changed in this diff Show More