package com.zt.plat.module.contractorder.dal.mysql.purchaseorder;

import java.util.*;

import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;

import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlPageReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO;
import org.apache.ibatis.annotations.Mapper;


/**
 * 采购订单明细 Mapper
 *
 * @author 后台管理-1
 */
@Mapper
public interface PrchOrdDtlMapper extends BaseMapperX<PrchOrdDtlDO> {

    default PageResult<PrchOrdDtlDO> selectPage(PrchOrdDtlPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<PrchOrdDtlDO>()
                .eqIfPresent(PrchOrdDtlDO::getOrdId, reqVO.getOrdId())
                .eqIfPresent(PrchOrdDtlDO::getLineNum, reqVO.getLineNum())
                .eqIfPresent(PrchOrdDtlDO::getMtrlNum, reqVO.getMtrlNum())
                .likeIfPresent(PrchOrdDtlDO::getMtrlName, reqVO.getMtrlName())
                .likeIfPresent(PrchOrdDtlDO::getRcvFactName, reqVO.getRcvFactName())
                .eqIfPresent(PrchOrdDtlDO::getRcvFactNum, reqVO.getRcvFactNum())
                .likeIfPresent(PrchOrdDtlDO::getRcvWrhName, reqVO.getRcvWrhName())
                .eqIfPresent(PrchOrdDtlDO::getRcvWrhNum, reqVO.getRcvWrhNum())
                .eqIfPresent(PrchOrdDtlDO::getQty, reqVO.getQty())
                .eqIfPresent(PrchOrdDtlDO::getUnt, reqVO.getUnt())
                .eqIfPresent(PrchOrdDtlDO::getInTaxUprc, reqVO.getInTaxUprc())
                .eqIfPresent(PrchOrdDtlDO::getPrcUnt, reqVO.getPrcUnt())
                .eqIfPresent(PrchOrdDtlDO::getTaxNum, reqVO.getTaxNum())
                .eqIfPresent(PrchOrdDtlDO::getIsGrInv, reqVO.getIsGrInv())
                .eqIfPresent(PrchOrdDtlDO::getIsUnlRcv, reqVO.getIsUnlRcv())
                .eqIfPresent(PrchOrdDtlDO::getBat, reqVO.getBat())
                .eqIfPresent(PrchOrdDtlDO::getPrjCtgr, reqVO.getPrjCtgr())
                .eqIfPresent(PrchOrdDtlDO::getActsCtgr, reqVO.getActsCtgr())
                .eqIfPresent(PrchOrdDtlDO::getMtrlCpntNum, reqVO.getMtrlCpntNum())
                .eqIfPresent(PrchOrdDtlDO::getMtrlCpntDsp, reqVO.getMtrlCpntDsp())
                .eqIfPresent(PrchOrdDtlDO::getShrtTxt, reqVO.getShrtTxt())
                .eqIfPresent(PrchOrdDtlDO::getIsRlbkCgo, reqVO.getIsRlbkCgo())
                .eqIfPresent(PrchOrdDtlDO::getIsFreeRcv, reqVO.getIsFreeRcv())
                .eqIfPresent(PrchOrdDtlDO::getOutLineNum, reqVO.getOutLineNum())
                .eqIfPresent(PrchOrdDtlDO::getRmkUnt, reqVO.getRmkUnt())
                .eqIfPresent(PrchOrdDtlDO::getRmkMtrl, reqVO.getRmkMtrl())
                .eqIfPresent(PrchOrdDtlDO::getBgnDt, reqVO.getBgnDt())
                .eqIfPresent(PrchOrdDtlDO::getDdlDt, reqVO.getDdlDt())
                .eqIfPresent(PrchOrdDtlDO::getLstQty, reqVO.getLstQty())
                .eqIfPresent(PrchOrdDtlDO::getTrfQty, reqVO.getTrfQty())
                .eqIfPresent(PrchOrdDtlDO::getAgrNum, reqVO.getAgrNum())
                .likeIfPresent(PrchOrdDtlDO::getTrfFactName, reqVO.getTrfFactName())
                .eqIfPresent(PrchOrdDtlDO::getTrfFactNum, reqVO.getTrfFactNum())
                .likeIfPresent(PrchOrdDtlDO::getTrfWrhName, reqVO.getTrfWrhName())
                .eqIfPresent(PrchOrdDtlDO::getTrfWrhNum, reqVO.getTrfWrhNum())
                .eqIfPresent(PrchOrdDtlDO::getRmk, reqVO.getRmk())
                .eqIfPresent(PrchOrdDtlDO::getOrigWet, reqVO.getOrigWet())
                .eqIfPresent(PrchOrdDtlDO::getSaleMtrlNum, reqVO.getSaleMtrlNum())
                .eqIfPresent(PrchOrdDtlDO::getInOrd, reqVO.getInOrd())
                .eqIfPresent(PrchOrdDtlDO::getPrchCtgr, reqVO.getPrchCtgr())
                .eqIfPresent(PrchOrdDtlDO::getIsEnb, reqVO.getIsEnb())
                .eqIfPresent(PrchOrdDtlDO::getActsCtgrDtl, reqVO.getActsCtgrDtl())
                .eqIfPresent(PrchOrdDtlDO::getEnttDtl, reqVO.getEnttDtl())
                .betweenIfPresent(PrchOrdDtlDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(PrchOrdDtlDO::getElemAbbr, reqVO.getElemAbbr())
                .likeIfPresent(PrchOrdDtlDO::getElemName, reqVO.getElemName())
                .eqIfPresent(PrchOrdDtlDO::getElemCdg, reqVO.getElemCdg())
                .orderByDesc(PrchOrdDtlDO::getId));
    }

    PrchOrdDtlDO findOrdDtlById(Long id);

    PrchOrdDtlDO selectByLineNumAndOrdId(Long lineNum, Long ordId);

}
