修改路口列表sql

Signed-off-by: yinzijian <yinzijian@haomozhixing.onaliyun.com>
This commit is contained in:
yinzijian 2025-11-06 19:15:37 +08:00
parent 432418465d
commit d9c9d0e6ad
1 changed files with 28 additions and 36 deletions

View File

@ -30,8 +30,8 @@ class TmnetDbHelper(TableDbHelperBase):
where where
cm.nodeid = %s and cm.xl_crossid in %s cm.nodeid = %s and cm.xl_crossid in %s
group by cm.xl_crossid''' group by cm.xl_crossid'''
print(cursor.mogrify(sql,(citycode,cross_list))) print(cursor.mogrify(sql, (citycode, cross_list)))
cursor.execute(sql,(citycode,cross_list)) cursor.execute(sql, (citycode, cross_list))
result = cursor.fetchall() result = cursor.fetchall()
self.close(conn, cursor) self.close(conn, cursor)
return result, None return result, None
@ -69,7 +69,7 @@ class TmnetDbHelper(TableDbHelperBase):
""" % (nodeid, area_id, nodeid, area_id) """ % (nodeid, area_id, nodeid, area_id)
cross_list = self.do_select(sql) cross_list = self.do_select(sql)
if area_id != 0: if area_id != 0:
area_cross_sql = f'select * from bound_crosses where nodeid = {nodeid} and area_id = {area_id}' area_cross_sql = f'select * from bound_crosses where nodeid = {nodeid} and area_id = {area_id}'
area_crosses = self.do_select(area_cross_sql) area_crosses = self.do_select(area_cross_sql)
area_cross_list = [cross['crossid'] for cross in area_crosses] area_cross_list = [cross['crossid'] for cross in area_crosses]
cross_list = [cross for cross in cross_list if cross['crossid'] in area_cross_list] cross_list = [cross for cross in cross_list if cross['crossid'] in area_cross_list]
@ -112,7 +112,8 @@ class TmnetDbHelper(TableDbHelperBase):
""" """
values = [ values = [
( (
d['start_hm'], d['end_hm'], d['crossid'], d['phase_type'], d['phase_detail'], d['cont_times'], d['final_state'], d['start_hm'], d['end_hm'], d['crossid'], d['phase_type'], d['phase_detail'], d['cont_times'],
d['final_state'],
d['level_color'], d['first_date'], d['change_red_daynums'] d['level_color'], d['first_date'], d['change_red_daynums']
) for d in insert_list ) for d in insert_list
] ]
@ -181,37 +182,28 @@ class TmnetDbHelper(TableDbHelperBase):
""" % (nodeid, area_id, crossid, nodeid, area_id, crossid) """ % (nodeid, area_id, crossid, nodeid, area_id, crossid)
return self.do_select(sql) return self.do_select(sql)
def query_cross_list_road(self, nodeid:str, area_id:str): def query_cross_list_road(self, nodeid: str, area_id: str):
conn, cursor = self.connect() conn, cursor = self.connect()
try: try:
sql = """select if(clui.name is not null, clui.name, c.name) as name, sql = """select if(clui.name is not null, clui.name, c2.name) as name,
c.crossid, c.crossid,
if(clui.location is not null, clui.location, c.location) as location, if(clui.location is not null, clui.location, c.location) as location,
c.nodeid, c.nodeid,
c.area_id, c.area_id,
t2.to_crossid, r.roadid,
t2.name road_name, if(rlui.from_crossid is not null, rlui.from_crossid, r.from_crossid) as from_crossid,
t2.src_direct if(rlui.to_crossid is not null, rlui.to_crossid, r.to_crossid) as to_crossid,
from `cross` as c if(rlui.name is not null, rlui.name, r.name) as road_name,
left join `cross_ledger_update_info` as clui on clui.crossid = c.crossid and clui.nodeid = c.nodeid and clui.area_id = c.area_id if(rlui.src_direct is not null, rlui.src_direct, r.src_direct) as src_direct
left join ( from `bound_crosses` as c
select r.roadid, join `cross` c2 on c2.crossid = c.crossid and c2.nodeid = %s and c2.area_id = %s
if(rlui.from_crossid is not null, rlui.from_crossid, r.from_crossid) as from_crossid, left join `cross_ledger_update_info` as clui on clui.crossid = c.crossid and clui.nodeid = %s and clui.area_id = %s
if(rlui.to_crossid is not null, rlui.to_crossid, r.to_crossid) as to_crossid, left join `road` as r on r.nodeid = %s and r.to_crossid = c.crossid and r.recordstate = 0 and (r.is_sup_road is null or r.is_sup_road <> 1)
if(rlui.name is not null, rlui.name, r.name) as name, left join `road_ledger_update_info` as rlui on rlui.nodeid = %s and rlui.recordstate = r.recordstate and rlui.to_crossid = r.to_crossid and (rlui.is_sup_road is null or rlui.is_sup_road <> 1)
if(rlui.src_direct is not null, rlui.src_direct, r.src_direct) as src_direct where c.nodeid = %s
from road as r and c.area_id = %s"""
left join road_ledger_update_info as rlui on rlui.nodeid = r.nodeid and rlui.recordstate = r.recordstate and rlui.to_crossid = r.to_crossid and (rlui.is_sup_road is null or rlui.is_sup_road <> 1) print(cursor.mogrify(sql, (nodeid, area_id, nodeid, area_id, nodeid, nodeid, int(nodeid), int(area_id))))
where r.nodeid = %s cursor.execute(sql, (nodeid, area_id, nodeid, area_id, nodeid, nodeid, int(nodeid), int(area_id)))
and r.recordstate = 0
and (r.is_sup_road is null or r.is_sup_road <> 1)
) as t2 on t2.to_crossid = c.crossid
where c.nodeid = %s
and c.area_id = %s
and c.at_edge = 0
and c.isdeleted = 0"""
print(cursor.mogrify(sql, (nodeid, nodeid, area_id)))
cursor.execute(sql, (nodeid, nodeid, area_id))
result = cursor.fetchall() result = cursor.fetchall()
self.close(conn, cursor) self.close(conn, cursor)
return result, None return result, None