소스 검색

博锐,四川大厦 通用

李莎 1 년 전
부모
커밋
828b081fd0
4개의 변경된 파일167개의 추가작업 그리고 109개의 파일을 삭제
  1. 24 9
      MyUtils/DmprwdUtil.py
  2. 24 3
      config.json
  3. 58 52
      main.py
  4. 61 45
      temp.py

+ 24 - 9
MyUtils/DmprwdUtil.py

@@ -3,7 +3,7 @@ from MyUtils.HttpRequestsUtil import *
 url = "https://doimp.persagy.com/"
 energyId_path = "energy-research/common/api/energy/model/project/list"
 rwdId_path = "energy-research/common/api/multi/energy/model/item/list"
-query_data = "dmp-rwd/rwd/ipcal/data/queryIPDataInPeriod?groupCode=YS&projectId=Pj1101080259"
+query_data = "dmp-rwd/rwd/ipcal/data/queryIPDataInPeriod?groupCode=%s&projectId=%s"
 
 
 #1.获取项目属于哪个集团,这里博锐属于散楼,groupCode=YS
@@ -15,30 +15,36 @@ query_data = "dmp-rwd/rwd/ipcal/data/queryIPDataInPeriod?groupCode=YS&projectId=
 # {itemName:冷热源,itemCode:EI10102010101001,rwdId:Vo1101080259e6dcf338d9be4bbf826f659b0b5a9ab2},
 #4.获取数据,根据以上query_data路径和rwdId获取数据
 
