package org.dromara.workflow.flowable.cmd; import org.dromara.common.core.exception.ServiceException; import org.flowable.common.engine.impl.interceptor.Command; import org.flowable.common.engine.impl.interceptor.CommandContext; import org.flowable.engine.impl.persistence.entity.HistoricProcessInstanceEntity; import org.flowable.engine.impl.persistence.entity.HistoricProcessInstanceEntityManager; import org.flowable.engine.impl.util.CommandContextUtil; /** * 修改流程状态 * * @author may */ public class UpdateBusinessStatusCmd implements Command { private final String processInstanceId; private final String status; public UpdateBusinessStatusCmd(String processInstanceId, String status) { this.processInstanceId = processInstanceId; this.status = status; } @Override public Boolean execute(CommandContext commandContext) { try { HistoricProcessInstanceEntityManager manager = CommandContextUtil.getHistoricProcessInstanceEntityManager(); HistoricProcessInstanceEntity processInstance = manager.findById(processInstanceId); processInstance.setBusinessStatus(status); manager.update(processInstance); return true; } catch (Exception e) { throw new ServiceException(e.getMessage()); } } }