1、功能需求简介
在美容院订单管理场景中,当美容顾问调整订单明细时,系统需实现订单总额的实时动态计算。具体需求如下:
在订单明细中添加产品或修改数量时,系统立即通过数组循环遍历所有产品,筛选出非套餐产品并按 "单品价 × 数量" 累加其总价,最终订单总额实时更新为套餐总价与非套餐产品总价之和。
整个过程依托 "自动填写" 功能的数组循环与统计值获取能力,无需人工干预,确保金额计算零误差与实时刷新。自动填写执行逻辑如下图:
2、配置步骤
开始配置:基于【订单表】配置自动填写
本方案基于【订单表】配置自动填写,核心在于通过数组循环遍历订单明细,实时计算套餐与非套餐产品总价之和,实现订单总额的动态更新。
用户在订单明细中单选产品,输入数量后触发自动填写执行。
这里默认先选择产品再填写数量,若要避免用户先填写数量,需进一步做是否已选择产品的验证机制。
节点#1 获取数据统计:统计所选套餐的价格
依据触发时所选的套餐,统计所选套餐的总价。
节点#2 数组循环:订单明细逐条循环
触发时写入的订单明细逐条进入循环,针对每一条订单明细执行后续操作。
节点#3 条件分支: 判断是否为非套餐单品
设置分支条件以实现不同逻辑流转:
- 分支 1(非套餐单品):当操作人选择的产品未包含在已选套餐内时触发;
- 分支 2(套餐产品):针对所选套餐自动生成的产品明细,因系统已默认统计,无需额外操作。
通过条件筛选非套餐单品,为后续批量计算非套餐产品总价做准备。
分支1-节点#4 获取单条数据:查询循环数据的产品信息
依据本次进入循环的订单明细数据,查询所选产品的数据信息,方便后续计算单条数据的合计金额。
分支1-节点#5 设置变量:
为实现循环内单品金额的累计计算,需配置两类变量:
循环内变量-单品小计金额
在每次循环中动态计算当前单品的小计金额:
- 计算逻辑:当前循环产品的 「单品价格」×「订单数量」。
- 作用范围:仅在当前循环内有效。
全局变量-合计金额
通过循环内累加操作,记录所有单品的合计金额:
- 赋值逻辑:历史合计金额 + 本次循环的 "单品小计金额"。
- 作用范围:在整个自动填写流程中持续生效。
通过这种 "临时变量实时计算 + 全局变量累计汇总" 的组合模式,可解决循环内计算结果无法直接传递到循环外的问题,最终实现所有非套餐单品金额的精准累加。
节点#6 回填触发数据:回填订单总额
将套餐总价与非套餐产品总价之和回填至订单总额字段。