企业内部审计项目管理 系统开源(springboot+vue3)

IAPM:基于 Spring Boot + Vue3 的企业内部审计项目管理系统------从手工审计到数字化闭环的探索与实践

一句话概要 :IAPM(Internal Audit Project Management)是一套面向企业内部审计部门的全流程数字化管理平台,覆盖从审计计划制定、项目启动、现场执行、问题记录、报告出具到整改跟踪的完整审计生命周期,帮助审计团队告别纸质底稿和散落在线文档中的审计痕迹,实现审计项目的标准化、流程化和闭环管理。
在线体验http://111.229.112.227:19000/login

演示账号zhangwei@iapm.com / 密码:admin123

源码获取 :发送您的邮箱至 1049630498@qq.com,获取源码


一、背景:为什么需要一套内审管理系统?

1.1 内部审计的行业痛点

内部审计作为企业治理的"第三道防线",承担着评价和改善风险管理、内部控制及治理流程有效性的重要职责。然而,许多企业的审计部门在实际工作中面临着诸多挑战:

  • 流程碎片化:审计计划用 Word 写、审计底稿用 Excel 记、审计报告用邮件发、整改反馈靠电话催------信息散落在不同工具和渠道中,缺乏统一管理。
  • 过程难追溯:审计人员的工作过程(进场、取证、访谈)无法留下系统性记录,项目结束后难以复盘,审计质量难以评估。
  • 整改易流失:审计发现的问题往往在报告出具后就"石沉大海",整改落实情况靠人工跟踪,超期问题无人预警,审计成果难以转化为管理价值。
  • 协作效率低:审计组内部成员之间、内审与被审计单位之间、内审与外部审计机构之间缺乏高效的在线协作通道,信息传递滞后。
  • 数据分析薄弱:缺乏对审计项目数量、执行进度、问题分类、整改完成率等维度的数据统计,审计管理层难以做出数据驱动的决策。

1.2 数字化转型的必然趋势

随着《中华人民共和国内部审计法》的深入实施和企业数字化转型的全面推进,内部审计工作正从"经验驱动"向"数据驱动"转变。建设一套覆盖审计全流程的信息化系统,已成为企业提升审计质量、强化风险管控的必然选择。

IAPM 正是在这样的背景下应运而生------用技术手段将审计标准嵌入业务流程,让每一步都有迹可循、有据可查


二、系统意义:IAPM 带来什么价值?

2.1 对审计人员:减负提效

传统方式 IAPM 方式
手工编写审计方案,反复修改版本混乱 在线编制审计方案,版本集中管理
Excel 记录审计底稿,文件散落各处 系统化录入进度记录,附件统一归档
问题发现靠口头汇报、邮件流转 问题在线登记,状态实时追踪(疑点→确认→消除)
报告征求意见靠纸质流转 报告在线上传,征求意见稿与终稿分阶段管理

2.2 对审计管理层:全局掌控

  • 项目看板:首页 Dashboard 直观展示审计计划总数、执行中项目数、整改跟踪数,一目了然。
  • 流程管控:六阶段状态机(准备→启动→执行→完成→整改→关闭),每个阶段都有明确的操作和产出。
  • 统计决策:按计划类型、项目类别、执行状态等多维度统计数据,为审计资源分配提供依据。

2.3 对被审计单位与外审机构:透明协作

  • 审计通知在线送达:系统内置通知模块,审计通知书、报告等可在线发布并附加附件。
  • 外审协作通道:通过编码机制,外部审计机构无需注册账号即可安全访问指定项目,查看进度、提交问题和报告。
  • 整改在线反馈:被审计单位可通过专属编码链接进入整改反馈页面,在线提交整改措施和证明材料。

2.4 对企业治理:审计闭环

复制代码
审计计划 → 审计执行 → 问题发现 → 审计报告 → 整改跟踪 → 闭环归档
    ↑                                                    |
    └────────────── 经验沉淀,指导下一次计划 ────────────┘

每一个审计发现的问题都能追溯到最终整改结果,实现"发现问题---整改落实---效果验证"的全链路闭环。


三、系统架构:技术选型与整体设计

3.1 技术栈总览

IAPM 采用前后端分离的现代化架构,通过 Docker Compose 实现一键部署。

