From f9606ea1b0bc0c16934e37055da944db89fd318f Mon Sep 17 00:00:00 2001 From: "peter.fong" Date: Thu, 20 Mar 2025 22:19:37 +0000 Subject: [PATCH] sqllite ipv database --- delfland/ppo-insight/data.db | Bin 0 -> 106496 bytes delfland/ppo-insight/database.py | 18 -- delfland/ppo-insight/ppo_insight.py | 239 ++++++++++++------ delfland/ppo-insight/templates/debug.html | 39 +++ delfland/ppo-insight/templates/resultaat.html | 12 +- .../Preventief_onderhoud_WK_dump_1.xlsx | Bin 0 -> 59268 bytes 6 files changed, 204 insertions(+), 104 deletions(-) create mode 100644 delfland/ppo-insight/data.db delete mode 100644 delfland/ppo-insight/database.py create mode 100644 delfland/ppo-insight/templates/debug.html create mode 100644 delfland/ppo-insight/uploads/Preventief_onderhoud_WK_dump_1.xlsx diff --git a/delfland/ppo-insight/data.db b/delfland/ppo-insight/data.db new file mode 100644 index 0000000000000000000000000000000000000000..540ff0a1b3585804292917cbb71519b515fa1298 GIT binary patch literal 106496 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 literal 0 HcmV?d00001 diff --git a/delfland/ppo-insight/database.py b/delfland/ppo-insight/database.py deleted file mode 100644 index fb30e3a..0000000 --- a/delfland/ppo-insight/database.py +++ /dev/null @@ -1,18 +0,0 @@ -import mariadb -import os -from dotenv import load_dotenv - -# Configuratie laden uit .env-bestand -load_dotenv() - - -def get_db_connection(): - """Maakt een verbinding met de MariaDB-database en retourneert de cursor en verbinding.""" - conn = mariadb.connect( - host=os.getenv("DB_HOST"), - user=os.getenv("DB_USER"), - password=os.getenv("DB_PASSWORD"), - database=os.getenv("DB_NAME"), - port=int(os.getenv("DB_PORT")) - ) - return conn, conn.cursor() diff --git a/delfland/ppo-insight/ppo_insight.py b/delfland/ppo-insight/ppo_insight.py index fc26d50..0d31b3d 100644 --- a/delfland/ppo-insight/ppo_insight.py +++ b/delfland/ppo-insight/ppo_insight.py @@ -1,5 +1,7 @@ import os import io +import sqlite3 +import re from datetime import datetime import pandas as pd @@ -7,12 +9,11 @@ from dotenv import load_dotenv from flask import Flask, request, render_template, redirect, url_for, flash, Response from werkzeug.utils import secure_filename -from database import get_db_connection - env_path = "./.env" load_dotenv(env_path) -UPLOAD_FOLDER = os.getenv("UPLOAD_FOLDER") +UPLOAD_FOLDER = os.getenv("UPLOAD_FOLDER", "uploads") +DATABASE = "data.db" ALLOWED_EXTENSIONS = {"xlsx"} app = Flask(__name__) @@ -20,10 +21,74 @@ app.config["UPLOAD_FOLDER"] = UPLOAD_FOLDER app.secret_key = "9f2a1d3e4c5b6a7d8e9f0a1b2c3d4e5f" +def init_db(): + with sqlite3.connect(DATABASE) as conn: + cursor = conn.cursor() + cursor.execute(""" + CREATE TABLE IF NOT EXISTS onderhoud ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + Object_code TEXT, + Object_omschrijving TEXT, + Afdeling_object TEXT, + PO_Code TEXT, + Omschrijving_PO TEXT, + Vervaldatum TEXT, + Frequentie INTEGER, + UOM TEXT, + PO_schema_Niet_gebruikt TEXT, + Cluster TEXT, + Locatie TEXT, + Locatie_omschrijving TEXT, + Klasse_object TEXT, + Categorie TEXT + ) + """) + conn.commit() + + def allowed_file(filename): return "." in filename and filename.rsplit(".", 1)[1].lower() in ALLOWED_EXTENSIONS +@app.route("/download", methods=["GET"]) +def download_excel(): + x_str = request.args.get("x") + if not x_str: + flash("Geen datum opgegeven voor download.", "danger") + return redirect(url_for("upload_file")) + + try: + x = datetime.strptime(x_str, "%Y-%m-%d") + except ValueError: + flash("Ongeldige datum opgegeven.", "danger") + return redirect(url_for("upload_file")) + + result = get_extrapolation(x) + + if not result: + flash("Geen resultaten beschikbaar voor de geselecteerde datum.", "warning") + return redirect(url_for("upload_file")) + + df = pd.DataFrame(result) + + # Verwijder de Vervaldatum kolom + if 'Vervaldatum' in df.columns: + df = df.drop(columns=['Vervaldatum']) + # df.rename(columns={"Begindatum": "Vervaldatum"}, inplace=True) + output = io.BytesIO() + with pd.ExcelWriter(output, engine="openpyxl") as writer: + df.to_excel(writer, index=False, + sheet_name=f"Extrapolatie_{x.strftime('%Y-%m-%d')}") + output.seek(0) + + filename = f"extrapolatie_{x.strftime('%Y-%m-%d')}.xlsx" + return Response( + output, + mimetype="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + headers={"Content-Disposition": f"attachment; filename={filename}"} + ) + + @app.route("/", methods=["GET", "POST"]) def upload_file(): if request.method == "POST": @@ -41,102 +106,77 @@ def upload_file(): filepath = os.path.join(app.config["UPLOAD_FOLDER"], filename) file.save(filepath) process_excel(filepath) - flash( - "Bestand geüpload en verwerkt! Bekijk de resultaten", - "success", - ) + flash("Bestand geüpload en verwerkt! Bekijk de resultaten", "success") return redirect(url_for("upload_file")) return render_template("index.html") -@app.route("/extrapolate", methods=["GET", "POST"]) -def show_result(): - x_str = request.form.get("selected_date") - print(x_str) - try: - if x_str is not None: - x = datetime.strptime(x_str, "%Y-%m-%d") - else: - # Handle the case where x_str is None, for example: - x = None # or raise an exception or use a default date - flash("Ongeldige datum ingevoerd.", "danger") - except ValueError: - flash("Ongeldige datum ingevoerd.", "danger") - return redirect(url_for("upload_file")) - - result = getextrapolation(x) - return render_template("resultaat.html", result=result, selected_date=x_str) +@app.route("/debug_db", methods=["GET"]) +def debug_db(): + with sqlite3.connect(DATABASE) as conn: + cursor = conn.cursor() + cursor.execute("SELECT * FROM onderhoud") + columns = [desc[0] for desc in cursor.description] + rows = cursor.fetchall() + return render_template("debug.html", columns=columns, rows=rows) -@app.route("/download", methods=["GET"]) -def download_excel(): - x_str = request.args.get("x") - x = datetime.strptime(x_str, "%Y-%m-%d") - result = getextrapolation(x) - - df = pd.DataFrame(result) - output = io.BytesIO() - with pd.ExcelWriter(output, engine="openpyxl") as writer: - df.to_excel(writer, index=False, - sheet_name=f"Extrapolatie_{x.strftime('%Y-%m-%d')}") - output.seek(0) - filename = f"extrapolatie_{x.strftime('%Y-%m-%d')}.xlsx" - return Response( - output, - mimetype="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", - headers={"Content-Disposition": f"attachment; filename={filename}"}, - ) +def clean_column_name(name): + # Vervangt alle niet-alfanumerieke tekens door "_" + return re.sub(r"\W+", "_", name) -def extrapolate_vervaldatum(vervaldatum, uom, frequentie, x): - if vervaldatum is None or pd.isna(vervaldatum): - print("Ongeldige vervaldatum:", vervaldatum) - return [] # Geef een lege lijst terug in plaats van een fout te veroorzaken +def process_excel(filepath): + df = pd.read_excel(filepath) + # Kolomnamen normaliseren + df.columns = [clean_column_name(col) for col in df.columns] - vervaldatum = pd.to_datetime(str(vervaldatum), errors="coerce") + with sqlite3.connect(DATABASE) as conn: + cursor = conn.cursor() + cursor.execute("DELETE FROM onderhoud") # Leeg de tabel eerst + df.to_sql("onderhoud", conn, if_exists="append", index=False) - if pd.isna(vervaldatum): # Extra controle als de conversie mislukt - print("Kon datum niet omzetten:", vervaldatum) - return [] + # Debug: Controleer of de records echt zijn toegevoegd + cursor.execute("SELECT COUNT(*) FROM onderhoud") + count = cursor.fetchone()[0] + # Controleer of data correct is ingevoerd + print(f"Aantal records in de database: {count}") - result = [] - while vervaldatum <= x: - result.append(vervaldatum.strftime("%Y-%m-%d")) +@app.route("/extrapolate", methods=["GET", "POST"]) +def show_result(): + # Haal de huidige datum op voor de standaardwaarde + today = datetime.today().strftime('%Y-%m-%d') - if uom == "D": - vervaldatum += pd.DateOffset(days=frequentie) - elif uom == "W": - vervaldatum += pd.DateOffset(weeks=frequentie) - elif uom == "M": - vervaldatum += pd.DateOffset(months=frequentie) - elif uom == "Y": - vervaldatum += pd.DateOffset(years=frequentie) - else: - print("Onbekende eenheid:", uom) - break # Voorkom oneindige lus bij een onbekende eenheid + x_str = request.form.get("selected_date") + try: + x = datetime.strptime(x_str, "%Y-%m-%d") if x_str else datetime.today() + except ValueError: + flash("Ongeldige datum ingevoerd.", "danger") + return redirect(url_for("upload_file")) - return result + result = get_extrapolation(x) + return render_template("resultaat.html", result=result, selected_date=x_str, today=today) -def getextrapolation(x): +def get_extrapolation(x): if x is None: - print("Geen geldige datum opgegeven voor extrapolatie.") return [] - conn, cursor = get_db_connection() - cursor.execute(""" - SELECT Object_code, Object_omschrijving, Afdeling_object, PO_Code, Omschrijving_PO, Vervaldatum, Frequentie, UOM, - PO_schema_Niet_gebruikt, Cluster, Locatie, Locatie_omschrijving, Klasse_object, Categorie - FROM onderhoud - """) - - columns = [desc[0] for desc in cursor.description] - rows = cursor.fetchall() - cursor.close() - conn.close() + + today = datetime.today() + with sqlite3.connect(DATABASE) as conn: + cursor = conn.cursor() + cursor.execute(""" + SELECT Object_code, Object_omschrijving, Afdeling_object, PO_Code, Omschrijving_PO, + Vervaldatum, Frequentie, UOM, PO_schema_Niet_gebruikt, Cluster, Locatie, + Locatie_omschrijving, Klasse_object, Categorie + FROM onderhoud + """) + columns = [desc[0] for desc in cursor.description] + rows = cursor.fetchall() raw_data = [dict(zip(columns, row)) for row in rows] result = [] @@ -149,14 +189,51 @@ def getextrapolation(x): if vervaldatum: extrapolated_dates = extrapolate_vervaldatum( vervaldatum, uom, frequentie, x) - for date in extrapolated_dates: + for i, date in enumerate(extrapolated_dates): new_row = row.copy() - new_row["Vervaldatum"] = date + begindatum = pd.to_datetime(date) + if begindatum <= today: + new_row["Overtijd"] = "Ja" + else: + new_row["Overtijd"] = "Nee" + new_row["Begindatum"] = date + + if i == 0: + new_row["Parent"] = "*" + else: + new_row["Parent"] = "" + result.append(new_row) return result +def extrapolate_vervaldatum(vervaldatum, uom, frequentie, x): + vervaldatum = pd.to_datetime(str(vervaldatum), errors="coerce") + if pd.isna(vervaldatum): + return [] + + result = [] + while vervaldatum <= x: + result.append(vervaldatum.strftime("%Y-%m-%d")) + if uom == "D": + vervaldatum += pd.DateOffset(days=frequentie) + # vervaldatum += pd.DateOffset(weeks=frequentie // 7) + # vervaldatum += pd.DateOffset(months=frequentie // 30) + elif uom == "W": + vervaldatum += pd.DateOffset(weeks=frequentie) + elif uom == "M": + vervaldatum += pd.DateOffset(months=frequentie) + elif uom == "Y": + vervaldatum += pd.DateOffset(years=frequentie) + else: + break + if vervaldatum > x: + break + return result + + if __name__ == "__main__": os.makedirs(UPLOAD_FOLDER, exist_ok=True) + init_db() app.run(debug=True) diff --git a/delfland/ppo-insight/templates/debug.html b/delfland/ppo-insight/templates/debug.html new file mode 100644 index 0000000..b7dcf15 --- /dev/null +++ b/delfland/ppo-insight/templates/debug.html @@ -0,0 +1,39 @@ + + + + + + Database Debug + + + +

