Przeglądaj źródła

流程审批时,如果已经流程已经挂起的,根据最后一次操作的记录的消息进行提示

dzx 4 miesięcy temu
rodzic
commit
376986a150

+ 17 - 1
src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java

@@ -1728,6 +1728,22 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             throw new MyException("找不到此任务!");
         }
 
+        Optional<HistoricProcessInstance> historicProcessInstance = getHistoricProcessInstance(task.getProcessInstanceId());
+        HistoricProcessInstance historicProcess = historicProcessInstance.get();
+        //如果流程挂起了,报错
+        if (HistoricProcessInstance.STATE_SUSPENDED.equals(historicProcess.getState())) {
+            List<WorkflowRecord> recordList = workflowRecordMapper.selectList(
+                    new QueryWrapper<WorkflowRecord>().lambda()
+                            .eq(WorkflowRecord::getProcessId, task.getProcessInstanceId())
+                            .orderByDesc(WorkflowRecord::getRecordTime)
+            );
+            String message = "流程已挂起,无法审核";
+            if(!recordList.isEmpty()){
+                message = recordList.get(0).getMessage();
+            }
+            throw new MyException(message);
+        }
+
         //获取当前任务变量中的  schemaId
         Long schemaId = Convert.toLong(taskService.getVariable(task.getId(), WorkflowConstant.PROCESS_SCHEMA_ID_KEY));
 
@@ -1840,7 +1856,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
         List<LaunchAndApproveVo> result = new ArrayList<>();
 
-        Optional<HistoricProcessInstance> historicProcessInstance = getHistoricProcessInstance(task.getProcessInstanceId());
+
 
         try {
             for (FormConfig formConfig : userTaskConfig.getFormConfigs()) {