fix(办公管理): 修复 办公管理流程搜索方法

This commit is contained in:
konbai
2022-12-18 18:19:12 +08:00
parent 209606e913
commit 81648374f2
9 changed files with 151 additions and 76 deletions

View File

@@ -41,8 +41,8 @@ public class WfProcessController extends BaseController {
*/
@GetMapping(value = "/list")
@SaCheckPermission("workflow:process:startList")
public TableDataInfo<WfDefinitionVo> list(PageQuery pageQuery) {
return processService.processList(pageQuery);
public TableDataInfo<WfDefinitionVo> list(ProcessQuery processQuery, PageQuery pageQuery) {
return processService.processList(processQuery, pageQuery);
}
/**
@@ -96,24 +96,20 @@ public class WfProcessController extends BaseController {
/**
* 我拥有的流程
*
* @param pageQuery 分页参数
*/
@SaCheckPermission("workflow:process:ownList")
@GetMapping(value = "/ownList")
public TableDataInfo<WfTaskVo> ownProcess(PageQuery pageQuery) {
return processService.queryPageOwnProcessList(pageQuery);
public TableDataInfo<WfTaskVo> ownProcess(ProcessQuery processQuery, PageQuery pageQuery) {
return processService.queryPageOwnProcessList(processQuery, pageQuery);
}
/**
* 获取待办列表
*
* @param pageQuery 分页参数
*/
@SaCheckPermission("workflow:process:todoList")
@GetMapping(value = "/todoList")
public TableDataInfo<WfTaskVo> todoProcess(PageQuery pageQuery) {
return processService.queryPageTodoProcessList(pageQuery);
public TableDataInfo<WfTaskVo> todoProcess(ProcessQuery processQuery, PageQuery pageQuery) {
return processService.queryPageTodoProcessList(processQuery, pageQuery);
}
/**
@@ -135,8 +131,8 @@ public class WfProcessController extends BaseController {
*/
@SaCheckPermission("workflow:process:finishedList")
@GetMapping(value = "/finishedList")
public TableDataInfo<WfTaskVo> finishedProcess(PageQuery pageQuery) {
return processService.queryPageFinishedProcessList(pageQuery);
public TableDataInfo<WfTaskVo> finishedProcess(ProcessQuery processQuery, PageQuery pageQuery) {
return processService.queryPageFinishedProcessList(processQuery, pageQuery);
}
/**

View File

@@ -2,6 +2,9 @@ package com.ruoyi.flowable.core.domain;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* 流程查询实体对象
*
@@ -30,4 +33,9 @@ public class ProcessQuery {
* 状态
*/
private String state;
/**
* 请求参数
*/
private Map<String, Object> params = new HashMap<>();
}

View File

@@ -20,7 +20,7 @@ public interface IWfProcessService {
* @param pageQuery 分页参数
* @return
*/
TableDataInfo<WfDefinitionVo> processList(PageQuery pageQuery);
TableDataInfo<WfDefinitionVo> processList(ProcessQuery processQuery, PageQuery pageQuery);
/**
* 查询流程部署关联表单信息
@@ -61,13 +61,13 @@ public interface IWfProcessService {
* 查询我的流程列表
* @param pageQuery 分页参数
*/
TableDataInfo<WfTaskVo> queryPageOwnProcessList(PageQuery pageQuery);
TableDataInfo<WfTaskVo> queryPageOwnProcessList(ProcessQuery processQuery, PageQuery pageQuery);
/**
* 查询代办任务列表
* @param pageQuery 分页参数
*/
TableDataInfo<WfTaskVo> queryPageTodoProcessList(PageQuery pageQuery);
TableDataInfo<WfTaskVo> queryPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery);
/**
* 查询待签任务列表
@@ -79,5 +79,5 @@ public interface IWfProcessService {
* 查询已办任务列表
* @param pageQuery 分页参数
*/
TableDataInfo<WfTaskVo> queryPageFinishedProcessList(PageQuery pageQuery);
TableDataInfo<WfTaskVo> queryPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery);
}

View File

@@ -20,16 +20,17 @@ import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.flowable.common.constant.TaskConstants;
import com.ruoyi.flowable.core.FormConf;
import com.ruoyi.flowable.core.domain.ProcessQuery;
import com.ruoyi.flowable.factory.FlowServiceFactory;
import com.ruoyi.flowable.flow.FlowableUtils;
import com.ruoyi.flowable.utils.ModelUtils;
import com.ruoyi.flowable.utils.ProcessFormUtils;
import com.ruoyi.flowable.utils.ProcessUtils;
import com.ruoyi.flowable.utils.TaskUtils;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.workflow.domain.WfDeployForm;
import com.ruoyi.flowable.core.domain.ProcessQuery;
import com.ruoyi.workflow.domain.vo.*;
import com.ruoyi.workflow.mapper.WfDeployFormMapper;
import com.ruoyi.workflow.service.IWfProcessService;
@@ -83,7 +84,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
* @return 流程定义分页列表数据
*/
@Override
public TableDataInfo<WfDefinitionVo> processList(PageQuery pageQuery) {
public TableDataInfo<WfDefinitionVo> processList(ProcessQuery processQuery, PageQuery pageQuery) {
Page<WfDefinitionVo> page = new Page<>();
// 流程定义列表数据查询
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery()
@@ -91,6 +92,8 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
.active()
.orderByProcessDefinitionKey()
.asc();
// 构建搜索条件
ProcessUtils.buildProcessSearch(processDefinitionQuery, processQuery);
long pageTotal = processDefinitionQuery.count();
if (pageTotal <= 0) {
return TableDataInfo.build();
@@ -219,13 +222,15 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
}
@Override
public TableDataInfo<WfTaskVo> queryPageOwnProcessList(PageQuery pageQuery) {
public TableDataInfo<WfTaskVo> queryPageOwnProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
Page<WfTaskVo> page = new Page<>();
Long userId = LoginHelper.getUserId();
HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery()
.startedBy(userId.toString())
.orderByProcessInstanceStartTime()
.desc();
// 构建搜索条件
ProcessUtils.buildProcessSearch(historicProcessInstanceQuery, processQuery);
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery
.listPage(offset, pageQuery.getPageSize());
@@ -269,7 +274,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
}
@Override
public TableDataInfo<WfTaskVo> queryPageTodoProcessList(PageQuery pageQuery) {
public TableDataInfo<WfTaskVo> queryPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
Page<WfTaskVo> page = new Page<>();
Long userId = LoginHelper.getUserId();
TaskQuery taskQuery = taskService.createTaskQuery()
@@ -278,6 +283,8 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
.taskCandidateOrAssigned(userId.toString())
.taskCandidateGroupIn(TaskUtils.getCandidateGroup())
.orderByTaskCreateTime().desc();
// 构建搜索条件
ProcessUtils.buildProcessSearch(taskQuery, processQuery);
page.setTotal(taskQuery.count());
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
List<Task> taskList = taskQuery.listPage(offset, pageQuery.getPageSize());
@@ -327,9 +334,8 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
.taskCandidateUser(userId.toString())
.taskCandidateGroupIn(TaskUtils.getCandidateGroup())
.orderByTaskCreateTime().desc();
if (StringUtils.isNotBlank(processQuery.getProcessName())) {
taskQuery.processDefinitionNameLike("%" + processQuery.getProcessName() + "%");
}
// 构建搜索条件
ProcessUtils.buildProcessSearch(taskQuery, processQuery);
page.setTotal(taskQuery.count());
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
List<Task> taskList = taskQuery.listPage(offset, pageQuery.getPageSize());
@@ -367,7 +373,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
}
@Override
public TableDataInfo<WfTaskVo> queryPageFinishedProcessList(PageQuery pageQuery) {
public TableDataInfo<WfTaskVo> queryPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
Page<WfTaskVo> page = new Page<>();
Long userId = LoginHelper.getUserId();
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
@@ -376,6 +382,8 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
.taskAssignee(userId.toString())
.orderByHistoricTaskInstanceEndTime()
.desc();
// 构建搜索条件
ProcessUtils.buildProcessSearch(taskInstanceQuery, processQuery);
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.listPage(offset, pageQuery.getPageSize());
List<WfTaskVo> hisTaskList = new ArrayList<>();

View File

@@ -11,6 +11,18 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="接收时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -88,6 +100,8 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 日期范围
dateRange: [],
// 查询参数
queryParams: {
pageNum: 1,
@@ -110,7 +124,7 @@ export default {
/** 查询流程定义列表 */
getList() {
this.loading = true;
listClaimProcess(this.queryParams).then(response => {
listClaimProcess(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.claimList = response.rows;
this.total = response.total;
this.loading = false;
@@ -123,6 +137,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},

View File

@@ -1,22 +1,26 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="名称" prop="name">
<el-form-item label="流程名称" prop="processName">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
v-model="queryParams.processName"
placeholder="请输入流程名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="开始时间" prop="deployTime">
<el-date-picker clearable size="small"
v-model="queryParams.deployTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择时间">
</el-date-picker>
<el-form-item label="审批时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -112,6 +116,7 @@ export default {
// 是否显示弹出层
open: false,
src: "",
dateRange: [],
// 查询参数
queryParams: {
pageNum: 1,
@@ -192,6 +197,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},

View File

@@ -1,22 +1,33 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="名称" prop="name">
<el-form-item label="流程标识" prop="processKey">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
v-model="queryParams.processKey"
placeholder="请输入流程标识"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="开始时间" prop="deployTime">
<el-date-picker clearable size="small"
v-model="queryParams.deployTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择时间">
</el-date-picker>
<el-form-item label="流程名称" prop="processName">
<el-input
v-model="queryParams.processName"
placeholder="请输入流程名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="流程分类" prop="category">
<el-select v-model="queryParams.category" clearable placeholder="请选择" size="small">
<el-option
v-for="item in categoryOptions"
:key="item.categoryId"
:label="item.categoryName"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -94,6 +105,9 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
processKey: undefined,
processName: undefined,
category: undefined
},
// 显示搜索条件
showSearch: true,
@@ -126,6 +140,7 @@ export default {
},
/** 查询流程定义列表 */
getList() {
this.loading = true;
listProcess(this.queryParams).then(response => {
this.processList = response.rows;
this.total = response.total;

View File

@@ -1,22 +1,45 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="名称" prop="name">
<el-form-item label="流程标识" prop="processKey">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
v-model="queryParams.processKey"
placeholder="请输入流程标识"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="开始时间" prop="deployTime">
<el-date-picker clearable size="small"
v-model="queryParams.deployTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择时间">
</el-date-picker>
<el-form-item label="流程名称" prop="processName">
<el-input
v-model="queryParams.processName"
placeholder="请输入流程名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="流程分类" prop="category">
<el-select v-model="queryParams.category" clearable placeholder="请选择" size="small">
<el-option
v-for="item in categoryOptions"
:key="item.categoryId"
:label="item.categoryName"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="提交时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -142,19 +165,15 @@ export default {
open: false,
src: "",
definitionList:[],
// 日期范围
dateRange: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
category: null,
key: null,
tenantId: null,
deployTime: null,
derivedFrom: null,
derivedFromRoot: null,
parentDeploymentId: null,
engineVersion: null
processKey: undefined,
processName: undefined,
category: undefined
},
// 表单参数
form: {},
@@ -179,7 +198,7 @@ export default {
/** 查询流程定义列表 */
getList() {
this.loading = true;
listOwnProcess(this.queryParams).then(response => {
listOwnProcess(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.ownProcessList = response.rows;
this.total = response.total;
this.loading = false;
@@ -213,6 +232,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},

View File

@@ -1,22 +1,26 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="名称" prop="name">
<el-form-item label="流程名称" prop="processName">
<el-input
v-model="queryParams.name"
placeholder="请输入名称"
v-model="queryParams.processName"
placeholder="请输入流程名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="开始时间" prop="deployTime">
<el-date-picker clearable size="small"
v-model="queryParams.deployTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择时间">
</el-date-picker>
<el-form-item label="接收时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -109,6 +113,8 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 日期范围
dateRange: [],
// 查询参数
queryParams: {
pageNum: 1,
@@ -131,7 +137,7 @@ export default {
/** 查询流程定义列表 */
getList() {
this.loading = true;
listTodoProcess(this.queryParams).then(response => {
listTodoProcess(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.todoList = response.rows;
this.total = response.total;
this.loading = false;
@@ -177,6 +183,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},