package com.ruoyi.project.process.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
import com.ruoyi.project.common.domain.DataEntity;
import com.ruoyi.project.process.controller.vo.*;
import com.ruoyi.project.process.domain.TMoc;

/**
 * MOC管理Mapper接口
 *
 * @author ruoyi
 * @date 2020-12-07
 */
public interface TMocMapper
{
    /**
     * 查询MOC管理
     *
     * @param id MOC管理ID
     * @return MOC管理
     */
    public TMoc selectTMocById(Long id);

    /**
     * 查询MOC管理列表
     *
     * @param tMoc MOC管理
     * @return MOC管理集合
     */
    @DataScope(deptAlias = "d")
    public List<TMoc> selectTMocList(TMoc tMoc);

    /**
     * 新增MOC管理
     *
     * @param tMoc MOC管理
     * @return 结果
     */
    public int insertTMoc(TMoc tMoc);

    /**
     * 修改MOC管理
     *
     * @param tMoc MOC管理
     * @return 结果
     */
    public int updateTMoc(TMoc tMoc);

    /**
     * 删除MOC管理
     *
     * @param id MOC管理ID
     * @return 结果
     */
    public int deleteTMocById(Long id);

    /**
     * 批量删除MOC管理
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteTMocByIds(Long[] ids);

    List<DataEntity> selectYearData(Map param);

    List<DataEntity> selectTrueStateData(Map param);

    List<DataEntity> selectChangeData(Map param);

    List<DataEntity> selectCategoryData(Map param);

    List<DataEntity> selectRiskData(Map param);

    List<DataEntity> selectMocData(MocNoVO mocNoVO);

    List<DataEntity> selectDepartmentData(DepartmentVO departmentVO);

    List<DataEntity> selectLeakLocationData(LeakLocationVO leakLocationVO);

    List<DataEntity> selectMaterialTypeData(MaterialTypeVO materialTypeVO);

    List<DataEntity> selectAreaData(AreaVO areaVO);

    List<DataEntity> selectMcDetailData(McDetailVO mcDetailVO);

    List<DataEntity> selectRiskLevelData(RiskLevelVO riskLevelVO);

    List<DataEntity> selectTempStateData(TempStateVO tempStateVO);

    List<DataEntity> selectStatusData(StatusVO statusVO);

    List<DataEntity> selectSealDateData(SealDateVO sealDateVO);
}
