package cn.iocoder.yudao.module.mes.service.qc.ncr;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.ncr.vo.MesQcNcrDisposeReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.ncr.vo.MesQcNcrDisposeRespVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.ncr.vo.MesQcNcrPageReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.ncr.vo.MesQcNcrSaveReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.ncr.MesQcNcrDO;
|
import jakarta.validation.Valid;
|
|
import java.util.Collection;
|
import java.util.Map;
|
|
/**
|
* MES 不合格品处理单(NCR) Service 接口
|
*
|
* @author 超级管理员
|
*/
|
public interface MesQcNcrService {
|
|
/**
|
* 创建不合格品处理单
|
*
|
* @param createReqVO 创建信息
|
* @return 编号
|
*/
|
Long createNcr(@Valid MesQcNcrSaveReqVO createReqVO);
|
|
/**
|
* 更新不合格品处理单
|
*
|
* @param updateReqVO 更新信息
|
*/
|
void updateNcr(@Valid MesQcNcrSaveReqVO updateReqVO);
|
|
/**
|
* 删除不合格品处理单
|
*
|
* @param id 编号
|
*/
|
void deleteNcr(Long id);
|
|
/**
|
* 评审不合格品处理单
|
*
|
* @param id 编号
|
* @param disposition 处置方式
|
* @param responsibleDeptId 责任部门ID
|
* @param defectLevel 缺陷等级
|
* @param reviewOpinion 评审意见
|
*/
|
void reviewNcr(Long id, Integer disposition, Long responsibleDeptId, Integer defectLevel, String reviewOpinion);
|
|
/**
|
* 执行不合格品处置
|
* <p>
|
* 不同处置方式会联动生成业务单据并回写库存/生产:
|
* <ul>
|
* <li>让步放行(4):生成杂项入库单(原材料仓),自动提交并完成入库</li>
|
* <li>报废(2):生成杂项入库单(不合格品仓),自动提交并完成入库</li>
|
* <li>返工(3)/返修(6):生成自行生产类型的生产订单(草稿,工艺路线由人工补充)</li>
|
* </ul>
|
*
|
* @param disposeReqVO 处置信息(含入库仓库/库区/库位/批次号)
|
* @return 生成的业务单据信息
|
*/
|
MesQcNcrDisposeRespVO disposeNcr(@Valid MesQcNcrDisposeReqVO disposeReqVO);
|
|
/**
|
* 提交不合格品处理单审批
|
*
|
* @param id 编号
|
*/
|
void submitNcrApproval(Long id);
|
|
/**
|
* 更新不合格品处理单审批状态(BPM 流程回调)
|
*
|
* @param id 编号
|
* @param bpmResult BPM 审批结果
|
*/
|
void updateNcrAuditStatus(Long id, Integer bpmResult);
|
|
/**
|
* 关闭不合格品处理单
|
*
|
* @param id 编号
|
* @param closeOpinion 关闭意见
|
*/
|
void closeNcr(Long id, String closeOpinion);
|
|
/**
|
* 校验不合格品处理单存在
|
*
|
* @param id 编号
|
* @return 不合格品处理单
|
*/
|
MesQcNcrDO validateNcrExists(Long id);
|
|
/**
|
* 获得不合格品处理单
|
*
|
* @param id 编号
|
* @return 不合格品处理单
|
*/
|
MesQcNcrDO getNcr(Long id);
|
|
/**
|
* 获得不合格品处理单分页
|
*
|
* @param pageReqVO 分页查询
|
* @return 不合格品处理单分页
|
*/
|
PageResult<MesQcNcrDO> getNcrPage(MesQcNcrPageReqVO pageReqVO);
|
|
/**
|
* 批量获取不合格品处理单 Map
|
*
|
* @param ids 编号集合
|
* @return 不合格品处理单 Map
|
*/
|
Map<Long, MesQcNcrDO> getNcrMap(Collection<Long> ids);
|
|
}
|