From 33639486b5e912f8002ee12ce8fa862e56783cc7 Mon Sep 17 00:00:00 2001
From: emtunhei <emtunhei@stud.ntnu.no>
Date: Fri, 11 Mar 2022 12:16:30 +0100
Subject: [PATCH] Full functionality of the getZeroPointDate() function!
 Returns a hashmap containging the final intditork and the corresponding
 uttidtork values.

---
 src/main/java/com/application/DB/DB.java      |  53 ++++++++++--------
 .../GUI/graphical_user_interface.fxml         |   4 +-
 target/classes/com/application/DB/DB.class    | Bin 10627 -> 10708 bytes
 3 files changed, 31 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/application/DB/DB.java b/src/main/java/com/application/DB/DB.java
index 600fb7c..5defc3d 100644
--- a/src/main/java/com/application/DB/DB.java
+++ b/src/main/java/com/application/DB/DB.java
@@ -7,12 +7,9 @@ import com.google.cloud.bigquery.*;
 import java.io.File;
 import java.io.FileInputStream;
 import java.sql.Timestamp;
-import java.text.DateFormat;
 import java.text.SimpleDateFormat;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.time.temporal.TemporalAccessor;
 import java.util.*;
 
 /**
@@ -186,13 +183,13 @@ public class DB {
         //return data;
     }
 
-    private static void getZeroPointDate() throws Exception{
+    private static Map<String, String> getZeroPointDate() throws Exception{
 
         // Initializing a date format in the data type DateTimeFormatter
         // Required for iterating through the dates.
         DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 
-        // Initializing the data map to store the results
+        // Initializing the dates map to store the results
         Map<String, String> dates = new HashMap<>();
 
         // Preparing a query statement
@@ -204,16 +201,19 @@ public class DB {
         // Creates a job configuration
         queryJob = getJob(QueryJobConfiguration.newBuilder(sqlStatement).build());
 
-        // Iterating through the results
+        // Retrieves the results from the queryjob
         TableResult result = queryJob.getQueryResults();
+
         System.out.println("InTidTork\t\t\tUtTidTork");
+
+        // Iterating through the results
         for (FieldValueList row : result.iterateAll()) {
 
             // Defining variables
             String formatedInTidTork;
             String formatedUtTidTork;
 
-            // Retrieving the wanted data
+            // Retrieving the data
             // InTidTork:
             if(!row.get("InTidTork").isNull()){
                 long InTidTorkLong = row.get("InTidTork").getTimestampValue()/1000;
@@ -232,42 +232,47 @@ public class DB {
                 formatedUtTidTork = "";
             }
 
-            dates.put(formatedInTidTork,formatedUtTidTork);
             //System.out.printf("%s\t\t\t%s\n",formatedInTidTork,formatedUtTidTork);
+
+            // Adds the data to the dates map
+            dates.put(formatedInTidTork,formatedUtTidTork);
         }
+
+        // Defining a treemap to sort through the data
         NavigableMap<String, String> dataSet = new TreeMap<>(dates);
 
-       /*
-        for (Map.Entry<String, String> entry : dataSet.entrySet()) {
-            System.out.printf("Key: %s\t\t\tValue: %s\n",entry.getKey(),entry.getValue());
-        }
-        */
+        // 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
-            String key = entry.getKey();
+            // Retrieving the entry key and value
+            String inTid = entry.getKey();
+            String utTid = entry.getValue();
 
             // Format the date to LocalDateTime datatype
-            LocalDateTime date = LocalDateTime.parse(key, format);
-            // Creates a future date to compare against
+            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 {
-                String next = dataSet.higherEntry(entry.getKey()).getKey(); // next
-
-                System.out.printf("Current date: %s\t\t\tPluss 1: %s\t\t\tNext date: %s\n",key,formatedDateNowPlus,next);
+                // Retrieves the next entry in the list
+                String next = dataSet.higherEntry(entry.getKey()).getKey();
 
-                //System.out.printf("Neste: %s\n\n",next);
+                // 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){
-                    System.out.printf("Inni if!!@@, Er next mindre enn formated?\nNext, skal være større: %s\nFormated, skal være mindre: %s\n\n",next,formatedDateNowPlus);
+                    // Storing the dates that will be used for resetting kwh's.
+                    sortedDates.put(inTid,utTid);
                 }
             } catch (NullPointerException e){
-                System.out.println(e.getMessage());
+                // Can't find any more iterations, breaks out of the loop.
+                break;
             }
         }
-
+        return sortedDates;
     }
 }
\ No newline at end of file
diff --git a/target/classes/com.application/GUI/graphical_user_interface.fxml b/target/classes/com.application/GUI/graphical_user_interface.fxml
index 975d47d..4d8f5c5 100644
--- a/target/classes/com.application/GUI/graphical_user_interface.fxml
+++ b/target/classes/com.application/GUI/graphical_user_interface.fxml
@@ -55,14 +55,14 @@
                      <left>
                         <ImageView fitHeight="50.0" fitWidth="50.0" pickOnBounds="true" preserveRatio="true" translateX="5.0" BorderPane.alignment="CENTER">
                            <image>
