package cn.iocoder.yudao.module.erp.dal.mysql.finance; 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.MPJLambdaWrapperX; import cn.iocoder.yudao.module.erp.controller.admin.finance.vo.receipt.ErpFinanceReceiptPageReqVO; import cn.iocoder.yudao.module.erp.dal.dataobject.finance.ErpFinanceReceiptDO; import cn.iocoder.yudao.module.erp.dal.dataobject.finance.ErpFinanceReceiptItemDO; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.ibatis.annotations.Mapper; /** * ERP 收款单 Mapper * * @author 芋道源码 */ @Mapper public interface ErpFinanceReceiptMapper extends BaseMapperX { default PageResult selectPage(ErpFinanceReceiptPageReqVO reqVO) { MPJLambdaWrapperX query = new MPJLambdaWrapperX() .likeIfPresent(ErpFinanceReceiptDO::getNo, reqVO.getNo()) .betweenIfPresent(ErpFinanceReceiptDO::getReceiptTime, reqVO.getReceiptTime()) .eqIfPresent(ErpFinanceReceiptDO::getCustomerId, reqVO.getCustomerId()) .eqIfPresent(ErpFinanceReceiptDO::getCreator, reqVO.getCreator()) .eqIfPresent(ErpFinanceReceiptDO::getFinanceUserId, reqVO.getFinanceUserId()) .eqIfPresent(ErpFinanceReceiptDO::getAccountId, reqVO.getAccountId()) .eqIfPresent(ErpFinanceReceiptDO::getStatus, reqVO.getStatus()) .likeIfPresent(ErpFinanceReceiptDO::getRemark, reqVO.getRemark()) .orderByDesc(ErpFinanceReceiptDO::getId); if (reqVO.getBizNo() != null) { query.leftJoin(ErpFinanceReceiptItemDO.class, ErpFinanceReceiptItemDO::getReceiptId, ErpFinanceReceiptDO::getId) .eq(reqVO.getBizNo() != null, ErpFinanceReceiptItemDO::getBizNo, reqVO.getBizNo()) .groupBy(ErpFinanceReceiptDO::getId); // 避免 1 对多查询,产生相同的 1 } return selectJoinPage(reqVO, ErpFinanceReceiptDO.class, query); } default int updateByIdAndStatus(Long id, Integer status, ErpFinanceReceiptDO updateObj) { return update(updateObj, new LambdaUpdateWrapper() .eq(ErpFinanceReceiptDO::getId, id).eq(ErpFinanceReceiptDO::getStatus, status)); } default ErpFinanceReceiptDO selectByNo(String no) { return selectOne(ErpFinanceReceiptDO::getNo, no); } }