Fix su menu

This commit is contained in:
2025-03-06 13:36:49 +01:00
parent 7a1098559c
commit ee41ea2e1a

View File

@@ -12,6 +12,7 @@ import it.integry.ems.menu.dto.StbTipoAziendaDTO;
import it.integry.ems.service.MailService;
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.utility.UtilityDirs;
import it.integry.ems_model.entity.Azienda;
@@ -27,9 +28,6 @@ import org.springframework.stereotype.Service;
import java.io.IOException;
import java.net.URL;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
@@ -105,7 +103,10 @@ public class MenuConfigurationService {
private void internalRefresh(Connection connection, MenuConfigDTO menuConfig, boolean forceRefresh) throws Exception {
final Azienda azienda = Azienda.getDefaultAzienda(connection);
int lastMenuUpd = Integer.parseInt(azienda.getLastUpgDbMenu().replace("QM", ""));
if (azienda.getTipoAzienda() == null)
return;
final long lastMenuUpd = Long.parseLong(azienda.getLastUpgDbMenu().replace("QM", ""));
if (!forceRefresh && lastMenuUpd > 0 && lastMenuUpd >= menuConfig.getVersion())
return;
@@ -198,6 +199,13 @@ public class MenuConfigurationService {
}
}
short aziendaUpdDbColumnLength = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection,
"SELECT COL_LENGTH('azienda','last_upg_db_menu') AS column_length");
if (aziendaUpdDbColumnLength != 16) {
executeStatement(connection, "ALTER TABLE azienda ALTER COLUMN last_upg_db_menu VARCHAR(16)");
}
executeStatement(connection, "ALTER TABLE azienda ADD CONSTRAINT FK_azienda_stb_tipo_azienda FOREIGN KEY (tipo_azienda) REFERENCES stb_tipo_azienda ( tipo_azienda )",
"DELETE FROM stb_abil WHERE cod_opz not in (select cod_opz from stb_menu_opz )",
"INSERT INTO stb_Abil SELECT opz2Abil.cod_parent AS cod_opz, opz2Abil.user_name, 'S' flag_Abil, NULL gest_name\n" +
@@ -213,7 +221,7 @@ public class MenuConfigurationService {
" AND abil.flag_Abil <> 'N') Opz2Abil\n" +
" LEFT OUTER JOIN stb_Abil ON stb_Abil.cod_opz = Opz2Abil.cod_parent AND stb_abil.user_name = Opz2Abil.user_name\n" +
"WHERE stb_abil.cod_opz IS NULL",
"UPDATE azienda SET last_upg_db_menu = " + UtilityDB.valueToString(menuConfig.getVersion()));
"UPDATE azienda SET last_upg_db_menu = " + UtilityDB.valueToString(String.valueOf(menuConfig.getVersion())));
connection.commit();
} catch (SQLException e) {