update 增加join工具 简化join业务代码写法

This commit is contained in:
疯狂的狮子Li
2026-05-15 16:23:29 +08:00
parent 14e444e4bd
commit 90c8a5c2f3
10 changed files with 738 additions and 199 deletions
@@ -1,12 +1,9 @@
package org.dromara.workflow.mapper;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseMapper;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.query.QueryBuilder;
import org.dromara.warm.flow.core.enums.NodeType;
import org.dromara.warm.flow.orm.entity.FlowDefinition;
import org.dromara.warm.flow.orm.entity.FlowHisTask;
@@ -19,8 +16,6 @@ import org.dromara.workflow.domain.vo.FlowHisTaskVo;
import java.util.List;
import java.util.Map;
import static org.dromara.workflow.common.constant.FlowConstant.NOT_DELETED;
/**
* 任务信息Mapper接口
*
@@ -31,55 +26,35 @@ public interface FlwHisTaskMapper extends BaseMapperPlus<FlowHisTask, FlowHisTas
default Page<FlowHisTaskVo> getListFinishTask(Page<FlowHisTaskVo> page, FlowTaskBo bo, List<String> categoryIds, String userId) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<FlowHisTask> wrapper = JoinWrappers.lambda("a", FlowHisTask.class)
.selectAs(FlowHisTask::getId, FlowHisTaskVo::getId)
.selectAs(FlowHisTask::getNodeCode, FlowHisTaskVo::getNodeCode)
.selectAs(FlowHisTask::getNodeName, FlowHisTaskVo::getNodeName)
.selectAs(FlowHisTask::getCooperateType, FlowHisTaskVo::getCooperateType)
.selectAs(FlowHisTask::getApprover, FlowHisTaskVo::getApprover)
.selectAs(FlowHisTask::getCollaborator, FlowHisTaskVo::getCollaborator)
.selectAs(FlowHisTask::getNodeType, FlowHisTaskVo::getNodeType)
.selectAs(FlowHisTask::getTargetNodeCode, FlowHisTaskVo::getTargetNodeCode)
.selectAs(FlowHisTask::getTargetNodeName, FlowHisTaskVo::getTargetNodeName)
.selectAs(FlowHisTask::getDefinitionId, FlowHisTaskVo::getDefinitionId)
.selectAs(FlowHisTask::getInstanceId, FlowHisTaskVo::getInstanceId)
return QueryBuilder.lambdaJoin("a", FlowHisTask.class)
.select(FlowHisTask::getId, FlowHisTask::getNodeCode, FlowHisTask::getNodeName,
FlowHisTask::getCooperateType, FlowHisTask::getApprover, FlowHisTask::getCollaborator,
FlowHisTask::getNodeType, FlowHisTask::getTargetNodeCode, FlowHisTask::getTargetNodeName,
FlowHisTask::getDefinitionId, FlowHisTask::getInstanceId)
.selectAs(FlowHisTask::getFlowStatus, FlowHisTaskVo::getFlowTaskStatus)
.selectAs(FlowHisTask::getMessage, FlowHisTaskVo::getMessage)
.selectAs(FlowHisTask::getExt, FlowHisTaskVo::getExt)
.selectAs(FlowHisTask::getCreateTime, FlowHisTaskVo::getCreateTime)
.selectAs(FlowHisTask::getUpdateTime, FlowHisTaskVo::getUpdateTime)
.selectAs(FlowHisTask::getFormCustom, FlowHisTaskVo::getFormCustom)
.selectAs(FlowHisTask::getFormPath, FlowHisTaskVo::getFormPath)
.selectAs("b", FlowInstance::getFlowStatus, FlowHisTaskVo::getFlowStatus)
.selectAs("b", FlowInstance::getBusinessId, FlowHisTaskVo::getBusinessId)
.selectAs("b", FlowInstance::getCreateBy, FlowHisTaskVo::getCreateBy)
.selectAs("c", FlowDefinition::getFlowName, FlowHisTaskVo::getFlowName)
.selectAs("c", FlowDefinition::getFlowCode, FlowHisTaskVo::getFlowCode)
.selectAs("c", FlowDefinition::getCategory, FlowHisTaskVo::getCategory)
.selectAs("c", FlowDefinition::getVersion, FlowHisTaskVo::getVersion)
.selectAs("biz", FlowInstanceBizExt::getBusinessCode, FlowHisTaskVo::getBusinessCode)
.selectAs("biz", FlowInstanceBizExt::getBusinessTitle, FlowHisTaskVo::getBusinessTitle)
.select(FlowHisTask::getMessage, FlowHisTask::getExt, FlowHisTask::getCreateTime,
FlowHisTask::getUpdateTime, FlowHisTask::getFormCustom, FlowHisTask::getFormPath)
.select("b", FlowInstance::getFlowStatus, FlowInstance::getBusinessId, FlowInstance::getCreateBy)
.select("c", FlowDefinition::getFlowName, FlowDefinition::getFlowCode, FlowDefinition::getCategory,
FlowDefinition::getVersion)
.select("biz", FlowInstanceBizExt::getBusinessCode, FlowInstanceBizExt::getBusinessTitle)
.leftJoin(FlowInstance.class, "b", FlowInstance::getId, FlowHisTask::getInstanceId)
.leftJoin(FlowDefinition.class, "c", FlowDefinition::getId, FlowHisTask::getDefinitionId)
.leftJoin(FlowInstanceBizExt.class, "biz", FlowInstanceBizExt::getInstanceId, FlowInstance::getId)
.eq("a", FlowHisTask::getDelFlag, NOT_DELETED)
.eq("b", FlowInstance::getDelFlag, NOT_DELETED)
.eq("c", FlowDefinition::getDelFlag, NOT_DELETED)
.in("a", FlowHisTask::getNodeType, List.of("1", "3", "4"))
.ne("a", FlowHisTask::getFlowStatus, TaskStatusEnum.COPY.getStatus())
.like(StringUtils.isNotBlank(bo.getNodeName()), "a", FlowHisTask::getNodeName, bo.getNodeName())
.like(StringUtils.isNotBlank(bo.getFlowName()), "c", FlowDefinition::getFlowName, bo.getFlowName())
.like(StringUtils.isNotBlank(bo.getFlowCode()), "c", FlowDefinition::getFlowCode, bo.getFlowCode())
.like(StringUtils.isNotBlank(bo.getFlowStatus()), "b", FlowInstance::getFlowStatus, bo.getFlowStatus())
.in(CollUtil.isNotEmpty(bo.getCreateByIds()), "b", FlowInstance::getCreateBy, bo.getCreateByIds())
.in(CollUtil.isNotEmpty(categoryIds), "c", FlowDefinition::getCategory, categoryIds)
.between(params.get("beginTime") != null && params.get("endTime") != null,
"a", FlowHisTask::getCreateTime, params.get("beginTime"), params.get("endTime"))
.eq(StringUtils.isNotBlank(userId), "a", FlowHisTask::getNodeType, NodeType.BETWEEN.getKey())
.eq(StringUtils.isNotBlank(userId), "a", FlowHisTask::getApprover, userId)
.likeIfText("a", FlowHisTask::getNodeName, bo.getNodeName())
.likeIfText("c", FlowDefinition::getFlowName, bo.getFlowName())
.likeIfText("c", FlowDefinition::getFlowCode, bo.getFlowCode())
.likeIfText("b", FlowInstance::getFlowStatus, bo.getFlowStatus())
.inIfNotEmpty("b", FlowInstance::getCreateBy, bo.getCreateByIds())
.inIfNotEmpty("c", FlowDefinition::getCategory, categoryIds)
.betweenParams("a", FlowHisTask::getCreateTime, params, "beginTime", "endTime")
.eq(userId != null && !userId.isBlank(), "a", FlowHisTask::getNodeType, NodeType.BETWEEN.getKey())
.eqIfText("a", FlowHisTask::getApprover, userId)
.orderByDesc("a", FlowHisTask::getCreateTime)
.orderByDesc("a", FlowHisTask::getUpdateTime);
return wrapper.page(page, FlowHisTaskVo.class);
.orderByDesc("a", FlowHisTask::getUpdateTime)
.page(page, FlowHisTaskVo.class);
}
}
@@ -1,13 +1,10 @@
package org.dromara.workflow.mapper;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseMapper;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.query.QueryBuilder;
import org.dromara.warm.flow.core.enums.NodeType;
import org.dromara.warm.flow.orm.entity.*;
import org.dromara.workflow.domain.FlowInstanceBizExt;
@@ -17,8 +14,6 @@ import org.dromara.workflow.domain.vo.FlowTaskVo;
import java.util.List;
import java.util.Map;
import static org.dromara.workflow.common.constant.FlowConstant.NOT_DELETED;
/**
* 任务信息Mapper接口
*
@@ -29,92 +24,62 @@ public interface FlwTaskMapper extends BaseMapperPlus<FlowTask, FlowTaskVo>, MPJ
default Page<FlowTaskVo> getListRunTask(Page<FlowTaskVo> page, FlowTaskBo bo, List<String> categoryIds, String userId) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<FlowTask> wrapper = JoinWrappers.lambda("t", FlowTask.class)
return QueryBuilder.lambdaJoin("t", FlowTask.class)
.distinct()
.selectAs(FlowTask::getId, FlowTaskVo::getId)
.selectAs(FlowTask::getNodeCode, FlowTaskVo::getNodeCode)
.selectAs(FlowTask::getNodeName, FlowTaskVo::getNodeName)
.selectAs(FlowTask::getNodeType, FlowTaskVo::getNodeType)
.selectAs(FlowTask::getDefinitionId, FlowTaskVo::getDefinitionId)
.selectAs(FlowTask::getInstanceId, FlowTaskVo::getInstanceId)
.selectAs(FlowTask::getCreateTime, FlowTaskVo::getCreateTime)
.selectAs(FlowTask::getUpdateTime, FlowTaskVo::getUpdateTime)
.selectAs("i", FlowInstance::getBusinessId, FlowTaskVo::getBusinessId)
.selectAs("i", FlowInstance::getFlowStatus, FlowTaskVo::getFlowStatus)
.selectAs("i", FlowInstance::getCreateBy, FlowTaskVo::getCreateBy)
.selectAs("d", FlowDefinition::getFlowName, FlowTaskVo::getFlowName)
.selectAs("d", FlowDefinition::getFlowCode, FlowTaskVo::getFlowCode)
.selectAs("d", FlowDefinition::getFormCustom, FlowTaskVo::getFormCustom)
.selectAs("d", FlowDefinition::getCategory, FlowTaskVo::getCategory)
.selectAs("d", FlowDefinition::getVersion, FlowTaskVo::getVersion)
.selectAs("uu", FlowUser::getProcessedBy, FlowTaskVo::getProcessedBy)
.selectAs("uu", FlowUser::getType, FlowTaskVo::getType)
.selectAs("biz", FlowInstanceBizExt::getBusinessCode, FlowTaskVo::getBusinessCode)
.selectAs("biz", FlowInstanceBizExt::getBusinessTitle, FlowTaskVo::getBusinessTitle)
.select(FlowTask::getId, FlowTask::getNodeCode, FlowTask::getNodeName, FlowTask::getNodeType,
FlowTask::getDefinitionId, FlowTask::getInstanceId, FlowTask::getCreateTime, FlowTask::getUpdateTime)
.select("i", FlowInstance::getBusinessId, FlowInstance::getFlowStatus, FlowInstance::getCreateBy)
.select("d", FlowDefinition::getFlowName, FlowDefinition::getFlowCode, FlowDefinition::getFormCustom,
FlowDefinition::getCategory, FlowDefinition::getVersion)
.select("uu", FlowUser::getProcessedBy, FlowUser::getType)
.select("biz", FlowInstanceBizExt::getBusinessCode, FlowInstanceBizExt::getBusinessTitle)
.selectAs("COALESCE(NULLIF(TRIM(t.form_path), ''), NULLIF(TRIM(d.form_path), ''))", FlowTaskVo::getFormPath)
.leftJoin(FlowUser.class, "uu", FlowUser::getAssociated, FlowTask::getId)
.leftJoin(FlowDefinition.class, "d", FlowDefinition::getId, FlowTask::getDefinitionId)
.leftJoin(FlowInstance.class, "i", FlowInstance::getId, FlowTask::getInstanceId)
.leftJoin(FlowInstanceBizExt.class, "biz", FlowInstanceBizExt::getInstanceId, FlowInstance::getId)
.eq("t", FlowTask::getNodeType, NodeType.BETWEEN.getKey())
.eq("t", FlowTask::getDelFlag, NOT_DELETED)
.eq("uu", FlowUser::getDelFlag, NOT_DELETED)
.in("uu", FlowUser::getType, List.of("1", "2", "3"))
.like(StringUtils.isNotBlank(bo.getNodeName()), "t", FlowTask::getNodeName, bo.getNodeName())
.like(StringUtils.isNotBlank(bo.getFlowName()), "d", FlowDefinition::getFlowName, bo.getFlowName())
.like(StringUtils.isNotBlank(bo.getFlowCode()), "d", FlowDefinition::getFlowCode, bo.getFlowCode())
.like(StringUtils.isNotBlank(bo.getFlowStatus()), "i", FlowInstance::getFlowStatus, bo.getFlowStatus())
.in(CollUtil.isNotEmpty(bo.getCreateByIds()), "i", FlowInstance::getCreateBy, bo.getCreateByIds())
.in(CollUtil.isNotEmpty(categoryIds), "d", FlowDefinition::getCategory, categoryIds)
.between(params.get("beginTime") != null && params.get("endTime") != null,
"t", FlowTask::getCreateTime, params.get("beginTime"), params.get("endTime"))
.eq(StringUtils.isNotBlank(userId), "uu", FlowUser::getProcessedBy, userId)
.eq(StringUtils.isNotBlank(userId), "i", FlowInstance::getFlowStatus, BusinessStatusEnum.WAITING.getStatus())
.likeIfText("t", FlowTask::getNodeName, bo.getNodeName())
.likeIfText("d", FlowDefinition::getFlowName, bo.getFlowName())
.likeIfText("d", FlowDefinition::getFlowCode, bo.getFlowCode())
.likeIfText("i", FlowInstance::getFlowStatus, bo.getFlowStatus())
.inIfNotEmpty("i", FlowInstance::getCreateBy, bo.getCreateByIds())
.inIfNotEmpty("d", FlowDefinition::getCategory, categoryIds)
.betweenParams("t", FlowTask::getCreateTime, params, "beginTime", "endTime")
.eqIfText("uu", FlowUser::getProcessedBy, userId)
.eq(userId != null && !userId.isBlank(), "i", FlowInstance::getFlowStatus, BusinessStatusEnum.WAITING.getStatus())
.orderByDesc("t", FlowTask::getCreateTime)
.orderByDesc("t", FlowTask::getUpdateTime);
return wrapper.page(page, FlowTaskVo.class);
.orderByDesc("t", FlowTask::getUpdateTime)
.page(page, FlowTaskVo.class);
}
default Page<FlowTaskVo> getTaskCopyByPage(Page<FlowTaskVo> page, FlowTaskBo bo, List<String> categoryIds, String userId) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<FlowUser> wrapper = JoinWrappers.lambda("a", FlowUser.class)
.selectAs("b", FlowHisTask::getId, FlowTaskVo::getId)
.selectAs("b", FlowHisTask::getUpdateTime, FlowTaskVo::getUpdateTime)
.selectAs("c", FlowInstance::getBusinessId, FlowTaskVo::getBusinessId)
.selectAs("c", FlowInstance::getFlowStatus, FlowTaskVo::getFlowStatus)
.selectAs("c", FlowInstance::getCreateBy, FlowTaskVo::getCreateBy)
.selectAs(FlowUser::getProcessedBy, FlowTaskVo::getProcessedBy)
.selectAs(FlowUser::getCreateTime, FlowTaskVo::getCreateTime)
.selectAs("b", FlowHisTask::getFormCustom, FlowTaskVo::getFormCustom)
.selectAs("b", FlowHisTask::getFormPath, FlowTaskVo::getFormPath)
.selectAs("b", FlowHisTask::getNodeName, FlowTaskVo::getNodeName)
.selectAs("b", FlowHisTask::getNodeCode, FlowTaskVo::getNodeCode)
.selectAs("d", FlowDefinition::getFlowName, FlowTaskVo::getFlowName)
.selectAs("d", FlowDefinition::getFlowCode, FlowTaskVo::getFlowCode)
.selectAs("d", FlowDefinition::getCategory, FlowTaskVo::getCategory)
.selectAs("d", FlowDefinition::getVersion, FlowTaskVo::getVersion)
.selectAs("biz", FlowInstanceBizExt::getBusinessCode, FlowTaskVo::getBusinessCode)
.selectAs("biz", FlowInstanceBizExt::getBusinessTitle, FlowTaskVo::getBusinessTitle)
return QueryBuilder.lambdaJoin("a", FlowUser.class)
.select(FlowUser::getProcessedBy, FlowUser::getCreateTime)
.select("b", FlowHisTask::getId, FlowHisTask::getUpdateTime, FlowHisTask::getFormCustom,
FlowHisTask::getFormPath, FlowHisTask::getNodeName, FlowHisTask::getNodeCode)
.select("c", FlowInstance::getBusinessId, FlowInstance::getFlowStatus, FlowInstance::getCreateBy)
.select("d", FlowDefinition::getFlowName, FlowDefinition::getFlowCode, FlowDefinition::getCategory,
FlowDefinition::getVersion)
.select("biz", FlowInstanceBizExt::getBusinessCode, FlowInstanceBizExt::getBusinessTitle)
.leftJoin(FlowHisTask.class, "b", FlowHisTask::getTaskId, FlowUser::getAssociated)
.leftJoin(FlowInstance.class, "c", FlowInstance::getId, FlowHisTask::getInstanceId)
.leftJoin(FlowDefinition.class, "d", FlowDefinition::getId, FlowInstance::getDefinitionId)
.leftJoin(FlowInstanceBizExt.class, "biz", FlowInstanceBizExt::getInstanceId, FlowInstance::getId)
.eq("a", FlowUser::getType, "4")
.eq("a", FlowUser::getDelFlag, NOT_DELETED)
.eq("b", FlowHisTask::getDelFlag, NOT_DELETED)
.eq("d", FlowDefinition::getDelFlag, NOT_DELETED)
.like(StringUtils.isNotBlank(bo.getNodeName()), "b", FlowHisTask::getNodeName, bo.getNodeName())
.like(StringUtils.isNotBlank(bo.getFlowName()), "d", FlowDefinition::getFlowName, bo.getFlowName())
.like(StringUtils.isNotBlank(bo.getFlowCode()), "d", FlowDefinition::getFlowCode, bo.getFlowCode())
.like(StringUtils.isNotBlank(bo.getFlowStatus()), "c", FlowInstance::getFlowStatus, bo.getFlowStatus())
.in(CollUtil.isNotEmpty(bo.getCreateByIds()), "c", FlowInstance::getCreateBy, bo.getCreateByIds())
.in(CollUtil.isNotEmpty(categoryIds), "d", FlowDefinition::getCategory, categoryIds)
.between(params.get("beginTime") != null && params.get("endTime") != null,
"a", FlowUser::getCreateTime, params.get("beginTime"), params.get("endTime"))
.eq(StringUtils.isNotBlank(userId), "a", FlowUser::getProcessedBy, userId)
.likeIfText("b", FlowHisTask::getNodeName, bo.getNodeName())
.likeIfText("d", FlowDefinition::getFlowName, bo.getFlowName())
.likeIfText("d", FlowDefinition::getFlowCode, bo.getFlowCode())
.likeIfText("c", FlowInstance::getFlowStatus, bo.getFlowStatus())
.inIfNotEmpty("c", FlowInstance::getCreateBy, bo.getCreateByIds())
.inIfNotEmpty("d", FlowDefinition::getCategory, categoryIds)
.betweenParams("a", FlowUser::getCreateTime, params, "beginTime", "endTime")
.eqIfText("a", FlowUser::getProcessedBy, userId)
.orderByDesc("a", FlowUser::getCreateTime)
.orderByDesc("b", FlowHisTask::getUpdateTime);
return wrapper.page(page, FlowTaskVo.class);
.orderByDesc("b", FlowHisTask::getUpdateTime)
.page(page, FlowTaskVo.class);
}
}
@@ -6,7 +6,6 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -16,6 +15,7 @@ import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.query.LambdaJoinQueryBuilder;
import org.dromara.common.mybatis.core.query.QueryBuilder;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.warm.flow.core.FlowEngine;
@@ -138,43 +138,32 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* @return 查询条件构造方法
*/
private MPJLambdaWrapper<FlowInstance> buildQueryWrapper(FlowInstanceBo flowInstanceBo) {
MPJLambdaWrapper<FlowInstance> queryWrapper = JoinWrappers.lambda("fi", FlowInstance.class)
.selectAs(FlowInstance::getId, FlowInstanceVo::getId)
.selectAs(FlowInstance::getCreateTime, FlowInstanceVo::getCreateTime)
.selectAs(FlowInstance::getUpdateTime, FlowInstanceVo::getUpdateTime)
.selectAs(FlowInstance::getDelFlag, FlowInstanceVo::getDelFlag)
.selectAs(FlowInstance::getDefinitionId, FlowInstanceVo::getDefinitionId)
.selectAs(FlowInstance::getBusinessId, FlowInstanceVo::getBusinessId)
.selectAs(FlowInstance::getNodeType, FlowInstanceVo::getNodeType)
.selectAs(FlowInstance::getNodeCode, FlowInstanceVo::getNodeCode)
.selectAs(FlowInstance::getNodeName, FlowInstanceVo::getNodeName)
.selectAs(FlowInstance::getVariable, FlowInstanceVo::getVariable)
.selectAs(FlowInstance::getFlowStatus, FlowInstanceVo::getFlowStatus)
.selectAs(FlowInstance::getActivityStatus, FlowInstanceVo::getActivityStatus)
.selectAs(FlowInstance::getCreateBy, FlowInstanceVo::getCreateBy)
.selectAs(FlowInstance::getExt, FlowInstanceVo::getExt)
.selectAs(org.dromara.warm.flow.orm.entity.FlowDefinition::getFlowName, FlowInstanceVo::getFlowName)
.selectAs(org.dromara.warm.flow.orm.entity.FlowDefinition::getFlowCode, FlowInstanceVo::getFlowCode)
.selectAs(org.dromara.warm.flow.orm.entity.FlowDefinition::getVersion, FlowInstanceVo::getVersion)
.selectAs(org.dromara.warm.flow.orm.entity.FlowDefinition::getFormCustom, FlowInstanceVo::getFormCustom)
.selectAs(org.dromara.warm.flow.orm.entity.FlowDefinition::getFormPath, FlowInstanceVo::getFormPath)
.selectAs(org.dromara.warm.flow.orm.entity.FlowDefinition::getCategory, FlowInstanceVo::getCategory)
.selectAs(FlowInstanceBizExt::getBusinessCode, FlowInstanceVo::getBusinessCode)
.selectAs(FlowInstanceBizExt::getBusinessTitle, FlowInstanceVo::getBusinessTitle)
LambdaJoinQueryBuilder<FlowInstance> queryBuilder = QueryBuilder.lambdaJoin("fi", FlowInstance.class)
.select(FlowInstance::getId, FlowInstance::getCreateTime, FlowInstance::getUpdateTime,
FlowInstance::getDelFlag, FlowInstance::getDefinitionId, FlowInstance::getBusinessId,
FlowInstance::getNodeType, FlowInstance::getNodeCode, FlowInstance::getNodeName,
FlowInstance::getVariable, FlowInstance::getFlowStatus, FlowInstance::getActivityStatus,
FlowInstance::getCreateBy, FlowInstance::getExt)
.select("fd", org.dromara.warm.flow.orm.entity.FlowDefinition::getFlowName,
org.dromara.warm.flow.orm.entity.FlowDefinition::getFlowCode,
org.dromara.warm.flow.orm.entity.FlowDefinition::getVersion,
org.dromara.warm.flow.orm.entity.FlowDefinition::getFormCustom,
org.dromara.warm.flow.orm.entity.FlowDefinition::getFormPath,
org.dromara.warm.flow.orm.entity.FlowDefinition::getCategory)
.select("biz", FlowInstanceBizExt::getBusinessCode, FlowInstanceBizExt::getBusinessTitle)
.leftJoin(org.dromara.warm.flow.orm.entity.FlowDefinition.class, "fd", org.dromara.warm.flow.orm.entity.FlowDefinition::getId, FlowInstance::getDefinitionId)
.leftJoin(FlowInstanceBizExt.class, "biz", FlowInstanceBizExt::getInstanceId, FlowInstance::getId);
queryWrapper.like(StringUtils.isNotBlank(flowInstanceBo.getNodeName()), "fi", FlowInstance::getNodeName, flowInstanceBo.getNodeName());
queryWrapper.like(StringUtils.isNotBlank(flowInstanceBo.getFlowName()), "fd", org.dromara.warm.flow.orm.entity.FlowDefinition::getFlowName, flowInstanceBo.getFlowName());
queryWrapper.like(StringUtils.isNotBlank(flowInstanceBo.getFlowCode()), "fd", org.dromara.warm.flow.orm.entity.FlowDefinition::getFlowCode, flowInstanceBo.getFlowCode());
queryBuilder.likeIfText("fi", FlowInstance::getNodeName, flowInstanceBo.getNodeName());
queryBuilder.likeIfText("fd", org.dromara.warm.flow.orm.entity.FlowDefinition::getFlowName, flowInstanceBo.getFlowName());
queryBuilder.likeIfText("fd", org.dromara.warm.flow.orm.entity.FlowDefinition::getFlowCode, flowInstanceBo.getFlowCode());
if (StringUtils.isNotBlank(flowInstanceBo.getCategory())) {
List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowInstanceBo.getCategory()));
queryWrapper.in(CollUtil.isNotEmpty(categoryIds), "fd", org.dromara.warm.flow.orm.entity.FlowDefinition::getCategory, StreamUtils.toList(categoryIds, Convert::toStr));
queryBuilder.inIfNotEmpty("fd", org.dromara.warm.flow.orm.entity.FlowDefinition::getCategory, StreamUtils.toList(categoryIds, Convert::toStr));
}
queryWrapper.eq(StringUtils.isNotBlank(flowInstanceBo.getBusinessId()), "fi", FlowInstance::getBusinessId, flowInstanceBo.getBusinessId());
queryWrapper.in(CollUtil.isNotEmpty(flowInstanceBo.getCreateByIds()), "fi", FlowInstance::getCreateBy, flowInstanceBo.getCreateByIds());
queryWrapper.eq("fi", FlowInstance::getDelFlag, "0");
queryWrapper.orderByDesc("fi", FlowInstance::getCreateTime);
return queryWrapper;
queryBuilder.eqIfText("fi", FlowInstance::getBusinessId, flowInstanceBo.getBusinessId());
queryBuilder.inIfNotEmpty("fi", FlowInstance::getCreateBy, flowInstanceBo.getCreateByIds());
queryBuilder.orderByDesc("fi", FlowInstance::getCreateTime);
return queryBuilder.build();
}
/**