DQE Chargeur
Plugin QGIS pour la generation automatisee de Devis Quantitatifs Estimatifs.
Deploiement fibre optique pour un réseau FTTH régional.
Quatre modules, un point d'entree. Le plugin interroge PostgreSQL, construit des couches QGIS georeferencees en EPSG:2154, produit les fichiers Excel depuis des templates metier, et archive les resultats en JSONB.
ftth gc_exe dqe, packages Python psycopg2 pandas openpyxl.Pipeline
Architecture
Cinq couches. Dependances vers le bas. Chaque module UI lance son propre QThread via BaseDQETab. Services partages et stateless.
SimpleConnectionPool. Acces par properties publiques is_connected et config. Noms dynamiques via psycopg2.sql.Identifier.Fichiers
DQE Chargeur/
__init__.py classFactory, check_dependencies
dqe_chargeur.py Plugin (initGui, unload, run_dialog)
dqe_chargeur_dialog.py Dialog QTabWidget, 4 onglets
config.json Template config DB (sans credentials)
metadata.txt Metadonnees QGIS
models.py OperationType, DQEResult
workers.py DQEWorker (QObject/QThread)
base_tab.py BaseDQETab : thread, progress, couches
dqe_utils.py DatabaseManager, ConfigurationManager,
ValidationUtils, SimpleLogger, QtCompat
connection_dialog.py Dialog connexion manuelle
ui_components.py SROComboBox, TronconComboBox, ProgressWidget
designation_classifier.py Designation -> categorie de couche
database_operations.py SQL : execute_dqe_*, redevances
layer_manager.py Couches QGIS, gestionnaire, cables
excel_manager.py Excel : PRO, EXE, PGC, redevances
dqe_pro_tab.py Onglet PRO
dqe_exe_tab.py Onglet EXE
dqe_pgc_tab.py Onglet PGC
dqe_recover_tab.py Onglet Recover
files/ 3 templates Excel
sql/ Fonctions PostgreSQL
Dependances entre modules
DQE PRO
Quantitatifs projet. Transport TP pour le backbone, Distribution DP pour le deploiement client avec decoupe automatique des cables.
Cables optiques
6 a 720 FO. Aerien, facade, conduite. Cables decoupes auto pour Distribution via fddcpi2().
BPE, PA, PBO
Boites de protection, points d'acces. Quantites par type et mode de pose.
SRO et Prises
Points de raccordement, comptage DTR/RAD.
Archivage
Resultats SQL + FeatureCollections WKT dans dqe.dqejson.
Flux PRO
Comment fonctionne la decoupe
Les cables Distribution sont segmentes par la fonction SQL fddcpi2(). Chaque segment recoit une capacite normalisee et un mode de pose. Le plugin cree ensuite des couches QGIS par combinaison posemode/capacite.
DQE EXE
EXE = PRO + Genie Civil. dqe_exe() appelle dqe2() puis ajoute tranchees, chambres, poteaux, alveoles via jointures LATERAL sur gc_exe.
Tranchees
Traditionnelle, micro-tranchee, forage dirige, encorbellement.
Chambres
L3C, L3T... Comptage GROUP BY inf_mat.
Poteaux reseau
Comptage nb_pot_ac par concessionnaire.
Alveoles
PVC 42/45, PEHD 33/40. Section dynamique Excel.
Blocage RAN
| Codes | Mode | p_blocage | Comportement |
|---|---|---|---|
| TE DE | Standard | NULL | Tous les elements |
| TT DT | Travaux | 'T' | Exclut blocage_ran = true |
| TB DB | Blocage | 'B' | Uniquement blocage_ran = true |
Filtrage blocage RAN
Illustration du filtrage selon le parametre p_blocage. Les elements avec blocage_ran=true sont separes des elements travaux.
Infrastructure mixte
Quand un parcours contient des parties aeriennes (cm_typ_imp='0') ET souterraines ('7'), la detection est automatique.
DQE PGC
Attribution des infrastructures aux gestionnaires de voirie, puis calcul des redevances.
Mode Gestionnaire
Couche editable QGIS. Corrections manuelles de cm_gest_do. Regeneration Excel apres modifs.
Mode Direct
Traitement auto complet. Export Excel immediat. Pas de couche gestionnaire.
Algorithme gestionnaire()
Comment fonctionne l'attribution
Illustration : un troncon de cheminement (cable enterre) longe deux routes. L'algorithme segmente le troncon tous les 2m, puis pour chaque point mesure la distance et l'angle vers les routes voisines dans un buffer de 50m.
Types d'infrastructure
DQE Recover
Consultation et regeneration des DQE valides depuis dqe.dqejson. Acces direct sans QThread.
Recherche
Filtrage type + SRO. Limite 30.
Apercu HTML
Watermark ARCHIVE. Worker async.
Regenerer Excel
Depuis donnees archivees.
Recreer couches
Via dqe_recover(). En dev.
Fonctions SQL
ftth
| Fonction | Module | Description |
|---|---|---|
dqe2(sro, type, blocage) | PRO EXE | Quantitatifs projet + filtrage blocage |
dqe_exe(sro, type, blocage) | EXE | dqe2 + jointures LATERAL gc_exe |
dqe_pgc(sro, troncon) | PGC | Quantitatifs GC par troncon |
fddcpi2(sro) | PRO | Cables decoupes Distribution |
za_sro | REF | Table reference SRO |
gc_exe
| Fonction | Module | Description |
|---|---|---|
gestionnaire(sro, troncon) | PGC | Algorithme proximite, cm_gest_do |
redevance_table(sro, troncon) | PGC | Requete SQL dynamique redevances |
t_cheminement | TABLE | Troncons, cm_typ_imp, cm_compo |
infra_pt_chb / infra_pt_pot | TABLE | Chambres et poteaux |
dqe
| Objet | Type | Colonnes |
|---|---|---|
dqejson | TABLE | sro, nom_dqe, projet, categorie, champs (JSONB), user_name, version_projet, audit_timestamp |
dqe_recover() | FUNC | Reconstruction tables. En dev. |
Codes projet
| Code | Module | Description | SQL |
|---|---|---|---|
| TP | PRO | Transport backbone | dqe2(sro,'T') |
| DP | PRO | Distribution + cables decoupes | dqe2(sro,'D') |
| TE | EXE | Transport standard | dqe_exe(sro,'T',NULL) |
| DE | EXE | Distribution standard | dqe_exe(sro,'D',NULL) |
| TT | EXE | Transport travaux | dqe_exe(sro,'T','T') |
| DT | EXE | Distribution travaux | dqe_exe(sro,'D','T') |
| TB | EXE | Transport blocage | dqe_exe(sro,'T','B') |
| DB | EXE | Distribution blocage | dqe_exe(sro,'D','B') |
| GC | PGC | Attribution gestionnaire | dqe_pgc(sro,troncon) |
Dependances
| Package | Min | Usage |
|---|---|---|
psycopg2 | 2.8 | Pool PostgreSQL, psycopg2.sql |
pandas | 1.0 | DataFrames, export Excel |
openpyxl | 3.0 | Templates .xlsx |
PyQt5 | 5.12 | UI (fourni par QGIS) |
qgis.core | 3.28 | QgsVectorLayer, QgsProject |
Changelog
- Montee de version 4.0.0
- Credentials neutralises config.json + .gitignore
- Injection SQL corrigee (psycopg2.sql.Identifier/Literal)
- Password supprime des logs
- Methodes dupliquees supprimees (ExcelManager)
- Properties publiques DatabaseManager (is_connected, config)
- Pool DB pour toutes les fonctions redevance
- SyntaxError EOL corrigee
- Sauvegarde PRO complete dans dqejson
- Correspondance exacte designation template PGC
- Alveoles dynamiques PGC
- Correction wrapped C/C++ object deleted
- Onglet DQE Recover
- Modes blocage_ran (TE/DE/TT/DT/TB/DB)
- QtCompatibility
- Correction comptage chambres L3C/L3T
- Infrastructures mixtes aerien+souterrain
- Redevances poteaux/alveoles separees
- Support DQE PRO, EXE, PGC
DQE Chargeur 4.0.0 · réseau FTTH régional