diff --git a/src/main/java/com/application/DB/Constants.java b/src/main/java/com/application/DB/Constants.java index 0493b05b25129f97099c5a35338aedf5ecb5e5d5..7455cef7a4498455620f1a7e18c2bb11f938fb64 100644 --- a/src/main/java/com/application/DB/Constants.java +++ b/src/main/java/com/application/DB/Constants.java @@ -2,6 +2,8 @@ package com.application.DB; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; /** @@ -44,6 +46,7 @@ public final class Constants { public static int VALASEN_KILIN_ID = 5; // Kammer 5 //public static int VALASEN_KILIN_ID = 6; // Kammer 6 public static final int VALASEN_LIMIT = 1000; + public static final ArrayList<Integer> VALASEN_VALMETICS_CHAMBER_IDS = new ArrayList<>(Arrays.asList(5,6)); // Winccsensordata public static final String VALASEN_KWH_NAME = "VariantValue"; @@ -51,6 +54,7 @@ public final class Constants { public static final String VALASEN_VALUE_ID_NAME = "ValueID"; public static final int VALASEN_VALUE_ID = 51; // Kammer 5 //public static final int VALASEN_VALUE_ID = 56; // Kammer 6 + public static final ArrayList<Integer> VALASEN_KWH_CHAMBER_IDS = new ArrayList<>(Arrays.asList(51,56)); @@ -69,15 +73,17 @@ public final class Constants { public static final String ARJANG_START_DRYING_NAME = "DryingStarted"; public static final String ARJANG_STOP_DRYING_NAME = "DryingCompleted"; public static final String ARJANG_KILIN_NAME = "KilinId"; - public static int ARJANG_KILIN_ID = 18; + //public static int ARJANG_KILIN_ID = 18; //public static int ARJANG_KILIN_ID = 18554; public static final int ARJANG_LIMIT = 1000; + public static final ArrayList<Integer> ARJANG_VALMETICS_CHAMBER_IDS = new ArrayList<>(Arrays.asList(17,18)); // Swappconsensordata public static final String ARJANG_KWH_NAME = "RealValue"; public static final String ARJANG_TIMESTAMP_NAME = "Timestamp"; public static final String ARJANG_VALUE_ID_NAME = "ValueID"; - public static final int ARJANG_VALUE_ID = 19; + //public static final int ARJANG_VALUE_ID = 19; + public static final ArrayList<Integer> ARJANG_KWH_CHAMBER_IDS = new ArrayList<>(Arrays.asList(19,19)); @@ -89,6 +95,7 @@ public final class Constants { return sawmillInfo; } + // Valasen private static HashMap<String, HashMap<String, String>> getValasenTables(){ HashMap<String, HashMap<String, String>> valasenTables = new HashMap<>(); @@ -110,20 +117,30 @@ public final class Constants { valasenValmeticsParameters.put("DryingStarted", VALASEN_START_DRYING_NAME); valasenValmeticsParameters.put("DryingStopped", VALASEN_STOP_DRYING_NAME); valasenValmeticsParameters.put("KilnName", VALASEN_KILIN_NAME); - valasenValmeticsParameters.put("KilinID", String.valueOf(VALASEN_KILIN_ID)); + //valasenValmeticsParameters.put("KilinID", String.valueOf(VALASEN_KILIN_ID)); valasenValmeticsParameters.put("Limit", String.valueOf(VALASEN_LIMIT)); return valasenValmeticsParameters; } + public static ArrayList<Integer> getValasenValmeticsChamberIDS(){ + return VALASEN_VALMETICS_CHAMBER_IDS; + } + private static HashMap<String, String> getValasenWinccsensordataParameters(){ HashMap<String, String> valasenWinccsensordataParameters = new HashMap<>(); valasenWinccsensordataParameters.put("KwhName", VALASEN_KWH_NAME); valasenWinccsensordataParameters.put("Timestamp", VALASEN_TIMESTAMP_NAME); valasenWinccsensordataParameters.put("ValueIDName", VALASEN_VALUE_ID_NAME); valasenWinccsensordataParameters.put("ValueID", String.valueOf(VALASEN_VALUE_ID)); + //valasenWinccsensordataParameters.put("ValueID", String.valueOf(VALASEN_VALUE_ID)); return valasenWinccsensordataParameters; } + public static ArrayList<Integer> getValasenKwhChamberIDS(){ + return VALASEN_KWH_CHAMBER_IDS; + } + + // Arjang private static HashMap<String, HashMap<String, String>> getArjangTables(){ HashMap<String, HashMap<String, String>> arjangTables = new HashMap<>(); @@ -145,17 +162,25 @@ public final class Constants { arjangValmeticsParameters.put("DryingStarted", ARJANG_START_DRYING_NAME); arjangValmeticsParameters.put("DryingStopped", ARJANG_STOP_DRYING_NAME); arjangValmeticsParameters.put("KilnName", ARJANG_KILIN_NAME); - arjangValmeticsParameters.put("KilinID", String.valueOf(ARJANG_KILIN_ID)); + //arjangValmeticsParameters.put("KilinID", String.valueOf(ARJANG_KILIN_ID)); arjangValmeticsParameters.put("Limit", String.valueOf(ARJANG_LIMIT)); return arjangValmeticsParameters; } + public static ArrayList<Integer> getArjangValmeticsChamberIDS(){ + return ARJANG_VALMETICS_CHAMBER_IDS; + } + private static HashMap<String, String> getArjangWinccsensordataParameters(){ HashMap<String, String> arjangWinccsensordataParameters = new HashMap<>(); arjangWinccsensordataParameters.put("KwhName", ARJANG_KWH_NAME); arjangWinccsensordataParameters.put("Timestamp", ARJANG_TIMESTAMP_NAME); arjangWinccsensordataParameters.put("ValueIDName", ARJANG_VALUE_ID_NAME); - arjangWinccsensordataParameters.put("ValueID", String.valueOf(ARJANG_VALUE_ID)); + //arjangWinccsensordataParameters.put("ValueID", String.valueOf(ARJANG_VALUE_ID)); return arjangWinccsensordataParameters; } + + public static ArrayList<Integer> getArjangKwhChamberIDS(){ + return ARJANG_KWH_CHAMBER_IDS; + } } diff --git a/src/main/java/com/application/DB/DB.java b/src/main/java/com/application/DB/DB.java index fd0b15ab4c2889a1e1d95d4acdfd581762395473..c588236467d836296a036d3bfe9df737655bb30f 100644 --- a/src/main/java/com/application/DB/DB.java +++ b/src/main/java/com/application/DB/DB.java @@ -127,10 +127,6 @@ public class DB { } - public static void getData(){ - - } - public static Map<Integer, Map<String, Number>> setInputParameters() throws Exception { @@ -141,6 +137,12 @@ public class DB { boolean dimensionsRemoved = false; boolean moistureRemoved = false; + + HashMap<java.lang.String, java.lang.String> locationTables = null; + ArrayList<Integer> valmeticsChamberIDS = null; + ArrayList<Integer> kwhChamberIDS = null; + int numberOfChambers; + String extraInputParameter = ""; int locationID; int index = 0; @@ -151,20 +153,20 @@ public class DB { String moistureGoal = ""; // Valmetics parameters - String nameParameter = ""; - String kilinName = ""; - int kilinID = 0; - String startDryingTime = ""; - String stopDryingTime = ""; - String valmeticsTableName = ""; - int limit = 0; + String nameParameter; + String kilinName; + int kilinID; + String startDryingTime; + String stopDryingTime; + String valmeticsTableName; + int limit; // Kwh parameters - String kwhTableName = ""; - String KwhName = ""; - String timestamp = ""; - String valueIDName = ""; - int valueID = 0; + String kwhTableName; + String KwhName; + String timestamp; + String valueIDName; + int valueID; while(true){ @@ -183,44 +185,35 @@ public class DB { //System.out.println(location.getValue()); if (location.getKey() == 124) { - // Valmetics - valmeticsTableName = getValasenTableNames().get("Valmetics"); - nameParameter = location.getValue().get(getValasenTableNames().get("Valmetics")).get("Name"); - startDryingTime = location.getValue().get(getValasenTableNames().get("Valmetics")).get("DryingStarted"); - stopDryingTime = location.getValue().get(getValasenTableNames().get("Valmetics")).get("DryingStopped"); - kilinName = location.getValue().get(getValasenTableNames().get("Valmetics")).get("KilnName"); - kilinID = Integer.parseInt(location.getValue().get(getValasenTableNames().get("Valmetics")).get("KilinID")); - limit = Integer.parseInt(location.getValue().get(getValasenTableNames().get("Valmetics")).get("Limit")); - - // Kwh - kwhTableName = getValasenTableNames().get("Kwh"); - KwhName = location.getValue().get(getValasenTableNames().get("Kwh")).get("KwhName"); - timestamp = location.getValue().get(getValasenTableNames().get("Kwh")).get("Timestamp"); - valueIDName = location.getValue().get(getValasenTableNames().get("Kwh")).get("ValueIDName"); - valueID = Integer.parseInt(location.getValue().get(getValasenTableNames().get("Kwh")).get("ValueID")); + // If location is Valasen, then the database stores furu as fura, swedish. + if (TREE_SPECIES.equalsIgnoreCase("Furu")) { + TREE_SPECIES = "Fura"; + } + locationTables = getValasenTableNames(); + valmeticsChamberIDS = getValasenValmeticsChamberIDS(); + kwhChamberIDS = getValasenKwhChamberIDS(); } if (location.getKey() == 174) { - // Valmetics - valmeticsTableName = getArjangTableNames().get("Valmetics"); - nameParameter = location.getValue().get(getArjangTableNames().get("Valmetics")).get("Name"); - startDryingTime = location.getValue().get(getArjangTableNames().get("Valmetics")).get("DryingStarted"); - stopDryingTime = location.getValue().get(getArjangTableNames().get("Valmetics")).get("DryingStopped"); - kilinName = location.getValue().get(getArjangTableNames().get("Valmetics")).get("KilnName"); - kilinID = Integer.parseInt(location.getValue().get(getArjangTableNames().get("Valmetics")).get("KilinID")); - limit = Integer.parseInt(location.getValue().get(getArjangTableNames().get("Valmetics")).get("Limit")); - - // Kwh - kwhTableName = getArjangTableNames().get("Kwh"); - KwhName = location.getValue().get(getArjangTableNames().get("Kwh")).get("KwhName"); - timestamp = location.getValue().get(getArjangTableNames().get("Kwh")).get("Timestamp"); - valueIDName = location.getValue().get(getArjangTableNames().get("Kwh")).get("ValueIDName"); - valueID = Integer.parseInt(location.getValue().get(getArjangTableNames().get("Kwh")).get("ValueID")); + locationTables = getArjangTableNames(); + valmeticsChamberIDS = getArjangValmeticsChamberIDS(); + kwhChamberIDS = getArjangKwhChamberIDS(); } - // If location is Valasen, then the database stores furu as fura, swedish. - if (location.getKey() == 124 && TREE_SPECIES.equalsIgnoreCase("Furu")) { - TREE_SPECIES = "Fura"; - } + // Valmetics + valmeticsTableName = locationTables.get("Valmetics"); + nameParameter = location.getValue().get(locationTables.get("Valmetics")).get("Name"); + startDryingTime = location.getValue().get(locationTables.get("Valmetics")).get("DryingStarted"); + stopDryingTime = location.getValue().get(locationTables.get("Valmetics")).get("DryingStopped"); + kilinName = location.getValue().get(locationTables.get("Valmetics")).get("KilnName"); + //kilinID = Integer.parseInt(location.getValue().get(locationTables.get("Valmetics")).get("KilinID")); + limit = Integer.parseInt(location.getValue().get(locationTables.get("Valmetics")).get("Limit")); + + // Kwh + kwhTableName = locationTables.get("Kwh"); + KwhName = location.getValue().get(locationTables.get("Kwh")).get("KwhName"); + timestamp = location.getValue().get(locationTables.get("Kwh")).get("Timestamp"); + valueIDName = location.getValue().get(locationTables.get("Kwh")).get("ValueIDName"); + //valueID = Integer.parseInt(location.getValue().get(locationTables.get("Kwh")).get("ValueID")); System.out.printf("Tree species: \t%s\n", TREE_SPECIES); @@ -233,7 +226,7 @@ public class DB { treeSpecies = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + TREE_SPECIES + "%" + '"' + ") "; dimensions = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + DIMENSIONS + "%" + '"' + ") "; sawset = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + SAWSET + "%" + '"' + ") "; - moistureGoal = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + MOISTURE_GOAL + "%" + '"' + ") "; + moistureGoal = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + MOISTURE_GOAL + "\\\\%" + "%" + '"' + ") "; // 1. Checking if user input is empty. @@ -255,6 +248,20 @@ public class DB { System.out.printf("\nExtra parameters:\n %s\n\n", extraInputParameter); + + // Sets the lowest number of chambers to iterate through + numberOfChambers = Math.min(valmeticsChamberIDS.size(), kwhChamberIDS.size()); + + System.out.printf("\nnumberOfChambers: \t%d\n",numberOfChambers); + + for (int i = 0; i < numberOfChambers; i++) { + // Sets the kiln number + kilinID = valmeticsChamberIDS.get(i); + valueID = kwhChamberIDS.get(i); + + System.out.printf("KilinID: \t%d\n",kilinID); + System.out.printf("valueID: \t%d\n",valueID); + //System.out.println("Før results"); Map<Integer, Map<String, Number>> results = new TreeMap<>(getKwh(getZeroPointDate(locationID, extraInputParameter, nameParameter, kilinName, kilinID, startDryingTime, stopDryingTime, valmeticsTableName, limit), locationID, kwhTableName, KwhName, timestamp, valueIDName, valueID, index)); @@ -263,6 +270,7 @@ public class DB { intermediateHashMap.putAll(results); index += results.size(); //System.out.println("Etter results"); + } } @@ -272,7 +280,7 @@ public class DB { //results = getKwh(getZeroPointDate(locationID, extraInputParameter, nameParameter, kilinName, kilinID, startDryingTime, stopDryingTime, valmeticsTableName, limit)); // Checks if any dates where found, if not parameters are removed until dates are found - if (intermediateHashMap.size() <= NUMBER_OF_PERIODS) { + if (intermediateHashMap.size() < NUMBER_OF_PERIODS) { //System.out.println("\nInni if, sletter parameter:\n"); if (extraInputParameter.contains(sawset) && !sawsetRemoved) { extraInputParameter = extraInputParameter.replace(sawset, ""); @@ -384,7 +392,7 @@ public class DB { } } - System.out.println("\nFinal results size: " + finalResults.size()); + System.out.println("\nFinal results size: " + finalResults.size()+"\n\n"); // Defining a treemap to sort the data incrementally NavigableMap<Integer, Map<String, Number>> sortedFinalResults = new TreeMap<>(finalResults); @@ -457,7 +465,7 @@ public class DB { // Defining variables String formatedInTidTork = ""; - String formatedUtTidTork = ""; + String formatedUtTidTork; System.out.println(row.get("DryingSchedule").getStringValue()); @@ -537,11 +545,13 @@ public class DB { NavigableMap<String, String> sortedFinalResults = new TreeMap<>(dates); System.out.println("\n"); - +/* for (Map.Entry<String, String> entry : sortedFinalResults.entrySet()) { System.out.printf("Intid: \t%s\t\t\tUttid: \t%s\n",entry.getKey(),entry.getValue()); } + */ + System.out.printf("Size of dates: %s\n\n", sortedFinalResults.size()); diff --git a/src/main/java/com/application/GUI/InputPopUpWindow.java b/src/main/java/com/application/GUI/InputPopUpWindow.java index 6a7fdec3aab01a2fdf6c28cafb0bf99f7ba14b4b..a0ac17ba4e8cbb902f1ec74c4959fa612128ca08 100644 --- a/src/main/java/com/application/GUI/InputPopUpWindow.java +++ b/src/main/java/com/application/GUI/InputPopUpWindow.java @@ -55,7 +55,7 @@ public class InputPopUpWindow { "Furu", "Gran" ); - ComboBox<String> treeSpeciesList = new ComboBox<String>(treeSpecies); + ComboBox<String> treeSpeciesList = new ComboBox<>(treeSpecies); treeSpeciesList.setPromptText("Select Tree Species"); treeSpeciesList.setId("inputDropDownBox"); treeSpeciesList.setEditable(true); @@ -75,7 +75,7 @@ public class InputPopUpWindow { "50x225", "50x250" ); - ComboBox<String> dimensionsList = new ComboBox<String>(dimensions); + ComboBox<String> dimensionsList = new ComboBox<>(dimensions); dimensionsList.setPromptText("Select Dimensions"); dimensionsList.setId("inputDropDownBox"); dimensionsList.setEditable(true); @@ -91,7 +91,7 @@ public class InputPopUpWindow { "3ex", "4ex" ); - ComboBox<String> sawsetList = new ComboBox<String>(sawset); + ComboBox<String> sawsetList = new ComboBox<>(sawset); sawsetList.setPromptText("Select Dimensions"); sawsetList.setId("inputDropDownBox"); sawsetList.setEditable(true); @@ -107,10 +107,10 @@ public class InputPopUpWindow { "18%", "20%" ); - ComboBox<String> moistureList = new ComboBox<String>(moistureGoal); + ComboBox<String> moistureList = new ComboBox<>(moistureGoal); moistureList.setPromptText("Select Dimensions"); moistureList.setId("inputDropDownBox"); - moistureList.setEditable(true);; + moistureList.setEditable(true); // Bottom - start button @@ -122,7 +122,13 @@ public class InputPopUpWindow { TREE_SPECIES = treeSpeciesList.getValue(); DIMENSIONS = dimensionsList.getValue(); SAWSET = sawsetList.getValue(); - MOISTURE_GOAL = moistureList.getValue(); + if(moistureList.getValue() != null && moistureList.getValue().contains("%")) + { + MOISTURE_GOAL = moistureList.getValue().replace("%",""); + } else { + MOISTURE_GOAL = moistureList.getValue(); + } + // If the input is null, sets the value to be empty if (treeSpeciesList.getValue() == null) { @@ -168,8 +174,8 @@ public class InputPopUpWindow { try { - getData(); - //loadSingleSeries(setInputParameters(false,false,false,false)); + //getData(); + loadSingleSeries(setInputParameters()); //loadMultipleSeries(setInputParameters()); //loadSingleSeries(); //loadMultipleSeries(); diff --git a/target/classes/com/application/DB/DB.class b/target/classes/com/application/DB/DB.class index 00b5e6cf1bded86e7d423fbd6fc8086e98136a1c..626788e2c4562b7b4c26dd01f166ef51a86fc495 100644 Binary files a/target/classes/com/application/DB/DB.class and b/target/classes/com/application/DB/DB.class differ diff --git a/target/classes/com/application/GUI/InputPopUpWindow.class b/target/classes/com/application/GUI/InputPopUpWindow.class index ac025e16a74ffbc38b252cffa522a108424edd17..367d24f34bd804ecee1736d019c8420e3225f4b9 100644 Binary files a/target/classes/com/application/GUI/InputPopUpWindow.class and b/target/classes/com/application/GUI/InputPopUpWindow.class differ