本项目是针对软件研发团队的管理系统,围绕PMO、项目经理、开发人员、系统管理员这四个角色设计,集成项目创建与审批、任务分配与匹配、工时填报与审计、绩效量化与评价等核心功能模块,以及消息通知、数据统计等辅助功能模块。
- 业务流程闭环:实现项目的立项申请、审批、进行中、申请结项、存档,以及任务的分配、匹配开发人员、进行中、评审、完成等核心业务的全流程闭环。
- 任务双向匹配机制:项目经理分配任务后,可邀请开发人员;开发人员也可申请待分配任务;只有双向选择匹配后,该任务才锁定指定开发人员。
- 绩效分级与量化:两级绩效评价机制,分别针对项目经理与开发人员;各级绩效数据只有30%来自上级主观评定,其余70%全部源自工时、评审等系统记录的数据。
- 智能辅助决策试点应用:针对指定项目,根据ID获取项目名称、项目描述等信息,拼接至预设Prompt模板,并设计tools约束指定JSON格式,以请求网络大模型API的形式完成任务分配建议;生成的结果经反序列化并进行格式与内容校验后,返回至前端渲染任务分配建议的表格,以辅助项目经理执行任务分配的决策。
-
Redis缓存应用:针对选项框、项目或任务详情、用户姓名等热点数据,优先读取Redis缓存,未命中时查库并写入,通过差异化TTL(并根据角色或用户ID区分Key)及随机波动防止大量缓存同时失效,减少数据库I/O。异步场景中,利用Redis暂存请求状态并返回Key供前端轮询,业务处理完成后根据结果写入状态并设置TTL(失败态一般60秒以内),实现高效的状态同步。
-
Redisson分布式锁应用:在任务双向匹配及PMO审批等关键操作中,使用分布式锁约束临界区,防止并发导致数据覆盖或匹配错乱,配合二次校验保证一致性。单体架构下也可用Java原生锁或乐观锁替代。
-
RabbitMQ应用:通过RabbitMQ实现工时填报削峰、统计报表及AI服务限流,配置有限监听器并限制单次处理一条消息,配合Redis轮询状态,实现异步解耦与线程池保护,为后续AI服务扩展预留能力。
-
数据库实现:MySQL采用InnoDB与utf8mb4,支持事务、行级锁与完整Unicode;MyBatis动态SQL实现权限控制与数据隔离;
@Transactional保证多表操作原子性,异步消息通知在事务提交后发送。
| 分类 | 模块 | 功能描述 |
|---|---|---|
| 核心业务 | 用户管理 | 用户登录、用户注册、修改非关键信息、用户查询、管理员审核用户 |
| 项目管理 | 项目创建、立项审批、项目结项申请、结项审批、项目查询 | |
| 任务管理 | 任务分配(创建)、项目经理任务邀请/开发人员任务申请、任务查询 | |
| 工时日志 | 开发人员填写/修改/(逻辑)删除工时日志、查询工时日志、项目经理修改预估工时、各类工时(修改)记录查询 | |
| 任务评审 | 开发人员提交任务、项目经理评审任务、查询评审记录 | |
| 绩效管理 | 绩效记录自动生成、绩效客观指标计算、绩效主观部分提交、查询待评分/已发布绩效 | |
| 辅助功能 | 消息通知 | 消息查询、统计未读消息数、消息(逻辑)删除、各类消息发送方法(含工时预警、项目审批结果、任务申请/邀请通知等) |
| 统计分析 | 项目进度统计、预估与实际工时偏差分析、开发人员能力画像、开发人员效能分析、各类数据的Excel生成 | |
| 文件管理 | 文件上传并获取相对地址、文件下载与导出、文件删除(用于旧文件清理) | |
| AI服务 | 请求体构造、请求发送与结果接收、(应用)AI辅助项目经理任务分配 |
-
系统分析与设计 (待补充)
-
组件应用说明:
-
API设计与测试:
- OpenAPI文档
- Swagger接口测试:http://localhost:8080/v2/swagger-ui.html (启动后访问)