三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

审批管理系统 - 项目总结

审批管理系统 - 项目总结

审批管理系统 - 项目总结

    • 一、 项目概述
      • 1.1 项目背景
      • 1.2 核心业务需求
      • 1.3 核心设计原则
    • 二、 技术架构
    • 三、 项目文件结构
    • 四、 核心数据模型
      • 4.1 审批单据(ApprovalDocument)
      • 4.2 审批意见(ApprovalOpinion)
    • 五、 状态流转图
      • 状态说明
    • 六、 功能页面图示
      • 6.1 整体功能结构
      • 6.2 提出人页面
      • 6.3 领导页面
      • 6.4 秘书页面
    • 七、 角色与功能对应表
    • 八、 完整流程演示
    • 九、 技术亮点
    • 十、 测试用户
    • 十一、 访问地址
    • 十二、 项目总结

一、 项目概述

1.1 项目背景

公司需要一个专门的审批事项管理系统,处理日常的报批、审批、定稿和生效流程。涉及提出人、管理层(3-5人)和秘书室三个角色,文件格式包括 PDF、Word、Excel 等。

1.2 核心业务需求

文件类型说明
报批件各部门、项目或职能人员提出,呈报管理层,自动发送至秘书室保存
审批意见件管理层对报批件发表意见,可多次往返修改
审批定稿件管理层讨论决定,等待发送和生效
审批生效件最终确定,可实施,自动归档

1.3 核心设计原则

原则说明
秘书室总控秘书室是流程的"阀门",控制所有状态流转
状态驱动所有操作围绕单据状态变化展开
文件与代码分离上传文件独立存储在 data 目录
角色权限分离提出人、领导、秘书看到不同的功能和数据
浏览器架构B/S 架构,局域网内任何电脑通过浏览器访问

二、 技术架构

层次技术说明
前端HTML + Bootstrap 5响应式界面
后端Django 6.0Python Web 框架
数据库PostgreSQL 17关系型数据库
文件存储本地文件系统独立于代码目录
部署Windows + 局域网开发服务器 0.0.0.0:8000

三、 项目文件结构

D:\approval_project\ │ ├── code\ ← 所有代码(Git 管理) │ │ │ ├── config\ ← 项目配置 │ │ ├── settings.py ← 数据库/时区/媒体路径 │ │ ├── urls.py ← 总路由 │ │ └── wsgi.py │ │ │ ├── templates\ ← 前端模板 │ │ ├── base\base.html ← 基础导航模板 │ │ ├── accounts\login.html ← 登录页面 │ │ ├── documents\ ← 提出人页面 │ │ │ ├── submit.html ← 新建申请 │ │ │ ├── list.html ← 我的申请列表 │ │ │ ├── detail.html ← 申请详情 │ │ │ └── revise.html ← 修改申请 │ │ ├── secretary\ ← 秘书页面 │ │ │ ├── dashboard.html ← 工作台(含统计卡片) │ │ │ ├── all_documents.html ← 全部文件列表 │ │ │ ├── statistics.html ← 统计报告 │ │ │ ├── preview.html ← 初审 │ │ │ ├── summary.html ← 汇总 │ │ │ └── finalize.html ← 定稿 │ │ └── leader\ ← 领导页面 │ │ ├── pending.html ← 待我审批 │ │ └── submitted.html ← 我已审批 │ │ │ ├── accounts\ ← 用户管理 │ │ ├── models.py ← User(角色/部门) │ │ ├── admin.py ← 后台注册 │ │ └── views.py ← 登录视图 │ │ │ ├── documents\ ← 审批单据(核心) │ │ ├── models.py ← ApprovalDocument + ApprovalOpinion │ │ ├── services.py ← 状态流转服务 │ │ ├── views.py ← 提出人视图 │ │ └── admin.py ← 后台注册 │ │ │ ├── attachments\ ← 附件管理 │ │ ├── models.py ← Attachment │ │ └── admin.py │ │ │ ├── secretary\ ← 秘书总控台 │ │ ├── views.py ← 秘书工作台/全部文件/统计报告 │ │ └── urls.py │ │ │ ├── leader\ ← 领导模块 │ │ ├── views.py ← 待我审批/我已审批/提交意见 │ │ └── urls.py │ │ │ ├── notifications\ ← 消息通知 │ │ └── models.py ← Notification │ │ │ └── archives\ ← 归档管理 │ └── models.py ← ArchiveLog │ ├── data\ ← 用户文件(独立存储) │ └── documents\ │ ├── drafts\ ← 报批件 │ ├── final\ ← 定稿文件 │ └── opinions\ ← 意见附件 │ ├── backups\ ← 备份目录 │ └── 20260805\ │ ├── approval_db_20260805.sql ← 数据库备份 │ └── documents_20260805.zip ← 文件备份 │ ├── venv\ ← Python 虚拟环境 ├── backup_en.bat ← 手动备份脚本 └── auto_backup.bat ← 自动备份脚本

