Appearance
createModelQuery
Flowable 7.1.0 摘要:创建流程模型查询对象,用于查询流程设计器创建的模型。
方法签名与说明
ModelQuery createModelQuery()
创建流程模型查询构建器。流程模型是在流程设计器中创建的、尚未部署的流程定义。
Returns:
- ModelQuery - 流程模型查询构建器
常见使用场景
1. 流程设计器模型列表
在流程设计器中展示所有已创建的模型。
2. 模型版本管理
查询和管理流程模型的不同版本。
3. 模型部署前查询
在部署前查询模型信息,验证模型完整性。
Kotlin + Spring Boot 调用示例
示例1:查询所有模型
kotlin
import org.flowable.engine.RepositoryService
import org.springframework.stereotype.Service
@Service
class ModelQueryService(
private val repositoryService: RepositoryService
) {
/**
* 查询所有流程模型
* 企业场景:流程设计器模型列表
*/
fun getAllModels(): List<Map<String, Any>> {
val models = repositoryService.createModelQuery()
.orderByCreateTime()
.desc()
.list()
return models.map { model ->
mapOf(
"id" to model.id,
"key" to model.key,
"name" to model.name,
"category" to model.category,
"version" to model.version,
"createTime" to model.createTime,
"lastUpdateTime" to model.lastUpdateTime
)
}
}
}示例2:按类别查询模型
kotlin
import org.flowable.engine.RepositoryService
import org.springframework.stereotype.Service
@Service
class ModelCategoryService(
private val repositoryService: RepositoryService
) {
/**
* 按类别查询模型
* 企业场景:按业务模块分类展示模型
*/
fun getModelsByCategory(category: String): List<Map<String, Any>> {
val models = repositoryService.createModelQuery()
.modelCategory(category)
.orderByModelName()
.asc()
.list()
return models.map { model ->
mapOf(
"id" to model.id,
"name" to model.name,
"key" to model.key,
"version" to model.version
)
}
}
}示例3:模型搜索
kotlin
import org.flowable.engine.RepositoryService
import org.springframework.web.bind.annotation.*
@RestController
@RequestMapping("/api/models")
class ModelController(
private val repositoryService: RepositoryService
) {
/**
* 搜索流程模型
*/
@GetMapping
fun searchModels(
@RequestParam(required = false) keyword: String?,
@RequestParam(required = false) category: String?,
@RequestParam(defaultValue = "1") page: Int,
@RequestParam(defaultValue = "10") size: Int
): Map<String, Any> {
val query = repositoryService.createModelQuery()
keyword?.let { query.modelNameLike("%$it%") }
category?.let { query.modelCategory(it) }
val total = query.count()
val models = query
.orderByLastUpdateTime()
.desc()
.listPage((page - 1) * size, size)
return mapOf(
"data" to models,
"total" to total,
"page" to page,
"size" to size
)
}
}注意事项
1. 模型与流程定义的区别
- 模型是设计时的概念,未部署
- 流程定义是部署后的可执行版本
2. 性能优化
- 大数据量时使用分页查询
相关 API
RepositoryService.createModelQuery()- 查询模型RepositoryService.newModel()- 创建新模型RepositoryService.saveModel()- 保存模型RepositoryService.deleteModel()- 删除模型
本文档说明
- 基于 Flowable 7.1.0 版本编写
- 所有示例均可直接在 Spring Boot + Kotlin 项目中使用