gaoluyang
7 天以前 8e4eee5ad4d74e1a4e6ab4de3a9c28000700dce0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package cn.iocoder.yudao.module.mes.service.pro.material;
 
import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderItemRespVO;
 
import java.math.BigDecimal;
import java.util.List;
 
/**
 * MES 物料需求(BOM 展开)Service 接口
 *
 * <p>用于「新增生产计划」「新增生产工单」等尚未生成工单的场景,
 * 按产品 BOM(优先工艺路线 BOM)展开辅料用量,并结合库存、在途采购判断是否充足。</p>
 *
 * @author 超级管理员
 */
public interface MesProMaterialRequirementService {
 
    /**
     * 按产品展开辅料需求明细(含可用库存、是否充足)
     *
     * @param productId 产品编号
     * @param quantity  生产数量
     * @return 辅料需求列表
     */
    List<MesProWorkOrderItemRespVO> getItemListByProduct(Long productId, BigDecimal quantity);
 
    /**
     * 按产品展开每单位成品的叶子物料用量
     *
     * @param productId 产品编号
     * @return 叶子物料 Map:itemId → 每单位成品的需求数量
     */
    java.util.Map<Long, BigDecimal> expandLeafItems(Long productId);
 
}