package com.zt.plat.module.qms.business.config.dal.mapper;

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.qms.business.config.controller.vo.ConfigAssayMethodPageReqVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodReqVO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;

import org.apache.ibatis.annotations.Mapper;

/**
 * 检测方法配置 Mapper
 *
 * @author 后台管理
 */
@Mapper
public interface ConfigAssayMethodMapper extends BaseMapperX<ConfigAssayMethodDO> {
	
	default	List<ConfigAssayMethodDO> selectList(ConfigAssayMethodReqVO reqVO) {
		return selectList(new LambdaQueryWrapperX<ConfigAssayMethodDO>()
                .eqIfPresent(ConfigAssayMethodDO::getMethodConfigId, reqVO.getMethodConfigId())
                .eqIfPresent(ConfigAssayMethodDO::getDictionaryBusinessId, reqVO.getDictionaryBusinessId())
                .eqIfPresent(ConfigAssayMethodDO::getDictionaryBusinessKey, reqVO.getDictionaryBusinessKey())
                .likeIfPresent(ConfigAssayMethodDO::getName, reqVO.getName())
                .eqIfPresent(ConfigAssayMethodDO::getMethodNameCategory, reqVO.getMethodNameCategory())
                .eqIfPresent(ConfigAssayMethodDO::getMethodCode, reqVO.getMethodCode())
                .eqIfPresent(ConfigAssayMethodDO::getDescription, reqVO.getDescription())
                .eqIfPresent(ConfigAssayMethodDO::getIsEnabled, reqVO.getIsEnabled())
                .eqIfPresent(ConfigAssayMethodDO::getIsIngredients, reqVO.getIsIngredients())
                .eqIfPresent(ConfigAssayMethodDO::getConfigReportTemplateKey, reqVO.getConfigReportTemplateKey())
                .eqIfPresent(ConfigAssayMethodDO::getReportDataType, reqVO.getReportDataType())
                .eqIfPresent(ConfigAssayMethodDO::getCodeRule, reqVO.getCodeRule())
                .eqIfPresent(ConfigAssayMethodDO::getAssignWay, reqVO.getAssignWay())
                .eqIfPresent(ConfigAssayMethodDO::getAssignPlatform, reqVO.getAssignPlatform())
                .eqIfPresent(ConfigAssayMethodDO::getAssayTaskInfomation, reqVO.getAssayTaskInfomation())
                .eqIfPresent(ConfigAssayMethodDO::getAssayDepartmentId, reqVO.getAssayDepartmentId())
                .likeIfPresent(ConfigAssayMethodDO::getAssayDepartmentName, reqVO.getAssayDepartmentName())
                .betweenIfPresent(ConfigAssayMethodDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(ConfigAssayMethodDO::getRemark, reqVO.getRemark())
                .eqIfPresent(ConfigAssayMethodDO::getVersion, reqVO.getVersion())
                .eqIfPresent(ConfigAssayMethodDO::getDataCollectionKey, reqVO.getDataCollectionKey())
                .orderByDesc(ConfigAssayMethodDO::getId));
    }

    default PageResult<ConfigAssayMethodDO> selectPage(ConfigAssayMethodPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<ConfigAssayMethodDO>()
                .eqIfPresent(ConfigAssayMethodDO::getMethodConfigId, reqVO.getMethodConfigId())
                .eqIfPresent(ConfigAssayMethodDO::getDictionaryBusinessId, reqVO.getDictionaryBusinessId())
                .eqIfPresent(ConfigAssayMethodDO::getDictionaryBusinessKey, reqVO.getDictionaryBusinessKey())
                .likeIfPresent(ConfigAssayMethodDO::getName, reqVO.getName())
                .eqIfPresent(ConfigAssayMethodDO::getMethodNameCategory, reqVO.getMethodNameCategory())
                .eqIfPresent(ConfigAssayMethodDO::getMethodCode, reqVO.getMethodCode())
                .eqIfPresent(ConfigAssayMethodDO::getDescription, reqVO.getDescription())
                .eqIfPresent(ConfigAssayMethodDO::getDataCollectionKey, reqVO.getDataCollectionKey())
                .eqIfPresent(ConfigAssayMethodDO::getIsEnabled, reqVO.getIsEnabled())
                .eqIfPresent(ConfigAssayMethodDO::getIsIngredients, reqVO.getIsIngredients())
                .eqIfPresent(ConfigAssayMethodDO::getConfigReportTemplateKey, reqVO.getConfigReportTemplateKey())
                .eqIfPresent(ConfigAssayMethodDO::getReportDataType, reqVO.getReportDataType())
                .eqIfPresent(ConfigAssayMethodDO::getCodeRule, reqVO.getCodeRule())
                .eqIfPresent(ConfigAssayMethodDO::getAssignWay, reqVO.getAssignWay())
                .eqIfPresent(ConfigAssayMethodDO::getAssignPlatform, reqVO.getAssignPlatform())
                .eqIfPresent(ConfigAssayMethodDO::getAssayTaskInfomation, reqVO.getAssayTaskInfomation())
                .eqIfPresent(ConfigAssayMethodDO::getAssayDepartmentId, reqVO.getAssayDepartmentId())
                .likeIfPresent(ConfigAssayMethodDO::getAssayDepartmentName, reqVO.getAssayDepartmentName())
                .eqIfPresent(ConfigAssayMethodDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
                .betweenIfPresent(ConfigAssayMethodDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(ConfigAssayMethodDO::getRemark, reqVO.getRemark())
                .eqIfPresent(ConfigAssayMethodDO::getVersion, reqVO.getVersion())
                .orderByDesc(ConfigAssayMethodDO::getId));
    }
    

}