/**
 * Copyright 2019 DH
 * All right reserved.
 * 项目名称: 大恒泰山系统
 * 创建日期:2022/8/22
 */
package org.springblade.modules.business.check.order.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;
import org.springblade.modules.business.check.order.entity.CheckOrderInfoEntity;
import org.springblade.modules.business.check.order.vo.CheckOrderCountVO;
import org.springblade.modules.business.check.order.vo.CheckOrderInfoVO;


import java.util.List;

/***
 * Date:2022/8/22
 * Title:文件所属模块（必须填写）
 * Description：对本文件的详细描述，原则上不能少于30字
 * @author dylan
 * @version 1.0
 * Remark：认为有必要的其他信息
 */
public interface RtuCheckOrderMapper extends BaseMapper<CheckOrderInfoEntity> {

	/**
	 * 列表，不分页
	 * @param checkOrderInfoDTO
	 * @return
	 */
	List<CheckOrderInfoVO> allOrders( @Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);

	/**
	 * 自定义分页
	 *
	 * @param page   分页
	 * @param checkOrderInfoDTO 实体
	 * @return List<RtuInfoVO>
	 */
	List<CheckOrderInfoVO> selectPage(IPage page, @Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);

	/**
	 * 分页，按异常类型查询
	 * @param page
	 * @param checkOrderInfoDTO
	 * @return
	 */
	List<CheckOrderInfoVO> selectWarnPage(IPage page, @Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);


	/**
	 * 我的任务
	 * @param page
	 * @param checkOrderInfoDTO
	 * @return
	 */
	List<CheckOrderInfoVO> selectMyPage(IPage page, @Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);

	/**
	 * 查询确认超时维修任务
	 * @param page
	 * @param checkOrderInfoDTO
	 * @return
	 */
	List<CheckOrderInfoVO> selectConfirmDelayPage(IPage page, @Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);

	/**
	 * 未确认任务列表
	 * @param checkOrderInfoDTO
	 * @return
	 */
	List<CheckOrderInfoVO> unconfirmOrderList(@Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);

	/**
	 * 未确认任务数量
	 * @param checkOrderInfoDTO
	 * @return
	 */
	Long unconfirmOrderCount(@Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);

	/**
	 * 已经反馈任务数量
	 * @param checkOrderInfoDTO
	 * @return
	 */
	List<CheckOrderCountVO> orderReportCount(@Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);

	/**
	 * 任务数量
	 * @param checkOrderInfoDTO
	 * @return
	 */
	Long orderCount(@Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);

	/**
	 * 未完成任务数量
	 * @param checkOrderInfoDTO
	 * @return
	 */
	Long unCloseOrderCount(@Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);

}
