diff --git a/src/main/java/com/application/DB/Constants.java b/src/main/java/com/application/DB/Constants.java index 0f56afce2094bc7b3ee8341d9d94544eaf51abf0..0493b05b25129f97099c5a35338aedf5ecb5e5d5 100644 --- a/src/main/java/com/application/DB/Constants.java +++ b/src/main/java/com/application/DB/Constants.java @@ -3,22 +3,18 @@ package com.application.DB; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; -import java.util.Map; /** * This class contains constants to be used related to database activities */ public final class Constants { - // Format for today's date - static DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - private Constants() { // Empty constructor } // Today's date - public static final String TODAYS_DATE = format.format(LocalDateTime.now()); + public static final String TODAYS_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now()); // User inputs public static String TREE_SPECIES = ""; @@ -27,79 +23,139 @@ public final class Constants { public static String MOISTURE_GOAL = ""; // Number of wanted drying periods - public static int NUMBER_OF_PERIODS = 1; // Database ID/name public static final String PROJECT_ID = "sf-drying-optimization"; - // Location Valasen(124) // Project settings - public static final int LOCATION_ID = 124; - public static final String TABLE_NAME_VALMATICS = "int_dk_valmaticsdryingbatches_v2"; - public static final String TABLE_NAME_KWH = "int_sd_winccsensordata"; + public static final int VALASEN_LOCATION_ID = 124; + public static final String VALASEN_TABLE_NAME_VALMATICS = "int_dk_valmaticsdryingbatches_v2"; + public static final String VALASEN_TABLE_NAME_KWH = "int_sd_winccsensordata"; // Parameters settings // Valmatics - public static final String NAME_PARAMATERS = "Name"; - public static final String START_DRYING_NAME = "DryingStarted"; - public static final String STOP_DRYING_NAME = "CalculatedStop"; - public static final String KILIN_NAME = "KilnName"; - public static int KILIN_ID = 5; // Kammer 5 - //public static int KILIN_ID = 6; // Kammer 6 - public static final int LIMIT = 1000; + public static final String VALASEN_NAME_PARAMATERS = "Name"; + public static final String VALASEN_START_DRYING_NAME = "DryingStarted"; + public static final String VALASEN_STOP_DRYING_NAME = "CalculatedStop"; + public static final String VALASEN_KILIN_NAME = "KilnName"; + 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; // Winccsensordata - public static final String KWH_NAME = "VariantValue"; - public static final String TIMESTAMP_NAME = "Timestamp"; - public static final String VALUE_ID_NAME = "ValueID"; - public static final int VALUE_ID = 51; // Kammer 5 - //public static final int VALUE_ID = 56; // Kammer 6 - - + public static final String VALASEN_KWH_NAME = "VariantValue"; + public static final String VALASEN_TIMESTAMP_NAME = "Timestamp"; + 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 - -/* // Location Arjang(174) // Project settings - public static final int LOCATION_ID = 174; - public static final String TABLE_NAME_VALMATICS = "int_dk_valmaticsdryingbatches"; - public static final String TABLE_NAME_KWH = "int_sd_swappconsensordata"; + public static final int ARJANG_LOCATION_ID = 174; + public static final String ARJANG_TABLE_NAME_VALMATICS = "int_dk_valmaticsdryingbatches"; + public static final String ARJANG_TABLE_NAME_KWH = "int_sd_swappconsensordata"; // Parameters settings // Valmatics - public static final String NAME_PARAMATERS = "Name"; - public static final String START_DRYING_NAME = "DryingStarted"; - public static final String STOP_DRYING_NAME = "DryingCompleted"; - public static final String KILIN_NAME = "KilinId"; - public static int KILIN_ID = 18; - //public static int KILIN_ID = 18554; - public static final int LIMIT = 1000; + public static final String ARJANG_NAME_PARAMATERS = "Name"; + 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 = 18554; + public static final int ARJANG_LIMIT = 1000; // Swappconsensordata - public static final String KWH_NAME = "RealValue"; - public static final String TIMESTAMP_NAME = "Timestamp"; - public static final String VALUE_ID_NAME = "ValueID"; - public static final int VALUE_ID = 19; - + 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 HashMap<Integer, HashMap<String, HashMap<String, String>>> getSawmills(){ + HashMap<Integer, HashMap<String, HashMap<String, String>>> sawmillInfo = new HashMap<>(); + sawmillInfo.put(VALASEN_LOCATION_ID, getValasenTables()); + sawmillInfo.put(ARJANG_LOCATION_ID, getArjangTables()); + return sawmillInfo; + } + // Valasen + private static HashMap<String, HashMap<String, String>> getValasenTables(){ + HashMap<String, HashMap<String, String>> valasenTables = new HashMap<>(); + valasenTables.put(getValasenTableNames().get("Valmetics"), getValasenValmeticsParameters()); + valasenTables.put(getValasenTableNames().get("Kwh"), getValasenWinccsensordataParameters()); + return valasenTables; + } + public static HashMap<String, String> getValasenTableNames(){ + HashMap<String, String> valasenTables = new HashMap<>(); + valasenTables.put("Valmetics", VALASEN_TABLE_NAME_VALMATICS); + valasenTables.put("Kwh", VALASEN_TABLE_NAME_KWH); + return valasenTables; + } + private static HashMap<String, String> getValasenValmeticsParameters(){ + HashMap<String, String> valasenValmeticsParameters = new HashMap<>(); + valasenValmeticsParameters.put("Name", VALASEN_NAME_PARAMATERS); + 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("Limit", String.valueOf(VALASEN_LIMIT)); + return valasenValmeticsParameters; + } + 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)); + return valasenWinccsensordataParameters; + } + // Arjang + private static HashMap<String, HashMap<String, String>> getArjangTables(){ + HashMap<String, HashMap<String, String>> arjangTables = new HashMap<>(); + arjangTables.put(getArjangTableNames().get("Valmetics"), getArjangValmeticsParameters()); + arjangTables.put(getArjangTableNames().get("Kwh"), getArjangWinccsensordataParameters()); + return arjangTables; + } + public static HashMap<String, String> getArjangTableNames(){ + HashMap<String, String> valasenTables = new HashMap<>(); + valasenTables.put("Valmetics", ARJANG_TABLE_NAME_VALMATICS); + valasenTables.put("Kwh", ARJANG_TABLE_NAME_KWH); + return valasenTables; + } + private static HashMap<String, String> getArjangValmeticsParameters(){ + HashMap<String, String> arjangValmeticsParameters = new HashMap<>(); + arjangValmeticsParameters.put("Name", ARJANG_NAME_PARAMATERS); + 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("Limit", String.valueOf(ARJANG_LIMIT)); + return arjangValmeticsParameters; + } + 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)); + return arjangWinccsensordataParameters; + } } diff --git a/src/main/java/com/application/DB/DB.java b/src/main/java/com/application/DB/DB.java index 70adc812f4a4acb8b49cb7591cd8b0b2337013b9..3116ced19577d0effe77b704a29a9c28e53c1e92 100644 --- a/src/main/java/com/application/DB/DB.java +++ b/src/main/java/com/application/DB/DB.java @@ -60,6 +60,8 @@ public class DB { //getKwh(); //getName(); //getZeroPointDate(); + System.out.println(setInputParameters()); + } @@ -125,67 +127,142 @@ public class DB { } - public static Map<Integer, Map<String, Number>> setInputParameters() throws Exception { - // If location is Valasen, then the database stores furu as fura, swedish. - if(LOCATION_ID == 124 && TREE_SPECIES.equalsIgnoreCase("Furu")) { - TREE_SPECIES = "Fura"; - } + public static Map<Integer, Map<String, Number>> setInputParameters() throws Exception { + //public static Map<String, String> setInputParameters() throws Exception { + Map<Integer, Map<String, Number>> allDryingPeriods = new TreeMap<>(); - System.out.printf("Tree species: \t%s\n",TREE_SPECIES); - System.out.printf("Width: \t\t\t%s\n",DIMENSIONS); - System.out.printf("Sawset: \t\t%s\n",SAWSET); - System.out.printf("Moisture: \t\t%s\n",MOISTURE_GOAL); String extraInputParameter = ""; - String treeSpecies = "AND LOWER(" +NAME_PARAMATERS+ ") LIKE LOWER("+'"'+"%"+ TREE_SPECIES +"%"+'"'+") "; - String dimensions = "AND LOWER(" +NAME_PARAMATERS+ ") LIKE LOWER("+'"'+"%"+ DIMENSIONS +"%"+'"'+") "; - String sawset = "AND LOWER(" +NAME_PARAMATERS+ ") LIKE LOWER("+'"'+"%"+ SAWSET +"%"+'"'+") "; - String moistureGoal = "AND LOWER(" +NAME_PARAMATERS+ ") LIKE LOWER("+'"'+"%"+ MOISTURE_GOAL +"%"+'"'+") "; + int locationID = 0; + int index = 0; + // Valmetics parameters + String nameParameter = ""; + String kilinName = ""; + int kilinID = 0; + String startDryingTime = ""; + String stopDryingTime = ""; + String valmeticsTableName = ""; + int limit = 0; + + // Kwh parameters + String kwhTableName = ""; + String KwhName = ""; + String timestamp = ""; + String valueIDName = ""; + int valueID = 0; + + for (HashMap.Entry<Integer, HashMap<String, HashMap<String, String>>> location : Constants.getSawmills().entrySet()) { + System.out.printf("\n\nLocation ID: \t%s\t\t\tRest of map: \t%s\n", location.getKey(), location.getValue()); + + locationID = location.getKey(); + + //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.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")); + } + // If location is Valasen, then the database stores furu as fura, swedish. + if (location.getKey() == 124 && TREE_SPECIES.equalsIgnoreCase("Furu")) { + TREE_SPECIES = "Fura"; + } - // Input parameters - if(!TREE_SPECIES.isEmpty()){ - extraInputParameter += treeSpecies; - } - if(!DIMENSIONS.isEmpty()){ - extraInputParameter += dimensions; - } - if(!SAWSET.isEmpty()){ - extraInputParameter += sawset; - } - if(!MOISTURE_GOAL.isEmpty()){ - extraInputParameter += moistureGoal; - } + /* + System.out.printf("Tree species: \t%s\n", TREE_SPECIES); + System.out.printf("Width: \t\t\t%s\n", DIMENSIONS); + System.out.printf("Sawset: \t\t%s\n", SAWSET); + System.out.printf("Moisture: \t\t%s\n", MOISTURE_GOAL); + + */ + + String treeSpecies = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + TREE_SPECIES + "%" + '"' + ") "; + String dimensions = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + DIMENSIONS + "%" + '"' + ") "; + String sawset = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + SAWSET + "%" + '"' + ") "; + String moistureGoal = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + MOISTURE_GOAL + "%" + '"' + ") "; + // Input parameters + if (!TREE_SPECIES.isEmpty()) { + extraInputParameter += treeSpecies; + } + if (!DIMENSIONS.isEmpty()) { + extraInputParameter += dimensions; + } + if (!SAWSET.isEmpty()) { + extraInputParameter += sawset; + } + if (!MOISTURE_GOAL.isEmpty()) { + extraInputParameter += moistureGoal; + } - Map<Integer, Map<String, Number>> results; - while(true){ - System.out.printf("\nExtra parameters:\n %s\n\n",extraInputParameter); - // Retrieves the dates - results = getKwh(getZeroPointDate(extraInputParameter)); - - // Checks if any dates where found, if not parameters are removed until dates are found - if(results.size()<NUMBER_OF_PERIODS){ - if(extraInputParameter.contains(sawset)) { - extraInputParameter = extraInputParameter.replace(sawset,""); - System.out.println("Sawset is removed"); - } else if(extraInputParameter.contains(treeSpecies)) { - extraInputParameter = extraInputParameter.replace(treeSpecies,""); - System.out.println("Tree species is removed"); - } else if(extraInputParameter.contains(dimensions)) { - extraInputParameter = extraInputParameter.replace(dimensions,""); - System.out.println("Dimensions is removed"); - } else if(extraInputParameter.contains(moistureGoal)) { - extraInputParameter = extraInputParameter.replace(moistureGoal,""); - System.out.println("Moisture goal is removed"); + Map<Integer, Map<String, Number>> results = new TreeMap<>(); + + while (true) { + System.out.printf("\nExtra parameters:\n %s\n\n", extraInputParameter); + // Retrieves the dates + //results = getKwh(getZeroPointDate(locationID, extraInputParameter, nameParameter, kilinName, kilinID, startDryingTime, stopDryingTime, valmeticsTableName, limit)); + results = getKwh(getZeroPointDate(locationID, extraInputParameter, nameParameter, kilinName, kilinID, startDryingTime, stopDryingTime, valmeticsTableName, limit), + locationID, kwhTableName, KwhName, timestamp,valueIDName, valueID, index); + + // Checks if any dates where found, if not parameters are removed until dates are found + if (results.size() < NUMBER_OF_PERIODS) { + if (extraInputParameter.contains(sawset)) { + extraInputParameter = extraInputParameter.replace(sawset, ""); + System.out.println("Sawset is removed"); + } else if (extraInputParameter.contains(treeSpecies)) { + extraInputParameter = extraInputParameter.replace(treeSpecies, ""); + System.out.println("Tree species is removed"); + } else if (extraInputParameter.contains(dimensions)) { + extraInputParameter = extraInputParameter.replace(dimensions, ""); + System.out.println("Dimensions is removed"); + } else if (extraInputParameter.contains(moistureGoal)) { + extraInputParameter = extraInputParameter.replace(moistureGoal, ""); + System.out.println("Moisture goal is removed"); + } else break; } else break; } - else break; + allDryingPeriods.putAll(results); + index = results.size(); + } + System.out.println(allDryingPeriods.size()); + for (Map.Entry<Integer, Map<String, Number>> entry : allDryingPeriods.entrySet()) { + System.out.printf("Timestamp: \t%s\t\t\tkWh: \t%s\n", entry.getKey(), entry.getValue()); } - return results; + + return allDryingPeriods; } @@ -195,13 +272,15 @@ public class DB { * @return the results * @throws Exception returns potential error */ - public static Map<Integer, Map<String, Number>> getKwh(Map<String, String> dates) throws Exception { + + public static Map<Integer, Map<String, Number>> getKwh(Map<String, String> dates, int locationID, + String kwhTableName, String KwhName, + String timestamp, String valueIDName, + int valueID, int index) throws Exception { // Initializing the data map to store the results Map<Integer, Map<String, Number>> finalResults = new HashMap<>(); - int index = 0; - for (Map.Entry<String, String> entry : dates.entrySet()) { //System.out.printf("Intid: \t%s\t\t\tOuttid: \t%s\n",entry.getKey(),entry.getValue()); @@ -210,13 +289,13 @@ public class DB { // Preparing a query statement // Query statement 124 Valåsen - final String sqlStatement = "SELECT `" + TIMESTAMP_NAME + "`, `"+KWH_NAME+"` " + - "FROM `" + PROJECT_ID + "." + LOCATION_ID + "." + TABLE_NAME_KWH + "` " + - "WHERE " + TIMESTAMP_NAME + " BETWEEN " + '"'+ entry.getKey() + '"' + + final String sqlStatement = "SELECT `" + timestamp + "`, `" + KwhName + "` " + + "FROM `" + PROJECT_ID + "." + locationID + "." + kwhTableName + "` " + + "WHERE " + timestamp + " BETWEEN " + '"' + entry.getKey() + '"' + " AND " + '"' + entry.getValue() + '"' + - " AND " + VALUE_ID_NAME + " = " + VALUE_ID + " " + - " AND " + KWH_NAME + " <> 0 " + - " ORDER BY " + TIMESTAMP_NAME + " ASC"; + " AND " + valueIDName + " = " + valueID + " " + + " AND " + KwhName + " <> 0 " + + " ORDER BY " + timestamp + " ASC"; System.out.println(sqlStatement); @@ -229,46 +308,46 @@ public class DB { for (FieldValueList row : result.iterateAll()) { // Sets the baseline in order to reset the kWh counter - if (baseline == 0){ - baseline = row.get(""+KWH_NAME+"").getNumericValue().intValue(); + if (baseline == 0) { + baseline = row.get("" + KwhName + "").getNumericValue().intValue(); } //System.out.println("baseline: "+baseline); // kWh value - int variantValue = row.get(""+KWH_NAME+"").getNumericValue().intValue()-baseline; //-baseline + int variantValue = row.get("" + KwhName + "").getNumericValue().intValue() - baseline; //-baseline // Retrieving the wanted data - long timeStamp = row.get(""+TIMESTAMP_NAME+"").getTimestampValue() / 1000; + long timeStamp = row.get("" + timestamp + "").getTimestampValue() / 1000; // Riktig format, men i string String formatedTimeStamp = getDateFormat().format(timeStamp); // Checks for negative values - if(variantValue > 0) { + if (variantValue > 0) { // Adding the data to a list in order to sort through later data.put(formatedTimeStamp, variantValue); } //System.out.printf("Timestamp: \t%s\t\t\tkWh: \t%s\t\t\tBaseline: %s\n",formatedTimeStamp,variantValue,baseline); // Checks if the data is empty - } + } System.out.println("Data size: " + data.size()); NavigableMap<String, Number> sortedData = new TreeMap<>(data); - if(!sortedData.isEmpty() && sortedData.size()>50) { - finalResults.put(index,sortedData); + if (!sortedData.isEmpty() && sortedData.size() > 50) { + finalResults.put(index, sortedData); index += 1; } } - System.out.println("\nFinal results size: "+finalResults.size()); + System.out.println("\nFinal results size: " + finalResults.size()); // Defining a treemap to sort the data incrementally NavigableMap<Integer, Map<String, Number>> sortedFinalResults = new TreeMap<>(finalResults); for (Map.Entry<Integer, Map<String, Number>> entry : sortedFinalResults.entrySet()) { - System.out.printf("Timestamp: \t%s\t\t\tkWh: \t%s\n",entry.getKey(),entry.getValue()); + System.out.printf("Timestamp: \t%s\t\t\tkWh: \t%s\n", entry.getKey(), entry.getValue()); } return sortedFinalResults; @@ -287,59 +366,43 @@ public class DB { * @return Returns a treemap that sorts the Start- and End time for each drying period incrementally * @throws Exception Throws exception if an error occurs */ - private static Map<String, String> getZeroPointDate(String extraUserInput) throws Exception{ + private static Map<String, String> getZeroPointDate(int locationID, String extraUserInput, String nameParameter, + String kilinName, int kilinID, String startDryingTime, + String stopDryingTime, String valmeticsTableName, int limit) + throws Exception { // Initializing the dates map to store the results Map<String, String> dates = new HashMap<>(); - // Preparing a query statement - /* - final String sqlStatement = - "SELECT InTidTork, UtTidTork FROM `sf-drying-optimization.124.int_gs_ds_sipalpackages`" + - "WHERE Tork Like \"%5%\" AND InTidTork BETWEEN \"2021-01-30 08:51:03\" " + - "AND \"2022-03-15 11:10:09\" ORDER BY InTidTork ASC"; - */ - // Defining extra parameters if required String extraInputParameter = ""; extraInputParameter += extraUserInput; - if(LOCATION_ID == 124){ + if(locationID == 124){ extraInputParameter += "AND CalculatedStart BETWEEN \"1990-01-01 00:00:00\" AND \"" + TODAYS_DATE + "\" "; } - if(LOCATION_ID == 174){ + if(locationID == 174){ // KILIN_ID starts at 0 not 1 in the database. - KILIN_ID -= 1; + kilinID -= 1; } - // Sqlstatement for Valåsen(124) + + // Sqlstatement final String sqlStatement = - "SELECT MAX("+ NAME_PARAMATERS +") as DryingSchedule, MAX("+KILIN_NAME+") as Kiln_ID, " + START_DRYING_NAME + ", MAX("+STOP_DRYING_NAME+") as DryingCompleted " + - "FROM `" + PROJECT_ID + "." + LOCATION_ID + "." + TABLE_NAME_VALMATICS + "` " + - "WHERE " + KILIN_NAME + " = " + KILIN_ID + " " + - "AND "+START_DRYING_NAME+" BETWEEN \"1990-01-01 00:00:00\" AND \"" + TODAYS_DATE + "\" " + - "AND "+STOP_DRYING_NAME+" BETWEEN \"1990-01-01 00:00:00\" AND \"" + TODAYS_DATE + "\" " + + "SELECT MAX("+ nameParameter +") as DryingSchedule, MAX("+kilinName+") as Kiln_ID, " + startDryingTime + ", MAX("+stopDryingTime+") as DryingCompleted " + + "FROM `" + PROJECT_ID + "." + locationID + "." + valmeticsTableName + "` " + + "WHERE " + kilinName + " = " + kilinID + " " + + "AND "+startDryingTime+" BETWEEN \"1990-01-01 00:00:00\" AND \"" + TODAYS_DATE + "\" " + + "AND "+stopDryingTime+" BETWEEN \"1990-01-01 00:00:00\" AND \"" + TODAYS_DATE + "\" " + extraInputParameter + - "AND LOWER(" +NAME_PARAMATERS+ ") NOT LIKE LOWER("+'"'+"%"+ "test" +"%"+'"'+") " + - "Group by "+ START_DRYING_NAME + " " + - "Order by "+ START_DRYING_NAME + " ASC " + - "LIMIT " + LIMIT; + "AND LOWER(" +nameParameter+ ") NOT LIKE LOWER("+'"'+"%"+ "test" +"%"+'"'+") " + + "Group by "+ startDryingTime + " " + + "Order by "+ startDryingTime + " ASC " + + "LIMIT " + limit; System.out.println(sqlStatement); - /* - // Sqlstatement for Årjang(174) - final String sqlStatement = - "SELECT MAX(Name) as DryingSchedule, MAX(KilinId)+1 as KilnName, DryingStarted, Max(DryingCompleted) as DryingCompleted\n" + - "FROM `" + PROJECT_ID + "." + LOCATION_ID + "." + TABLE_NAME_VALMATICS + "` " + - "WHERE KilinId = 16 \n" + - "AND DATE(DryingStarted) BETWEEN \"1990-08-17\" AND \"2022-08-17\"\n" + - "AND DATE(DryingCompleted) BETWEEN \"1990-08-17\" AND \"2022-08-17\"\n" + - "Group by DryingStarted\n" + - "Order by DryingStarted desc"; - - */ // Retrieves the results from the queryjob TableResult result = createQueryJob(sqlStatement); @@ -440,46 +503,5 @@ public class DB { // Returns a treemap that sorts the dates incrementally return new TreeMap<>(sortedFinalResults); - -/* - // Defining a treemap to sort through the data - NavigableMap<String, String> dataSet = new TreeMap<>(dates); - - // Defining a hashmap to store the final sorted data - Map<String, String> sortedDates = new HashMap<>(); - - // Iterating through the data in order to find and set a zeropoint for the dates. - for (Map.Entry<String, String> entry : dataSet.entrySet()) { - - // Retrieving the entry key and value - String inTid = entry.getKey(); - String utTid = entry.getValue(); - - // Format the date to LocalDateTime datatype - LocalDateTime date = LocalDateTime.parse(inTid, format); - // Creates a future date to compare against one day forward in time - LocalDateTime dateNowPlus = date.plusDays(1); - String formatedDateNowPlus = format.format(dateNowPlus); - - try { - // Retrieves the next entry in the list - String next = dataSet.higherEntry(entry.getKey()).getKey(); - - // Checks if the next date is longer than 1 day, - // if so the current date is the last intidtork date and - // is the one we will use in order to reset the kWh. - if(next.compareTo(formatedDateNowPlus) > 0){ - // Storing the dates that will be used for resetting kWh. - sortedDates.put(inTid,utTid); - } - } catch (NullPointerException e){ - // Can't find any more iterations, breaks out of the loop. - break; - } - } - // Defining a treemap to sort through the data - return new TreeMap<>(sortedDates); - - */ } -} \ No newline at end of file +} diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java index 2aa9836dc1803e90b90ccd6e1f0ffb97d7a63fa2..5d80390d37b455811231c6c7fdd3131093891fce 100644 --- a/src/main/java/com/application/GUI/LineChartFunctionality.java +++ b/src/main/java/com/application/GUI/LineChartFunctionality.java @@ -53,7 +53,6 @@ public class LineChartFunctionality { for (Map.Entry<Integer, Map<String, Number>> entryKwh : userInput.entrySet()) { Map data = entryKwh.getValue(); //System.out.println(data.size()); - XYChart.Series<String, Number> newSeries = new XYChart.Series<String, Number>(); int index = 0; for (Object entryData : data.entrySet()) { diff --git a/src/main/java/com/application/Main.java b/src/main/java/com/application/Main.java index bd571fe7ed226785fe5ae08b069605b8059a6b79..51c2313ff49887a6528ea41043970381987def2d 100644 --- a/src/main/java/com/application/Main.java +++ b/src/main/java/com/application/Main.java @@ -1,5 +1,6 @@ package com.application; +import com.application.DB.Constants; import com.application.GUI.InputPopUpWindow; import com.application.GUI.OutputPopUpWindow; import com.application.GUI.RingProgressIndicator; @@ -121,6 +122,8 @@ public class Main extends Application { // Displays the input parameters popup window InputPopUpWindow.display(); + + System.out.println(Constants.getSawmills()); } /** diff --git a/target/classes/com/application/DB/DB.class b/target/classes/com/application/DB/DB.class index 82478f7c1f0a59ad25689f282837d8015f388f7a..ec94bb2562c0057e24be6028107eec5cfcf34df4 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/Main$1WorkerThread.class b/target/classes/com/application/Main$1WorkerThread.class index 85f8b6b57414a54f365625d92ec3237bc2e6d237..8b34aeaa44ad3497f9d1132d6e88cf8bf0cb46f2 100644 Binary files a/target/classes/com/application/Main$1WorkerThread.class and b/target/classes/com/application/Main$1WorkerThread.class differ diff --git a/target/classes/com/application/Main.class b/target/classes/com/application/Main.class index b75fd902a89b66c4ea42cc02d24828f3f32a6494..d2bf5a43d4db88a06915f89a71f9d0b69159cbad 100644 Binary files a/target/classes/com/application/Main.class and b/target/classes/com/application/Main.class differ