From 5663f7af6b7a9749593226bd7fdd2dc8f62554ea Mon Sep 17 00:00:00 2001 From: gexce Date: Mon, 14 Aug 2017 15:58:21 +0200 Subject: [PATCH] Indications --- .../src/com/bayer/edam/CropScienceAsset.java | 8 + .../edam/ToolboxImportFileGenerator.java | 320 +++++++++++++++++- 2 files changed, 314 insertions(+), 14 deletions(-) diff --git a/Toolbox Migration/src/com/bayer/edam/CropScienceAsset.java b/Toolbox Migration/src/com/bayer/edam/CropScienceAsset.java index cd72fb2..2da72dd 100644 --- a/Toolbox Migration/src/com/bayer/edam/CropScienceAsset.java +++ b/Toolbox Migration/src/com/bayer/edam/CropScienceAsset.java @@ -1,5 +1,7 @@ package com.bayer.edam; +import java.util.HashSet; + public class CropScienceAsset { Integer toolboxAssetId; @@ -18,6 +20,12 @@ public class CropScienceAsset { String byr_cs_license_classification; String byr_cs_description; String byr_cs_keywords_tl; + String byr_campaignYearLabel; // TODO needs to be verified with Delaware + String byr_campaignTitle; + String byr_cs_IsShouldBePublished; + + HashSet indications = new HashSet(); + Long fileSize; diff --git a/Toolbox Migration/src/com/bayer/edam/ToolboxImportFileGenerator.java b/Toolbox Migration/src/com/bayer/edam/ToolboxImportFileGenerator.java index 2c5f9d0..4532401 100644 --- a/Toolbox Migration/src/com/bayer/edam/ToolboxImportFileGenerator.java +++ b/Toolbox Migration/src/com/bayer/edam/ToolboxImportFileGenerator.java @@ -33,6 +33,12 @@ import com.univocity.parsers.csv.CsvWriterSettings; * ,img.OriginalSize * ,a.publishDate * ,a.archiveDate + * ,y.AssetCampaignYearName + * ,p.ProjectName + * ,a.isConfidential + * ,u.FirstName + * ,u.LastName + * ,u.CompanyName * * FROM Assets a * LEFT JOIN AssetCategories c ON a.AssetCategoryID = c.AssetCategoryID @@ -40,6 +46,9 @@ import com.univocity.parsers.csv.CsvWriterSettings; * LEFT JOIN AssetFocusItemMap f ON a.AssetId = f.AssetID * LEFT JOIN FocusItems fi ON f.FocusItemID = fi.FocusItemID * LEFT JOIN AssetImages img ON a.AssetID = img.AssetID + * LEFT JOIN AssetCampaignYears y ON a.AssetCampaignYearID = y.AssetCampaignYearID + * LEFT JOIN Projects p ON a.ProjectID = p.ProjectID + * LEFT JOIN Users u ON a.CreatedByUserID = u.UserID * * WHERE * a.AssetStatusID != 101 @@ -62,6 +71,7 @@ public class ToolboxImportFileGenerator { private static final Map brandMap; private static final Map unitMap; private static final Map categoryMap; + private static final Map indicationMap; static { brandMap = new HashMap(); @@ -727,6 +737,270 @@ public class ToolboxImportFileGenerator { categoryMap.put("OurCompany : Company Statement", "Advertising - PR, Product Publicity : Presentation"); categoryMap.put("OurCompany : Company Values", "Advertising - PR, Product Publicity : Presentation"); categoryMap.put("ProfitMaximizer : NTS - Booth Graphics", "Field Day / Tradeshow / Event Materials : Popup Graphic"); + + + indicationMap = new HashMap(); +// indicationMap.put("Bayer/General", ""); +// indicationMap.put("National Tradeshow", ""); + indicationMap.put("Absolute", "Fungicides"); + indicationMap.put("Absolute Maxx", "Fungicides"); + indicationMap.put("Accrue", "Fungicides"); + indicationMap.put("Adament", "Fungicides"); + indicationMap.put("Admire Flex 4", "Insecticides"); + indicationMap.put("Admire Pro", "Insecticides"); + indicationMap.put("Aeris", "SeedGrowth"); + indicationMap.put("AFD Cotton Seed", "Seeds"); + indicationMap.put("AG Streptomycin", "SeedGrowth"); + indicationMap.put("Aliette", "Fungicides"); + indicationMap.put("Alion", "Herbicides"); + indicationMap.put("Alion HL", "Herbicides"); + indicationMap.put("Allegiance", "SeedGrowth"); + indicationMap.put("Argent", "SeedGrowth"); + indicationMap.put("Arize", "Seeds"); + indicationMap.put("Assail", "Insecticides"); + indicationMap.put("Asulox", "Herbicides"); + indicationMap.put("Atlantis", "Herbicides"); + indicationMap.put("Autumn", "Herbicides"); + indicationMap.put("Autumn Super", "Herbicides"); + indicationMap.put("Axiom", "Herbicides"); + indicationMap.put("Aztec", "Insecticides"); + indicationMap.put("Aztec 2.1", "Insecticides"); + indicationMap.put("Aztec 4.67", "Insecticides"); + indicationMap.put("Aztec 4.68", "Insecticides"); + indicationMap.put("Balance Bean", "Herbicides"); + indicationMap.put("Balance Flexx", "Herbicides"); + indicationMap.put("Balance GT", "Herbicides"); + indicationMap.put("Balance Pro", "Herbicides"); + indicationMap.put("Ballad Plus", "Herbicides"); +// indicationMap.put("Bayer, General", ""); + indicationMap.put("Bayleton", "Fungicides"); + indicationMap.put("Baytan", "SeedGrowth"); + indicationMap.put("Baythroid", "Insecticides"); + indicationMap.put("Baythroid XL", "Insecticides"); + indicationMap.put("Belt", "Insecticides"); + indicationMap.put("Betamix", "Herbicides"); + indicationMap.put("Betanet", "Herbicides"); + indicationMap.put("Betanex", "Herbicides"); + indicationMap.put("Bollgard", "Traits"); + indicationMap.put("Bollgard II", "Traits"); + indicationMap.put("Bronate Advanced", "Herbicides"); + indicationMap.put("Buctril", "Herbicides"); + indicationMap.put("Calypso", "Insecticides"); + indicationMap.put("Capreno", "Herbicides"); + indicationMap.put("Celgard", "SeedGrowth"); + indicationMap.put("Celpass", "SeedGrowth"); + indicationMap.put("Celpril", "SeedGrowth"); + indicationMap.put("Certified FiberMax", "Seeds"); + indicationMap.put("Cheyenne", "Herbicides"); + indicationMap.put("Contain", "SeedGrowth"); + indicationMap.put("COPeO Prime", "SeedGrowth"); + indicationMap.put("Corvus", "Herbicides"); + indicationMap.put("Corvus Complete", "Herbicides"); + indicationMap.put("Cotguard", "Fungicides"); + indicationMap.put("Credenz", "Seeds"); + indicationMap.put("Cruiser", "Insecticides"); + indicationMap.put("CSI Safener", "SeedGrowth"); + indicationMap.put("CSI Safener 500FS", "SeedGrowth"); + indicationMap.put("Decis", "Insecticides"); + indicationMap.put("Delaro", "Fungicides"); + indicationMap.put("Di-Syston", "Insecticides"); + indicationMap.put("DiFlexx", "Herbicides"); + indicationMap.put("DiFlexx Duo", "Herbicides"); + indicationMap.put("Distinguish", "Fungicides"); + indicationMap.put("Dropp", "Herbicides"); + indicationMap.put("Dropp SC", "Herbicides"); + indicationMap.put("Elite", "Fungicides"); + indicationMap.put("Emesto", "SeedGrowth"); + indicationMap.put("Emesto Silver", "SeedGrowth"); + indicationMap.put("Envidor", "Insecticides"); + indicationMap.put("Ethrel", "Harvest Aids/PGR"); + indicationMap.put("EverGol", "SeedGrowth"); + indicationMap.put("Evolve", "SeedGrowth"); + indicationMap.put("FiberMax", "Seeds"); + indicationMap.put("FiberMax One Ton Club", "Seeds"); + indicationMap.put("Finish", "Harvest Aids/PGR"); + indicationMap.put("Finish 6 Pro", "Harvest Aids/PGR"); + indicationMap.put("Flint", "Fungicides"); + indicationMap.put("Fluency Agent", "SeedGrowth"); + indicationMap.put("Fluency Agent Advanced", "SeedGrowth"); + indicationMap.put("Folicur", "Fungicides"); + indicationMap.put("Gaucho", "SeedGrowth"); + indicationMap.put("Gaucho Grande", "SeedGrowth"); + indicationMap.put("Gaucho MZ", "SeedGrowth"); + indicationMap.put("Gaucho XT", "SeedGrowth"); + indicationMap.put("Gem", "Fungicides"); + indicationMap.put("Ginstar", "Harvest Aids/PGR"); + indicationMap.put("Ginstar EC", "Harvest Aids/PGR"); + indicationMap.put("Glyphomax", "Herbicides"); + indicationMap.put("GlyTol", "Traits"); +// indicationMap.put("Grower Dividends", ""); +// indicationMap.put("Growing Strong", ""); + indicationMap.put("Gustafson", "Equipment"); + indicationMap.put("Guthion", "Insecticides"); + indicationMap.put("HBK", "Seeds"); + indicationMap.put("Heads Up", "SeedGrowth"); + indicationMap.put("Herculex", "Traits"); + indicationMap.put("Herculex I", "Traits"); + indicationMap.put("Hoegemeyer", "Seeds"); + indicationMap.put("Hoelon", "Herbicides"); + indicationMap.put("Huskie", "Herbicides"); + indicationMap.put("Huskie Complete", "Herbicides"); +// indicationMap.put("ICP - Horticulture", ""); +// indicationMap.put("ICP - Innovation Plus", ""); +// indicationMap.put("ICP - Cereals", ""); +// indicationMap.put("ICP - Corn", ""); +// indicationMap.put("ICP - Multiple", ""); +// indicationMap.put("ICP - Southern Row Crops", ""); +// indicationMap.put("ICP - Soybeans", ""); + indicationMap.put("Idol", "SeedGrowth"); + indicationMap.put("Ignite", "Herbicides"); + indicationMap.put("Ilevo", "SeedGrowth"); + indicationMap.put("Innovation Plus", ""); +// indicationMap.put("InSeed", ""); + indicationMap.put("Intruder", "Insecticides"); + indicationMap.put("InVigor", "Seeds"); + indicationMap.put("Ipresso", "SeedGrowth"); + indicationMap.put("Kodiak", "Fungicides"); + indicationMap.put("Krovar", "Herbicides"); + indicationMap.put("Larvin", "Insecticides"); + indicationMap.put("Laudis", "Herbicides"); + indicationMap.put("Laudis Flexx", "Herbicides"); + indicationMap.put("Leverage", "Insecticides"); + indicationMap.put("Leverage 2.7", "Insecticides"); + indicationMap.put("Leverage 360", "Insecticides"); + indicationMap.put("Liberty", "Herbicides"); + indicationMap.put("LibertyLink", "Traits"); + indicationMap.put("Luna", "Fungicides"); + indicationMap.put("Mocap", "Insecticides"); + indicationMap.put("Monitor", "Insecticides"); + indicationMap.put("Movento", "Insecticides"); + indicationMap.put("Movento HL", "Insecticides"); + indicationMap.put("Nemacur", "Insecticides"); + indicationMap.put("Nortron", "Herbicides"); + indicationMap.put("Nutrikote", "SeedGrowth"); + indicationMap.put("Oberon", "Insecticides"); + indicationMap.put("Olympus", "Herbicides"); + indicationMap.put("Olympus Flex", "Herbicides"); + indicationMap.put("On Demand", "Equipment"); + indicationMap.put("Option", "Herbicides"); + indicationMap.put("Osprey", "Herbicides"); + indicationMap.put("Phaser", "Insecticides"); + indicationMap.put("Poncho", "SeedGrowth"); + indicationMap.put("Poncho 1250", "SeedGrowth"); + indicationMap.put("Poncho 250", "SeedGrowth"); + indicationMap.put("Poncho 250/1250", "SeedGrowth"); + indicationMap.put("Poncho 251", "SeedGrowth"); + indicationMap.put("Poncho 500", "SeedGrowth"); + indicationMap.put("Poncho Beta", "SeedGrowth"); + indicationMap.put("Poncho/VOTiVO", "SeedGrowth"); + indicationMap.put("Poncho/VOTiVO 2.0", "SeedGrowth"); + indicationMap.put("Prep", "Harvest Aids/PGR"); + indicationMap.put("Prep 6", "Harvest Aids/PGR"); + indicationMap.put("Previcur", "Fungicides"); + indicationMap.put("Previcur Flex", "Fungicides"); + indicationMap.put("Proceed", "SeedGrowth"); + indicationMap.put("Proceed Concentrate", "SeedGrowth"); + indicationMap.put("Proceed MD", "SeedGrowth"); +// indicationMap.put("Producer Information Exchange (P.I.E.)", ""); + indicationMap.put("Proline", "Fungicides"); + indicationMap.put("Proline 3+3", "Fungicides"); + indicationMap.put("ProPulse", "Fungicides"); + indicationMap.put("Prosaro", "Fungicides"); + indicationMap.put("Prosper", "SeedGrowth"); + indicationMap.put("Prosper FX", "SeedGrowth"); + indicationMap.put("Protech Plus", "Insecticides"); + indicationMap.put("ProTechPlus", "Insecticides"); + indicationMap.put("Protégé", "Fungicides"); + indicationMap.put("Protégé FL", "Fungicides"); + indicationMap.put("Provado", "Insecticides"); + indicationMap.put("Provost", "Fungicides"); + indicationMap.put("Provost Opti", "Fungicides"); + indicationMap.put("Puma", "Herbicides"); + indicationMap.put("Radius", "Herbicides"); + indicationMap.put("Raxil", "SeedGrowth"); + indicationMap.put("Raxil Extra", "SeedGrowth"); + indicationMap.put("Raxil MD", "SeedGrowth"); + indicationMap.put("Raxil MD Extra", "SeedGrowth"); + indicationMap.put("Raxil MD Extra W", "SeedGrowth"); + indicationMap.put("Raxil MD W", "SeedGrowth"); + indicationMap.put("Raxil Pro MD", "SeedGrowth"); + indicationMap.put("Raxil Pro Shield", "SeedGrowth"); + indicationMap.put("Raxil Sure", "SeedGrowth"); + indicationMap.put("Raxil XT", "SeedGrowth"); + indicationMap.put("Reason", "Fungicides"); + indicationMap.put("Redigo", "SeedGrowth"); + indicationMap.put("Rely", "Herbicides"); + indicationMap.put("Rely 200", "Herbicides"); + indicationMap.put("Rely 280", "Herbicides"); + indicationMap.put("Renounce", "Insecticides"); + indicationMap.put("Requiem", "Insecticides"); + indicationMap.put("Respect the Rotation", "Herbicides"); + indicationMap.put("Rhizokote", "SeedGrowth"); + indicationMap.put("Ricestar", "Herbicides"); + indicationMap.put("Ricestar HT", "Herbicides"); + indicationMap.put("Rimfire", "Herbicides"); + indicationMap.put("Rimfire Max", "Herbicides"); + indicationMap.put("Rovral", "Fungicides"); + indicationMap.put("Scala", "Fungicides"); + indicationMap.put("Scoparia", "Herbicides"); + indicationMap.put("SeedGrowth", "SeedGrowth"); + indicationMap.put("Sencor", "Herbicides"); + indicationMap.put("Sensat", "SeedGrowth"); + indicationMap.put("Sepresto", "SeedGrowth"); + indicationMap.put("Serenade", "Fungicides"); + indicationMap.put("Serenade ASO", "Fungicides"); + indicationMap.put("Serenade Opti", "Fungicides"); + indicationMap.put("Serenade Optimum", "Fungicides"); + indicationMap.put("Serenade Soil", "Fungicides"); + indicationMap.put("Sevin", "Insecticides"); + indicationMap.put("Silverado", "Herbicides"); + indicationMap.put("Sivanto", "Insecticides"); + indicationMap.put("Sivanto Prime", "Insecticides"); + indicationMap.put("Soberan", "Herbicides"); + indicationMap.put("Sonata", "Fungicides"); + indicationMap.put("Spin-Aid", "Herbicides"); + indicationMap.put("Stance", "Harvest Aids/PGR"); + indicationMap.put("Stoneville", "Seeds"); + indicationMap.put("Storcide II", "SeedGrowth"); + indicationMap.put("Storicide II", "SeedGrowth"); + indicationMap.put("Stratego", "Fungicides"); + indicationMap.put("Stratego YLD", "Fungicides"); + indicationMap.put("Synapse", "Insecticides"); + indicationMap.put("Temik", "Insecticides"); + indicationMap.put("Temix", "Insecticides"); + indicationMap.put("Tempo SC Ultra", "Insecticides"); + indicationMap.put("Thiram", "SeedGrowth"); + indicationMap.put("Tops MZ", "SeedGrowth"); + indicationMap.put("Tops MZ Gaucho", "SeedGrowth"); + indicationMap.put("TriKote", "SeedGrowth"); + indicationMap.put("Trilex", "SeedGrowth"); + indicationMap.put("Trilex 2000", "SeedGrowth"); + indicationMap.put("Trilex 5000", "SeedGrowth"); + indicationMap.put("Trilex 6000", "SeedGrowth"); + indicationMap.put("Trilex Advanced", "SeedGrowth"); + indicationMap.put("Trilex AL", "SeedGrowth"); + indicationMap.put("Trilex ADV", "SeedGrowth"); + indicationMap.put("Trilex Optimum", "SeedGrowth"); + indicationMap.put("Trilex Rice Pack", "SeedGrowth"); + indicationMap.put("TrilexStar", "SeedGrowth"); + indicationMap.put("Trimax", "Insecticides"); + indicationMap.put("Trimax Pro", "Insecticides"); + indicationMap.put("TwinLink", "Traits"); + indicationMap.put("TwinLink Plus", "Traits"); + indicationMap.put("Ultor", "Insecticides"); + indicationMap.put("Varro", "Herbicides"); + indicationMap.put("Velum One", "Insecticides"); + indicationMap.put("Velum Prime", "Insecticides"); + indicationMap.put("Velum Total", "Insecticides"); + indicationMap.put("Vitis", "Insecticides"); + indicationMap.put("Vortex", "SeedGrowth"); + indicationMap.put("Votivo", "SeedGrowth"); + indicationMap.put("Whip 360", "Herbicides"); + indicationMap.put("Wolverine", "Herbicides"); + indicationMap.put("Wolverine Advanced", "Herbicides"); + indicationMap.put("Wolverine PowerPak", "Herbicides"); + indicationMap.put("Yield Shield", "Fungicides"); + } private List inputRows; @@ -750,6 +1024,7 @@ public class ToolboxImportFileGenerator { long noTargetBrand = 0; long noTargetBusinessUnit = 0; long noAssetType = 0; + long internalAssets = 0; for (String[] line : inputRows) { Integer assetId = Integer.parseInt(line[0]); @@ -786,7 +1061,7 @@ public class ToolboxImportFileGenerator { asset.filename = line[1]; asset.byr_Title = line[2]; - asset.byr_cs_assetApproval = "No Approval"; // XXX "No Approval Required"? + asset.byr_cs_assetApproval = "Approval Required"; if (!line[17].equals("NULL")) asset.byr_cs_releaseDate = outputDateFormat.format(inputDateFormat.parse(line[17])); @@ -795,15 +1070,30 @@ public class ToolboxImportFileGenerator { asset.byr_cs_license_classification = "N/A"; + asset.byr_cs_description = ""; if (line[4] != null) - asset.byr_cs_description = line[4] + "\n\n[Asset imported from Toolbox, ID " + asset.toolboxAssetId + "]"; - else - asset.byr_cs_description = "[Asset imported from Toolbox, ID " + asset.toolboxAssetId + "]"; + asset.byr_cs_description = line[4] + "\n\n"; + asset.byr_cs_description += "[Asset imported from Toolbox (ID " + asset.toolboxAssetId + "), created " + + outputDateFormat.format(inputDateFormat.parse(line[7])) + " by " + line[22] + " " + line[23] + " (" + line[24] + + ")]"; asset.byr_cs_keywords_tl = "toolbox import"; asset.byr_MarketingId = line[3]; - + + asset.byr_campaignYearLabel = line[19]; + + if (!line[20].equals("NULL")) + asset.byr_campaignTitle = line[20]; + + if (line[21].equals("0")) { + asset.byr_cs_IsShouldBePublished = "No"; + } + else { + internalAssets++; + asset.byr_cs_IsShouldBePublished = "Yes"; + } + asset.appendClassification = "/Definitions/Agencies/Bayer/Bayer CS\n" + "/Definitions/Common/Status/Released"; // determine asset type (from Toolbox "category") @@ -819,9 +1109,6 @@ public class ToolboxImportFileGenerator { log.info(asset.toolboxAssetId + ": Could not map category '" + assetCategory + "' to any asset type"); } - - - asset.fileSize = Long.parseLong(line[16]); assets.put(assetId, asset); @@ -830,10 +1117,12 @@ public class ToolboxImportFileGenerator { if (asset.byr_cs_brand == null) { asset.byr_cs_brand = brandMap.get(line[15]); asset.byr_cs_businessUnit = unitMap.get(asset.byr_cs_brand); - } else { asset.byr_cs_brand = asset.byr_cs_brand + "\n" + line[15]; } + + if (indicationMap.get(line[15]) != null) + asset.indications.add(indicationMap.get(line[15])); } @@ -843,6 +1132,7 @@ public class ToolboxImportFileGenerator { log.info("Skipped: No target brand: " + noTargetBrand); log.info("Skipped: No target business unit: " + noTargetBusinessUnit); log.info("No asset type: " + noAssetType); + log.info("Internal assets: " + internalAssets); } private void readToolboxExport() { @@ -860,18 +1150,20 @@ public class ToolboxImportFileGenerator { List csvOutputList = new ArrayList(); for (CropScienceAsset asset : assets.values()) { String[] csvLine = new String[] { asset.assetPath, asset.filename, asset.appendClassification, asset.byr_Title, - asset.byr_MarketingId, asset.byr_cs_assetApproval, asset.byr_cs_license_classification, asset.byr_cs_brand, asset.byr_cs_businessUnit, - asset.byr_cs_releaseDate, asset.byr_cs_retireDate, asset.byr_cs_description, asset.byr_cs_keywords_tl }; + asset.byr_MarketingId, asset.byr_cs_assetApproval, asset.byr_cs_license_classification, asset.byr_cs_brand, + asset.byr_cs_businessUnit, 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 }; csvOutputList.add(csvLine); } - + CsvWriterSettings writerSettings = new CsvWriterSettings(); writerSettings.setFormat(parserSettings.getFormat()); - + CsvWriter writer = new CsvWriter(new File(importFilePath), writerSettings); writer.writeHeaders("assetpath", "filename", "append classification", "fields|byr_title", "fields|byr_MarketingId", "fields|byr_cs_assetApproval", "fields|byr_cs_license_classification", "fields|byr_cs_brand", "fields|byr_cs_businessUnit", - "fields|byr_cs_releaseDate", "fields|byr_cs_retireDate", "fields|byr_cs_Description", "fields|byr_cs_keywords_tl"); + "fields|byr_cs_releaseDate", "fields|byr_cs_retireDate", "fields|byr_cs_Description", "fields|byr_cs_keywords_tl", + "fields|byr_campaignYearLabel", "fields|byr_campaignTitle", "field|byr_cs_IsShouldBePublished"); writer.writeRowsAndClose(csvOutputList); }