From a4f4c2b779b4bd5a6203c2c6921450945e931b80 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Thu, 21 Mar 2024 15:49:47 +0100 Subject: [PATCH] Added saving output to rimo-import script --- ...ml-mitterberg-stmarin-stainach-puergg.php} | 0 ...K-rml-bad-mitterndorf-stainach-puergg.php} | 0 ...> Network-P-J5B3L-rml-bad-mitterndorf.php} | 0 ....php => Network-P-J5B42-rml-wildalpen.php} | 0 .../ADBAddressHelper/address_helper.php | 42 ++++++++++++++----- scripts/adb-rimo-import/rimo-import-test.php | 20 ++++++++- 6 files changed, 50 insertions(+), 12 deletions(-) rename scripts/adb-rimo-import/ADBAddressHelper/Network/{Network-P-J5B3J-mitterberg-stmarin-stainach-puergg.php => Network-P-J5B3J-rml-mitterberg-stmarin-stainach-puergg.php} (100%) rename scripts/adb-rimo-import/ADBAddressHelper/Network/{Network-P-J5B3K-bad-mitterndorf-stainach-puergg.php => Network-P-J5B3K-rml-bad-mitterndorf-stainach-puergg.php} (100%) rename scripts/adb-rimo-import/ADBAddressHelper/Network/{Network-P-J5B3L-bad-mitterndorf.php => Network-P-J5B3L-rml-bad-mitterndorf.php} (100%) rename scripts/adb-rimo-import/ADBAddressHelper/Network/{Network-P-J5B42-wildalpen.php => Network-P-J5B42-rml-wildalpen.php} (100%) diff --git a/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3J-mitterberg-stmarin-stainach-puergg.php b/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3J-rml-mitterberg-stmarin-stainach-puergg.php similarity index 100% rename from scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3J-mitterberg-stmarin-stainach-puergg.php rename to scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3J-rml-mitterberg-stmarin-stainach-puergg.php diff --git a/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3K-bad-mitterndorf-stainach-puergg.php b/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3K-rml-bad-mitterndorf-stainach-puergg.php similarity index 100% rename from scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3K-bad-mitterndorf-stainach-puergg.php rename to scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3K-rml-bad-mitterndorf-stainach-puergg.php diff --git a/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3L-bad-mitterndorf.php b/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3L-rml-bad-mitterndorf.php similarity index 100% rename from scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3L-bad-mitterndorf.php rename to scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B3L-rml-bad-mitterndorf.php diff --git a/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B42-wildalpen.php b/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B42-rml-wildalpen.php similarity index 100% rename from scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B42-wildalpen.php rename to scripts/adb-rimo-import/ADBAddressHelper/Network/Network-P-J5B42-rml-wildalpen.php diff --git a/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php b/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php index 25dde4e57..f7d252d4e 100644 --- a/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php +++ b/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php @@ -7,6 +7,7 @@ class AddressHelper { private $db; private $netzgebiet; private $NetworkHelper; + public $find_address_error; public function __construct($dependencies = []) { foreach(["log", "db", "netzgebiet"] as $type) { @@ -95,7 +96,7 @@ class AddressHelper { $split_result = $this->splitStreetHausnummer($strasse_hausnummer); if(!$split_result) { - echo "[EE] Hausnummer nicht gefunden in '$strasse_hausnummer' ($rimo_id)\n"; + $this->logFindAddressError("[EE] Hausnummer nicht gefunden in '$strasse_hausnummer' ($rimo_id)"); return false; } @@ -129,7 +130,7 @@ class AddressHelper { $addr_dbg_str = "strasse_hausnummer: $strasse_hausnummer | zusatz: $addresszusatz | gemkz: $gem_kz | gem_name: $gem_name | ort_name: $ort_name | plz_name: $plz_name | adrcd: $adr | $rimo_id"; if(!$hausnummer_name || !$gem_name || !$plz_name || !$ort_name || !$strasse_name) { - echo "[WW] Adressbestandteil fehlt ($addr_dbg_str)\n"; + $this->logFindAddressError("[WW] Adressbestandteil fehlt ($addr_dbg_str)"); return false; } @@ -154,7 +155,7 @@ class AddressHelper { $gemeinde = \ADBGemeindeModel::getFirst(["kennziffer" => $gem_kz]); if(!$gemeinde) { //$this->log->warning("[EE] Gemeinde $gem_name $gem_kz nicht gefunden ($addr_dbg_str)"); - echo "[EE] Gemeinde '$gem_name' / '$gem_kz' nicht gefunden ($addr_dbg_str)\n"; + $this->logFindAddressError("[EE] Gemeinde '$gem_name' / '$gem_kz' nicht gefunden ($addr_dbg_str)"); return false; } $gemeinde_id = $gemeinde->id; @@ -192,13 +193,13 @@ class AddressHelper { $plz = \ADBPlzModel::getFirst(["gemeinde_id" => $gemeinde_id, "plz" => $plz_name]); if(!$plz) { - echo "[EE] PLZ '$plz_name' nicht gefunden ($addr_dbg_str)\n"; + $this->logFindAddressError("[EE] PLZ '$plz_name' nicht gefunden ($addr_dbg_str)"); return false; } $ortschaft = \ADBOrtschaftModel::getFirst(["gemeinde_id" => $gemeinde_id, "name" => $ort_name]); if(!$ortschaft) { - echo "[EE] Ortschaft '$ort_name' nicht gefunden ($addr_dbg_str) \n"; + $this->logFindAddressError("[EE] Ortschaft '$ort_name' nicht gefunden ($addr_dbg_str)"); return false; } @@ -216,7 +217,7 @@ class AddressHelper { if($prefix && strpos($strasse_name, "$prefix ") === 0) { $strasse_name_sansprefix = substr($strasse_name, strlen($prefix)+1); if(!$strasse_name_sansprefix) { - echo "[EE] Fehler beim prefix entfernen von strasse_name $strasse_name\n"; + $this->logFindAddressError("[EE] Fehler beim prefix entfernen von strasse_name $strasse_name"); return false; } @@ -228,13 +229,13 @@ class AddressHelper { } if(!$strasse) { - echo "[EE] Straße '$strasse_name' nicht gefunden ($addr_dbg_str)\n"; + $this->logFindAddressError("[EE] Straße '$strasse_name' nicht gefunden ($addr_dbg_str)"); return false; echo "[II] Erstelle Strasse '$strasse_name' ($addr_dbg_str)\n"; $strasse = $this->createStreet($gemeinde_id, $strasse_name); if(!$strasse) { - echo "[EE] Konnte Strasse '$strasse_name' in Gemeinde '$gemeinde_id' nicht anlegen ($addr_dbg_str)\n"; + $this->logFindAddressError("[EE] Konnte Strasse '$strasse_name' in Gemeinde '$gemeinde_id' nicht anlegen ($addr_dbg_str)"); return false; } } @@ -264,11 +265,11 @@ class AddressHelper { //echo "----------------------\ncreating hausnummer:\n"; //print_r($hausnummer); $hausnummer->save(); - echo "[CC] Neues Gebäude erstellt ($addr_dbg_str)\n"; + $this->logFindAddressError("[CC] Neues Gebäude erstellt ($addr_dbg_str)"); } } - + $this->checkGemeindeNetzgebiet($gemeinde, $this->netzgebiet); // update hausnummer if($hausnummer->netzgebiet_id != $this->netzgebiet->id) { @@ -367,4 +368,25 @@ class AddressHelper { //var_dump($hausnummer);exit; return $hausnummer->save(); } + + private function checkGemeindeNetzgebiet($gemeinde, $netzgebiet) { + $sql = "SELECT * FROM GemeindeNetzgebiet WHERE gemeinde_id=".$gemeinde->id." AND netzgebiet_id=".$netzgebiet->id; + $res = $this->db->query($sql); + if($this->db->num_rows($res)) { + return true; + } + + $sql = "INSERT INTO GemeindeNetzgebiet (gemeinde_id, netzgebiet_id, `create`, `edit`) VALUES (".$gemeinde->id.", ".$netzgebiet->id.", UNIX_TIMESTAMP(), UNIX_TIMESTAMP())"; + if(!$this->db->query($sql)) { + die("SQL Query failed: $sql\n ".$this->db->getLastError()); + } + + return true; + } + + private function logFindAddressError($text) { + $logtext = trim($text); + $this->find_address_error = $logtext; + echo $logtext."\n"; + } } \ No newline at end of file diff --git a/scripts/adb-rimo-import/rimo-import-test.php b/scripts/adb-rimo-import/rimo-import-test.php index 77c63cce4..5b5a40b7a 100755 --- a/scripts/adb-rimo-import/rimo-import-test.php +++ b/scripts/adb-rimo-import/rimo-import-test.php @@ -118,11 +118,12 @@ foreach($netowners as $apiOwner) { continue; } + $addressErrors = []; - /*if($cluster_rimo_id != "SDIRolloutRegion_411273870081_1710940292") { + if($cluster_rimo_id != "SDIRolloutRegion_411273870081_1710940292") { // preding continue; - }*/ + } /* * get Cluster Outline Coords @@ -207,6 +208,11 @@ foreach($netowners as $apiOwner) { $hausnummer = $AddressHelper->findUpdateAddressFromRimoBuilding($building); if(!$hausnummer) { //echo "Adresse nicht gefunden: $rimo_building_id\n"; + + if($AddressHelper->find_address_error) { + $addressErrors[] = $AddressHelper->find_address_error; + } + continue; } $hausnummer_found_count++; @@ -544,6 +550,16 @@ foreach($netowners as $apiOwner) { } } } + + // save address errors + if($addressErrors) { + $out_folder = dirname(__FILE__)."/output/".date("Y-m-d.H-i"); + if(!file_exists($out_folder)) { + mkdir($out_folder); + } + $out_filename = $out_folder."/output-".$adb_netzgebiet->extref."-".date("Y-m-d.H-i").".log"; + file_put_contents($out_filename, join("\n", $addressErrors)); + } echo "Cluster $cluster_rimo_id ($cluster_name): $hausnummer_count Buildings; $hausnummer_found_count Buildings verarbeitet; $homes_count Homes verarbeitet.\n"; } }