Odoo工时自动申报系统

基于Astrbot & Napcat的智能API申报系统,自动化每日工时填报

已稳定运行:

0
0
0
0
0
小时
0
0
分钟
0
0

核心功能

智能定时任务
基于APScheduler的定时任务系统,每天指定时间自动触发申报流程,支持智能识别工作日。
多用户管理
支持多用户统一管理,可动态添加、删除、修改用户信息,每位用户独立配置和认证。
API直连申报
直接调用Odoo系统API进行工时申报,无需浏览器自动化,效率更高更稳定。
智能日期处理
自动识别节假日和周末,支持本周、上周工时批量申报,智能处理日期格式。
Session状态管理
自动验证和维护用户session状态,支持批量更新失效的登录凭证。
实时状态监控
提供任务状态查询、用户信息查看、运行日志追踪,全面监控系统运行状况。

技术架构

系统基于以下技术构建:

AstrBot
NapCat
Python 3.11
APScheduler
Requests
Chinese Calendar
JSON
BeautifulSoup4

系统架构

本系统构建于AstrBotNapCat组成的QQ机器人框架之上。系统通过API直接与Odoo系统交互,避免Web自动化的不稳定性。

核心模块包括:用户管理模块、定时任务调度器、API调用模块、Session管理模块和日志系统。所有用户数据存储在JSON文件中,支持动态增删改查。

API调用流程

登录验证
获取CSRF Token并验证用户凭证
工单查询
查询有效的工单和项目信息
项目筛选
筛选符合条件的项目信息
工时提交
创建并提交工时申报记录

工作流程

1
定时触发
每天指定时间APScheduler自动触发工作流程,智能识别工作日。
2
用户筛选
根据用户配置和当前时间,自动筛选需要申报的用户。
3
API申报
通过Odoo API为每个用户自动登录、查询工单、提交工时。
4
结果通知
发送QQ消息通知申报结果,更新用户状态,记录完整日志。

命令系统

用户管理命令
/adduser @QQ 账号 密码 添加新用户到系统
/deluser 账号 删除指定用户
/queryuser [@QQ] 查询用户信息
/listusers 列出所有用户
申报控制命令
/submitgs 姓名 [日期] 提交工时申报,日期格式:YYYY年MM月DD日
/submitgs all [日期] 为所有用户提交工时
/submitgs 姓名 thisweek 申报本周所有工作日工时
/submitgs 姓名 lastweek 补申报上周所有工作日工时
系统管理命令
/updatesession 验证并更新所有失效的session
/taskinfo 查看定时任务状态
/gshelp 显示所有可用指令

使用声明

系统基于Astrbot & Napcat框架开发,仅供内部使用

使用前请确认可承担的风险并遵守相关规范

执行结果仍需人工核对确认,系统仅提供自动化辅助