Forráskód Böngészése

文件下载重构,流程流转单独抽出接口

大数据与最优化研究所 1 éve
szülő
commit
bf2aef9f4d

+ 1 - 1
src/main/java/com/xjrsoft/module/system/controller/FileController.java

@@ -232,6 +232,6 @@ public class FileController {
     @ApiOperation(value = "下载文件")
     public ResponseEntity<byte[]> download(@Valid FileDownloadDto dto) {
         byte[] resultBtyeAry_temp = fileService.downloadFileByZip(dto.getFolderId());
-        return RT.fileStream(resultBtyeAry_temp, "file.zip");
+        return RT.fileStream(resultBtyeAry_temp, dto.getFileName() + ".zip");
     }
 }

+ 2 - 0
src/main/java/com/xjrsoft/module/system/dto/FileDownloadDto.java

@@ -15,4 +15,6 @@ public class FileDownloadDto {
      * 文件夹id
      */
     private Long folderId;
+
+    private String fileName;
 }

+ 25 - 11
src/main/java/com/xjrsoft/module/system/service/impl/FileServiceImpl.java

@@ -48,23 +48,37 @@ public class FileServiceImpl extends MPJBaseServiceImpl<FileMapper, File> implem
         //声明一个Map,将所有文件装进去,map的key是完整的文件名
         Map<String, byte[]> byteAryMap = new HashMap<>();
 
-        try {
-            for (int i = 0; i < fileList.size(); i++) {
+        for (int i = 0; i < fileList.size(); i++) {
+//            String localFilePath = "C:\\Users\\大数据与最优化研究所\\Downloads\\" + fileList.get(i).getFileName() + fileList.get(i).getFileType();
+//            System.err.println(localFilePath);
+            try {
                 URL url = new URL(fileList.get(i).getFileUrl());
                 URLConnection conn = url.openConnection();
                 InputStream in = conn.getInputStream();
+//                        FileOutputStream fos = new FileOutputStream(localFilePath)
+                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+                byte[] buffer = new byte[1024];
+                int bytesRead;
+                while ((bytesRead = in.read(buffer)) != -1) {
+                    outputStream.write(buffer, 0, bytesRead);
+                }
+                byte[] byteArray = outputStream.toByteArray();
+                byteAryMap.put(fileList.get(i).getFileName() + fileList.get(i).getFileType(), byteArray);
+//                    System.err.println(byteArray.length);
+//                    outputStream.writeTo(fos);
 
-                byte[] bytes = FileZipUtil.byteArray(in, true);
-
-                byteAryMap.put(fileList.get(i).getFileName(), bytes);
+//                System.out.println("File downloaded successfully.");
+                in.close();
+                outputStream.close();
+            } catch (MalformedURLException e) {
+                throw new RuntimeException(e);
+            } catch (FileNotFoundException e) {
+                throw new RuntimeException(e);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
             }
-        } catch (Exception e) {
-            throw new RuntimeException(e);
         }
-
         //执行下面这段代码就可以拿到压缩之后的byte数组
-        byte[] resultBtyeAry_temp = FileZipUtil.byteAryMap2Zip(byteAryMap);
-
-        return resultBtyeAry_temp;
+        return FileZipUtil.byteAryMap2Zip(byteAryMap);
     }
 }

+ 10 - 42
src/main/java/com/xjrsoft/module/workflow/controller/WorkflowExecuteController.java

