update 调整流程定义查询

This commit is contained in:
gssong 2024-10-26 19:53:09 +08:00
parent 351f42ea2a
commit c409a3a582
3 changed files with 48 additions and 6 deletions

View File

@ -0,0 +1,26 @@
package org.dromara.workflow.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.warm.flow.orm.entity.FlowDefinition;
import org.apache.ibatis.annotations.Param;
/**
* 实例信息Mapper接口
*
* @author may
* @date 2024-03-02
*/
public interface FlwDefMapper {
/**
* 流程实例信息
*
* @param page 分页
* @param queryWrapper 条件
* @return 结果
*/
Page<FlowDefinition> page(@Param("page") Page<FlowDefinition> page,
@Param(Constants.WRAPPER) Wrapper<FlowDefinition> queryWrapper);
}

View File

@ -3,10 +3,11 @@ package org.dromara.workflow.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.warm.flow.core.entity.Definition;
import com.warm.flow.core.enums.PublishStatus;
import com.warm.flow.core.service.DefService;
import com.warm.flow.core.utils.page.Page;
import com.warm.flow.orm.entity.FlowDefinition;
import com.warm.flow.orm.mapper.FlowDefinitionMapper;
import jakarta.servlet.http.HttpServletResponse;
@ -19,6 +20,7 @@ import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.workflow.domain.vo.FlowDefinitionVo;
import org.dromara.workflow.mapper.FlwDefMapper;
import org.dromara.workflow.service.IFlwDefinitionService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
@ -37,8 +39,8 @@ import java.util.List;
@Service
public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
private final DefService defService;
private final FlowDefinitionMapper flowDefinitionMapper;
private final FlwDefMapper flwDefMapper;
/**
* 分页查询
@ -48,10 +50,11 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
*/
@Override
public TableDataInfo<FlowDefinitionVo> page(FlowDefinition flowDefinition, PageQuery pageQuery) {
Page<Definition> page = Page.pageOf(pageQuery.getPageNum(), pageQuery.getPageSize());
page = defService.orderByCreateTime().desc().page(flowDefinition, page);
QueryWrapper<FlowDefinition> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("create_time");
Page<FlowDefinition> page = flwDefMapper.page(pageQuery.build(), queryWrapper);
TableDataInfo<FlowDefinitionVo> build = TableDataInfo.build();
build.setRows(BeanUtil.copyToList(page.getList(), FlowDefinitionVo.class));
build.setRows(BeanUtil.copyToList(page.getRecords(), FlowDefinitionVo.class));
build.setTotal(page.getTotal());
return build;
}
@ -65,7 +68,6 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
public List<FlowDefinitionVo> getHisListByKey(String flowCode) {
LambdaQueryWrapper<FlowDefinition> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(FlowDefinition::getFlowCode, flowCode);
wrapper.in(FlowDefinition::getIsPublish, Arrays.asList(PublishStatus.UNPUBLISHED.getKey(), PublishStatus.EXPIRED.getKey()));
List<FlowDefinition> list = flowDefinitionMapper.selectList(wrapper);
return BeanUtil.copyToList(list, FlowDefinitionVo.class);
}

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.workflow.mapper.FlwDefMapper">
<select id="page" resultType="com.warm.flow.orm.entity.FlowDefinition">
select *
from (select a.* from flow_definition a
inner join (select flow_code,max(version) version from flow_definition group by flow_code) b
on (a.flow_code = b.flow_code and a.version = b.version)) t
${ew.getCustomSqlSegment}
</select>
</mapper>