博特维采购订单管理系统

苏州博特维智能科技有限公司 · 本地采购订单管理系统(采购单 / 委外生产订单)

制单 → 主管审核 → 经理批准 → 导出 PDF 的全流程本地化工具,按贵司现有 Excel 单据模板套打。


功能特性

  • 两种单据:采购单、委外生产订单共用同一套数据,按原模板版式分别套打。
  • 两级审核:制单员提交 → 主管审核 → 经理批准,每个动作写入审核记录,可追溯、可驳回。
  • Excel 导入明细:编辑页上传 .xls / .xlsx,自动识别表头(代码/规格/单位/数量/单价/交期/备注),行数不限,PDF 自动分页。
  • 供应商库 / 物料库:制单时下拉带入名称、联系人、税号、单价等信息;支持行内编辑、停用/启用、删除,以及 Excel 批量导入(带模板下载)。
  • 金额大写:合计自动转人民币大写(壹万贰仟叁佰肆拾伍元整)。
  • 审核盖章:主管审核前须先「加盖审核章」,服务端二次校验,防止绕过;PDF 渲染红色审核专用章。
  • 历史查询与统计:按单号 / 供应商 / 状态 / 单据类型 / 日期区间筛选;按状态、供应商、月份汇总金额。
  • 台账导出:一键导出全部订单为 Excel。
  • PDF 套打:完全复刻原 Excel 模板版式,草稿/待审核状态带水印防止误用,已批准状态导出无水印正式版。

技术栈

层 技术
后端 Python 3 + Flask 3
ORM SQLAlchemy 2
数据库 SQLite(单文件 po.db,免部署)
PDF reportlab 4(中文套打 + 印章绘制)
Excel openpyxl 3 / xlrd 2
打包 PyInstaller(单文件版 / 文件夹版,免 Python 环境)

目录结构

po_app/
├── app.py                       # 主程序(路由 / 业务逻辑 / 审核流程)
├── models.py                    # 数据库模型(用户 / 订单 / 明细 / 供应商 / 物料)
├── pdf_export.py                # PDF 套打 + 审核章绘制
├── amount_cn.py                 # 金额转人民币大写
├── requirements.txt             # 源码运行依赖
├── 启动.bat                     # 双击即启(源码方式)
├── templates/                   # Jinja2 模板
├── static/                      # CSS / JS / 资源
├── 博特维采购订单系统.spec         # 文件夹版打包配置
├── 博特维采购订单系统_单文件版.spec # 单文件版打包配置
├── 使用说明.md                  # 详细使用手册
├── instance/                    # 运行时数据库(.gitignore 排除,不入库)
├── exports/                     # 导出的 PDF(忽略)
└── uploads/                     # 上传的明细文件(忽略)
tools/                           # 开发期脚本:测试 / 打包验证 / git 推送

仓库仅含源码与配置;数据库、构建产物、运行时数据均经 .gitignore 排除,不入库。

快速开始

三种运行方式任选其一:

  1. 单文件 EXE(推荐分发) po_app/dist/博特维采购订单系统_单文件版.exe,拷贝到任意文件夹双击即用,免 Python 环境。

  2. 文件夹版 EXE(启动最快) 复制 po_app/dist/博特维采购订单系统/ 整个文件夹,双击其中的 exe 秒开。

  3. 源码运行 安装依赖后双击 po_app/启动.bat,或命令行:

    cd po_app
    pip install -r requirements.txt
    python app.py 8080
    

访问地址 http://127.0.0.1:8080;局域网其他电脑把 127.0.0.1 换成宿主机的局域网 IP(需放行 8080 端口)。 EXE 版数据落在 exe 同级的 instance/po.db,备份即复制该文件夹。

初始账号

账号 密码 角色 权限
admin admin123 系统管理员 全部功能,含用户 / 供应商 / 物料维护
maker 123456 制单员 新建、编辑、提交订单
reviewer 123456 主管审核 审核通过或驳回
approver 123456 经理批准 批准后订单生效,可出正式 PDF

⚠️ 正式使用前请在「用户」页改掉默认密码。

业务流程

制单员新建订单 → 填写抬头与明细 → 提交
        ↓
主管审核(通过 / 驳回并填原因)
        ↓
经理批准(通过 / 驳回并填原因)
        ↓
状态 = 已批准 → 导出 PDF(无水印,带审核人姓名与时间)
  • 草稿 / 待审核 / 待批准状态导出的 PDF 带斜向水印,避免误用。
  • 被驳回的订单回到制单员名下,可修改后再次提交。

PDF 套打版式

完全复刻原 Excel 模板:

  1. 公司名 + 单据名称(采购单 / 委外生产订单)
  2. 抬头区:左供方、右需方(含采购单号、采购日期、税点、税号等)
  3. 明细表 9 列:序号 / 物料代码 / 物料规格 / 单位 / 数量 / 含税单价 / 金额 / 交期 / 备注(列宽取自原模板)
  4. 合计:小写 + 人民币大写 + 元整
  5. 备注条款 + 交货地点(苏州工业园区星汉街 5 号腾飞新苏工业坊 B 幢 5 楼 05-06 单元)
  6. 签署区:制单 / 主管审核 / 经理批准(含姓名与时间)+ 双方盖章栏
  7. 页脚:单据类型、单号、页码、打印时间

明细超过一页时自动分页并重复表头,合计与条款跟随在最后一页。

数据文件与备份

文件 说明
instance/po.db SQLite 主数据库,整个文件夹复制即备份
exports/ 导出的 PDF
uploads/ 上传的明细文件

重新打包说明(开发)

# 打包前务必先备份 instance/ 与 exports/,PyInstaller 重建文件夹版会清空 dist
python -m PyInstaller "博特维采购订单系统[_单文件版].spec" --noconfirm --clean

许可

本仓库为苏州博特维智能科技有限公司内部业务系统源码,仅供公司内部使用与维护。

S
Description
No description provided
Readme
1.5 MiB
Languages
Python 74.7%
HTML 18%
CSS 3.7%
PowerShell 1.7%
JavaScript 1.4%
Other 0.5%