@@ -7,52 +7,15 @@ import com.xjrsoft.common.model.result.R;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.module.ledger.dto.WfSubscriptionPageDto;
-import com.xjrsoft.module.ledger.vo.WfSubscriptionPageVo;
-import com.xjrsoft.module.workflow.dto.AddOrSubSignDto;
-import com.xjrsoft.module.workflow.dto.ApproveDto;
-import com.xjrsoft.module.workflow.dto.ApproveMultiDto;
-import com.xjrsoft.module.workflow.dto.ApproveMultiInfoDto;
-import com.xjrsoft.module.workflow.dto.ApproveUserDto;
-import com.xjrsoft.module.workflow.dto.ApproveUserMultiDto;
-import com.xjrsoft.module.workflow.dto.CirculatedTaskPageDto;
-import com.xjrsoft.module.workflow.dto.DeployDto;
-import com.xjrsoft.module.workflow.dto.DraftPageDto;
-import com.xjrsoft.module.workflow.dto.FinishedTaskPageDto;
-import com.xjrsoft.module.workflow.dto.FormFinishedTaskDto;
-import com.xjrsoft.module.workflow.dto.GetAssigneeDto;
-import com.xjrsoft.module.workflow.dto.LaunchDto;
-import com.xjrsoft.module.workflow.dto.MonitorPageDto;
-import com.xjrsoft.module.workflow.dto.MoveRecycleDto;
-import com.xjrsoft.module.workflow.dto.MyExaminePageDto;
-import com.xjrsoft.module.workflow.dto.MyProcessPageDto;
-import com.xjrsoft.module.workflow.dto.PendingTaskPageDto;
-import com.xjrsoft.module.workflow.dto.ReLaunchDto;
-import com.xjrsoft.module.workflow.dto.RecycleDeleteDto;
-import com.xjrsoft.module.workflow.dto.RecycleProcessPageDto;
-import com.xjrsoft.module.workflow.dto.RejectNodeDto;
-import com.xjrsoft.module.workflow.dto.RelationTaskInfoDto;
-import com.xjrsoft.module.workflow.dto.RelationTaskPageDto;
-import com.xjrsoft.module.workflow.dto.RestartDto;
-import com.xjrsoft.module.workflow.dto.SaveDraftDto;
-import com.xjrsoft.module.workflow.dto.SetAssigneeDto;
-import com.xjrsoft.module.workflow.dto.SetSuspendedDto;
-import com.xjrsoft.module.workflow.dto.TransferDto;
-import com.xjrsoft.module.workflow.dto.UpdateDraftDto;
-import com.xjrsoft.module.workflow.dto.WithdrawDto;
+import com.xjrsoft.module.workflow.dto.*;
 import com.xjrsoft.module.workflow.service.IWorkflowExecuteService;
 import com.xjrsoft.module.workflow.vo.PendingTaskVo;
+import com.xjrsoft.module.workflow.vo.ProcessRecordListVo;
+import com.xjrsoft.module.workflow.vo.UserDefinedProcessRecordListVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -364,5 +327,10 @@ public class WorkflowExecuteController {
         return RT.ok(pageOutput);
     }
 
-
+    @GetMapping("/approve-record-list")
+    @ApiOperation(value = "自定义流程记录列表")
+    public RT<List<UserDefinedProcessRecordListVo>> approveRecordList(@Valid ApproveRecordListDto dto) {
+        List<UserDefinedProcessRecordListVo> userDefinedProcessRecordListVos = workflowExecuteService.listApproveRecord(dto);
+        return RT.ok(userDefinedProcessRecordListVos);
+    }
 }

+ 4 - 58
src/main/java/com/xjrsoft/module/workflow/service/IWorkflowExecuteService.java

