package com.zcloud.fire.check.persistence.mapper;

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.fire.check.domain.model.DateTimeE;
import com.zcloud.fire.check.persistence.FireCheckPointListDO;
import com.zcloud.fire.check.persistence.dataobject.FireCheckListDO;
import com.zcloud.fire.check.persistence.dataobject.PointDistributionDO;
import com.zcloud.fire.check.persistence.dataobject.RiskDistributionDO;
import org.apache.ibatis.annotations.Mapper;

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

/**
 * web-infrastructure
 *
 * @Author zhaokai
 * @Date 2025-11-28 10:32:09
 */
@Mapper
@DataScopes({
        @DataScope(method = "listPage", menuPerms = ""),
        @DataScope(method = "checkListRecordList", menuPerms = ""),
        @DataScope(method = "getCheckListRecord", menuPerms = ""),
})
public interface FireCheckListMapper extends BaseMapper<FireCheckListDO> {

    IPage<FireCheckListDO> screenList(IPage<FireCheckListDO> iPage, Map<String, Object> params, DateTimeE dateTimeE);

    FireCheckListDO getInfoById(Long id);

    IPage<FireCheckListDO> listPage(IPage<FireCheckListDO> iPage, Map<String, Object> params, String menuPerms);

    IPage<FireCheckListDO> appCheckList(IPage<FireCheckListDO> iPage, Map<String, Object> params, DateTimeE dateTimeE);

    IPage<RiskDistributionDO> riskDistribution(IPage<RiskDistributionDO> iPage, Map<String, Object> params);

    IPage<PointDistributionDO> pointDistribution(IPage<PointDistributionDO> iPage, Map<String, Object> params);

    List<FireCheckPointListDO> getCheckPointList(Map<String, Object> params);

    IPage<FireCheckListDO> getBackChecKList(IPage<FireCheckListDO> iPage, Map<String, Object> params);

    IPage<FireCheckListDO> checkListRecordList(IPage<FireCheckListDO> iPage, Map<String, Object> params, DateTimeE dateTimeE, String menuPerms);

    IPage<FireCheckListDO> getCheckListRecord(IPage<FireCheckListDO> iPage, Map<String, Object> params, DateTimeE dateTimeE, String menuPerms);

    List<FireCheckListDO> getNoFinishedCheckList(DateTimeE dateTimeE);

    List<FireCheckListDO> overTimeRecord(Map<String, Object> params);
}

