|
|
|
@ -212,7 +212,8 @@ public class FlowOperationController { |
|
|
|
taskInfoVo.setVariableList(JSON.parseArray(flowTaskExt.getVariableListJson(), JSONObject.class)); |
|
|
|
taskInfoVo.setVariableList(JSON.parseArray(flowTaskExt.getVariableListJson(), JSONObject.class)); |
|
|
|
} |
|
|
|
} |
|
|
|
FlowWorkOrder workOrder = flowWorkOrderService.getFlowWorkOrderByProcessInstanceId(processInstanceId); |
|
|
|
FlowWorkOrder workOrder = flowWorkOrderService.getFlowWorkOrderByProcessInstanceId(processInstanceId); |
|
|
|
taskInfoVo.setTitle(flowApiService.resolveTitle(flowTaskExt.getTitleTemplate(), processInstanceId, workOrder)); |
|
|
|
FlowEntry flowEntry = workOrder == null ? null : flowEntryService.getFlowEntryFromCache(workOrder.getProcessDefinitionKey()); |
|
|
|
|
|
|
|
taskInfoVo.setTitle(flowApiService.resolveTitle(flowTaskExt.getTitleTemplate(), processInstanceId, workOrder, flowEntry)); |
|
|
|
} |
|
|
|
} |
|
|
|
return ResponseResult.success(taskInfoVo); |
|
|
|
return ResponseResult.success(taskInfoVo); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -833,6 +834,18 @@ public class FlowOperationController { |
|
|
|
flowWorkOrderService.getInList(INSTANCE_ID, instanceIdSet); |
|
|
|
flowWorkOrderService.getInList(INSTANCE_ID, instanceIdSet); |
|
|
|
Map<String, FlowWorkOrder> workOrderMap = |
|
|
|
Map<String, FlowWorkOrder> workOrderMap = |
|
|
|
workOrderList.stream().collect(Collectors.toMap(FlowWorkOrder::getProcessInstanceId, c -> c)); |
|
|
|
workOrderList.stream().collect(Collectors.toMap(FlowWorkOrder::getProcessInstanceId, c -> c)); |
|
|
|
|
|
|
|
Set<String> processDefinitionIdSet = taskInstanceList.stream() |
|
|
|
|
|
|
|
.map(HistoricTaskInstance::getProcessDefinitionId).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
List<FlowEntryPublish> flowEntryPublishList = |
|
|
|
|
|
|
|
flowEntryService.getFlowEntryPublishList(processDefinitionIdSet); |
|
|
|
|
|
|
|
Map<String, FlowEntryPublish> flowEntryPublishMap = |
|
|
|
|
|
|
|
flowEntryPublishList.stream().collect(Collectors.toMap(FlowEntryPublish::getProcessDefinitionId, c -> c)); |
|
|
|
|
|
|
|
Set<Long> entryIdSet = flowEntryPublishList.stream() |
|
|
|
|
|
|
|
.map(FlowEntryPublish::getEntryId).filter(Objects::nonNull).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
Map<Long, FlowEntry> flowEntryMap = flowEntryService.listByIds(entryIdSet).stream() |
|
|
|
|
|
|
|
.collect(Collectors.toMap(FlowEntry::getEntryId, e -> e)); |
|
|
|
|
|
|
|
Map<String, FlowTaskExt> flowTaskExtMap = flowTaskExtService.getByProcessDefinitionId(processDefinitionIdSet).stream() |
|
|
|
|
|
|
|
.collect(Collectors.toMap(t -> t.getProcessDefinitionId() + ":" + t.getTaskId(), t -> t, (k1, k2) -> k1)); |
|
|
|
resultList.forEach(result -> { |
|
|
|
resultList.forEach(result -> { |
|
|
|
String instanceId = result.get(INSTANCE_ID).toString(); |
|
|
|
String instanceId = result.get(INSTANCE_ID).toString(); |
|
|
|
HistoricProcessInstance instance = instanceMap.get(instanceId); |
|
|
|
HistoricProcessInstance instance = instanceMap.get(instanceId); |
|
|
|
@ -846,6 +859,17 @@ public class FlowOperationController { |
|
|
|
FlowWorkOrder flowWorkOrder = workOrderMap.get(instanceId); |
|
|
|
FlowWorkOrder flowWorkOrder = workOrderMap.get(instanceId); |
|
|
|
if (flowWorkOrder != null) { |
|
|
|
if (flowWorkOrder != null) { |
|
|
|
result.put("workOrderCode", flowWorkOrder.getWorkOrderCode()); |
|
|
|
result.put("workOrderCode", flowWorkOrder.getWorkOrderCode()); |
|
|
|
|
|
|
|
String processDefinitionId = result.get("processDefinitionId").toString(); |
|
|
|
|
|
|
|
FlowEntryPublish flowEntryPublish = flowEntryPublishMap.get(processDefinitionId); |
|
|
|
|
|
|
|
FlowTaskExt flowTaskExt = flowTaskExtMap.get( |
|
|
|
|
|
|
|
processDefinitionId + ":" + result.get("taskDefinitionKey")); |
|
|
|
|
|
|
|
if (flowEntryPublish != null && flowTaskExt != null) { |
|
|
|
|
|
|
|
FlowEntry flowEntry = flowEntryMap.get(flowEntryPublish.getEntryId()); |
|
|
|
|
|
|
|
if (flowEntry != null) { |
|
|
|
|
|
|
|
result.put("title", flowApiService.resolveTitle( |
|
|
|
|
|
|
|
flowTaskExt.getTitleTemplate(), instanceId, flowWorkOrder, flowEntry)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
Set<String> taskIdSet = |
|
|
|
Set<String> taskIdSet = |
|
|
|
@ -898,6 +922,34 @@ public class FlowOperationController { |
|
|
|
flowWorkOrderService.getInList(INSTANCE_ID, instanceIdSet); |
|
|
|
flowWorkOrderService.getInList(INSTANCE_ID, instanceIdSet); |
|
|
|
Map<String, FlowWorkOrder> workOrderMap = |
|
|
|
Map<String, FlowWorkOrder> workOrderMap = |
|
|
|
workOrderList.stream().collect(Collectors.toMap(FlowWorkOrder::getProcessInstanceId, c -> c)); |
|
|
|
workOrderList.stream().collect(Collectors.toMap(FlowWorkOrder::getProcessInstanceId, c -> c)); |
|
|
|
|
|
|
|
Set<String> processDefinitionIdSet = pageData.getDataList().stream() |
|
|
|
|
|
|
|
.map(HistoricProcessInstance::getProcessDefinitionId).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
Map<String, FlowEntryPublish> flowEntryPublishMap = new HashMap<>(); |
|
|
|
|
|
|
|
Map<Long, FlowEntry> flowEntryMap = new HashMap<>(); |
|
|
|
|
|
|
|
Map<String, FlowTaskExt> flowTaskExtMap = new HashMap<>(); |
|
|
|
|
|
|
|
// 流程实例列表使用起始节点的标题模板。
|
|
|
|
|
|
|
|
Map<String, String> initTaskKeyMap = new HashMap<>(); |
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(processDefinitionIdSet)) { |
|
|
|
|
|
|
|
List<FlowEntryPublish> flowEntryPublishList = |
|
|
|
|
|
|
|
flowEntryService.getFlowEntryPublishList(processDefinitionIdSet); |
|
|
|
|
|
|
|
flowEntryPublishMap.putAll(flowEntryPublishList.stream() |
|
|
|
|
|
|
|
.collect(Collectors.toMap(FlowEntryPublish::getProcessDefinitionId, c -> c))); |
|
|
|
|
|
|
|
Set<Long> entryIdSet = flowEntryPublishList.stream() |
|
|
|
|
|
|
|
.map(FlowEntryPublish::getEntryId).filter(Objects::nonNull).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(entryIdSet)) { |
|
|
|
|
|
|
|
flowEntryMap.putAll(flowEntryService.listByIds(entryIdSet).stream() |
|
|
|
|
|
|
|
.collect(Collectors.toMap(FlowEntry::getEntryId, e -> e))); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
for (FlowEntryPublish flowEntryPublish : flowEntryPublishList) { |
|
|
|
|
|
|
|
TaskInfoVo initTaskInfo = StrUtil.isBlank(flowEntryPublish.getInitTaskInfo()) |
|
|
|
|
|
|
|
? null : JSON.parseObject(flowEntryPublish.getInitTaskInfo(), TaskInfoVo.class); |
|
|
|
|
|
|
|
if (initTaskInfo != null && StrUtil.isNotBlank(initTaskInfo.getTaskKey())) { |
|
|
|
|
|
|
|
initTaskKeyMap.put(flowEntryPublish.getProcessDefinitionId(), initTaskInfo.getTaskKey()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
flowTaskExtMap.putAll(flowTaskExtService.getByProcessDefinitionId(processDefinitionIdSet).stream() |
|
|
|
|
|
|
|
.collect(Collectors.toMap(t -> t.getProcessDefinitionId() + ":" + t.getTaskId(), t -> t, (k1, k2) -> k1))); |
|
|
|
|
|
|
|
} |
|
|
|
List<Map<String, Object>> resultList = new LinkedList<>(); |
|
|
|
List<Map<String, Object>> resultList = new LinkedList<>(); |
|
|
|
pageData.getDataList().forEach(instance -> { |
|
|
|
pageData.getDataList().forEach(instance -> { |
|
|
|
Map<String, Object> data = BeanUtil.beanToMap(instance); |
|
|
|
Map<String, Object> data = BeanUtil.beanToMap(instance); |
|
|
|
@ -910,6 +962,16 @@ public class FlowOperationController { |
|
|
|
if (workOrder != null) { |
|
|
|
if (workOrder != null) { |
|
|
|
data.put("workOrderCode", workOrder.getWorkOrderCode()); |
|
|
|
data.put("workOrderCode", workOrder.getWorkOrderCode()); |
|
|
|
data.put("flowStatus", workOrder.getFlowStatus()); |
|
|
|
data.put("flowStatus", workOrder.getFlowStatus()); |
|
|
|
|
|
|
|
FlowEntryPublish flowEntryPublish = flowEntryPublishMap.get(instance.getProcessDefinitionId()); |
|
|
|
|
|
|
|
FlowTaskExt flowTaskExt = flowTaskExtMap.get( |
|
|
|
|
|
|
|
instance.getProcessDefinitionId() + ":" + initTaskKeyMap.get(instance.getProcessDefinitionId())); |
|
|
|
|
|
|
|
if (flowEntryPublish != null && flowTaskExt != null) { |
|
|
|
|
|
|
|
FlowEntry flowEntry = flowEntryMap.get(flowEntryPublish.getEntryId()); |
|
|
|
|
|
|
|
if (flowEntry != null) { |
|
|
|
|
|
|
|
data.put("title", flowApiService.resolveTitle( |
|
|
|
|
|
|
|
flowTaskExt.getTitleTemplate(), instance.getId(), workOrder, flowEntry)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
resultList.add(data); |
|
|
|
resultList.add(data); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|