package com.ruoyi.factory.mapper;

import java.util.List;
import com.ruoyi.factory.domain.CFactory;
import com.ruoyi.factory.domain.CMaterialTypeFactory;

/**
 * 车间管理Mapper接口
 *
 * @author ruoyi
 * @date 2024-02-29
 */
public interface CFactoryMapper
{
    /**
     * 查询车间管理
     *
     * @param factoryId 车间管理主键
     * @return 车间管理
     */
    public CFactory selectCFactoryByFactoryId(Long factoryId);

    /**
     * 查询车间管理列表
     *
     * @param cFactory 车间管理
     * @return 车间管理集合
     */
    public List<CFactory> selectCFactoryList(CFactory cFactory);

    /**
     * 新增车间管理
     *
     * @param cFactory 车间管理
     * @return 结果
     */
    public int insertCFactory(CFactory cFactory);

    /**
     * 修改车间管理
     *
     * @param cFactory 车间管理
     * @return 结果
     */
    public int updateCFactory(CFactory cFactory);

    /**
     * 删除车间管理
     *
     * @param factoryId 车间管理主键
     * @return 结果
     */
    public int deleteCFactoryByFactoryId(Long factoryId);

    /**
     * 批量删除车间管理
     *
     * @param factoryIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCFactoryByFactoryIds(Long[] factoryIds);

    /**
     * 批量删除物料类别
     *
     * @param factoryIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCMaterialTypeByFactoryIds(Long[] factoryIds);

    /**
     * 批量新增物料类别
     *
     * @param cMaterialTypeList 物料类别列表
     * @return 结果
     */
    public int batchCMaterialType(List<CMaterialTypeFactory> cMaterialTypeList);


    /**
     * 通过车间管理主键删除物料类别信息
     *
     * @param factoryId 车间管理ID
     * @return 结果
     */
    public int deleteCMaterialTypeByFactoryId(String factoryId);

    /*物料类别列表*/
    List<CMaterialTypeFactory> selectCTypelist();

    /**
     * 校验车间编码是否存在
     * @param factoryNo 编码
     * @return 结果
     */
    CFactory checkFactoryNoUnique(String factoryNo);
}
