文档信息
表格
| 项目 | 内容 |
|---|---|
| 产品名称 | 工时管理系统 (Time Management System) |
| 文档版本 | v1.0 |
| 创建日期 | 2026年1月23日 |
| 文档类型 | 产品需求文档 |
| 目标用户 | 项目团队、项目经理、企业HR |
1. 产品概述
1.1 产品定位
工时管理系统是一款面向中小型企业和项目团队的工时追踪与管理工具,帮助企业实现项目工时的精细化管控、提升团队工作效率、降低项目风险。系统支持多角色协作、数据分析、AI 智能风险预警等核心功能。
1.2 产品价值
- 精细化管理:实现对项目工时的实时追踪和精准控制
- 风险预警:通过 AI 分析提前识别项目超支风险
- 效率提升:简化工时填报流程,自动化数据统计
- 决策支持:提供多维度数据分析,辅助管理决策
- 灵活配置:支持多种系统参数配置,适应不同企业需求
1.3 目标用户
- 项目经理 (PM) :负责项目规划、工时预算、风险管控
- 团队成员:每日填报工时,跟踪个人工作进度
- 系统管理员:用户管理、系统配置、数据维护
- 企业高管:通过数据分析了解整体项目状态
2. 产品功能
2.1 核心功能模块
2.1.1 用户管理
功能描述:提供完整的用户生命周期管理,支持多种角色权限控制。
详细需求:
-
用户注册/登录
- 支持用户名+密码登录
- 支持管理员创建用户
- 支持首次登录自动注册(可配置)
- 支持新用户审核机制(可配置)
-
用户信息管理
- 基本信息:用户名、密码、邮箱、真实姓名
- 角色分配:管理员、项目负责人、普通用户
- 状态管理:正常、禁用、待审核
-
角色权限体系
表格
角色 权限范围 管理员 全部功能权限 项目负责人 创建/管理项目、查看项目数据、填报工时 普通用户 查看参与项目、填报个人工时、查看个人数据 -
批量导入
- 支持 CSV 格式批量导入用户
- 字段:username, password, email, real_name, role
业务规则:
- 用户名全局唯一
- 密码使用 bcrypt 加密存储
- 管理员可修改任意用户密码
- 禁用用户无法登录系统
2.1.2 项目管理
功能描述:实现项目的全生命周期管理,包括创建、分配、跟踪、归档。
详细需求:
-
项目基本信息
- 项目名称(必填,200字符内)
- 项目描述(可选,支持多行文本)
- 项目负责人(必填,从PM/管理员中选择)
- 预估总工时(必填,单位:小时)
- 项目状态:进行中、已完成、风险中
- 项目周期:开始日期、结束日期
-
项目成员管理
- 支持多选添加项目成员
- 成员可以是普通用户、PM、管理员
- 支持动态调整成员列表
-
项目查看权限
- 管理员:查看所有项目
- 项目负责人:查看自己负责的项目 + 参与的项目
- 普通用户:仅查看参与的项目
-
项目工时统计
- 实时显示预估工时 vs 实际工时
- 计算工时偏差和使用率
- 根据角色显示不同数据(管理员/PM看全员,普通用户看个人)
业务规则:
- 项目删除时级联删除相关工时记录
- 状态为"已完成"的项目仍可查看历史数据
- 项目负责人必须为PM或管理员角色
2.1.3 工时日报
功能描述:团队成员每日填报工时,记录工作内容和进度。
详细需求:
-
工时填报字段
- 项目(必填,仅显示用户参与的项目)
- 工作日期(必填,支持日期选择器)
- 工时数(必填,0-24小时,步长0.5)
- 备注(可选)
- 今日完成工作(必填,多行文本)
- 需协调事宜(可选,多行文本)
- 明日计划工作(必填,多行文本)
-
工时校验规则
- 单日总工时限制:单人单日所有项目总工时不超过8小时
- 项目总工时限制:项目累计工时不得超过预估工时
- 项目成员校验:只有项目成员才能填报该项目工时
- 历史补填限制:系统可配置是否允许补填历史工时
-
工时记录管理
- 支持创建、编辑、删除工时记录
- 编辑时锁定项目和日期,仅可修改工时和内容
- 普通用户只能操作自己的工时记录
- 管理员可操作任意工时记录
-
工时列表展示
- 表格展示,支持分页
- 字段:项目名称、工作日期、工时、备注、填报人
- 普通用户仅看自己的记录,管理员看全部
- 支持按项目、日期范围筛选
业务规则:
- 同一用户、同一项目、同一日期可填报多次(最新一次覆盖或累加)
- 删除工时记录时校验是否仍为项目成员
- 被移出项目的成员无法修改历史工时(管理员除外)
2.1.4 数据分析
功能描述:提供多维度工时数据分析,帮助管理者了解项目进度和团队效率。
详细需求:
-
工时趋势分析
- 图表展示:每日工时柱状图 + 累计工时折线图
- 支持自定义日期范围
- X轴:日期,Y轴:工时(小时)
- 双轴展示,直观对比每日投入与累计进度
-
工时偏差分析
- 对比预估工时 vs 实际工时
- 计算指标:
- 剩余工时 = 预估工时 - 实际工时
- 偏差 = 实际工时 - 预估工时
- 偏差率 = (偏差 / 预估工时) × 100%
- 使用率 = (实际工时 / 预估工时) × 100%
- 偏差状态判断:
- 正常(绿色):使用率 < 预警阈值
- 超支风险(橙色):预警阈值 ≤ 使用率 < 严重阈值
- 严重超支(红色):使用率 ≥ 严重阈值
-
用户工时统计
- 总工时统计(可按日期范围)
- 按项目分组统计工时
- 最近30天工时趋势
- 管理员可查看任意用户,普通用户仅查看自己
-
工作台概览
- 总项目数
- 进行中项目数
- 总工时(所有项目累计)
- 本月工时
业务规则:
- 普通用户查看项目数据时仅统计自己的工时
- 管理员和PM查看项目数据时统计全员工时
- 风险阈值可在系统配置中调整
2.1.5 AI 智能功能
功能描述:基于工时数据提供智能风险分析和项目总结。
详细需求:
-
AI 风险分析
- 输入:项目ID
- 输出:
- 风险等级:低风险、中风险、高风险
- 风险概率:0-100%
- 工时使用率
- 风险原因列表
- 管理建议列表
-
AI 项目总结
- 输入:项目ID
- 输出:
- 项目基本信息(名称、状态、周期)
- 工时统计(预估、实际、偏差)
- 团队规模
- 总结文本
- 项目亮点列表
- 风险点列表
-
AI 功能配置
- 可在系统配置中开启/关闭AI功能
- 支持配置AI API密钥
- 当前版本使用规则引擎模拟AI分析
业务规则:
- AI功能需在系统配置中开启才可使用
- 风险分析基于工时使用率:
- 使用率 ≥ 100%:高风险(90%概率)
- 使用率 ≥ 80%:中风险(60%概率)
- 使用率 < 80%:低风险(20%概率)
2.1.6 系统配置
功能描述:提供灵活的系统参数配置,适应不同企业需求。
详细需求:
-
用户管理配置
- 允许用户注册(开关)
- 允许登录自动注册(开关)
- 新用户需要审核(开关)
-
工时管理配置
- 允许补填历史日报(开关)
- 工时超支预警阈值(0-1,默认0.8)
- 工时超支严重阈值(0-2,默认1.0)
-
AI 功能配置
- 启用 AI 功能(开关)
- AI API 密钥(字符串)
业务规则:
- 仅管理员可修改系统配置
- 配置修改立即生效,无需重启服务
- 默认配置在数据库初始化时创建
2.2 系统界面
2.2.1 登录页面
界面元素:
- 产品标题:"工时管理系统"
- 副标题:"BEWIN TIME MANAGEMENT"
- 用户名输入框(带图标)
- 密码输入框(带图标)
- 登录按钮(大尺寸,主色调)
- 渐变背景 + 装饰性圆形光晕
- 毛玻璃效果的登录卡片
交互说明:
- 表单验证:用户名和密码必填
- 登录成功后跳转到工作台
- 登录失败显示错误提示
- 新用户待审核显示警告信息
2.2.2 主布局
界面结构:
- 左侧导航栏(深色主题)
- 系统标题
- 菜单项:工作台、项目管理、工时日报、数据分析
- 管理员专属:用户管理、系统配置
- 顶部栏(白色)
- 用户信息展示(头像 + 姓名)
- 下拉菜单:退出登录
- 内容区域(浅灰背景 + 白色卡片)
交互说明:
- 当前页面菜单项高亮显示
- 响应式设计,支持移动端折叠
- 退出登录清除本地存储
2.2.3 工作台
界面元素:
- 页面标题:"工作台"
- 4个统计卡片:
- 总项目数(项目图标)
- 进行中项目数(警告图标,绿色)
- 总工时(时钟图标)
- 本月工时(团队图标,蓝色)
交互说明:
- 页面加载自动统计数据
- 数值实时更新
- 可点击卡片跳转到对应详情页(待实现)
2.2.4 项目管理页面
界面元素:
- 页面标题 + "新建项目"按钮
- 项目列表表格
- 新建/编辑项目弹窗
表格列:
- 项目名称
- 项目负责人
- 预估工时
- 实际工时
- 状态(标签显示,不同颜色)
- 开始日期
- 结束日期
- 操作(编辑、删除按钮)
弹窗表单:
- 项目名称(必填)
- 项目描述(多行文本)
- 项目负责人(下拉选择)
- 预估总工时(数字输入,0起)
- 项目状态(下拉选择)
- 项目周期(日期范围选择器)
- 项目成员(多选下拉)
交互说明:
- 仅PM和管理员可新建/编辑/删除项目
- 项目负责人选项仅显示PM和管理员
- 删除需二次确认
2.2.5 工时日报页面
界面元素:
- 页面标题 + "填报工时"按钮
- 工时记录表格
- 填报/编辑工时弹窗
表格列:
- 项目名称
- 工作日期
- 工时(小时)
- 备注
- 填报人
- 操作(编辑、删除按钮)
弹窗表单:
- 项目(下拉选择,禁用编辑)
- 工作日期(日期选择器,禁用编辑)
- 工时(数字输入,0-24,步长0.5)
- 今日完成工作(必填,多行文本)
- 需协调事宜(可选,多行文本)
- 明日计划工作(必填,多行文本)
交互说明:
- 项目下拉仅显示用户参与的项目
- 编辑时项目和日期不可修改
- 删除需二次确认
- 表单提交时校验工时限制
2.2.6 数据分析页面
界面元素:
- 页面标题
- 项目选择器(下拉)
- 统计卡片行(4个指标)
- 工时趋势图表(ECharts)
- AI 功能卡片
统计卡片:
- 预估工时
- 实际工时
- 使用率(超过80%显示红色)
- 偏差状态(标签显示)
AI 功能:
- "AI 风险分析"按钮
- "AI 项目总结"按钮
- 风险分析报告展示区
- 项目总结展示区
交互说明:
- 切换项目自动加载对应数据
- 点击AI按钮触发分析请求
- 分析结果实时展示
- 风险等级不同颜色标识
2.2.7 用户管理页面(仅管理员)
界面元素:
- 页面标题 + "新建用户"按钮
- 用户列表表格
- 新建/编辑用户弹窗
- 修改密码弹窗
表格列:
- 用户名
- 姓名
- 邮箱
- 角色(标签显示)
- 状态(标签显示)
- 操作(编辑、改密、删除按钮)
新建/编辑表单:
- 用户名(必填,编辑时禁用)
- 密码(新建时必填)
- 姓名
- 邮箱
- 角色(下拉选择)
- 状态(编辑时可选)
修改密码表单:
- 新密码(必填)
- 确认密码(必填,需匹配)
交互说明:
- 删除需二次确认
- 密码修改独立弹窗
- 表单验证严格
2.2.8 系统配置页面(仅管理员)
界面元素:
- 页面标题
- 配置表单卡片
配置分组:
-
用户管理
- 允许用户注册(开关)
- 允许登录自动注册(开关)
- 新用户需要审核(开关)
-
工时管理
- 允许补填历史日报(开关)
- 工时超支预警阈值(数字输入,0-1)
- 工时超支严重阈值(数字输入,0-2)
-
AI 功能
- 启用 AI 功能(开关)
- AI API 密钥(密码输入框)
交互说明:
- 配置修改后需点击"保存配置"
- 保存成功提示消息
- 阈值输入带说明文字
3. 非功能性需求
3.1 性能需求
- 页面加载时间 < 2秒
- API 响应时间 < 500ms(本地网络)
- 支持并发用户数:100+
- 数据库查询优化,建立必要索引
3.2 安全需求
- 密码 bcrypt 加密存储
- JWT Token 认证,Token 有效期可配置
- HTTPS 支持(生产环境)
- SQL 注入防护(ORM 自动处理)
- XSS 防护(React 自动处理)
- 权限校验在服务端强制执行
3.3 可用性需求
- 界面友好,操作直观
- 关键操作提供二次确认
- 错误信息清晰明确
- 支持主流浏览器(Chrome, Firefox, Safari, Edge)
- 响应式设计,适配桌面端
3.4 可维护性需求
- 代码结构清晰,注释完整
- 模块化设计,便于扩展
- RESTful API 设计规范
- 数据库设计合理,支持扩展
- 日志记录关键操作
3.5 可扩展性需求
- 支持新增项目/用户自定义字段
- 支持接入真实 AI 服务
- 支持报表导出(PDF、Excel)
- 支持移动端适配
- 支持多语言国际化
4. 技术架构
4.1 技术栈
后端:
- Node.js + Express
- MySQL 8.0
- Sequelize ORM
- JWT 认证
- bcryptjs 加密
前端:
- React 18
- Ant Design 5
- React Router 6
- Axios
- ECharts 5
- Day.js
部署:
- Docker
- Docker Compose
- Nginx(前端静态文件服务)
4.2 系统架构图
┌─────────────────────────────────────────────────────────┐
│ 用户界面 │
│ (React + Ant Design + ECharts) │
└────────────────────┬────────────────────────────────────┘
│ HTTP/REST API
┌────────────────────▼────────────────────────────────────┐
│ 后端服务 │
│ (Express + JWT认证 + 业务逻辑层) │
│ ┌──────────────┬──────────────┬──────────────┐ │
│ │ 控制器层 │ 业务逻辑层 │ 数据访问层 │ │
│ └──────────────┴──────────────┴──────────────┘ │
└────────────────────┬────────────────────────────────────┘
│
┌────────────────────▼────────────────────────────────────┐
│ MySQL 数据库 │
│ (用户/项目/工时/配置/项目成员) │
└─────────────────────────────────────────────────────────┘
4.3 数据库设计
核心表结构:
-
users (用户表)
- id (主键)
- username (唯一)
- password (加密)
- email (唯一)
- real_name
- role (admin/pm/user)
- status (active/inactive/pending)
- create_time
- update_time
-
projects (项目表)
- id (主键)
- name
- description
- pm_id (外键 → users)
- estimated_hours
- status (in_progress/completed/at_risk)
- start_date
- end_date
- create_time
- update_time
-
project_members (项目成员表)
- id (主键)
- project_id (外键 → projects)
- user_id (外键 → users)
- 唯一约束: (project_id, user_id)
-
time_entries (工时记录表)
- id (主键)
- user_id (外键 → users)
- project_id (外键 → projects)
- work_date
- hours
- remarks
- completed_work
- coordination_matters
- tomorrow_plan
- 唯一约束: (user_id, project_id, work_date)
-
system_configs (系统配置表)
- id (主键)
- config_key (唯一)
- config_value
- config_type (boolean/string/number/json)
- description
5. 业务流程
5.1 工时填报流程
开始
↓
用户登录系统
↓
进入"工时日报"页面
↓
点击"填报工时"
↓
选择项目和日期
↓
填写工时和工作内容
↓
[校验] 项目成员资格?
├─ 否 → 提示错误 → 返回
└─ 是 ↓
[校验] 单日总工时 ≤ 8小时?
├─ 否 → 提示错误 → 返回
└─ 是 ↓
[校验] 项目总工时 ≤ 预估工时?
├─ 否 → 提示错误 → 返回
└─ 是 ↓
提交工时记录
↓
显示成功提示
↓
刷新列表
↓
结束
5.2 项目创建流程
开始
↓
PM/管理员登录
↓
进入"项目管理"页面
↓
点击"新建项目"
↓
填写项目信息
- 项目名称(必填)
- 项目描述
- 项目负责人(必填)
- 预估工时(必填)
- 项目周期
- 项目成员
↓
提交创建
↓
系统创建项目
↓
创建项目成员关联
↓
显示成功提示
↓
刷新项目列表
↓
结束
5.3 数据分析流程
开始
↓
用户登录
↓
进入"数据分析"页面
↓
选择项目
↓
系统自动加载:
- 工时趋势数据
- 工时偏差分析
↓
[可选] 点击"AI风险分析"
↓
系统分析风险:
- 计算风险等级
- 生成风险原因
- 输出管理建议
↓
[可选] 点击"AI项目总结"
↓
系统生成总结:
- 项目基本信息
- 工时统计
- 亮点和风险点
↓
查看分析结果
↓
结束
6. 系统约束
6.1 数据约束
- 单日单人总工时 ≤ 8小时
- 项目总工时 ≤ 预估工时
- 项目成员才能填报项目工时
- 用户名和邮箱全局唯一
- 工时记录唯一性:用户+项目+日期
6.2 权限约束
- 普通用户仅查看参与的项目数据
- 普通用户仅操作自己的工时记录
- PM和管理员可创建项目
- 仅管理员可访问用户管理和系统配置
- 禁用用户无法登录
6.3 业务约束
- 项目负责人必须为PM或管理员
- 历史工时补填需系统配置开启
- AI功能需系统配置开启
- 删除项目级联删除相关工时
- 删除用户级联删除相关工时(如实现)
7. 未来规划
7.1 短期优化 (1-3个月)
- 接入真实 AI 服务(OpenAI/Claude)
- 增加工时审批流程
- 支持报表导出(Excel/PDF)
- 增加邮件通知功能
- 优化移动端体验
7.2 中期扩展 (3-6个月)
- 支持多语言国际化
- 增加移动APP
- 集成第三方服务(钉钉/企业微信)
- 增加数据备份和恢复
- 实现 SaaS 多租户模式
7.3 长期愿景 (6-12个月)
- 智能工时预测
- 资源排程优化
- 项目全生命周期管理
- BI 数据分析平台
- 开放API生态
8. 附录
8.1 术语表
表格
| 术语 | 定义 |
|---|---|
| PM | Project Manager,项目负责人 |
| JWT | JSON Web Token,用于身份认证 |
| ORM | Object-Relational Mapping,对象关系映射 |
| RBAC | Role-Based Access Control,基于角色的访问控制 |
8.2 参考文档
- API 文档:
API.md - 项目结构:
PROJECT_STRUCTURE.md - 快速开始:
QUICKSTART.md - 部署指南:
DEPLOYMENT.md
8.3 变更记录
表格
| 版本 | 日期 | 变更内容 | 作者 |
|---|---|---|---|
| v1.0 | 2026-01-23 | 初始版本 | 基于代码分析生成 |
9. 联系方式
如有需求疑问或建议,请联系产品团队。