PNT PRODUCT REQUIREMENTS

帕恩检测项目管理系统 PRD

全站结构、业务流程、数据模型与权限规则的统一说明。

版本 v3.7更新 2026-09-01当前代码基线
返回系统

一、全站结构思维导图

系统以订单为业务源;开案后生成项目执行载体。报价/订单数据与项目进度数据在项目开始后分离保存。主导航按需加载,刷新保持当前页面或详情标签。

  • 帕恩检测项目管理系统
    • 销售
      • 订单列表
      • 数据看板
      • 回款
      • 认款
      • 新建报价(独立入口)
    • 项目
      • 项目列表
      • 表格/流程视图
      • 测试、报告、认证流程
      • 项目看板
      • 历史记录与提醒
    • 报告
      • 报告列表
      • 编号与报告附件
      • 查询、排序、分页
    • 财务
      • 收款作业
      • 认款录入
      • 绩效统计
      • 回款审批与结案审批
    • 客户
      • 客户列表与分类
      • 客户详情与人员分配
      • 订单/项目关联
    • 方案
      • 产品与检测
      • 国家与认证(共享产品分类)
      • 认证流程图
      • Excel 导入导出与备份
    • 设置(右上角)
      • 系统管理
      • 管理员账号
      • 账号设置
      • 设计规范与本 PRD

二、核心业务流程

新建报价
客户、产品、认证、金额
申请/确认开案
项目经理负责审批
项目执行
人员、样品、测试、认证
收款与结案
回款审批、结案审批

订单与项目状态

对象状态关键规则
订单未开案 → 开案申请中 → 已开案 → 已结案未开案可编辑;开案后进入项目;结案需满足待收为 0 并经财务审批。
项目未开始 → 进行中 → 已完成/已作废未开始保持订单基础数据;正式开始后进度独立保存;普通角色不能撤回开案。
回款未认款 → 申请中 → 已审批/已驳回销售侧认款,财务侧审批;审批后计入已收,驳回可修改或撤销。

三、权限与人员模型

三层权限判断

板块查看权限 → 数据查看范围 → 页面区域编辑权限 → 业务状态限制。服务端必须重复校验,前端隐藏不等于授权。

数据范围

普通人员默认仅看与自己相关的数据;部门经理可按开关查看本部门同级及下属;管理员与系统管理员可查看全部。

固定岗位 ID

岗位使用固定英文 ID,中文名称仅为显示文案。支持多角色、单部门;经理身份由“岗位角色 + 部门经理”动态组合,不创建重复业务角色。

编辑区域

按页面功能区配置基础策略与个人覆盖。个人覆盖优先于部门覆盖,再继承角色/页面默认;不绕过数据相关性和状态限制。

固定岗位

销售 客服 项目工程师 认证工程师 检测工程师 会计 财务 人事 质量工程师 验厂工程师

四、数据与技术架构

数据存储说明
订单、项目quote_records SQLite 表完整记录、项目进度、人员、财务与历史信息按记录保存。
客户customers SQLite 表客户简称、全称、创建人、关联人员与关联订单/项目。
认款录入payment_entries SQLite 表金额、付款方、收款方、回执、时间和认款状态;旧 JSON 仅作迁移备份。
用户与方案库app_state SQLite 表用户、部门、角色、板块权限、页面区域权限和方案库状态;管理员凭据使用独立键隔离保存。
浏览器状态localStorage仅登录状态、当前页面、详情标签和界面偏好;不作为业务数据源。

两个工作树使用独立 SQLite。默认部署只上传程序文件,不覆盖服务器业务数据;数据库迁移必须先备份、校验数量和字段,再切换读写。

五、交互与设计规范

导航

主导航与二级导航统一使用按钮/标签样式,无默认下划线;新页面从设置或对应模块入口进入,刷新保持当前页面。

表格

支持排序、查询、分页、横向滚动;可编辑表格单击选中、快速双击编辑,Delete / Backspace 清空选区,点击外部提交编辑;安全字段支持 Excel 多单元格粘贴和拖拽填充。

方案分类

产品与认证共用同一产品分类主数据。认证选择区按国家、分类、认证项目三级折叠展示;同名分类在不同国家保持独立展开状态。

弹窗与附件

弹窗居中、窄屏可滚动;文件列表支持多文件、粘贴、删除和压缩;图片按既定长边规则处理。

反馈

慢请求显示加载提示;保存失败显示用户可读错误;危险操作使用确认或倒计时;所有业务保存后刷新必须保持。

六、安全与可靠性

身份与权限

服务端会话、密码哈希和 Bearer 鉴权;无效会话返回 401,已登录但越权的读取/写入返回 403。系统管理员兼容单/多角色会话标识。

管理员凭据隔离

账号、手机号、密码与密保从用户/权限聚合中独立保存并校验完整性。仅当前系统管理员本人可从专用入口修改;普通配置保存不能覆盖。账号或密码变更只注销该管理员会话。

数据与恢复

写入仅持有短数据库锁;版本化迁移记录在 schema_migrations。整站恢复点同步保存 SQLite 与受控附件侧车包,恢复后重建索引并校验。

文件与导入

新附件以哈希、MIME、大小、归属和权限元数据管理,文件置于私有受控目录;Excel 导入在解析前限制路径、文件数、解压量和压缩比。

PDF 与本地测试

PDF 在禁网、独立受限进程中限时渲染;本地 CSS/JS 默认不缓存,确保刷新始终使用与本地服务一致的前端版本。

七、验收与发布

  1. 运行 Python 回归测试,覆盖角色、权限、客户、项目历史、方案库、迁移、附件、PDF 和导入安全。
  2. 使用管理员、销售、客服、项目经理、项目工程师、认证工程师、检测工程师、财务账号分别验证可见范围和可编辑区域。
  3. 完整走通“报价→开案→人员分配→项目执行→回款→审批→结案→业绩统计”,至少三轮且每轮修复后重跑。
  4. 发布前仅提交程序,合并到 main,部署脚本默认保留服务器数据并做程序备份。