From d0b275ac9b4b071359356edf238e7d0c9114dbd1 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 11 二月 2025 19:33:47 +0800
Subject: [PATCH] 流程列表增加分页接口

---
 flowable/src/main/java/com/ycl/domain/query/ProcessConfigInfoQuery.java       |    3 +
 flowable/src/main/resources/mapper/FlowDeployMapper.xml                       |   29 ++++++++++++++
 business/src/main/java/com/ycl/controller/ProcessConfigInfoController.java    |   10 ++++
 business/src/main/java/com/ycl/service/ProcessConfigInfoService.java          |    8 ++++
 flowable/src/main/java/com/ycl/mapper/FlowDeployMapper.java                   |   10 +++++
 business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java |   27 ++++++++-----
 6 files changed, 75 insertions(+), 12 deletions(-)

diff --git a/business/src/main/java/com/ycl/controller/ProcessConfigInfoController.java b/business/src/main/java/com/ycl/controller/ProcessConfigInfoController.java
index 7b4ded0..d63490e 100644
--- a/business/src/main/java/com/ycl/controller/ProcessConfigInfoController.java
+++ b/business/src/main/java/com/ycl/controller/ProcessConfigInfoController.java
@@ -43,8 +43,16 @@
 
     @GetMapping("list")
     @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
-    @PreAuthorize("@ss.hasPermi('processConfigInfo:list')")
+//    @PreAuthorize("@ss.hasPermi('processConfigInfo:list')")
     public Result list(ProcessConfigInfoQuery query) {
         return processConfigInfoService.list(query);
     }
+
+
+    @GetMapping("page")
+    @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+//    @PreAuthorize("@ss.hasPermi('processConfigInfo:list')")
+    public Result page(ProcessConfigInfoQuery query) {
+        return processConfigInfoService.getPage(query);
+    }
 }
diff --git a/business/src/main/java/com/ycl/service/ProcessConfigInfoService.java b/business/src/main/java/com/ycl/service/ProcessConfigInfoService.java
index 95e56af..a1171e5 100644
--- a/business/src/main/java/com/ycl/service/ProcessConfigInfoService.java
+++ b/business/src/main/java/com/ycl/service/ProcessConfigInfoService.java
@@ -37,4 +37,12 @@
      * @return
      */
     Result list(ProcessConfigInfoQuery query);
+
+    /**
+     * 鏌ヨ鍒嗛〉鏁版嵁
+     *
+     * @param query
+     * @return
+     */
+    Result getPage(ProcessConfigInfoQuery query);
 }
diff --git a/business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java
index 9927f1c..d16c1be 100644
--- a/business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ycl.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.github.pagehelper.PageInfo;
@@ -8,6 +9,7 @@
 import com.ycl.domain.entity.ProcessConfigInfo;
 import com.ycl.domain.entity.SysForm;
 import com.ycl.domain.query.ProcessConfigInfoQuery;
+import com.ycl.framework.utils.PageUtil;
 import com.ycl.mapper.FlowDeployMapper;
 import com.ycl.mapper.ProcessConfigInfoMapper;
 import com.ycl.service.ISysDeployFormService;
@@ -91,19 +93,8 @@
     public Result list(ProcessConfigInfoQuery query) {
         List<FlowProcDefWithConfigDto> dataList = flowDeployMapper.selectDeployListWithConfig(query);
 
-//        // 鏍规嵁 processDefId 鍒嗙粍锛屽苟鍙栨瘡缁勪腑 鐗堟湰鍙� 鏈�澶х殑閭d竴涓�
-//        Map<String, FlowProcDefWithConfigDto> groupedByProcessDefId = dataList.stream()
-//                .collect(Collectors.toMap(
-//                        FlowProcDefWithConfigDto::getProcessDefId, // keyMapper: 鎻愬彇 processDefId 浣滀负閿�
-//                        Function.identity(),                      // valueMapper: 鐩存帴浣跨敤瀵硅薄浣滀负鍊�
-//                        BinaryOperator.maxBy(Comparator.comparingInt(FlowProcDefWithConfigDto::getProcessDefVersion)) // mergeFunction: 姣旇緝 processDefVersion锛屽彇鏈�澶х殑
-//                ));
-//        List<FlowProcDefWithConfigDto> resultList = new ArrayList<>(groupedByProcessDefId.values());
-
         // 鍔犺浇鎸傝〃鍗�
         for (FlowProcDefWithConfigDto procDef : dataList) {
-            // 鎺掗櫎鏆傚仠鐨�
-
             SysForm sysForm = sysDeployFormService.selectSysDeployFormByDeployId(procDef.getDeploymentId());
             if (Objects.nonNull(sysForm)) {
                 procDef.setFormName(sysForm.getFormName());
@@ -112,4 +103,18 @@
         }
         return Result.ok().data(dataList);
     }
+
+    @Override
+    public Result getPage(ProcessConfigInfoQuery query) {
+        IPage<FlowProcDefWithConfigDto> page = PageUtil.getPage(query, FlowProcDefWithConfigDto.class);
+        flowDeployMapper.selectDeployListWithConfigPage(page,query);
+        for (FlowProcDefWithConfigDto procDef : page.getRecords()) {
+            SysForm sysForm = sysDeployFormService.selectSysDeployFormByDeployId(procDef.getDeploymentId());
+            if (Objects.nonNull(sysForm)) {
+                procDef.setFormName(sysForm.getFormName());
+                procDef.setFormId(sysForm.getFormId());
+            }
+        }
+        return Result.ok().data(page.getRecords()).total(page.getTotal());
+    }
 }
