# 勤工俭学管理系统产品需求分析书 ## 📋 文档信息 | 项目 | 信息 | |------|------| | **文档名称** | 勤工俭学管理系统产品需求分析书 | | **项目名称** | 校园管理系统 - 勤工俭学模块 | | **文档版本** | v1.0 | | **创建日期** | 2025-01-03 | | **最后更新** | 2025-01-03 | | **需求来源** | 勤工俭学用户原始需求.md | --- ## 🎯 项目概述 ### 1.1 产品背景 勤工俭学管理系统是校园管理系统的重要组成部分,旨在为高校提供完整的勤工助学岗位管理、学生申请、审核流程的数字化解决方案。系统支持二级学院和学生处的分级审核机制,规范勤工俭学的全流程管理。 ### 1.2 产品目标 - **🎯 提升效率**: 实现勤工俭学岗位管理的数字化、流程化 - **📊 规范管理**: 建立标准的岗位发布、申请、审核流程 - **🔍 透明公开**: 提供岗位信息公开展示和申请状态跟踪 - **⚖️ 权限分级**: 支持二级学院和学生处的分级审核管理 - **📱 多端访问**: 支持Web端和移动端的便捷使用 ### 1.3 产品定位 面向高校勤工助学管理的综合性平台,覆盖岗位发布方(二级学院)、申请方(学生)、审核方(二级学院负责人、学生处负责人)的全角色需求。 --- ## 👥 用户角色分析 ### 2.1 核心用户角色 #### 🎓 **学生用户** **角色描述**: 需要通过勤工俭学获得经济资助的在校学生 **核心需求**: - 浏览和搜索适合的勤工俭学岗位 - 在线申请心仪的岗位 - 跟踪申请状态和结果 - 查看工作时间和薪资信息 **使用场景**: - 经济困难学生寻找兼职工作 - 希望通过勤工俭学锻炼能力 - 需要了解岗位要求和待遇信息 #### 🏛️ **二级学院管理员** **角色描述**: 负责本学院勤工俭学岗位发布和初审的工作人员 **核心需求**: - 发布和管理本学院的勤工俭学岗位 - 设置岗位发布范围(本学院/全校) - 审核学生的岗位申请 - 管理岗位的有效期和需求人数 **使用场景**: - 根据学院需要发布新岗位 - 定期更新岗位信息 - 处理学生申请的初审工作 #### 📋 **二级学院审核负责人** **角色描述**: 负责审核本学院学生勤工俭学申请的领导或负责人 **核心需求**: - 审核学生的岗位申请 - 查看申请人的基本信息和条件 - 决定申请通过或驳回 - 查看审核统计数据 **使用场景**: - 定期审核待处理的申请 - 根据岗位要求评估申请人条件 - 控制岗位的录用质量 #### 🏫 **学生处审核负责人** **角色描述**: 负责全校勤工俭学申请终审的学生处工作人员 **核心需求**: - 终审已通过二级学院审核的申请 - 统筹全校勤工俭学岗位分配 - 查看全校勤工俭学统计数据 - 管理特殊情况的申请处理 **使用场景**: - 对重要岗位进行最终审核 - 协调跨学院的岗位申请 - 处理申请争议和特殊情况 ### 2.2 用户权限矩阵 | 功能模块 | 学生 | 学院管理员 | 学院审核负责人 | 学生处负责人 | |---------|------|------------|----------------|--------------| | **岗位浏览** | ✅ 查看 | ✅ 查看 | ✅ 查看 | ✅ 查看 | | **岗位管理** | ❌ | ✅ 增删改 | ✅ 查看本学院 | ✅ 查看全部 | | **岗位申请** | ✅ 申请 | ❌ | ❌ | ❌ | | **初审管理** | ❌ | ❌ | ✅ 本学院 | ❌ | | **终审管理** | ❌ | ❌ | ❌ | ✅ 全校 | | **数据统计** | ✅ 个人 | ✅ 本学院 | ✅ 本学院 | ✅ 全校 | --- ## 🔧 功能需求分析 ### 3.1 功能架构图 ``` 勤工俭学管理系统 ├── 岗位管理模块 │ ├── 岗位发布 │ ├── 岗位维护 │ └── 岗位查询 ├── 申请管理模块 │ ├── 在线申请 │ ├── 申请查询 │ └── 申请撤回 ├── 审核管理模块 │ ├── 二级学院审核 │ ├── 学生处审核 │ └── 审核记录 └── 统计报表模块 ├── 岗位统计 ├── 申请统计 └── 审核统计 ``` ### 3.2 详细功能需求 #### 🏢 **模块一:勤工俭学岗位维护** **功能描述**: 二级学院管理员负责岗位的全生命周期管理 **子功能列表**: ##### 3.2.1 岗位新增 **功能说明**: 创建新的勤工俭学岗位 **输入信息**: - 🏷️ **岗位名称** `必填` - 岗位的标题和名称 - 🎯 **岗位发布范围** `必填` - 选择项: - `本学院` - 仅本学院学生可见和申请 - `全校` - 所有学生可见和申请 - 👥 **需求人数** `必填` - 本岗位计划招录的学生数量 - ⏰ **工作时间** `必填` - 工作时间安排描述 - 📅 **岗位有效期** `必填` - 岗位的起止日期 - 📝 **岗位要求** `必填` - 对申请学生的条件要求 - 💰 **薪资情况** `必填` - 薪资标准和发放方式 - 👨‍🏫 **联系老师** `必填` - 负责该岗位的联系人 - 📞 **联系电话** `必填` - 联系方式 **业务规则**: - 岗位有效期不能早于当前日期 - 需求人数必须大于0 - 同一学院内岗位名称不能重复 - 联系电话需要格式验证 **输出结果**: 岗位创建成功,生成唯一岗位编号 ##### 3.2.2 岗位查询展示 **功能说明**: 根据权限展示相关岗位信息 **查询条件**: - 📍 **按学院筛选** - 学院管理员只能看到本学院岗位 - 📅 **按有效期筛选** - 有效/即将到期/已过期 - 🔍 **按岗位名称搜索** - 模糊搜索 - 👥 **按招录状态筛选** - 招录中/已满员/已结束 **展示信息**: - 岗位基本信息(名称、要求、薪资等) - 当前申请人数/需求人数 - 岗位状态(招录中/已满员等) - 操作按钮(编辑/删除/查看详情) ##### 3.2.3 岗位修改 **功能说明**: 修改已发布的岗位信息 **可修改字段**: 除岗位编号外的所有字段 **业务规则**: - 已有学生申请的岗位修改需要特别提示 - 缩减需求人数时,需要处理超出部分的申请 - 修改岗位要求时,需要重新评估已申请学生的条件 ##### 3.2.4 岗位删除 **功能说明**: 删除不再需要的岗位 **业务规则**: - 有学生申请的岗位不能直接删除 - 删除前需要确认操作 - 删除后相关申请记录需要妥善处理 #### 🎓 **模块二:勤工俭学岗位申请** **功能描述**: 学生用户申请勤工俭学岗位 ##### 3.2.5 岗位浏览 **功能说明**: 学生查看可申请的岗位 **可见岗位范围**: - ✅ 本学院发布的所有岗位 - ✅ 其他学院发布的全校范围岗位 - ❌ 其他学院发布的本学院范围岗位 **展示信息**: - 岗位详细信息 - 当前申请状态 - 岗位剩余名额 - 申请截止时间 ##### 3.2.6 在线申请 **功能说明**: 学生提交岗位申请 **申请流程**: 1. 选择心仪岗位 2. 确认个人信息 3. 填写申请理由 4. 提交申请 **业务规则**: - 每个岗位学生只能申请一次 - 申请时需要满足岗位设定的条件限制 - 岗位已满员或过期不能申请 - 学生同时申请的岗位数量可能有限制 ##### 3.2.7 申请状态查询 **功能说明**: 学生查看自己的申请状态 **状态类型**: - 🟡 **已提交** - 等待二级学院审核 - 🔵 **二级学院审核中** - 学院负责人审核中 - 🟠 **待学生处审核** - 已通过学院审核,等待学生处审核 - 🟢 **审核通过** - 申请成功 - 🔴 **审核不通过** - 申请被驳回 - ⚪ **已撤回** - 学生主动撤回申请 **查询功能**: - 按状态筛选申请 - 查看审核意见和时间 - 查看岗位详细信息 #### 🏛️ **模块三:勤工俭学岗位申请审核(二级学院)** **功能描述**: 二级学院负责人审核本学院学生的岗位申请 ##### 3.2.8 待审核申请列表 **功能说明**: 展示需要审核的申请 **筛选条件**: - 按申请时间排序 - 按岗位分类 - 按学生年级专业筛选 - 按紧急程度标记 **展示信息**: - 申请学生基本信息 - 申请岗位信息 - 申请时间 - 学生条件匹配度 ##### 3.2.9 申请审核处理 **功能说明**: 对申请进行审核决策 **审核操作**: - ✅ **通过审核** - 申请状态变为"待学生处审核" - ❌ **驳回申请** - 申请状态变为"审核不通过",需要填写驳回理由 **审核依据**: - 学生是否满足岗位要求 - 学生学习成绩和表现 - 岗位剩余名额情况 - 学生经济困难程度 ##### 3.2.10 审核记录管理 **功能说明**: 查看和管理审核历史 **记录内容**: - 审核时间和审核人 - 审核决策和理由 - 申请人信息和岗位信息 - 审核结果统计 #### 🏫 **模块四:勤工俭学岗位申请审核(学生处)** **功能描述**: 学生处负责人进行最终审核 ##### 3.2.11 终审申请列表 **功能说明**: 展示已通过二级学院审核的申请 **筛选条件**: - 按学院分类 - 按岗位类型分类 - 按申请时间排序 - 按优先级标记 ##### 3.2.12 终审处理 **功能说明**: 进行最终审核决策 **审核操作**: - ✅ **终审通过** - 申请状态变为"审核通过",完成整个流程 - ❌ **终审驳回** - 申请状态变为"审核不通过",需要填写驳回理由 **审核重点**: - 跨学院岗位的协调 - 特殊岗位的资质要求 - 全校勤工俭学名额统筹 - 政策合规性检查 --- ## 🔄 业务流程设计 ### 4.1 岗位发布流程 ``` 开始 → 学院管理员登录 → 填写岗位信息 → 设置发布范围 → 保存岗位 → 岗位生效 → 学生可见并申请 → 结束 ``` **关键节点**: - **岗位信息验证**: 确保必填字段完整性 - **发布范围设置**: 决定岗位的可见性 - **岗位生效**: 岗位在有效期内对学生开放 ### 4.2 学生申请流程 ``` 开始 → 学生登录 → 浏览岗位 → 选择岗位 → 检查申请条件 → 提交申请 → 等待审核 → 结束 ``` **关键节点**: - **条件检查**: 验证学生是否满足岗位要求 - **重复申请检查**: 防止学生重复申请同一岗位 - **申请提交**: 生成申请记录并进入审核流程 ### 4.3 两级审核流程 ``` 学生提交申请 → 二级学院审核 → 审核通过? ↓ ↓ 审核不通过 ←——————— No ↓ 结束流程 ↓ Yes ↓ 学生处终审 → 终审通过? ↓ ↓ 审核通过 ←——————— Yes ↓ 结束流程 ↓ No ↓ 审核不通过 → 结束流程 ``` **审核节点说明**: - **二级学院审核**: 主要评估学生条件和岗位匹配度 - **学生处终审**: 主要进行政策合规性和统筹协调 - **驳回处理**: 任何节点驳回都需要提供明确理由 ### 4.4 状态流转图 ``` 草稿 → 已提交 → 二级学院审核中 → 待学生处审核 → 审核通过 ↑ ↓ ↓ ↓ └——————————————————————————————————————→ 审核不通过 ``` **状态说明**: - **草稿**: 学生暂存但未提交的申请 - **已提交**: 学生正式提交,等待二级学院审核 - **二级学院审核中**: 二级学院负责人审核中 - **待学生处审核**: 已通过二级学院审核,等待学生处终审 - **审核通过**: 完成所有审核,学生可以开始工作 - **审核不通过**: 任何阶段被驳回的申请 --- ## 💾 数据模型设计 ### 5.1 核心数据实体 #### 📋 **岗位信息表 (jcbt_work_study_position)** | 字段名 | 字段类型 | 长度 | 必填 | 说明 | |--------|----------|------|------|------| | id | bigint | 20 | ✅ | 主键ID(雪花ID) | | position_name | varchar | 100 | ✅ | 岗位名称 | | position_scope | varchar | 20 | ✅ | 发布范围(COLLEGE/UNIVERSITY) | | required_count | int | - | ✅ | 需求人数 | | work_time | varchar | 200 | ✅ | 工作时间 | | start_date | date | - | ✅ | 岗位有效期开始 | | end_date | date | - | ✅ | 岗位有效期结束 | | position_requirements | text | - | ✅ | 岗位要求 | | salary_info | varchar | 200 | ✅ | 薪资情况 | | contact_teacher | varchar | 50 | ✅ | 联系老师 | | contact_phone | varchar | 20 | ✅ | 联系电话 | | college_id | bigint | 20 | ✅ | 发布学院ID | | status | varchar | 20 | ✅ | 岗位状态 | | current_count | int | - | ✅ | 当前申请通过人数 | | create_by | bigint | 20 | ✅ | 创建者 | | create_time | datetime | - | ✅ | 创建时间 | | update_by | bigint | 20 | ✅ | 更新者 | | update_time | datetime | - | ✅ | 更新时间 | | deleted | tinyint | 1 | ✅ | 逻辑删除标记 | | tenant_id | varchar | 20 | ✅ | 租户ID | #### 📝 **申请信息表 (jcbt_work_study_application)** | 字段名 | 字段类型 | 长度 | 必填 | 说明 | |--------|----------|------|------|------| | id | bigint | 20 | ✅ | 主键ID(雪花ID) | | position_id | bigint | 20 | ✅ | 岗位ID | | student_id | bigint | 20 | ✅ | 学生ID | | student_name | varchar | 50 | ✅ | 学生姓名 | | student_number | varchar | 20 | ✅ | 学号 | | college_id | bigint | 20 | ✅ | 学生所在学院ID | | major | varchar | 100 | ✅ | 专业 | | grade | varchar | 10 | ✅ | 年级 | | phone | varchar | 20 | ✅ | 联系电话 | | application_reason | text | - | ✅ | 申请理由 | | status | varchar | 20 | ✅ | 申请状态 | | college_review_status | varchar | 20 | ❌ | 学院审核状态 | | college_review_time | datetime | - | ❌ | 学院审核时间 | | college_reviewer_id | bigint | 20 | ❌ | 学院审核人ID | | college_review_comment | text | - | ❌ | 学院审核意见 | | final_review_status | varchar | 20 | ❌ | 学生处审核状态 | | final_review_time | datetime | - | ❌ | 学生处审核时间 | | final_reviewer_id | bigint | 20 | ❌ | 学生处审核人ID | | final_review_comment | text | - | ❌ | 学生处审核意见 | | create_by | bigint | 20 | ✅ | 创建者 | | create_time | datetime | - | ✅ | 创建时间 | | update_by | bigint | 20 | ✅ | 更新者 | | update_time | datetime | - | ✅ | 更新时间 | | deleted | tinyint | 1 | ✅ | 逻辑删除标记 | | tenant_id | varchar | 20 | ✅ | 租户ID | ### 5.2 枚举定义 #### 📋 **岗位状态枚举 (PositionStatusEnum)** ```java public enum PositionStatusEnum { DRAFT("DRAFT", "草稿"), PUBLISHED("PUBLISHED", "已发布"), RECRUITING("RECRUITING", "招录中"), FULL("FULL", "已满员"), EXPIRED("EXPIRED", "已过期"), SUSPENDED("SUSPENDED", "已暂停"); } ``` #### 📝 **申请状态枚举 (ApplicationStatusEnum)** ```java public enum ApplicationStatusEnum { DRAFT("DRAFT", "草稿"), SUBMITTED("SUBMITTED", "已提交"), COLLEGE_REVIEWING("COLLEGE_REVIEWING", "学院审核中"), COLLEGE_PASSED("COLLEGE_PASSED", "学院审核通过"), FINAL_REVIEWING("FINAL_REVIEWING", "学生处审核中"), APPROVED("APPROVED", "审核通过"), REJECTED("REJECTED", "审核不通过"), WITHDRAWN("WITHDRAWN", "已撤回"); } ``` --- ## 🚀 技术实现方案 ### 6.1 技术架构 #### 🏗️ **总体架构** ``` ┌─────────────────────────────────────────────────┐ │ 前端展示层 │ │ Vue 3 + TypeScript + Element Plus │ ├─────────────────────────────────────────────────┤ │ 网关层 │ │ Spring Cloud Gateway + Sa-Token │ ├─────────────────────────────────────────────────┤ │ 业务服务层 │ │ Spring Boot 3.4.6 + MyBatis-Plus │ ├─────────────────────────────────────────────────┤ │ 数据存储层 │ │ MySQL 8.0 + Redis 6.0 │ └─────────────────────────────────────────────────┘ ``` #### 🔧 **核心技术栈** - **前端框架**: Vue 3.5.13 + TypeScript 5.8.3 - **UI组件库**: Element Plus + Art Design Pro - **后端框架**: Spring Boot 3.4.6 + MyBatis-Plus - **数据库**: MySQL 8.0 - **缓存**: Redis 6.0 - **权限认证**: Sa-Token - **文档工具**: Swagger 3.x ### 6.2 关键业务逻辑 #### 🔄 **岗位状态自动更新逻辑** ```java @Scheduled(cron = "0 0 1 * * ?") // 每天凌晨1点执行 public void updatePositionStatus() { // 1. 更新过期岗位状态 // 2. 更新满员岗位状态 // 3. 发送状态变更通知 } ``` #### 🎯 **申请条件检查逻辑** ```java public boolean checkApplicationConditions(Long studentId, Long positionId) { // 1. 检查学生是否已申请该岗位 // 2. 检查岗位是否还有名额 // 3. 检查岗位是否在有效期内 // 4. 检查学生是否满足岗位要求 // 5. 检查学生当前申请岗位数量限制 } ``` --- ## 📋 项目实施计划 ### 7.1 开发阶段规划 #### 🏗️ **第一阶段:基础框架搭建(1周)** - [ ] 项目初始化和环境配置 - [ ] 数据库表结构设计和创建 - [ ] 基础框架代码生成 - [ ] 权限体系集成 #### 🔧 **第二阶段:岗位管理模块(2周)** - [ ] 岗位CRUD基础功能 - [ ] 岗位发布范围控制 - [ ] 岗位状态管理 - [ ] 岗位信息展示优化 #### 🎓 **第三阶段:申请管理模块(2周)** - [ ] 学生申请功能 - [ ] 申请状态跟踪 - [ ] 申请条件校验 - [ ] 申请撤回功能 #### 🏛️ **第四阶段:审核管理模块(2周)** - [ ] 二级学院审核功能 - [ ] 学生处终审功能 - [ ] 审核记录管理 - [ ] 审核统计报表 #### 🎨 **第五阶段:界面优化和测试(1周)** - [ ] 前端界面优化 - [ ] 移动端适配 - [ ] 功能测试 - [ ] 性能优化 ### 7.2 里程碑计划 | 里程碑 | 时间节点 | 主要成果 | 验收标准 | |--------|----------|----------|----------| | **M1** | 第1周末 | 基础框架完成 | ✅ 环境搭建完成
✅ 数据库结构就绪
✅ 基础代码生成 | | **M2** | 第3周末 | 岗位管理模块 | ✅ 岗位CRUD功能
✅ 权限控制正常
✅ 界面展示完整 | | **M3** | 第5周末 | 申请管理模块 | ✅ 申请流程通畅
✅ 条件校验有效
✅ 状态跟踪准确 | | **M4** | 第7周末 | 审核管理模块 | ✅ 两级审核流程
✅ 审核记录完整
✅ 统计数据准确 | | **M5** | 第8周末 | 项目交付 | ✅ 功能测试通过
✅ 性能达标
✅ 文档完整 | --- ## 📚 附录 ### 8.1 术语表 | 术语 | 英文 | 定义 | |------|------|------| | **勤工俭学** | Work-Study Program | 学生通过参与学校提供的工作岗位获得经济资助的项目 | | **二级学院** | Secondary College | 高校内的院系级别管理单位 | | **学生处** | Student Affairs Office | 负责学生事务管理的学校行政部门 | | **岗位范围** | Position Scope | 岗位的可见和申请范围(本学院/全校) | | **两级审核** | Two-Level Review | 二级学院初审 + 学生处终审的审核机制 | ### 8.2 参考文档 - **原始需求**: [勤工俭学用户原始需求.md](./勤工俭学用户原始需求.md) - **技术规范**: [后端开发规范文档](../../.cursor/cursorrules-backend.md) - **前端规范**: [前端开发规范文档](../../.cursor/cursorrules-frontend.md) - **数据库规范**: [数据库设计规范文档](../../设计文档/database/mysql-database-standard.md) ### 8.3 版本历史 | 版本 | 日期 | 修改内容 | 修改人 | |------|------|----------|--------| | v1.0 | 2025-01-03 | 初始版本创建 | Cursor AI | --- ## ✅ 文档总结 ### 🎯 **核心价值** 本产品需求分析书基于用户原始需求,系统性地分析了勤工俭学管理系统的完整业务流程,为开发团队提供了清晰的产品方向和技术实现指导。 ### 📋 **主要成果** 1. **4个核心用户角色** 的需求分析和权限设计 2. **4个主要功能模块** 的详细设计 3. **完整的业务流程** 和状态流转机制 4. **标准的数据模型** 和API接口设计 5. **详细的项目实施计划** 和里程碑设置 ### 🚀 **下一步行动** 1. 技术团队评审和确认需求 2. 数据库表结构设计和创建 3. 按照开发计划启动编码工作 4. 定期评审和调整实施进度 --- **📝 文档状态**: ✅ 完成 **📅 创建时间**: 2025-01-03 **🔄 更新频率**: 根据需求变更及时更新 **👥 维护团队**: 产品团队 + 开发团队