Kaynağa Gözat

之江检查空间名称

李莎 2 yıl önce
ebeveyn
işleme
7f5ee3c9ba
2 değiştirilmiş dosya ile 35 ekleme ve 17 silme
  1. 1 1
      config.json
  2. 34 16
      start.py

+ 1 - 1
config.json

@@ -6,6 +6,6 @@
     "port": 9934,
     "user": "root"
   },
-  "dingding": ""
+  "dingding": "https://oapi.dingtalk.com/robot/send?access_token=06168366057e525190d7e1d9b9a7332e996a32eaeafd5d8a5394815ee306e1cc"
 
 }

+ 34 - 16
start.py

@@ -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()