perf: 优化 统一流程列表查询名称风格
This commit is contained in:
@@ -41,8 +41,62 @@ public class WfProcessController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping(value = "/list")
|
@GetMapping(value = "/list")
|
||||||
@SaCheckPermission("workflow:process:startList")
|
@SaCheckPermission("workflow:process:startList")
|
||||||
public TableDataInfo<WfDefinitionVo> list(ProcessQuery processQuery, PageQuery pageQuery) {
|
public TableDataInfo<WfDefinitionVo> startProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
return processService.processList(processQuery, pageQuery);
|
return processService.selectPageStartProcessList(processQuery, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 我拥有的流程
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("workflow:process:ownList")
|
||||||
|
@GetMapping(value = "/ownList")
|
||||||
|
public TableDataInfo<WfTaskVo> ownProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
return processService.selectPageOwnProcessList(processQuery, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取待办列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("workflow:process:todoList")
|
||||||
|
@GetMapping(value = "/todoList")
|
||||||
|
public TableDataInfo<WfTaskVo> todoProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
return processService.selectPageTodoProcessList(processQuery, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取待签列表
|
||||||
|
*
|
||||||
|
* @param processQuery 流程业务对象
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("workflow:process:claimList")
|
||||||
|
@GetMapping(value = "/claimList")
|
||||||
|
public TableDataInfo<WfTaskVo> claimProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
return processService.selectPageClaimProcessList(processQuery, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取已办列表
|
||||||
|
*
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("workflow:process:finishedList")
|
||||||
|
@GetMapping(value = "/finishedList")
|
||||||
|
public TableDataInfo<WfTaskVo> finishedProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
return processService.selectPageFinishedProcessList(processQuery, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取抄送列表
|
||||||
|
*
|
||||||
|
* @param copyBo 流程抄送对象
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("workflow:process:copyList")
|
||||||
|
@GetMapping(value = "/copyList")
|
||||||
|
public TableDataInfo<WfCopyVo> copyProcessList(WfCopyBo copyBo, PageQuery pageQuery) {
|
||||||
|
copyBo.setUserId(getUserId());
|
||||||
|
return copyService.selectPageList(copyBo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -93,58 +147,4 @@ public class WfProcessController extends BaseController {
|
|||||||
public R detail(String procInsId, String deployId, String taskId) {
|
public R detail(String procInsId, String deployId, String taskId) {
|
||||||
return R.ok(processService.queryProcessDetail(procInsId, deployId, taskId));
|
return R.ok(processService.queryProcessDetail(procInsId, deployId, taskId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 我拥有的流程
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("workflow:process:ownList")
|
|
||||||
@GetMapping(value = "/ownList")
|
|
||||||
public TableDataInfo<WfTaskVo> ownProcess(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
return processService.queryPageOwnProcessList(processQuery, pageQuery);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取待办列表
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("workflow:process:todoList")
|
|
||||||
@GetMapping(value = "/todoList")
|
|
||||||
public TableDataInfo<WfTaskVo> todoProcess(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
return processService.queryPageTodoProcessList(processQuery, pageQuery);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取待签列表
|
|
||||||
*
|
|
||||||
* @param processQuery 流程业务对象
|
|
||||||
* @param pageQuery 分页参数
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("workflow:process:claimList")
|
|
||||||
@GetMapping(value = "/claimList")
|
|
||||||
public TableDataInfo<WfTaskVo> claimProcess(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
return processService.queryPageClaimProcessList(processQuery, pageQuery);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取已办列表
|
|
||||||
*
|
|
||||||
* @param pageQuery 分页参数
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("workflow:process:finishedList")
|
|
||||||
@GetMapping(value = "/finishedList")
|
|
||||||
public TableDataInfo<WfTaskVo> finishedProcess(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
return processService.queryPageFinishedProcessList(processQuery, pageQuery);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取抄送列表
|
|
||||||
*
|
|
||||||
* @param copyBo 流程抄送对象
|
|
||||||
* @param pageQuery 分页参数
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("workflow:process:copyList")
|
|
||||||
@GetMapping(value = "/copyList")
|
|
||||||
public TableDataInfo<WfCopyVo> copyProcess(WfCopyBo copyBo, PageQuery pageQuery) {
|
|
||||||
copyBo.setUserId(getUserId());
|
|
||||||
return copyService.queryPageList(copyBo, pageQuery);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public interface IWfCopyService {
|
|||||||
* @param wfCopy 流程抄送
|
* @param wfCopy 流程抄送
|
||||||
* @return 流程抄送集合
|
* @return 流程抄送集合
|
||||||
*/
|
*/
|
||||||
TableDataInfo<WfCopyVo> queryPageList(WfCopyBo wfCopy, PageQuery pageQuery);
|
TableDataInfo<WfCopyVo> selectPageList(WfCopyBo wfCopy, PageQuery pageQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询流程抄送列表
|
* 查询流程抄送列表
|
||||||
@@ -38,7 +38,7 @@ public interface IWfCopyService {
|
|||||||
* @param wfCopy 流程抄送
|
* @param wfCopy 流程抄送
|
||||||
* @return 流程抄送集合
|
* @return 流程抄送集合
|
||||||
*/
|
*/
|
||||||
List<WfCopyVo> queryList(WfCopyBo wfCopy);
|
List<WfCopyVo> selectList(WfCopyBo wfCopy);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 抄送
|
* 抄送
|
||||||
|
|||||||
@@ -20,7 +20,31 @@ public interface IWfProcessService {
|
|||||||
* @param pageQuery 分页参数
|
* @param pageQuery 分页参数
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
TableDataInfo<WfDefinitionVo> processList(ProcessQuery processQuery, PageQuery pageQuery);
|
TableDataInfo<WfDefinitionVo> selectPageStartProcessList(ProcessQuery processQuery, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询我的流程列表
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
*/
|
||||||
|
TableDataInfo<WfTaskVo> selectPageOwnProcessList(ProcessQuery processQuery, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询代办任务列表
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
*/
|
||||||
|
TableDataInfo<WfTaskVo> selectPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询待签任务列表
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
*/
|
||||||
|
TableDataInfo<WfTaskVo> selectPageClaimProcessList(ProcessQuery processQuery, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询已办任务列表
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
*/
|
||||||
|
TableDataInfo<WfTaskVo> selectPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询流程部署关联表单信息
|
* 查询流程部署关联表单信息
|
||||||
@@ -43,12 +67,14 @@ public interface IWfProcessService {
|
|||||||
*/
|
*/
|
||||||
void startProcessByDefKey(String procDefKey, Map<String, Object> variables);
|
void startProcessByDefKey(String procDefKey, Map<String, Object> variables);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 读取xml文件
|
* 读取xml文件
|
||||||
* @param processDefId 流程定义ID
|
* @param processDefId 流程定义ID
|
||||||
*/
|
*/
|
||||||
String queryBpmnXmlById(String processDefId);
|
String queryBpmnXmlById(String processDefId);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询流程任务详情信息
|
* 查询流程任务详情信息
|
||||||
* @param procInsId 流程实例ID
|
* @param procInsId 流程实例ID
|
||||||
@@ -56,28 +82,4 @@ public interface IWfProcessService {
|
|||||||
* @param taskId 任务ID
|
* @param taskId 任务ID
|
||||||
*/
|
*/
|
||||||
WfDetailVo queryProcessDetail(String procInsId, String deployId, String taskId);
|
WfDetailVo queryProcessDetail(String procInsId, String deployId, String taskId);
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询我的流程列表
|
|
||||||
* @param pageQuery 分页参数
|
|
||||||
*/
|
|
||||||
TableDataInfo<WfTaskVo> queryPageOwnProcessList(ProcessQuery processQuery, PageQuery pageQuery);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询代办任务列表
|
|
||||||
* @param pageQuery 分页参数
|
|
||||||
*/
|
|
||||||
TableDataInfo<WfTaskVo> queryPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询待签任务列表
|
|
||||||
* @param pageQuery 分页参数
|
|
||||||
*/
|
|
||||||
TableDataInfo<WfTaskVo> queryPageClaimProcessList(ProcessQuery processQuery, PageQuery pageQuery);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询已办任务列表
|
|
||||||
* @param pageQuery 分页参数
|
|
||||||
*/
|
|
||||||
TableDataInfo<WfTaskVo> queryPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class WfCopyServiceImpl implements IWfCopyService {
|
|||||||
* @return 流程抄送
|
* @return 流程抄送
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<WfCopyVo> queryPageList(WfCopyBo bo, PageQuery pageQuery) {
|
public TableDataInfo<WfCopyVo> selectPageList(WfCopyBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<WfCopy> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<WfCopy> lqw = buildQueryWrapper(bo);
|
||||||
lqw.orderByDesc(WfCopy::getCreateTime);
|
lqw.orderByDesc(WfCopy::getCreateTime);
|
||||||
Page<WfCopyVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
Page<WfCopyVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
@@ -68,7 +68,7 @@ public class WfCopyServiceImpl implements IWfCopyService {
|
|||||||
* @return 流程抄送
|
* @return 流程抄送
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<WfCopyVo> queryList(WfCopyBo bo) {
|
public List<WfCopyVo> selectList(WfCopyBo bo) {
|
||||||
LambdaQueryWrapper<WfCopy> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<WfCopy> lqw = buildQueryWrapper(bo);
|
||||||
return baseMapper.selectVoList(lqw);
|
return baseMapper.selectVoList(lqw);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
* @return 流程定义分页列表数据
|
* @return 流程定义分页列表数据
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<WfDefinitionVo> processList(ProcessQuery processQuery, PageQuery pageQuery) {
|
public TableDataInfo<WfDefinitionVo> selectPageStartProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
Page<WfDefinitionVo> page = new Page<>();
|
Page<WfDefinitionVo> page = new Page<>();
|
||||||
// 流程定义列表数据查询
|
// 流程定义列表数据查询
|
||||||
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery()
|
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery()
|
||||||
@@ -122,6 +122,216 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<WfTaskVo> selectPageOwnProcessList(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());
|
||||||
|
page.setTotal(historicProcessInstanceQuery.count());
|
||||||
|
List<WfTaskVo> taskVoList = new ArrayList<>();
|
||||||
|
for (HistoricProcessInstance hisIns : historicProcessInstances) {
|
||||||
|
WfTaskVo taskVo = new WfTaskVo();
|
||||||
|
taskVo.setCreateTime(hisIns.getStartTime());
|
||||||
|
taskVo.setFinishTime(hisIns.getEndTime());
|
||||||
|
taskVo.setProcInsId(hisIns.getId());
|
||||||
|
|
||||||
|
// 计算耗时
|
||||||
|
if (Objects.nonNull(hisIns.getEndTime())) {
|
||||||
|
taskVo.setDuration(DateUtils.getDatePoor(hisIns.getEndTime(), hisIns.getStartTime()));
|
||||||
|
} else {
|
||||||
|
taskVo.setDuration(DateUtils.getDatePoor(DateUtils.getNowDate(), hisIns.getStartTime()));
|
||||||
|
}
|
||||||
|
// 流程部署实例信息
|
||||||
|
Deployment deployment = repositoryService.createDeploymentQuery()
|
||||||
|
.deploymentId(hisIns.getDeploymentId()).singleResult();
|
||||||
|
taskVo.setDeployId(hisIns.getDeploymentId());
|
||||||
|
taskVo.setProcDefId(hisIns.getProcessDefinitionId());
|
||||||
|
taskVo.setProcDefName(hisIns.getProcessDefinitionName());
|
||||||
|
taskVo.setProcDefVersion(hisIns.getProcessDefinitionVersion());
|
||||||
|
taskVo.setCategory(deployment.getCategory());
|
||||||
|
// 当前所处流程
|
||||||
|
List<Task> taskList = taskService.createTaskQuery().processInstanceId(hisIns.getId()).list();
|
||||||
|
if (CollUtil.isNotEmpty(taskList)) {
|
||||||
|
taskVo.setTaskId(taskList.get(0).getId());
|
||||||
|
} else {
|
||||||
|
List<HistoricTaskInstance> historicTaskInstance = historyService.createHistoricTaskInstanceQuery()
|
||||||
|
.processInstanceId(hisIns.getId()).orderByHistoricTaskInstanceEndTime().desc().list();
|
||||||
|
if (CollUtil.isNotEmpty(historicTaskInstance)) {
|
||||||
|
taskVo.setTaskId(historicTaskInstance.get(0).getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
taskVoList.add(taskVo);
|
||||||
|
}
|
||||||
|
page.setRecords(taskVoList);
|
||||||
|
return TableDataInfo.build(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<WfTaskVo> selectPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
Page<WfTaskVo> page = new Page<>();
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
TaskQuery taskQuery = taskService.createTaskQuery()
|
||||||
|
.active()
|
||||||
|
.includeProcessVariables()
|
||||||
|
.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());
|
||||||
|
List<WfTaskVo> flowList = new ArrayList<>();
|
||||||
|
for (Task task : taskList) {
|
||||||
|
WfTaskVo flowTask = new WfTaskVo();
|
||||||
|
// 当前流程信息
|
||||||
|
flowTask.setTaskId(task.getId());
|
||||||
|
flowTask.setTaskDefKey(task.getTaskDefinitionKey());
|
||||||
|
flowTask.setCreateTime(task.getCreateTime());
|
||||||
|
flowTask.setProcDefId(task.getProcessDefinitionId());
|
||||||
|
flowTask.setTaskName(task.getName());
|
||||||
|
// 流程定义信息
|
||||||
|
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
|
||||||
|
.processDefinitionId(task.getProcessDefinitionId())
|
||||||
|
.singleResult();
|
||||||
|
flowTask.setDeployId(pd.getDeploymentId());
|
||||||
|
flowTask.setProcDefName(pd.getName());
|
||||||
|
flowTask.setProcDefVersion(pd.getVersion());
|
||||||
|
flowTask.setProcInsId(task.getProcessInstanceId());
|
||||||
|
|
||||||
|
// 流程发起人信息
|
||||||
|
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
|
||||||
|
.processInstanceId(task.getProcessInstanceId())
|
||||||
|
.singleResult();
|
||||||
|
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId()));
|
||||||
|
flowTask.setStartUserId(startUser.getNickName());
|
||||||
|
flowTask.setStartUserName(startUser.getNickName());
|
||||||
|
flowTask.setStartDeptName(startUser.getDept().getDeptName());
|
||||||
|
|
||||||
|
// 流程变量
|
||||||
|
flowTask.setProcVars(this.getProcessVariables(task.getId()));
|
||||||
|
|
||||||
|
flowList.add(flowTask);
|
||||||
|
}
|
||||||
|
page.setRecords(flowList);
|
||||||
|
return TableDataInfo.build(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<WfTaskVo> selectPageClaimProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
Page<WfTaskVo> page = new Page<>();
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
TaskQuery taskQuery = taskService.createTaskQuery()
|
||||||
|
.active()
|
||||||
|
.includeProcessVariables()
|
||||||
|
.taskCandidateUser(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());
|
||||||
|
List<WfTaskVo> flowList = new ArrayList<>();
|
||||||
|
for (Task task : taskList) {
|
||||||
|
WfTaskVo flowTask = new WfTaskVo();
|
||||||
|
// 当前流程信息
|
||||||
|
flowTask.setTaskId(task.getId());
|
||||||
|
flowTask.setTaskDefKey(task.getTaskDefinitionKey());
|
||||||
|
flowTask.setCreateTime(task.getCreateTime());
|
||||||
|
flowTask.setProcDefId(task.getProcessDefinitionId());
|
||||||
|
flowTask.setTaskName(task.getName());
|
||||||
|
// 流程定义信息
|
||||||
|
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
|
||||||
|
.processDefinitionId(task.getProcessDefinitionId())
|
||||||
|
.singleResult();
|
||||||
|
flowTask.setDeployId(pd.getDeploymentId());
|
||||||
|
flowTask.setProcDefName(pd.getName());
|
||||||
|
flowTask.setProcDefVersion(pd.getVersion());
|
||||||
|
flowTask.setProcInsId(task.getProcessInstanceId());
|
||||||
|
|
||||||
|
// 流程发起人信息
|
||||||
|
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
|
||||||
|
.processInstanceId(task.getProcessInstanceId())
|
||||||
|
.singleResult();
|
||||||
|
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId()));
|
||||||
|
flowTask.setStartUserId(startUser.getNickName());
|
||||||
|
flowTask.setStartUserName(startUser.getNickName());
|
||||||
|
flowTask.setStartDeptName(startUser.getDept().getDeptName());
|
||||||
|
|
||||||
|
flowList.add(flowTask);
|
||||||
|
}
|
||||||
|
page.setRecords(flowList);
|
||||||
|
return TableDataInfo.build(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<WfTaskVo> selectPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
Page<WfTaskVo> page = new Page<>();
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
|
||||||
|
.includeProcessVariables()
|
||||||
|
.finished()
|
||||||
|
.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<>();
|
||||||
|
for (HistoricTaskInstance histTask : historicTaskInstanceList) {
|
||||||
|
WfTaskVo flowTask = new WfTaskVo();
|
||||||
|
// 当前流程信息
|
||||||
|
flowTask.setTaskId(histTask.getId());
|
||||||
|
// 审批人员信息
|
||||||
|
flowTask.setCreateTime(histTask.getCreateTime());
|
||||||
|
flowTask.setFinishTime(histTask.getEndTime());
|
||||||
|
flowTask.setDuration(DateUtil.formatBetween(histTask.getDurationInMillis(), BetweenFormatter.Level.SECOND));
|
||||||
|
flowTask.setProcDefId(histTask.getProcessDefinitionId());
|
||||||
|
flowTask.setTaskDefKey(histTask.getTaskDefinitionKey());
|
||||||
|
flowTask.setTaskName(histTask.getName());
|
||||||
|
|
||||||
|
// 流程定义信息
|
||||||
|
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
|
||||||
|
.processDefinitionId(histTask.getProcessDefinitionId())
|
||||||
|
.singleResult();
|
||||||
|
flowTask.setDeployId(pd.getDeploymentId());
|
||||||
|
flowTask.setProcDefName(pd.getName());
|
||||||
|
flowTask.setProcDefVersion(pd.getVersion());
|
||||||
|
flowTask.setProcInsId(histTask.getProcessInstanceId());
|
||||||
|
flowTask.setHisProcInsId(histTask.getProcessInstanceId());
|
||||||
|
|
||||||
|
// 流程发起人信息
|
||||||
|
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
|
||||||
|
.processInstanceId(histTask.getProcessInstanceId())
|
||||||
|
.singleResult();
|
||||||
|
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId()));
|
||||||
|
flowTask.setStartUserId(startUser.getNickName());
|
||||||
|
flowTask.setStartUserName(startUser.getNickName());
|
||||||
|
flowTask.setStartDeptName(startUser.getDept().getDeptName());
|
||||||
|
|
||||||
|
// 流程变量
|
||||||
|
flowTask.setProcVars(this.getProcessVariables(histTask.getId()));
|
||||||
|
|
||||||
|
hisTaskList.add(flowTask);
|
||||||
|
}
|
||||||
|
page.setTotal(taskInstanceQuery.count());
|
||||||
|
page.setRecords(hisTaskList);
|
||||||
|
// Map<String, Object> result = new HashMap<>();
|
||||||
|
// result.put("result",page);
|
||||||
|
// result.put("finished",true);
|
||||||
|
return TableDataInfo.build(page);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String selectFormContent(String definitionId, String deployId) {
|
public String selectFormContent(String definitionId, String deployId) {
|
||||||
InputStream inputStream = repositoryService.getProcessModel(definitionId);
|
InputStream inputStream = repositoryService.getProcessModel(definitionId);
|
||||||
@@ -221,216 +431,6 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
return detailVo;
|
return detailVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
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());
|
|
||||||
page.setTotal(historicProcessInstanceQuery.count());
|
|
||||||
List<WfTaskVo> taskVoList = new ArrayList<>();
|
|
||||||
for (HistoricProcessInstance hisIns : historicProcessInstances) {
|
|
||||||
WfTaskVo taskVo = new WfTaskVo();
|
|
||||||
taskVo.setCreateTime(hisIns.getStartTime());
|
|
||||||
taskVo.setFinishTime(hisIns.getEndTime());
|
|
||||||
taskVo.setProcInsId(hisIns.getId());
|
|
||||||
|
|
||||||
// 计算耗时
|
|
||||||
if (Objects.nonNull(hisIns.getEndTime())) {
|
|
||||||
taskVo.setDuration(DateUtils.getDatePoor(hisIns.getEndTime(), hisIns.getStartTime()));
|
|
||||||
} else {
|
|
||||||
taskVo.setDuration(DateUtils.getDatePoor(DateUtils.getNowDate(), hisIns.getStartTime()));
|
|
||||||
}
|
|
||||||
// 流程部署实例信息
|
|
||||||
Deployment deployment = repositoryService.createDeploymentQuery()
|
|
||||||
.deploymentId(hisIns.getDeploymentId()).singleResult();
|
|
||||||
taskVo.setDeployId(hisIns.getDeploymentId());
|
|
||||||
taskVo.setProcDefId(hisIns.getProcessDefinitionId());
|
|
||||||
taskVo.setProcDefName(hisIns.getProcessDefinitionName());
|
|
||||||
taskVo.setProcDefVersion(hisIns.getProcessDefinitionVersion());
|
|
||||||
taskVo.setCategory(deployment.getCategory());
|
|
||||||
// 当前所处流程
|
|
||||||
List<Task> taskList = taskService.createTaskQuery().processInstanceId(hisIns.getId()).list();
|
|
||||||
if (CollUtil.isNotEmpty(taskList)) {
|
|
||||||
taskVo.setTaskId(taskList.get(0).getId());
|
|
||||||
} else {
|
|
||||||
List<HistoricTaskInstance> historicTaskInstance = historyService.createHistoricTaskInstanceQuery()
|
|
||||||
.processInstanceId(hisIns.getId()).orderByHistoricTaskInstanceEndTime().desc().list();
|
|
||||||
if (CollUtil.isNotEmpty(historicTaskInstance)) {
|
|
||||||
taskVo.setTaskId(historicTaskInstance.get(0).getId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
taskVoList.add(taskVo);
|
|
||||||
}
|
|
||||||
page.setRecords(taskVoList);
|
|
||||||
return TableDataInfo.build(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TableDataInfo<WfTaskVo> queryPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
Page<WfTaskVo> page = new Page<>();
|
|
||||||
Long userId = LoginHelper.getUserId();
|
|
||||||
TaskQuery taskQuery = taskService.createTaskQuery()
|
|
||||||
.active()
|
|
||||||
.includeProcessVariables()
|
|
||||||
.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());
|
|
||||||
List<WfTaskVo> flowList = new ArrayList<>();
|
|
||||||
for (Task task : taskList) {
|
|
||||||
WfTaskVo flowTask = new WfTaskVo();
|
|
||||||
// 当前流程信息
|
|
||||||
flowTask.setTaskId(task.getId());
|
|
||||||
flowTask.setTaskDefKey(task.getTaskDefinitionKey());
|
|
||||||
flowTask.setCreateTime(task.getCreateTime());
|
|
||||||
flowTask.setProcDefId(task.getProcessDefinitionId());
|
|
||||||
flowTask.setTaskName(task.getName());
|
|
||||||
// 流程定义信息
|
|
||||||
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
|
|
||||||
.processDefinitionId(task.getProcessDefinitionId())
|
|
||||||
.singleResult();
|
|
||||||
flowTask.setDeployId(pd.getDeploymentId());
|
|
||||||
flowTask.setProcDefName(pd.getName());
|
|
||||||
flowTask.setProcDefVersion(pd.getVersion());
|
|
||||||
flowTask.setProcInsId(task.getProcessInstanceId());
|
|
||||||
|
|
||||||
// 流程发起人信息
|
|
||||||
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
|
|
||||||
.processInstanceId(task.getProcessInstanceId())
|
|
||||||
.singleResult();
|
|
||||||
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId()));
|
|
||||||
flowTask.setStartUserId(startUser.getNickName());
|
|
||||||
flowTask.setStartUserName(startUser.getNickName());
|
|
||||||
flowTask.setStartDeptName(startUser.getDept().getDeptName());
|
|
||||||
|
|
||||||
// 流程变量
|
|
||||||
flowTask.setProcVars(this.getProcessVariables(task.getId()));
|
|
||||||
|
|
||||||
flowList.add(flowTask);
|
|
||||||
}
|
|
||||||
page.setRecords(flowList);
|
|
||||||
return TableDataInfo.build(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TableDataInfo<WfTaskVo> queryPageClaimProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
Page<WfTaskVo> page = new Page<>();
|
|
||||||
Long userId = LoginHelper.getUserId();
|
|
||||||
TaskQuery taskQuery = taskService.createTaskQuery()
|
|
||||||
.active()
|
|
||||||
.includeProcessVariables()
|
|
||||||
.taskCandidateUser(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());
|
|
||||||
List<WfTaskVo> flowList = new ArrayList<>();
|
|
||||||
for (Task task : taskList) {
|
|
||||||
WfTaskVo flowTask = new WfTaskVo();
|
|
||||||
// 当前流程信息
|
|
||||||
flowTask.setTaskId(task.getId());
|
|
||||||
flowTask.setTaskDefKey(task.getTaskDefinitionKey());
|
|
||||||
flowTask.setCreateTime(task.getCreateTime());
|
|
||||||
flowTask.setProcDefId(task.getProcessDefinitionId());
|
|
||||||
flowTask.setTaskName(task.getName());
|
|
||||||
// 流程定义信息
|
|
||||||
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
|
|
||||||
.processDefinitionId(task.getProcessDefinitionId())
|
|
||||||
.singleResult();
|
|
||||||
flowTask.setDeployId(pd.getDeploymentId());
|
|
||||||
flowTask.setProcDefName(pd.getName());
|
|
||||||
flowTask.setProcDefVersion(pd.getVersion());
|
|
||||||
flowTask.setProcInsId(task.getProcessInstanceId());
|
|
||||||
|
|
||||||
// 流程发起人信息
|
|
||||||
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
|
|
||||||
.processInstanceId(task.getProcessInstanceId())
|
|
||||||
.singleResult();
|
|
||||||
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId()));
|
|
||||||
flowTask.setStartUserId(startUser.getNickName());
|
|
||||||
flowTask.setStartUserName(startUser.getNickName());
|
|
||||||
flowTask.setStartDeptName(startUser.getDept().getDeptName());
|
|
||||||
|
|
||||||
flowList.add(flowTask);
|
|
||||||
}
|
|
||||||
page.setRecords(flowList);
|
|
||||||
return TableDataInfo.build(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TableDataInfo<WfTaskVo> queryPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
Page<WfTaskVo> page = new Page<>();
|
|
||||||
Long userId = LoginHelper.getUserId();
|
|
||||||
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
|
|
||||||
.includeProcessVariables()
|
|
||||||
.finished()
|
|
||||||
.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<>();
|
|
||||||
for (HistoricTaskInstance histTask : historicTaskInstanceList) {
|
|
||||||
WfTaskVo flowTask = new WfTaskVo();
|
|
||||||
// 当前流程信息
|
|
||||||
flowTask.setTaskId(histTask.getId());
|
|
||||||
// 审批人员信息
|
|
||||||
flowTask.setCreateTime(histTask.getCreateTime());
|
|
||||||
flowTask.setFinishTime(histTask.getEndTime());
|
|
||||||
flowTask.setDuration(DateUtil.formatBetween(histTask.getDurationInMillis(), BetweenFormatter.Level.SECOND));
|
|
||||||
flowTask.setProcDefId(histTask.getProcessDefinitionId());
|
|
||||||
flowTask.setTaskDefKey(histTask.getTaskDefinitionKey());
|
|
||||||
flowTask.setTaskName(histTask.getName());
|
|
||||||
|
|
||||||
// 流程定义信息
|
|
||||||
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
|
|
||||||
.processDefinitionId(histTask.getProcessDefinitionId())
|
|
||||||
.singleResult();
|
|
||||||
flowTask.setDeployId(pd.getDeploymentId());
|
|
||||||
flowTask.setProcDefName(pd.getName());
|
|
||||||
flowTask.setProcDefVersion(pd.getVersion());
|
|
||||||
flowTask.setProcInsId(histTask.getProcessInstanceId());
|
|
||||||
flowTask.setHisProcInsId(histTask.getProcessInstanceId());
|
|
||||||
|
|
||||||
// 流程发起人信息
|
|
||||||
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
|
|
||||||
.processInstanceId(histTask.getProcessInstanceId())
|
|
||||||
.singleResult();
|
|
||||||
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId()));
|
|
||||||
flowTask.setStartUserId(startUser.getNickName());
|
|
||||||
flowTask.setStartUserName(startUser.getNickName());
|
|
||||||
flowTask.setStartDeptName(startUser.getDept().getDeptName());
|
|
||||||
|
|
||||||
// 流程变量
|
|
||||||
flowTask.setProcVars(this.getProcessVariables(histTask.getId()));
|
|
||||||
|
|
||||||
hisTaskList.add(flowTask);
|
|
||||||
}
|
|
||||||
page.setTotal(taskInstanceQuery.count());
|
|
||||||
page.setRecords(hisTaskList);
|
|
||||||
// Map<String, Object> result = new HashMap<>();
|
|
||||||
// result.put("result",page);
|
|
||||||
// result.put("finished",true);
|
|
||||||
return TableDataInfo.build(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 启动流程实例
|
* 启动流程实例
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user