Merge branch 'fronkdev' into 'master'
Added saving output to rimo-import script See merge request fronk/thetool!299
This commit is contained in:
@@ -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";
|
||||
}
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user