package cn.iocoder.yudao.module.mes.service.wms.approval; import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wms.approval.WmsWarehouseApprovalConfigDO; import java.util.List; /** * WMS 审批服务接口 */ public interface WmsApprovalService { /** * 获取仓库审批配置 * * @param warehouseId 仓库ID * @param bizType 业务类型 * @return 审批配置 */ WmsWarehouseApprovalConfigDO getApprovalConfig(Long warehouseId, String bizType); /** * 获取仓库所有审批配置 * * @param warehouseId 仓库ID * @return 审批配置列表 */ List getApprovalConfigList(Long warehouseId); /** * 保存审批配置 * * @param config 审批配置 */ void saveApprovalConfig(WmsWarehouseApprovalConfigDO config); /** * 检查是否需要审批 * * @param warehouseId 仓库ID * @param bizType 业务类型 * @return 是否需要审批 */ boolean needApproval(Long warehouseId, String bizType); /** * 提交审批 * * @param orderId 单据ID * @param orderType 单据类型(INBOUND/OUTBOUND/TRANSFER/CHECK) * @param processDefinitionKey 流程定义Key(可选,为空则使用配置的默认流程) * @param userId 用户ID * @return 流程实例ID */ String submitApproval(Long orderId, String orderType, String processDefinitionKey, Long userId); /** * 获取可用的审批流程列表 * * @param warehouseId 仓库ID * @param bizType 业务类型 * @return 流程定义列表 */ List getAvailableProcessList(Long warehouseId, String bizType); /** * 更新审批状态 * * @param orderId 单据ID * @param orderType 单据类型 * @param bpmStatus BPM审批状态 */ void updateAuditStatus(Long orderId, String orderType, Integer bpmStatus); }