package com.zcloud.safetyDutyList.persistence.mapper.tasklist;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.datascope.annotation.DataScope;
import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.safetyDutyList.persistence.dataobject.tasklist.CorpStatisticsDO;
import com.zcloud.safetyDutyList.persistence.dataobject.tasklist.EvaluationListDO;
import com.zcloud.safetyDutyList.persistence.dataobject.tasklist.IssueStatisticsDO;
import com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO;
import org.apache.ibatis.annotations.Mapper;

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

/**
 * 清单Mapper接口
 * <p>
 * 定义清单表的SQL操作方法，继承MyBatis-Plus的BaseMapper获得基础CRUD能力，
 * 自定义方法对应的SQL在TaskListMapper.xml中实现。
 */
@Mapper
@DataScopes(
        @DataScope(method = "listPage", menuPerms = "jgd-rwqdgl")
)
public interface TaskListMapper extends BaseMapper<TaskListDO> {

    IPage<TaskListDO> listPage(IPage<TaskListDO> iPage, Map<String, Object> params, String menuPath);

    TaskListDO getInfoById(Long id);

    TaskListDO getByTaskListId(String taskListId);

    TaskListDO getInfoByTaskListId(String taskListId);

    List<TaskListDO> list(Map<String, Object> params);

    IPage<CorpStatisticsDO> corpStatistics(IPage<CorpStatisticsDO> iPage, Map<String, Object> params);

    IPage<EvaluationListDO> evaluationList(IPage<EvaluationListDO> iPage, Map<String, Object> params);

    IPage<IssueStatisticsDO> issueStatistics(IPage<IssueStatisticsDO> iPage, Map<String, Object> params);
}
