Merge branch 'master' into develop

This commit is contained in:
2024-04-03 12:16:28 +02:00
4 changed files with 78 additions and 28 deletions

View File

@@ -108,6 +108,7 @@ public class EmsCoreContext implements ApplicationListener<ContextRefreshedEvent
dispatchPostWebServerConstruct(multiDBTransactionManager); dispatchPostWebServerConstruct(multiDBTransactionManager);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
logger.error("EmsCoreContext.onPostDBLoaded", e); logger.error("EmsCoreContext.onPostDBLoaded", e);
} }
} }

View File

@@ -1,6 +1,7 @@
package it.integry.ems.menu.service; package it.integry.ems.menu.service;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement;
import it.integry.annotations.PostContextAutowired; import it.integry.annotations.PostContextAutowired;
import it.integry.annotations.PostContextConstruct; import it.integry.annotations.PostContextConstruct;
import it.integry.ems.menu.MenuStaticCreator; import it.integry.ems.menu.MenuStaticCreator;
@@ -13,10 +14,7 @@ import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityDebug; import it.integry.ems.utility.UtilityDebug;
import it.integry.ems.utility.UtilityDirs; import it.integry.ems.utility.UtilityDirs;
import it.integry.ems_model.entity.Azienda; import it.integry.ems_model.entity.*;
import it.integry.ems_model.entity.StbMenu;
import it.integry.ems_model.entity.StbMenuOpz;
import it.integry.ems_model.entity.StbTipoAzienda;
import it.integry.ems_model.types.OperationType; import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB; import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityLocalDate; import it.integry.ems_model.utility.UtilityLocalDate;
@@ -68,6 +66,8 @@ public class MenuConfigurationService {
throw ex; throw ex;
} }
} }
logger.debug(MenuConfigurationService.class.getSimpleName() + ": Fine refresh menu");
} }
private boolean isHistoryDB(AdvancedDataSource advancedDataSource) throws Exception { private boolean isHistoryDB(AdvancedDataSource advancedDataSource) throws Exception {
@@ -103,10 +103,30 @@ public class MenuConfigurationService {
"DELETE FROM stb_tipo_azienda", "DELETE FROM stb_tipo_azienda",
"DELETE FROM stb_menu_opz"); "DELETE FROM stb_menu_opz");
for (StbMenuOpzDTO stbMenuOpzDto : menuConfig.getStbMenuOpz()) { String insertStbMenuOpzSQL = "INSERT INTO " + StbMenuOpz.ENTITY + " (cod_opz, " +
StbMenuOpz stbMenuOpz = stbMenuOpzDto.toEntity(); "descrizione, gest_name, entity_name, picture_menu, picture_select, object_type, flag_printer_setup, parameter, note, open_type, is_deprecated)" +
stbMenuOpz.setOperation(OperationType.INSERT); " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
stbMenuOpz.manageWithParentConnection(connection);
try (SQLServerPreparedStatement insertBulkPs = (SQLServerPreparedStatement) connection.prepareStatement(insertStbMenuOpzSQL)) {
for (StbMenuOpzDTO stbMenuOpzDto : menuConfig.getStbMenuOpz()) {
insertBulkPs.setString(1, stbMenuOpzDto.getCodOpz());
insertBulkPs.setString(2, stbMenuOpzDto.getDescrizione());
insertBulkPs.setString(3, stbMenuOpzDto.getGestName());
insertBulkPs.setString(4, stbMenuOpzDto.getEntityName());
insertBulkPs.setString(5, stbMenuOpzDto.getPictureMenu());
insertBulkPs.setString(6, stbMenuOpzDto.getPictureSelect());
insertBulkPs.setString(7, stbMenuOpzDto.getObjectType());
insertBulkPs.setString(8, stbMenuOpzDto.getFlagPrinterSetup());
insertBulkPs.setString(9, stbMenuOpzDto.getParameter());
insertBulkPs.setString(10, stbMenuOpzDto.getNote());
insertBulkPs.setString(11, stbMenuOpzDto.getOpenType());
insertBulkPs.setString(12, stbMenuOpzDto.getIsDeprecated());
insertBulkPs.addBatch();
}
insertBulkPs.executeLargeBatch();
} }
for (StbTipoAziendaDTO stbTipoAziendaDto : menuConfig.getStbTipoAzienda()) { for (StbTipoAziendaDTO stbTipoAziendaDto : menuConfig.getStbTipoAzienda()) {
@@ -119,12 +139,39 @@ public class MenuConfigurationService {
if (stbMenus == null) if (stbMenus == null)
logger.error("Nessuna configurazione trovata per il menu " + azienda.getTipoAzienda() + " di " + azienda.getNomeDitta()); logger.error("Nessuna configurazione trovata per il menu " + azienda.getTipoAzienda() + " di " + azienda.getNomeDitta());
else else {
for (StbMenuDTO stbMenuDto : stbMenus) { String insertStbMenuSql = "INSERT INTO " + StbMenu.ENTITY + " (cod_opz, descrizione, cod_parent, pos, tipo_azienda, flag_attivo, url_descrizione, " +
StbMenu stbMenu = stbMenuDto.toEntity(); "pos_tipo_azienda, pos_cliente, descrizione_estesa) " +
stbMenu.setOperation(OperationType.INSERT); "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
stbMenu.manageWithParentConnection(connection);
try (SQLServerPreparedStatement insertBulkPs = (SQLServerPreparedStatement) connection.prepareStatement(insertStbMenuSql)) {
for (StbMenuDTO stbMenuDto : stbMenus) {
insertBulkPs.setString(1, stbMenuDto.getCodOpz());
insertBulkPs.setString(2, stbMenuDto.getDescrizione());
insertBulkPs.setString(3, stbMenuDto.getCodParent());
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());
else insertBulkPs.setObject(8, null);
if(stbMenuDto.getPosCliente() != null) insertBulkPs.setInt(9, stbMenuDto.getPosCliente());
else insertBulkPs.setObject(9, null);
insertBulkPs.setString(10, stbMenuDto.getDescrizioneEstesa());
insertBulkPs.addBatch();
}
insertBulkPs.executeLargeBatch();
} }
}
executeStatement(connection, "ALTER TABLE azienda ADD CONSTRAINT FK_azienda_stb_tipo_azienda FOREIGN KEY (tipo_azienda) REFERENCES stb_tipo_azienda ( tipo_azienda )", executeStatement(connection, "ALTER TABLE azienda ADD CONSTRAINT FK_azienda_stb_tipo_azienda FOREIGN KEY (tipo_azienda) REFERENCES stb_tipo_azienda ( tipo_azienda )",

View File

@@ -26,7 +26,7 @@ import java.util.List;
@Service @Service
@Scope("request") @Scope("request")
public class MultiDBTransactionManager implements AutoCloseable{ public class MultiDBTransactionManager implements AutoCloseable {
private final static Logger logger = LogManager.getLogger(); private final static Logger logger = LogManager.getLogger();
@@ -248,19 +248,20 @@ public class MultiDBTransactionManager implements AutoCloseable{
} }
public void closeAll() throws Exception { public void closeAll() throws Exception {
for (AdvancedDataSource advancedDataSource : dbDatasources) { if (dbDatasources != null && !dbDatasources.isEmpty())
if (!advancedDataSource.isClosed()) { for (AdvancedDataSource advancedDataSource : dbDatasources) {
if (requestData != null && requestData.getRequestURI() != null) { if (!advancedDataSource.isClosed()) {
String methodName = " [" + requestData.getRequestURI() + "]"; if (requestData != null && requestData.getRequestURI() != null) {
if (shouldPrintLog(requestData.getRequestURI())) String methodName = " [" + requestData.getRequestURI() + "]";
logger.debug("Closing automatically: " + advancedDataSource.getDataSource().getProfile() + " (#" + advancedDataSource.getDataSource().getSessionID() + ")" + methodName); if (shouldPrintLog(requestData.getRequestURI()))
} else if (enableLog) { logger.debug("Closing automatically: " + advancedDataSource.getDataSource().getProfile() + " (#" + advancedDataSource.getDataSource().getSessionID() + ")" + methodName);
logger.debug("Closing manually: " + advancedDataSource.getDataSource().getProfile() + " (#" + advancedDataSource.getDataSource().getSessionID() + ")"); } else if (enableLog) {
logger.debug("Closing manually: " + advancedDataSource.getDataSource().getProfile() + " (#" + advancedDataSource.getDataSource().getSessionID() + ")");
}
advancedDataSource.commit();
advancedDataSource.close();
} }
advancedDataSource.commit();
advancedDataSource.close();
} }
}
} }

View File

@@ -5,6 +5,7 @@ import it.integry.ems_model.base.EntityBase;
import org.kie.api.definition.type.PropertyReactive; import org.kie.api.definition.type.PropertyReactive;
import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonTypeName;
import javax.persistence.Id; import javax.persistence.Id;
import java.time.LocalDate;
import java.util.Date; import java.util.Date;
@PropertyReactive @PropertyReactive
@@ -27,7 +28,7 @@ public class MtbColrInfoProd extends EntityBase {
@ImportFromParent @ImportFromParent
@SqlField(value = "data_collo") @SqlField(value = "data_collo")
private Date dataCollo; private LocalDate dataCollo;
@ImportFromParent @ImportFromParent
@SqlField(value = "gestione") @SqlField(value = "gestione")
@@ -57,11 +58,11 @@ public class MtbColrInfoProd extends EntityBase {
return this; return this;
} }
public Date getDataCollo() { public LocalDate getDataCollo() {
return dataCollo; return dataCollo;
} }
public MtbColrInfoProd setDataCollo(Date dataCollo) { public MtbColrInfoProd setDataCollo(LocalDate dataCollo) {
this.dataCollo = dataCollo; this.dataCollo = dataCollo;
return this; return this;
} }