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>