package cn.iocoder.yudao.module.mes.dal.mysql.pro.worktime; 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.worktime.vo.MesProWorktimeAuxPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.worktime.MesProWorktimeAuxDO; import org.apache.ibatis.annotations.Mapper; import java.util.List; /** * MES 辅助工时配置 Mapper * * @author 超级管理员 */ @Mapper public interface MesProWorktimeAuxMapper extends BaseMapperX { default PageResult selectPage(MesProWorktimeAuxPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(MesProWorktimeAuxDO::getProcessId, reqVO.getProcessId()) .eqIfPresent(MesProWorktimeAuxDO::getWorkstationId, reqVO.getWorkstationId()) .likeIfPresent(MesProWorktimeAuxDO::getItemName, reqVO.getItemName()) .eqIfPresent(MesProWorktimeAuxDO::getStatus, reqVO.getStatus()) .orderByAsc(MesProWorktimeAuxDO::getSort) .orderByAsc(MesProWorktimeAuxDO::getId)); } default List selectListByProcessId(Long processId) { return selectList(new LambdaQueryWrapperX() .eq(MesProWorktimeAuxDO::getProcessId, processId) .orderByAsc(MesProWorktimeAuxDO::getSort) .orderByAsc(MesProWorktimeAuxDO::getId)); } default MesProWorktimeAuxDO selectOneByProcessIdAndWorkstationIdAndCode(Long processId, Long workstationId, String itemCode) { return selectOne(new LambdaQueryWrapperX() .eq(MesProWorktimeAuxDO::getProcessId, processId) .eq(MesProWorktimeAuxDO::getItemCode, itemCode) .and(w -> { if (workstationId == null) { w.isNull(MesProWorktimeAuxDO::getWorkstationId); } else { w.eq(MesProWorktimeAuxDO::getWorkstationId, workstationId); } }) .last("LIMIT 1")); } default List selectListByProcessIdAndWorkstationId(Long processId, Long workstationId) { return selectList(new LambdaQueryWrapperX() .eq(MesProWorktimeAuxDO::getProcessId, processId) .and(w -> { if (workstationId != null) { w.isNull(MesProWorktimeAuxDO::getWorkstationId) .or(x -> x.eq(MesProWorktimeAuxDO::getWorkstationId, workstationId)); } else { w.isNull(MesProWorktimeAuxDO::getWorkstationId); } }) .orderByAsc(MesProWorktimeAuxDO::getSort) .orderByAsc(MesProWorktimeAuxDO::getId)); } }