Example #1
0
 def query_cross_month_site_data(self, site_id_list, starttime, endtime):
     if starttime[5:7] == endtime[5:7]:
         site_data = self.query_site_data_within_one_month(site_id_list, starttime, endtime)
         return site_data
     else:
         month_endtime = tu.datetime_to_string(
             tu.time_str_to_datetime(
                 tu.last_day_of_a_month(
                     tu.time_str_to_datetime(starttime))[0]))
         month_starttime = tu.datetime_to_string(
             tu.time_str_to_datetime(
                 tu.first_day_of_a_month(
                     tu.time_str_to_datetime(endtime))[0]))
         # 获取上个月子站数据
         site_data_last_month = self.query_site_data_within_one_month(
             site_id_list, starttime, month_endtime)
         # 获取当月子站数据
         site_data_this_month = self.query_site_data_within_one_month(
             site_id_list, month_starttime, endtime)
         # 数据合并
         # 数据合并
         if site_data_last_month is not None:
             site_data = site_data_last_month.append(site_data_this_month)
         else:
             site_data = site_data_this_month
     if site_data is None:
         raise NoneDfError('未返回df数据,可能数据库连接有异常')
     elif site_data.empty:
         raise EmptyDfError('查询数据库获取的df数据为空')
     return site_data
Example #2
0
    def merge_adj_data_cross_month(self, device_list, start_time, end_time):
        # 跨月取数时,对不同月份的数据进行合并
        # 判断是否时同一个月的数据
        if start_time[5:7] == end_time[5:7]:
            adj_data = self.query_adj_data_within_one_month(
                device_list, start_time, end_time)
            return adj_data
        else:
            # 获取上月的月末时间
            month_endtime = tu.datetime_to_string(
                tu.time_str_to_datetime(
                    tu.last_day_of_a_month(
                        tu.time_str_to_datetime(start_time))[0]))

            month_starttime = tu.datetime_to_string(
                tu.time_str_to_datetime(
                    tu.first_day_of_a_month(
                        tu.time_str_to_datetime(end_time))[0]))
            # 获取上个月的adj数据
            adj_data_last_month = self.query_adj_data_within_one_month(
                device_list, start_time, month_endtime)
            # 获取当月的adj数据
            adj_data_this_month = self.query_adj_data_within_one_month(
                device_list, month_starttime, end_time)
            # 合并org数据
            if adj_data_last_month is not None:
                adj_data = adj_data_last_month.append(adj_data_this_month)
                return adj_data
            else:
                adj_data_this_month
Example #3
0
 def merge_org_data_by_month(self, org_x, device_list, endtime, starttime=None):
     # 跨月取数时,对不同月份的数据进行合并,同一个org_x
     # 判断是否时同一个月的数据
     if starttime is None or starttime[5:7] == endtime[5:7]:
         org_data = self.query_org_data_by_org_x(
             org_x, device_list, endtime, starttime)
         return org_data
     else:
         # 获取上月的月末时间
         month_endtime = tu.datetime_to_string(
             tu.time_str_to_datetime(
                 tu.last_day_of_a_month(
                     tu.time_str_to_datetime(starttime))[0]))
         # 获取当月的月初时间
         month_starttime = tu.datetime_to_string(
             tu.time_str_to_datetime(
                 tu.first_day_of_a_month(
                     tu.time_str_to_datetime(endtime))[0]))
         # 获取上个月的org数据
         org_data_last_month = self.query_org_data_by_org_x(
             org_x, device_list, month_endtime, starttime)
         # 获取当月的org数据
         org_data_this_month = self.query_org_data_by_org_x(
             org_x, device_list, endtime, month_starttime)
         # 合并org数据
         org_data = org_data_last_month.append(org_data_this_month)
         return org_data