四、 核心数据模型

4.1 审批单据(ApprovalDocument)

字段类型说明
idAutoField编号
titleCharField事项标题
statusCharField状态(11种)
current_versionIntegerField当前版本号
submitterForeignKey提出人
secretaryForeignKey负责秘书
draft_fileFileField报批件
final_fileFileField最终定稿
expected_effective_dateDateField期望生效日期
actual_effective_dateDateField实际生效日期

4.2 审批意见(ApprovalOpinion)

字段类型说明
documentForeignKey关联审批单
leaderForeignKey审批领导
decisionCharField同意/需修改/驳回
commentTextField审批意见
attachment_fileFileField意见附件
is_latestBooleanField是否最新意见

五、 状态流转图

┌─────────────────────────────────────────────────────────────────────┐ │ 审批单据状态流转 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ ① 草稿 ──提交──→ ② 待秘书初审 ──初审通过──→ ③ 待领导批示 │ │ ↑ │ │ │ │ │ │ 退回修改 │ 领导提交意见 │ │ │ ↓ ↓ │ │ │ ④ 退回修改 ⑤ 意见收集中 │ │ │ │ │ │ │ └────────────────────┘ │ │ │ 提出人修改后重新提交 │ │ │ │ │ │ ┌──────────────┴──────────────┐ │ │ │ 有领导"需修改" │ │ │ │ │ │ │ ↓ │ │ │ ⑥ 待提出人修改 │ │ │ │ │ │ │ │ 修改后重新提交 │ │ │ ↓ │ │ │ ② 待秘书初审 │ │ │ │ │ │ │ │ 全部同意 │ │ │ ↓ │ │ │ ⑦ 待秘书定稿 │ │ │ │ │ │ │ │ 秘书定稿 │ │ │ ↓ │ │ │ ⑧ 待生效 │ │ │ │ │ │ │ │ 到期生效 │ │ │ ↓ │ │ │ ⑨ 已生效 │ │ │ │ │ │ │ │ 归档 │ │ │ ↓ │ │ │ ⑩ 已归档 │ │ │ │ └─────────────────────────────────────────────────────────────────────┘

状态说明

状态码中文名称说明
draft草稿提出人创建,未提交
pending_init待秘书初审秘书检查附件和格式
waiting_approval待领导批示领导发表意见
collecting意见收集中自动判断是否全部提交
waiting_revise待提出人修改有领导要求修改
pending_finalize待秘书定稿秘书上传定稿文件
waiting_effective待生效等待生效日期
completed已生效审批完成
archived已归档归档保存

六、 功能页面图示

6.1 整体功能结构

┌─────────────────────────────────────────────────────────────────────┐ │ 审批管理系统 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ 提出人 │ │ 领导 │ │ 秘书 │ │ │ │ (Submitter) │ │ (Leader) │ │ (Secretary) │ │ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ 我的申请 │ │ 待我审批 │ │ 工作台 │ │ │ │ 新建申请 │ │ 我已审批 │ │ 全部文件 │ │ │ │ 申请详情 │ │ 提交意见 │ │ 统计报告 │ │ │ │ 修改申请 │ │ │ │ 初审/汇总/定稿│ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────┘

6.2 提出人页面

┌─────────────────────────────────────────────────────────────────────┐ │ 审批管理系统 tian_zhiguo [提出人] 退出 │ ├─────────────────────────────────────────────────────────────────────┤ │ 我的申请 | 新建申请 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 我的申请 │ │ │ │ ┌─────┬───────────────────┬──────────┬────────┬─────────────┐ │ │ │ │ │编号 │ 标题 │ 状态 │ 版本 │ 创建时间 │ │ │ │ │ ├─────┼───────────────────┼──────────┼────────┼─────────────┤ │ │ │ │ │ 7 │ 现场服务零星材料 │ 待修改 │ v3 │ 08-05 10:57 │ │ │ │ │ │ 8 │ 流程管理软件采购 │ 已生效 │ v1 │ 08-05 12:09 │ │ │ │ │ └─────┴───────────────────┴──────────┴────────┴─────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ 功能:新建申请 → 上传报批件 → 提交 → 查看详情 → 修改后重新提交 │ │ │ └─────────────────────────────────────────────────────────────────────┘

6.3 领导页面