@@ -2,64 +2,8 @@ package com.xjrsoft.module.workflow.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.module.workflow.dto.AddOrSubSignDto;
-import com.xjrsoft.module.workflow.dto.ApproveDto;
-import com.xjrsoft.module.workflow.dto.ApproveMultiDto;
-import com.xjrsoft.module.workflow.dto.ApproveMultiInfoDto;
-import com.xjrsoft.module.workflow.dto.ApproveUserDto;
-import com.xjrsoft.module.workflow.dto.ApproveUserMultiDto;
-import com.xjrsoft.module.workflow.dto.CirculatedTaskPageDto;
-import com.xjrsoft.module.workflow.dto.DeployDto;
-import com.xjrsoft.module.workflow.dto.DraftPageDto;
-import com.xjrsoft.module.workflow.dto.FinishedTaskPageDto;
-import com.xjrsoft.module.workflow.dto.FormFinishedTaskDto;
-import com.xjrsoft.module.workflow.dto.GetAssigneeDto;
-import com.xjrsoft.module.workflow.dto.LaunchDto;
-import com.xjrsoft.module.workflow.dto.MonitorPageDto;
-import com.xjrsoft.module.workflow.dto.MoveRecycleDto;
-import com.xjrsoft.module.workflow.dto.MyExaminePageDto;
-import com.xjrsoft.module.workflow.dto.MyProcessPageDto;
-import com.xjrsoft.module.workflow.dto.PendingTaskPageDto;
-import com.xjrsoft.module.workflow.dto.ReLaunchDto;
-import com.xjrsoft.module.workflow.dto.RecycleDeleteDto;
-import com.xjrsoft.module.workflow.dto.RecycleProcessPageDto;
-import com.xjrsoft.module.workflow.dto.RejectNodeDto;
-import com.xjrsoft.module.workflow.dto.RelationTaskInfoDto;
-import com.xjrsoft.module.workflow.dto.RelationTaskPageDto;
-import com.xjrsoft.module.workflow.dto.RestartDto;
-import com.xjrsoft.module.workflow.dto.SaveDraftDto;
-import com.xjrsoft.module.workflow.dto.SetAssigneeDto;
-import com.xjrsoft.module.workflow.dto.SetSuspendedDto;
-import com.xjrsoft.module.workflow.dto.TransferDto;
-import com.xjrsoft.module.workflow.dto.UpdateDraftDto;
-import com.xjrsoft.module.workflow.dto.WithdrawDto;
-import com.xjrsoft.module.workflow.vo.AllRecordListVo;
-import com.xjrsoft.module.workflow.vo.ApproveMultiInfoVo;
-import com.xjrsoft.module.workflow.vo.ApproveMultiVo;
-import com.xjrsoft.module.workflow.vo.CirculatedTaskPageVo;
-import com.xjrsoft.module.workflow.vo.DraftInfoVo;
-import com.xjrsoft.module.workflow.vo.DraftPageVo;
-import com.xjrsoft.module.workflow.vo.FinishedTaskPageVo;
-import com.xjrsoft.module.workflow.vo.FinishedTaskVo;
-import com.xjrsoft.module.workflow.vo.FormFinishedTaskVo;
-import com.xjrsoft.module.workflow.vo.GetAssigneeVo;
-import com.xjrsoft.module.workflow.vo.GetCountVo;
-import com.xjrsoft.module.workflow.vo.HistoryTaskVo;
-import com.xjrsoft.module.workflow.vo.LaunchAndApproveVo;
-import com.xjrsoft.module.workflow.vo.MonitorPageVo;
-import com.xjrsoft.module.workflow.vo.MyProcessPageVo;
-import com.xjrsoft.module.workflow.vo.PendingTaskVo;
-import com.xjrsoft.module.workflow.vo.ProcessInfoVo;
-import com.xjrsoft.module.workflow.vo.ProcessRecordListVo;
-import com.xjrsoft.module.workflow.vo.RecycleProcessInfoVo;
-import com.xjrsoft.module.workflow.vo.RecycleProcessPageVo;
-import com.xjrsoft.module.workflow.vo.RejectNodeVo;
-import com.xjrsoft.module.workflow.vo.RelationTaskInfoVo;
-import com.xjrsoft.module.workflow.vo.RelationTaskPageVo;
-import com.xjrsoft.module.workflow.vo.RestartVo;
-import com.xjrsoft.module.workflow.vo.StartProcessInfoVo;
-import com.xjrsoft.module.workflow.vo.TaskInfoVo;
-import com.xjrsoft.module.workflow.vo.UserTaskInfoVo;
+import com.xjrsoft.module.workflow.dto.*;
+import com.xjrsoft.module.workflow.vo.*;
 
 import java.util.List;
 
@@ -439,4 +383,6 @@ public interface IWorkflowExecuteService {
 
     Boolean dealTimeoutTask(Integer handleType,String taskId);
 
+    List<UserDefinedProcessRecordListVo> listApproveRecord(ApproveRecordListDto dto);
+
 }

+ 80 - 121
src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java

@@ -55,38 +55,7 @@ import com.xjrsoft.module.system.entity.Stamp;
 import com.xjrsoft.module.system.service.IFileService;
 import com.xjrsoft.module.system.service.IStampService;
 import com.xjrsoft.module.workflow.constant.WorkflowConstant;
