From dcffd3658c786fe9dcecd0188845dd3532b563d9 Mon Sep 17 00:00:00 2001 From: "peter.fong" Date: Tue, 11 Mar 2025 14:31:54 +0000 Subject: [PATCH] delfland ppo-extrapolate --- delfland/ppo-insight/Dockerfile | 36 +++ delfland/ppo-insight/database.py | 18 ++ delfland/ppo-insight/docker-compose.yml | 15 ++ delfland/ppo-insight/ppo_insight.py | 226 ++++++++++++++++++ delfland/ppo-insight/requirements.txt | 6 + delfland/ppo-insight/start.sh | 10 + delfland/ppo-insight/templates/index.html | 45 ++++ delfland/ppo-insight/templates/resultaat.html | 88 +++++++ .../uploads/Preventief_onderhoud_WK_dump.xlsx | Bin 0 -> 59300 bytes 9 files changed, 444 insertions(+) create mode 100644 delfland/ppo-insight/Dockerfile create mode 100644 delfland/ppo-insight/database.py create mode 100644 delfland/ppo-insight/docker-compose.yml create mode 100644 delfland/ppo-insight/ppo_insight.py create mode 100644 delfland/ppo-insight/requirements.txt create mode 100644 delfland/ppo-insight/start.sh create mode 100644 delfland/ppo-insight/templates/index.html create mode 100644 delfland/ppo-insight/templates/resultaat.html create mode 100644 delfland/ppo-insight/uploads/Preventief_onderhoud_WK_dump.xlsx diff --git a/delfland/ppo-insight/Dockerfile b/delfland/ppo-insight/Dockerfile new file mode 100644 index 0000000..54a5937 --- /dev/null +++ b/delfland/ppo-insight/Dockerfile @@ -0,0 +1,36 @@ +# Gebruik een officiële Python-image als basis +FROM python:3.9-slim + +RUN apt-get update && apt-get -y install cron nano procps libmariadb-dev +# Werkdirectory instellen +WORKDIR /app + +# Kopieer je Python-bestanden naar de container +COPY . /app + +# Kopieer de requirements.txt naar de container +COPY requirements.txt . +# Kopieer de requirements.txt naar de container +COPY .env . + +# Installeer de vereiste Python dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Installeer cron en zorg ervoor dat de cron-demon actief is +RUN apt-get update && apt-get install -y cron + +# Voeg het cron-script toe +COPY cronfile.energie /etc/cron.d/cronfile.energie +# Zorg ervoor dat het cron-script uitvoerbaar is +RUN chmod 0644 /etc/cron.d/cronfile.energie + +# Voeg een cronjob toe die de Python-script dagelijks uitvoert +RUN crontab /etc/cron.d/cronfile.energie + + +# Voeg start.sh toe +COPY start.sh /start.sh +RUN chmod +x /start.sh + +# Gebruik start.sh om zowel cron als currentprice.py te starten +CMD ["/start.sh"] \ No newline at end of file diff --git a/delfland/ppo-insight/database.py b/delfland/ppo-insight/database.py new file mode 100644 index 0000000..fb30e3a --- /dev/null +++ b/delfland/ppo-insight/database.py @@ -0,0 +1,18 @@ +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/docker-compose.yml b/delfland/ppo-insight/docker-compose.yml new file mode 100644 index 0000000..4aa4dc9 --- /dev/null +++ b/delfland/ppo-insight/docker-compose.yml @@ -0,0 +1,15 @@ +# docker compose -f energyprices_docker-compose.yml up -d --build + +version: "3.3" +services: + delflanddev: + restart: always + container_name: delflanddev + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Amsterdam + build: + dockerfile: ./Dockerfile + env_file: + - .env diff --git a/delfland/ppo-insight/ppo_insight.py b/delfland/ppo-insight/ppo_insight.py new file mode 100644 index 0000000..9fe3639 --- /dev/null +++ b/delfland/ppo-insight/ppo_insight.py @@ -0,0 +1,226 @@ +import os +import pandas as pd +from flask import Flask, request, render_template, redirect, url_for, flash +from werkzeug.utils import secure_filename +from dotenv import load_dotenv +from database import get_db_connection +from flask import Response +import io +from datetime import datetime + +# Configuratie laden +env_path = "./.env" +load_dotenv(env_path) + +UPLOAD_FOLDER = os.getenv("UPLOAD_FOLDER") +ALLOWED_EXTENSIONS = {"xlsx"} + +app = Flask(__name__) +app.config["UPLOAD_FOLDER"] = UPLOAD_FOLDER +app.secret_key = "supersecretkey" + + +# Controleer of bestand toegestaan is +def allowed_file(filename): + return "." in filename and filename.rsplit(".", 1)[1].lower() in ALLOWED_EXTENSIONS + + +# Route voor de uploadpagina +@app.route("/", methods=["GET", "POST"]) +def upload_file(): + if request.method == "POST": + if "file" not in request.files: + flash("Geen bestand geselecteerd", "danger") + return redirect(request.url) + + file = request.files["file"] + if file.filename == "": + flash("Geen bestand geselecteerd", "danger") + return redirect(request.url) + + if file and allowed_file(file.filename): + filename = secure_filename(file.filename) + filepath = os.path.join(app.config["UPLOAD_FOLDER"], filename) + file.save(filepath) + flash("Bestand geüpload en verwerkt! Bekijk de resultaten", "success") + process_excel(filepath) + return redirect(url_for("upload_file")) + + return render_template("index.html") + + +@app.route("/extrapolate", methods=["GET", "POST"]) +def show_result(): + x = request.form.get("x", 1, type=int) + result = getextrapolation(x) + + # Geef de resultaten door aan het HTML-template + return render_template("resultaat.html", result=result, x=x) + + +@app.route("/download", methods=["GET"]) +def download_excel(): + x = request.args.get("x", 1, type=int) + result = getextrapolation(x) + + df = pd.DataFrame(result) + + # Excel-bestand in-memory genereren + output = io.BytesIO() + with pd.ExcelWriter(output, engine="openpyxl") as writer: + df.to_excel(writer, index=False, sheet_name=f"Extrapolatie_{x}jaar") + + output.seek(0) + + # Dynamische bestandsnaam + filename = f"extrapolatie_{x}jaar.xlsx" + + return Response( + output, + mimetype="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + headers={"Content-Disposition": f"attachment; filename={filename}"} + ) + + +def getextrapolation(extrapolateYears): + conn, cursor = get_db_connection() + + # Haal de originele data op zonder extrapolatie + 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 + """) + + # Haal de kolomnamen op + columns = [desc[0] for desc in cursor.description] + + # Haal de ruwe data op + rows = cursor.fetchall() + + # Sluit de cursor en de verbinding + cursor.close() + conn.close() + + raw_data = [dict(zip(columns, row)) for row in rows] + + # Huidige datum als pd.Timestamp (zonder tijd) + today = pd.Timestamp.today().normalize() + + result = [] + for row in raw_data: + vervaldatum = row.get("Vervaldatum") + + # Converteer de Vervaldatum correct naar pd.Timestamp (of None bij fouten) + vervaldatum = pd.to_datetime(vervaldatum, errors="coerce") + + # Controleer of de datum geldig is en in het verleden ligt + if pd.notna(vervaldatum) and vervaldatum < today: + vervaldatum = today # Zet op vandaag + + for i in range(extrapolateYears + 1): + new_row = row.copy() + + if pd.notna(vervaldatum): # Controleer of het een geldige datum is + new_row["Vervaldatum"] = ( + vervaldatum + pd.DateOffset(years=i)).strftime("%Y-%m-%d") + else: + # Indien geen geldige datum, zet als None + new_row["Vervaldatum"] = None + + result.append(new_row) + + return result + + +def process_exceld(filepath): + df = pd.read_excel(filepath, engine="openpyxl") + print(df.columns) + df.columns = df.columns.str.strip() + # for _, row in df.iterrows(): + # print(row["Object_omschrijving"]) + + +# Verwerk het Excel-bestand en sla op in MariaDB +def process_excel(filepath): + df = pd.read_excel(filepath, engine="openpyxl") + df.columns = df.columns.str.strip() + # Databaseverbinding maken + conn, cursor = get_db_connection() + + # Zorg dat de tabel bestaat + cursor.execute( + """ + CREATE TABLE IF NOT EXISTS onderhoud ( + id INT AUTO_INCREMENT PRIMARY KEY, + Object_code VARCHAR(50), + Object_omschrijving TEXT, + Afdeling_object VARCHAR(100), + PO_Code VARCHAR(50), + Omschrijving_PO TEXT, + Vervaldatum DATE, + Frequentie INT, + UOM TEXT, + PO_schema_Niet_gebruikt TEXT, + Cluster TEXT, + Locatie TEXT, + Locatie_omschrijving TEXT, + Klasse_object TEXT, + Categorie TEXT + ) + """ + ) + + # Data in de database invoegen + for _, row in df.iterrows(): + for column in row.index: + if pd.isna(row[column]): + row[column] = "" + + cursor.execute( + """ + INSERT INTO onderhoud + (Object_code, Object_omschrijving, Afdeling_object, PO_Code, Omschrijving_PO, Vervaldatum, Frequentie, + UOM, PO_schema_Niet_gebruikt, Cluster, Locatie, Locatie_omschrijving, Klasse_object, Categorie) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + row["Object code"], + row["Object omschrijving"], + row["Afdeling object"], + row["PO Code"], + row["Omschrijving PO"], + row["Vervaldatum"], + row["Frequentie"], + row["UOM"], + row["PO-schema Niet gebruikt"], + row["Cluster"], + row["Locatie"], + row["Locatie omschrijving"], + row["Klasse object"], + row["Categorie"], + ), + ) + + conn.commit() + cursor.close() + conn.close() + + +if __name__ == "__main__": + os.makedirs(UPLOAD_FOLDER, exist_ok=True) + app.run(debug=True) diff --git a/delfland/ppo-insight/requirements.txt b/delfland/ppo-insight/requirements.txt new file mode 100644 index 0000000..1e81f8d --- /dev/null +++ b/delfland/ppo-insight/requirements.txt @@ -0,0 +1,6 @@ +flask +python-dotenv +pandas +mariadb +openpyxl +werkzeug diff --git a/delfland/ppo-insight/start.sh b/delfland/ppo-insight/start.sh new file mode 100644 index 0000000..7e3056c --- /dev/null +++ b/delfland/ppo-insight/start.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Start de cron-demon +cron + +# Start het Python-script currentprice.py +python /app/ppo_insight.py & + +# Wacht voor altijd zodat de container draaiende blijft +tail -f /dev/null diff --git a/delfland/ppo-insight/templates/index.html b/delfland/ppo-insight/templates/index.html new file mode 100644 index 0000000..f20eccd --- /dev/null +++ b/delfland/ppo-insight/templates/index.html @@ -0,0 +1,45 @@ + + + + + + Bestand Uploaden + + + + +
+

