package cn.iocoder.yudao.module.mes.service.pd.techconfirm; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.controller.admin.pd.techconfirm.vo.ProductTechConfirmPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pd.techconfirm.vo.ProductTechConfirmSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pd.techconfirm.ProductTechConfirmDO; import java.util.Set; /** * MES 产品技术确认函 Service 接口 * * 状态流转完全由业务流程驱动,不接受前端直接指定状态: *
* 0 草稿 --提交审核--> 1 待审核 --审核通过--> 2 已审核 --客户确认--> 3 客户已确认 * ^ | * | +--审核不通过--> 4 审核不通过 * | | * +----------------------------------------+ 审核不通过可修改后重新提交 ** 只有草稿与审核不通过状态允许修改业务字段,待审核 / 已审核 / 客户已确认为锁定或终态。 * * @author 超级管理员 */ public interface ProductTechConfirmService { /** * 创建技术确认函 * * 状态固定为草稿,编制人 / 编制时间取当前登录用户与当前时间。 * * @param createReqVO 创建信息 * @return 编号 */ Long createTechConfirm(ProductTechConfirmSaveReqVO createReqVO); /** * 修改技术确认函 * * 仅草稿与审核不通过状态允许修改,其余状态一律拒绝。 * * @param updateReqVO 修改信息 */ void updateTechConfirm(ProductTechConfirmSaveReqVO updateReqVO); /** * 删除技术确认函 * * 仅草稿与审核不通过状态允许删除。 * * @param id 编号 */ void deleteTechConfirm(Long id); /** * 获得技术确认函 * * @param id 编号 * @return 技术确认函 */ ProductTechConfirmDO getTechConfirm(Long id); /** * 获得技术确认函分页 * * @param pageReqVO 分页查询 * @return 技术确认函分页 */ PageResult