yangys
2025-08-12 8ede6183253248e497d391a0902bb5d41181b3bf
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
@@ -18,14 +18,18 @@
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.vo.MachineExcelVO;
import org.springblade.mdm.commons.vo.IdsVO;
import org.springblade.mdm.flow.entity.ApproveRecord;
import org.springblade.mdm.flow.service.ApproveRecordService;
import org.springblade.mdm.flow.service.ApproveTableService;
import org.springblade.mdm.flow.service.FlowBusinessService;
import org.springblade.mdm.flow.vo.FlowVO;
import org.springblade.mdm.flow.vo.OvertimeTaskExcelVO;
import org.springblade.mdm.flow.vo.TaskTraceVO;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -34,6 +38,7 @@
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -54,7 +59,10 @@
   private RuntimeService runtimeService;
   @Autowired
   private ApproveTableService approveTableService;
   @Autowired
   private ApproveRecordService approveRecordService;
   @Autowired
   private IUserClient userClient;
   @GetMapping("overtime-list")
   @ApiOperationSupport(order = 3)
   @Operation(summary = "超时查询", description = "查询所有超时任务")
@@ -83,9 +91,22 @@
   }
   @Operation(summary = "流程执行轨迹", description = "流程执行轨迹")
   @Operation(summary = "流程执行轨迹", description = "流程执行轨迹/审批记录")
   @GetMapping("process-trace")
   public R<List<TaskTraceVO>> processTrace(String processInstanceId){
      /*
      List<ApproveRecord> records = approveRecordService.lambdaQuery().eq(ApproveRecord::getProcessInstanceId,processInstanceId).orderByAsc(ApproveRecord::getCreateTime).list();
      List<TaskTraceVO> result = new ArrayList<>();
      for (ApproveRecord record : records) {
         TaskTraceVO vo = new TaskTraceVO();
         vo.setComment(record.getComment());
         vo.setCreateTime(record.getCreateTime());
         vo.setAssigneeName(record.getUserNickname());
         //vo.setEndTime();
      }*/
      List<TaskTraceVO> result = new ArrayList<>();
      List<HistoricTaskInstance> hisTasks = historyService.createHistoricTaskInstanceQuery()
         .processInstanceId(processInstanceId).orderByTaskCreateTime().desc().list();
@@ -98,6 +119,14 @@
         if(!comments.isEmpty()) {
            vo.setComment(comments.get(0).getFullMessage());
         }
         vo.setTaskName(hisTask.getName());
         R<User> assigneeObj = userClient.userInfoById(Func.toLong(hisTask.getAssignee()));
         if(assigneeObj.isSuccess()) {
            vo.setAssigneeName(assigneeObj.getData().getName());
         }
         result.add(vo);
      }
@@ -107,15 +136,15 @@
   @GetMapping("search-list")
   @ApiOperationSupport(order = 3)
   @Operation(summary = "流程查询", description = "查询进行中的所有流程")
   public R<IPage<FlowVO>> searchList(@Parameter(description = "任务到达时间开始") LocalDate createTimeBegin, @Parameter(description = "任务到达时间截止")LocalDate createTimeEnd, @Parameter(description = "关键字") String keyword, Query query) {
      IPage<FlowVO> pages = businessService.selectSearchPage(Condition.getPage(query), createTimeBegin,createTimeEnd,keyword);
   public R<IPage<FlowVO>> searchList(@Parameter(description = "流程类型")String processDefinitionKey,@Parameter(description = "任务到达时间开始") LocalDate createTimeBegin, @Parameter(description = "任务到达时间截止")LocalDate createTimeEnd, @Parameter(description = "关键字") String keyword, Query query) {
      IPage<FlowVO> pages = businessService.selectSearchPage(Condition.getPage(query), createTimeBegin,createTimeEnd,processDefinitionKey,keyword);
      return R.data(pages);
   }
   @GetMapping("finished-list")
   @ApiOperationSupport(order = 3)
   @Operation(summary = "历史流程查询", description = "查询已完结的所有流程")
   public R<IPage<FlowVO>> finishedList(@Parameter(description = "流程类型")String processDefinitionKey,@Parameter(description = "任务到达时间开始") LocalDate createTimeBegin, @Parameter(description = "任务到达时间截止")LocalDate createTimeEnd, @Parameter(description = "关键字") String keyword, Query query) {
   public R<IPage<FlowVO>> finishedList(@Parameter(description = "流程类型")String processDefinitionKey, @Parameter(description = "任务到达时间开始") LocalDateTime createTimeBegin, @Parameter(description = "任务到达时间截止") LocalDateTime createTimeEnd, @Parameter(description = "关键字") String keyword, Query query) {
      IPage<FlowVO> pages = businessService.selectFinishedPage(Condition.getPage(query), processDefinitionKey,createTimeBegin,createTimeEnd,keyword);
      return R.data(pages);
   }