-import com.xjrsoft.module.workflow.dto.AddOrSubSignDto;
-import com.xjrsoft.module.workflow.dto.ApproveDto;
-import com.xjrsoft.module.workflow.dto.ApproveMultiDto;
-import com.xjrsoft.module.workflow.dto.ApproveMultiInfoDto;
-import com.xjrsoft.module.workflow.dto.ApproveUserDto;
-import com.xjrsoft.module.workflow.dto.ApproveUserMultiDto;
-import com.xjrsoft.module.workflow.dto.CirculatedTaskPageDto;
-import com.xjrsoft.module.workflow.dto.DeployDto;
-import com.xjrsoft.module.workflow.dto.DraftPageDto;
-import com.xjrsoft.module.workflow.dto.FinishedTaskPageDto;
-import com.xjrsoft.module.workflow.dto.FormFinishedTaskDto;
-import com.xjrsoft.module.workflow.dto.GetAssigneeDto;
-import com.xjrsoft.module.workflow.dto.LaunchDto;
-import com.xjrsoft.module.workflow.dto.LaunchRelationTaskDto;
-import com.xjrsoft.module.workflow.dto.MonitorPageDto;
-import com.xjrsoft.module.workflow.dto.MoveRecycleDto;
-import com.xjrsoft.module.workflow.dto.MyExaminePageDto;
-import com.xjrsoft.module.workflow.dto.MyProcessPageDto;
-import com.xjrsoft.module.workflow.dto.PendingTaskPageDto;
-import com.xjrsoft.module.workflow.dto.ReLaunchDto;
-import com.xjrsoft.module.workflow.dto.RecycleDeleteDto;
-import com.xjrsoft.module.workflow.dto.RecycleProcessPageDto;
-import com.xjrsoft.module.workflow.dto.RejectNodeDto;
-import com.xjrsoft.module.workflow.dto.RelationTaskInfoDto;
-import com.xjrsoft.module.workflow.dto.RelationTaskPageDto;
-import com.xjrsoft.module.workflow.dto.RestartDto;
-import com.xjrsoft.module.workflow.dto.SaveDraftDto;
-import com.xjrsoft.module.workflow.dto.SetAssigneeDto;
-import com.xjrsoft.module.workflow.dto.SetSuspendedDto;
-import com.xjrsoft.module.workflow.dto.TransferDto;
-import com.xjrsoft.module.workflow.dto.UpdateDraftDto;
-import com.xjrsoft.module.workflow.dto.WithdrawDto;
+import com.xjrsoft.module.workflow.dto.*;
 import com.xjrsoft.module.workflow.entity.*;
 import com.xjrsoft.module.workflow.mapper.*;
 import com.xjrsoft.module.workflow.model.ApiConfig;
@@ -103,40 +72,7 @@ import com.xjrsoft.module.workflow.model.UserTaskConfig;
 import com.xjrsoft.module.workflow.model.WorkflowSchemaConfig;
 import com.xjrsoft.module.workflow.service.*;
 import com.xjrsoft.module.workflow.utils.WorkFlowUtil;
-import com.xjrsoft.module.workflow.vo.AllRecordListVo;
-import com.xjrsoft.module.workflow.vo.ApproveMultiInfoVo;
-import com.xjrsoft.module.workflow.vo.ApproveMultiVo;
-import com.xjrsoft.module.workflow.vo.CirculatedTaskPageVo;
-import com.xjrsoft.module.workflow.vo.DraftInfoVo;
-import com.xjrsoft.module.workflow.vo.DraftPageVo;
-import com.xjrsoft.module.workflow.vo.FinishedTaskPageVo;
-import com.xjrsoft.module.workflow.vo.FinishedTaskVo;
-import com.xjrsoft.module.workflow.vo.FormFinishedTaskVo;
-import com.xjrsoft.module.workflow.vo.GetAssigneeVo;
-import com.xjrsoft.module.workflow.vo.GetCountVo;
-import com.xjrsoft.module.workflow.vo.HistoryTaskVo;
-import com.xjrsoft.module.workflow.vo.LaunchAndApproveVo;
-import com.xjrsoft.module.workflow.vo.MonitorPageVo;
-import com.xjrsoft.module.workflow.vo.MyProcessPageVo;
-import com.xjrsoft.module.workflow.vo.PendingTaskVo;
-import com.xjrsoft.module.workflow.vo.ProcessInfoVo;
-import com.xjrsoft.module.workflow.vo.ProcessRecordListVo;
-import com.xjrsoft.module.workflow.vo.RecycleProcessInfoVo;
-import com.xjrsoft.module.workflow.vo.RecycleProcessPageVo;
-import com.xjrsoft.module.workflow.vo.RejectNodeVo;
-import com.xjrsoft.module.workflow.vo.RelationFormInfoVo;
-import com.xjrsoft.module.workflow.vo.RelationTaskInfoVo;
-import com.xjrsoft.module.workflow.vo.RelationTaskPageVo;
-import com.xjrsoft.module.workflow.vo.RestartVo;
-import com.xjrsoft.module.workflow.vo.StartNodeFormInfoVo;
-import com.xjrsoft.module.workflow.vo.StartProcessInfoVo;
-import com.xjrsoft.module.workflow.vo.StartProcessRelationTaskVo;
-import com.xjrsoft.module.workflow.vo.TaskInfoRelationTaskVo;
-import com.xjrsoft.module.workflow.vo.TaskInfoVo;
-import com.xjrsoft.module.workflow.vo.UserTaskFormInfoVo;
-import com.xjrsoft.module.workflow.vo.UserTaskInfoVo;
-import com.xjrsoft.module.workflow.vo.UserTaskRelationTaskVo;
-import com.xjrsoft.module.workflow.vo.WorkflowSchemaInfoVo;
+import com.xjrsoft.module.workflow.vo.*;
 import lombok.AllArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -545,15 +481,14 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
             HistoricVariableInstance historicVariableInstance = historyService.createHistoricVariableInstanceQuery().processInstanceId(superProcessInstanceId).variableName(WorkflowConstant.PROCESS_SCHEMA_NAME_KEY).singleResult();
             //获取主流程审批记录