层次 技术选型 版本 选型理由
前端框架 Vue 3 + TypeScript 3.x 组合式 API,类型安全,生态成熟
UI 组件库 Element Plus - 企业级管理后台首选,组件丰富
状态管理 Pinia - Vue 3 官方推荐,轻量高效
构建工具 Vite - 极速 HMR,开发体验优秀
后端框架 Spring Boot 3.2.5 Java 生态最成熟的快速开发框架
编程语言 Java 17 LTS 版本,性能稳定
安全框架 Spring Security + JWT - 无状态认证,适合前后端分离
ORM 框架 MyBatis-Plus 3.5.6 简化 CRUD,内置分页和逻辑删除
数据库 MySQL 8.0 utf8mb4 全字符集,支持完善
API 文档 Knife4j (OpenAPI 3) 4.5.0 在线交互式 API 文档
Excel 处理 EasyExcel 3.3.4 大数据量导出性能优异
部署方案 Docker Compose - 容器化部署,环境一致性保障

3.2 系统整体架构图

复制代码
┌─────────────────────────────────────────────────────────┐
│                    用户浏览器 / 外审终端                    │
│              (Vue3 SPA + Element Plus)                  │
└────────────────────────┬────────────────────────────────┘
                         │ HTTP / HTTPS
                         ▼
