Fix su menu e date

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

View File

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

View File

@@ -1,6 +1,7 @@
package it.integry.ems.menu.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement;
import it.integry.annotations.PostContextAutowired;
import it.integry.annotations.PostContextConstruct;
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.utility.UtilityDebug;
import it.integry.ems.utility.UtilityDirs;
import it.integry.ems_model.entity.Azienda;
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.entity.*;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityLocalDate;
@@ -68,6 +66,8 @@ public class MenuConfigurationService {
throw ex;
}
}
logger.debug(MenuConfigurationService.class.getSimpleName() + ": Fine refresh menu");
}
private boolean isHistoryDB(AdvancedDataSource advancedDataSource) throws Exception {
@@ -103,10 +103,30 @@ public class MenuConfigurationService {
"DELETE FROM stb_tipo_azienda",
"DELETE FROM stb_menu_opz");
String insertStbMenuOpzSQL = "INSERT INTO " + StbMenuOpz.ENTITY + " (cod_opz, " +
"descrizione, gest_name, entity_name, picture_menu, picture_select, object_type, flag_printer_setup, parameter, note, open_type, is_deprecated)" +
" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
try (SQLServerPreparedStatement insertBulkPs = (SQLServerPreparedStatement) connection.prepareStatement(insertStbMenuOpzSQL)) {
for (StbMenuOpzDTO stbMenuOpzDto : menuConfig.getStbMenuOpz()) {
StbMenuOpz stbMenuOpz = stbMenuOpzDto.toEntity();
stbMenuOpz.setOperation(OperationType.INSERT);
stbMenuOpz.manageWithParentConnection(connection);
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()) {
@@ -119,11 +139,38 @@ public class MenuConfigurationService {
if (stbMenus == null)
logger.error("Nessuna configurazione trovata per il menu " + azienda.getTipoAzienda() + " di " + azienda.getNomeDitta());
else
else {
String insertStbMenuSql = "INSERT INTO " + StbMenu.ENTITY + " (cod_opz, descrizione, cod_parent, pos, tipo_azienda, flag_attivo, url_descrizione, " +
"pos_tipo_azienda, pos_cliente, descrizione_estesa) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
try (SQLServerPreparedStatement insertBulkPs = (SQLServerPreparedStatement) connection.prepareStatement(insertStbMenuSql)) {
for (StbMenuDTO stbMenuDto : stbMenus) {
StbMenu stbMenu = stbMenuDto.toEntity();
stbMenu.setOperation(OperationType.INSERT);
stbMenu.manageWithParentConnection(connection);
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();
}
}

View File

@@ -26,7 +26,7 @@ import java.util.List;
@Service
@Scope("request")
public class MultiDBTransactionManager implements AutoCloseable{
public class MultiDBTransactionManager implements AutoCloseable {
private final static Logger logger = LogManager.getLogger();
@@ -248,6 +248,7 @@ public class MultiDBTransactionManager implements AutoCloseable{
}
public void closeAll() throws Exception {
if (dbDatasources != null && !dbDatasources.isEmpty())
for (AdvancedDataSource advancedDataSource : dbDatasources) {
if (!advancedDataSource.isClosed()) {
if (requestData != null && requestData.getRequestURI() != null) {

View File

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