Selaa lähdekoodia

流程流转信息接口

大数据与最优化研究所 1 vuosi sitten
vanhempi
commit
674eda49f2

+ 37 - 14
src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java

@@ -1904,8 +1904,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 xjrWorkflowOperateRecord.setNodeMultiType(WorkflowMultiInstanceType.NONE.getCode());
                 //时间设值必须写在complete上面,防止用户任务节点监听时的流程信息,在次任务前面。
                 xjrWorkflowOperateRecord.setRecordTime(LocalDateTime.now());
-                //当前任务的名称
-                String oldTaskNameCustom = task.getName();
+                xjrWorkflowOperateRecord.setCirculateMessage(circulateMessage);
                 xjrWorkflowOperateRecord.setCirculateMessage(circulateMessage);
 
                 taskService.complete(task.getId());
@@ -1921,7 +1920,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 //新增工作流程信息数据
                 addWorkflowRecord(userTaskConfig, nextTaskNameList, user, record, oldTaskName, buttonConfig.getButtonName(), dto.getApprovedContent(), task, resultName);
 
-                addCustomWorkflowRecord(userTaskConfig, nextTaskNameList, user, xjrWorkflowOperateRecord, oldTaskNameCustom, buttonConfig.getButtonName(), dto.getApprovedContent(), task, resultName);
+                addCustomWorkflowRecord(userTaskConfig, nextTaskNameList, user, xjrWorkflowOperateRecord, oldTaskName, buttonConfig.getButtonName(), dto.getApprovedContent(), task, resultName);
 
             }
 
@@ -1970,7 +1969,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     xjrWorkflowOperateRecord.setUsageScenario(1);
 
 //                    record.setMessage("【审批人:" + user.getName() + "】 将 【任务:" + task.getName() + "】 驳回到 【任务:" + rejectUserTaskConfig.getName() + "】");
-                    String message = "审批人:" + user.getName() + ", 审批结果:驳回, 审批内容:驳回";
+                    String message = "审批人:" + user.getName() + ", 审批结果:驳回, 审批内容:" + dto.getApprovedContent();
                     xjrWorkflowOperateRecord.setOperateInfo(message);
                     xjrWorkflowOperateRecordMapper.insert(xjrWorkflowOperateRecord);
                 });
@@ -4391,8 +4390,6 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         List<Long> allUserIds = new ArrayList<>();//所有自动同意审批的用户id
         //新增流程发起流程记录
         WorkflowRecord record = new WorkflowRecord();
-        //自定义流程发起记录
-        XjrWorkflowOperateRecord xjrWorkflowOperateRecord = new XjrWorkflowOperateRecord();
 
         //候选审批人包含流程任务发起人
         if (autoAgreeConfig.contains(WorkflowAutoAgreeType.APPROVED_INCLUDE_INITIATOR.getCode())) {
@@ -4462,9 +4459,6 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             //自动同意之后完成本次任务
             record.setRecordTime(LocalDateTime.now());
 
-            xjrWorkflowOperateRecord.setRecordTime(LocalDateTime.now());
-
-
             taskService.complete(task.getId());
             List<Task> list = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list();
             String allOpinions = StringPool.EMPTY;
@@ -4478,19 +4472,15 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 String allNextTaskName = StrUtil.join(StringPool.SPACE, list.parallelStream().map(t -> "【" + t.getName() + "】").collect(Collectors.toList()));
 
                 String message = "【" + approveName + "】【自动同意】 审批, 审批意见为:“【" + allOpinions + "】”,由【" + task.getName() + "】流转到 " + allNextTaskName;
-                String operateInfo = "审批人:" + approveName + ", 审批结果:" + allOpinions + ", 审批内容:自动同意";
 
                 addProcessRecord(task, schemaId, message, record);
-                addCustomProcessRecord(task, schemaId, operateInfo, xjrWorkflowOperateRecord);
 
                 // 如果还有用户任务  则递归调用
                 invokeAutoAgree(processInstanceId, schemaId, workflowSchemaConfig, list);
             } else {
                 String message = "【" + approveName + "】【自动同意】 审批, 审批意见为:“【" + allOpinions + "】”,由【" + task.getName() + "】流转到 结束节点";
-                String operateInfo = "审批人:" + approveName + ", 审批结果:" + allOpinions + ", 审批内容:自动同意";
 
                 addProcessRecord(task, schemaId, message, record);
-                addCustomProcessRecord(task, schemaId, operateInfo, xjrWorkflowOperateRecord);
             }
         }
 
@@ -4798,7 +4788,6 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         record.setProcessId(task.getProcessInstanceId());
         record.setSchemaId(schemaId);
         record.setNodeMultiType(WorkflowMultiInstanceType.NONE.getCode());
