diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java index 47c34434..524ff000 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java @@ -28,7 +28,9 @@ import com.jero.modules.sys.utils.UserUtils; import com.jero.modules.system.service.ISysUserDepartService; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -64,7 +66,8 @@ public class ProcessEsChangeServiceImpl extends ServiceImpl flowUser = changeData.getFlowUser(); String taskId = commonVO.getTaskId(); + // 获取流程实例ID + String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) { throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS); } - String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); + // 获取流程实例对象 + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId).singleResult(); + // 获取流程定义ID + String processDefinitionId = processInstance.getProcessDefinitionId(); + ProcessEsChange data = changeData.getData(); + if (data != null) { + updateById(data); + // 根据流程实例id更新流程总表 + String prcName = commonVO.getPrcName(); + String prcMes = commonVO.getPrcMes(); + Date dueTime = commonVO.getDueTime(); + Integer prcType = ProcessTypeEnum.ES_CHANGE.getValue(); + actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime); + } + if (flowUser != null) { + Map variables = setVariables(flowUser); + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + // 获取执行id + String executionId = task.getExecutionId(); + // 设置流程变量 + runtimeService.setVariables(executionId, variables); + processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(flowUser)); + } // 设置流程变量 runtimeService.setVariable(processInstanceId, "pass", pass); // 更新审批表为完成,填充数据