Onderhoud Database Debug

+ {% if rows %} + + + + {% for col in columns %} + + {% endfor %} + + + + {% for row in rows %} + + {% for value in row %} + + {% endfor %} + + {% endfor %} + +
{{ col }}
{{ value }}
+ {% else %} +

Geen records gevonden in de database.

+ {% endif %} + + diff --git a/delfland/ppo-insight/templates/resultaat.html b/delfland/ppo-insight/templates/resultaat.html index 16a951a..6486c6d 100644 --- a/delfland/ppo-insight/templates/resultaat.html +++ b/delfland/ppo-insight/templates/resultaat.html @@ -20,8 +20,9 @@ Terug naar upload
- - + + +
@@ -35,7 +36,7 @@ Afdeling_object PO_Code Omschrijving_PO - Vervaldatum + Begindatum Frequentie UOM PO_schema_Niet_gebruikt @@ -49,13 +50,14 @@ {% for row in result %} - + {{ row['Object_code'] }} {{ row['Object_omschrijving'] }} {{ row['Afdeling_object'] }} {{ row['PO_Code'] }} {{ row['Omschrijving_PO'] }} - {{ row['Vervaldatum'] }} + {{ row['Begindatum'] }} {{ row['Frequentie'] }} {{ row['UOM'] }} {{ row['PO_schema_Niet_gebruikt'] }} diff --git a/delfland/ppo-insight/uploads/Preventief_onderhoud_WK_dump_1.xlsx b/delfland/ppo-insight/uploads/Preventief_onderhoud_WK_dump_1.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e53539eb125abc7ad771c79bd836bd26a902b795 GIT binary patch literal 59268 zcmeFYg;&&H_%1pOLpMVzF@SVRsFVzy4&AM!l+++44Fe($4a(5n(j}ot3`jSKN;lGi zqW6Q}-&yOPbOTnG&aA4CWOf!IJLq`UquI3N%i9tZ>l z{lYO<^lsPSnemvK1pB+D8DMoO< zmZ6rk(nn*_f3VZRH;C8W+vb6Z5b?YIj@Nd7i%B9v+oZpptagYTO8K~P7s|^at`DC5AEjAM1HFLcro9-EdL`#|))u-kG(CKeP+@CS&QaY7J!6-@mvZo&T*Yp;n#tctBZx z1*(n&bb({-W$)@OEOhfPEdS*HFUSA8%JAm2l}V$Bk2j^L)}fg4YsVcHIW}R*RrrOH zkHUuf;`KtGZj$`PIphu`Riz!be=bMv?{D74FAq*vUIjVL^R!2-*v|7$A?gb0P=|!W6j#31be0_<3w)Q8cu`93KbyRU&j!z%U^1NTo z@E4|`{gAq?Cny<#$djT=mGHr4frtOcBDn~x|45As0!`zCKor0e&s~N6JiJ^Udw96q z^sPcebC0(o48b`Kf4eI?sa+M^O9xXT^9>iupQfMR_39=vdiB{gxv>2F>jk62f{^f+ zXzH&Iy*poy-c4tvDEfiax?R0SlgOgNlAMWcT|$h%J}i?{$$n?BVZbw3yp_m!>UsX> z%evKeOrstJ3rI~&IjYf+3Btv1qW(zRP%GTNz(-wB>+GILs)P7_yeCaG@~9&b9^Uj) zWz?Cu$dtoJv9!`kq09zBltZ`~;a8dtQD(Eu_juKXS9#UHwNh!}m95{--{B}*Wqz79 zFB7*UQTqkQUzY#qK^PLAM?LFWo!bI0?*Fv zvsz!O3yM<_F$_F^DnC1&zX7iN{(zX9Cj+w;RPjE`%}H?259UQcaocmQe{LW0csR=5 zOm8Sn!|dDlyET8;Eh63v(1M zP?hWBcaFs6rbR8Tt;X`fDTV9<^W;d8R)>K0fEV_h%436r-A=+$;6!}kxksZ#r}V#z zGx^OxhAv_*{UJt_)Ki}Q-_0vz8LYW;zB6@=GiUL|qSILoL&!E&2A+zxnF;(V=mq)usnaym6to9E*id$4m(mT(af* zf243-`*e0cVT~D|d!0}7D_LFqhx&qbLXxhisnU1h^s09H!v~9R9j#i+{8~0ejRRHN zzcZ};nEM<|{lVv}$)UeH$((4fC$$t8Yo`2zSu&V`QWmbEH6E zMT&Ilov8^4iQzJlf_%@_Z)`8aH@j8Uh(DVhvI=d`-|1{=Wl;LgNqN48|KMbS7iOPp zFxzO8@c0Y8^ZD)nQ;!LIn38@1luaAZV{U;6ae(squg(0wi|Bt^4&bX&QOR4M-=$xun&JmmztS;`Q)9>rHP*7vUntz#d|fimOdMZisG@0j zM1yIOzo@u4Od}|2F8;QJ->s8LLpw7=)E7-_p$9F0V_ciWFIX03{=TPpCd+~4jwX}p zIH@Kd-;~ImD?0Mj&F~}DPsk+WCbsd8Lb`JgV%@h1kLt{~?o2OQ%0AYZfxn|Gs^!*> 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 z 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

yKUVaIy#Z!D8L$()m<6#KU>-9d`N{a}p{nVuEAP zIbDzH8^v2|8)r%lri>MZ&%lao4Sl1js=93)-4ll=oBF09?TO2Nytl))#(3 zV88LeOy@iBN9iHO0aI&zsg(V>qXIlf!fsprepSt>Wf#6Zo8!BYM^}ogfuo5!j6$MP z{GegoiwY|m#ook>#Q8wqnnoC{1tH0j`V$>;DLhKEhjjkR{Ris&3+O{HtE(p)V%D^{ z2|&%pCI-F=h3lsh3(WBBp^lzBO$7uMVL;No%Z~R9VcV2suAl%*X5Ia6ophMx#hg$` zj(5k|$+s-&io5uMM$m|wwYiLMR=mr`&>0#6rsf%lzOGXeV~L3Lg}?hF)?FH`MKlYw zJL3*tk}BE+GLO417cc6LKXP>mk$9WcJ<$lGWl5kv<(XfQSa5`mxv**rolz!0QkHYa2R)59V?($Un*BcS04fsk2n?Ma)-`#xJ8En~&(+ zoO+nDQLEHQFj#iQD?0MA0Dbd99UGJnek|m>MMS?3Fbz;8Q~%`OK|LE8yDnRTRsH!z zR9F-%GQMW$<0)ZT7SD&in*6Oe`RM=`y_OTr=T3MHIktqT2`QM#Gi!T_=WGH&%_FI< zCx~dpv9ffJ`YpP5srM>Y9&^|XJ`c@2vW(s!4QY0u;cb46;mj)@J|gC%EC(W{PCS5} z6X%-01a-@y-od$8qG?h;rg}t_Dx-pVHEiH&@$OZcM@P~dNeabP(7|bb_f6!Foc6Cw z4uq)>&mQXw(wVr_<`Qk$vqWMaR`JxIO_VeG&fO}fJFe|Pa|w{eM<*m>@0ZXn zHiJZmVKqFr;mmgn#kM0zBfr&v-g2#}Ng&OxZ*&)__J(y2_wy&goXv^_{6`L{qVF>A zW3xBRh7Wsqn|^L$Zo978#{745(a^b3#DRaazTOdRdDx)BONiS47whZyMNi7!4sK=# zhiZ5@m^mB#6=hY0-wntOTg@<021}?B8~-1_1b*4-dirb;8-w%na_#`}gW^`q`g9dIo{#7o%^o#s|FW`Tw je;+)5RUfYWqW(FQsw!Zj;_+A3@BtmDf4^+~udV+9w_(3$ literal 0 HcmV?d00001