add MetaDataColumn import

This commit is contained in:
Thomas Peetz
2025-04-07 22:26:33 +02:00
parent 76d91dd506
commit 3d97c3360a
4 changed files with 79 additions and 9 deletions
@@ -6,7 +6,9 @@ import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Entity
@Getter
@Setter
@@ -46,4 +48,22 @@ public class MetaDataColumn extends AbstractEntity {
public String getTableName() {
return table.getTableName();
}
public String updateColumnName(String value) {
if (!this.getColumnName().equals(value)) {
this.setColumnName(value);
log.info("update columnName");
return "updated " + this.getId() + " with " + value + "\n";
}
return "no changes for " + this.getId() + "\n";
}
public String updateColumnSyncName(String value) {
if (!this.getColumnSyncName().equals(value)) {
this.setColumnSyncName(value);
log.info("update columnSyncName");
return "updated " + this.getId() + " with " + value + "\n";
}
return "no changes for " + this.getId() + "\n";
}
}
@@ -29,10 +29,12 @@ public class MetaDataTable extends AbstractEntity {
@OneToMany(fetch = FetchType.EAGER, mappedBy = "table")
private List<MetaDataColumn> tableColumns = new LinkedList<>();
public void updateTableName(String value) {
public String updateTableName(String value) {
if (!this.getTableName().equals(value)) {
this.setTableName(value);
log.info("update tableName");
return "updated " + this.getId() + " with " + value;
}
return "no changes for " + this.getId();
}
}
@@ -8,7 +8,6 @@ import de.thpeetz.kontor.admin.data.MetaDataTable;
import de.thpeetz.kontor.admin.repository.MetaDataTableRepository;
import lombok.extern.slf4j.Slf4j;
import java.sql.Date;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -139,7 +138,7 @@ public class MetaDataService {
metaDataColumnRepository.save(metaDataColumn);
}
public String importData(Map<String, String> fields) {
public String importTableData(Map<String, String> fields) {
AtomicReference<String> status = new AtomicReference<>("unknown");
String id = fields.get("id");
Optional<MetaDataTable> optional = metaDataTableRepository.findById(id);
@@ -158,15 +157,61 @@ public class MetaDataService {
} else {
optional.ifPresent( entry -> {
log.info(" found: {}", entry.getTableName());
updateFields(entry, fields);
String updateStatus = updateTableFields(entry, fields);
metaDataTableRepository.save(entry);
status.set("found");
status.set(updateStatus);
});
}
return status.get();
}
private void updateFields(MetaDataTable metaDataTable, Map<String, String> fields) {
public String importColumnData(String tableName, Map<String, String> fields) {
AtomicReference<String> status = new AtomicReference<>("unknown");
String id = fields.get("id");
Optional<MetaDataColumn> optional = metaDataColumnRepository.findById(id);
if (optional.isEmpty()) {
log.info(" not found: {} with {}", id, fields);
status.set(id + "not found");
MetaDataColumn metaDataColumn = new MetaDataColumn();
metaDataColumn.setId(id);
metaDataColumn.setColumnName(fields.get("column_name"));
metaDataColumn.setColumnSyncName(fields.get("column_sync_name"));
metaDataColumn.setColumnType(fields.get("column_type"));
metaDataColumnRepository.save(metaDataColumn);
} else {
optional.ifPresent( entry -> {
log.info(" found: {}", entry.getTableName());
String updateStatus = updateColumnFields(entry, tableName, fields);
metaDataColumnRepository.save(entry);
status.set(updateStatus);
});
}
return status.get();
}
private String updateColumnFields(MetaDataColumn metaDataColumn, String tableName, Map<String, String> fields) {
StringBuilder status = new StringBuilder();
for (Map.Entry<String, String> entry : fields.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
switch (key) {
case "id", "created_date", "last_modified_date", "version":
break;
case "column_name":
status.append(metaDataColumn.updateColumnName(value));
break;
case "column_sync_name":
status.append(metaDataColumn.updateColumnSyncName(value));
break;
default:
log.info("field {} is unknown for table {}", key, tableName);
}
}
return status.toString();
}
private String updateTableFields(MetaDataTable metaDataTable, Map<String, String> fields) {
String status = "";
for (Map.Entry<String, String> entry : fields.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
@@ -174,11 +219,11 @@ public class MetaDataService {
case "id", "created_date", "last_modified_date", "version":
break;
case "table_name":
metaDataTable.updateTableName(value);
break;
status += metaDataTable.updateTableName(value);
default:
log.info("field {} is unknown for table {}", key, MetaDataTable.class.getName());
}
}
return status;
}
}
@@ -29,7 +29,10 @@ public class DataManagementService {
AtomicReference<String> status = new AtomicReference<>("unknown");
switch (nodeName) {
case "meta_data_table":
//status.set(metaDataService.importData(fields));
status.set(metaDataService.importTableData(fields));
break;
case "meta_data_column":
status.set(metaDataService.importColumnData(nodeName, fields));
break;
default:
log.debug("import for {} not implemented", nodeName);