-            // List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(superProcessInstanceId, 0);
-            List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(superProcessInstanceId, 0);
+            List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(superProcessInstanceId, 0);
+            // List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(superProcessInstanceId, 0);
 
             Map<String, Object> superProcessMap = new HashMap<>();
             superProcessMap.put("schemaName", historicVariableInstance.getValue() + "(上级流程)");
             superProcessMap.put("records", processRecordListVos);
 
             otherProcessApproveRecord.add(superProcessMap);
-
         }
 
         //查看当前流程 是否包含子流程
@@ -572,8 +507,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     superProcessMap.put("schemaName", schemaNameVar.getValue() + "(下级流程)");
 
                     //获取主流程审批记录
-                    // List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
-                    List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
+                    List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
+                    // List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
                     superProcessMap.put("records", processRecordListVos);
 
                     otherProcessApproveRecord.add(superProcessMap);
@@ -582,8 +517,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         }
         //TODO  新增返回值  返回 主/子 流程 审批记录
 
-        // List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(task.getProcessInstanceId(), 0);
-        List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(task.getProcessInstanceId(), 0);
+        List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(task.getProcessInstanceId(), 0);
+        // List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(task.getProcessInstanceId(), 0);
         vo.setTaskRecords(recordListVos);
         vo.setOtherProcessApproveRecord(otherProcessApproveRecord);
         return vo;
@@ -787,8 +722,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
                     HistoricVariableInstance historicVariableInstance = historyService.createHistoricVariableInstanceQuery().processInstanceId(superProcessInstanceId).variableName(WorkflowConstant.PROCESS_SCHEMA_NAME_KEY).singleResult();
                     //获取主流程审批记录
-                    // List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(superProcessInstanceId, 0);
-                    List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(superProcessInstanceId, 0);
+                    List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(superProcessInstanceId, 0);
+                    // List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(superProcessInstanceId, 0);
 
                     Map<String, Object> superProcessMap = new HashMap<>();
                     superProcessMap.put("schemaName", historicVariableInstance.getValue() + "(上级流程)");
@@ -812,8 +747,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                             superProcessMap.put("schemaName", schemaNameVar.getValue() + "(下级流程)");
 
                             //获取主流程审批记录
-                            // List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
-                            List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
+                            List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
+                            // List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
                             superProcessMap.put("records", processRecordListVos);
 
                             otherProcessApproveRecord.add(superProcessMap);
@@ -822,8 +757,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 }
                 //TODO  新增返回值  返回 主/子 流程 审批记录
 
-                // List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(processId, 0);
-                List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(processId, 0);
+                List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(processId, 0);
+                // List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(processId, 0);
                 vo.setTaskRecords(recordListVos);
                 vo.setOtherProcessApproveRecord(otherProcessApproveRecord);
             }
@@ -909,8 +844,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
                     HistoricVariableInstance historicVariableInstance = historyService.createHistoricVariableInstanceQuery().processInstanceId(superProcessInstanceId).variableName(WorkflowConstant.PROCESS_SCHEMA_NAME_KEY).singleResult();
                     //获取主流程审批记录
-                    // List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(superProcessInstanceId, 0);
-                    List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(superProcessInstanceId, 0);
+                    List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(superProcessInstanceId, 0);
+                    // List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(superProcessInstanceId, 0);
 
                     Map<String, Object> superProcessMap = new HashMap<>();
                     superProcessMap.put("schemaName", historicVariableInstance.getValue() + "(上级流程)");
@@ -934,8 +869,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                             superProcessMap.put("schemaName", schemaNameVar.getValue() + "(下级流程)");
 
                             //获取主流程审批记录
-                            // List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
-                            List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
+                            List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
+                            // List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
                             superProcessMap.put("records", processRecordListVos);
 
                             otherProcessApproveRecord.add(superProcessMap);
@@ -944,8 +879,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 }
                 //TODO  新增返回值  返回 主/子 流程 审批记录
 
-                //List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(processId, 0);
-                List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(processId, 0);
+                List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(processId, 0);
+                // List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(processId, 0);
                 vo.setTaskRecords(recordListVos);
                 vo.setOtherProcessApproveRecord(otherProcessApproveRecord);
             }
