新增订单收票付款交货跟进并完善使用升级手册

增加部分付款和部分交货状态、工作台筛选、权限校验、跟进记录及 v4 数据迁移;补充 Windows EXE 构建与验收脚本。附 16 页 PDF 使用升级手册及企业微信详细配置说明、生成脚本和测试截图。验证:76 项回归测试、EXE 浏览器验收与 PDF 逐页校验通过。
This commit is contained in:
reddaniel110
2026-09-16 13:40:43 +08:00
parent bf952196fa
commit 768b4705dc
28 changed files with 3783 additions and 43 deletions
+40 -6
View File
@@ -1,6 +1,6 @@
# 采购订单系统 v3:运行、升级与验收
# 采购订单系统 v4:运行、升级与验收
当前支持采购订单生成、单次内部审批、企业微信群审批通知和公司 Wi-Fi 内手机审批。未接入金额分级、组织架构或第三方电子签章。
当前支持采购订单生成、单次内部审批、企业微信群审批通知、公司 Wi-Fi 内手机审批,以及付款、收票和交货跟进。未接入金额分级、组织架构或第三方电子签章。
## 新电脑首次运行
@@ -15,7 +15,7 @@
多台电脑协作时,在一台固定电脑运行服务,其他电脑访问这台主机的局域网 IP 和实际端口。不要每人启动一套独立 EXE,否则各自数据库互不相通。关闭服务主机的程序会使其他电脑暂时无法访问。
已有 PyInstaller 配置可继续用于重新打包;本次源码修复不等于旧 EXE 已更新。运行新版 EXE 前须重新构建并验收。服务若经过 HTTPS 代理,可设置 `PO_HTTPS=1` 启用 Secure Cookie;纯 HTTP 局域网环境不要设置此项。
单文件 EXE 位于 `dist/博特维采购订单系统_单文件版.exe`,打包步骤见 README。使用时无需安装 Python,双击默认自动打开浏览器;首次初始化口令位于 EXE 同目录的 `instance/setup.token`。可设置 `PO_OPEN_BROWSER=0` 禁用自动打开浏览器。旧 EXE 不会因源码更新而自动升级。服务若经过 HTTPS 代理,可设置 `PO_HTTPS=1` 启用 Secure Cookie;纯 HTTP 局域网环境不要设置此项。
## 升级已有数据
@@ -41,6 +41,26 @@
## 操作规则
### 管理员兼任审批员
管理员账号自带审批权限,可以由同一个人兼任管理员和审批员,无需另建审批账号。管理员可以审批其他账号制的订单;自己制的订单仍需另一位审批人员完成审批。
### 付款、收票和交货跟进
- 审批通过后,在订单详情的“付款与交货跟进”中登记。制单员只维护本人订单的预付款标记、收票情况、交货情况和采购跟进备注;管理员也可维护。审批员及管理员可登记付款状态、实际付款日期和付款备注。
- 收票为未收票 / 已收票;付款为未付款 / 部分付款 / 已付款;交货为未交货 / 部分交货 / 已交货。付款和交货独立维护,因此已付款但未交货、交货后仍有尾款等情况都可记录。
- “已收票”指公司已收到供应商发票。“已收票待付款”统计已收票且付款状态为未付款或部分付款的有效订单;“需预付款”统计已标记提前付款且未付清的有效订单。预付款标记由制单员根据实际安排维护。
- 部分付款、部分交货是整单状态,不计算逐笔付款金额或逐项到货数量;具体批次、预付款比例或尾款说明可填写在备注中。登记部分付款或已付款时须填写实际付款日期。
- 工作台显示各类订单数量及最近 12 张已审批订单,点击分类可查看完整筛选列表。统计遵守用户可见范围,只计审批通过的订单;各分类可能重叠。Excel 台账包含对应状态、日期、备注和待核对提示。
- 修改保留操作人、时间及前后状态。回退已收票、已交货或付款状态时须填写更正原因;旧页面提交会要求刷新,避免覆盖他人刚保存的内容。
- 跟进更新不修改审批结论、审批章或已归档 PDF。复制订单时清空跟进信息;作废后保留跟进历史并停止修改。发起变更重审后保留已发生的事实,再次提交后提示对应经办人重新核对;核对前不将旧标记计入对应完成或待付款分类。
### v3 升级到 v4
先关闭旧程序并备份原数据目录,再在原服务电脑上替换 EXE。启动时会自动备份数据库并增加跟进字段,保留账号、密码、审批、日志和归档 PDF。旧订单的付款、收票和交货情况显示“未登记”,由经办人补录,避免把未记录的历史情况误认为未付款或未交货。更新只需在服务主机进行,其他电脑和手机继续使用原内网地址。
### 制单和审批
- 制单员只可访问自己的订单,审批员和管理员可查看订单全集;读取、复制、PDF、台账和统计遵守一致的数据范围。
- 制单员及管理员可制单。审批员一次确认即可完成审批,但不能审批自己制的订单;管理员也遵守分工限制。
- 驳回只能由当前审批环节的合格人员执行,并必须填写原因。
@@ -123,13 +143,27 @@ python tools/browser_smoke.py
## 本轮验证结果(2026-09-16)
- 65 项隔离回归用例全部通过,覆盖认证、权限、审批、精度、导入、账号维护、并发、迁移、备份恢复,以及通知事务一致性、失败重试、过期跳过、并发领取、凭据保护和登录回跳。
- 76 项隔离回归用例全部通过,覆盖认证、权限、审批、精度、导入、账号维护、并发、迁移、备份恢复、付款交货跟进,以及通知事务一致性、失败重试、过期跳过、并发领取、凭据保护和登录回跳。
- Node.js 金额预览验证通过:逐行舍入合计、半分四舍五入、四位单价及非法数值处理。
- Microsoft Edge 无界面浏览器完成首次设置、用户创建、从订单链接登录及首次改密、采购单和委外单的手机尺寸单次审批、PDF 下载、通知配置和中文 XLSX 原生日期导入,未发现页面脚本错误。320、390、768 像素宽度下工作台、列表及订单页无整页横向溢出;宽表格可在卡片内滑动。
- 最新浏览器记录位于 `tools/out/ui-check-yiosqkq7/`。模拟发送收到 1 条测试消息与 2 条批准结果,2 条已经完成的待办被跳过;未发出真实企业微信消息。
- 源码浏览器记录位于 `tools/out/ui-check-xiftbuej/`。模拟发送收到 1 条测试消息与 2 条批准结果,2 条已经完成的待办被跳过;未发出真实企业微信消息。
- PDF 最终样张已逐页检查。修正单价精度、大写金额尾缀、签署区换行和印章排字;调整委外规格列后,30 行验收样本为 2 页,大小写合计保持在同一页。
- Python 编译检查及 `git diff --check` 通过。新增 v2 到 v3 升级验证、旧审核入口保护、并发审批单次归档、PDF 生成失败回滚与单枚采购专用章检查。
- 去掉章内审批员和日期后,两类订单的审批归档用例及手机浏览器流程再次通过;已检查页面预览和 PDF 章面,章外签署信息与审批记录保留。
- 章面号码为 `3205070994140`,公司名按参考图改为细长仿宋字形,号码缩小并收紧排列。两类订单的审批归档用例及手机浏览器流程通过,页面与 PDF 样张已经渲染检查;图章放大图位于上述浏览器记录目录的 `seal-detail.png`。订单税号保持原值。
验证使用临时数据,没有对实际业务数据库执行升级。本轮交付为源码修改,尚未进行 EXE 重新打包或真实局域网多机验收。企业微信测试使用模拟发送,真实 Webhook、公司 Wi-Fi 和手机企业微信客户端仍须按上述接入步骤现场联调;复杂审批规则和第三方签章平台尚未接入。
### v4 付款交货跟进及 EXE 验收(2026-09-16)
- 新增 10 项跟进用例及 1 项 v3 升级用例,76 项回归全部通过。核对了角色与订单权限、越权字段、CSRF、旧页面冲突、更正原因、工作台分类、台账导出、复制清空、变更后分角色核对和归档 PDF 保持不变。
- v3 升级到 v4 前自动备份,保留账号会话版本、审批状态、订单版本号、历史 PDF 及摘要;历史跟进状态初始化为未登记,重复启动不重复迁移。
- 新版单文件 EXE 位于 `dist/v4/博特维采购订单系统_单文件版.exe`。实际使用 EXE 完成两类订单的建单审批、制单员跟进、审批员部分及全部付款登记、工作台数量及筛选检查,320、390、768 像素宽度下无整页横向溢出。
- EXE 测试记录位于 `tools/out/ui-check-ni65n2lj/`,包含工作台、手机跟进表单和 PDF 样张。重启后付款交货标记保留,正式 PDF 摘要保持一致,通知发送保持关闭;全部测试仅使用临时数据。
### v3 Windows EXE 验收(2026-09-16)
- 使用独立 Python 3.11.9 / PyInstaller 6.22.0 环境,按项目依赖范围生成 Windows 64 位单文件 EXE。打包环境依赖检查通过;使用相同运行库版本的 65 项回归用例全部通过。
- 对 EXE 的独立副本实际执行首次设置、账号创建及首次改密、采购单和 30 行委外单的手机尺寸审批、正式 PDF 下载、中文 XLSX 日期导入、模板和台账下载;静态资源加载正常,无页面脚本错误。
- EXE 在中文路径下、不同工作目录及不含 Python 的 PATH 中启动成功,数据保存在 EXE 同目录。关闭并重启后,登录仍有效,两份归档 PDF 的 SHA-256 与重启前一致;数据库完整性检查通过。
- 测试记录及 PDF 样张位于 `tools/out/ui-check-vxzzkrvg/`。测试副本始终关闭企业微信发送,通知队列为空;测试进程已停止,交付的 EXE 目录不含测试数据库。
验证使用临时数据,没有对实际业务数据库执行升级。EXE 已完成本机验收,尚未进行真实局域网多机验收。企业微信源码测试使用模拟发送,EXE 测试关闭通知;真实 Webhook、公司 Wi-Fi 和手机企业微信客户端仍须按上述接入步骤现场联调;复杂审批规则和第三方签章平台尚未接入。