# 定时报告生成 - 快速启动指南

## ⚡ 5分钟快速配置

### Windows系统（推荐）

#### 步骤1：测试脚本（1分钟）

打开PowerShell，执行：

```powershell
cd Z:\
C:\php\php.exe auto_generate_report.php
```

**预期结果**：看到"生成完成统计"的输出

---

#### 步骤2：创建定时任务（2分钟）

**方法A：图形界面（简单）**

1. Win + R → 输入 `taskschd.msc` → 回车
2. 右侧点击"创建基本任务"
3. 名称：`安全报告自动生成`
4. 触发器：每月 → 1号 → 02:00
5. 操作：启动程序
   - 程序：`C:\php\php.exe`
   - 参数：`Z:\auto_generate_report.php`
   - 起始于：`Z:\`
6. 完成

**方法B：命令行（快速）**

以管理员身份运行PowerShell：

```powershell
$action = New-ScheduledTaskAction -Execute "C:\php\php.exe" -Argument "Z:\auto_generate_report.php" -WorkingDirectory "Z:\"
$trigger = New-ScheduledTaskTrigger -Monthly -DaysOfMonth 1 -At "2:00AM"
Register-ScheduledTask -TaskName "安全报告自动生成" -Action $action -Trigger $trigger -Description "每月自动生成安全报告"
```

---

#### 步骤3：验证配置（1分钟）

```powershell
# 查看任务
Get-ScheduledTask -TaskName "安全报告自动生成"

# 立即测试运行
Start-ScheduledTask -TaskName "安全报告自动生成"

# 等待10秒后查看结果
Start-Sleep -Seconds 10
Get-ChildItem Z:\auto_reports\ | Sort-Object LastWriteTime -Descending | Select-Object -First 3
```

---

#### 步骤4：检查生成的报告（1分钟）

```powershell
# 查看报告目录
explorer Z:\auto_reports\

# 用浏览器打开最新报告
$latestReport = Get-ChildItem Z:\auto_reports\*.html | Sort-Object LastWriteTime -Descending | Select-Object -First 1
Invoke-Item $latestReport.FullName
```

---

### Linux系统

#### 一键配置

```bash
# 1. 添加crontab
(crontab -l 2>/dev/null; echo "0 2 1 * * /usr/bin/php /vol1/1000/www/auto_generate_report.php >> /var/log/safety_report_cron.log 2>&1") | crontab -

# 2. 创建报告目录
mkdir -p /vol1/1000/www/auto_reports
chmod 755 /vol1/1000/www/auto_reports

# 3. 测试执行
php /vol1/1000/www/auto_generate_report.php

# 4. 查看结果
ls -lh /vol1/1000/www/auto_reports/
```

---

## ✅ 验证清单

配置完成后，请确认：

- [ ] 手动执行脚本成功
- [ ] 定时任务已创建
- [ ] 报告目录存在且可写
- [ ] 生成了HTML报告文件
- [ ] 可以用浏览器打开报告
- [ ] 日志文件有记录

---

## 🎯 下一步

### 可选配置

1. **启用邮件通知**（需要配置邮件服务器）
   ```php
   // 编辑 auto_generate_report.php
   $SEND_EMAIL = true;
   $EMAIL_RECIPIENTS = 'your-email@company.com';
   ```

2. **自定义执行时间**
   - 凌晨2点可能太早，可以改为上午8点
   - 修改crontab或任务计划的时间

3. **添加监控告警**
   - 创建检查脚本
   - 设置失败时发送邮件

---

## 📞 需要帮助？

### 常见问题速查

**问题1：提示"PHP不是内部或外部命令"**
```powershell
# 找到PHP安装路径
where php

# 使用完整路径
C:\xampp\php\php.exe Z:\auto_generate_report.php
```

**问题2：权限不足**
```powershell
# 以管理员身份运行PowerShell
# 或者右键 → 以管理员身份运行
```

**问题3：报告目录不存在**
```powershell
# 创建目录
New-Item -ItemType Directory -Path "Z:\auto_reports" -Force
```

**问题4：没有数据**
- 这是正常的，如果上月确实没有检查记录
- 检查数据库是否有inspections表的数据

---

## 📚 相关文档

- [AUTO_REPORT_CRON_SETUP.md](AUTO_REPORT_CRON_SETUP.md) - 详细配置指南
- [EXCEL_EXPORT_IMPLEMENTATION.md](EXCEL_EXPORT_IMPLEMENTATION.md) - Excel导出功能
- [SMART_REPORT_GUIDE.md](SMART_REPORT_GUIDE.md) - 智能报告使用说明

---

**最后更新**: 2026-04-18  
**状态**: ✅  ready to use
