package cn.iocoder.yudao.module.mes.dal.mysql.pro.feedback; import cn.hutool.core.util.StrUtil; 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.framework.mybatis.core.query.MPJLambdaWrapperX; import cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo.MesProFeedbackPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO; import org.apache.ibatis.annotations.Mapper; import java.util.Collection; import java.util.List; /** * MES 生产报工 Mapper * * @author 芋道源码 */ @Mapper public interface MesProFeedbackMapper extends BaseMapperX { default PageResult selectPage(MesProFeedbackPageReqVO reqVO) { // 当按任务编码模糊查询时,需要 JOIN 任务表 if (StrUtil.isNotBlank(reqVO.getTaskCode())) { MPJLambdaWrapperX query = new MPJLambdaWrapperX<>(); query.selectAll(MesProFeedbackDO.class); query.leftJoin(MesProTaskDO.class, on -> on .eq(MesProTaskDO::getId, MesProFeedbackDO::getTaskId)); query.like(MesProTaskDO::getCode, reqVO.getTaskCode()); query.likeIfPresent(MesProFeedbackDO::getCode, reqVO.getCode()) .eqIfPresent(MesProFeedbackDO::getType, reqVO.getType()) .eqIfPresent(MesProFeedbackDO::getWorkOrderId, reqVO.getWorkOrderId()) .eqIfPresent(MesProFeedbackDO::getTaskId, reqVO.getTaskId()) .eqIfPresent(MesProFeedbackDO::getStatus, reqVO.getStatus()) .betweenIfPresent(MesProFeedbackDO::getFeedbackTime, reqVO.getFeedbackTime()) .eqIfPresent(MesProFeedbackDO::getItemId, reqVO.getItemId()) .eqIfPresent(MesProFeedbackDO::getFeedbackUserId, reqVO.getFeedbackUserId()) .eqIfPresent(MesProFeedbackDO::getCreator, reqVO.getCreator()) .orderByDesc(MesProFeedbackDO::getId); return selectPage(reqVO, query); } // 不涉及任务编码查询时,走普通查询 return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(MesProFeedbackDO::getCode, reqVO.getCode()) .eqIfPresent(MesProFeedbackDO::getType, reqVO.getType()) .eqIfPresent(MesProFeedbackDO::getWorkOrderId, reqVO.getWorkOrderId()) .eqIfPresent(MesProFeedbackDO::getTaskId, reqVO.getTaskId()) .eqIfPresent(MesProFeedbackDO::getStatus, reqVO.getStatus()) .betweenIfPresent(MesProFeedbackDO::getFeedbackTime, reqVO.getFeedbackTime()) .eqIfPresent(MesProFeedbackDO::getItemId, reqVO.getItemId()) .eqIfPresent(MesProFeedbackDO::getFeedbackUserId, reqVO.getFeedbackUserId()) .eqIfPresent(MesProFeedbackDO::getCreator, reqVO.getCreator()) .orderByDesc(MesProFeedbackDO::getId)); } default Long selectCountByTaskId(Long taskId) { return selectCount(MesProFeedbackDO::getTaskId, taskId); } default List selectListByTaskId(Long taskId) { return selectList(new LambdaQueryWrapperX() .eq(MesProFeedbackDO::getTaskId, taskId) .orderByDesc(MesProFeedbackDO::getId)); } default List selectListByTaskIds(Collection taskIds) { return selectList(new LambdaQueryWrapperX() .in(MesProFeedbackDO::getTaskId, taskIds)); } }