@ -212,7 +212,8 @@ public class FlowOperationController {
@@ -212,7 +212,8 @@ public class FlowOperationController {
taskInfoVo . setVariableList ( JSON . parseArray ( flowTaskExt . getVariableListJson ( ) , JSONObject . class ) ) ;
}
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 ) ;
}
@ -833,6 +834,18 @@ public class FlowOperationController {
@@ -833,6 +834,18 @@ public class FlowOperationController {
flowWorkOrderService . getInList ( INSTANCE_ID , instanceIdSet ) ;
Map < String , FlowWorkOrder > workOrderMap =
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 - > {
String instanceId = result . get ( INSTANCE_ID ) . toString ( ) ;
HistoricProcessInstance instance = instanceMap . get ( instanceId ) ;
@ -846,6 +859,17 @@ public class FlowOperationController {
@@ -846,6 +859,17 @@ public class FlowOperationController {
FlowWorkOrder flowWorkOrder = workOrderMap . get ( instanceId ) ;
if ( flowWorkOrder ! = null ) {
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 =
@ -898,6 +922,34 @@ public class FlowOperationController {
@@ -898,6 +922,34 @@ public class FlowOperationController {
flowWorkOrderService . getInList ( INSTANCE_ID , instanceIdSet ) ;
Map < String , FlowWorkOrder > workOrderMap =
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 < > ( ) ;
pageData . getDataList ( ) . forEach ( instance - > {
Map < String , Object > data = BeanUtil . beanToMap ( instance ) ;
@ -910,6 +962,16 @@ public class FlowOperationController {
@@ -910,6 +962,16 @@ public class FlowOperationController {
if ( workOrder ! = null ) {
data . put ( "workOrderCode" , workOrder . getWorkOrderCode ( ) ) ;
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 ) ;
} ) ;