首页产品和服务企业内部采购管理企业采购管理平台V1.4.3发布

企业采购管理平台V1.4.3发布

分类企业内部采购管理时间2026-01-21 16:12:23发布chinapao浏览52
摘要:项目:企业内部采购平台当前版本:V1.4.3一、项目简介本项目是一个面向企业内部的轻量采购系统,包含“前台商城 + 后台管理”两部分:1 员工在前台浏览商品、加入购物车并下单;2 订单进入“审批流”后由采购/财务等角色在后台审批;3 支持售后申请与采购侧处理;4 集成企业微信(WeCom)用于登录与通知。二、技术栈与运行形态- 语言:PHP(无框架,纯 PHP 文件路由)- 数据库:MySQL(PDO)- 前端:原生 HTML + CSS(/public/assets/css/style...

项目:企业内部采购平台

当前版本:V1.4.3


一、项目简介

本项目是一个面向企业内部的轻量采购系统,包含“前台商城 + 后台管理”两部分:

1) 员工在前台浏览商品、加入购物车并下单;

2) 订单进入“审批流”后由采购/财务等角色在后台审批;

3) 支持售后申请与采购侧处理;

4) 集成企业微信(WeCom)用于登录与通知。


二、技术栈与运行形态

- 语言:PHP(无框架,纯 PHP 文件路由)

- 数据库:MySQL(PDO)

- 前端:原生 HTML + CSS(/public/assets/css/styles.css + /public/assets/css/admin.css)

- 会话:PHP Session(可配置 session_name)

- 通知:企业微信 API(src/wecom.php)+ 站内通知表 notifications

- 数据库迁移:src/db.php(启动时 run_migrations),并提供 /admin/setup.php 一键执行 schema.sql


三、目录结构(关键)

- public/                       Web 根目录(前台/后台入口都在这里)

  - index.php                   前台首页:商品列表/分类筛选/搜索

  - product.php                 商品详情

  - cart.php                    购物车

  - checkout.php                下单:门店、地址、采购原因、备注、报损、重复拦截、拆单、创建订单

  - order_success.php           下单成功页(支持多订单 ids)

  - user.php                    用户中心(订单/通知/售后入口等)

  - after_sale.php              用户侧售后申请与沟通

  - login.php / logout.php      企业微信登录/退出

  - admin/                      后台管理入口

    - index.php                 Dashboard

    - orders.php                订单审批列表(含站内通知、审批操作)

    - order_detail.php          订单详情/审批/驳回/转交(含审批节点、旧品报损信息、收货信息)

    - orders_query.php          订单查询

    - orders_export.php         导出

    - products.php              商品管理

    - product_new.php/edit.php  商品新增/编辑

    - categories.php            分类管理(含“分类绑定审批流”)

    - stores.php                门店管理(含重复下单拦截开关、CSV 导入)

    - after_sales.php           售后管理(状态更新、回复、附件)

    - audit_logs.php            审计日志

    - permissions.php           审批流版本/节点配置(含必填理由开关)

    - wecom.php                 企业微信配置

    - site_config.php           站点配置(标题/品牌等)

    - setup.php                 数据库初始化/迁移辅助

- src/

  - db.php                      PDO 连接、迁移、ensure_* 建表/加列

  - util.php                    通用工具:CSRF、站点配置、审计、审批流、通知、图片处理、UI 组件(admin_nav/render_footer)

  - auth.php                    登录态、角色/权限、后台访问控制(含“仅审批用户”逻辑)

  - wecom.php                   企业微信:token、SSO、消息通知

- db/schema.sql                 全量建表 SQL(用于初始化)

- scripts/                      脚本(自动确认收货/早期迁移/初始化 SQL)


四、核心业务流程(人话版)


4.1 登录与权限

- 登录:通过企业微信 code 换取用户信息,落库 users(若不存在则创建),写入 session。

- 角色:users.role(admin/procurement/finance/user),并支持 user_groups 里的 approver 组把普通用户提升为“仅审批后台访问”。

- 后台访问:auth.php 中 can_access_admin_backend() 和 is_approver_only_user() 控制。


4.2 下单(含重复拦截、报损、按审批流拆单)

