package com.emr.dao;

import com.emr.entity.Archive_Master;
import com.emr.entity.Emr_Fault_Detail;
import com.emr.entity.Emr_Fault_Vo;

import java.util.List;

public interface Emr_Fault_DetailMapper {
    /**
     * 根据id删除记录
     * @param id
     * @return
     */
    int deleteById(Integer id);

    /**
     * 根据back_flag is null 和archiveDetailId删除记录
     * @param record
     * @return
     */
    int delByArchiveId(Emr_Fault_Detail record);

    /**
     * 根据可选字段删除记录
     * @param record
     * @return
     */
    int delbyCol(Emr_Fault_Detail record);

    /**
     * 插入记录
     * @param record
     * @return
     */
    int insert(Emr_Fault_Detail record);

    /**
     *
     * @param record
     * @return
     */
    int insertSel(Emr_Fault_Detail record);

    /**
     * 根据id修改可选字段的记录
     * @param record
     * @return
     */
    int updateCloByPrimaryKey(Emr_Fault_Detail record);

    /**
     * 根据主键修改记录
     * @param record
     * @return
     */
    int updateByPrimaryKey(Emr_Fault_Detail record);

    /**
     * 根据可选字段查询记录
     * @param emrFaultDetail
     * @return
     */
    List<Emr_Fault_Vo> selectByColumn(Emr_Fault_Detail emrFaultDetail);

    /**
     * 根据可选字段查询记录 ArchiveState in('已归档','已认证','初审')
     * @param record
     * @return
     */
    List<Emr_Fault_Vo> selectByCol(Emr_Fault_Vo record);

    /**
     * 根据id查询记录
     * @param id
     * @return
     */
    Emr_Fault_Detail selectById(Integer id);

    /**
     * 根据archive_detail_id和back_flag查询最新的记录
     * @param emrFaultDetail
     * @return
     */
    Emr_Fault_Detail selectByArchiveDetailId(Emr_Fault_Detail emrFaultDetail);

    /**
     *
     * @param emrFaultDetail
     * @return
     */
    Emr_Fault_Detail selectByDept(Emr_Fault_Detail emrFaultDetail);

    /**
     * 根据deal_flag='0' and back_flag in (1,2,5,6) and archiveDetailId查询记录
     * @param emrFaultDetail
     * @return
     */
    List<Emr_Fault_Detail> selectByArchiveId(Emr_Fault_Detail emrFaultDetail);

    /**
     * 根据ArchiveState in('已归档','已封存')等查询记录
     * @param emrFaultVo
     * @return
     */
    List<Emr_Fault_Vo> selectStorageByCol(Emr_Fault_Vo emrFaultVo);

    /**
     *
     * @param emrFaultVo
     * @return
     */
    List<Emr_Fault_Vo> getQualityControlList(Emr_Fault_Vo emrFaultVo);//获取质控缺陷评分列表
}