574 lines
18 KiB
Markdown
574 lines
18 KiB
Markdown
# 奖学金管理模块产品需求设计
|
|
|
|
**文档版本**: v1.0
|
|
**创建时间**: 2025-01-27
|
|
**创建人**: AI Assistant
|
|
**最后更新**: 2025-01-27
|
|
|
|
---
|
|
|
|
## 📋 1. 需求概述
|
|
|
|
### 1.1 业务背景
|
|
|
|
奖学金管理是高校学生工作的重要组成部分,涉及奖项设立、名额分配、学生申请、审核评定、结果公示等多个环节。传统的人工管理方式效率低下,容易出错,急需信息化系统支撑。
|
|
|
|
### 1.2 目标用户
|
|
|
|
- **学生处管理员**: 奖项设立、规则配置、全校统筹管理
|
|
- **二级学院管理员**: 名额分配、学生审核、结果上报
|
|
- **学生**: 在线申请、进度查询、结果查看
|
|
|
|
### 1.3 核心价值
|
|
|
|
- **提升效率**: 自动化评定,减少人工工作量
|
|
- **规范流程**: 标准化管理流程,减少人为错误
|
|
- **透明公正**: 全程留痕,公开透明
|
|
- **数据准确**: 系统化管理,数据准确可靠
|
|
|
|
---
|
|
|
|
## 🎯 2. 核心需求分析
|
|
|
|
### 2.1 用户原始需求拆解
|
|
|
|
| 序号 | 原始需求描述 | 核心功能点 | 涉及角色 |
|
|
| ---- | ------------------------------------------------ | ---------------- | -------------- |
|
|
| 1 | 支持自动评定规则设置,系统自动评定满足条件的学生 | 自动评定规则引擎 | 学生处管理员 |
|
|
| 2 | 维护各个奖种之间兼得关系的功能 | 奖种兼得关系配置 | 学生处管理员 |
|
|
| 3 | 奖学金评定批次管理功能 | 评定批次管理 | 学生处管理员 |
|
|
| 4 | 二级学院查看名额分配情况,按班级或专业二次分配 | 名额分配管理 | 二级学院管理员 |
|
|
| 5 | 学生查看奖学金种类,自动化条件校验,在线申请 | 学生申请系统 | 学生 |
|
|
| 6 | 学生处设立奖项,分配名额,设置负责人 | 奖项设立管理 | 学生处管理员 |
|
|
| 7 | 二级学院直接指定符合条件的学生名单 | 直接指定功能 | 二级学院管理员 |
|
|
| 8 | 学生在线申请,查看审核进度 | 申请进度跟踪 | 学生 |
|
|
| 9 | 二级学院审核学生申请 | 申请审核功能 | 二级学院管理员 |
|
|
| 10 | 支持将评定结果导出 | 数据导出功能 | 学生处管理员 |
|
|
|
|
### 2.2 业务流程分析
|
|
|
|
```mermaid
|
|
graph TD
|
|
A[学生处设立奖项] --> B[配置评定规则]
|
|
B --> C[分配名额给二级学院]
|
|
C --> D[二级学院二次分配]
|
|
D --> E{评定方式}
|
|
E -->|自动评定| F[系统自动筛选]
|
|
E -->|学生申请| G[学生在线申请]
|
|
E -->|直接指定| H[学院直接指定]
|
|
F --> I[二级学院审核]
|
|
G --> I
|
|
H --> I
|
|
I --> J[结果公示]
|
|
J --> K[数据导出]
|
|
```
|
|
|
|
---
|
|
|
|
## 🏗️ 3. 功能模块设计
|
|
|
|
### 3.1 系统架构
|
|
|
|
```mermaid
|
|
graph TB
|
|
subgraph "奖学金管理系统"
|
|
A[奖项管理模块<br/>scholarship-type]
|
|
B[规则引擎模块<br/>scholarship-rule]
|
|
C[批次管理模块<br/>scholarship-batch]
|
|
D[名额分配模块<br/>scholarship-quota]
|
|
E[申请管理模块<br/>scholarship-application]
|
|
F[审核管理模块<br/>scholarship-review]
|
|
G[数据导出模块<br/>scholarship-export]
|
|
H[统计报表模块<br/>scholarship-statistics]
|
|
end
|
|
|
|
subgraph "外部系统"
|
|
I[学生信息系统]
|
|
J[教务管理系统]
|
|
end
|
|
|
|
A --> B
|
|
B --> E
|
|
C --> D
|
|
D --> E
|
|
E --> F
|
|
F --> G
|
|
B --> I
|
|
B --> J
|
|
```
|
|
|
|
### 3.2 核心功能模块
|
|
|
|
#### 3.2.1 奖项管理模块 (scholarship-type)
|
|
|
|
**功能描述**: 奖学金种类的设立、维护和管理
|
|
|
|
**主要功能**:
|
|
|
|
- ✅ 奖项信息维护(奖项名称、等级、金额、条件等)
|
|
- ✅ 奖种兼得关系配置(互斥、兼容关系设置)
|
|
- ✅ 奖项状态管理(启用、停用、归档)
|
|
- ✅ 奖项模板管理(常用奖项模板)
|
|
|
|
**数据模型**:
|
|
|
|
```sql
|
|
-- 奖项基本信息表
|
|
scholarship_type (
|
|
id, name, level, amount, description,
|
|
status, create_time, update_time
|
|
)
|
|
|
|
-- 奖种兼得关系表
|
|
scholarship_compatibility (
|
|
id, type_id_1, type_id_2, relation_type,
|
|
create_time, update_time
|
|
)
|
|
```
|
|
|
|
#### 3.2.2 规则引擎模块 (scholarship-rule)
|
|
|
|
**功能描述**: 自动评定规则的配置和执行
|
|
|
|
**主要功能**:
|
|
|
|
- ✅ 评定条件配置(成绩、综合素质、特殊条件等)
|
|
- ✅ 规则优先级设置
|
|
- ✅ 自动评定执行
|
|
- ✅ 评定结果预览和确认
|
|
|
|
**规则配置示例**:
|
|
|
|
```json
|
|
{
|
|
"scholarship_type_id": 1,
|
|
"rules": [
|
|
{
|
|
"condition": "gpa >= 3.5",
|
|
"weight": 0.6
|
|
},
|
|
{
|
|
"condition": "moral_score >= 85",
|
|
"weight": 0.3
|
|
},
|
|
{
|
|
"condition": "no_disciplinary_action = true",
|
|
"weight": 0.1
|
|
}
|
|
],
|
|
"min_score": 80
|
|
}
|
|
```
|
|
|
|
#### 3.2.3 批次管理模块 (scholarship-batch)
|
|
|
|
**功能描述**: 评定批次的创建和管理
|
|
|
|
**主要功能**:
|
|
|
|
- ✅ 评定批次创建(学年、学期、批次名称)
|
|
- ✅ 批次状态管理(准备、进行中、已结束)
|
|
- ✅ 批次时间节点控制(申请开始/结束时间等)
|
|
- ✅ 批次数据统计
|
|
|
|
#### 3.2.4 名额分配模块 (scholarship-quota)
|
|
|
|
**功能描述**: 奖学金名额的分配和管理
|
|
|
|
**主要功能**:
|
|
|
|
- ✅ 总名额设置
|
|
- ✅ 按学院分配名额
|
|
- ✅ 学院内二次分配(按专业、班级)
|
|
- ✅ 名额使用情况统计
|
|
- ✅ 名额调整记录
|
|
|
|
#### 3.2.5 申请管理模块 (scholarship-application)
|
|
|
|
**功能描述**: 学生申请的提交和管理
|
|
|
|
**主要功能**:
|
|
|
|
- ✅ 学生在线申请
|
|
- ✅ 申请条件自动校验
|
|
- ✅ 申请材料上传
|
|
- ✅ 申请进度跟踪
|
|
- ✅ 申请记录查询
|
|
|
|
#### 3.2.6 审核管理模块 (scholarship-review)
|
|
|
|
**功能描述**: 申请的审核和评定
|
|
|
|
**主要功能**:
|
|
|
|
- ✅ 申请审核界面
|
|
- ✅ 批量审核操作
|
|
- ✅ 审核意见记录
|
|
- ✅ 审核结果统计
|
|
- ✅ 直接指定功能
|
|
|
|
#### 3.2.7 数据导出模块 (scholarship-export)
|
|
|
|
**功能描述**: 评定结果的导出和管理
|
|
|
|
**主要功能**:
|
|
|
|
- ✅ 获奖名单导出(Excel、PDF格式)
|
|
- ✅ 统计报表导出
|
|
- ✅ 申请数据导出
|
|
- ✅ 审核记录导出
|
|
- ✅ 自定义导出模板
|
|
|
|
---
|
|
|
|
## 👥 4. 用户角色与权限
|
|
|
|
### 4.1 角色定义
|
|
|
|
| 角色 | 权限范围 | 主要功能 |
|
|
| ------------------------ | ---------- | -------------------------------------- |
|
|
| **超级管理员** | 全系统 | 系统配置、用户管理、数据维护 |
|
|
| **学生处管理员** | 全校范围 | 奖项设立、规则配置、批次管理、名额分配 |
|
|
| **二级学院管理员** | 本学院范围 | 名额二次分配、学生审核、结果上报 |
|
|
| **学生** | 个人数据 | 在线申请、进度查询、结果查看 |
|
|
|
|
### 4.2 权限矩阵
|
|
|
|
| 功能模块 | 超级管理员 | 学生处管理员 | 二级学院管理员 | 学生 |
|
|
| -------- | ---------- | ------------ | -------------- | ---- |
|
|
| 奖项管理 | ✅ | ✅ | 🔍 | 🔍 |
|
|
| 规则配置 | ✅ | ✅ | 🔍 | ❌ |
|
|
| 批次管理 | ✅ | ✅ | 🔍 | 🔍 |
|
|
| 名额分配 | ✅ | ✅ | ✏️ | 🔍 |
|
|
| 申请管理 | ✅ | 🔍 | ✏️ | ✏️ |
|
|
| 审核管理 | ✅ | ✅ | ✏️ | 🔍 |
|
|
| 数据导出 | ✅ | ✅ | ✏️ | 🔍 |
|
|
|
|
**图例**: ✅全部权限 ✏️编辑权限 🔍查看权限 ❌无权限
|
|
|
|
---
|
|
|
|
## 🔧 5. 技术实现方案
|
|
|
|
### 5.1 技术架构
|
|
|
|
- **后端框架**: Spring Boot 3.4.6 + MyBatis-Plus
|
|
- **前端框架**: Vue 3 + Element Plus
|
|
- **数据库**: MySQL 8.0
|
|
- **缓存**: Redis
|
|
- **消息队列**: RabbitMQ(异步处理)
|
|
- **文件存储**: MinIO(申请材料)
|
|
|
|
### 5.2 核心技术点
|
|
|
|
#### 5.2.1 规则引擎实现
|
|
|
|
```java
|
|
@Component
|
|
public class ScholarshipRuleEngine {
|
|
|
|
public List<StudentVo> autoEvaluate(Long scholarshipTypeId, Long batchId) {
|
|
// 1. 获取评定规则
|
|
ScholarshipRule rule = ruleService.getByScholarshipType(scholarshipTypeId);
|
|
|
|
// 2. 获取候选学生
|
|
List<StudentVo> candidates = studentService.getCandidates(batchId);
|
|
|
|
// 3. 执行规则评定
|
|
return candidates.stream()
|
|
.filter(student -> evaluateStudent(student, rule))
|
|
.sorted((s1, s2) -> compareByRule(s1, s2, rule))
|
|
.collect(Collectors.toList());
|
|
}
|
|
}
|
|
```
|
|
|
|
#### 5.2.2 兼得关系检查
|
|
|
|
```java
|
|
@Service
|
|
public class CompatibilityService {
|
|
|
|
public boolean checkCompatibility(Long studentId, Long scholarshipTypeId) {
|
|
// 1. 获取学生已获得的奖学金
|
|
List<Long> existingTypes = getStudentScholarships(studentId);
|
|
|
|
// 2. 检查兼得关系
|
|
return existingTypes.stream()
|
|
.noneMatch(typeId -> isIncompatible(typeId, scholarshipTypeId));
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5.3 数据库设计
|
|
|
|
#### 5.3.1 核心表结构
|
|
|
|
```sql
|
|
-- 奖学金类型表
|
|
CREATE TABLE scholarship_type (
|
|
id BIGINT PRIMARY KEY,
|
|
name VARCHAR(100) NOT NULL COMMENT '奖学金名称',
|
|
level VARCHAR(20) COMMENT '等级',
|
|
amount DECIMAL(10,2) COMMENT '金额',
|
|
description TEXT COMMENT '描述',
|
|
status TINYINT DEFAULT 1 COMMENT '状态',
|
|
tenant_id BIGINT COMMENT '租户ID',
|
|
create_by BIGINT COMMENT '创建人',
|
|
create_time DATETIME COMMENT '创建时间',
|
|
update_by BIGINT COMMENT '更新人',
|
|
update_time DATETIME COMMENT '更新时间',
|
|
deleted TINYINT DEFAULT 0 COMMENT '删除标记'
|
|
);
|
|
|
|
-- 评定批次表
|
|
CREATE TABLE scholarship_batch (
|
|
id BIGINT PRIMARY KEY,
|
|
name VARCHAR(100) NOT NULL COMMENT '批次名称',
|
|
academic_year VARCHAR(20) COMMENT '学年',
|
|
semester TINYINT COMMENT '学期',
|
|
start_time DATETIME COMMENT '开始时间',
|
|
end_time DATETIME COMMENT '结束时间',
|
|
status TINYINT DEFAULT 1 COMMENT '状态',
|
|
tenant_id BIGINT COMMENT '租户ID',
|
|
create_by BIGINT COMMENT '创建人',
|
|
create_time DATETIME COMMENT '创建时间',
|
|
update_by BIGINT COMMENT '更新人',
|
|
update_time DATETIME COMMENT '更新时间',
|
|
deleted TINYINT DEFAULT 0 COMMENT '删除标记'
|
|
);
|
|
|
|
-- 名额分配表
|
|
CREATE TABLE scholarship_quota (
|
|
id BIGINT PRIMARY KEY,
|
|
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
|
scholarship_type_id BIGINT NOT NULL COMMENT '奖学金类型ID',
|
|
dept_id BIGINT COMMENT '部门ID',
|
|
major_id BIGINT COMMENT '专业ID',
|
|
class_id BIGINT COMMENT '班级ID',
|
|
total_quota INT COMMENT '总名额',
|
|
used_quota INT DEFAULT 0 COMMENT '已用名额',
|
|
tenant_id BIGINT COMMENT '租户ID',
|
|
create_by BIGINT COMMENT '创建人',
|
|
create_time DATETIME COMMENT '创建时间',
|
|
update_by BIGINT COMMENT '更新人',
|
|
update_time DATETIME COMMENT '更新时间',
|
|
deleted TINYINT DEFAULT 0 COMMENT '删除标记'
|
|
);
|
|
|
|
-- 申请记录表
|
|
CREATE TABLE scholarship_application (
|
|
id BIGINT PRIMARY KEY,
|
|
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
|
scholarship_type_id BIGINT NOT NULL COMMENT '奖学金类型ID',
|
|
student_id BIGINT NOT NULL COMMENT '学生ID',
|
|
application_type TINYINT COMMENT '申请类型:1-学生申请,2-自动评定,3-直接指定',
|
|
status TINYINT DEFAULT 1 COMMENT '状态:1-待审核,2-通过,3-拒绝',
|
|
apply_reason TEXT COMMENT '申请理由',
|
|
review_opinion TEXT COMMENT '审核意见',
|
|
tenant_id BIGINT COMMENT '租户ID',
|
|
create_by BIGINT COMMENT '创建人',
|
|
create_time DATETIME COMMENT '创建时间',
|
|
update_by BIGINT COMMENT '更新人',
|
|
update_time DATETIME COMMENT '更新时间',
|
|
deleted TINYINT DEFAULT 0 COMMENT '删除标记'
|
|
);
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 6. 业务流程设计
|
|
|
|
### 6.1 奖学金评定完整流程
|
|
|
|
```mermaid
|
|
sequenceDiagram
|
|
participant SP as 学生处管理员
|
|
participant CA as 二级学院管理员
|
|
participant S as 学生
|
|
participant SYS as 系统
|
|
|
|
SP->>SYS: 1. 创建评定批次
|
|
SP->>SYS: 2. 设置奖学金类型和规则
|
|
SP->>SYS: 3. 分配名额给各学院
|
|
CA->>SYS: 4. 学院内二次分配名额
|
|
|
|
alt 自动评定
|
|
SYS->>SYS: 5a. 执行自动评定规则
|
|
SYS->>CA: 5b. 推送评定结果
|
|
else 学生申请
|
|
S->>SYS: 5a. 在线提交申请
|
|
SYS->>S: 5b. 条件校验反馈
|
|
else 直接指定
|
|
CA->>SYS: 5a. 直接指定学生
|
|
end
|
|
|
|
CA->>SYS: 6. 审核申请/确认结果
|
|
SYS->>S: 7. 通知审核结果
|
|
SP->>SYS: 8. 生成获奖名单
|
|
SYS->>SP: 9. 导出评定结果
|
|
```
|
|
|
|
### 6.2 关键业务规则
|
|
|
|
#### 6.2.1 申请条件校验
|
|
|
|
- ✅ 学籍状态检查(在校、正常)
|
|
- ✅ 成绩要求检查(GPA、单科成绩)
|
|
- ✅ 综合素质检查(德育分、违纪记录)
|
|
- ✅ 兼得关系检查(已获奖项冲突)
|
|
- ✅ 申请时间检查(批次有效期内)
|
|
|
|
#### 6.2.2 名额分配规则
|
|
|
|
- ✅ 按学院学生数比例分配
|
|
- ✅ 支持手动调整分配比例
|
|
- ✅ 学院内可按专业/班级再分配
|
|
- ✅ 名额使用实时统计
|
|
|
|
#### 6.2.3 审核流程规则
|
|
|
|
- ✅ 二级学院初审
|
|
- ✅ 学生处终审(可选)
|
|
- ✅ 支持批量审核操作
|
|
- ✅ 审核意见必填
|
|
|
|
---
|
|
|
|
## 📈 7. 系统集成方案
|
|
|
|
### 7.1 学生信息系统集成
|
|
|
|
**集成目的**: 获取学生基本信息、学籍状态、成绩数据
|
|
|
|
**集成方式**:
|
|
|
|
- 数据库直连(推荐)
|
|
- API接口调用
|
|
- 数据文件导入
|
|
|
|
**数据同步**:
|
|
|
|
```java
|
|
@Scheduled(cron = "0 0 2 * * ?") // 每天凌晨2点同步
|
|
public void syncStudentData() {
|
|
// 1. 获取学生基本信息
|
|
List<StudentInfo> students = studentInfoService.getAllStudents();
|
|
|
|
// 2. 获取成绩数据
|
|
List<GradeInfo> grades = gradeService.getLatestGrades();
|
|
|
|
// 3. 更新本地数据
|
|
scholarshipStudentService.updateStudentData(students, grades);
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🧪 8. 测试方案
|
|
|
|
### 8.1 功能测试
|
|
|
|
- ✅ 奖项管理功能测试
|
|
- ✅ 规则引擎准确性测试
|
|
- ✅ 申请流程完整性测试
|
|
- ✅ 审核功能正确性测试
|
|
- ✅ 权限控制有效性测试
|
|
|
|
### 8.2 性能测试
|
|
|
|
- ✅ 自动评定性能测试(1万学生数据)
|
|
- ✅ 并发申请压力测试(500并发)
|
|
- ✅ 大数据量查询性能测试
|
|
- ✅ 数据导出性能测试
|
|
|
|
### 8.3 安全测试
|
|
|
|
- ✅ 用户权限边界测试
|
|
- ✅ 数据访问安全测试
|
|
- ✅ SQL注入防护测试
|
|
- ✅ 敏感数据加密测试
|
|
|
|
---
|
|
|
|
## 📅 9. 实施计划
|
|
|
|
### 9.1 开发阶段规划
|
|
|
|
| 阶段 | 时间周期 | 主要任务 | 交付物 |
|
|
| ------------------ | -------- | --------------------- | ------------------ |
|
|
| **需求分析** | 1周 | 需求调研、原型设计 | 需求文档、原型图 |
|
|
| **系统设计** | 1周 | 架构设计、数据库设计 | 设计文档、建表脚本 |
|
|
| **核心开发** | 4周 | 后端API、前端页面开发 | 核心功能模块 |
|
|
| **集成测试** | 1周 | 系统集成、功能测试 | 测试报告 |
|
|
| **用户验收** | 1周 | 用户培训、验收测试 | 验收报告 |
|
|
| **上线部署** | 0.5周 | 生产环境部署 | 部署文档 |
|
|
|
|
### 9.2 里程碑节点
|
|
|
|
- **M1**: 完成需求分析和系统设计(第2周)
|
|
- **M2**: 完成核心功能开发(第6周)
|
|
- **M3**: 完成系统测试和集成(第7周)
|
|
- **M4**: 完成用户验收和上线部署(第8.5周)
|
|
|
|
---
|
|
|
|
## 📋 10. 风险评估与应对
|
|
|
|
### 10.1 技术风险
|
|
|
|
| 风险项 | 风险等级 | 影响 | 应对措施 |
|
|
| ---------------- | -------- | ------------ | ---------------------- |
|
|
| 规则引擎复杂度高 | 中 | 开发周期延长 | 采用成熟的规则引擎框架 |
|
|
| 系统集成难度大 | 中 | 数据同步异常 | 提前进行接口联调测试 |
|
|
| 性能要求高 | 低 | 用户体验差 | 优化查询SQL,使用缓存 |
|
|
|
|
### 10.2 业务风险
|
|
|
|
| 风险项 | 风险等级 | 影响 | 应对措施 |
|
|
| ---------------- | -------- | -------------- | ---------------------- |
|
|
| 业务规则变更频繁 | 高 | 系统维护成本高 | 设计灵活的配置化规则 |
|
|
| 用户接受度低 | 中 | 系统推广困难 | 加强用户培训和支持 |
|
|
| 数据安全要求高 | 高 | 合规风险 | 严格权限控制,数据加密 |
|
|
|
|
### 10.3 项目风险
|
|
|
|
| 风险项 | 风险等级 | 影响 | 应对措施 |
|
|
| ------------ | -------- | -------- | ------------------------------ |
|
|
| 需求理解偏差 | 中 | 返工重做 | 加强需求沟通确认 |
|
|
| 人员变动 | 低 | 进度延期 | 做好知识传承和文档 |
|
|
| 时间紧张 | 中 | 质量下降 | 合理安排进度,重点保证核心功能 |
|
|
|
|
---
|
|
|
|
## 📚 11. 附录
|
|
|
|
### 11.1 相关文档
|
|
|
|
- 《高校奖学金管理办法》
|
|
- 《学生信息系统接口文档》
|
|
- 《数据安全管理规定》
|
|
|
|
### 11.2 参考资料
|
|
|
|
- Spring Boot官方文档
|
|
- Vue.js开发指南
|
|
- MySQL性能优化手册
|
|
- 系统集成最佳实践
|
|
|
|
### 11.3 联系方式
|
|
|
|
- **产品经理**: 张经理 (zhang@university.edu.cn)
|
|
- **技术负责人**: 李工程师 (li@university.edu.cn)
|
|
- **测试负责人**: 王测试 (wang@university.edu.cn)
|
|
|
|
---
|
|
|
|
**文档状态**: ✅ 已完成
|
|
**审核状态**: 🔄 待审核
|
|
**版本控制**: Git管理,版本标签v1.0
|
|
|
|
---
|
|
|
|
*本文档为奖学金管理模块的产品需求设计,涵盖了从需求分析到实施计划的完整内容。后续将根据实际开发过程中的反馈进行持续更新和完善。*
|