@@ -1033,8 +968,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
                 HistoricVariableInstance historicVariableInstance = historyService.createHistoricVariableInstanceQuery().processInstanceId(superProcessInstanceId).variableName(WorkflowConstant.PROCESS_SCHEMA_NAME_KEY).singleResult();
                 //获取主流程审批记录
-                // List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(superProcessInstanceId, 0);
-                List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(superProcessInstanceId, 0);
+                List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(superProcessInstanceId, 0);
+                // List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(superProcessInstanceId, 0);
 
                 Map<String, Object> superProcessMap = new HashMap<>();
                 superProcessMap.put("schemaName", historicVariableInstance.getValue() + "(上级流程)");
@@ -1058,8 +993,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                         superProcessMap.put("schemaName", schemaNameVar.getValue() + "(下级流程)");
 
                         //获取主流程审批记录
-                        //List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
-                        List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
+                        List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
+                        // List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 0);
                         superProcessMap.put("records", processRecordListVos);
 
                         otherProcessApproveRecord.add(superProcessMap);
@@ -1068,8 +1003,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             }
             //TODO  新增返回值  返回 主/子 流程 审批记录
 
-            // List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(processId, 0);
-            List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(processId, 0);
+            List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(processId, 0);
+            // List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(processId, 0);
             vo.setTaskRecords(recordListVos);
             vo.setOtherProcessApproveRecord(otherProcessApproveRecord);
 
@@ -1095,8 +1030,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
             HistoricVariableInstance historicVariableInstance = historyService.createHistoricVariableInstanceQuery().processInstanceId(superProcessInstanceId).variableName(WorkflowConstant.PROCESS_SCHEMA_NAME_KEY).singleResult();
             //获取主流程审批记录
-            // List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(superProcessInstanceId, 1);
-            List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(superProcessInstanceId, 1);
+            List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(superProcessInstanceId, 1);
+            // List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(superProcessInstanceId, 1);
 
             Map<String, Object> superProcessMap = new HashMap<>();
             superProcessMap.put("schemaName", historicVariableInstance.getValue() + "(上级流程)");
@@ -1119,8 +1054,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     superProcessMap.put("schemaName", schemaNameVar.getValue() + "(下级流程)");
 
                     //获取主流程审批记录
-                    // List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 1);
-                    List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 1);
+                    List<ProcessRecordListVo> processRecordListVos = getProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 1);
+                    // List<ProcessRecordListVo> processRecordListVos = getCustomProcessRecordListVos(schemaNameVar.getProcessInstanceId(), 1);
                     superProcessMap.put("records", processRecordListVos);
 
                     otherProcessApproveRecord.add(superProcessMap);
@@ -1129,8 +1064,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         }
         //TODO  新增返回值  返回 主/子 流程 审批记录
 
-        // List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(processId, 1);
-        List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(processId, 1);
+        List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(processId, 1);
+        // List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(processId, 1);
         vo.setTaskRecords(recordListVos);
         vo.setOtherProcessApproveRecord(otherProcessApproveRecord);
         return vo;
@@ -2094,7 +2029,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     xjrWorkflowOperateRecord.setRecordTime(LocalDateTime.now().minusSeconds(+1));//时间设置提前1秒钟,好排序
 
 //                    record.setMessage("【审批人:" + user.getName() + "】 将 【任务:" + task.getName() + "】 驳回到 【任务:" + rejectUserTaskConfig.getName() + "】");
-                    String message = "审批人:" + user.getName() + ", 审批结果:驳回, 审批内容:驳回, 审批日期:" + LocalDateTime.now();
+                    String message = "审批人:" + user.getName() + ", 审批结果:驳回, 审批内容:驳回";
                     xjrWorkflowOperateRecord.setOperateInfo(message);
                     xjrWorkflowOperateRecordMapper.insert(xjrWorkflowOperateRecord);
                 });
@@ -2136,7 +2071,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 xjrWorkflowOperateRecord.setNodeMultiType(WorkflowMultiInstanceType.NONE.getCode());
                 xjrWorkflowOperateRecord.setRecordTime(LocalDateTime.now());
 
-                String message = "审批人:" + user.getName() + ", 审批结果:结束, 审批内容:结束流程, 审批日期:" + LocalDateTime.now();
+                String message = "审批人:" + user.getName() + ", 审批结果:结束, 审批内容:结束流程";
                 xjrWorkflowOperateRecord.setOperateInfo(message);
                 xjrWorkflowOperateRecordMapper.insert(xjrWorkflowOperateRecord);
             }
@@ -2803,8 +2738,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             throw new MyException("当前任务没有开始节点");
         }
 
