package cn.iocoder.yudao.module.mes.service.pd.archive; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.controller.admin.pd.archive.vo.MesPdArchiveDetailRespVO; 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.controller.admin.pd.archive.vo.MesPdArchiveSaveReqVO; 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 jakarta.validation.Valid; import java.util.List; /** * MES 归档台账 Service 接口 * * @author 芋道源码 */ public interface MesPdArchiveService { /** * 创建归档台账 */ Long createArchive(@Valid MesPdArchiveSaveReqVO createReqVO); /** * 更新归档台账 */ void updateArchive(@Valid MesPdArchiveSaveReqVO updateReqVO); /** * 删除归档台账 */ void deleteArchive(Long id); /** * 获得归档台账 */ MesPdArchiveDO getArchive(Long id); /** * 获得归档台账分页 */ PageResult getArchivePage(MesPdArchivePageReqVO pageReqVO); /** * 获得归档台账分页(按项目/产品分组,每组取最新一条) * 返回 MesPdArchiveGroupRespVO(包含归档字段 + 关联项目的产品编码/名称) */ IPage getArchivePageGroupByProject(MesPdArchivePageReqVO pageReqVO, Page page); /** * 获得归档台账详情(按产品),包含项目信息、归档记录列表、设计资料列表 */ List getArchiveDetailByProductCode(String productCode); /** * 获得某项目下归档记录数量 */ Long getArchiveCountByProjectId(Long projectId); }