-                               <Image url="@moelven_logo_m.jpg" />
+                               <Image url="@moelven_logo_m.png" />
                            </image>
                         </ImageView>
                      </left>
                      <center>
                         <ImageView fitHeight="30.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true">
                            <image>
-                              <Image url="@moelven_logo_title.jpg" />
+                              <Image url="@moelven_logo_title.png" />
                            </image>
                         </ImageView>
                      </center>
diff --git a/target/classes/com/application/DB/DB.class b/target/classes/com/application/DB/DB.class
index 4f39a5616a61964b092c667dfb23974502bcd92a..b8c993545329c3ff8fe3fd7b263cd97cde2e4748 100644
GIT binary patch
delta 3533
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

delta 3392
zcmcZ-+#Fng>ff$?3=9k=jQhA40vRr`GhF6ixWdK2#Bh~^;Tjjib%q-t&P{fPTO16x
zxfnPYuCg=S;bP!sxXZ<GkKsOu^?;q>Ar}Kb!y_(+42H*C3{M!If>_VE7(^MKvopNl
zV0Z;$z6KF*K+<p78Qy_Zyys%5|G@B(i{TT)XLg1!+ze6--`E+xb20p2_{q-ji-X}e
z7lRVRRS^FV7sFqMe_Raz85!6a8MzoV7%p)zGI237GqP|ovNE!9F=Q~Zb24Nwa<DUU
zaxwg1<mP1LVdUjt<l|!GXB6OK6l4_QW)x-=;bs(N6ax|B?2Hl|jP;US3>J)1T#V9;
zGF*(ZjB*@|@*s`^D+3rXzW|x6$i=9{sLaK{#Hhl>sLH6u&8W_(!Op13#o)%M#lfh}
z!KlN*s0-4k$HA!2!DztFXvoFj$7saCXw1%N0&;>W7o!=YIR~Q!2csniqZLT4H3y@O
z69=O$H=`Y+JvXBRqX;{rBR4|~qZ2!$GZ&)^qbrDT18H;zsqx@o^yFfQWAx%+^k!%D
z;bKT*^krxC+kBVtG$Yq7c1C}8hCA#G4>xaOmSAKIn0%V$CqGwleo;wkic4ZiA|r!@
z&*Xd|vB?KngC;w1T1<{%<K$sy3}k0?W@ijyXAIsf&$fn<g*iL5a`H{~LzB;OY}W~4
zXOv)P3}t6@WM>RxXY^rY;0n$!ElN&x%gjk-WMFr3(#uLLOXOk5X2_Ymk<(Nxn=zb`
zfjKn9nVm6$hcS{diia_pF=p}~&T7|e##na7I3C7$#snV5M1~wj24Rq1{hY+Sbp4Qw
zqWtp2q?}Y9#w5mM9)?W}IqZxnJdCM~X*>*N4COqG>5Q3-42F{%d8H=HittZ<%B9Pj
z#hA^*n8TRM!<fgIKUtnzU95wllbx{uq^*#hu?Qqt%*dbv)x<Hmj$4Acgt2t;Om0QC
z03OCN#`4Jrxb=lA7%SNst9Tfz8Ee=XYk3&!80#l9@tl=z02$QC&e#MpsF{bMi=mr`
zA(J7Ck--#hq=BUHWO-h3?iR*YcE&ay#&*Vz$&S2I%AGunU5w%Ej6pn%-Hbi#jJ-UJ
zeT@C=jKMsN6BsA*Fl=X>G`Wt~CVn#G6n4g`JdD#Ar?WH8;9;D}IE#^iGbA%NHMk@(
zw}6LnHsc%~h9ZVycE-6pjPn@h^DrD{T)@t_5X4!;&KStUxR`MXBZD9~EK5r=bM!-s
zQd4~s3wRi^8JBM2b7N#)##leuli!Ltn{oN%Hhxv^6^tv{8AEs&S23=hyp8{Z>>9?2
zj0_Bn44k1QA(<&5`9<06jG;V?YZ=$EGp?U}M?j)}1LGt{1_7`Y;OGi2Day=CXJ-uK
zVcf{LiHC7B;}(#+w(>A;W8BWjpzmB-RFs-mqL7kUl4_-(TFlAG8IV(2T&!RS<@u#n
zAY{3C7<Vx4WMs(j%*)GE$V^jIba2p7a4k~E1F6c*%nL{<N>xbB%Tq|pFUn0UNlmfm
z0vVvAP@J8ZqfmBuSy8G&amnEwMMYrSxZI%1P!!~5=A}U8xh881Dzfr0?qaOpJYDcD
z6XTxEts;r+!a^E8U_XL`(KoTcS~G0&6X{KpSIbyzekY^G$j6nQTH>2pT%4Gm%FeiV
za<!a)L<U1311RvgKq-TPfq|2O5tJJk7#VUI7#Q>!7#SED7#LW!wlgqpWME)mV#s4)
zU|<6aN-*RzFfj0d*{lo&4228~3|yeN25FwGB(J6qQp?A{%)r1P%fQ7T#~{og57z@K
zc}o~d!FtLV${Cm#awnI|FJ#P{EUBPe4>DPcfrUYeL6M<?p^|}-L6{+!p^BlJfr){O
zA&#Mjp_YMxA&r3vDqF|Ez!1T}@t;AHfrXu+o}HnAouQGPp^1T!ouP^AKLZ<Bm;p)9
zot>fSKZ5`R8#_ZiOdPJEp7}om69W^(BnAeCW(EcZ76wKJB?eB07KT=kV;LA2jKCqs
zz`(MDK@br*p!$Y^!GeLA!4mFSknT2yb`+Di7&;g_p(eR8FoBC}xg88bI~atwO}0{$
z0f(L#1E?T(XJBUVVBll$WDsHSVvuEUM{*DsC|`q&ncS)v#h5qwfugb(DD=d@MtU;z
zF!VAoFo-aif+Lub0Tfc43`~C*wAmT@q>&8bWawv@z`zWOcg7qB76wiR28KzKeU;k9
zcQd#}YHeq5_tV+{4hK-QnlbQBex#&d-^Vb4p&#teAO;SGNCs_&i42n%SQ#=Iq!}hN
zOkrSSC}ZGbn94AXfrG(|!HQuz!wd!%1`dWUhM5er7#JA18QK|UGfZP(WKdzqW0=D*
zmw}040s|AnJcjuU%nS<{7#Khvfv8`|zyOt7#J~*ph=eZ#(|-mtP~<LVXIR3{u#}x)
z83V&Fh5#gwEeEID6%3pVD;aV?A;rMJxSWBFftP`SVfStZjmYf`n%+VlK0+Roqm-l>
zJtsd@R+07E#$dIL!P|;el10b|%(fF@u+KGTlVlO{ovfsyQSTQi#<rco-->4wgP~9W
z+g^siNM=da;7ArpuHZ;kN$%in3_;<`|JQ?31`9ab*fH=kFfhz!;9!`~z|F9fL6Ttw
zg9^h+1|5b~3|<Ut8NwLWGo&$WU?^kQ#L&#JnPCFMR)*OOI~cYz>|)r(um>E<X$)Kp
zVGM~3tLho1F|abEF$6NKh6b}E!y1Mu3>*y23?>X~8KyCCF-%}kXIRHDje(nCHiHbq
zdWH=QJPck8x$sEX%m9mo4e&^q4vhp*(1Y?e2LnhI$P=KHBLNR@C)5CMMhb8)Q2hr9
zXy(NXYz#aM42*R`%sUu@y`jPFBNXB*6f(I>Rhlt$@-kI*zA$hQhtFbAmShzQo6Mso
zA<4F!fn6xVicOMLC=yvVax#yaY<+|kyS5~oB>PSVS7wIr<^O9ziBx+#gS!=rB+E{Q
zC`N{z4AG1XR;-e&I~mLv8D=uf2C>W;84fVSSg}d6?PQ1rvE!`RCE2xhFvMGNNOEv(
zV@R;#)RN@f#*k>mCCLI+wUZ%<i2<&j8x-I5$<PRAM~iStZb`0f3@P&%q(I72Ss}@S
z8=?xFA{Yd$Kt@P%Z(~T`#$desf8s_4Mn+M_EXG`hGzLgY>0(e~U|=}Jz{YTtfsf$?
zgCN5>26={y3|b7A7>pP$GX&Q&+-68%xWiDuaF3yu;XXqH!vlsEh9?XY8J;pMWO&Z7
zj^PEvMuwLRTN&Ok9AJ3IaG2pe!&!zO3?CVOgBqfYtc(ndyo?}gSr~O0*%&<;IT?c)
zxfrt;`51E<c^LB<c^Ru1`59{&1;NSg0D~|?0Ru0?W^f9tWvFLn*upT4fsJ7y124l?
zu;4ldW`=DH(-_zpS{Q7gvRfIrp<=<%WXH;=%V5i}9h4{;^BK4qb};N@;AZ&CP|L6j
zq?eJEp_E}a!yX0>MqY+ohP@1X7&sY48B!VcffMvchE9h4pm3>YU}LOcILvT_fq{XK
zv4G(y!z>0y20_MLa5`pU&|(Y$r(<S@vkV&<jxo$<U;!5<3JlB)5JQeLut9a6U|@u*
zI?2ESE>`*(xc@WQGO)5UoMLA{PUn9ZoY)yo|6yRRXJ=TV^M`?%ongs;23}D4gHXx9
z@RvcHo#6~S!?OPjeGJ^FrhtUm8P0-Bt8?rO=hzvRFn~-w|DS;eR2d=6ffxZQ&6tof
z7Zbw;1_lOaCWea)2N@U`tQgoCVi?sK4zO`Dh%!83c*(%YAjcrZ@Rfm+L7zd2k&A(o
aF@te8!%G%UhEEJ1Kr|yOBQwKG21x+M_{FmT

-- 
GitLab