5.9 KiB
5.9 KiB
Zeodao任务提醒系统 v2.0
一个基于Spring Boot的多群企业微信任务提醒系统,支持多个团队群组、多种任务管理系统和自定义提醒时间。系统可以同时为使用禅道、智能表格、Jira等不同任务管理工具的团队提供个性化的任务状态提醒服务。
功能特性
- ✅ 多群组支持 - 同时支持多个企业微信群组
- ✅ 多任务系统 - 支持禅道、智能表格、Jira、Trello等任务管理系统
- ✅ 自定义时间 - 每个群组可配置不同的提醒时间
- ✅ 个性化消息 - 根据任务管理系统生成专属操作指引
- ✅ 动态调度 - 根据配置文件动态创建定时任务
- ✅ 自动排除节假日 - 智能跳过周末和法定节假日
- ✅ 企业微信集成 - 支持Webhook消息推送和Markdown格式
- ✅ REST API - 提供完整的管理和监控接口
- ✅ 实时监控 - 任务状态监控和日志记录
技术栈
- Java 21
- Spring Boot 2.7.14
- Maven
- 企业微信Webhook API
快速开始
1. 环境要求
- JDK 21 或更高版本
- Maven 3.6+
2. 配置企业微信Webhook
在 src/main/resources/application.yml 中配置您的群组信息:
task:
reminder:
groups:
- id: "your-team"
name: "您的团队名称"
webhook:
url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_WEBHOOK_KEY"
task-system: "zentao" # 或 smartsheet, jira 等
schedules:
morning:
time: "0 0 9 * * MON-FRI"
message: "早上提醒消息"
evening:
time: "0 30 17 * * MON-FRI"
message: "晚上提醒消息"
enabled: true
3. 编译和运行
# 编译项目
mvn clean compile
# 运行项目
mvn spring-boot:run
或者打包后运行:
# 打包
mvn clean package
# 运行jar包
java -jar target/task-reminder-1.0.0.jar
4. 验证系统
系统启动后,可以通过以下API进行测试:
# 健康检查
curl http://localhost:8080/api/reminder/health
# 获取系统信息
curl http://localhost:8080/api/reminder/info
# 查看所有群组配置
curl http://localhost:8080/api/reminder/groups
# 发送测试消息
curl -X POST http://localhost:8080/api/reminder/test
# 手动触发所有群组早上提醒
curl -X POST http://localhost:8080/api/reminder/morning
# 手动触发所有群组晚上提醒
curl -X POST http://localhost:8080/api/reminder/evening
# 手动触发指定群组的提醒
curl -X POST http://localhost:8080/api/reminder/groups/{groupId}/{scheduleType}
# 重新加载配置
curl -X POST http://localhost:8080/api/reminder/reload
配置说明
多群组配置
系统支持配置多个群组,每个群组可以有不同的设置:
task:
reminder:
groups:
# 禅道团队
- id: "zentao-team"
name: "禅道开发团队"
webhook:
url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY_1"
task-system: "zentao"
schedules:
morning:
time: "0 0 9 * * MON-FRI" # 早上9点
message: "请及时登录禅道系统刷新任务状态"
evening:
time: "0 30 17 * * MON-FRI" # 下午5:30
message: "请更新今日任务完成状态"
enabled: true
# 智能表格团队
- id: "smartsheet-team"
name: "智能表格团队"
webhook:
url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY_2"
task-system: "smartsheet"
schedules:
morning:
time: "0 50 8 * * MON-FRI" # 早上8:50
message: "请及时更新智能表格中的任务状态"
evening:
time: "0 20 17 * * MON-FRI" # 下午5:20
message: "请在智能表格中更新今日工作完成情况"
enabled: true
支持的任务管理系统
zentao- 禅道smartsheet- 智能表格jira- Jiratrello- Trelloasana- Asananotion- Notion
节假日配置
系统内置了2025年的法定节假日,可以在 HolidayUtil.java 中修改或添加自定义节假日。
API文档
健康检查
- URL:
GET /api/reminder/health - 描述: 检查系统运行状态
发送测试消息
- URL:
POST /api/reminder/test - 描述: 发送一条测试消息到企业微信群
手动触发早上提醒
- URL:
POST /api/reminder/morning - 描述: 手动触发早上任务提醒
手动触发晚上提醒
- URL:
POST /api/reminder/evening - 描述: 手动触发晚上任务提醒
获取提醒信息
- URL:
GET /api/reminder/info - 描述: 获取下次提醒时间和系统状态信息
日志
系统会在 logs/task-reminder.log 文件中记录详细的运行日志,包括:
- 定时任务执行记录
- 消息发送状态
- 错误信息
- 系统健康检查
部署建议
生产环境部署
- 修改
application.yml中的日志级别为INFO - 配置合适的JVM参数
- 使用systemd或其他进程管理工具管理应用
- 配置日志轮转策略
Docker部署
可以创建Dockerfile进行容器化部署:
FROM openjdk:21-jre-slim
COPY target/task-reminder-1.0.0.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
故障排除
常见问题
-
消息发送失败
- 检查企业微信Webhook地址是否正确
- 检查网络连接是否正常
- 查看日志文件中的错误信息
-
定时任务不执行
- 检查Cron表达式是否正确
- 确认当前时间是否为工作日
- 查看系统日志确认定时任务是否启动
-
节假日判断错误
- 检查
HolidayUtil.java中的节假日配置 - 确认系统时间是否正确
- 检查
贡献
欢迎提交Issue和Pull Request来改进这个项目。
许可证
MIT License
联系方式
如有问题,请联系开发团队。