Gestito update gest setup e cancellazione da stb_gest_setup_depo e wtb_gest_setup_user nelle migration

This commit is contained in:
2024-08-13 13:06:05 +02:00
parent e64a3821b8
commit e33ac3f0cc
2 changed files with 135 additions and 36 deletions

View File

@@ -330,17 +330,46 @@ public abstract class BaseMigration implements MigrationModelInterface {
} }
protected void updateSetupValue(String gestName, String section, String keySection, String newValue) throws Exception { protected void updateSetupValue(String gestName, String section, String keySection, String newValue) throws Exception {
this.updateSetupValue(gestName, section, keySection, newValue, null, null, null,
null, null, null, null, null, null, null);
}
protected void updateSetupValue(String gestName, String section, String keySection, String newValue, String description, Boolean flagSync,
String codQuery, Boolean flagUserView, Boolean flagSetupDepo, Boolean flagSetupUserWeb,
Boolean flagTipoJson, Boolean flagTipoColore, String tipoSetup, Boolean flagMultiValue) throws Exception {
this.updateSetupValue(gestName, section, keySection, newValue, description, flagSync, codQuery, flagUserView, flagSetupDepo,
flagSetupUserWeb, flagTipoJson, flagTipoColore, tipoSetup, flagMultiValue, null);
}
protected void updateSetupValue(String gestName, String section, String keySection, String newValue, String description, Boolean flagSync,
String codQuery, Boolean flagUserView, Boolean flagSetupDepo, Boolean flagSetupUserWeb,
Boolean flagTipoJson, Boolean flagTipoColore, String tipoSetup, Boolean flagMultiValue,
String query) throws Exception {
if (!UtilityString.isNullOrEmpty(query) && UtilityString.isNullOrEmpty(codQuery)) {
codQuery = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(),
Query.format("SELECT cod_query FROM stb_gest_setup_query WHERE query_default = %s", query));
}
StbGestSetup stbGestSetup = new StbGestSetup() StbGestSetup stbGestSetup = new StbGestSetup()
.setGestName(gestName) .setGestName(gestName)
.setSection(section) .setSection(section)
.setKeySection(keySection) .setKeySection(keySection)
.setValue(newValue); .setValue(newValue)
.setDescription(description)
.setFlagSync(flagSync ? "S" : "N")
.setCodQuery(codQuery)
.setFlagUserView(flagUserView ? "S" : "N")
.setFlagSetupDepo(flagSetupDepo ? "S" : "N")
.setFlagSetupUserWeb(flagSetupUserWeb ? "S" : "N")
.setFlagTipoJson(flagTipoJson ? "S" : "N")
.setFlagTipoColore(flagTipoColore ? "S" : "N")
.setTipoSetup(tipoSetup)
.setFlagMultiValue(flagMultiValue);
stbGestSetup.setOperation(OperationType.UPDATE); stbGestSetup.setOperation(OperationType.UPDATE);
stbGestSetup.manageWithParentConnection(advancedDataSource.getConnection()); stbGestSetup.manageWithParentConnection(advancedDataSource.getConnection());
} }
protected void addAutomatedOperation(BaseScheduledOperationDTO operation) { protected void addAutomatedOperation(BaseScheduledOperationDTO operation) {
new Thread(() -> { new Thread(() -> {
try { try {

View File

@@ -7,6 +7,8 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.system.dto.SqlObjectDTO; import it.integry.ems.system.dto.SqlObjectDTO;
import it.integry.ems_model.config.EmsRestConstants; import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.entity.StbGestSetup; import it.integry.ems_model.entity.StbGestSetup;
import it.integry.ems_model.entity.StbGestSetupDepo;
import it.integry.ems_model.entity.WtbGestSetupUser;
import it.integry.ems_model.types.OperationType; import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.*; import it.integry.ems_model.utility.*;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
@@ -97,60 +99,119 @@ public class SystemMigrationService {
" public void up() throws Exception {\n" + " public void up() throws Exception {\n" +
" if (isHistoryDB())\n" + " if (isHistoryDB())\n" +
" return;\n" + " return;\n" +
"\n" +
"\n"); "\n");
for (StbGestSetup setup : entityBaseList) {
for (StbGestSetup setup:entityBaseList){
String operation; String operation;
if (setup.getOperation() == OperationType.DELETE) { if (setup.getOperation() == OperationType.DELETE) {
operation = formatSetup("deleteSetup(%s, %s, %s);", setup.getGestName(), setup.getSection(), setup.getKeySection()); operation = this.deleteFromGestSetupTableOperation(
StbGestSetupDepo.ENTITY,
setup.getGestName(),
setup.getSection(),
setup.getKeySection()
);
classBuilder.append("\t\t" + operation) classBuilder.append("\n").append(" ").append(operation)
.append("\r\n"); .append("\r\n");
} if (setup.getOperation() == OperationType.UPDATE) {
operation = formatSetup("updateSetupValue(%s, %s, %s, %s);", setup.getGestName(), setup.getSection(), setup.getKeySection(), setup.getValue());
classBuilder.append("\t\t" + operation) operation = this.deleteFromGestSetupTableOperation(
WtbGestSetupUser.ENTITY,
setup.getGestName(),
setup.getSection(),
setup.getKeySection()
);
classBuilder.append("\n").append(" ").append(operation)
.append("\r\n"); .append("\r\n");
operation = formatSetup("\ndeleteSetup(%s, %s, %s);", setup.getGestName(), setup.getSection(), setup.getKeySection());
classBuilder.append(" ").append(operation)
.append("\r\n");
} else if (setup.getOperation() == OperationType.UPDATE) {
operation = formatSetup(
"updateSetupValue(%s, %s, %s, %s,\n%s, %s, %s, %s, %s, %s,\n%s, %s, %s, %s, %s);",
setup.getGestName(),
setup.getSection(),
setup.getKeySection(),
setup.getValue(),
setup.getDescription(),
UtilityString.equalsIgnoreCase(setup.getFlagSync(), "S"),
setup.getCodQuery(),
UtilityString.equalsIgnoreCase(setup.getFlagUserView(), "S"),
UtilityString.equalsIgnoreCase(setup.getFlagSetupDepo(), "S"),
UtilityString.equalsIgnoreCase(setup.getFlagSetupUserWeb(), "S"),
UtilityString.equalsIgnoreCase(setup.getFlagTipoJson(), "S"),
UtilityString.equalsIgnoreCase(setup.getFlagTipoColore(), "S"),
setup.getTipoSetup(),
setup.getFlagMultiValue() != null && setup.getFlagMultiValue(),
setup.getQueryDefault()
);
classBuilder.append(" ").append(operation)
.append("\r\n");
if (setup.getFlagSetupDepo().equalsIgnoreCase("N")) {
operation = this.deleteFromGestSetupTableOperation(
StbGestSetupDepo.ENTITY,
setup.getGestName(),
setup.getSection(),
setup.getKeySection()
);
classBuilder.append("\n").append(" ").append(operation)
.append("\r\n");
}
if (setup.getFlagSetupUserWeb().equalsIgnoreCase("N")) {
operation = this.deleteFromGestSetupTableOperation(
WtbGestSetupUser.ENTITY,
setup.getGestName(),
setup.getSection(),
setup.getKeySection()
);
classBuilder.append("\n").append(" ").append(operation)
.append("\r\n");
}
} else { } else {
if (setup.getOperation() == OperationType.DELETE_THEN_INSERT) { if (setup.getOperation() == OperationType.DELETE_THEN_INSERT) {
String keySection = UtilityHashMap.getValueIfExists(setup.getOldPk(), "key_section"); String keySection = UtilityHashMap.getValueIfExists(setup.getOldPk(), "key_section");
operation = formatSetup("deleteSetup(%s, %s, %s);", setup.getGestName(), setup.getSection(), keySection); operation = formatSetup("deleteSetup(%s, %s, %s);", setup.getGestName(), setup.getSection(), keySection);
classBuilder.append("\t\t" + operation) classBuilder.append(" ").append(operation)
.append("\r\n"); .append("\r\n");
} }
if (!UtilityString.isNullOrEmpty(setup.getQueryDefault())){ if (!UtilityString.isNullOrEmpty(setup.getQueryDefault())) {
operation = operation =
formatSetup( formatSetup(
"createSetupQuery(%s, %s, %s);", "createSetupQuery(%s, %s, %s);",
setup.getCodQuery(),setup.getCodQuery(),setup.getQueryDefault()); setup.getCodQuery(), setup.getCodQuery(), setup.getQueryDefault());
classBuilder.append("\t\t" + operation) classBuilder.append(" ").append(operation)
.append("\r\n"); .append("\r\n");
} }
operation = operation =
formatSetup( formatSetup(
"createSetup(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);", "createSetup(%s, %s, %s, %s,\n%s, %s, %s, %s, %s,\n%s, %s, %s, %s, %s, %s);",
setup.getGestName(), setup.getGestName(),
setup.getSection(), setup.getSection(),
setup.getKeySection(), setup.getKeySection(),
setup.getValue(), setup.getValue(),
setup.getDescription(), setup.getDescription(),
setup.getFlagSync().equalsIgnoreCase("S"), UtilityString.equalsIgnoreCase(setup.getFlagSync(), "S"),
setup.getCodQuery(), setup.getCodQuery(),
setup.getFlagUserView().equalsIgnoreCase("S"), UtilityString.equalsIgnoreCase(setup.getFlagUserView(), "S"),
setup.getFlagSetupDepo().equalsIgnoreCase("S"), UtilityString.equalsIgnoreCase(setup.getFlagSetupDepo(), "S"),
setup.getFlagSetupUserWeb().equalsIgnoreCase("S"), UtilityString.equalsIgnoreCase(setup.getFlagSetupUserWeb(), "S"),
setup.getFlagTipoJson().equalsIgnoreCase("S"), UtilityString.equalsIgnoreCase(setup.getFlagTipoJson(), "S"),
UtilityString.equalsIgnoreCase(setup.getFlagTipoColore(),"S"), UtilityString.equalsIgnoreCase(setup.getFlagTipoColore(), "S"),
setup.getTipoSetup(), setup.getTipoSetup(),
setup.getFlagMultiValue()==null?false:setup.getFlagMultiValue(), setup.getFlagMultiValue() != null && setup.getFlagMultiValue(),
setup.getQueryDefault() ); setup.getQueryDefault());
classBuilder.append("\t\t" + operation) classBuilder.append(" ").append(operation)
.append("\r\n"); .append("\r\n");
} }
} }
@@ -171,11 +232,13 @@ public class SystemMigrationService {
final String migrationsJavaPath = baseProjectPath + "java\\it\\integry\\ems\\migration\\model\\"; final String migrationsJavaPath = baseProjectPath + "java\\it\\integry\\ems\\migration\\model\\";
final String migrationsJavaFile = migrationsJavaPath + migrationClassName + ".java"; final String migrationsJavaFile = migrationsJavaPath + migrationClassName + ".java";
writeContentToFile(migrationsJavaFile, classBuilder.toString(), true); writeContentToFile(migrationsJavaFile, classBuilder.toString(), true);
logger.info(String.format("Created migration file: %s", migrationClassName));
} }
private static String formatSetup(String string, Object... params) { private static String formatSetup(String string, Object... params) {
String[] formattedParams = new String[params.length]; String[] formattedParams = new String[params.length];
for(int i = 0; i < params.length; i++) { for (int i = 0; i < params.length; i++) {
if (params[i] == null || params[i].equals(EmsRestConstants.NULL)) { if (params[i] == null || params[i].equals(EmsRestConstants.NULL)) {
formattedParams[i] = "null"; formattedParams[i] = "null";
} else { } else {
@@ -230,8 +293,6 @@ public class SystemMigrationService {
} }
public void createMigrationFileFromSqlObjects(List<SqlObjectDTO> sqlObjects) throws IOException { public void createMigrationFileFromSqlObjects(List<SqlObjectDTO> sqlObjects) throws IOException {
String migrationClassName = "Migration_" + CommonConstants.TIMESTAMP_FORMATTER.format(UtilityLocalDate.getNowTime()); String migrationClassName = "Migration_" + CommonConstants.TIMESTAMP_FORMATTER.format(UtilityLocalDate.getNowTime());
@@ -258,10 +319,10 @@ public class SystemMigrationService {
String definition = sqlObject.getDefinition().trim(); String definition = sqlObject.getDefinition().trim();
definition = definition definition = definition
.replace("\r\n", "\n") .replace("\r\n", "\n")
.replace("\n", "\\n\" + \n\t\t\t\t\""); .replace("\n", "\\n\" + \n \"");
classBuilder.append("\t\tcreateOrUpdate") classBuilder.append(" createOrUpdate")
.append(typeName) .append(typeName)
.append("(\"").append(sqlObject.getName()).append("\"").append(", ") .append("(\"").append(sqlObject.getName()).append("\"").append(", ")
.append("\"").append(definition).append("\");") .append("\"").append(definition).append("\");")
@@ -279,9 +340,6 @@ public class SystemMigrationService {
"}\n"); "}\n");
String executionPath = new File(BaseMigration.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getAbsolutePath(); String executionPath = new File(BaseMigration.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getAbsolutePath();
final String baseProjectPath = executionPath.substring(0, executionPath.indexOf("ems-engine\\target")) + "ems-core\\src\\main\\"; final String baseProjectPath = executionPath.substring(0, executionPath.indexOf("ems-engine\\target")) + "ems-core\\src\\main\\";
final String migrationsJavaPath = baseProjectPath + "java\\it\\integry\\ems\\migration\\model\\"; final String migrationsJavaPath = baseProjectPath + "java\\it\\integry\\ems\\migration\\model\\";
@@ -291,9 +349,21 @@ public class SystemMigrationService {
logger.info(String.format("Created migration file: %s", migrationClassName)); logger.info(String.format("Created migration file: %s", migrationClassName));
} }
public String deleteFromGestSetupTableOperation(String table, String gestName, String section, String keySection) {
return String.format(
"executeStatement(%s);",
Query.format(
"\"DELETE\\n\" +\n" +
"\"FROM " + table + "\\n\" +\n" +
"\"WHERE gest_name = %s\\n\" +\n" +
"\" AND section = %s\\n\" +\n" +
"\" AND key_section = %s\"\n",
gestName,
section,
keySection
)
);
}
private static void writeContentToFile(String filePath, String content, boolean overwrite) throws IOException { private static void writeContentToFile(String filePath, String content, boolean overwrite) throws IOException {
File f = new File(filePath); File f = new File(filePath);