package com.hw.qms.mapper;

import java.util.List;
import com.hw.qms.domain.QmsCheckResultDetail;
import com.hw.qms.domain.QmsCheckResultDetailProject;

/**
 * 质检结果详情Mapper接口
 *
 * @author xins
 * @date 2024-01-23
 */
public interface QmsCheckResultDetailMapper
{
    /**
     * 查询质检结果详情
     *
     * @param checkResultDetailId 质检结果详情主键
     * @return 质检结果详情
     */
    public QmsCheckResultDetail selectQmsCheckResultDetailByCheckResultDetailId(Long checkResultDetailId);

    /**
     * 查询质检结果详情列表
     *
     * @param qmsCheckResultDetail 质检结果详情
     * @return 质检结果详情集合
     */
    public List<QmsCheckResultDetail> selectQmsCheckResultDetailList(QmsCheckResultDetail qmsCheckResultDetail);

    /**
     * 新增质检结果详情
     *
     * @param qmsCheckResultDetail 质检结果详情
     * @return 结果
     */
    public int insertQmsCheckResultDetail(QmsCheckResultDetail qmsCheckResultDetail);

    /**
     * 修改质检结果详情
     *
     * @param qmsCheckResultDetail 质检结果详情
     * @return 结果
     */
    public int updateQmsCheckResultDetail(QmsCheckResultDetail qmsCheckResultDetail);

    /**
     * 删除质检结果详情
     *
     * @param checkResultDetailId 质检结果详情主键
     * @return 结果
     */
    public int deleteQmsCheckResultDetailByCheckResultDetailId(Long checkResultDetailId);

    /**
     * 批量删除质检结果详情
     *
     * @param checkResultDetailIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQmsCheckResultDetailByCheckResultDetailIds(Long[] checkResultDetailIds);

    /**
     * 批量删除质检结果详情项目信息
     *
     * @param checkResultDetailIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQmsCheckResultDetailProjectByCheckResultDetailIds(Long[] checkResultDetailIds);

    /**
     * 批量新增质检结果详情项目信息
     *
     * @param qmsCheckResultDetailProjectList 质检结果详情项目信息列表
     * @return 结果
     */
    public int batchQmsCheckResultDetailProject(List<QmsCheckResultDetailProject> qmsCheckResultDetailProjectList);


    /**
     * 通过质检结果详情主键删除质检结果详情项目信息信息
     *
     * @param checkResultDetailId 质检结果详情ID
     * @return 结果
     */
    public int deleteQmsCheckResultDetailProjectByCheckResultDetailId(Long checkResultDetailId);




    /**
     * 查询质检结果详情
     *
     * @param materialBarcode 物料条码
     * @return 质检结果详情
     */
    public QmsCheckResultDetail selectQmsCheckResultDetailByMaterialBarcode(String materialBarcode);

    /**
     * 查询质检结果批次审核结果数量
     *
     * @param qmsCheckResultDetail 质检结果详情
     * @return 质检结果详情
     */
    public int selectResultDetailQualityCountByResultDetailId(QmsCheckResultDetail qmsCheckResultDetail);

}
