Files
OMS/app/ticket/docs/workflow_summary.md
chenping 61783b7d01 1. 【新增】售后单售后原因类型支持搜索
2. 【新增】手工创建订单折扣可输入正数

3. 【优化】盘点申请单确认

4. 【修复】采购退货单模拟出库失败问题

5. 【新增】订单金额客户实付与结算金额

6. 【优化】仓库发货统计报表物料名称显示

7. 【优化】自有仓储虚拟发货逻辑

8. 【修复】基础物料分类管理问题
2026-04-01 11:59:17 +08:00

6.1 KiB

订单赠品审批流程实现总结

实现概述

本次开发完成了订单编辑添加赠品后的审批流程业务逻辑,包括完整的审批流程管理、状态跟踪、记录管理等功能。

核心功能模块

1. 审批流实例控制器 (ticket_ctl_admin_workflow_case)

主要功能:

  • 审批实例列表管理
  • 审批页面展示
  • 审批处理逻辑
  • 审批流程详情查看
  • 取消和重新提交审批
  • 导出审批记录

关键方法:

  • audit($id) - 审批页面
  • do_audit() - 处理审批
  • create_gift_approval() - 创建赠品审批实例
  • detail($id) - 审批详情
  • cancel_approval() - 取消审批
  • resubmit_approval() - 重新提交审批

2. 审批流业务逻辑类 (ticket_workflow_case)

主要功能:

  • 数据验证和保存
  • 审批流程处理
  • 节点流转管理
  • 审批记录管理
  • 订单状态更新

关键方法:

  • checkAuditParams() - 验证审批参数
  • processAudit() - 处理审批流程
  • createGiftApprovalCase() - 创建赠品审批实例
  • getNextNode() - 获取下一个审批节点
  • getApprovalRecords() - 获取审批记录

3. 订单赠品审批服务类 (ticket_service_order_gift_approval)

主要功能:

  • 触发审批流程
  • 检查审批状态
  • 批量处理
  • 统计分析
  • 自动审批

关键方法:

  • triggerGiftApproval() - 触发赠品审批
  • checkOrderApprovalRequired() - 检查订单是否需要审批
  • getOrderApprovalStatus() - 获取订单审批状态
  • getUserPendingApprovals() - 获取用户待审批列表
  • getApprovalStatistics() - 获取审批统计

4. 订单赠品管理控制器 (ticket_ctl_admin_order_gift)

主要功能:

  • 赠品添加页面
  • 审批状态查看
  • 待审批列表
  • 统计分析
  • 批量操作

数据库表关系

核心表结构

  1. ticket_workflow_template - 审批流模板表

    • 定义审批流程模板
    • 支持不同场景类型
    • 版本管理
  2. ticket_workflow_node - 审批流节点表

    • 定义审批流程节点
    • 节点顺序和审批人配置
    • 支持多种审批人类型
  3. ticket_workflow_case - 审批流实例表

    • 具体的审批实例
    • 关联业务单据
    • 状态跟踪
  4. ticket_workflow_record - 审批记录表

    • 记录每个节点的审批结果
    • 审批意见和操作时间
    • 完整的审批轨迹

与订单系统的集成

  • ome_orders - 订单主表

    • 通过 is_not_combine 字段控制订单是否可审核
    • 审批通过后恢复订单可审核状态
  • ome_order_objects - 订单子单表

    • 存储赠品信息 (obj_type = 'gift')
    • 关联到具体订单
  • ome_order_items - 订单行明细表

    • 存储赠品的详细明细信息

审批流程逻辑

1. 创建审批实例流程

graph TD
    A[订单编辑添加赠品] --> B[检查订单是否存在]
    B --> C[检查是否已有待审批实例]
    C --> D[检查审批模板]
    D --> E[创建审批实例]
    E --> F[设置订单不可审核状态]
    F --> G[分配第一个审批人]
    G --> H[审批流程启动]

2. 审批处理流程

graph TD
    A[审批人查看审批] --> B[验证审批权限]
    B --> C[记录审批操作]
    C --> D{审批动作}
    D -->|同意| E[检查是否有下一节点]
    D -->|拒绝| F[结束审批流程]
    D -->|退回| G[取消审批流程]
    E -->|有| H[流转到下一节点]
    E -->|无| I[审批完成]
    I --> J[更新订单状态]
    H --> K[分配新审批人]

3. 状态流转图

pending → processing → approved
    ↓         ↓           ↓
  cancelled ← ← ← ← ← ← ← ←

关键业务规则

1. 审批权限控制

  • 只有指定的审批人才能处理审批
  • 提交人可以取消或重新提交审批
  • 审批人不能审批自己提交的申请

2. 订单状态管理

  • 有待审批时,订单设置为不可审核状态
  • 审批通过后,恢复订单可审核状态
  • 审批取消后,恢复订单可审核状态

3. 审批流程控制

  • 支持多级审批流程
  • 每个节点必须审批完成后才能进入下一节点
  • 支持审批退回和取消操作

4. 数据完整性

  • 所有审批操作都有详细记录
  • 支持审批轨迹追溯
  • 防止重复审批

扩展功能

1. 多级审批支持

  • 支持配置多个审批节点
  • 支持不同审批人类型(用户、角色、部门)
  • 支持条件审批(根据订单金额等条件)

2. 审批统计功能

  • 审批通过率统计
  • 审批时效分析
  • 审批人工作量统计

3. 审批提醒功能

  • 待审批提醒
  • 审批超时提醒
  • 审批结果通知

4. 批量操作功能

  • 批量检查审批状态
  • 批量导出审批记录
  • 批量清理过期记录

技术特点

1. 模块化设计

  • 清晰的模块划分
  • 松耦合的架构设计
  • 易于扩展和维护

2. 数据安全

  • 完整的权限控制
  • 数据验证和校验
  • 操作日志记录

3. 性能优化

  • 合理的数据库索引
  • 分页查询支持
  • 缓存机制

4. 用户体验

  • 友好的界面设计
  • 清晰的状态提示
  • 便捷的操作流程

部署和使用

1. 数据库配置

  • 确保相关表已创建
  • 配置正确的数据库连接
  • 设置适当的权限

2. 审批模板配置

  • 创建赠品审批模板
  • 配置审批节点和审批人
  • 设置审批流程规则

3. 权限配置

  • 配置审批相关权限
  • 设置审批人角色
  • 配置操作权限

4. 集成测试

  • 测试审批流程完整性
  • 验证数据一致性
  • 检查性能表现

总结

本次开发实现了完整的订单赠品审批流程系统,包括:

  1. 完整的审批流程管理 - 从创建到完成的完整流程
  2. 灵活的状态管理 - 支持多种审批状态和操作
  3. 详细的记录跟踪 - 完整的审批轨迹和操作日志
  4. 友好的用户界面 - 清晰的操作界面和状态显示
  5. 强大的扩展能力 - 支持多种扩展功能和定制需求

该系统为订单管理提供了完善的审批控制机制,确保了业务操作的规范性和可追溯性。