package cn.iocoder.yudao.module.mes.service.pd.project; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.controller.admin.pd.project.vo.MesPdProjectPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pd.project.vo.MesPdProjectSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pd.project.MesPdProjectDO; import jakarta.validation.Valid; import java.util.Collection; import java.util.List; import java.util.Map; /** * MES 设计项目 Service 接口 * * @author 芋道源码 */ public interface MesPdProjectService { /** * 创建设计项目 * * @param createReqVO 创建信息 * @return 编号 */ Long createProject(@Valid MesPdProjectSaveReqVO createReqVO); /** * 更新设计项目 * * @param updateReqVO 更新信息 */ void updateProject(@Valid MesPdProjectSaveReqVO updateReqVO); /** * 删除设计项目 * * @param id 编号 */ void deleteProject(Long id); /** * 校验设计项目是否存在 * * @param id 编号 * @return 设计项目 */ MesPdProjectDO validateProjectExists(Long id); /** * 获得设计项目 * * @param id 编号 * @return 设计项目 */ MesPdProjectDO getProject(Long id); /** * 获得设计项目分页 * * @param pageReqVO 分页查询 * @return 设计项目分页 */ PageResult getProjectPage(MesPdProjectPageReqVO pageReqVO); /** * 发布设计项目(待发布→待上传) * * @param id 编号 */ void publishProject(Long id); /** * 上传资料(待上传→待审核) *

* 同时自动为该项目下所有资料创建审核记录 * * @param id 编号 * @param userId 当前登录用户ID */ void uploadProject(Long id, Long userId); /** * 审核设计项目(待审核→待归档) * * @param id 编号 */ void auditProject(Long id); /** * 归档设计项目(待归档→已归档) *

* 同时自动创建归档台账记录 * * @param id 编号 * @param userId 当前登录用户ID */ void archiveProject(Long id, Long userId); /** * 批量获取设计项目 Map * * @param ids 编号集合 * @return 设计项目 Map */ Map getProjectMap(Collection ids); List getProjectByProductCode(String productCode); }