数百个项目分布在五大类别,每一类都要记收入、支出、余额、执行率,人工统计工作量巨大
查阅文献 + 与财务处老师交流,明确功能需求、用户角色、性能指标
确定技术栈、B/S架构、数据库表结构、前后端接口定义
Vue.js + Spring Boot 开发,核心功能:项目管理、检索、图表、预警
功能测试用例 + 并发性能测试,确认系统达到预期目标
| 技术 | 用途 | 选型依据 |
|---|---|---|
| Vue.js | 前端框架 | 渐进式学习、Element UI组件库完善 |
| Spring Boot | 后端框架 | 自动配置、内嵌Tomcat、生态完善 |
| MySQL 8.0 | 数据库 | InnoDB支持事务、免费开源、运维门槛低 |
| MyBatis | 持久层框架 | 半自动ORM便于控制SQL、适合多表联查 |
| ECharts | 数据可视化 | 中文文档完善、图表类型丰富、大数据量渲染 |
| Spring Security + JWT | 安全认证 | RBAC权限控制、无状态认证 |
RBAC 权限模型:三层视图统一在同一数据模型下,通过数据过滤实现权限隔离
CAS单点登录对接学校门户,JWT令牌认证
个人/单位/学校三层数据视图,图表直观展示
项目信息录入、修改、查看,覆盖财务数据
多条件组合筛选,支持导出为Excel
按部门维度统计执行率排名,横向对比
执行率低于序时进度时自动生成预警推送
共设计 7张表,覆盖用户、角色、部门、项目和预警等核心实体
| 表名 | 说明 | 关键字段 |
|---|---|---|
| sys_user | 用户表 | id, username, real_name, dept_id |
| sys_role | 角色表 | id, role_name, role_code |
| sys_user_role | 用户-角色关联 | user_id, role_id |
| sys_department | 部门表 | id, dept_name, parent_id, dept_type |
| budget_project | 预算项目表 | project_code, leader_id, income, expenditure, execution_rate |
| budget_warning | 预警记录表 | project_id, user_id, execution_rate, scheduled_rate, is_read |
| sys_log | 系统日志表 | user_id, operation, method, ip |
执行率 = 总支出 / 总收入 × 100%
序时进度 = 当前月份 / 12 × 100%
偏差值 = 序时进度 − 执行率
信用分 = 100 + 5 × 按期完成次数 + 2 × 有效填报次数 − 10 × 超期次数 − 15 × 异常退回次数
用于排行榜展示与预警优先级计算
<if> 动态SQL@Scheduled 每日凌晨执行系统使用ECharts实现柱状图渲染,鼠标悬停可显示具体数值,支持dataZoom拖动查看
执行率卡片 + 预警数 + 金额汇总 + 排行榜摘要
部门考核柱状图(蓝/绿双维度对比 + 序时进度线)
全校各部门执行率对比 + dataZoom拖动查看
多条件筛选 + 蓝色汇总栏 + 数据表格 + Excel导出
四张维度排行(所属/归口/国库/学院建设)
未读计数 + 预警列表 + 标记已读 + 详情查看
正常登录、Token无效、角色权限、数据权限隔离
数据准确性、单位切换、柱状图、序时进度线
精确/模糊查询、年度切换、执行率筛选、导出
类型切换、排名正确性、跳转、颜色标识
自动生成、未读数量、标记已读、消息中心
| 指标 | 人工Excel | 本系统 | 提升 |
|---|---|---|---|
| 单部门汇总 | 30 min | < 3s | 600× |
| 全校13部门 | 6 h | < 30s | 720× |
| 多条件查询 | 45 min | < 2s | 1350× |
| 出错概率 | 5% | 0% | 消除 |
| 预警及时性 | 滞后1-2周 | 每日自动 | 实时 |
| 测试场景 | 并发数 | 平均响应(ms) | 最大响应(ms) | 吞吐量(req/s) | 错误率 |
|---|---|---|---|---|---|
| 个人总览查询 | 50 | 126 | 342 | 89.3 | 0% |
| 个人总览查询 | 100 | 218 | 587 | 156.2 | 0% |
| 项目列表(无筛选) | 50 | 158 | 412 | 78.6 | 0% |
| 项目列表(多条件筛选) | 50 | 203 | 498 | 62.4 | 0% |
| 排行榜查询 | 50 | 95 | 267 | 112.5 | 0% |
| 学校总览查询 | 50 | 312 | 689 | 53.7 | 0% |
| Excel导出(100条) | 10 | 1245 | 2156 | 7.8 | 0% |
| 研究问题 | 设计与实现要点 | 验证方式 | 结论 |
|---|---|---|---|
| RQ1 多角色视图与权限如何统一实现 |
RBAC权限模型,构建个人/单位/学校三级总览与数据隔离规则 | 登录与权限测试(T01-T05) | 通过 · 无越权 |
| RQ2 执行率与预警如何实现可解释监测 |
建立执行率计算规则、序时进度线预警通知机制 | 数据总览与预警测试(T06-T10, T24-T27) | 通过 · 链路完整 |
| RQ3 性能与可维护性如何平衡 |
三层架构+索引优化+RESTful接口规范化设计 | 性能测试与模块化实现验证 | 通过 · 响应稳定 |
请各位老师批评指正
感谢贾娟娣老师的悉心指导
感谢财务处老师的业务讲解
感谢同学们的支持与帮助