creating year classifications, pt. 1

This commit is contained in:
gexce
2017-10-24 15:32:30 +02:00
parent d4b6f0ec0d
commit 47c90fdad4
7 changed files with 76 additions and 41 deletions
@@ -4,9 +4,9 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.bayer.edam.migration.adam.WriteRecord.WriteClassification; import com.bayer.edam.migration.adam.UploadRecord.WriteClassification;
import com.bayer.edam.migration.adam.WriteRecord.Field; import com.bayer.edam.migration.adam.UploadRecord.Field;
import com.bayer.edam.migration.adam.WriteRecord.LocalizedValue; import com.bayer.edam.migration.adam.UploadRecord.LocalizedValue;
public class Definitions { public class Definitions {
@@ -35,8 +35,9 @@ import com.bayer.edam.migration.adam.Classification;
import com.bayer.edam.migration.adam.ClassificationList; import com.bayer.edam.migration.adam.ClassificationList;
import com.bayer.edam.migration.adam.EntityId; import com.bayer.edam.migration.adam.EntityId;
import com.bayer.edam.migration.adam.Token; import com.bayer.edam.migration.adam.Token;
import com.bayer.edam.migration.adam.WriteRecord; import com.bayer.edam.migration.adam.UploadClassification;
import com.bayer.edam.migration.adam.WriteRecord.WriteClassification; import com.bayer.edam.migration.adam.UploadRecord;
import com.bayer.edam.migration.adam.UploadRecord.WriteClassification;
import com.bayer.edam.migration.mam.Entry; import com.bayer.edam.migration.mam.Entry;
import com.bayer.edam.migration.mam.categories.CategoryTree; import com.bayer.edam.migration.mam.categories.CategoryTree;
import com.bayer.edam.migration.mam.categories.CategoryTree.Node; import com.bayer.edam.migration.mam.categories.CategoryTree.Node;
@@ -76,6 +77,7 @@ public class MamMigrationSelective implements CommandLineRunner {
private SimpleDateFormat stringDate = new SimpleDateFormat("yyyy-MM-dd"); private SimpleDateFormat stringDate = new SimpleDateFormat("yyyy-MM-dd");
private ObjectMapper jsonMapper = new ObjectMapper(); private ObjectMapper jsonMapper = new ObjectMapper();
private List<Classification> campaignYears;
private List<Campaign> campaigns = new LinkedList<Campaign>(); private List<Campaign> campaigns = new LinkedList<Campaign>();
private List<String> locations = new ArrayList<String>(); private List<String> locations = new ArrayList<String>();
@@ -102,10 +104,10 @@ public class MamMigrationSelective implements CommandLineRunner {
log.info("Read campaigns"); log.info("Read campaigns");
HttpEntity<String> httpEntity = new HttpEntity<String>("parameters", adamHeaders); HttpEntity<String> httpEntity = new HttpEntity<String>("parameters", adamHeaders);
ClassificationList campaignYears = restTemplate.exchange(adamHost + "/classification/" + Definitions.campaignRoot + "/children", HttpMethod.GET, httpEntity, ClassificationList.class).getBody(); campaignYears = restTemplate.exchange(adamHost + "/classification/" + Definitions.campaignRoot + "/children", HttpMethod.GET, httpEntity, ClassificationList.class).getBody().items;
for (Classification yearClassification : campaignYears.items) { for (Classification yearClassification : campaignYears) {
ClassificationList campaignClassifications = restTemplate.exchange(adamHost + "/classification/" + yearClassification.id + "/children", HttpMethod.GET, httpEntity, ClassificationList.class).getBody(); List<Classification> campaignClassifications = restTemplate.exchange(adamHost + "/classification/" + yearClassification.id + "/children", HttpMethod.GET, httpEntity, ClassificationList.class).getBody().items;
for (Classification campaignClassification : campaignClassifications.items) { for (Classification campaignClassification : campaignClassifications) {
log.debug(yearClassification.name + ": " + campaignClassification.name + ", " + campaignClassification.labels[0].value + ", " + campaignClassification.id); log.debug(yearClassification.name + ": " + campaignClassification.name + ", " + campaignClassification.labels[0].value + ", " + campaignClassification.id);
Campaign campaign = new Campaign(campaignClassification.name, campaignClassification.labels[0].value, yearClassification.name); Campaign campaign = new Campaign(campaignClassification.name, campaignClassification.labels[0].value, yearClassification.name);
campaign.guid = campaignClassification.id; campaign.guid = campaignClassification.id;
@@ -114,7 +116,6 @@ public class MamMigrationSelective implements CommandLineRunner {
} }
HttpEntity<String> entity = new HttpEntity<String>("", mamHeaders); HttpEntity<String> entity = new HttpEntity<String>("", mamHeaders);
for (int id : selection) { for (int id : selection) {
log.info("GET entry " + id); log.info("GET entry " + id);
@@ -149,7 +150,7 @@ public class MamMigrationSelective implements CommandLineRunner {
} }
void postToAdam(Entry entry) throws Exception { void postToAdam(Entry entry) throws Exception {
WriteRecord record = new WriteRecord(); UploadRecord record = new UploadRecord();
String entryJson = jsonMapper.writeValueAsString(entry); String entryJson = jsonMapper.writeValueAsString(entry);
// globally applicable classifications // globally applicable classifications
@@ -206,6 +207,25 @@ public class MamMigrationSelective implements CommandLineRunner {
try { try {
Integer.parseInt(campaignYear); Integer.parseInt(campaignYear);
// check whether the year classification already exists
Classification yearClassification = null;
for (Classification c : campaignYears) {
if (c.name.equals(campaignYear)) {
yearClassification = c;
}
}
if (yearClassification == null) {
log.info("Create campaign year " + campaignYear);
UploadClassification newYear = new UploadClassification(campaignYear, campaignYear);
// TODO HIER GEHT'S WEITER
// (s. Z. 243 ff)
}
// check whether campain already exists // check whether campain already exists
String campaignGuid = null; String campaignGuid = null;
for (Campaign c : campaigns) { for (Campaign c : campaigns) {
@@ -216,7 +236,7 @@ public class MamMigrationSelective implements CommandLineRunner {
} }
if (campaignGuid == null) { if (campaignGuid == null) {
log.info("Create campaign " + campaignName); log.info("Create campaign " + campaignYear + "/" + campaignName);
Campaign campaign = new Campaign(campaignName, campaignLabel, campaignYear); Campaign campaign = new Campaign(campaignName, campaignLabel, campaignYear);
@@ -298,9 +318,9 @@ public class MamMigrationSelective implements CommandLineRunner {
// Create record // Create record
HttpEntity<WriteRecord> httpEntity = new HttpEntity<WriteRecord>(record, adamHeaders); HttpEntity<UploadRecord> httpEntity = new HttpEntity<UploadRecord>(record, adamHeaders);
try { try {
URI location = restTemplate.postForLocation(adamHost + "/records", httpEntity, WriteRecord.class); URI location = restTemplate.postForLocation(adamHost + "/records", httpEntity, UploadRecord.class);
log.info("Created " + location); log.info("Created " + location);
FileUtils.writeStringToFile(entryLog, location.toString() + fieldSeparator + entryJson + lineSeparator, FileUtils.writeStringToFile(entryLog, location.toString() + fieldSeparator + entryJson + lineSeparator,
@@ -3,32 +3,18 @@ package com.bayer.edam.migration.adam;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.bayer.edam.migration.adam.WriteRecord.Field; import com.bayer.edam.migration.adam.UploadRecord.Field;
import com.bayer.edam.migration.adam.WriteRecord.Fields; import com.bayer.edam.migration.adam.UploadRecord.Fields;
import com.bayer.edam.migration.adam.WriteRecord.LocalizedValue; import com.bayer.edam.migration.adam.UploadRecord.LocalizedValue;
import com.fasterxml.jackson.annotation.JsonIgnore;
public class Campaign { public class Campaign extends UploadClassification {
private static String basePath = "/Definitions/Animal Health/Campaign/Global/";
public String parentNamePath;
public String name;
public String identifier = "";
public Integer sortIndex = 1;
public LocalizedValue[] labels;
@JsonIgnore
public String guid;
public Fields fields = new Fields(); public Fields fields = new Fields();
public Campaign (String name, String label, String year) { public Campaign(String name, String label, String year) {
super(name, label);
this.parentNamePath = basePath + year; this.parentNamePath = basePath + year;
this.name = name;
LocalizedValue labelValue = new LocalizedValue(label);
labels = new LocalizedValue[] { labelValue };
// set field "IsCampaign" // set field "IsCampaign"
Field isCampaign = new Field("ed1b60f4069b48339128a77600bfb82a"); Field isCampaign = new Field("ed1b60f4069b48339128a77600bfb82a");
@@ -1,6 +1,6 @@
package com.bayer.edam.migration.adam; package com.bayer.edam.migration.adam;
import com.bayer.edam.migration.adam.WriteRecord.LocalizedValue; import com.bayer.edam.migration.adam.UploadRecord.LocalizedValue;
public class Classification { public class Classification {
@@ -0,0 +1,29 @@
package com.bayer.edam.migration.adam;
import com.bayer.edam.migration.adam.UploadRecord.LocalizedValue;
import com.fasterxml.jackson.annotation.JsonIgnore;
public class UploadClassification {
protected static String basePath = "/Definitions/Animal Health/Campaign/Global/";
public String parentNamePath;
public String name;
public String identifier = "";
public Integer sortIndex = 1;
public LocalizedValue[] labels;
@JsonIgnore
public String guid;
// public Fields fields = new Fields();
public UploadClassification(String name, String label) {
this.parentNamePath = basePath;
this.name = name;
LocalizedValue labelValue = new LocalizedValue(label);
labels = new LocalizedValue[] { labelValue };
}
}
@@ -8,9 +8,9 @@ import org.slf4j.LoggerFactory;
import com.bayer.edam.migration.Definitions; import com.bayer.edam.migration.Definitions;
public class WriteRecord { public class UploadRecord {
private static final Logger log = LoggerFactory.getLogger(WriteRecord.class); private static final Logger log = LoggerFactory.getLogger(UploadRecord.class);
public static class WriteClassification { public static class WriteClassification {
public String id; public String id;
@@ -25,7 +25,7 @@ import org.springframework.web.client.RestTemplate;
import com.bayer.edam.migration.LoggingRequestInterceptor; import com.bayer.edam.migration.LoggingRequestInterceptor;
import com.bayer.edam.migration.adam.ReadRecord; import com.bayer.edam.migration.adam.ReadRecord;
import com.bayer.edam.migration.adam.Token; import com.bayer.edam.migration.adam.Token;
import com.bayer.edam.migration.adam.WriteRecord; import com.bayer.edam.migration.adam.UploadRecord;
import com.bayer.edam.migration.mam.Entry; import com.bayer.edam.migration.mam.Entry;
public class MediaAssistantMigrationSimple { public class MediaAssistantMigrationSimple {
@@ -86,10 +86,10 @@ public class MediaAssistantMigrationSimple {
log.error(hcee.getResponseBodyAsString()); log.error(hcee.getResponseBodyAsString());
} }
HttpEntity<WriteRecord> newRecord = new HttpEntity<WriteRecord>(new WriteRecord(), headers); HttpEntity<UploadRecord> newRecord = new HttpEntity<UploadRecord>(new UploadRecord(), headers);
try { try {
URI location = restTemplate.postForLocation("https://edam-q.bayer.com:2015/records", newRecord, WriteRecord.class); URI location = restTemplate.postForLocation("https://edam-q.bayer.com:2015/records", newRecord, UploadRecord.class);
log.info("Location: " + location); log.info("Location: " + location);
} }
catch (HttpClientErrorException hcee) { catch (HttpClientErrorException hcee) {