def get_all_copmanies_alerts_graph_statisctics_details(
        self, logs_data, company_names
    ):
        """Fetch alerts, graph, and statistics details for all companies.

        Args:
            logs_data (list): List of log data.
            company_names (list): List of company names.
        """
        fetching_index = self.get_last_data_index(
            company_names, self.checkpoint_obj, self.company_state, table_name="{}_{}".format(ALERTS_DATA_TABLE, "Statistics")
        )
        for company_index in range(fetching_index + 1, len(logs_data)):
            company_name = logs_data[company_index].get("name_s")
            if int(time.time()) >= self.start_time + 540:
                applogger.info(
                    "{} {} 9:00 mins executed hence breaking. In next iteration, start fetching from {}.".format(
                        self.logs_starts_with,
                        ALERT_GRAPH_STATISTICS_FUNC_NAME,
                        company_name,
                    )
                )
                break
            company_guid = logs_data[company_index].get("guid_g")
            self.get_company_alerts_graph_statisctics_details(
                company_name, company_guid
            )
            self.checkpoint_obj.save_checkpoint(
                self.company_state,
                company_name,
                "statisctics_company",
                "{}_{}".format(ALERTS_DATA_TABLE, "Statistics_Company_Checkpoint"),
                company_name_flag=True,
            )
Fetch alerts, graph, and statistics details for all companies.

        Args:
            logs_data (list): List of log data.
            company_names (list): List of company names.
        
Solutions/BitSight/Data Connectors/BitSightDataConnector/AlertsGraphStatisticsDetails/bitsight_statistics.py