package cn.iocoder.yudao.module.tickets.mapper;

import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

/**
 * 针对表【dl_repair_tickets(维修工单表)】的数据库操作Mapper
 *
 * @author 小李
 * @date 17:34 2024/9/13
 **/
@Mapper
public interface DlRepairTicketsMapper extends BaseMapper<DlRepairTickets> {

    /**
     * 维修工单表 分页
     *
     * @author 小李
     * @date 20:51 2024/9/20
     * @param repairTicketsReqVO 查询对象
     **/
    IPage<DlRepairTickets> getTicketsPage(@Param("map") DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page);

    /**
     * 分类查询工单分页----待处理的
     *
     * @author 小李
     * @date 16:26 2024/10/12
     * @param repairTicketsReqVO 查询对象
     **/
    IPage<DlRepairTickets> getPageType(@Param("map") DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page);
    /**
     * 分类查询工单分页----所有记录
     *
     * @author 小李
     * @date 16:26 2024/10/12
     * @param repairTicketsReqVO 查询对象
     **/
    IPage<DlRepairTickets> getPageTypeAll(@Param("map") DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page);


    /**
     * 根据条件查询指定工单数量
     * @author vinjor-M
     * @date 15:46 2024/11/18
     * @param dayDate 某一天日期
     * @param recordCode 操作记录code
     * @return java.lang.Long
     **/
    List<String> selectTicketIdByParams(@Param("nowDate")String dayDate, @Param("recordCode")String recordCode, @Param("startTime")String startTime, @Param("endTime")String endTime);


    /**
     * @Author 许
     * @Description  根据条件查询统计
     * @Date 11:32 2025/9/4
     * @Param [queryWrapper]
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     **/
    List<Map<String, Object>> selectTicketIdByParamsNew(@Param("ew") QueryWrapper<DlRepairTickets> queryWrapper);

    /**
     * @Author 许
     * @Description  统计工单
     * @Date 15:54 2025/8/19
     * @Param [repairTicketsReqVO]
     * @return java.util.Map<java.lang.String,java.lang.Object>
     **/

    Map<String, Object> getStatistics(@Param("map") DlRepairTicketsReqVO repairTicketsReqVO);

    // 通用金额求和查询
        List<Map<String, Object>> selectSumAmount(@Param("ew") QueryWrapper<DlRepairTickets> receivableWrapper);
}




