增加:allExport
This commit is contained in:
parent
1860c70ff5
commit
2971b22596
@ -142,6 +142,21 @@ public class WfProcessController extends BaseController {
|
|||||||
ExcelUtil.exportExcel(listVo, "我拥有流程", WfOwnTaskExportVo.class, response);
|
ExcelUtil.exportExcel(listVo, "我拥有流程", WfOwnTaskExportVo.class, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出我拥有流程列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("workflow:process:allExport")
|
||||||
|
@Log(title = "所有流程", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/allExport")
|
||||||
|
public void allExport(@Validated ProcessQuery processQuery, HttpServletResponse response) {
|
||||||
|
List<WfTaskVo> list = processService.selectAllProcessList(processQuery);
|
||||||
|
List<WfOwnTaskExportVo> listVo = BeanUtil.copyToList(list, WfOwnTaskExportVo.class);
|
||||||
|
for (WfOwnTaskExportVo exportVo : listVo) {
|
||||||
|
exportVo.setStatus(ObjectUtil.isNull(exportVo.getFinishTime()) ? "进行中" : "已完成");
|
||||||
|
}
|
||||||
|
ExcelUtil.exportExcel(listVo, "所有流程", WfOwnTaskExportVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出待办流程列表
|
* 导出待办流程列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -61,4 +61,14 @@ public class WfTaskBo {
|
|||||||
* 下一节点审批人
|
* 下一节点审批人
|
||||||
*/
|
*/
|
||||||
private String nextUserIds;
|
private String nextUserIds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批次
|
||||||
|
*/
|
||||||
|
private String specBatch;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 规格名称
|
||||||
|
*/
|
||||||
|
private String specName;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import org.flowable.task.api.TaskQuery;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程节点携带参数记录监听类
|
* 流程节点携带参数记录监听类
|
||||||
@ -38,7 +39,17 @@ public class VariablePublishListener implements ExecutionListener {
|
|||||||
.taskCandidateOrAssigned(TaskUtils.getUserId())
|
.taskCandidateOrAssigned(TaskUtils.getUserId())
|
||||||
.taskCandidateGroupIn(TaskUtils.getCandidateGroup())
|
.taskCandidateGroupIn(TaskUtils.getCandidateGroup())
|
||||||
.processDefinitionId(delegateExecution.getProcessDefinitionId())
|
.processDefinitionId(delegateExecution.getProcessDefinitionId())
|
||||||
.orderByTaskCreateTime().desc();
|
.processInstanceBusinessKey(delegateExecution.getProcessInstanceBusinessKey())
|
||||||
|
;
|
||||||
|
//.orderByTaskCreateTime();
|
||||||
|
//.desc();
|
||||||
|
System.out.println("userid =" + TaskUtils.getUserId());
|
||||||
|
System.out.println("getCandidateGroup =" + TaskUtils.getCandidateGroup());
|
||||||
|
System.out.println("getProcessDefinitionId =" + delegateExecution.getProcessDefinitionId());
|
||||||
|
|
||||||
|
long n = taskQuery.count();
|
||||||
|
List<Task> taskQueryList = taskQuery.list();
|
||||||
|
|
||||||
Task task = taskQuery.singleResult();
|
Task task = taskQuery.singleResult();
|
||||||
if (task == null) {
|
if (task == null) {
|
||||||
throw new ServiceException("任务没找到");
|
throw new ServiceException("任务没找到");
|
||||||
|
|||||||
@ -155,28 +155,33 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
return definitionVoList;
|
return definitionVoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private HistoricProcessInstanceQuery getAllHistoricProcessInstanceQuery(ProcessQuery processQuery){
|
||||||
public TableDataInfo<WfTaskVo> selectPageAllProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery()
|
HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery()
|
||||||
//.startedBy(TaskUtils.getUserId())
|
//.startedBy(TaskUtils.getUserId())
|
||||||
.orderByProcessInstanceStartTime()
|
.orderByProcessInstanceStartTime()
|
||||||
.desc();
|
.desc();
|
||||||
Page<WfTaskVo> page = getHistProcessList(historicProcessInstanceQuery,processQuery,pageQuery);
|
// 构建搜索条件
|
||||||
|
ProcessUtils.buildProcessSearch(historicProcessInstanceQuery, processQuery);
|
||||||
|
return historicProcessInstanceQuery;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<WfTaskVo> selectPageAllProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
HistoricProcessInstanceQuery historicProcessInstanceQuery = getAllHistoricProcessInstanceQuery(processQuery);
|
||||||
|
Page<WfTaskVo> page = getHistProcessPageList(historicProcessInstanceQuery,processQuery,pageQuery);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
Page<WfTaskVo> getHistProcessList(HistoricProcessInstanceQuery historicProcessInstanceQuery,ProcessQuery processQuery, PageQuery pageQuery){
|
@Override
|
||||||
Page<WfTaskVo> page = new Page<>();
|
public List<WfTaskVo> selectAllProcessList(ProcessQuery processQuery) {
|
||||||
// 构建搜索条件
|
HistoricProcessInstanceQuery historicProcessInstanceQuery = getAllHistoricProcessInstanceQuery(processQuery);
|
||||||
ProcessUtils.buildProcessSearch(historicProcessInstanceQuery, processQuery);
|
List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery.list();
|
||||||
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
|
List<WfTaskVo> taskVoList = getHistProcessList(historicProcessInstances,processQuery);
|
||||||
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();
|
|
||||||
|
|
||||||
|
return taskVoList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, Object> getHistProcessvariablesMap(HistoricProcessInstance hisIns){
|
||||||
// 获取流程 Variables , 为了方便查询,将其放入 Map 中
|
// 获取流程 Variables , 为了方便查询,将其放入 Map 中
|
||||||
List<HistoricVariableInstance> historicVariableInstances = historyService.createHistoricVariableInstanceQuery()
|
List<HistoricVariableInstance> historicVariableInstances = historyService.createHistoricVariableInstanceQuery()
|
||||||
.processInstanceId(hisIns.getId())
|
.processInstanceId(hisIns.getId())
|
||||||
@ -185,6 +190,24 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
for (HistoricVariableInstance hvi : historicVariableInstances) {
|
for (HistoricVariableInstance hvi : historicVariableInstances) {
|
||||||
variablesMap.put(hvi.getVariableName(), hvi.getValue());
|
variablesMap.put(hvi.getVariableName(), hvi.getValue());
|
||||||
}
|
}
|
||||||
|
return variablesMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setSpecParaToTaskVo(Map<String, Object> variablesMap,WfTaskVo taskVo){
|
||||||
|
Object var2Value = variablesMap.get(ProcessConstants.PROCESS_BATCH ); //批次
|
||||||
|
String specBatch = Convert.toStr(var2Value);
|
||||||
|
taskVo.setSpecBatch(specBatch);
|
||||||
|
|
||||||
|
Object var3Value = variablesMap.get(ProcessConstants.PROCESS_SPEC_NAME); // 规格名称
|
||||||
|
String specName = Convert.toStr(var3Value);
|
||||||
|
taskVo.setSpecName(specName);
|
||||||
|
}
|
||||||
|
private List<WfTaskVo> getHistProcessList(List<HistoricProcessInstance> historicProcessInstances,ProcessQuery processQuery){
|
||||||
|
List<WfTaskVo> taskVoList = new ArrayList<>();
|
||||||
|
for (HistoricProcessInstance hisIns : historicProcessInstances) {
|
||||||
|
WfTaskVo taskVo = new WfTaskVo();
|
||||||
|
|
||||||
|
Map<String, Object> variablesMap = getHistProcessvariablesMap(hisIns);
|
||||||
|
|
||||||
// 获取流程状态
|
// 获取流程状态
|
||||||
Object var1Value = variablesMap.get(ProcessConstants.PROCESS_STATUS_KEY);
|
Object var1Value = variablesMap.get(ProcessConstants.PROCESS_STATUS_KEY);
|
||||||
@ -210,13 +233,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
taskVo.setFinishTime(hisIns.getEndTime());
|
taskVo.setFinishTime(hisIns.getEndTime());
|
||||||
taskVo.setProcInsId(hisIns.getId());
|
taskVo.setProcInsId(hisIns.getId());
|
||||||
|
|
||||||
Object var2Value = variablesMap.get(ProcessConstants.PROCESS_BATCH ); //批次
|
setSpecParaToTaskVo(variablesMap,taskVo);
|
||||||
String specBatch = Convert.toStr(var2Value);
|
|
||||||
taskVo.setSpecBatch(specBatch);
|
|
||||||
|
|
||||||
Object var3Value = variablesMap.get(ProcessConstants.PROCESS_SPEC_NAME); // 规格名称
|
|
||||||
String specName = Convert.toStr(var3Value);
|
|
||||||
taskVo.setSpecName(specName);
|
|
||||||
|
|
||||||
// 计算耗时
|
// 计算耗时
|
||||||
if (Objects.nonNull(hisIns.getEndTime())) {
|
if (Objects.nonNull(hisIns.getEndTime())) {
|
||||||
@ -239,83 +256,49 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
}
|
}
|
||||||
taskVoList.add(taskVo);
|
taskVoList.add(taskVo);
|
||||||
}
|
}
|
||||||
|
return taskVoList;
|
||||||
|
}
|
||||||
|
private Page<WfTaskVo> getHistProcessPageList(HistoricProcessInstanceQuery historicProcessInstanceQuery,ProcessQuery processQuery, PageQuery pageQuery){
|
||||||
|
Page<WfTaskVo> page = new Page<>();
|
||||||
|
// 构建搜索条件
|
||||||
|
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 = getHistProcessList(historicProcessInstances,processQuery);
|
||||||
|
|
||||||
page.setRecords(taskVoList);
|
page.setRecords(taskVoList);
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private HistoricProcessInstanceQuery getOwnHistoricProcessInstanceQuery(ProcessQuery processQuery){
|
||||||
public TableDataInfo<WfTaskVo> selectPageOwnProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery()
|
|
||||||
.startedBy(TaskUtils.getUserId())
|
|
||||||
.orderByProcessInstanceStartTime()
|
|
||||||
.desc();
|
|
||||||
Page<WfTaskVo> page = getHistProcessList(historicProcessInstanceQuery,processQuery,pageQuery);
|
|
||||||
return TableDataInfo.build(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<WfTaskVo> selectOwnProcessList(ProcessQuery processQuery) {
|
|
||||||
HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery()
|
HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery()
|
||||||
.startedBy(TaskUtils.getUserId())
|
.startedBy(TaskUtils.getUserId())
|
||||||
.orderByProcessInstanceStartTime()
|
.orderByProcessInstanceStartTime()
|
||||||
.desc();
|
.desc();
|
||||||
// 构建搜索条件
|
// 构建搜索条件
|
||||||
ProcessUtils.buildProcessSearch(historicProcessInstanceQuery, processQuery);
|
ProcessUtils.buildProcessSearch(historicProcessInstanceQuery, processQuery);
|
||||||
List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery.list();
|
return historicProcessInstanceQuery;
|
||||||
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());
|
|
||||||
|
|
||||||
//add for test --tzx
|
|
||||||
|
|
||||||
String spec[] = new String[2];
|
|
||||||
getHistSpecInfo(hisIns.getId(),spec);
|
|
||||||
taskVo.setSpecBatch(spec[0]);
|
|
||||||
taskVo.setSpecName(spec[1]);
|
|
||||||
//add end for test --tzx
|
|
||||||
|
|
||||||
// 当前所处流程
|
|
||||||
List<Task> taskList = taskService.createTaskQuery().processInstanceId(hisIns.getId()).includeIdentityLinks().list();
|
|
||||||
if (CollUtil.isNotEmpty(taskList)) {
|
|
||||||
taskVo.setTaskName(taskList.stream().map(Task::getName).filter(StringUtils::isNotEmpty).collect(Collectors.joining(",")));
|
|
||||||
}
|
|
||||||
taskVoList.add(taskVo);
|
|
||||||
}
|
|
||||||
return taskVoList;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<WfTaskVo> selectPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
public TableDataInfo<WfTaskVo> selectPageOwnProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
Page<WfTaskVo> page = new Page<>();
|
HistoricProcessInstanceQuery historicProcessInstanceQuery = getOwnHistoricProcessInstanceQuery(processQuery);
|
||||||
TaskQuery taskQuery = taskService.createTaskQuery()
|
Page<WfTaskVo> page = getHistProcessPageList(historicProcessInstanceQuery,processQuery,pageQuery);
|
||||||
.active()
|
return TableDataInfo.build(page);
|
||||||
.includeProcessVariables()
|
}
|
||||||
.taskCandidateOrAssigned(TaskUtils.getUserId())
|
|
||||||
.taskCandidateGroupIn(TaskUtils.getCandidateGroup())
|
@Override
|
||||||
.orderByTaskCreateTime().desc();
|
public List<WfTaskVo> selectOwnProcessList(ProcessQuery processQuery) {
|
||||||
// 构建搜索条件
|
HistoricProcessInstanceQuery historicProcessInstanceQuery = getOwnHistoricProcessInstanceQuery(processQuery);
|
||||||
ProcessUtils.buildProcessSearch(taskQuery, processQuery);
|
List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery.list();
|
||||||
page.setTotal(taskQuery.count());
|
List<WfTaskVo> taskVoList = getHistProcessList(historicProcessInstances,processQuery);
|
||||||
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
|
|
||||||
List<Task> taskList = taskQuery.listPage(offset, pageQuery.getPageSize());
|
return taskVoList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<WfTaskVo> getTaskProcessList(List<Task> taskList){
|
||||||
List<WfTaskVo> flowList = new ArrayList<>();
|
List<WfTaskVo> flowList = new ArrayList<>();
|
||||||
for (Task task : taskList) {
|
for (Task task : taskList) {
|
||||||
WfTaskVo flowTask = new WfTaskVo();
|
WfTaskVo flowTask = new WfTaskVo();
|
||||||
@ -343,77 +326,53 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
flowTask.setStartUserId(userId);
|
flowTask.setStartUserId(userId);
|
||||||
flowTask.setStartUserName(nickName);
|
flowTask.setStartUserName(nickName);
|
||||||
|
|
||||||
//add for test --tzx
|
Map<String, Object> variablesMap = getHistProcessvariablesMap(historicProcessInstance);
|
||||||
|
setSpecParaToTaskVo(variablesMap,flowTask);
|
||||||
String spec[] = new String[2];
|
|
||||||
getHistSpecInfo(task.getProcessInstanceId(),spec);
|
|
||||||
flowTask.setSpecBatch(spec[0]);
|
|
||||||
flowTask.setSpecName(spec[1]);
|
|
||||||
//add end for test --tzx
|
|
||||||
|
|
||||||
// 流程变量
|
// 流程变量
|
||||||
flowTask.setProcVars(task.getProcessVariables());
|
flowTask.setProcVars(task.getProcessVariables());
|
||||||
|
|
||||||
flowList.add(flowTask);
|
flowList.add(flowTask);
|
||||||
}
|
}
|
||||||
|
return flowList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private TaskQuery getTodoTaskQuery(ProcessQuery processQuery){
|
||||||
|
TaskQuery taskQuery = taskService.createTaskQuery()
|
||||||
|
.active()
|
||||||
|
.includeProcessVariables()
|
||||||
|
.taskAssignee(TaskUtils.getUserId())
|
||||||
|
//.taskCandidateOrAssigned(TaskUtils.getUserId())
|
||||||
|
//.taskCandidateGroupIn(TaskUtils.getCandidateGroup())
|
||||||
|
.orderByTaskCreateTime().desc();
|
||||||
|
// 构建搜索条件
|
||||||
|
ProcessUtils.buildProcessSearch(taskQuery, processQuery);
|
||||||
|
return taskQuery;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<WfTaskVo> selectPageTodoProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
Page<WfTaskVo> page = new Page<>();
|
||||||
|
TaskQuery taskQuery = getTodoTaskQuery(processQuery);
|
||||||
|
page.setTotal(taskQuery.count());
|
||||||
|
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
|
||||||
|
List<Task> taskList = taskQuery.listPage(offset, pageQuery.getPageSize());
|
||||||
|
List<WfTaskVo> flowList = getTaskProcessList(taskList);
|
||||||
|
|
||||||
page.setRecords(flowList);
|
page.setRecords(flowList);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<WfTaskVo> selectTodoProcessList(ProcessQuery processQuery) {
|
public List<WfTaskVo> selectTodoProcessList(ProcessQuery processQuery) {
|
||||||
TaskQuery taskQuery = taskService.createTaskQuery()
|
TaskQuery taskQuery = getTodoTaskQuery(processQuery);
|
||||||
.active()
|
|
||||||
.includeProcessVariables()
|
|
||||||
.taskCandidateOrAssigned(TaskUtils.getUserId())
|
|
||||||
.taskCandidateGroupIn(TaskUtils.getCandidateGroup())
|
|
||||||
.orderByTaskCreateTime().desc();
|
|
||||||
// 构建搜索条件
|
|
||||||
ProcessUtils.buildProcessSearch(taskQuery, processQuery);
|
|
||||||
List<Task> taskList = taskQuery.list();
|
List<Task> taskList = taskQuery.list();
|
||||||
List<WfTaskVo> taskVoList = new ArrayList<>();
|
List<WfTaskVo> taskVoList = getTaskProcessList(taskList);
|
||||||
for (Task task : taskList) {
|
|
||||||
WfTaskVo taskVo = new WfTaskVo();
|
|
||||||
// 当前流程信息
|
|
||||||
taskVo.setTaskId(task.getId());
|
|
||||||
taskVo.setTaskDefKey(task.getTaskDefinitionKey());
|
|
||||||
taskVo.setCreateTime(task.getCreateTime());
|
|
||||||
taskVo.setProcDefId(task.getProcessDefinitionId());
|
|
||||||
taskVo.setTaskName(task.getName());
|
|
||||||
// 流程定义信息
|
|
||||||
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
|
|
||||||
.processDefinitionId(task.getProcessDefinitionId())
|
|
||||||
.singleResult();
|
|
||||||
taskVo.setDeployId(pd.getDeploymentId());
|
|
||||||
taskVo.setProcDefName(pd.getName());
|
|
||||||
taskVo.setProcDefVersion(pd.getVersion());
|
|
||||||
taskVo.setProcInsId(task.getProcessInstanceId());
|
|
||||||
|
|
||||||
// 流程发起人信息
|
|
||||||
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
|
|
||||||
.processInstanceId(task.getProcessInstanceId())
|
|
||||||
.singleResult();
|
|
||||||
Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
|
|
||||||
String nickName = userService.selectNickNameById(userId);
|
|
||||||
taskVo.setStartUserId(userId);
|
|
||||||
taskVo.setStartUserName(nickName);
|
|
||||||
|
|
||||||
//add for test --tzx
|
|
||||||
|
|
||||||
String spec[] = new String[2];
|
|
||||||
getHistSpecInfo(task.getProcessInstanceId(),spec);
|
|
||||||
taskVo.setSpecBatch(spec[0]);
|
|
||||||
taskVo.setSpecName(spec[1]);
|
|
||||||
//add end for test --tzx
|
|
||||||
|
|
||||||
taskVoList.add(taskVo);
|
|
||||||
}
|
|
||||||
return taskVoList;
|
return taskVoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private TaskQuery getClaimedTaskQuery(ProcessQuery processQuery){
|
||||||
public TableDataInfo<WfTaskVo> selectPageClaimProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
Page<WfTaskVo> page = new Page<>();
|
|
||||||
TaskQuery taskQuery = taskService.createTaskQuery()
|
TaskQuery taskQuery = taskService.createTaskQuery()
|
||||||
.active()
|
.active()
|
||||||
.includeProcessVariables()
|
.includeProcessVariables()
|
||||||
@ -422,104 +381,32 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
.orderByTaskCreateTime().desc();
|
.orderByTaskCreateTime().desc();
|
||||||
// 构建搜索条件
|
// 构建搜索条件
|
||||||
ProcessUtils.buildProcessSearch(taskQuery, processQuery);
|
ProcessUtils.buildProcessSearch(taskQuery, processQuery);
|
||||||
|
return taskQuery;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<WfTaskVo> selectPageClaimProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
Page<WfTaskVo> page = new Page<>();
|
||||||
|
TaskQuery taskQuery = getClaimedTaskQuery(processQuery);
|
||||||
page.setTotal(taskQuery.count());
|
page.setTotal(taskQuery.count());
|
||||||
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
|
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
|
||||||
List<Task> taskList = taskQuery.listPage(offset, pageQuery.getPageSize());
|
List<Task> taskList = taskQuery.listPage(offset, pageQuery.getPageSize());
|
||||||
List<WfTaskVo> flowList = new ArrayList<>();
|
List<WfTaskVo> flowList = getTaskProcessList(taskList);
|
||||||
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();
|
|
||||||
Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
|
|
||||||
String nickName = userService.selectNickNameById(userId);
|
|
||||||
flowTask.setStartUserId(userId);
|
|
||||||
flowTask.setStartUserName(nickName);
|
|
||||||
|
|
||||||
//add for test --tzx
|
|
||||||
|
|
||||||
String spec[] = new String[2];
|
|
||||||
getHistSpecInfo(task.getProcessInstanceId(),spec);
|
|
||||||
flowTask.setSpecBatch(spec[0]);
|
|
||||||
flowTask.setSpecName(spec[1]);
|
|
||||||
//add end for test --tzx
|
|
||||||
|
|
||||||
flowList.add(flowTask);
|
|
||||||
}
|
|
||||||
page.setRecords(flowList);
|
page.setRecords(flowList);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<WfTaskVo> selectClaimProcessList(ProcessQuery processQuery) {
|
public List<WfTaskVo> selectClaimProcessList(ProcessQuery processQuery) {
|
||||||
TaskQuery taskQuery = taskService.createTaskQuery()
|
TaskQuery taskQuery = getClaimedTaskQuery(processQuery);
|
||||||
.active()
|
|
||||||
.includeProcessVariables()
|
|
||||||
.taskCandidateUser(TaskUtils.getUserId())
|
|
||||||
.taskCandidateGroupIn(TaskUtils.getCandidateGroup())
|
|
||||||
.orderByTaskCreateTime().desc();
|
|
||||||
// 构建搜索条件
|
|
||||||
ProcessUtils.buildProcessSearch(taskQuery, processQuery);
|
|
||||||
List<Task> taskList = taskQuery.list();
|
List<Task> taskList = taskQuery.list();
|
||||||
List<WfTaskVo> flowList = new ArrayList<>();
|
List<WfTaskVo> flowList = getTaskProcessList(taskList);
|
||||||
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();
|
|
||||||
Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
|
|
||||||
String nickName = userService.selectNickNameById(userId);
|
|
||||||
flowTask.setStartUserId(userId);
|
|
||||||
flowTask.setStartUserName(nickName);
|
|
||||||
|
|
||||||
//add for test --tzx
|
|
||||||
|
|
||||||
String spec[] = new String[2];
|
|
||||||
getHistSpecInfo(task.getProcessInstanceId(),spec);
|
|
||||||
flowTask.setSpecBatch(spec[0]);
|
|
||||||
flowTask.setSpecName(spec[1]);
|
|
||||||
//add end for test --tzx
|
|
||||||
|
|
||||||
flowList.add(flowTask);
|
|
||||||
}
|
|
||||||
return flowList;
|
return flowList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private HistoricTaskInstanceQuery getFinishedTaskInstanceQuery(ProcessQuery processQuery){
|
||||||
public TableDataInfo<WfTaskVo> selectPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
|
||||||
Page<WfTaskVo> page = new Page<>();
|
|
||||||
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
|
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
|
||||||
.includeProcessVariables()
|
.includeProcessVariables()
|
||||||
.finished()
|
.finished()
|
||||||
@ -528,8 +415,10 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
.desc();
|
.desc();
|
||||||
// 构建搜索条件
|
// 构建搜索条件
|
||||||
ProcessUtils.buildProcessSearch(taskInstanceQuery, processQuery);
|
ProcessUtils.buildProcessSearch(taskInstanceQuery, processQuery);
|
||||||
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
|
return taskInstanceQuery;
|
||||||
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.listPage(offset, pageQuery.getPageSize());
|
}
|
||||||
|
|
||||||
|
private List<WfTaskVo> getFinishedTaskProcessList(List<HistoricTaskInstance> historicTaskInstanceList){
|
||||||
List<WfTaskVo> hisTaskList = new ArrayList<>();
|
List<WfTaskVo> hisTaskList = new ArrayList<>();
|
||||||
for (HistoricTaskInstance histTask : historicTaskInstanceList) {
|
for (HistoricTaskInstance histTask : historicTaskInstanceList) {
|
||||||
WfTaskVo flowTask = new WfTaskVo();
|
WfTaskVo flowTask = new WfTaskVo();
|
||||||
@ -565,80 +454,36 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
// 流程变量
|
// 流程变量
|
||||||
flowTask.setProcVars(histTask.getProcessVariables());
|
flowTask.setProcVars(histTask.getProcessVariables());
|
||||||
|
|
||||||
//add for test --tzx
|
Map<String, Object> variablesMap = getHistProcessvariablesMap(historicProcessInstance);
|
||||||
|
setSpecParaToTaskVo(variablesMap,flowTask);
|
||||||
|
|
||||||
String spec[] = new String[2];
|
|
||||||
getHistSpecInfo(histTask.getId(),spec);
|
|
||||||
flowTask.setSpecBatch(spec[0]);
|
|
||||||
flowTask.setSpecName(spec[1]);
|
|
||||||
//add end for test --tzx
|
|
||||||
|
|
||||||
hisTaskList.add(flowTask);
|
hisTaskList.add(flowTask);
|
||||||
}
|
}
|
||||||
|
return hisTaskList;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<WfTaskVo> selectPageFinishedProcessList(ProcessQuery processQuery, PageQuery pageQuery) {
|
||||||
|
|
||||||
|
HistoricTaskInstanceQuery taskInstanceQuery = getFinishedTaskInstanceQuery(processQuery);
|
||||||
|
|
||||||
|
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
|
||||||
|
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.listPage(offset, pageQuery.getPageSize());
|
||||||
|
List<WfTaskVo> hisTaskList = getFinishedTaskProcessList(historicTaskInstanceList);
|
||||||
|
|
||||||
|
Page<WfTaskVo> page = new Page<>();
|
||||||
page.setTotal(taskInstanceQuery.count());
|
page.setTotal(taskInstanceQuery.count());
|
||||||
page.setRecords(hisTaskList);
|
page.setRecords(hisTaskList);
|
||||||
// Map<String, Object> result = new HashMap<>();
|
|
||||||
// result.put("result",page);
|
|
||||||
// result.put("finished",true);
|
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<WfTaskVo> selectFinishedProcessList(ProcessQuery processQuery) {
|
public List<WfTaskVo> selectFinishedProcessList(ProcessQuery processQuery) {
|
||||||
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
|
HistoricTaskInstanceQuery taskInstanceQuery = getFinishedTaskInstanceQuery(processQuery);
|
||||||
.includeProcessVariables()
|
|
||||||
.finished()
|
|
||||||
.taskAssignee(TaskUtils.getUserId())
|
|
||||||
.orderByHistoricTaskInstanceEndTime()
|
|
||||||
.desc();
|
|
||||||
// 构建搜索条件
|
|
||||||
ProcessUtils.buildProcessSearch(taskInstanceQuery, processQuery);
|
|
||||||
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.list();
|
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.list();
|
||||||
List<WfTaskVo> hisTaskList = new ArrayList<>();
|
List<WfTaskVo> hisTaskList = getFinishedTaskProcessList(historicTaskInstanceList);
|
||||||
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();
|
|
||||||
Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
|
|
||||||
String nickName = userService.selectNickNameById(userId);
|
|
||||||
flowTask.setStartUserId(userId);
|
|
||||||
flowTask.setStartUserName(nickName);
|
|
||||||
|
|
||||||
// 流程变量
|
|
||||||
flowTask.setProcVars(histTask.getProcessVariables());
|
|
||||||
|
|
||||||
//add for test --tzx
|
|
||||||
|
|
||||||
String spec[] = new String[2];
|
|
||||||
getHistSpecInfo(histTask.getId(),spec);
|
|
||||||
flowTask.setSpecBatch(spec[0]);
|
|
||||||
flowTask.setSpecName(spec[1]);
|
|
||||||
//add end for test --tzx
|
|
||||||
|
|
||||||
hisTaskList.add(flowTask);
|
|
||||||
}
|
|
||||||
return hisTaskList;
|
return hisTaskList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1156,14 +1001,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
|
|||||||
|
|
||||||
// 获取流程实例
|
// 获取流程实例
|
||||||
|
|
||||||
List<HistoricVariableInstance> historicVariableInstances = historyService.createHistoricVariableInstanceQuery()
|
Map<String, Object> variablesMap = getHistProcessvariablesMap(hisIns);
|
||||||
.processInstanceId(hisIns.getProcessDefinitionId())
|
|
||||||
.list();
|
|
||||||
|
|
||||||
Map<String, Object> variablesMap = new HashMap<>();
|
|
||||||
for (HistoricVariableInstance hvi : historicVariableInstances) {
|
|
||||||
variablesMap.put(hvi.getVariableName(), hvi.getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取流程状态
|
// 获取流程状态
|
||||||
Object var1Value = variablesMap.get(ProcessConstants.PROCESS_STATUS_KEY);
|
Object var1Value = variablesMap.get(ProcessConstants.PROCESS_STATUS_KEY);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user