package org.dromara.erp.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.erp.domain.ErpOrder;
import org.dromara.erp.domain.vo.ErpOrderVo;

/**
 * 订单 Mapper 接口
 * @Author: Antigravity
 */
@DS("htsail_cs")
public interface ErpOrderMapper extends BaseMapperPlus<ErpOrder, ErpOrderVo> {

    /**
     * 自定义多表联查订单及外部 ERP 状态
     * @Author: Antigravity
     */
    com.baomidou.mybatisplus.extension.plugins.pagination.Page<ErpOrderVo> selectOrderVoPage(
            @org.apache.ibatis.annotations.Param("page") com.baomidou.mybatisplus.extension.plugins.pagination.Page<ErpOrderVo> page,
            @org.apache.ibatis.annotations.Param("query") org.dromara.erp.domain.query.ErpOrderQuery query);

    /**
     * 自定义多表联查订单列表及外部 ERP 状态
     * @Author: Antigravity
     */
    java.util.List<ErpOrderVo> selectOrderVoList(@org.apache.ibatis.annotations.Param("query") org.dromara.erp.domain.query.ErpOrderQuery query);

    /**
     * 自定义单条联查订单及外部 ERP 状态
     * @Author: Antigravity
     */
    ErpOrderVo selectOrderVoById(@org.apache.ibatis.annotations.Param("rowId") String rowId);

    /**
     * 按综合状态统计订单数量
     * @Author: Antigravity
     */
    java.util.List<java.util.Map<String, Object>> countOrderStatus();

    /**
     * 按客户ID分页查询订单（不限制下单人）
     */
    com.baomidou.mybatisplus.extension.plugins.pagination.Page<ErpOrderVo> selectOrderVoPageByClientId(
            @org.apache.ibatis.annotations.Param("page") com.baomidou.mybatisplus.extension.plugins.pagination.Page<ErpOrderVo> page,
            @org.apache.ibatis.annotations.Param("query") org.dromara.erp.domain.query.ErpOrderQuery query);

}