checkout.php 负责下单,关键点:

- 采购原因:必填(purchase_reason)

- 定制备注:某些分类 require_remark=1 时,备注必填且限制 200 字

- 报损采购:purchase_type=damage 时必须填旧品名称/报损原因并上传旧品图片(生成 200/800 缩略图)

- 重复下单拦截:门店 enable_duplicate_intercept=1 时,检测近 3 个月同门店同商品下单;需要二次确认原因 duplicate_confirm_reason

- 按分类审批流拆单:商品分类可绑定 category_approval_flow_version_id;同一购物车会按“审批流版本”拆成多张 orders


4.3 审批流(可配置、支持转交、支持必填理由)

审批流数据模型:

- approval_flow_versions:审批流版本(可激活一个版本)

- approval_flow_nodes:审批节点(顺序、审批人类型、审批人范围、通过/驳回理由是否必填)

- order_approval_steps:订单实例化后的审批步骤(pending/waiting/approved/rejected)

核心逻辑在 util.php 的 approval_flow_*:

- approval_flow_init_order:按订单的 approval_flow_version_id 初始化 steps

- approval_flow_approve_current / approval_flow_reject_current:更新当前节点、推进/终止流程,写入 order_status_history,并在完成时把 orders.status 置为“已确认”

- approval_flow_transfer_current:把当前 pending 节点的 approver 直接改为指定 userid,实现“转交”

- approval_flow_notify_step:对当前节点的审批人推送站内通知 + 企业微信通知(无后台权限的会跳过并写审计)


4.4 售后

- 用户侧:after_sale.php 可创建售后、上传附件、追加沟通消息

- 采购侧:admin/after_sales.php 可更新状态、回复消息、上传附件

- 通知:创建售后时通知指定的 approval_notify_userids;采购回复/状态变更会通知订单用户


五、系统流程图(Mermaid)


5.1 下单到审批(含拆单)

```mermaid

%%{init: {'theme':'dark','themeVariables': {'fontFamily':'ui-sans-serif, system-ui','primaryColor':'#1f2937','primaryTextColor':'#e5e7eb','primaryBorderColor':'#374151','lineColor':'#9ca3af','secondaryColor':'#111827','tertiaryColor':'#0b1220'}}}%%

flowchart TD

  A[用户登录] --> B[加入购物车]

  B --> C[checkout 提交]

  C --> D{校验}

  D -->|采购原因必填/备注校验| E[通过]

  D -->|失败| X[提示错误并停留]

  E --> F{报损?}

  F -->|是| G[校验旧品信息+图片]

  F -->|否| H[进入重复下单检测]

  G --> H

  H --> I{门店开启重复拦截?}

  I -->|否| K[按审批流版本分组拆单]

  I -->|是| J{近3个月重复?}

  J -->|否| K

  J -->|是| L[二次确认原因必填]

  L --> K

  K --> M[创建 orders + order_items + history]

  M --> N[初始化 order_approval_steps]

  N --> O[通知首节点审批人]

  O --> P[进入后台待审批列表]

```


5.2 审批节点推进

```mermaid

%%{init: {'theme':'dark','themeVariables': {'fontFamily':'ui-sans-serif, system-ui','primaryColor':'#1f2937','primaryTextColor':'#e5e7eb','primaryBorderColor':'#374151','lineColor':'#9ca3af','secondaryColor':'#111827','tertiaryColor':'#0b1220'}}}%%

stateDiagram-v2

  [*] --> 待审批: 下单/初始化步骤

  待审批 --> 待审批: 通过当前节点(推进到下一个节点)

  待审批 --> 已确认: 最后节点通过(订单生效)

  待审批 --> 已驳回: 任一节点驳回

  待审批 --> 待审批: 转交(改当前节点审批人为指定 userid)

  已确认 --> 已发货: 录入物流后(后台/待补)

  已发货 --> 已完成: 7天自动确认收货(scripts/auto_confirm.php)

  已驳回 --> [*]

  已完成 --> [*]

```


六、数据库概览(关键表)

- users:企业微信用户(userid/name/role/department)

- stores:门店(name/invoice_title/enable_duplicate_intercept)

- categories:分类(require_remark/category_approval_flow_version_id)

