package cn.iocoder.yudao.module.mes.dal.mysql.qc.indicator; 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.mes.controller.admin.qc.indicator.vo.MesQcIndicatorPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.qc.indicator.MesQcIndicatorDO; import org.apache.ibatis.annotations.Mapper; import java.util.List; import java.util.Objects; /** * MES 质检指标 Mapper * * @author 超级管理员 */ @Mapper public interface MesQcIndicatorMapper extends BaseMapperX { default PageResult selectPage(MesQcIndicatorPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(MesQcIndicatorDO::getCode, reqVO.getCode()) .likeIfPresent(MesQcIndicatorDO::getName, reqVO.getName()) .eqIfPresent(MesQcIndicatorDO::getType, reqVO.getType()) .eqIfPresent(MesQcIndicatorDO::getResultType, reqVO.getResultType()) .eqIfPresent(MesQcIndicatorDO::getItemType, reqVO.getItemType()) .orderByDesc(MesQcIndicatorDO::getId)); } default MesQcIndicatorDO selectByCode(String code) { return selectOne(MesQcIndicatorDO::getCode, code); } default MesQcIndicatorDO selectByName(String name) { return selectOne(MesQcIndicatorDO::getName, name); } default List selectList() { return selectList(new LambdaQueryWrapperX() .orderByDesc(MesQcIndicatorDO::getId)); } default List selectListByItemType(Integer itemType) { return selectList(new LambdaQueryWrapperX() .eq(MesQcIndicatorDO::getItemType, itemType) .orderByAsc(MesQcIndicatorDO::getSortOrder) .orderByAsc(MesQcIndicatorDO::getId)); } default List selectListByParentId(Long parentId) { return selectList(new LambdaQueryWrapperX() .eq(MesQcIndicatorDO::getParentId, parentId) .orderByAsc(MesQcIndicatorDO::getSortOrder) .orderByAsc(MesQcIndicatorDO::getId)); } default Long selectCountByParentId(Long parentId) { return selectCount(new LambdaQueryWrapperX() .eq(MesQcIndicatorDO::getParentId, parentId)); } /** * 取同级最大的排序号;同级没有记录时返回 null */ default Integer selectMaxSortOrder(Long parentId) { return selectListByParentId(parentId).stream() .map(MesQcIndicatorDO::getSortOrder) .filter(Objects::nonNull) .max(Integer::compareTo) .orElse(null); } }