Files
intelligence_system/applications/reporter/example_usage.py
T
2025-10-30 09:54:47 +08:00

137 lines
3.8 KiB
Python

"""
报告生成器使用示例
展示各种使用场景
"""
import os
import sys
# 添加父目录到路径
current_dir = os.path.dirname(os.path.abspath(__file__))
parent_dir = os.path.dirname(os.path.dirname(current_dir))
if parent_dir not in sys.path:
sys.path.insert(0, parent_dir)
from applications.reporter.daily import DailyReporter
from applications.reporter.weekly import WeeklyReporter
def example_daily_report():
"""示例1:生成简单日报"""
print("=" * 50)
print("示例1:生成日报(使用内置模板)")
print("=" * 50)
reporter = DailyReporter()
report_path = reporter.generate()
print(f"✅ 日报已生成: {report_path}\n")
def example_weekly_report():
"""示例2:生成简单周报"""
print("=" * 50)
print("示例2:生成周报(使用内置模板)")
print("=" * 50)
reporter = WeeklyReporter()
report_path = reporter.generate()
print(f"✅ 周报已生成: {report_path}\n")
def example_custom_template():
"""示例3:使用外部模板"""
print("=" * 50)
print("示例3:使用外部HTML模板生成日报")
print("=" * 50)
# 获取模板路径(相对于当前文件)
template_path = os.path.join(
os.path.dirname(__file__),
'templates',
'custom_template_example.html'
)
if os.path.exists(template_path):
reporter = DailyReporter()
report_path = reporter.generate(template_path=template_path)
print(f"✅ 使用外部模板生成的日报: {report_path}\n")
else:
print(f"⚠️ 模板文件不存在: {template_path}\n")
def example_custom_output_dir():
"""示例4:指定输出目录"""
print("=" * 50)
print("示例4:指定自定义输出目录")
print("=" * 50)
reporter = DailyReporter()
custom_dir = "output/reports/custom"
report_path = reporter.generate(output_dir=custom_dir)
print(f"✅ 报告已保存到自定义目录: {report_path}\n")
def example_add_data_source():
"""示例5:添加自定义数据源"""
print("=" * 50)
print("示例5:添加自定义数据源")
print("=" * 50)
try:
from applications.reporter.data_source_example import ComplaintDataSource
from utils.mysql_agent import MySQLAgent
from config import Config
reporter = DailyReporter()
# 添加投诉数据源(如果数据库中有该表)
db_agent = MySQLAgent(Config.MYSQL_CONFIG)
complaint_source = ComplaintDataSource(db_agent, table_name="complaint_data")
reporter.add_data_source(complaint_source)
report_path = reporter.generate()
print(f"✅ 包含自定义数据源的报告已生成: {report_path}\n")
except Exception as e:
print(f"⚠️ 添加自定义数据源失败(可能是表不存在): {str(e)}\n")
def main():
"""主函数"""
print("\n" + "=" * 50)
print("汽车后市场情报报告生成器 - 使用示例")
print("=" * 50 + "\n")
# 运行各种示例
try:
example_daily_report()
except Exception as e:
print(f"❌ 示例1失败: {str(e)}\n")
try:
example_weekly_report()
except Exception as e:
print(f"❌ 示例2失败: {str(e)}\n")
try:
example_custom_template()
except Exception as e:
print(f"❌ 示例3失败: {str(e)}\n")
try:
example_custom_output_dir()
except Exception as e:
print(f"❌ 示例4失败: {str(e)}\n")
try:
example_add_data_source()
except Exception as e:
print(f"❌ 示例5失败: {str(e)}\n")
print("=" * 50)
print("所有示例运行完成!")
print("=" * 50 + "\n")
if __name__ == "__main__":
main()