baoyubo hai 8 meses
pai
achega
ff2ee500cd
Modificáronse 1 ficheiros con 91 adicións e 0 borrados
  1. 91 0
      DataGovernance.py

+ 91 - 0
DataGovernance.py

@@ -0,0 +1,91 @@
+# -*- coding: utf-8 -*-
+
+from config import settings
+from common.BigDataCenterAPI import *
+from utils import *
+import pymysql
+
+def jwd_to_area(location):
+    url = 'https://19.15.75.180:8581/GatewayMsg/http/api/proxy/invoke'
+    service_code = 'YZT1685418808667'
+    passid = 'C90-44004428'
+    passtoken = 'f539f616b2834160bc47fda5f298512c'
+    signTime = str(GetTime() // 1000)
+    nonce = GetNonce(5)
+    sign = GetSign(signTime, nonce, passtoken)
+    headers = {
+        'Content-Type': 'application/json',
+        'x-tif-signature': sign,
+        'x-tif-timestamp': signTime,
+        'x-tif-nonce': nonce,
+        'x-tif-paasid': passid,
+        'x-tif-serviceId': service_code
+    }
+    response = requests.post(url=url, headers=headers, json=location, verify=False)
+    if response.status_code == 200:
+        return response.json()['data'][0]['district']
+
+def put_area(table : str,longitude='longitude',latitude='latitude'):
+    conn=None
+    cur = None
+    try:
+        conn = pymysql.connect(host=settings.mysql_dwd_config['host'],
+                               user=settings.mysql_dwd_config['username'],
+                               password=settings.mysql_dwd_config['password'],
+                               database=settings.mysql_dwd_config['database'],
+                               port=settings.mysql_dwd_config['port'],
+                               charset='utf8mb4')
+        cur = conn.cursor()
+        sql = f'select id,{longitude},{latitude} from {table}'
+        cur.execute(sql)
+        resu = cur.fetchall()
+        for info in resu:
+            id_1 = info[0]
+            location = [{"x":info[1],"y":info[2]}]
+            area = jwd_to_area(location)
+            update_sql = f"UPDATE {table} SET area = %s WHERE id = %s"
+            cur.execute(update_sql, (area, id_1))
+        conn.commit()  # 提交事务
+    except pymysql.MySQLError as e:
+        print(f"Error: {e}")
+    finally:
+        if cur:
+            cur.close()
+        if conn:
+            conn.close()
+
+def put_uuid(table,column):
+    conn = None
+    cur = None
+    try:
+        conn = pymysql.connect(host=settings.mysql_dwd_config['host'],
+                               user=settings.mysql_dwd_config['username'],
+                               password=settings.mysql_dwd_config['password'],
+                               database=settings.mysql_dwd_config['database'],
+                               port=settings.mysql_dwd_config['port'],
+                               charset='utf8mb4')
+        cur = conn.cursor()
+        sql = f'select distinct {column} from {table}'
+        cur.execute(sql)
+        resu = cur.fetchall()
+        for info in resu:
+            column_data = info[0]
+            uid = new_guid()
+            update_sql = f"UPDATE {table} SET uid = %s  WHERE {column} = %s"
+            cur.execute(update_sql, (uid,column_data))
+        conn.commit()  # 提交事务
+    except pymysql.MySQLError as e:
+        print(f"Error: {e}")
+    finally:
+        if cur:
+            cur.close()
+        if conn:
+            conn.close()
+
+
+put_uuid('rescue_materia','management_unit')
+
+#put_area('emergency_expert')
+# put_area('mid_waterlogged_roads','lng','lat')
+# put_area('mid_school')
+# put_area('mid_hospital')