-data_url = url + query_data
-def get_query_data(startTime,endTime):
+# data_url = url + query_data%(groupcode,projectId)
+def get_query_data(startTime,endTime,groupcode, projectId,energy_total,energy_light,energy_cooling,energy_heating,energy_ac_termial):
     payload = {
     "objects": [
         {
-            "objectId": "Vo1101080259f2481ca3604644399f1dacb84e20adae",
+            "objectId": energy_total,
             "infoCodes": [
                 "subentryAccConsum"
             ]
         },
         {
-            "objectId": "Vo110108025953894df8d4ae4dbeb7c81ced7df3f83e",
+            "objectId": energy_light,
             "infoCodes": [
                 "subentryAccConsum"
             ]
         },
         {
-            "objectId": "Vo11010802590eaef68d3289452d86d89fbee721e6df",
+            "objectId": energy_cooling,
             "infoCodes": [
                 "subentryAccConsum"
             ]
         },
         {
-            "objectId": "Vo1101080259e6dcf338d9be4bbf826f659b0b5a9ab2",
+            "objectId": energy_heating,
+            "infoCodes": [
+                "subentryAccConsum"
+            ]
+        },
+        {
+            "objectId": energy_ac_termial,
             "infoCodes": [
                 "subentryAccConsum"
             ]
@@ -52,6 +58,7 @@ def get_query_data(startTime,endTime):
     headers = {
         'Content-Type': 'application/json'
     }
+    data_url = url + query_data % (groupcode, projectId)
     res = HttpRequestsUtil.post(data_url,payload,headers)
     data = res["data"]
     return data
@@ -63,5 +70,13 @@ def get_query_data(startTime,endTime):
 
 
 if __name__ == '__main__':
-    data = get_query_data("20230701000000","20230702000000")
-    print(data)
+    energy_total = "Vo1101020007a9759e6a1550441dbb4a1bbdf9618a26"
+    energy_light = "Vo1101020007c5357269d8ea4781848a06f12db1d550"
+    energy_ac_termial = "Vo110102000768126c407f194cb69bdd39b50dfaaa4a"
+    energy_cooling = ""
+    energy_heating = ""
+    groupcode="YS"
+    projectId="Pj1101020007"
+    data = get_query_data("20230725000000","20230726000000",groupcode, projectId,energy_total,energy_light,energy_cooling,energy_heating,energy_ac_termial)
+    for i in data:
+        print(i)

+ 24 - 3
config.json

@@ -1,11 +1,32 @@
 {
+  "buildings": [{
+    "building": "1101020007",
+    "groupcode": "YS",
+    "energyid": "1000012",
+    "rwdid": {
+      "energy_total": "Vo1101020007a9759e6a1550441dbb4a1bbdf9618a26",
+      "energy_light": "Vo1101020007c5357269d8ea4781848a06f12db1d550",
+      "energy_ac_termial": "Vo110102000768126c407f194cb69bdd39b50dfaaa4a",
+      "energy_cooling": "",
+      "energy_heating": ""
+
+    }},{
+    "building": "1101080259",
+    "groupcode": "YS",
+    "energyid": "1000001",
+    "rwdid": {
+      "energy_total": "Vo1101080259f2481ca3604644399f1dacb84e20adae",
+      "energy_light": "Vo110108025953894df8d4ae4dbeb7c81ced7df3f83e",
+      "energy_ac_termial": "Vo11010802590eaef68d3289452d86d89fbee721e6df",
+      "energy_cooling": "Vo1101080259e6dcf338d9be4bbf826f659b0b5a9ab2",
+      "energy_heating": ""
+
+    }}],
   "mysql": {
     "host": "rm-2zek656j2bn934176xo.mysql.rds.aliyuncs.com",
     "port": 53306,
     "user": "root",
     "passwd": "H%k3!BHw1kQXIc70",
     "database": "sagacloud_review"
-  },
-  "dingding": "https://oapi.dingtalk.com/robot/send?access_token=51a1f6f067341fc1647479cff0349c2f94d0165f760bf973b24336bfdc349d34",
-  "at_mobiles": "15727360513"
+  }
 }

+ 58 - 52
main.py

@@ -1,9 +1,7 @@
 import datetime
-import json,pymysql
-import os
+import json
 import time
 from MyUtils.MysqlUtils import MysqlUtils
-from MyUtils.Dingtalk import send_message
 from MyUtils.DmprwdUtil import get_query_data
 import pytz
 
@@ -16,8 +14,7 @@ with open("config.json", "r") as f:
     data = json.load(f)
     mysql = data["mysql"]
     my_database = mysql["database"]
-    dingding = data["dingding"]
-    at_mobiles = data["at_mobiles"]
+    buildings = data["buildings"]
 
 def datetime_now():
     # datetime_now = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
@@ -28,64 +25,73 @@ def datetime_now():
     return datetime_now
 
 
-building = "1101080259"
-def transfer_energy():
-    print("同步%s项目数据" % (building))
-    while True:
-        project_id = "Pj" + building
-        time_now = datetime.datetime.fromtimestamp(int(time.time()),
-                                                   pytz.timezone('Asia/Shanghai')).strftime('%H:%M:%S')
-        am_set_time = "08:00:00"
-        pm_set_time = "22:00:00"
-        if time_now == am_set_time or time_now ==pm_set_time:#此处设置每天定时的时间
-            today = datetime.date.today().strftime("%Y%m%d")+"000000"
-            yesterday = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")+"000000"
-            today_date = datetime.date.today().strftime("%Y%m%d")
-            yesterday_date = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
-
-
-            # #连接mysql
-            MysqlUtil = MysqlUtils(**mysql)
-            #获取能耗数据
-            datas = get_query_data(yesterday,today)
+print("%s 等待下次执行..."%datetime_now())
+while True:
+    time_now = datetime.datetime.fromtimestamp(int(time.time()),
+                                               pytz.timezone('Asia/Shanghai')).strftime('%H:%M:%S')
+    am_set_time = "08:00:00"
+    pm_set_time = "22:00:00"
+    if time_now == am_set_time or time_now == pm_set_time:  # 此处设置每天定时的时间
+        today = datetime.date.today().strftime("%Y%m%d") + "000000"
+        yesterday = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d") + "000000"
+        today_date = datetime.date.today().strftime("%Y%m%d")
+        yesterday_date = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
+        # #连接mysql
+        MysqlUtil = MysqlUtils(**mysql)
+        #循环项目查询
+        for building in buildings:
+            project_id = "Pj"+building["building"]
+            groupcode = building["groupcode"]
+            energyid = building["energyid"]
+            rwdid = building["rwdid"]
+            energy_total = rwdid["energy_total"]
+            energy_light = rwdid["energy_light"]
+            energy_ac_termial = rwdid["energy_ac_termial"]
+            energy_cooling = rwdid["energy_cooling"]
+            energy_heating = rwdid["energy_heating"]
+            print("%s 开始查询%s项目数据"%(datetime_now(),project_id))
+            # 获取能耗数据
+            datas = get_query_data(yesterday, today,groupcode, project_id,energy_total,energy_light,energy_cooling,energy_heating,energy_ac_termial)
             if datas:
                 # 删除昨天数据
-                print("%s,开始删除%s的数据..." % (datetime_now(), yesterday))
+                print("%s,开始删除%s项目%s的数据..." % (datetime_now(),project_id, yesterday))
                 delete_sql = DELETE_SQL % (project_id, yesterday_date, today_date)
                 MysqlUtil.update(delete_sql)
                 objectids = [i["objectId"] for i in datas]
                 print(objectids)
-                energy_cooling = "0"
-                energy_heating = "0"
-                energy_ac_terminal = "0"
-                energy_light = "0"
-                sum_data_value = "0"
+                sum_data_value_data = "0"
+                energy_heating_data = "0"
+                energy_ac_terminal_data = "0"
+                energy_light_data = "0"
+                energy_cooling_data = "0"
                 for i in datas:
                     print(i)
-                    #总电耗
-                    if i["objectId"] == "Vo1101080259f2481ca3604644399f1dacb84e20adae":
-                        sum_data_value = i["ipValue"]
-                    #冷热源
-                    if i["objectId"] == "Vo1101080259e6dcf338d9be4bbf826f659b0b5a9ab2":
-                        energy_cooling = i["ipValue"]
-                    #空调末端
-                    if i["objectId"] == "Vo11010802590eaef68d3289452d86d89fbee721e6df":
-                        energy_ac_terminal = i["ipValue"]
-                    #照明
-                    if i["objectId"] == "Vo110108025953894df8d4ae4dbeb7c81ced7df3f83e":
-                        energy_light = i["ipValue"]
-
-                energy_other = float(sum_data_value) - float(energy_cooling) - float(energy_heating)- float(energy_light) - float(energy_ac_terminal)
+                    # 总电耗
+                    if i["objectId"] == energy_total:
+                        sum_data_value_data = i["ipValue"]
+                    # 冷
+                    if i["objectId"] == energy_cooling:
+                        energy_cooling_data = i["ipValue"]
+                    # 热
+                    if i["objectId"] == energy_heating:
+                        energy_heating_data = i["ipValue"]
+                    # 空调末端
+                    if i["objectId"] == energy_ac_termial:
+                        energy_ac_terminal_data = i["ipValue"]
+                    # 照明
+                    if i["objectId"] == energy_light:
+                        energy_light_data = i["ipValue"]
+                energy_other = float(sum_data_value_data) - float(energy_cooling_data) - float(energy_heating_data) - float(energy_light_data) - float(
+                    energy_ac_terminal_data)
                 sql = "('%s','%s','%s','%s','%s','%s','%s','%s','%s')" % (
-                    project_id, yesterday_date, energy_cooling, energy_heating, energy_ac_terminal, energy_light, energy_other,
+                    project_id, yesterday_date, energy_cooling_data, energy_heating_data, energy_ac_terminal_data, energy_light_data, energy_other,
                     datetime_now(), datetime_now())
                 inser_sql = INSERT_SQL % (my_database, "energy_week_day") + sql
-                print("%s,开始插入数据..." % datetime_now())
+                print("%s,开始插入%s项目%s数据..." % (datetime_now(),project_id,yesterday))
                 MysqlUtil.update(inser_sql)
             else:
-                print("%s,没有查询到数据...")
-
-            MysqlUtil.close()
+                print("%s,没有查询到%s项目%s的数据..."%(datetime_now(),project_id,yesterday))
 
-if __name__ == '__main__':
-    transfer_energy()
+        MysqlUtil.close()
+        print("%s 完成%s的数据插入"%(datetime_now(),yesterday))
+        time.sleep(2)

+ 61 - 45
temp.py

@@ -17,8 +17,8 @@ with open("config.json", "r") as f:
     data = json.load(f)
     mysql = data["mysql"]
     my_database = mysql["database"]
-    dingding = data["dingding"]
-    at_mobiles = data["at_mobiles"]
+    buildings = data["buildings"]
+
 
 def datetime_now():
     # datetime_now = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
@@ -32,18 +32,16 @@ def datetime_now():
 # #连接hbase
 MysqlUtil = MysqlUtils(**mysql)
 
-building = "1101080259"
 
-start_time = "20230712000000"
-end_time = "20230719000000"
+
+start_time = "20230724000000"
+end_time = "20230726000000"
 range_days = get_day(start_time,end_time)
 
 for i in range_days:
     yesterday,today = i[0],i[1]
     yesterday_date = yesterday[0:8]
     today_date = today[0:8]
-    print("同步%s项目数据"%(building))
-    project_id = "Pj" + building
     time_now = datetime.datetime.fromtimestamp(int(time.time()),
                                                pytz.timezone('Asia/Shanghai')).strftime('%H:%M:%S')
     # today = datetime.date.today().strftime("%Y%m%d")+"000000"
@@ -52,45 +50,63 @@ for i in range_days:
     # yesterday_date = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
     #
 
-    print(today,yesterday)
-
-    #获取能耗数据
-    datas = get_query_data(yesterday,today)
-    if datas:
-        # 删除昨天数据
-        print("%s,开始删除%s的数据..." % (datetime_now(), yesterday))
-        delete_sql = DELETE_SQL % (project_id, yesterday_date, today_date)
-        MysqlUtil.update(delete_sql)
-        objectids = [i["objectId"] for i in datas]
-        energy_cooling = "0"
-        energy_heating = "0"
-        energy_ac_terminal = "0"
-        energy_light = "0"
-        sum_data_value = "0"
-        for i in datas:
-            #总电耗
-            if i["objectId"] == "Vo1101080259f2481ca3604644399f1dacb84e20adae":
-                sum_data_value = i["ipValue"]
-            #冷热源
-            if i["objectId"] == "Vo1101080259e6dcf338d9be4bbf826f659b0b5a9ab2":
-                energy_cooling = i["ipValue"]
-            #空调末端
-            if i["objectId"] == "Vo11010802590eaef68d3289452d86d89fbee721e6df":
-                energy_ac_terminal = i["ipValue"]
-            #照明
-            if i["objectId"] == "Vo110108025953894df8d4ae4dbeb7c81ced7df3f83e":
-                energy_light = i["ipValue"]
+    # 循环项目查询
+    for building in buildings:
 
-        print(sum_data_value,energy_cooling,energy_ac_terminal,energy_light)
-        energy_other = float(sum_data_value) - float(energy_cooling) - float(energy_heating)- float(energy_light) - float(energy_ac_terminal)
-        sql = "('%s','%s','%s','%s','%s','%s','%s','%s','%s')" % (
-            project_id, yesterday_date, energy_cooling, energy_heating, energy_ac_terminal, energy_light, energy_other,
-            datetime_now(), datetime_now())
-        inser_sql = INSERT_SQL % (my_database, "energy_week_day") + sql
-        print("%s,开始插入数据..." % datetime_now())
-        MysqlUtil.update(inser_sql)
-    else:
-        print("%s,没有查询到数据...")
+        project_id = "Pj" + building["building"]
+        groupcode = building["groupcode"]
+        energyid = building["energyid"]
+        rwdid = building["rwdid"]
+        energy_total = rwdid["energy_total"]
+        energy_light = rwdid["energy_light"]
+        energy_ac_termial = rwdid["energy_ac_termial"]
+        energy_cooling = rwdid["energy_cooling"]
+        energy_heating = rwdid["energy_heating"]
+        print("%s 开始查询%s项目数据" % (datetime_now(), project_id))
+        # 获取能耗数据
+        datas = get_query_data(yesterday, today, groupcode, project_id, energy_total, energy_light, energy_cooling,
+                               energy_heating, energy_ac_termial)
+        if datas:
+            # 删除昨天数据
+            print("%s,开始删除%s项目%s的数据..." % (datetime_now(), project_id, yesterday))
+            delete_sql = DELETE_SQL % (project_id, yesterday_date, today_date)
+            MysqlUtil.update(delete_sql)
+            objectids = [i["objectId"] for i in datas]
+            print(objectids)
+            sum_data_value_data = "0"
+            energy_heating_data = "0"
+            energy_ac_terminal_data = "0"
+            energy_light_data = "0"
+            energy_cooling_data = "0"
+            for i in datas:
+                print(i)
+                # 总电耗
+                if i["objectId"] == energy_total:
+                    sum_data_value_data = i["ipValue"]
+                # 冷
+                if i["objectId"] == energy_cooling:
+                    energy_cooling_data = i["ipValue"]
+                # 热
+                if i["objectId"] == energy_heating:
+                    energy_heating_data = i["ipValue"]
+                # 空调末端
+                if i["objectId"] == energy_ac_termial:
+                    energy_ac_terminal_data = i["ipValue"]
+                # 照明
+                if i["objectId"] == energy_light:
+                    energy_light_data = i["ipValue"]
+            energy_other = float(sum_data_value_data) - float(energy_cooling_data) - float(energy_heating_data) - float(
+                energy_light_data) - float(
+                energy_ac_terminal_data)
+            sql = "('%s','%s','%s','%s','%s','%s','%s','%s','%s')" % (
+                project_id, yesterday_date, energy_cooling_data, energy_heating_data, energy_ac_terminal_data,
+                energy_light_data, energy_other,
+                datetime_now(), datetime_now())
+            inser_sql = INSERT_SQL % (my_database, "energy_week_day") + sql
+            print("%s,开始插入%s项目%s数据..." % (datetime_now(), project_id, yesterday))
+            MysqlUtil.update(inser_sql)
+        else:
+            print("%s,没有查询到%s项目%s的数据..." % (datetime_now(), project_id, yesterday))
 
 MysqlUtil.close()