Skip to content

方案设计:配料单自动拆解

← 返回场景概览 | 上一阶段:需求探索 → | 下一阶段:开发资产 →


方案概览

本方案设计了一套完整的配料单自动拆解系统,通过多级拆解算法、配方管理、库存检查,实现从菜品订单到原料需求的自动计算。

1. 多级拆解算法

1.1 拆解流程

1.2 拆解规则

拆解层级:

  • 一级:菜品 → 配料(如:宫保鸡丁 → 鸡胸肉、花生、辣椒)
  • 二级:配料 → 原料(如:鸡胸肉 → 整鸡)
  • 三级:原料 → 基础原料(如:整鸡 → 活鸡)

数量计算:

typescript
function calculateMaterialQuantity(
  dishQuantity: number,
  recipe: Recipe,
  lossRate: number = 0.05  // 默认损耗率 5%
): MaterialRequirement[] {
  const requirements = [];
  
  for (const ingredient of recipe.ingredients) {
    // 计算基础数量
    const baseQuantity = dishQuantity * ingredient.quantity;
    
    // 考虑损耗率
    const actualQuantity = baseQuantity * (1 + lossRate);
    
    requirements.push({
      materialId: ingredient.materialId,
      materialName: ingredient.materialName,
      quantity: actualQuantity,
      unit: ingredient.unit
    });
  }
  
  return requirements;
}

1.3 损耗率管理

损耗率设置:

  • 不同原料有不同的损耗率
  • 损耗率可配置
  • 损耗率根据历史数据自动调整

损耗率规则:

原料类型损耗率说明
生鲜肉类5-10%清洗、处理损耗
蔬菜10-20%清洗、去根损耗
干货2-5%少量损耗

2. 配方管理

2.1 配方结构

配方定义:

typescript
interface Recipe {
  id: string;
  dishId: string;              // 菜品ID
  dishName: string;            // 菜品名称
  version: string;              // 配方版本
  ingredients: Ingredient[];    // 配料列表
  status: 'draft' | 'approved' | 'archived';
  createdAt: Date;
  updatedAt: Date;
}

interface Ingredient {
  materialId: string;           // 原料ID
  materialName: string;         // 原料名称
  quantity: number;             // 数量
  unit: string;                 // 单位
  lossRate?: number;            // 损耗率
}

2.2 配方版本管理

版本规则:

  • 配方变更创建新版本
  • 旧版本保留,可追溯
  • 当前使用版本标记

版本审核:

  • 配方变更需要审核
  • 审核通过后才能使用
  • 审核记录完整

3. 库存检查

3.1 库存检查规则

检查流程:

  1. 拆解后获取原料需求列表
  2. 查询当前库存
  3. 计算可用库存(当前库存 - 已预留)
  4. 比对需求与可用库存
  5. 生成采购需求(不足部分)

3.2 采购需求生成

需求规则:

  • 库存不足自动生成采购需求
  • 考虑安全库存
  • 考虑采购周期
  • 考虑最小采购量

4. 数据模型设计

4.1 配方(Recipe)

typescript
interface Recipe {
  id: string;
  dishId: string;
  dishName: string;
  version: string;
  ingredients: Ingredient[];
  status: 'draft' | 'approved' | 'archived';
  createdAt: Date;
  updatedAt: Date;
}

4.2 原料需求(MaterialRequirement)

typescript
interface MaterialRequirement {
  id: string;
  orderId: string;             // 订单ID
  materialId: string;          // 原料ID
  materialName: string;         // 原料名称
  requiredQuantity: number;    // 需求数量
  availableQuantity: number;    // 可用库存
  shortageQuantity: number;     // 缺货数量
  unit: string;                 // 单位
  status: 'sufficient' | 'insufficient';
  createdAt: Date;
}

5. 关键业务规则总结

5.1 拆解规则

  • 多级拆解:菜品 → 配料 → 原料
  • 数量计算:考虑损耗率
  • 自动检查库存

5.2 配方规则

  • 配方版本管理
  • 配方审核流程
  • 配方变更可追溯

5.3 采购规则

  • 库存不足自动生成采购需求
  • 考虑安全库存和采购周期
  • 采购需求审批流程

下一步:开发资产

在开发资产阶段,我们将:

  1. 创建 Cursor Skills(业务规则、数据模型)
  2. 创建 PROMPT 模板(需求调研、方案设计)
  3. 创建代码模板(API 接口、前端组件)

查看开发资产 →

基于 AI 辅助开发,快速、灵活、可靠