Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1519 → Rev 1520

/trunk/scripts/modules/codeinseecommune/bibliotheque/Dao.php
1,10 → 1,14
<?php
class Dao extends Bdd {
private $temps_derniere_requete = 0;
public function rechercherCoordonnees() {
$requete = "SELECT longitude, latitude
FROM `cel_obs`
GROUP BY `longitude` , `latitude`";
$resultat = $this->recupererTous($requete);
$this->reinitialiserTempsDerniereRequete();
return $resultat;
}
11,9 → 15,10
public function rechercherCoordonneesSansCorrespondances() {
$requete = "SELECT longitude, latitude
FROM `cel_obs`
WHERE code_insee_calcule = '' AND latitude LIKE '43.3%' AND longitude LIKE '3.25%'
WHERE code_insee_calcule = ''
GROUP BY `longitude` , `latitude`";
$resultat = $this->recupererTous($requete);
$this->reinitialiserTempsDerniereRequete();
return $resultat;
}
20,6 → 25,7
public function creerColonneCodeInseeCalculee() {
$create = "ALTER TABLE `cel_obs` ADD `code_insee_calcule` VARCHAR( 5 ) NOT NULL";
$this->requeter($create);
$this->reinitialiserTempsDerniereRequete();
}
public function ajouterCodeInseeCalculee($latitude, $longitude, $code_insee) {
26,6 → 32,7
$insert = "UPDATE `cel_obs` SET `code_insee_calcule` = '$code_insee' ".
"WHERE latitude = $latitude AND longitude = $longitude";
$this->requeter($insert);
$this->reinitialiserTempsDerniereRequete();
}
public function modifierCodeInsee() {
32,6 → 39,23
$update = "UPDATE `cel_obs` SET `ce_zone_geo` = concat('INSEE-C:' , `code_insee_calcule`) ".
"WHERE ce_zone_geo = '' ";
$this->requeter($update);
$this->reinitialiserTempsDerniereRequete();
}
// Il peut se passer assez de temps sans qu'aucune requete ne soit effectuée
// (cas d'un grand nombre d'enregistrements à la suite pour lesquels on ne trouve
// aucun département). Pour éviter cela on teste régulièrement la connection
public function testerActiviteConnection() {
$temps_courant = microtime(true);
$temps_depuis_derniere_requete = $temps_courant - $this->temps_derniere_requete;
if($temps_depuis_derniere_requete >= 18) {
$this->ping();
$this->reinitialiserTempsDerniereRequete();
}
}
private function reinitialiserTempsDerniereRequete() {
$this->temps_derniere_requete = microtime(true);
}
}
?>
/trunk/scripts/modules/codeinseecommune/Codeinseecommune.php
26,13 → 26,10
protected $parametres_autorises = array(
'-n' => array(true, true, 'Nom du fichier ou du dossier à traiter'));
 
 
 
// +-------------------------------------------------------------------------------------------------------------------+
public function executer() {
include_once dirname(__FILE__).'/bibliotheque/Dao.php';
 
$this->dao = new Dao();
// Récupération de paramétres
// Lancement de l'action demandée
42,12 → 39,12
// à effectuer manuellement au premier lancement du script
$this->creerColonne();
$this->calculerCodeInsee();
//$this->modifierCodeInsee();
$this->modifierCodeInsee();
break;
case 'sanscorrespondance' :
// devrait être être l'option utilisée dans le cron quotidien
$this->calculerCodeInseeSansCorrespondance();
//$this->modifierCodeInsee();
$this->modifierCodeInsee();
break;
case 'colonne' :
$this->creerColonne();
100,11 → 97,7
}
$i++;
$this->afficherAvancement(' Lignes traitées ', $i);
// pause toutes les 1000 requêtes
if($i %1000 == 0) {
sleep(2);
}
$this->dao->testerActiviteConnection();
}
echo "\n";
$fin = microtime(true);
113,7 → 106,7
echo "-------------------------------------------------------------------\n";
echo "\n";
}
private function modifierCodeInsee() {
$this->dao->modifierCodeInsee();
}