Upload een bestand

+ + + {% with messages = get_flashed_messages(with_categories=true) %} + {% if messages %} + + {% endif %} + {% endwith %} + + +
+
+ + +
+ +
+
+ + + + + + + diff --git a/delfland/ppo-insight/templates/resultaat.html b/delfland/ppo-insight/templates/resultaat.html new file mode 100644 index 0000000..b4c93c7 --- /dev/null +++ b/delfland/ppo-insight/templates/resultaat.html @@ -0,0 +1,88 @@ + + + + + + Resultaat + + + + + + + +
+

Resultaten van de query

+ + + Terug naar upload + + +
+
+ + + +
+
+ + + Download als Excel ({{ x }} jaar) + + + + + + + + + + + + + + + + + + + + + + + + {% for row in result %} + + + + + + + + + + + + + + + + + {% endfor %} + +
Object_codeObject_omschrijvingAfdeling_objectPO_CodeOmschrijving_POVervaldatumFrequentieUOMPO_schema_Niet_gebruiktClusterLocatieLocatie_omschrijvingKlasse_objectCategorie
{{ row['Object_code'] }}{{ row['Object_omschrijving'] }}{{ row['Afdeling_object'] }}{{ row['PO_Code'] }}{{ row['Omschrijving_PO'] }}{{ row['Vervaldatum'] }}{{ row['Frequentie'] }}{{ row['UOM'] }}{{ row['PO_schema_Niet_gebruikt'] }}{{ row['Cluster'] }}{{ row['Locatie'] }}{{ row['Locatie_omschrijving'] }}{{ row['Klasse_object'] }}{{ row['Categorie'] }}
+ +
+ + + + + + + diff --git a/delfland/ppo-insight/uploads/Preventief_onderhoud_WK_dump.xlsx b/delfland/ppo-insight/uploads/Preventief_onderhoud_WK_dump.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..91d41f279a49114847e50c5bb0fc99f7eeb94e63 GIT binary patch literal 59300 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 z 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