-        // List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(task.getProcessInstanceId(), 0);
-        List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(task.getProcessInstanceId(), 0);
+        List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(task.getProcessInstanceId(), 0);
+        // List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(task.getProcessInstanceId(), 0);
         vo.setTaskRecords(recordListVos);
 
         //将map 转为 java类
@@ -2869,8 +2804,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         if (!userNodeConfigOp.isPresent()) {
             throw new MyException("当前任务没有开始节点");
         }
-        //List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(task.getProcessInstanceId(), 0);
-        List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(task.getProcessInstanceId(), 0);
+        List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(task.getProcessInstanceId(), 0);
+        // List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(task.getProcessInstanceId(), 0);
         vo.setTaskRecords(recordListVos);
 
         //查询任务关联任务
@@ -2964,8 +2899,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         WorkflowSchemaConfig workflowSchemaConfig = JSONUtil.toBean(workflowSchema.getJsonContent(), WorkflowSchemaConfig.class);
 
 
-        //List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(processId, 0);
-        List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(processId, 0);
+        List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(processId, 0);
+        // List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(processId, 0);
         vo.setTaskRecords(recordListVos);
 
         List<Object> allFormConfigs = workflowSchemaConfig.getChildNodeConfig().stream().filter(x -> x.containsKey("formConfigs")).map(x -> x.get("formConfigs")).collect(Collectors.toList());
@@ -3043,8 +2978,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         if (!userNodeConfigOp.isPresent()) {
             throw new MyException("当前任务没有开始节点");
         }
-        //List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(historicTaskInstance.getProcessInstanceId(), 0);
-        List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(historicTaskInstance.getProcessInstanceId(), 0);
+        List<ProcessRecordListVo> recordListVos = getProcessRecordListVos(historicTaskInstance.getProcessInstanceId(), 0);
+        // List<ProcessRecordListVo> recordListVos = getCustomProcessRecordListVos(historicTaskInstance.getProcessInstanceId(), 0);
         vo.setTaskRecords(recordListVos);
 
         //查询任务关联任务
@@ -3258,8 +3193,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
     @Override
     public List<ProcessRecordListVo> getProcessRecord(String processInstanceId) {
-        //return getProcessRecordListVos(processInstanceId, 0);
-        return getCustomProcessRecordListVos(processInstanceId, 0);
+        return getProcessRecordListVos(processInstanceId, 0);
+        // return getCustomProcessRecordListVos(processInstanceId, 0);
     }
 
     @Override
@@ -4592,7 +4527,7 @@ 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 + ", 审批内容:自动同意, 审批日期:" + LocalDateTime.now();
+                String operateInfo = "审批人:" + approveName + ", 审批结果:" + allOpinions + ", 审批内容:自动同意";
 
                 addProcessRecord(task, schemaId, message, record);
                 addCustomProcessRecord(task, schemaId, operateInfo, xjrWorkflowOperateRecord);
