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;
|
import java.util.Set;
|
|
/**
|
* 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<MesPdProjectDO> getProjectPage(MesPdProjectPageReqVO pageReqVO);
|
|
/**
|
* 发布设计项目(待发布→待上传)
|
*
|
* @param id 编号
|
*/
|
void publishProject(Long id);
|
|
/**
|
* 上传资料(待上传→待审核)
|
* <p>
|
* 同时自动为该项目下所有资料创建审核记录
|
*
|
* @param id 编号
|
* @param userId 当前登录用户ID
|
*/
|
void uploadProject(Long id, Long userId);
|
|
/**
|
* 提交设计项目审批(待审核→审批中)
|
*
|
* 审核人由「系统管理 - 审批配置」按业务类型统一配置(业务编码 mes_pd_project_approve),
|
* 提交时无需指定;未启用审批或未配置有效审核人时抛出业务异常。
|
*
|
* @param id 编号
|
*/
|
void submitProjectApproval(Long id);
|
|
/**
|
* 获得设计项目审批的审核人编号集合
|
*
|
* 供前端判断当前登录用户是否应展示「审核」按钮;未配置时返回空集合。
|
*
|
* @return 审核人用户编号集合
|
*/
|
Set<Long> getProjectApproverUserIds();
|
|
/**
|
* 审核设计项目(审批中→待归档 / 待审核)
|
*
|
* 仅业务编码 mes_pd_project_approve 配置的审核人可操作(多人时或签),且仅在审批中状态下允许。
|
* 审核通过置为待归档;审核不通过必须填写原因,退回待审核状态可修改后重新提交。
|
*
|
* @param id 编号
|
* @param pass 是否通过,true=通过 / false=不通过
|
* @param reviewRemark 审核意见,审核不通过时必填
|
*/
|
void auditProject(Long id, Boolean pass, String reviewRemark);
|
|
/**
|
* 归档设计项目(待归档→已归档)
|
* <p>
|
* 同时自动创建归档台账记录
|
*
|
* @param id 编号
|
* @param userId 当前登录用户ID
|
*/
|
void archiveProject(Long id, Long userId);
|
|
/**
|
* 批量获取设计项目 Map
|
*
|
* @param ids 编号集合
|
* @return 设计项目 Map
|
*/
|
Map<Long, MesPdProjectDO> getProjectMap(Collection<Long> ids);
|
|
List<MesPdProjectDO> getProjectByProductCode(String productCode);
|
|
}
|