Skip to content

jiefing/SCAU-reimbursement-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCAU-实验室报账记录系统 🧾

华南农业大学报销单记录工具

Python GUI Database License


📖 项目简介

报账系统 是一个专为华南农业大学报账小助理设计的报销管理工具,方便在报账后进行数据的录入工作,支持日常报销单和差旅费报销单的智能解析、发票管理、人员管理、数据入库与导出等功能。

本软件的开发,旨在提升实验室经费报销效率,减少人工录入错误。

由于本人结束了报账工作,所以将此软件开源,希望能帮到同学们进行日常报账工作。


✨ 功能特性

功能 说明
📄 智能解析 粘贴报销单文本,自动提取预约单号、经费号、发票号、金额、备注等信息
💳 发票管理 自动识别发票明细表,支持多张发票列表展示与金额合计
👥 人员管理 管理实验室成员信息(姓名、年级、学号、银行卡号等)
📦 附件归档 支持选择报销附件,自动压缩为 ZIP 归档
💾 数据入库 报销单和发票信息自动写入 SQLite 数据库
🔍 数据查询 按预约单号、业务号、发票号、经费号等多维度检索
📥 数据导出 查询结果一键导出为 CSV 文件
⚙️ 批量设置 弹窗多选发票行,批量设置所属人(年级 + 人员)
🧠 智能推断 根据报销内容自动推断报销项目类型

🖥️ 效果预览

┌─────────────────────────────────────────────────────────┐
│  实验室报账系统 v1.0                 │
├───────────────────┬─────────────────────────────────────┤
│                   │  单据类型:日常报销单               │
│   1. 粘贴报销单   │  预约单号:03202604210503          │
│                   │  业务号  :YB202604210954           │
│   ┌─────────┐     │  ...                               │
│   │ 粘贴文本 │     │  发票清单:                        │
│   │         │     │  ┌──────────────────────────────┐  │
│   │         │     │  │ 发票号        │ 金额 │ 人员  │  │
│   │         │     │  │ 261120...0941│ 2600 │ 张三  │  │
│   │         │     │  │ 261120...4826│ 2800 │ 张三  │  │
│   └─────────┘     │  └──────────────────────────────┘  │
│   [解析文本 >>]   │  合计:8000.00 元                  │
│                   │  [+ 手动新增发票] [💾 保存入库]    │
└───────────────────┴─────────────────────────────────────┘

🛠️ 技术栈

技术 用途
Python 3 编程语言
tkinter 桌面 GUI 框架
SQLite3 本地关系数据库
PyInstaller 打包为独立 EXE
zipfile / csv 文件归档与数据导出

📂 项目结构

reimbursement-system/
├── src/                      # 源代码
│   ├── main.py               # 主程序入口(核心逻辑 + GUI)
│   └── database_setup.py     # 数据库初始化脚本
├── logo.ico                  # 应用程序图标
├── 示例/                     # 报销单示例文本
│   ├── 1.txt
│   ├── ...
│   └── 7.txt
├── requirements.txt          # 依赖说明
├── 打包说明.txt               # PyInstaller 打包指南
├── 软件架构说明.txt            # 软件架构设计说明
└── README.md                 # 本文件

📖 使用指南

基础流程

  1. 首次运行:启动程序会自动创建 lab_billing_system.db 数据库文件
  2. 管理人员:点击顶部「⚙️ 打开人员库管理」添加实验室成员
  3. 录入报销单
    • 复制报销单文本(从学校财务系统获取)
    • 粘贴到左侧文本框
    • 点击「解析文本 >>」自动提取信息
    • 核对确认右侧提取结果
    • 点击「💾 保存并归档入库」
  4. 查询与导出:点击「📊 数据查询」查看历史记录,支持多维度筛选和 CSV 导出

发票管理

  • 系统自动识别「发票明细」表格中的每一行发票
  • 支持手动新增/删除发票行
  • 可以批量设置发票所属人(年级 + 人员)

每日报销单 vs 差旅费报销单

  • 日常报销单:自动识别"经费号"表格列、发票金额、备注等
  • 差旅费报销单:自动识别出差人姓名作为归属人,不进行发票识别

🔧 常见问题

点击"解析文本"后金额显示为 0? 确认文本中包含 "发票明细" 表格,且金额列有数据。如果发票号在"附言"中而不在表格中,系统会回退提取 20 位发票号,此时金额需要手动填写。

提示 "数据库错误"? 删除目录下的 lab_billing_system.db 文件后重新运行,程序会自动重建。

保存按钮不见了? 将窗口拉大即可。v1.0 已设置最小窗口尺寸 (1000×720)。


🤝 参与贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建特性分支:git checkout -b feature/your-feature
  3. 提交修改:git commit -m 'Add some feature'
  4. 推送分支:git push origin feature/your-feature
  5. 提交 Pull Request

开发规范

  • 遵循 PEP 8 编码规范
  • 函数/变量命名使用英文,用户界面文本使用中文
  • 关键逻辑需添加注释
  • 添加新功能时同步更新测试用例

🚀 想自己打包?

环境要求

  • Python 3.10 或更高版本
  • Windows / macOS / Linux

⚠️ 注意:本软件在 Windows 10/11 下开发和测试,其他平台可能需调整 UI 适配。

1. 克隆 / 下载项目

git clone https://github.com/your-username/reimbursement-system.git
cd reimbursement-system

或直接下载 Release 页面 中的压缩包。

2. 运行程序

cd src
python main.py

3. 打包为 EXE(可选)

pip install pyinstaller
pyinstaller --onefile --noconsole --name 报账系统 --icon=../logo.ico main.py

打包后的 exe 位于 dist/报账系统.exe


📄 许可证

本项目基于 MIT License 开源,详见 LICENSE 文件。


📬 联系方式


💡 如果这个项目对你有帮助,欢迎 ⭐ Star 支持!

About

Laboratory Reimbursement System - 高校报销管理工具

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages