生成日报、周报
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
"""
|
||||
报告生成器使用示例
|
||||
展示各种使用场景
|
||||
"""
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user