package com.ruoyi.clMaterial.service;

import java.util.List;
import com.ruoyi.clMaterial.domain.CYlMaterial;

/**
 * 材料管理Service接口
 *
 * @author ruoyi
 * @date 2024-02-28
 */
public interface ICYlMaterialService
{
    /**
     * 查询材料管理
     *
     * @param materialId 材料管理主键
     * @return 材料管理
     */
    public CYlMaterial selectCYlMaterialByMaterialId(Long materialId);

    /**
     * 查询材料管理列表
     *
     * @param cYlMaterial 材料管理
     * @return 材料管理集合
     */
    public List<CYlMaterial> selectCYlMaterialList(CYlMaterial cYlMaterial);

    /**
     * 新增材料管理
     *
     * @param cYlMaterial 材料管理
     * @return 结果
     */
    public int insertCYlMaterial(CYlMaterial cYlMaterial);

    /**
     * 修改材料管理
     *
     * @param cYlMaterial 材料管理
     * @return 结果
     */
    public int updateCYlMaterial(CYlMaterial cYlMaterial);

    /**
     * 批量删除材料管理
     *
     * @param materialIds 需要删除的材料管理主键集合
     * @return 结果
     */
    public int deleteCYlMaterialByMaterialIds(Long[] materialIds);

    /**
     * 删除材料管理信息
     *
     * @param materialId 材料管理主键
     * @return 结果
     */
    public int deleteCYlMaterialByMaterialId(Long materialId);

    /**
     * 校验材料编码是否存在
     * @param cYlMaterial
     * @return
     */
    boolean checkMaterialNoUnique(CYlMaterial cYlMaterial);

    /**
     * 拉取报价实时价格数据
     * @return
     */
    List<CYlMaterial> getBjData();

    /**
     * 删除c_yl_material_bjdata 表数据
     */
    void deleteYlMaterialBjBatch();

    /**
     * 报价实时价格数据保存至 c_yl_material_bjdata 表
     * @param list
     */
    void insertYlMaterialBjBatch(List<CYlMaterial> list);

    /**
     * 更新 c_yl_material_bjdata 表中单价字段
     */
    void updateYlMaterialBjBatch();
}
