# taskReport **Repository Path**: bigbigking/task-report ## Basic Information - **Project Name**: taskReport - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-23 - **Last Updated**: 2025-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎯 Cysic任务监控系统 这是一个用于监控Cysic设备任务完成情况的自动化系统,包含实时监控和每日报告功能。 ## 📋 功能特性 ### 🔄 实时监控 (`checkTask.js`) - 每5分钟检查一次所有设备的任务状态 - 实时统计每日任务接收、完成和失败数量 - 检测到新任务时自动发送企业微信通知 - 自动保存每日统计数据 ### 📊 每日报告 (`dailyReport.js`) - 每天UTC时间8:00自动生成日报 - 统计所有设备的任务完成情况和积分变化 - 对比前一天数据,分析任务完成和失败情况 - 检测连续2天无变化的异常设备并发出警报 - 自动发送详细报告到企业微信 ### 📈 数据查看 (`viewStats.js`) - 查看今日或指定日期的统计汇总 - 查看指定设备的历史统计数据 - 列出所有设备的基本信息 ## 🚀 快速开始 ### 方法一:一键设置(推荐) ```bash # 首次使用:运行设置脚本,自动完成环境配置 ./setup.sh # 然后启动服务 npm start # 启动实时监控 # 或 npm run daily-schedule # 启动每日报告 ``` ### 方法二:手动设置 #### 1. 安装依赖 ```bash npm install ``` ### 2. 配置环境变量 复制 `.env.example` 文件并重命名为 `.env`,然后配置企业微信Webhook地址: ```bash cp .env.example .env ``` 编辑 `.env` 文件,设置你的企业微信机器人Webhook地址: ```env WECHAT_WEBHOOK=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your-webhook-key-here ``` ### 3. 准备设备列表 复制 `device.xlsx.example` 文件并重命名为 `device.xlsx`,然后填入你的设备信息: ```bash cp device.xlsx.example device.xlsx ``` 设备列表文件需要包含以下列: - ID列:设备ID(数字类型) - 设备名列:设备名称(可选) ### 4. 运行脚本 #### 启动实时监控 ```bash npm start # 或 node checkTask.js ``` #### 启动每日报告定时任务 ```bash npm run daily-schedule # 或 node dailyReport.js ``` #### 手动生成一次日报 ```bash npm run daily-report # 或 node dailyReport.js --run-now ``` #### 查看统计数据 ```bash npm run view-stats # 或 node viewStats.js ``` ## 📊 使用示例 ### 查看今日统计 ```bash node viewStats.js # 或 node viewStats.js today ``` ### 查看指定日期统计 ```bash node viewStats.js date 2024-01-15 ``` ### 查看设备历史 ```bash # 查看设备最近7天统计 node viewStats.js device 12345 # 查看设备最近14天统计 node viewStats.js device 12345 14 ``` ### 列出所有设备 ```bash node viewStats.js list ``` ## 📁 文件说明 ### 脚本文件 - `checkTask.js` - 实时监控脚本 - `dailyReport.js` - 每日报告脚本 - `viewStats.js` - 数据查看工具 - `setup.sh` - 首次使用的环境配置脚本 - `start.sh` - 应用启动脚本(主要用于Docker) ### 配置文件 - `.env.example` - 环境变量示例文件(git追踪) - `.env` - 环境变量配置文件(需要从example复制创建,git忽略) - `device.xlsx.example` - 设备列表示例文件(git追踪) - `device.xlsx` - 设备列表(需要从example复制创建,git忽略) ### 数据文件 - `task_status.json` - 任务状态缓存(git忽略) - `daily_stats.json` - 每日统计数据 - `daily_history.json` - 历史数据存储 ## 📱 企业微信通知 系统会在以下情况发送企业微信通知: ### 实时监控通知 - 检测到设备有新任务时 ### 每日报告通知 - 每天8点自动发送日报,包含: - 当前总积分和任务数 - 与昨日对比的变化情况 - 活跃设备详情 - 异常设备警报(连续2天无变化) ### 错误通知 - 系统运行出错时自动发送错误信息 ## ⏰ 定时任务说明 ### 实时监控 - 频率:每5分钟执行一次 - 时区:本地时区 - 功能:检查任务状态变化,发送新任务通知 ### 每日报告 - 频率:每天执行一次 - 时间:UTC时间8:00(北京时间16:00) - 功能:生成日报并发送到企业微信 ### 数据清理 - 频率:每24小时执行一次 - 功能:清理30天前的统计数据 ## 🛠️ 高级配置 ### 环境变量配置 创建 `.env` 文件来配置系统参数: ```env # 企业微信机器人配置(必填) WECHAT_WEBHOOK=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your-webhook-key-here # 运行环境配置(可选) NODE_ENV=production ``` #### 环境变量说明 - `WECHAT_WEBHOOK` - 企业微信机器人Webhook地址(必填) - `NODE_ENV` - 运行环境,设置为 `production` 时数据文件保存到 `/app/data/` 目录 ### 企业微信配置 #### 获取Webhook地址 1. 在企业微信群中添加机器人 2. 复制生成的Webhook地址 3. 在 `.env` 文件中设置 `WECHAT_WEBHOOK` 变量 #### 机器人权限 确保机器人有发送消息的权限。 ## 📊 日报示例 ``` 📊 Cysic每日任务报告 📅 日期: 2024年1月15日 📈 总体情况: 总分: 1234.56 CYS 总任务数: 150 已完成: 120 设备数: 8/10 📊 与昨日对比: 积分变化: +45.67 CYS 总任务变化: +12 完成任务变化: +15 📋 活跃设备详情: 1. 设备A 积分: +12.34 CYS 完成任务: +3个 2. 设备B 积分: +8.90 CYS 完成任务: +2个 失败任务: 1个 ⚠️ 警报设备 (连续2天无变化): 1. 设备C (ID: 12345) ⏰ 报告生成时间: 2024/1/15 16:00:15 ``` ## 🔧 故障排除 ### 常见问题 1. **环境变量配置错误** - 错误信息:`❌ 错误:未找到企业微信Webhook地址` - 解决方案: ```bash cp .env.example .env # 然后编辑 .env 文件设置 WECHAT_WEBHOOK ``` 2. **Excel文件读取失败** - 确保 `device.xlsx` 文件存在且格式正确(从 `device.xlsx.example` 复制创建) - 检查是否包含ID列 - 如果文件不存在,执行:`cp device.xlsx.example device.xlsx` 3. **API请求失败** - 检查网络连接 - 确认API地址是否正确 4. **企业微信通知失败** - 检查 `.env` 文件中的 `WECHAT_WEBHOOK` 地址是否正确 - 确认机器人权限设置 - 验证Webhook地址格式:`https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxx` 5. **定时任务不执行** - 确保脚本持续运行 - 检查系统时间和时区设置 6. **依赖安装失败** - 确保Node.js版本 >= 14 - 重新安装依赖:`rm -rf node_modules && npm install` ### 日志查看 脚本运行时会输出详细的日志信息,包括: - 设备检查结果 - 任务变化情况 - 统计数据更新 - 通知发送状态 ## 📞 支持 如有问题或建议,请检查日志输出或联系系统管理员。