diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java index a455b227..18dfd155 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java @@ -41,8 +41,62 @@ public class WfProcessController extends BaseController { */ @GetMapping(value = "/list") @SaCheckPermission("workflow:process:startList") - public TableDataInfo list(ProcessQuery processQuery, PageQuery pageQuery) { - return processService.processList(processQuery, pageQuery); + public TableDataInfo startProcessList(ProcessQuery processQuery, PageQuery pageQuery) { + return processService.selectPageStartProcessList(processQuery, pageQuery); + } + + /** + * 我拥有的流程 + */ + @SaCheckPermission("workflow:process:ownList") + @GetMapping(value = "/ownList") + public TableDataInfo ownProcessList(ProcessQuery processQuery, PageQuery pageQuery) { + return processService.selectPageOwnProcessList(processQuery, pageQuery); + } + + /** + * 获取待办列表 + */ + @SaCheckPermission("workflow:process:todoList") + @GetMapping(value = "/todoList") + public TableDataInfo todoProcessList(ProcessQuery processQuery, PageQuery pageQuery) { + return processService.selectPageTodoProcessList(processQuery, pageQuery); + } + + /** + * 获取待签列表 + * + * @param processQuery 流程业务对象 + * @param pageQuery 分页参数 + */ + @SaCheckPermission("workflow:process:claimList") + @GetMapping(value = "/claimList") + public TableDataInfo claimProcessList(ProcessQuery processQuery, PageQuery pageQuery) { + return processService.selectPageClaimProcessList(processQuery, pageQuery); + } + + /** + * 获取已办列表 + * + * @param pageQuery 分页参数 + */ + @SaCheckPermission("workflow:process:finishedList") + @GetMapping(value = "/finishedList") + public TableDataInfo finishedProcessList(ProcessQuery processQuery, PageQuery pageQuery) { + return processService.selectPageFinishedProcessList(processQuery, pageQuery); + } + + /** + * 获取抄送列表 + * + * @param copyBo 流程抄送对象 + * @param pageQuery 分页参数 + */ + @SaCheckPermission("workflow:process:copyList") + @GetMapping(value = "/copyList") + public TableDataInfo 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) { return R.ok(processService.queryProcessDetail(procInsId, deployId, taskId)); } - - /** - * 我拥有的流程 - */ - @SaCheckPermission("workflow:process:ownList") - @GetMapping(value = "/ownList") - public TableDataInfo ownProcess(ProcessQuery processQuery, PageQuery pageQuery) { - return processService.queryPageOwnProcessList(processQuery, pageQuery); - } - - /** - * 获取待办列表 - */ - @SaCheckPermission("workflow:process:todoList") - @GetMapping(value = "/todoList") - public TableDataInfo todoProcess(ProcessQuery processQuery, PageQuery pageQuery) { - return processService.queryPageTodoProcessList(processQuery, pageQuery); - } - - /** - * 获取待签列表 - * - * @param processQuery 流程业务对象 - * @param pageQuery 分页参数 - */ - @SaCheckPermission("workflow:process:claimList") - @GetMapping(value = "/claimList") - public TableDataInfo claimProcess(ProcessQuery processQuery, PageQuery pageQuery) { - return processService.queryPageClaimProcessList(processQuery, pageQuery); - } - - /** - * 获取已办列表 - * - * @param pageQuery 分页参数 - */ - @SaCheckPermission("workflow:process:finishedList") - @GetMapping(value = "/finishedList") - public TableDataInfo finishedProcess(ProcessQuery processQuery, PageQuery pageQuery) { - return processService.queryPageFinishedProcessList(processQuery, pageQuery); - } - - /** - * 获取抄送列表 - * - * @param copyBo 流程抄送对象 - * @param pageQuery 分页参数 - */ - @SaCheckPermission("workflow:process:copyList") - @GetMapping(value = "/copyList") - public TableDataInfo copyProcess(WfCopyBo copyBo, PageQuery pageQuery) { - copyBo.setUserId(getUserId()); - return copyService.queryPageList(copyBo, pageQuery); - } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfCopyService.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfCopyService.java index c789d378..4503ebf2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfCopyService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfCopyService.java @@ -30,7 +30,7 @@ public interface IWfCopyService { * @param wfCopy 流程抄送 * @return 流程抄送集合 */ - TableDataInfo queryPageList(WfCopyBo wfCopy, PageQuery pageQuery); + TableDataInfo selectPageList(WfCopyBo wfCopy, PageQuery pageQuery); /** * 查询流程抄送列表 @@ -38,7 +38,7 @@ public interface IWfCopyService { * @param wfCopy 流程抄送 * @return 流程抄送集合 */ - List queryList(WfCopyBo wfCopy); + List selectList(WfCopyBo wfCopy); /** * 抄送 diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java index ad8bbe27..b5172ea2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java @@ -20,7 +20,31 @@ public interface IWfProcessService { * @param pageQuery 分页参数 * @return */ - TableDataInfo processList(ProcessQuery processQuery, PageQuery pageQuery); + TableDataInfo selectPageStartProcessList(ProcessQuery processQuery, PageQuery pageQuery); + + /** + * 查询我的流程列表 + * @param pageQuery 分页参数 + */ + TableDataInfo selectPageOwnProcessList(ProcessQuery processQuery, PageQuery pageQuery); + + /** + * 查询代办任务列表 + * @param pageQuery 分页参数 + */ + TableDataInfo selectPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery); + + /** + * 查询待签任务列表 + * @param pageQuery 分页参数 + */ + TableDataInfo selectPageClaimProcessList(ProcessQuery processQuery, PageQuery pageQuery); + + /** + * 查询已办任务列表 + * @param pageQuery 分页参数 + */ + TableDataInfo selectPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery); /** * 查询流程部署关联表单信息 @@ -43,12 +67,14 @@ public interface IWfProcessService { */ void startProcessByDefKey(String procDefKey, Map variables); + /** * 读取xml文件 * @param processDefId 流程定义ID */ String queryBpmnXmlById(String processDefId); + /** * 查询流程任务详情信息 * @param procInsId 流程实例ID @@ -56,28 +82,4 @@ public interface IWfProcessService { * @param taskId 任务ID */ WfDetailVo queryProcessDetail(String procInsId, String deployId, String taskId); - - /** - * 查询我的流程列表 - * @param pageQuery 分页参数 - */ - TableDataInfo queryPageOwnProcessList(ProcessQuery processQuery, PageQuery pageQuery); - - /** - * 查询代办任务列表 - * @param pageQuery 分页参数 - */ - TableDataInfo queryPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery); - - /** - * 查询待签任务列表 - * @param pageQuery 分页参数 - */ - TableDataInfo queryPageClaimProcessList(ProcessQuery processQuery, PageQuery pageQuery); - - /** - * 查询已办任务列表 - * @param pageQuery 分页参数 - */ - TableDataInfo queryPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfCopyServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfCopyServiceImpl.java index a70676a8..519f8569 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfCopyServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfCopyServiceImpl.java @@ -54,7 +54,7 @@ public class WfCopyServiceImpl implements IWfCopyService { * @return 流程抄送 */ @Override - public TableDataInfo queryPageList(WfCopyBo bo, PageQuery pageQuery) { + public TableDataInfo selectPageList(WfCopyBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); lqw.orderByDesc(WfCopy::getCreateTime); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); @@ -68,7 +68,7 @@ public class WfCopyServiceImpl implements IWfCopyService { * @return 流程抄送 */ @Override - public List queryList(WfCopyBo bo) { + public List selectList(WfCopyBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java index d725e770..d38d93de 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java @@ -84,7 +84,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce * @return 流程定义分页列表数据 */ @Override - public TableDataInfo processList(ProcessQuery processQuery, PageQuery pageQuery) { + public TableDataInfo selectPageStartProcessList(ProcessQuery processQuery, PageQuery pageQuery) { Page page = new Page<>(); // 流程定义列表数据查询 ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery() @@ -122,6 +122,216 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce return TableDataInfo.build(page); } + @Override + public TableDataInfo selectPageOwnProcessList(ProcessQuery processQuery, PageQuery pageQuery) { + Page 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 historicProcessInstances = historicProcessInstanceQuery + .listPage(offset, pageQuery.getPageSize()); + page.setTotal(historicProcessInstanceQuery.count()); + List 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 taskList = taskService.createTaskQuery().processInstanceId(hisIns.getId()).list(); + if (CollUtil.isNotEmpty(taskList)) { + taskVo.setTaskId(taskList.get(0).getId()); + } else { + List 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 selectPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery) { + Page 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 taskList = taskQuery.listPage(offset, pageQuery.getPageSize()); + List 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 selectPageClaimProcessList(ProcessQuery processQuery, PageQuery pageQuery) { + Page 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 taskList = taskQuery.listPage(offset, pageQuery.getPageSize()); + List 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 selectPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery) { + Page 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 historicTaskInstanceList = taskInstanceQuery.listPage(offset, pageQuery.getPageSize()); + List 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 result = new HashMap<>(); +// result.put("result",page); +// result.put("finished",true); + return TableDataInfo.build(page); + } + @Override public String selectFormContent(String definitionId, String deployId) { InputStream inputStream = repositoryService.getProcessModel(definitionId); @@ -221,216 +431,6 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce return detailVo; } - @Override - public TableDataInfo queryPageOwnProcessList(ProcessQuery processQuery, PageQuery pageQuery) { - Page 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 historicProcessInstances = historicProcessInstanceQuery - .listPage(offset, pageQuery.getPageSize()); - page.setTotal(historicProcessInstanceQuery.count()); - List 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 taskList = taskService.createTaskQuery().processInstanceId(hisIns.getId()).list(); - if (CollUtil.isNotEmpty(taskList)) { - taskVo.setTaskId(taskList.get(0).getId()); - } else { - List 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 queryPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery) { - Page 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 taskList = taskQuery.listPage(offset, pageQuery.getPageSize()); - List 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 queryPageClaimProcessList(ProcessQuery processQuery, PageQuery pageQuery) { - Page 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 taskList = taskQuery.listPage(offset, pageQuery.getPageSize()); - List 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 queryPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery) { - Page 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 historicTaskInstanceList = taskInstanceQuery.listPage(offset, pageQuery.getPageSize()); - List 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 result = new HashMap<>(); -// result.put("result",page); -// result.put("finished",true); - return TableDataInfo.build(page); - } - /** * 启动流程实例 */