|
|
@@ -24,15 +24,14 @@ from core.pde import WincanDb, QGisRegard, QGisChantier, QGisTroncon, \
|
|
|
|
|
|
logger = logging.getLogger("qgis_sync_video")
|
|
|
logconf.start("qgis_sync_video", logging.DEBUG)
|
|
|
-debug = False
|
|
|
-
|
|
|
|
|
|
# # POUR TESTER, décommenter les lignes suivantes
|
|
|
##-----------------------------------------------
|
|
|
|
|
|
ControlesDb._path = Path(r"\\h2o\local\4-transversal\BDD\mdb_test\cg67Parc_data.mdb")
|
|
|
-CSigDb.server = "TR-POSTGIS-02"
|
|
|
WincanDb._path = Path(r"\\h2o\local\4-transversal\BDD\mdb_test\Wincan\parc_2007\DB\PARC_2007.mdb")
|
|
|
+CSigDb.server = "TR-POSTGIS-02"
|
|
|
+CSigDb.pwd = "Am5VOMkdFHU7WwrfVOs9"
|
|
|
logger.handlers = [h for h in logger.handlers if (type(h) == logging.StreamHandler)]
|
|
|
logger.warning("<<<<<<<<<<<<<< Mode TEST >>>>>>>>>>>>>>>>>")
|
|
|
|
|
|
@@ -49,9 +48,9 @@ controles_db = ControlesDb(autocommit=False)
|
|
|
|
|
|
|
|
|
logger.info("Chargement des données")
|
|
|
-qessais = wincan_db.execute(Sql.format("""SELECT S_AutoNumber, S_StartNode, S_EndNode, S_StartNodeCoord_X, S_StartNodeCoord_Y,
|
|
|
+qessais = wincan_db.read(Sql.format("""SELECT S_AutoNumber, S_StartNode, S_EndNode, S_StartNodeCoord_X, S_StartNodeCoord_Y,
|
|
|
S_EndNodeCoord_X, S_EndNodeCoord_Y, SI_AutoNumber, SI_InspName
|
|
|
- FROM csig_sync_video"""))
|
|
|
+ FROM csig_sync_video;"""))
|
|
|
chantiers = {}
|
|
|
|
|
|
for essai in qessais:
|
|
|
@@ -112,7 +111,7 @@ for essai in qessais:
|
|
|
if row:
|
|
|
troncon.res_ce = row.strResSigne
|
|
|
else:
|
|
|
- logger.error("Impossible de trouver le resultat Etanchéité du tronçon {}-{} (%s)", r1.number, r2.number, essai.SI_InspName)
|
|
|
+ logger.error("Impossible de trouver le resultat Etanchéité du tronçon %s-%s (%s)", r1.number, r2.number, essai.SI_InspName)
|
|
|
|
|
|
|
|
|
# Importe le résultat de l'essai d'Etanchéité des regards depuis contrôle
|
|
|
@@ -124,7 +123,7 @@ for essai in qessais:
|
|
|
if row:
|
|
|
regard.res_ce = row.strResSigne
|
|
|
else:
|
|
|
- logger.error("Impossible de trouver le resultat Etanchéité du regard {} (%s)", regard.number, essai.SI_InspName)
|
|
|
+ logger.error("Impossible de trouver le resultat Etanchéité du regard %s (%s)", regard.number, essai.SI_InspName)
|
|
|
|
|
|
chantier.items.append(troncon)
|
|
|
|
|
|
@@ -151,7 +150,7 @@ for chantier in chantiers.values():
|
|
|
logger.info("** Création du chantier: {}".format(chantier.name))
|
|
|
|
|
|
# Vérifie si le chantier existe déjà
|
|
|
- existants = csig_db.readall(Sql.format("SELECT id FROM t_chantiers WHERE nom = {:text}", chantier.name))
|
|
|
+ existants = csig_db.read_all(Sql.format("SELECT id FROM t_chantiers WHERE nom = {:text} AND id_type_chantier=1", chantier.name))
|
|
|
|
|
|
cancel = False
|
|
|
|
|
|
@@ -174,26 +173,26 @@ for chantier in chantiers.values():
|
|
|
|
|
|
# Calcule l'emprise du chantier
|
|
|
regards = set([troncon.r1 for troncon in chantier.items]) | set([troncon.r2 for troncon in chantier.items])
|
|
|
- chantier.x0 = min([regard.x for regard in regards])
|
|
|
- chantier.x1 = max([regard.x for regard in regards])
|
|
|
- chantier.y0 = min([regard.y for regard in regards])
|
|
|
- chantier.y1 = max([regard.y for regard in regards])
|
|
|
+ chantier.x0 = min([regard.x for regard in regards]) - 10
|
|
|
+ chantier.x1 = max([regard.x for regard in regards]) + 10
|
|
|
+ chantier.y0 = min([regard.y for regard in regards]) - 10
|
|
|
+ chantier.y1 = max([regard.y for regard in regards]) + 10
|
|
|
|
|
|
# Créé le chantier
|
|
|
logger.info("> Création du chantier")
|
|
|
- row = csig_db.first(Sql.format("""INSERT INTO t_chantiers(id_type_chantier, numero, nom, geom, archive)
|
|
|
- VALUES ({chantier_type}, {number}, {name:text}, {geom}, {archive})
|
|
|
+
|
|
|
+ row = csig_db.first(Sql.format("""INSERT INTO t_chantiers(id_type_chantier, numero, nom, archive, geom)
|
|
|
+ VALUES ({chantier_type}, {number}, {name:text}, False,
|
|
|
+ ST_GeomFromText('POLYGON(({x0} {y0}, {x0} {y1}, {x1} {y1}, {x1} {y0}, {x0} {y0}))', {srid}))
|
|
|
RETURNING id
|
|
|
""", chantier_type=1,
|
|
|
number=chantier.number,
|
|
|
name=chantier.name,
|
|
|
- geom="ST_GeomFromText('POLYGON(({x0} {y0}, {x0} {y1}, {x1} {y1}, \
|
|
|
- {x1} {y0}, {x0} {y0}))', {srid})".format(x0=chantier.x0,
|
|
|
- x1=chantier.x1,
|
|
|
- y0=chantier.y0,
|
|
|
- y1=chantier.y1,
|
|
|
- srid=SRID),
|
|
|
- archive="FALSE"
|
|
|
+ x0=chantier.x0,
|
|
|
+ x1=chantier.x1,
|
|
|
+ y0=chantier.y0,
|
|
|
+ y1=chantier.y1,
|
|
|
+ srid=SRID
|
|
|
)
|
|
|
)
|
|
|
# Récupère son id postgis
|
|
|
@@ -208,24 +207,24 @@ for chantier in chantiers.values():
|
|
|
label = label_for(chantier.pgid, regard.number)
|
|
|
|
|
|
row = csig_db.first(Sql.format("""INSERT INTO t_regards(nom, id_chantier, res_ce, s_autonumber, geom, label, archive)
|
|
|
- VALUES ({name:text}, {chantier_id}, {res_ce}, {s_autonumber}, {geom}, {label:text}, {archive})
|
|
|
+ VALUES ({name:text}, {chantier_id}, {res_ce:text}, {s_autonumber}, ST_GeomFromText('POINT({x} {y})', {srid}), {label:text}, False)
|
|
|
RETURNING id
|
|
|
- """.format(
|
|
|
- name=regard.number,
|
|
|
+ """, name=regard.number,
|
|
|
chantier_id=chantier.pgid,
|
|
|
res_ce=regard.res_ce,
|
|
|
s_autonumber=troncon.s_autonumber,
|
|
|
- geom="ST_GeomFromText('POINT({x} {y})', {srid})".format(x=regard.x, y=regard.y, srid=SRID),
|
|
|
- label=label,
|
|
|
- archive="FALSE"
|
|
|
- )
|
|
|
- ))
|
|
|
+ x=regard.x,
|
|
|
+ y=regard.y,
|
|
|
+ srid=SRID,
|
|
|
+ label=label)
|
|
|
+ )
|
|
|
regard.pgid = row.id
|
|
|
|
|
|
logger.debug("> Création du tronçon %s".format("{}-{}".format(troncon.r1.number, troncon.r2.number)))
|
|
|
|
|
|
csig_db.first(Sql.format("""INSERT INTO t_troncons(nom, id_chantier, id_regard_depart, id_regard_fin, s_autonumber, si_autonumber, res_itv, res_ce, geom, archive)
|
|
|
- VALUES ({name:text, {chantier_id}, {id_regard_depart}, {id_regard_fin}, {s_autonumber}, {si_autonumber}, {res_itv}, {res_ce}, {geom}, {archive})
|
|
|
+ VALUES ({name:text}, {chantier_id}, {id_regard_depart}, {id_regard_fin}, {s_autonumber}, {si_autonumber}, {res_itv:text}, {res_ce:text},
|
|
|
+ ST_GeomFromText('LINESTRING ({x1} {y1}, {x2} {y2})', {srid}), False)
|
|
|
RETURNING id
|
|
|
""", name="{}-{}".format(troncon.r1.number, troncon.r2.number),
|
|
|
chantier_id=chantier.pgid,
|
|
|
@@ -233,21 +232,19 @@ for chantier in chantiers.values():
|
|
|
id_regard_fin=troncon.r2.pgid,
|
|
|
s_autonumber=troncon.s_autonumber,
|
|
|
si_autonumber=troncon.si_autonumber,
|
|
|
- res_itv=troncon.sql_res_itv(),
|
|
|
- res_ce=troncon.sql_res_ce(),
|
|
|
- geom="ST_GeomFromText('LINESTRING ({x1} {y1}, {x2} {y2})', {srid})".format(x1=troncon.r1.x,
|
|
|
- y1=troncon.r1.y,
|
|
|
- x2=troncon.r2.x,
|
|
|
- y2=troncon.r2.y,
|
|
|
- srid=SRID),
|
|
|
- archive="FALSE"
|
|
|
+ res_itv=troncon.res_itv,
|
|
|
+ res_ce=troncon.res_ce,
|
|
|
+ x1=troncon.r1.x,
|
|
|
+ y1=troncon.r1.y,
|
|
|
+ x2=troncon.r2.x,
|
|
|
+ y2=troncon.r2.y,
|
|
|
+ srid=SRID
|
|
|
)
|
|
|
)
|
|
|
|
|
|
|
|
|
csig_db.commit()
|
|
|
|
|
|
-
|
|
|
# update si_spare3 in Wincan to mark the chantier as imported
|
|
|
logger.info("> Marque le chantier comme importé dans WincanDb")
|
|
|
|