package cn.iocoder.yudao.module.mes.dal.mysql.pd.archive; 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.pd.archive.vo.MesPdArchiveGroupRespVO; import cn.iocoder.yudao.module.mes.controller.admin.pd.archive.vo.MesPdArchivePageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pd.archive.MesPdArchiveDO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper public interface MesPdArchiveMapper extends BaseMapperX { default PageResult selectPage(MesPdArchivePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(MesPdArchiveDO::getArchiveCode, reqVO.getArchiveCode()) .eqIfPresent(MesPdArchiveDO::getProjectId, reqVO.getProjectId()) .eqIfPresent(MesPdArchiveDO::getArchiveStatus, reqVO.getArchiveStatus()) .orderByDesc(MesPdArchiveDO::getId)); } default MesPdArchiveDO selectByArchiveCode(String archiveCode) { return selectOne(MesPdArchiveDO::getArchiveCode, archiveCode); } default List selectListByProjectId(Long projectId) { return selectList(MesPdArchiveDO::getProjectId, projectId); } /** * 查询某项目下归档记录数量 */ default Long selectCountByProjectId(Long projectId) { return selectCount(MesPdArchiveDO::getProjectId, projectId); } /** * XML mapper 实现的分组分页查询 * 返回 MesPdArchiveGroupRespVO(包含归档字段 + 关联项目的产品编码/名称) */ IPage selectPageGroupByProjectId(Page page, @Param("req") MesPdArchivePageReqVO reqVO); }