xiangpei
2025-02-11 d0b275ac9b4b071359356edf238e7d0c9114dbd1
流程列表增加分页接口
6个文件已修改
87 ■■■■ 已修改文件
business/src/main/java/com/ycl/controller/ProcessConfigInfoController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProcessConfigInfoService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/domain/query/ProcessConfigInfoQuery.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/mapper/FlowDeployMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/resources/mapper/FlowDeployMapper.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}
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);
}
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 分组,并取每组中 版本号 最大的那一个
//        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());
    }
}
flowable/src/main/java/com/ycl/domain/query/ProcessConfigInfoQuery.java
@@ -26,5 +26,8 @@
    /** 重点分类 */
    private String importanceType;
    /** 流程名称 */
    private String name;
}
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);
}
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>