add script for import data
This commit is contained in:
@@ -8,6 +8,7 @@ import de.thpeetz.kontor.admin.data.MetaDataTable;
|
||||
import de.thpeetz.kontor.admin.repository.MetaDataTableRepository;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
@@ -43,10 +44,23 @@ public class MetaDataService {
|
||||
|
||||
private void deleteTable(MetaDataTable metaDataTable) {
|
||||
List<MetaDataColumn> columns = metaDataTable.getTableColumns();
|
||||
List<MetaDataColumn> columnsToDelete = new LinkedList<>();
|
||||
for (MetaDataColumn column: columns) {
|
||||
metaDataColumnRepository.delete(column);
|
||||
try {
|
||||
columnsToDelete.add(column);
|
||||
metaDataColumnRepository.delete(column);
|
||||
} catch (Exception e) {
|
||||
log.info("Exception {} thrown, just go on", e.getMessage());
|
||||
}
|
||||
}
|
||||
for (MetaDataColumn column: columnsToDelete) {
|
||||
metaDataTable.getTableColumns().remove(column);
|
||||
}
|
||||
try {
|
||||
metaDataTableRepository.delete(metaDataTable);
|
||||
} catch (Exception e) {
|
||||
log.info("could not delete MetaDataTable: {}", e.getMessage());
|
||||
}
|
||||
metaDataTableRepository.delete(metaDataTable);
|
||||
}
|
||||
|
||||
public void getColumn(MetaDataTable table, String columnName, String columnSyncName, String columnType, String columnModifier, Integer columnOrder, Boolean isShown, String columnLabel, Boolean showFilter, String filterLabel) {
|
||||
|
||||
@@ -3,6 +3,7 @@ package de.thpeetz.kontor.data.services;
|
||||
import de.thpeetz.kontor.admin.data.MetaDataTable;
|
||||
import de.thpeetz.kontor.admin.repository.MetaDataTableRepository;
|
||||
import de.thpeetz.kontor.admin.services.MetaDataService;
|
||||
import de.thpeetz.kontor.tysc.services.SportService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -16,10 +17,10 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
public class DataManagementService {
|
||||
|
||||
@Autowired
|
||||
MetaDataTableRepository metaDataTableRepository;
|
||||
MetaDataService metaDataService;
|
||||
|
||||
@Autowired
|
||||
MetaDataService metaDataService;
|
||||
SportService sportService;
|
||||
|
||||
public DataManagementService() {
|
||||
|
||||
@@ -34,6 +35,8 @@ public class DataManagementService {
|
||||
case "meta_data_column":
|
||||
status.set(metaDataService.importColumnData(nodeName, fields));
|
||||
break;
|
||||
case "sport":
|
||||
status.set(sportService.importData(fields));
|
||||
default:
|
||||
log.debug("import for {} not implemented", nodeName);
|
||||
break;
|
||||
|
||||
@@ -17,7 +17,9 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@@ -39,4 +41,13 @@ public class Sport extends AbstractEntity {
|
||||
@OneToMany(fetch = FetchType.EAGER, mappedBy = "sport")
|
||||
@Nullable
|
||||
private List<FieldPosition> positions = new LinkedList<>();
|
||||
|
||||
public String updateName(String value) {
|
||||
if (!this.getName().equals(value)) {
|
||||
this.setName(value);
|
||||
log.info("update name");
|
||||
return "updated " + this.getId() + " with " + value;
|
||||
}
|
||||
return "no changes for " + this.getId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package de.thpeetz.kontor.tysc.services;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import de.thpeetz.kontor.admin.data.MetaDataTable;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -144,4 +148,48 @@ public class SportService {
|
||||
public void deleteRooster(Rooster rooster) {
|
||||
roosterRepository.delete(rooster);
|
||||
}
|
||||
|
||||
public String importData(Map<String, String> fields) {
|
||||
AtomicReference<String> status = new AtomicReference<>("unknown");
|
||||
String id = fields.get("id");
|
||||
Optional<Sport> optional = sportRepository.findById(id);
|
||||
if (optional.isEmpty()) {
|
||||
log.info(" not found: {} with {}", id, fields);
|
||||
status.set(id + "not found");
|
||||
Sport checkExisting = sportRepository.findByName(fields.get("name"));
|
||||
if (checkExisting != null) {
|
||||
log.info("entry already there with different id ({}), will be deleted", checkExisting.getId());
|
||||
deleteSport(checkExisting);
|
||||
}
|
||||
Sport sport = new Sport();
|
||||
sport.setId(id);
|
||||
sport.setName(fields.get("name"));
|
||||
sportRepository.save(sport);
|
||||
} else {
|
||||
optional.ifPresent( entry -> {
|
||||
log.info(" found: {}", entry.getName());
|
||||
String updateStatus = updateSportFields(entry, fields);
|
||||
sportRepository.save(entry);
|
||||
status.set(updateStatus);
|
||||
});
|
||||
}
|
||||
return status.get();
|
||||
}
|
||||
|
||||
private String updateSportFields(Sport sport, Map<String, String> fields) {
|
||||
String status = "";
|
||||
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 "table_name":
|
||||
status += sport.updateName(value);
|
||||
default:
|
||||
log.info("field {} is unknown for table {}", key, sport.getClass().getName());
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user