From 6adc260224c0969e63df5502fcc5d95330fd5e8a Mon Sep 17 00:00:00 2001 From: gexce Date: Fri, 1 Sep 2017 15:42:06 +0200 Subject: [PATCH] Asset Type fix --- .../edam/excelimport/FilenameComparator.java | 88 +++++++++++++++++++ .../ToolboxImportFileGenerator.java | 38 +++++--- 2 files changed, 113 insertions(+), 13 deletions(-) create mode 100644 Toolbox Migration/src/com/bayer/edam/excelimport/FilenameComparator.java diff --git a/Toolbox Migration/src/com/bayer/edam/excelimport/FilenameComparator.java b/Toolbox Migration/src/com/bayer/edam/excelimport/FilenameComparator.java new file mode 100644 index 0000000..34fa436 --- /dev/null +++ b/Toolbox Migration/src/com/bayer/edam/excelimport/FilenameComparator.java @@ -0,0 +1,88 @@ +package com.bayer.edam.excelimport; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.Layout; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.apache.log4j.PatternLayout; +import org.apache.log4j.RollingFileAppender; + +import com.univocity.parsers.csv.CsvParser; +import com.univocity.parsers.csv.CsvParserSettings; +import com.univocity.parsers.csv.CsvWriter; +import com.univocity.parsers.csv.CsvWriterSettings; + +public class FilenameComparator { + private static Logger log = Logger.getLogger(FilenameComparator.class); + private static String logfilePath = "C:\\Temp\\Migration CS - PhotoGallery\\FilenameComparator.log"; + + private static String migrationFilePath = "C:\\Temp\\Migration CS - PhotoGallery\\Frederic - Toolbox Migration 2 DB export.csv"; + private static String importFilePath = "C:\\Temp\\Migration CS - PhotoGallery\\all imported IDs - toolbox export.csv"; + private static String outputFilePath = "C:\\Temp\\Migration CS - PhotoGallery\\all imported IDs - toolbox export - without Migration 2.csv"; + + private CsvParserSettings parserSettings = new CsvParserSettings(); + private List migrationRows; + private HashSet migration2filenames = new HashSet(); + private List importRows; + private List csvOutputList = new ArrayList(); + + public FilenameComparator() throws IOException { + parserSettings.getFormat().setLineSeparator("\r\n"); + parserSettings.getFormat().setDelimiter(';'); + parserSettings.getFormat().setCharToEscapeQuoteEscaping('"'); + parserSettings.setHeaderExtractionEnabled(false); + CsvParser parser = new CsvParser(parserSettings); + migrationRows = parser.parseAll(new File(migrationFilePath)); + + for (String[] line : migrationRows) { + migration2filenames.add(line[1]); + } + + importRows = parser.parseAll(new File(importFilePath)); + + int lineNo = 0; + for (String[] importLine : importRows) { + lineNo++; + + if (migration2filenames.contains(importLine[1])) { + log.info("Line " + lineNo + " - Removing file " + importLine[1]); + continue; + } + + String[] csvLine = new String[importLine.length]; + for (int i = 0; i < importLine.length; i++) + csvLine[i] = importLine[i]; + + csvOutputList.add(csvLine); + } + + CsvWriterSettings writerSettings = new CsvWriterSettings(); + writerSettings.setFormat(parserSettings.getFormat()); + + CsvWriter writer = new CsvWriter(new File(outputFilePath), writerSettings); + writer.writeRowsAndClose(csvOutputList); + + } + + public static void main(String[] args) { + try { + Layout layout = new PatternLayout("%d{ISO8601} - %p %m%n"); // "%d{ISO8601} - %p %m%n" + BasicConfigurator.configure(new ConsoleAppender(layout)); + BasicConfigurator.configure(new RollingFileAppender(layout, logfilePath, false)); + log.setLevel(Level.INFO); + + new FilenameComparator(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/Toolbox Migration/src/com/bayer/edam/excelimport/ToolboxImportFileGenerator.java b/Toolbox Migration/src/com/bayer/edam/excelimport/ToolboxImportFileGenerator.java index 37cd44e..ca92b78 100644 --- a/Toolbox Migration/src/com/bayer/edam/excelimport/ToolboxImportFileGenerator.java +++ b/Toolbox Migration/src/com/bayer/edam/excelimport/ToolboxImportFileGenerator.java @@ -29,13 +29,13 @@ import com.univocity.parsers.csv.CsvWriterSettings; public class ToolboxImportFileGenerator { private static Logger log = Logger.getLogger(ToolboxImportFileGenerator.class); - private static String toolboxExportFilePath = "C:\\Temp\\Migration CS - PhotoGallery\\all imported IDs - toolbox export.csv"; - private static String logfilePath = "C:\\Temp\\Migration CS - PhotoGallery\\all imported IDs - toolbox export.log"; + private static String toolboxExportFilePath = "C:\\Temp\\Migration CS - PhotoGallery\\export - 2017-08-28 - logos and tags not included in first migration-update.csv"; + private static String logfilePath = "C:\\Temp\\Migration CS - PhotoGallery\\export - 2017-08-28 - logos and tags not included in first migration-update.log"; private static String licenseGuidsFilePath = "C:\\Temp\\Migration CS - SQL Server\\Release_GUIDs.csv"; // XXX Spreadsheet needs be be named "Records" in Excel for the importer - private static String importFilePath = "C:\\Temp\\Migration CS - PhotoGallery\\all imported IDs - toolbox export-IMPORT.csv"; - private static String uploadPath = "/Resources/Upload/ToolboxMigration"; + private static String importFilePath = "C:\\Temp\\Migration CS - PhotoGallery\\export - 2017-08-28 - logos and tags not included in first migration-update-IMPORT.csv"; + private static String uploadPath = "/Resources/Upload/ToolboxLogosAndTags"; private static final Map brandMap; private static final Map unitMap; @@ -214,8 +214,8 @@ public class ToolboxImportFileGenerator { brandMap.put("Prosper FX", "Prosper"); brandMap.put("Protech Plus", "TEMPORARY"); brandMap.put("ProTechPlus", "TEMPORARY"); - brandMap.put("Prot�g�", "TEMPORARY"); // XXX - brandMap.put("Prot�g� FL", "TEMPORARY"); // XXX + brandMap.put("Protégé", "TEMPORARY"); // XXX + brandMap.put("Protégé FL", "TEMPORARY"); // XXX brandMap.put("Provado", "TEMPORARY"); brandMap.put("Provost", "Provost"); brandMap.put("Provost Opti", "Provost Opti"); @@ -1072,7 +1072,7 @@ public class ToolboxImportFileGenerator { asset.byr_MarketingId = line[3]; - asset.fileSize = Long.parseLong(line[15]); +// asset.fileSize = Long.parseLong(line[15]); if (!line[16].equals("NULL")) asset.byr_cs_releaseDate = outputDateFormat.format(inputDateFormat.parse(line[16])); @@ -1123,9 +1123,12 @@ public class ToolboxImportFileGenerator { String assetCategory = line[11] + " : " + line[12]; String targetType = categoryMap.get(assetCategory); if (targetType != null) { + String categoryClassification = targetType.substring(0, targetType.indexOf(" : ")); + String subCategoryClassification = targetType.substring(targetType.indexOf(" : ") + 3); + asset.appendClassification = asset.appendClassification - + "\n/Bayer/Crop Science/CategoryItem/" + targetType.substring(0, targetType.indexOf(" : ")) - + "\n/Bayer/Crop Science/CategoryItem/" + targetType.substring(targetType.indexOf(" : ") + 3); + + "\n/Bayer/Crop Science/CategoryItem/" + categoryClassification + + "\n/Bayer/Crop Science/CategoryItem/" + categoryClassification + "/" + subCategoryClassification; } else { noAssetType++; @@ -1228,6 +1231,13 @@ public class ToolboxImportFileGenerator { List csvOutputList = new ArrayList(); for (CropScienceAsset asset : assets.values()) { + // XXX export only assets with license data +// if (asset.licenseRecords.size() == 0) +// continue; + +// if (!asset.filename.equals("BCS_SED_I4_6666_140x180_Concept_R2[1].jpg")) +// continue; + // XXX This filename is broken (because of the question mark) if (asset.filename.equals("Texas Cotton Growers Achieve Excellence with FiberMax?.mp4")) asset.filename = "CR0715FIBMAXA232V00R0.MP4"; @@ -1255,13 +1265,15 @@ public class ToolboxImportFileGenerator { licenseTypes += "\n"; licenseTypes += licenseType; } + if (licenseTypes.length() == 0) + licenseTypes = "No License required"; - String[] csvLine = new String[] { asset.assetPath, asset.filename, /*asset.appendClassification, asset.byr_Title, + String[] csvLine = new String[] { asset.assetPath, asset.filename, asset.appendClassification, asset.byr_Title, asset.byr_MarketingId, asset.byr_cs_assetApproval, asset.byr_cs_businessUnit, brands, asset.byr_cs_releaseDate, asset.byr_cs_retireDate, asset.byr_cs_description, asset.byr_cs_keywords_tl, asset.byr_campaignYearLabel, asset.byr_campaignTitle, asset.byr_cs_IsShouldBePublished, asset.byr_cs_warehouseAvailable, - asset.byr_cs_country,*/ licenseRecords, licenseTypes, asset.byr_licenseScope, asset.byr_licenseOwner, + asset.byr_cs_country, licenseRecords, licenseTypes, asset.byr_licenseScope, asset.byr_licenseOwner, asset.byr_licenseInformation }; csvOutputList.add(csvLine); @@ -1271,11 +1283,11 @@ public class ToolboxImportFileGenerator { writerSettings.setFormat(parserSettings.getFormat()); CsvWriter writer = new CsvWriter(new File(importFilePath), writerSettings); - writer.writeHeaders("Assetpath", "Filename", /*"Append Classification", "fields|byr_Title", "fields|byr_MarketingId", + writer.writeHeaders("Assetpath", "Filename", "Append Classification", "fields|byr_Title", "fields|byr_MarketingId", "fields|byr_cs_assetApproval", "fields|byr_cs_businessUnit", "fields|byr_cs_brand", "fields|byr_cs_releaseDate", "fields|byr_cs_retireDate", "fields|byr_cs_Description", "fields|byr_cs_keywords_tl", "fields|byr_campaignYearLabel", "fields|byr_campaignTitleLabel", "fields|byr_cs_IsShouldBePublished", - "fields|byr_cs_warehouseAvailable", "fields|byr_cs_country",*/ "fields|byr_cs_licenseRecord", "fields|byr_cs_licenseType", + "fields|byr_cs_warehouseAvailable", "fields|byr_cs_country", "fields|byr_cs_licenseRecord", "fields|byr_cs_licenseType", "fields|byr_licenseScope", "fields|byr_licenseOwner", "fields|byr_licenseInformation"); writer.writeRowsAndClose(csvOutputList); }