package cn.iocoder.yudao.module.pms.dal.mysql.laswell;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellPageReqVO;
import cn.iocoder.yudao.module.pms.dal.dataobject.laswell.LasWellDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * 数字油藏LAS数据文件-井信息 Mapper
 *
 * @author ruiqi
 */
@Mapper
public interface LasWellMapper extends BaseMapperX<LasWellDO> {

    default PageResult<LasWellDO> selectPage(LasWellPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<LasWellDO>()
                .eqIfPresent(LasWellDO::getDeptId, reqVO.getDeptId())
                .eqIfPresent(LasWellDO::getStrt, reqVO.getStrt())
                .eqIfPresent(LasWellDO::getStop, reqVO.getStop())
                .eqIfPresent(LasWellDO::getStep, reqVO.getStep())
                .eqIfPresent(LasWellDO::getComp, reqVO.getComp())
                .eqIfPresent(LasWellDO::getWell, reqVO.getWell())
                .eqIfPresent(LasWellDO::getFld, reqVO.getFld())
                .eqIfPresent(LasWellDO::getLoc, reqVO.getLoc())
                .eqIfPresent(LasWellDO::getCnty, reqVO.getCnty())
                .eqIfPresent(LasWellDO::getStat, reqVO.getStat())
                .eqIfPresent(LasWellDO::getCtry, reqVO.getCtry())
                .betweenIfPresent(LasWellDO::getWorkDate, reqVO.getWorkDate())
                .eqIfPresent(LasWellDO::getUwi, reqVO.getUwi())
                .eqIfPresent(LasWellDO::getXcoord, reqVO.getXcoord())
                .eqIfPresent(LasWellDO::getYcoord, reqVO.getYcoord())
                .eqIfPresent(LasWellDO::getLon, reqVO.getLon())
                .eqIfPresent(LasWellDO::getLat, reqVO.getLat())
                .eqIfPresent(LasWellDO::getElev, reqVO.getElev())
                .eqIfPresent(LasWellDO::getElevType, reqVO.getElevType())
                .betweenIfPresent(LasWellDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(LasWellDO::getId));
    }

}