perf: 优化 统一流程列表查询名称风格
This commit is contained in:
@@ -41,8 +41,62 @@ public class WfProcessController extends BaseController {
|
||||
*/
|
||||
@GetMapping(value = "/list")
|
||||
@SaCheckPermission("workflow:process:startList")
|
||||
public TableDataInfo<WfDefinitionVo> list(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||
return processService.processList(processQuery, pageQuery);
|
||||
public TableDataInfo<WfDefinitionVo> startProcessList(ProcessQuery processQuery, PageQuery 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) {
|
||||
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 流程抄送
|
||||
* @return 流程抄送集合
|
||||
*/
|
||||
TableDataInfo<WfCopyVo> queryPageList(WfCopyBo wfCopy, PageQuery pageQuery);
|
||||
TableDataInfo<WfCopyVo> selectPageList(WfCopyBo wfCopy, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询流程抄送列表
|
||||
@@ -38,7 +38,7 @@ public interface IWfCopyService {
|
||||
* @param wfCopy 流程抄送
|
||||
* @return 流程抄送集合
|
||||
*/
|
||||
List<WfCopyVo> queryList(WfCopyBo wfCopy);
|
||||
List<WfCopyVo> selectList(WfCopyBo wfCopy);
|
||||
|
||||
/**
|
||||
* 抄送
|
||||
|
||||
@@ -20,7 +20,31 @@ public interface IWfProcessService {
|
||||
* @param pageQuery 分页参数
|
||||
* @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);
|
||||
|
||||
|
||||
/**
|
||||
* 读取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<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 流程抄送
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<WfCopyVo> queryPageList(WfCopyBo bo, PageQuery pageQuery) {
|
||||
public TableDataInfo<WfCopyVo> selectPageList(WfCopyBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<WfCopy> lqw = buildQueryWrapper(bo);
|
||||
lqw.orderByDesc(WfCopy::getCreateTime);
|
||||
Page<WfCopyVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
@@ -68,7 +68,7 @@ public class WfCopyServiceImpl implements IWfCopyService {
|
||||
* @return 流程抄送
|
||||
*/
|
||||
@Override
|
||||
public List<WfCopyVo> queryList(WfCopyBo bo) {
|
||||
public List<WfCopyVo> selectList(WfCopyBo bo) {
|
||||
LambdaQueryWrapper<WfCopy> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
||||
* @return 流程定义分页列表数据
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<WfDefinitionVo> processList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||
public TableDataInfo<WfDefinitionVo> selectPageStartProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||
Page<WfDefinitionVo> 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<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
|
||||
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<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