Quellcode durchsuchen

fix: 流程明细前端筛选完没有重新分页的问题

wuwenyi vor 2 Tagen
Ursprung
Commit
9ed8e1d1f6

+ 4 - 4
src/main/java/com/qqflow/engine/domain/flow/controller/ProcessInstanceController.java

@@ -52,9 +52,9 @@ public class ProcessInstanceController {
             @RequestParam(required = false) Integer status,
             @RequestParam(required = false) Long processDefinitionId,
             @RequestParam(required = false) String definitionName,
-            @RequestParam(required = false) String currentNodeName,
+            @RequestParam(required = false) String currentNodeId,
             @RequestParam(required = false) String applicantName) {
-        return Result.ok(this.processInstanceService.list(null, status, processDefinitionId, definitionName, currentNodeName, applicantName, pageNum, pageSize));
+        return Result.ok(this.processInstanceService.list(null, status, processDefinitionId, definitionName, currentNodeId, applicantName, pageNum, pageSize));
     }
 
     @GetMapping("/mine")
@@ -64,9 +64,9 @@ public class ProcessInstanceController {
             @RequestParam(defaultValue = "10") Integer pageSize,
             @RequestParam(required = false) Integer status,
             @RequestParam(required = false) String definitionName,
-            @RequestParam(required = false) String currentNodeName) {
+            @RequestParam(required = false) String currentNodeId) {
         Long applicantId = SecurityUtils.getUserId();
-        return Result.ok(this.processInstanceService.list(applicantId, status, null, definitionName, currentNodeName, null, pageNum, pageSize));
+        return Result.ok(this.processInstanceService.list(applicantId, status, null, definitionName, currentNodeId, null, pageNum, pageSize));
     }
 
     @GetMapping("/{id}")

+ 1 - 1
src/main/java/com/qqflow/engine/domain/flow/mapper/ProcessInstanceMapper.java

@@ -13,7 +13,7 @@ public interface ProcessInstanceMapper extends BaseMapper<ProcessInstance> {
             @Param("applicantId") Long applicantId,
             @Param("status") Integer status,
             @Param("definitionName") String definitionName,
-            @Param("currentNodeName") String currentNodeName,
+            @Param("currentNodeId") String currentNodeId,
             @Param("applicantName") String applicantName,
             @Param("processDefinitionId") Long processDefinitionId);
 

+ 1 - 1
src/main/java/com/qqflow/engine/domain/flow/service/ProcessInstanceService.java

@@ -15,7 +15,7 @@ public interface ProcessInstanceService {
     /** 从指定节点发起流程(导入时使用),前置节点自动跳过 */
     Long startProcessAtNode(StartProcessDTO dto, String nodeName);
 
-    PageResult<ProcessInstanceDTO> list(Long applicantId, Integer status, Long processDefinitionId, String definitionName, String currentNodeName, String applicantName, Integer pageNum, Integer pageSize);
+    PageResult<ProcessInstanceDTO> list(Long applicantId, Integer status, Long processDefinitionId, String definitionName, String currentNodeId, String applicantName, Integer pageNum, Integer pageSize);
 
     ProcessInstanceDTO getDetail(Long id);
 

+ 3 - 9
src/main/java/com/qqflow/engine/domain/flow/service/impl/ProcessInstanceServiceImpl.java

@@ -115,16 +115,10 @@ public class ProcessInstanceServiceImpl implements ProcessInstanceService {
     }
 
     @Override
-    public PageResult<ProcessInstanceDTO> list(Long applicantId, Integer status, Long processDefinitionId, String definitionName, String currentNodeName, String applicantName, Integer pageNum, Integer pageSize) {
+    public PageResult<ProcessInstanceDTO> list(Long applicantId, Integer status, Long processDefinitionId, String definitionName, String currentNodeId, String applicantName, Integer pageNum, Integer pageSize) {
         Page<ProcessInstance> page = new Page<>(pageNum, pageSize);
-        this.processInstanceMapper.selectInstanceList(page, applicantId, status, definitionName, currentNodeName, applicantName, processDefinitionId);
-        List<ProcessInstanceDTO> records = this.enrichInstanceDtos(page.getRecords());
-        if (currentNodeName != null && !currentNodeName.isBlank()) {
-            records = records.stream()
-                    .filter(r -> currentNodeName.equals(r.getCurrentNodeName()))
-                    .collect(Collectors.toList());
-        }
-        return PageResult.of(page.getTotal(), records);
+        this.processInstanceMapper.selectInstanceList(page, applicantId, status, definitionName, currentNodeId, applicantName, processDefinitionId);
+        return PageResult.of(page.getTotal(), this.enrichInstanceDtos(page.getRecords()));
     }
 
     @Override

+ 3 - 0
src/main/resources/mapper/flow/ProcessInstanceMapper.xml

@@ -43,6 +43,9 @@
         <if test="applicantName != null and applicantName != ''">
             AND (su.username LIKE CONCAT('%', #{applicantName}, '%') OR su.real_name LIKE CONCAT('%', #{applicantName}, '%'))
         </if>
+        <if test="currentNodeId != null and currentNodeId != ''">
+            AND pi.current_node_id = #{currentNodeId}
+        </if>
         ORDER BY pi.create_time DESC
     </select>