Merge branch 'fronkdev' into 'master'

Added saving output to rimo-import script

See merge request fronk/thetool!299
This commit is contained in:
Frank Schubert
2024-03-21 14:51:27 +00:00
6 changed files with 50 additions and 12 deletions

View File

@@ -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";
}
}

View File

@@ -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";
}
}