@@ -4601,7 +4536,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 invokeAutoAgree(processInstanceId, schemaId, workflowSchemaConfig, list);
             } else {
                 String message = "【" + approveName + "】【自动同意】 审批, 审批意见为:“【" + allOpinions + "】”,由【" + task.getName() + "】流转到 结束节点";
-                String operateInfo = "审批人:" + approveName + ", 审批结果:" + allOpinions + ", 审批内容:自动同意, 审批日期:" + LocalDateTime.now();
+                String operateInfo = "审批人:" + approveName + ", 审批结果:" + allOpinions + ", 审批内容:自动同意";
 
                 addProcessRecord(task, schemaId, message, record);
                 addCustomProcessRecord(task, schemaId, operateInfo, xjrWorkflowOperateRecord);
@@ -5208,16 +5143,16 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         if (userTaskConfig.getCountersignConfig().getMultipleInstancesType() == WorkflowMultiInstanceType.NONE.getCode()) {
             //用户节点到结束节点或者脚本节点,点击按钮时,也需要设置流程信息
             if (nextTaskNameList.size() == 0 && !buttonName.equals("")) {
-                String message = "审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 审批日期:" + LocalDateTime.now();
+                String message = "审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent;
                 record.setOperateInfo(message);
             }
             //单流向
             if (nextTaskNameList.size() == 1) {
-                String message = "审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 审批日期:" + LocalDateTime.now();
+                String message = "审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent;
                 record.setOperateInfo(message);
             }//多流向
             if (nextTaskNameList.size() > 1) {
-                String message = "审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 审批日期:" + LocalDateTime.now();
+                String message = "审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent;
                 record.setOperateInfo(message);
             }
         }
@@ -5236,16 +5171,16 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     if (isSuccess) {
                         //用户节点到结束节点或者脚本节点,点击按钮时,也需要设置流程信息
                         if (nextTaskNameList.size() == 0 && !buttonName.equals("")) {
-                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 审批日期:" + LocalDateTime.now() + ",达到会签完成条件";
+                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 达到会签完成条件";
                             record.setOperateInfo(message);
                         }
                         //单流向
                         if (nextTaskNameList.size() == 1) {
-                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 审批日期:" + LocalDateTime.now() + ",达到会签完成条件";
+                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 达到会签完成条件";
                             record.setOperateInfo(message);
                         }//多流向
                         if (nextTaskNameList.size() > 1) {
-                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 审批日期:" + LocalDateTime.now() + ",达到会签完成条件";
+                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 达到会签完成条件";
                             record.setOperateInfo(message);
                         }
                     }
@@ -5253,23 +5188,23 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     if (buttonName.equals(WorkflowApproveType.DISAGREE.getValue())) {
                         //用户节点到结束节点或者脚本节点,点击按钮时,也需要设置流程信息
                         if (nextTaskNameList.size() == 0 && !buttonName.equals("")) {
-                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 审批日期:" + LocalDateTime.now() + ",未达到会签完成条件";
+                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ",未达到会签完成条件";
                             record.setOperateInfo(message);
                         }
                         //单流向
                         if (nextTaskNameList.size() == 1) {
-                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 审批日期:" + LocalDateTime.now() + ",未达到会签完成条件";
+                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 未达到会签完成条件";
                             record.setOperateInfo(message);
                         }//多流向
                         if (nextTaskNameList.size() > 1) {
-                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 审批日期:" + LocalDateTime.now() + ",未达到会签完成条件";
+                            String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 未达到会签完成条件";
                             record.setOperateInfo(message);
                         }
                     }
                 }
             } else {
                 //审批但未达到完成条件;审批信息:[会签][用户名] [审批按钮名称]审批,审批意见为:“[审批意见]”。
-                String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 审批日期:" + LocalDateTime.now() + ",未达到会签完成条件";
+                String message = "【会签】审批人:" + user.getName() + ", 审批结果:" + buttonName + ", 审批内容:" + approvedContent + ", 未达到会签完成条件";
                 record.setOperateInfo(message);
             }
         }
@@ -5459,6 +5394,30 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         return true;
     }
 
+    @Override
+    public List<UserDefinedProcessRecordListVo> listApproveRecord(ApproveRecordListDto dto) {
+        List<ProcessRecordListVo> processRecordListVos = this.getCustomProcessRecordListVos(dto.getProcessId(), 0);
+        List<UserDefinedProcessRecordListVo> userDefinedProcessRecordListVos = new ArrayList<>();
+        for(ProcessRecordListVo p : processRecordListVos){
+            String comment = p.getComment();
+            String[] commentArr = comment.split(",");
+            String[] approveUserNameArr = commentArr[0].split(":");
+            String[] approveResultArr = commentArr[1].split(":");
+            String[] approveCommentArr = commentArr[2].split(":");
+            userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
+                setNodeType(p.getNodeType());
+                setNodeName(p.getNodeName());
+                setComment(p.getComment());
+                setStartTime(p.getStartTime());
+                setCirculateMessage(p.getCirculateMessage());
+                setApproveUserName(approveUserNameArr[1]);
+                setApproveResult(approveResultArr[1]);
+                setApproveComment(approveCommentArr[1]);
+            }});
+        }
+        return userDefinedProcessRecordListVos;
+    }
+
     /**
      * 获取上一节点信息
      * 分两种情况:

+ 26 - 0
src/main/java/com/xjrsoft/module/workflow/vo/UserDefinedProcessRecordListVo.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.workflow.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @Author: tzx
+ * @Date: 2022/11/8 16:10
+ */
+@Data
+public class UserDefinedProcessRecordListVo extends ProcessRecordListVo{
+
+    @ApiModelProperty("审批结果")
+    private String approveResult;
+
+    @ApiModelProperty("审批内容")
+    private String approveComment;
+
+    @ApiModelProperty("审批人姓名")
+    @TableField(exist = false)
+    private String approveUserName;
+}

+ 1 - 1
src/test/java/com/xjrsoft/module/system/service/impl/FileServiceImplTest.java

@@ -15,6 +15,6 @@ class FileServiceImplTest {
 
     @Test
     void downloadFileByZip() {
-        fileService.downloadFileByZip(1664109400501166082L);
+        fileService.downloadFileByZip(1763433147208306689L);
     }
 }