6 天以前 1e123568c2f561013f5636e45dc0db30b17a3517
src/main/java/com/ruoyi/technology/service/TechnologyBomService.java
@@ -1,16 +1,49 @@
package com.ruoyi.technology.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.technology.bean.dto.BomKitCheckDto;
import com.ruoyi.technology.bean.dto.TechnologyBomDto;
import com.ruoyi.technology.bean.vo.BomKitCheckItemVo;
import com.ruoyi.technology.bean.vo.TechnologyBomVo;
import com.ruoyi.technology.pojo.TechnologyBom;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
/**
 * <p>
 * BOM表 服务类
 * </p>
 *
 * @author 芯导软件(江苏)有限公司
 * @since 2026-04-20 10:05:55
 */
import java.util.List;
public interface TechnologyBomService extends IService<TechnologyBom> {
    IPage<TechnologyBomVo> listPage(Page<TechnologyBomDto> page, TechnologyBomDto technologyBomDto);
    List<TechnologyBomVo> listByModel(Long productModelId);
    R add(TechnologyBom technologyBom);
    R update(TechnologyBom technologyBom);
    boolean batchDelete(List<Long> ids);
    R uploadBom(MultipartFile file);
    void exportBom(HttpServletResponse response, Long bomId);
    R copy(TechnologyBom technologyBom);
    /**
     * BOM齐套分析:按需求数量展开BOM,比对可用库存(数量-锁定量),返回各物料需求/可用/缺口
     */
    List<BomKitCheckItemVo> kitCheck(BomKitCheckDto dto);
    /**
     * 齐套缺口生成/累加采购需求(procurement_demand 待处理记录)
     */
    R generateProcurementDemand(BomKitCheckDto dto);
    /**
     * BOM启用/停用;启用时自动停用同产品规格的其它版本
     */
    R changeStatus(Integer id, Integer status);
}