add MetaDataColumn import
This commit is contained in:
@@ -6,7 +6,9 @@ import jakarta.persistence.*;
|
|||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@Entity
|
@Entity
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -46,4 +48,22 @@ public class MetaDataColumn extends AbstractEntity {
|
|||||||
public String getTableName() {
|
public String getTableName() {
|
||||||
return table.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")
|
@OneToMany(fetch = FetchType.EAGER, mappedBy = "table")
|
||||||
private List<MetaDataColumn> tableColumns = new LinkedList<>();
|
private List<MetaDataColumn> tableColumns = new LinkedList<>();
|
||||||
|
|
||||||
public void updateTableName(String value) {
|
public String updateTableName(String value) {
|
||||||
if (!this.getTableName().equals(value)) {
|
if (!this.getTableName().equals(value)) {
|
||||||
this.setTableName(value);
|
this.setTableName(value);
|
||||||
log.info("update tableName");
|
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 de.thpeetz.kontor.admin.repository.MetaDataTableRepository;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import java.sql.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -139,7 +138,7 @@ public class MetaDataService {
|
|||||||
metaDataColumnRepository.save(metaDataColumn);
|
metaDataColumnRepository.save(metaDataColumn);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String importData(Map<String, String> fields) {
|
public String importTableData(Map<String, String> fields) {
|
||||||
AtomicReference<String> status = new AtomicReference<>("unknown");
|
AtomicReference<String> status = new AtomicReference<>("unknown");
|
||||||
String id = fields.get("id");
|
String id = fields.get("id");
|
||||||
Optional<MetaDataTable> optional = metaDataTableRepository.findById(id);
|
Optional<MetaDataTable> optional = metaDataTableRepository.findById(id);
|
||||||
@@ -158,15 +157,61 @@ public class MetaDataService {
|
|||||||
} else {
|
} else {
|
||||||
optional.ifPresent( entry -> {
|
optional.ifPresent( entry -> {
|
||||||
log.info(" found: {}", entry.getTableName());
|
log.info(" found: {}", entry.getTableName());
|
||||||
updateFields(entry, fields);
|
String updateStatus = updateTableFields(entry, fields);
|
||||||
metaDataTableRepository.save(entry);
|
metaDataTableRepository.save(entry);
|
||||||
status.set("found");
|
status.set(updateStatus);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return status.get();
|
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()) {
|
for (Map.Entry<String, String> entry : fields.entrySet()) {
|
||||||
String key = entry.getKey();
|
String key = entry.getKey();
|
||||||
String value = entry.getValue();
|
String value = entry.getValue();
|
||||||
@@ -174,11 +219,11 @@ public class MetaDataService {
|
|||||||
case "id", "created_date", "last_modified_date", "version":
|
case "id", "created_date", "last_modified_date", "version":
|
||||||
break;
|
break;
|
||||||
case "table_name":
|
case "table_name":
|
||||||
metaDataTable.updateTableName(value);
|
status += metaDataTable.updateTableName(value);
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
log.info("field {} is unknown for table {}", key, MetaDataTable.class.getName());
|
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");
|
AtomicReference<String> status = new AtomicReference<>("unknown");
|
||||||
switch (nodeName) {
|
switch (nodeName) {
|
||||||
case "meta_data_table":
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
log.debug("import for {} not implemented", nodeName);
|
log.debug("import for {} not implemented", nodeName);
|
||||||
|
|||||||
Reference in New Issue
Block a user