┌─────────────────────────────────────────────────────────┐
│                   Nginx 反向代理 (:80)                    │
│            静态资源服务 + API 请求转发                      │
└────────────────────────┬────────────────────────────────┘
                         │ /api/**
                         ▼
┌─────────────────────────────────────────────────────────┐
│              Spring Boot 后端 (:8081)                     │
│  ┌──────────┐ ┌───────────┐ ┌──────────┐ ┌───────────┐  │
│  │Security  ││ Controller │ │ Service  │ │  Mapper   │  │
│  │JWT Filter││ (9个模块)  │ │(6个服务) │ │(19个Mapper)│ │
│  └──────────┘ └───────────┘ └──────────┘ └───────────┘  │
│  ┌──────────┐ ┌───────────┐ ┌──────────┐               │
│  │ 全局异常  ││ 文件管理   │ │ 自动填充  │               │
│  │  处理器   ││ (100MB)   │ │  处理器   │               │
│  └──────────┘ └───────────┘ └──────────┘               │
└────────────────────────┬────────────────────────────────┘
                         │ JDBC
                         ▼
┌─────────────────────────────────────────────────────────┐
│                 MySQL 8.0 数据库 (:3306)                   │
│              20张核心表 + utf8mb4 字符集                   │
└─────────────────────────────────────────────────────────┘

3.3 后端分层架构

后端代码遵循经典的分层架构,职责清晰:

复制代码
com.iapm/
├── IapmApplication.java           # 应用启动入口
├── common/                        # 公共层
│   ├── Result.java                # 统一响应结构 {code, message, data}
│   ├── PageResult.java            # 分页结果封装
│   ├── BizCode.java               # 业务错误码定义
│   ├── BizException.java          # 业务异常
│   └── GlobalExceptionHandler.java# 全局异常处理器(@RestControllerAdvice)
│
├── config/                        # 配置层
│   ├── SecurityConfig.java        # Spring Security 安全配置
│   ├── WebMvcConfig.java          # 静态资源映射(/files/**, /media/**)
│   ├── MyBatisPlusConfig.java     # 分页插件配置
│   └── MyMetaObjectHandler.java   # 创建时间/更新时间自动填充
│
├── security/                      # 安全层
│   ├── JwtAuthFilter.java         # JWT 认证过滤器
│   └── UserContext.java           # 当前用户上下文(ThreadLocal 实现)
│
├── util/                          # 工具层
│   ├── JwtUtil.java               # JWT 生成与解析(jjwt 0.12.5)
│   └── CodingUtil.java            # 外审模块编解码
│
├── dto/                           # 数据传输对象(8个)
├── entity/                        # 数据库实体类(19个)
├── mapper/                        # MyBatis-Plus Mapper(19个)
├── service/                       # 业务逻辑层
│   └── impl/                      # 服务实现(6个)
└── controller/                    # RESTful 控制器(9个)

3.4 前端路由与页面结构

前端基于 Vue Router 实现页面路由,按角色权限划分为三大区域:

复制代码
/ (BasicLayout)
├── 公开页面(无需登录)
│   ├── /login                         → 登录
│   ├── /register                      → 注册
│   ├── /exaudit-return                → 外审编码入口
│   ├── /external/:code/*              → 外审协作(4个子页面)
│   └── /rectification/:code           → 整改反馈入口
│
├── 业务页面(需登录 + 分配公司)
│   ├── /dashboard                     → 审计看板(首页)
│   ├── /plans                         → 审计计划列表
│   ├── /plans/:id                     → 计划详情
│   ├── /plans/:id/start              → 项目启动(审计方案编制)
│   ├── /plans/executing              → 执行中项目
│   ├── /notices                       → 通知公告
│   ├── /ex/plans/:id/schedules        → 审计进度记录
│   ├── /ex/plans/:id/problems         → 审计问题
│   ├── /ex/problems/:id              → 问题详情
│   ├── /ex/plans/:id/reports         → 审计报告
│   ├── /ex/rectification             → 整改跟踪列表
│   ├── /ex/rectification/problems/:id                    → 整改详情
│   └── /ex/rectification/problems/:projectId/feedback/:problemId → 整改反馈
│
├── 超管页面(需超级管理员权限)
│   ├── /users                         → 用户管理
│   └── /companies                     → 单位管理
│
└── 个人设置(所有人)
    ├── /profile                       → 个人资料
    ├── /theme                         → 主题设置
    └── /change-password               → 修改密码

3.5 Docker 部署架构

系统采用 Docker Compose 编排,三个容器协同工作:

复制代码
┌──────────────────────────────────────────────────┐
│                 Docker Compose                    │
│                                                   │
│  ┌─────────┐    ┌───────────┐    ┌────────────┐  │
│  │  MySQL  │◄──│ Spring Boot│◄──│  Nginx+Vue │  │
│  │ (:3306) │    │  (:8081)  │    │   (:80)    │  │
│  └────┬────┘    └─────┬─────┘    └────────────┘  │
│       │                │                           │
│  ┌────▼────┐    ┌──────▼──────┐                   │
│  │mysql-data│    │server-media │                   │
│  │ (Volume) │    │  (Volume)   │                   │
│  └─────────┘    └─────────────┘                   │
└──────────────────────────────────────────────────┘

一键启动:

bash 复制代码
docker-compose up -d

MySQL 容器在首次启动时会自动执行初始化脚本(建库建表 + 演示数据),实现真正的"开箱即用"。


四、核心功能:覆盖审计全生命周期

4.1 审计项目六阶段状态机

IAPM 的核心设计理念是将审计项目建模为一个有限状态机,每个阶段都有明确的操作和产出:

复制代码
pl(准备) ──→ st(启动) ──→ ex(执行) ──→ cp(完成) ──→ re(整改) ──→ cl(关闭)
   │            │            │            │            │
   │            │            │            │            │
制定审计     编制审计方案    现场审计      出具报告     跟踪整改
计划         组建审计组      发现问题      征求意见     闭环归档
             下达通知
状态码 阶段名称 核心操作 关键产出物
pl 准备 创建审计计划,填写项目名称、年度、类型、依据 审计计划
st 启动 编制审计方案、添加被审计单位、组建审计组、下发通知 审计方案、审计通知书
ex 执行 记录审计进度、登记审计问题、上传审计底稿和报告 进度记录、问题清单、审计报告
cp 完成 审计报告定稿,问题转入整改 审计报告终稿
re 整改 整改项目跟踪、接收整改反馈、超期预警 整改反馈记录
cl 关闭 整改完成,项目归档 完整审计档案

4.2 核心业务模块详解

模块一:审计计划管理
  • 支持年度计划临时计划两种类型
  • 项目类别涵盖常规审计、专项审计、财务收支审计等
  • 计划列表支持分页查询、关键字搜索、状态筛选
  • 统计接口实时返回各状态项目数量
  • 一键启动项目:自动将创建人设为主审,流转到执行阶段
模块二:项目启动与方案编制
  • 审计方案:在线填写审计目标、范围、依据、内容、程序、预计时间
  • 被审计单位管理:一个项目可关联多个被审计单位及联系人
  • 审计组成员管理:三级角色体系(主审 lvl1 / 组员 lvl2 / 其他 lvl3)
  • 审计通知:在线签发审计通知书,支持附件上传
模块三:审计执行
  • 进度记录:审计人员按日/周记录工作内容,主审可填写反馈意见
  • 问题管理 :发现问题在线登记,支持三级状态流转
    • do(疑点)→ co(确认)→ el(消除)
    • 区分sg(审计建议)和 re(需整改)两种问题类型
  • 附件管理:进度记录、问题均支持附件上传(图片、文档、压缩包,单文件最大 100MB)
  • 报告管理:支持过程稿、终稿分阶段管理,征求意见稿和反馈文件独立归档
模块四:审计通知与报告
  • 通知类型支持:审计通知(audit)、普通通知(nomal)、审计报告(report
  • 通知关联计划,可附加多个附件文件
  • 报告文件分为四类:过程稿(pr)、过程稿附件(prfi)、终稿(fi)、终稿附件(fifi
模块五:整改跟踪(审计闭环的关键)

整改模块是 IAPM 最具业务价值的模块,实现了审计成果到管理价值的转化:

复制代码
审计问题 → 自动转入整改项目 → 分配整改责任部门和责任人
                                    │
                          ┌─────────┼──────────┐
                          ▼         ▼          ▼
                       整改中     完成      无法整改
                      (pr)      (co)       (un)

核心特性

  • 整改项目:从已完成的审计项目中自动提取需整改问题,生成整改项目
  • 整改问题:每条问题包含整改要求、整改期限、责任部门、责任人、是否问责、是否公告等字段
  • 整改反馈:被审计单位可多次提交反馈,系统记录每次反馈内容和时间
  • 超期预警 :系统自动计算整改状态,通过 warn_status 字段标识
    • 0 正常 / 1 即将超期 / 2 已超期
  • 在线反馈入口 :通过编码链接 /rectification/:code,被审计单位无需登录即可在线提交整改
模块六:外审协作

IAPM 创新性地引入了外审协作模块,支持与外部审计机构的安全协作:

  • 通过编码技术(CodingUtil)为每个项目生成唯一访问编码
  • 外审机构通过 /external/:code 访问指定项目
  • 可查看审计进度、登记问题、上传报告
  • 无需注册账号,编码即权限,安全可控

4.3 数据库设计

系统共设计 20张核心数据表,覆盖审计业务全流程:

序号 表名 说明
1 company_info 公司/审计单位信息
2 user_profile 用户信息(含个性化主题配置)
3 plans_info 审计计划(核心表)
4 start_field_info 启动字段配置(表单)
5 start_info 审计方案
6 audit_company_info 被审计单位
7 audit_member_info 审计组成员
8 all_notice_info 通知信息
9 all_notice_file_info 通知附件
10 start_file_info 启动文件
11 schedule_info 审计进度记录
12 schedule_file_info 进度附件
13 problem_info 审计问题
14 problem_file_info 问题附件
15 report_file_info 审计报告文件
16 feedback_file_info 反馈文件(报告阶段)
17 rectification_project_info 整改项目
18 rectification_problem_info 整改问题(含预警字段)
19 rectification_feedback_info 整改反馈记录
20 rectification_feedback_file_info 整改反馈附件

设计特点

  • 全表逻辑删除(status 字段:1有效/0删除),数据安全可追溯
  • 自动填充 create_time / update_time,审计痕迹完整
  • 关键查询字段建立索引(plan_idcompany_idstatus 等),保障查询性能
  • 字符集统一采用 utf8mb4,支持完整 Unicode 字符

4.4 安全设计

安全维度 实现方案
身份认证 JWT 无状态令牌(jjwt 0.12.5),有效期 10 小时
密码安全 BCrypt 哈希加密存储
权限控制 三级权限体系:超级管理员 / 普通用户 / 外审用户
路由守卫 前端路由 meta 标签控制(requireSuperuser / requireCompany / public
外审安全 编码机制,编码即权限,无需账号
文件安全 文件类型白名单限制(jpg/png/pdf/doc/xls/zip 等)
API 安全 Spring Security 过滤器链,非白名单接口强制认证

五、应用效果:数字化审计的实践价值

5.1 流程标准化

IAPM 将原本依赖个人经验的审计流程固化为系统化操作步骤:

  • 以前:审计方案格式因人而异,审计底稿模板不统一,报告流转靠人工
  • 现在:系统统一定义审计方案的七大要素(目标、范围、依据、内容、程序、时间、人员),每一步操作都有标准化界面和必填校验

5.2 过程可追溯

  • 审计进度按日记录,主审可逐条反馈
  • 审计问题从"发现"到"消除"全程留痕,每次状态变更都有时间戳
  • 整改反馈支持多次提交,反馈历史完整保存
  • 文件附件与业务记录精确关联,支持按项目、按问题、按阶段检索

5.3 协作在线化

协作场景 传统方式 IAPM 方式
审计组内部协作 微信群、邮件 系统内成员分配,进度和问题实时共享
审计通知送达 纸质签收 在线发布,附件即下即用
报告征求意见 邮件往来 系统内上传征求意见稿和反馈文件
外审机构协作 线下交接 编码即访问,在线查看和提交
整改反馈 电话+邮件 专属链接在线提交,附件佐证

5.4 数据可视化

Dashboard 首页提供审计业务全景看板:

  • 审计业务流程图:直观展示"审计计划→审计执行→整改跟踪"三阶段,点击可快速跳转
  • 统计卡片:审计计划总数、执行中项目数、整改跟踪数等关键指标一目了然
  • 多维度筛选:计划列表支持按年度、类型、状态等条件筛选,快速定位目标项目

5.5 审计闭环

IAPM 的整改跟踪模块真正实现了审计闭环:

复制代码
发现问题 → 转入整改 → 分配责任 → 跟踪反馈 → 超期预警 → 闭环验证
    ↑                                                    |
    └────── 整改数据沉淀,形成风险地图,指导下一年计划 ─────┘

整改完成率、超期问题数、问责情况等数据,为管理层提供了量化评估审计效果的依据。


六、技术亮点

6.1 容器化一键部署

通过 Docker Compose 编排 MySQL + Spring Boot + Nginx 三个容器:

  • 环境一致性:开发、测试、生产环境完全一致
  • 部署简单docker-compose up -d 一键启动
  • 数据持久化:MySQL 数据和上传文件通过 Volume 持久化
  • 健康检查:MySQL 容器内置健康检查,后端容器在数据库就绪后自动启动
  • 参数可配:端口、密码等通过环境变量灵活配置

七、总结与展望

7.1 项目价值总结

IAPM 内部审计项目管理系统通过数字化手段,解决了企业内部审计工作中的四大核心问题:

  1. 流程标准化:六阶段状态机将审计流程固化,减少人为偏差
  2. 过程透明化:进度记录、问题追踪、文件归档全程在线,审计质量可控
  3. 协作在线化:审计组、被审计单位、外审机构三方在线协作
  4. 整改闭环化:问题发现到整改验证全链路跟踪,审计成果真正落地

7.2 未来展望

IAPM 作为一个持续演进的系统,未来可以在以下方向深化:

  • 智能审计:引入数据分析模型,实现风险预警和异常自动识别
  • 移动端适配:支持移动端查看进度和接收预警通知
  • 知识库建设:将历史审计问题和整改经验沉淀为知识库,辅助审计决策
  • 报表引擎:集成专业报表工具,支持自定义审计统计报表
  • 工作流引擎:引入工作流引擎(如 Flowable),实现更灵活的审批流程配置
相关推荐
RuoyiOffice13 小时前
SpringBoot3+Vue3 会议室预订系统:时段冲突三模式检测 + 会前定时提醒与 cancelByBiz
spring boot·vue3·flowable·消息中心·spring boot 3·会议室·时段冲突
燐妤1 天前
中老年智能健康管理项目
python·ai·pycharm·vue3·fastapi·项目开发·健康
gis开发之家2 天前
《Vue3 从入门到大神50篇》Vue3 源码详解(二十):生命周期钩子源码解析 —— onMounted / onUpdated 如何实现?
前端·javascript·前端框架·vue3·vue3源码
还是鼠鼠5 天前
Spring AI ChatClient详解:创建第一个AI客户端
java·springboot·spring ai·chatclient
西凉的悲伤5 天前
Java 基于 MySQL 行锁实现高并发业务序列号生成器
java·mysql·springboot·序列号生成
YDS8296 天前
大营销平台 —— 细节优化和前端对接
java·springboot·ddd
刘名喜7 天前
第22篇-数据库迁移-Liquibase
kotlin·springboot
刘名喜7 天前
第30篇-Spring-Security-7核心概念
后端·kotlin·springboot
刘名喜8 天前
第24篇-全局异常处理
kotlin·springboot