┌─────────────────────────────────────────────────────────────────────┐ │ 审批管理系统 zr [领导] 退出 │ ├─────────────────────────────────────────────────────────────────────┤ │ 待我审批 | 我已审批 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 待我审批 │ │ │ │ ┌─────┬───────────────────┬──────────┬─────────────────────┐ │ │ │ │ │编号 │ 标题 │ 提出人 │ 操作 │ │ │ │ │ ├─────┼───────────────────┼──────────┼─────────────────────┤ │ │ │ │ │ 7 │ 现场服务零星材料 │ tian_.. │ [审批] │ │ │ │ │ └─────┴───────────────────┴──────────┴─────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 我已审批 │ │ │ │ ┌─────┬───────────────────┬──────────┬──────────┬───────────┐ │ │ │ │ │编号 │ 标题 │ 提出人 │ 我的决定 │ 审批时间 │ │ │ │ │ ├─────┼───────────────────┼──────────┼──────────┼───────────┤ │ │ │ │ │ 7 │ 现场服务零星材料 │ tian_.. │ 需修改 │ 08-05 11:11│ │ │ │ │ └─────┴───────────────────┴──────────┴──────────┴───────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ 功能:待审批列表 → 提交意见(同意/需修改/驳回 + 附件上传) │ │ 我已审批列表 → 查看自己审批过的所有申请 │ │ │ └─────────────────────────────────────────────────────────────────────┘

6.4 秘书页面

┌─────────────────────────────────────────────────────────────────────┐ │ 审批管理系统 xiaomi [秘书] 退出 │ ├─────────────────────────────────────────────────────────────────────┤ │ 工作台 | 全部文件 | 统计报告 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 统计卡片 │ │ │ │ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ │ │ │ │ │总申请 │ │审批中 │ │待修改 │ │已生效 │ │已驳回 │ │ │ │ │ │ 25 │ │ 3 │ │ 2 │ │ 18 │ │ 2 │ │ │ │ │ └───────┘ └───────┘ └───────┘ └───────┘ └───────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ 待初审 [3]🔴│ │ 待汇总 [2]🔴│ │ 待定稿 [1] │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ 功能:初审 → 汇总 → 定稿生效 → 全部文件查看 → 统计报告 │ │ │ └─────────────────────────────────────────────────────────────────────┘

七、 角色与功能对应表

角色功能页面主要操作
提出人我的申请、新建申请、申请详情、修改申请提交报批件、修改后重新提交
领导待我审批、我已审批、提交意见审批(同意/需修改/驳回)、上传附件
秘书工作台、全部文件、统计报告、初审、汇总、定稿初审、汇总意见、定稿生效、查看全部文件、统计报告
管理员Django 后台管理用户、查看所有数据

八、 完整流程演示

┌─────────────────────────────────────────────────────────────────────┐ │ 完整审批流程 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ 提出人 秘书 领导 │ │ ──────── ──── ──── │ │ │ │ │ │ │ ① 新建申请 │ │ │ │ │ (上传报批件) │ │ │ │ │ │ │ │ │ ② 提交申请 ──────────────→│ │ │ │ │ │ │ │ │ │ ③ 初审通过 ────────────────→│ │ │ │ │ │ │ │ │ │ ④ 提交意见 │ │ │ │ │ │ │ │ │ (同意/需修改/驳回) │ │ │ │ │ │ │ │ ⑤ 汇总通过 │ │ │ │ │ │ │ │ │ ⑥ 定稿生效 │ │ │ │ │ │ │ │ ⑦ 查看生效文件 │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ─────────────── 审批完成 ─────────────── │ │ │ └─────────────────────────────────────────────────────────────────────┘

九、 技术亮点

特性实现方式
文件上传Django FileField,按日期自动分类存储
状态流转服务层统一管理,11种状态自动切换
自动汇总领导全部提交后自动进入汇总阶段
统计报告按状态、部门、时间、领导多维度统计
数据备份脚本自动备份数据库和文件,保留7天
局域网部署多用户同时访问,无需安装客户端

十、 测试用户

用户名密码角色
adminadmin123管理员
tian_zhiguoTian@2026提出人
xiaomiAbc@2024#秘书
zrzr的密码领导
llll的密码领导
lsqlsq的密码领导
fqcfqc的密码领导

十一、 访问地址

地址说明
http://192.168.110.222:8000系统首页(自动跳转)
http://192.168.110.222:8000/adminDjango 管理后台
http://192.168.110.222:8000/secretary/dashboard/秘书工作台
http://192.168.110.222:8000/leader/pending/领导待审批
http://192.168.110.222:8000/documents/my-list/提出人我的申请

十二、 项目总结

项目内容
项目名称审批管理系统
开发周期约 3 天(含调试)
代码行数约 1500 行
数据模型7 张表
页面数量14 个
用户角色4 个(管理员/提出人/领导/秘书)
部署方式Windows 局域网 B/S 架构
备份方案自动备份(数据库 + 文件)

🎉 项目已完整交付,可正式投入使用!

← 返回列表