-
         record.setMessage(message);
 
         workflowRecordService.save(record);
@@ -5172,6 +5161,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 record.setOperateInfo(message);
             }
         }
+        record.setUsageScenario(1);
         xjrWorkflowOperateRecordMapper.insert(record);
     }
 
@@ -5310,6 +5300,20 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 //                    record.setMessage("【审批人:" + user.getName() + "】 将 【任务:" + task.getName() + "】 驳回到 【任务:" + rejectUserTaskConfig.getName() + "】");
                 record.setMessage("审批信息:由于审批超时,【系统】【自动驳回】审批,审批意见为:“系统自动驳回审批”,由【" + task.getName() + "】 流转到【" + rejectUserTaskConfig.getName() + "】");
                 workflowRecordMapper.insert(record);
+
+                //新增流程发起流程记录
+                XjrWorkflowOperateRecord operateRecord = new XjrWorkflowOperateRecord();
+                operateRecord.setNodeId(task.getId());
+                operateRecord.setNodeName(task.getName());
+                operateRecord.setNodeType(WorkflowConstant.USER_TASK_TYPE_NAME);
+                operateRecord.setProcessId(task.getProcessInstanceId());
+                operateRecord.setSchemaId(schemaId);
+                operateRecord.setNodeMultiType(WorkflowMultiInstanceType.NONE.getCode());
+                operateRecord.setRecordTime(LocalDateTime.now().minusSeconds(+1));//时间设置提前1秒钟,好排序
+                operateRecord.setUsageScenario(1);
+
+                operateRecord.setOperateInfo("审批人:" + task.getName() + ", 审批结果:驳回, 审批内容:由于审批超时,系统自动驳回审批");
+                xjrWorkflowOperateRecordMapper.insert(operateRecord);
             });
         } else if (handleType == 2) {//同意
             //新增流程发起流程记录
@@ -5322,6 +5326,18 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             record.setNodeMultiType(WorkflowMultiInstanceType.NONE.getCode());
             //时间设值必须写在complete上面,防止用户任务节点监听时的流程信息,在次任务前面。
             record.setRecordTime(LocalDateTime.now());
+
+            //新增流程发起流程记录
+            XjrWorkflowOperateRecord operateRecord = new XjrWorkflowOperateRecord();
+            operateRecord.setNodeId(task.getId());
+            operateRecord.setNodeName(task.getName());
+            operateRecord.setNodeType(WorkflowConstant.USER_TASK_TYPE_NAME);
+            operateRecord.setProcessId(task.getProcessInstanceId());
+            operateRecord.setSchemaId(schemaId);
+            operateRecord.setNodeMultiType(WorkflowMultiInstanceType.NONE.getCode());
+            //时间设值必须写在complete上面,防止用户任务节点监听时的流程信息,在次任务前面。
+            operateRecord.setRecordTime(LocalDateTime.now());
+
             //当前任务的名称
             String oldTaskName = task.getName();
 
@@ -5339,11 +5355,15 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             if (nextTaskNameList.size() == 0) {
                 String message = "审批信息:由于审批超时,【系统】【自动同意】审批,审批意见为:“系统自动同意审批”,由【" + oldTaskName + "】 流转到【" + "结束节点" + "】";
                 record.setMessage(message);
+
+                operateRecord.setOperateInfo("审批人:" +oldTaskName + ", 审批结果:同意, 审批内容:由于审批超时,系统自动同意审批");
             }
             //单流向
             if (nextTaskNameList.size() == 1) {
                 String message = "审批信息:由于审批超时,【系统】【自动同意】审批,审批意见为:“系统自动同意审批”,由【" + oldTaskName + "】 流转到【" + nextTaskNameList.get(0) + "】";
                 record.setMessage(message);
+
+                operateRecord.setOperateInfo("审批人:" +oldTaskName + ", 审批结果:同意, 审批内容:由于审批超时,系统自动同意审批");
             }//多流向
             if (nextTaskNameList.size() > 1) {
                 String message = "审批信息:由于审批超时,【系统】【自动同意】审批,审批意见为:“系统自动同意审批”,由【" + oldTaskName + "】 流转到【" + nextTaskNameList.get(0) + "】";
@@ -5351,9 +5371,12 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     message = message + "、【" + nextTaskNameList.get(i) + "】";
                 }
                 record.setMessage(message);
+
+                operateRecord.setOperateInfo("审批人:" +oldTaskName + ", 审批结果:同意, 审批内容:由于审批超时,系统自动同意审批");
             }
 
             workflowRecordMapper.insert(record);
+            xjrWorkflowOperateRecordMapper.insert(operateRecord);
         }
         return true;
     }