|
@@ -8,7 +8,8 @@ import pytz
|
|
|
|
|
|
|
|
|
SELECT_BUILDING_SQL = "SELECT zj_building_id,sg_building_id FROM sagacloud_setup.zj_sync_config_building"
|
|
|
-SELECT_FC_SQL = "SELECT building_id,room_name from zj_fc.t_building_rooms"
|
|
|
+SELECT_STATE_SQL = "SELECT room_id from sagacloud_setup.zj_t_building_rooms where `type` = 1" #只对比类型为1的点位
|
|
|
+SELECT_FC_SQL = "SELECT building_id,room_name,room_id from zj_fc.t_building_rooms"
|
|
|
SELECT_SPACE_SQL = "SELECT building_id,local_name FROM sagacloud_object.object_data_space"
|
|
|
TRUNCATE_BUILDING_ROOMS_SQL = "truncate table sagacloud_setup.zj_sync_building_rooms"
|
|
|
INSERT_BUILDING_ROOMS_SQL = "INSERT into sagacloud_setup.zj_sync_building_rooms(building_id,building_name,room_name,floor_id,floor_name,`state`,`type`,create_time) values"
|
|
@@ -34,13 +35,13 @@ with open("config.json", "r") as f:
|
|
|
|
|
|
# mysql插入数据
|
|
|
def insert_mysql(sqls):
|
|
|
- print("开始往mysql插入数据...")
|
|
|
+ print("%s 开始往mysql插入数据..."%datetime_now())
|
|
|
for i in range(0, len(sqls), 1000):
|
|
|
sqlranges = sqls[i:i + 1000]
|
|
|
sqlranges = INSERT_BUILDING_ROOMS_SQL + ",".join(sqlranges)
|
|
|
mysql_cur.execute(sqlranges)
|
|
|
conn.commit()
|
|
|
- print("mysql数据插入成功,合计%s条..." % (len(sqls)))
|
|
|
+ print("%s mysql数据插入成功,合计%s条..." % (datetime_now(),len(sqls)))
|
|
|
|
|
|
|
|
|
|
|
@@ -60,15 +61,24 @@ mysql_cur.execute(SELECT_BUILDING_SQL)
|
|
|
buildinglist = mysql_cur.fetchall()
|
|
|
|
|
|
|
|
|
+#获取需要对应的点位列表
|
|
|
+mysql_cur.execute(SELECT_STATE_SQL)
|
|
|
+roomid_list = mysql_cur.fetchall()
|
|
|
+roomid_list = [i[0] for i in roomid_list]
|
|
|
+
|
|
|
+
|
|
|
# 获取zj_fc空间名称
|
|
|
+print("%s 获取zj_fc空间名称..."%datetime_now())
|
|
|
mysql_cur.execute(SELECT_FC_SQL)
|
|
|
fc_namelist = mysql_cur.fetchall()
|
|
|
for building in buildinglist:
|
|
|
if building[0] and building[1] != None:
|
|
|
for fc_name in fc_namelist:
|
|
|
- if fc_name[0] == building[0]:
|
|
|
- FC_NAMELIST_DICT[building[1]+"_"+fc_name[1]] = building[0]+"_"+fc_name[1]
|
|
|
- # FC_NAMELIST_DICT[building[1]+"_"+fc_name[1]] = 1
|
|
|
+ #判断空间是否需要对比
|
|
|
+ if fc_name[2] in roomid_list:
|
|
|
+ if fc_name[0] == building[0]:
|
|
|
+ FC_NAMELIST_DICT[building[1]+"_"+fc_name[1]] = building[0]+"_"+fc_name[1]
|
|
|
+ # FC_NAMELIST_DICT[building[1]+"_"+fc_name[1]] = 1
|
|
|
else:
|
|
|
message = (" - **存在建筑对应关系为空:** %s(%s) \n") % (building[0],building[1])
|
|
|
print(message)
|
|
@@ -77,6 +87,7 @@ for building in buildinglist:
|
|
|
|
|
|
|
|
|
# 获取space空间名称
|
|
|
+print("%s 获取space空间名称..."%datetime_now())
|
|
|
mysql_cur.execute(SELECT_SPACE_SQL)
|
|
|
space_namelist = mysql_cur.fetchall()
|
|
|
|
|
@@ -91,6 +102,7 @@ for space in space_namelist:
|
|
|
|
|
|
#对比空间名称,取出差异数据生成sql语句
|
|
|
sqls = []
|
|
|
+print("%s 开始对比差异数据..."%datetime_now())
|
|
|
diff_namelist = set(FC_NAMELIST_DICT) - set(SPACE_NAMELIST_DICT)
|
|
|
if diff_namelist != set():
|
|
|
for diff_name in diff_namelist:
|
|
@@ -104,25 +116,31 @@ if diff_namelist != set():
|
|
|
floor_name = diff_data[2]
|
|
|
state = diff_data[3]
|
|
|
type = diff_data[4]
|
|
|
- print(building_name,diff_building_id,diff_room_name,floor_id,floor_name,state,type)
|
|
|
sqlline = "('%s','%s','%s','%s','%s','%s','%s','%s')"%(diff_building_id,building_name,diff_room_name,floor_id,floor_name,state,type,datetime_now())
|
|
|
sqls.append(sqlline)
|
|
|
-
|
|
|
+ # message = (" - **building_id:** %s \n" + " - **building_name:** %s \n" + " - **room_name:** %s \n" + " - **type:** %s \n")%(diff_building_id, building_name,diff_room_name,type)
|
|
|
+ # messages.append(message)
|
|
|
+ # messages.append("___")
|
|
|
+ print("%s 差异数据共计%s条..."%(datetime_now(),len(diff_namelist)))
|
|
|
+ message = (" - **类型:** 空间名称未对应 \n" + " - **数量:** %s \n") % (len(diff_namelist))
|
|
|
+ messages.append(message)
|
|
|
+ messages.append("___")
|
|
|
# 获取space空间名称
|
|
|
-print("清空MySQL表数据...")
|
|
|
+print("%s 清空MySQL表数据..."%datetime_now())
|
|
|
mysql_cur.execute(TRUNCATE_BUILDING_ROOMS_SQL)
|
|
|
conn.commit()
|
|
|
|
|
|
#往MySQL插入数据
|
|
|
insert_mysql(sqls)
|
|
|
|
|
|
-# if messages:
|
|
|
-# messages_info = "\n".join(messages)
|
|
|
-# # 如果有报警,发送钉钉
|
|
|
-# title = "## 【之江实验室】空间名称报警 "
|
|
|
-# messages_info = title + "\n" + messages_info
|
|
|
-# print(messages_info)
|
|
|
-# send_message_markdown(title, messages_info, dingding)
|
|
|
+if messages:
|
|
|
+ messages.append("详情查看MySQL数据库sagacloud_setup里的zj_sync_building_rooms表")
|
|
|
+ messages_info = "\n".join(messages)
|
|
|
+ # 如果有报警,发送钉钉
|
|
|
+ title = "## 【之江实验室】空间名称报警 "
|
|
|
+ messages_info = title + "\n" + messages_info
|
|
|
+ print(messages_info)
|
|
|
+ send_message_markdown(title, messages_info, dingding)
|
|
|
|
|
|
mysql_cur.close()
|
|
|
conn.close()
|