package cn.iocoder.yudao.module.mes.dal.mysql.pro.route;
|
|
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.pro.route.vo.MesProRoutePageReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteDO;
|
import cn.hutool.core.util.StrUtil;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.util.List;
|
|
/**
|
* MES 工艺路线 Mapper
|
*
|
* @author 超级管理员
|
*/
|
@Mapper
|
public interface MesProRouteMapper extends BaseMapperX<MesProRouteDO> {
|
|
default PageResult<MesProRouteDO> selectPage(MesProRoutePageReqVO reqVO) {
|
LambdaQueryWrapperX<MesProRouteDO> query = new LambdaQueryWrapperX<MesProRouteDO>()
|
.likeIfPresent(MesProRouteDO::getCode, reqVO.getCode())
|
.likeIfPresent(MesProRouteDO::getName, reqVO.getName())
|
.eqIfPresent(MesProRouteDO::getStatus, reqVO.getStatus())
|
.betweenIfPresent(MesProRouteDO::getCreateTime, reqVO.getCreateTime());
|
if (StrUtil.isNotBlank(reqVO.getProductKeyword())) {
|
String keyword = reqVO.getProductKeyword().trim();
|
query.apply("EXISTS (SELECT 1 FROM mes_pro_route_product rp "
|
+ "JOIN mes_md_item item ON item.id = rp.item_id AND item.deleted = 0 "
|
+ "WHERE rp.route_id = mes_pro_route.id AND rp.deleted = 0 "
|
+ "AND (item.code LIKE CONCAT('%', {0}, '%') "
|
+ "OR item.name LIKE CONCAT('%', {1}, '%')))", keyword, keyword);
|
}
|
return selectPage(reqVO, query.orderByDesc(MesProRouteDO::getId));
|
}
|
|
default MesProRouteDO selectByCode(String code) {
|
return selectOne(MesProRouteDO::getCode, code);
|
}
|
|
default List<MesProRouteDO> selectListByStatus(Integer status) {
|
return selectList(MesProRouteDO::getStatus, status);
|
}
|
|
}
|