- products/product_specs/product_images/product_details:商品、规格、图片、详情

- orders:订单主表(status、金额、地址快照、采购原因、重复确认原因、审批流版本与当前节点、报损字段、物流字段等)

- order_items:订单明细

- order_status_history:状态变更与节点历史(含转交/理由)

- approval_flow_versions / approval_flow_nodes:审批流配置

- order_approval_steps:订单实例审批步骤

- notifications:站内通知

- after_sales / after_sales_messages / after_sales_attachments:售后

- audit_logs:审计日志

- schema_migrations:迁移记录


七、部署与初始化(基于现有代码)

1) 配置数据库连接

   - 优先用环境变量:DB_HOST / DB_NAME / DB_USER / DB_PASS

   - 或直接编辑 config/config.php(不建议在文档中记录明文密码)

2) 初始化数据库(任选其一)

   - 方式A:访问 /admin/setup.php(管理员登录后)点击“执行建表语句”

   - 方式B:命令行执行 scripts/init_db.php(会执行 db/schema.sql 的建表语句)

3) uploads 目录

   - /public/uploads 需要可写,setup.php 提供“一键创建”

4) 企业微信配置

   - 在后台“系统 -> 企业微信配置”写入 corp_id、corp_secret、agent_id 等(存入 settings/app_cache)


八、版本迭代记录(按迁移/脚本时间线)


2025-??(早期)

- scripts/migrate_001_add_shipping.php:orders 增加 express_company / tracking_no(后续迁移中已纳入)


2025-12-25

- 20251225_00:settings/app_cache(配置与缓存)

- 20251225_01:product_images 增加 sort_order(图片排序)

- 20251225_02:orders 增加地址快照字段、采购原因、二次确认原因、物流字段、关键时间戳

- 20251225_03:stores 增加 enable_duplicate_intercept(重复下单拦截开关)

- 20251225_04:售后消息/附件表(after_sales_messages/after_sales_attachments)

- 20251225_05:audit_logs 审计日志表

- 20251225_06:order_duplicate_details(重复下单检测结果落库)

- 20251225_07:订单状态英文 -> 中文迁移

- 20251225_08:售后 type/status 英文 -> 中文迁移

- 20251225_09:user_groups + approver 组(“仅审批用户”支持)

- 20251225_10:可配置审批流版本/节点 + order_approval_steps 实例化(默认采购+财务两节点)

- 20251225_11:categories.require_remark + orders.remark(定制类备注)


2025-12-29

- 20251229_00:订单采购类型与报损信息(purchase_type/old_item_name/damage_reason + order_damage_images)

- 20251229_01:notifications 站内通知表


2026-01-12

- 20260112_00:products.need_damage_confirm(新购时提示“是否需要报损”)


2026-01-13

- 20260113_00:审批节点“通过/驳回理由必填”配置(require_approve_note/require_reject_note)

- 20260113_00:categories 增加 category_approval_flow_version_id(分类绑定审批流,为拆单提供依据)


九、当前开发情况(基于现有代码可见能力)

已具备:

- 前台:商品浏览、购物车、下单(含重复拦截、报损、备注校验、按审批流拆单)

- 后台:订单审批(通过/驳回/转交)、订单详情、查询导出、商品/分类/门店管理、售后管理、审计日志、审批流配置、站点/企业微信配置、数据库初始化

- 通知:站内通知 + 企业微信通知(审批待办、订单驳回/确认、售后相关)

- 自动确认:发货后 7 天自动将订单置为已完成(scripts/auto_confirm.php)


建议接下来的开发方向(按优先级)

- P0:补齐“发货/物流录入”后台能力(对应 orders.express_company/tracking_no/shipped_at/status 维护)

- P0:把前台 index.php 中“直接输出 DB 报错堆栈”的展示改为可控提示(避免泄露环境信息)

- P1:库存/规格库存的出入库与锁库存策略(目前偏静态展示)

- P1:更细的权限粒度与审批人范围(部门/岗位/动态规则)

- P2:审计日志与通知的检索、归档与性能优化(分页/索引)



HelloVM-AI驱动的新一代IT技术工作室版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

关于我们 企业内部采购平台更新日志