diff --git a/flowable/src/main/java/com/ycl/domain/query/ProcessConfigInfoQuery.java b/flowable/src/main/java/com/ycl/domain/query/ProcessConfigInfoQuery.java
index deb8e97..68595f9 100644
--- a/flowable/src/main/java/com/ycl/domain/query/ProcessConfigInfoQuery.java
+++ b/flowable/src/main/java/com/ycl/domain/query/ProcessConfigInfoQuery.java
@@ -26,5 +26,8 @@
     /** 閲嶇偣鍒嗙被 */
     private String importanceType;
 
+    /** 娴佺▼鍚嶇О */
+    private String name;
+
 }
 
diff --git a/flowable/src/main/java/com/ycl/mapper/FlowDeployMapper.java b/flowable/src/main/java/com/ycl/mapper/FlowDeployMapper.java
index 6e4f4a3..0c87247 100644
--- a/flowable/src/main/java/com/ycl/mapper/FlowDeployMapper.java
+++ b/flowable/src/main/java/com/ycl/mapper/FlowDeployMapper.java
@@ -1,8 +1,10 @@
 package com.ycl.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ycl.domain.dto.FlowProcDefDto;
 import com.ycl.domain.dto.FlowProcDefWithConfigDto;
 import com.ycl.domain.query.ProcessConfigInfoQuery;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -29,4 +31,12 @@
      * @return
      */
     List<FlowProcDefWithConfigDto> selectDeployListWithConfig(ProcessConfigInfoQuery query);
+
+    /**
+     * 鍒嗛〉
+     *
+     * @param page
+     * @param query
+     */
+    IPage selectDeployListWithConfigPage(IPage<FlowProcDefWithConfigDto> page, @Param("query") ProcessConfigInfoQuery query);
 }
diff --git a/flowable/src/main/resources/mapper/FlowDeployMapper.xml b/flowable/src/main/resources/mapper/FlowDeployMapper.xml
index f8e81fd..f1d880a 100644
--- a/flowable/src/main/resources/mapper/FlowDeployMapper.xml
+++ b/flowable/src/main/resources/mapper/FlowDeployMapper.xml
@@ -53,4 +53,33 @@
         order by rd.deploy_time_ desc
     </select>
 
+    <select id="selectDeployListWithConfigPage"  resultType="com.ycl.domain.dto.FlowProcDefWithConfigDto">
+        SELECT
+            rp.id_ as id,
+            rp.deployment_id_ as deploymentId,
+            rd.name_ as name,
+            rd.category_ as category,
+            rp.key_ as flowKey,
+            rp.version_ as version,
+            rp.suspension_state_ as suspensionState,
+            rd.deploy_time_  as deploymentTime,
+            pc.project_type,
+            pc.fund_type,
+            pc.invest_type,
+            pc.importance_type,
+            pc.process_def_id,
+            pc.process_def_version,
+            pc.deploy_id
+        FROM
+        act_re_procdef rp
+            LEFT JOIN act_re_deployment rd ON rp.deployment_id_ = rd.id_
+            LEFT JOIN t_process_config_info pc ON pc.process_def_id = rp.id_ AND pc.process_def_version = rp.version_
+        <where>
+            <if test="query.name != null and query.name != ''">
+                AND rd.name_ like concat('%', #{query.name}, '%')
+            </if>
+        </where>
+        order by rd.deploy_time_ desc
+    </select>
+
 </mapper>

--
Gitblit v1.8.0