@ -122,23 +122,25 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
private SysOrganizationFeign sysOrganizationFeign ;
@Resource
private FlowableService flowableService ;
public ResultBean < UserAndOrgPath > getNextNodeUserSidsOfCreate ( BusinessVariables bv ) {
public ResultBean < UserAndOrgPath > getNextNodeUserSidsOfCreate ( BusinessVariables bv ) {
ResultBean rb = ResultBean . fireFail ( ) ;
String orgSidPath = bv . getOrgSidPath ( ) ;
String orgSidPath = bv . getOrgSidPath ( ) ;
//根据业务参数取流程流转的环节 信息
List < Map < String , Object > > list = ( List < Map < String , Object > > ) getProcessCirculationNodesByMap ( bv ) . getData ( ) ;
if ( list = = null | | list . size ( ) < 2 ) {
if ( list = = null | | list . size ( ) < 2 ) {
return rb . setMsg ( "流程设计问题" ) ;
}
//取第二个环节的配置角色
Object o = list . get ( 1 ) . get ( "candidateGroups" ) ;
if ( o = = null ) {
if ( o = = null ) {
return rb . setMsg ( "流程设计问题" ) ;
}
return getNextUserSids ( rb , orgSidPath , o ) ;
}
public ResultBean < UserAndOrgPath > getNextUserSids ( ResultBean rb , String orgSidPath , Object o ) {
UserAndOrgPath mapParam = new UserAndOrgPath ( ) ;
UserAndOrgPath mapParam = new UserAndOrgPath ( ) ;
JSONArray jsonArray = JSONArray . parseArray ( JSON . toJSONString ( o ) ) ;
String roleSid = jsonArray . get ( 0 ) . toString ( ) ;
//根据组织架构、角色两个参数取相关符合条件的用户信息
@ -146,7 +148,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
userQuery . setRoleSid ( roleSid ) ;
userQuery . setOrgSidPath ( orgSidPath ) ;
List < SysUserVo > sysUserVos = sysUserFeign . getUserByRole ( userQuery ) . getData ( ) ;
if ( sysUserVos = = null | | sysUserVos . size ( ) < 1 ) {
if ( sysUserVos = = null | | sysUserVos . size ( ) < 1 ) {
return rb . fail ( ) . setMsg ( "环节没有用户" ) ;
}
StringBuilder nextNodeUserSids = new StringBuilder ( ) ;
@ -158,7 +160,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
//符合条件的用户的sid,拼接的字符串
String nextNodeUserSids_ = nextNodeUserSids . toString ( ) ;
String nextNodeOrgPathSids_ = nextNodeOrgPathSids . toString ( ) ;
if ( StringUtils . isBlank ( nextNodeUserSids_ ) )
if ( StringUtils . isBlank ( nextNodeUserSids_ ) )
return rb . fail ( ) . setMsg ( "环节没有用户" ) ;
nextNodeUserSids_ = nextNodeUserSids_ . substring ( 0 , nextNodeUserSids_ . length ( ) - 1 ) ;
nextNodeOrgPathSids_ = nextNodeOrgPathSids_ . substring ( 0 , nextNodeOrgPathSids_ . length ( ) - 1 ) ;
@ -166,10 +168,11 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
mapParam . setOrgPath ( nextNodeOrgPathSids_ ) ;
return rb . success ( ) . setData ( mapParam ) ;
}
public ResultBean getProcessCirculationNodesByMap ( BusinessVariables bv ) {
log . info ( "bv" ) ;
String modelId = null ;
if ( bv . getModelId ( ) ! = null ) {
if ( bv . getModelId ( ) ! = null ) {
modelId = bv . getModelId ( ) ;
}
String procId = null ;
@ -179,7 +182,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
/ * if ( bv . getFormVariables ( ) = = null ) {
return ResultBean . fireFail ( ) . setMsg ( "业务参数集合 不能为空!" ) ;
} * /
if ( bv . getFormVariables ( ) = = null )
if ( bv . getFormVariables ( ) = = null )
bv . setFormVariables ( new HashMap < String , Object > ( ) ) ;
List < FlowElement > flowElements = processService . calApprovePath ( procId , modelId , bv . getFormVariables ( ) ) ;
List < FlowElement > collect = flowElements . stream ( ) . filter ( item - > item . getId ( ) . length ( ) > 0 ) . collect ( Collectors . toList ( ) ) ;
@ -299,7 +302,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @return
* /
public ResultBean < FlowRecordVo > businessFlowRecord ( String procInsId ) {
ResultBean < FlowRecordVo > rb = ResultBean . fireFail ( ) ;
ResultBean < FlowRecordVo > rb = ResultBean . fireFail ( ) ;
FlowRecordVo flowRecordVo = new FlowRecordVo ( ) ;
if ( StringUtils . isNotBlank ( procInsId ) ) {
List < HistoricActivityInstance > list = historyService
@ -308,7 +311,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
// .orderByHistoricActivityInstanceStartTime()
// .desc().list();
. list ( ) ;
Map < String , String > processInstance = processService . getProcessInstanceById ( procInsId ) ;
Map < String , String > processInstance = processService . getProcessInstanceById ( procInsId ) ;
List < FlowTask > hisFlowList = new ArrayList < > ( ) ;
for ( HistoricActivityInstance histIns : list ) {
if ( StringUtils . isNotBlank ( histIns . getTaskId ( ) ) ) {
@ -324,7 +327,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
Date startTime = histIns . getStartTime ( ) ;
flowTask . setCreateTime ( startTime ) ;
Date endTime = histIns . getEndTime ( ) ;
if ( endTime ! = null ) {
if ( endTime ! = null ) {
flowTask . setFinishTime ( endTime ) ;
}
//processInstance.get("END_TIME_") timestap类型不能转string
@ -333,13 +336,13 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
if ( StringUtils . isNotBlank ( histIns . getAssignee ( ) ) ) {
ResultBean < List < SysUserVo > > sysUserVoResultBean = sysUserFeign . fetchBySids ( histIns . getAssignee ( ) ) ; // sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
List < SysUserVo > data1 = sysUserVoResultBean . getData ( ) ;
List < TaskUserInfo > taskUserInfos = new ArrayList < > ( ) ;
for ( SysUserVo data : data1 ) {
TaskUserInfo taskUserInfo = new TaskUserInfo ( ) ;
List < TaskUserInfo > taskUserInfos = new ArrayList < > ( ) ;
for ( SysUserVo data : data1 ) {
TaskUserInfo taskUserInfo = new TaskUserInfo ( ) ;
taskUserInfo . setAssigneeName ( data . getName ( ) ) ;
taskUserInfo . setAssigneeSid ( data . getSid ( ) ) ;
if ( ! StringUtils . isBlank ( data . getHeadImage ( ) ) ) {
taskUserInfo . setAssigneeHeadImage ( fileUploadComponent . getUrlPrefix ( ) + data . getHeadImage ( ) ) ;
if ( ! StringUtils . isBlank ( data . getHeadImage ( ) ) ) {
taskUserInfo . setAssigneeHeadImage ( fileUploadComponent . getUrlPrefix ( ) + data . getHeadImage ( ) ) ;
}
taskUserInfos . add ( taskUserInfo ) ;
}
@ -368,19 +371,47 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask . setDuration ( histIns . getDurationInMillis ( ) = = null | | histIns . getDurationInMillis ( ) = = 0 ? null : FlowableUtils . getDate ( histIns . getDurationInMillis ( ) ) ) ;
// 获取意见评论内容
List < Comment > commentList = taskService . getProcessInstanceComments ( histIns . getProcessInstanceId ( ) ) ;
commentList . sort ( Comparator . comparing ( Comment : : getTime ) ) ;
commentList . forEach ( comment - > {
if ( histIns . getTaskId ( ) . equals ( comment . getTaskId ( ) ) ) {
String type = comment . getType ( ) ;
FlowCommentDto build = FlowCommentDto . builder ( ) . type ( type ) . comment ( comment . getFullMessage ( ) ) . build ( ) ;
// FlowCommentDto build = FlowCommentDto.builder().type(type).comment(comment.getFullMessage()).build();
FlowCommentDto build = flowableService . selectComment ( type , histIns . getTaskId ( ) , histIns . getProcessInstanceId ( ) , comment . getId ( ) ) ;
if ( "4" . equals ( type ) ) { //加签委派
FlowTask flowTask1 = new FlowTask ( ) ;
String userSid = comment . getUserId ( ) ;
ResultBean < SysUserVo > sysUserVoResultBean = sysUserFeign . fetchBySid ( userSid ) ;
String name = "" ;
String headImg = "" ;
if ( sysUserVoResultBean . getData ( ) ! = null ) {
name = sysUserVoResultBean . getData ( ) . getName ( ) ;
headImg = sysUserVoResultBean . getData ( ) . getHeadImage ( ) ;
}
flowTask1 . setTaskName ( "加签审批意见" ) ;
List < TaskUserInfo > ll = new ArrayList < > ( ) ;
TaskUserInfo taskUserInfo = new TaskUserInfo ( ) ;
taskUserInfo . setAssigneeName ( name ) ;
taskUserInfo . setAssigneeSid ( userSid ) ;
taskUserInfo . setAssigneeHeadImage ( fileUploadComponent . getUrlPrefix ( ) + headImg ) ;
ll . add ( taskUserInfo ) ;
build . setComment ( build . getComment ( ) ) ;
flowTask1 . setFinishTime ( comment . getTime ( ) ) ;
flowTask1 . setCreateTime ( comment . getTime ( ) ) ;
flowTask1 . setTaskUserInfos ( ll ) ;
flowTask1 . setComment ( build ) ;
hisFlowList . add ( flowTask1 ) ;
} else {
flowTask . setComment ( build ) ;
}
}
} ) ;
hisFlowList . add ( flowTask ) ;
}
}
flowRecordVo . setFlowList ( hisFlowList ) ;
}
log . info ( "flowRecordVo:{}" , JSONObject . toJSONString ( flowRecordVo ) ) ;
log . info ( "flowRecordVo:{}" , JSONObject . toJSONString ( flowRecordVo ) ) ;
return rb . success ( ) . setData ( flowRecordVo ) ;
}
@ -469,7 +500,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @param pageSize 每页条数
* @return
* /
public ResultBean < Page < FlowTaskDto > > businessTodoList ( String userSid , String orgPath , List < BusinessTaskParam > params , Integer pageNum ,
public ResultBean < Page < FlowTaskDto > > businessTodoList ( String userSid , String orgPath , List < BusinessTaskParam > params , Integer pageNum ,
Integer pageSize ) {
Page < FlowTaskDto > page = new Page < > ( ) ;
@ -495,26 +526,26 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
}
//发起人姓名查询
if ( "startUserSid" . equals ( btq . getField ( ) ) ) {
if ( "startUserSid" . equals ( btq . getField ( ) ) ) {
startUserSidParams = btq . getValue ( ) ;
}
}
if ( "proDefName" . equals ( btq . getField ( ) ) ) {
if ( "proDefName" . equals ( btq . getField ( ) ) ) {
names = btq . getValue ( ) ;
}
}
TaskQuery or = taskQuery . active ( )
. includeProcessVariables ( )
. includeTaskLocalVariables ( ) ;
if ( StringUtils . isNotBlank ( orgPath ) ) {
if ( StringUtils . isNotBlank ( orgPath ) ) {
// or.taskVariableValueLike("orgPath", "%" + orgPath + "%");
}
if ( StringUtils . isNotBlank ( names ) ) {
if ( StringUtils . isNotBlank ( names ) ) {
or . or ( ) ;
or . taskVariableValueLike ( "orderNames" , "%" + names + "%" ) . processDefinitionNameLike ( "%" + paramMap . get ( "proDefName" ) + "%" ) ;
or . endOr ( ) ;
}
if ( StringUtils . isNotBlank ( startUserSidParams ) ) {
if ( StringUtils . isNotBlank ( startUserSidParams ) ) {
or . processVariableValueLike ( "INITIATOR" , "%" + startUserSidParams + "%" ) ;
}
//.taskCandidateGroupIn(roleSidList)
@ -528,7 +559,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
// taskQuery.taskCreatedAfter(DateUtils.dateStrConvertDate(paramMap.get("startDate").toString(), "yyyy-MM-dd"));
}
if ( paramMap . get ( "endDate" ) ! = null & & StringUtils . isNotBlank ( paramMap . get ( "endDate" ) . toString ( ) ) ) {
LocalDateTime localDateTime = LocalDateTime . ofInstant ( Instant . ofEpochMilli ( DateUtils . dateStrConvertDate ( paramMap . get ( "endDate" ) . toString ( ) , "yyyy-MM-dd" ) . getTime ( ) ) , ZoneId . systemDefault ( ) ) ; ;
LocalDateTime localDateTime = LocalDateTime . ofInstant ( Instant . ofEpochMilli ( DateUtils . dateStrConvertDate ( paramMap . get ( "endDate" ) . toString ( ) , "yyyy-MM-dd" ) . getTime ( ) ) , ZoneId . systemDefault ( ) ) ;
;
LocalDateTime endOfDay = localDateTime . with ( LocalTime . MAX ) ;
taskQuery . taskCreatedBefore ( Date . from ( endOfDay . atZone ( ZoneId . systemDefault ( ) ) . toInstant ( ) ) ) ;
// taskQuery.taskCreatedBefore(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd"));
@ -568,26 +600,26 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
. singleResult ( ) ;
flowTask . setProcessCreateTime ( historicProcessInstance . getStartTime ( ) ) ;
ResultBean < SysUserVo > sysUserVoResultBean = sysUserFeign . fetchBySid ( historicProcessInstance . getStartUserId ( ) ) ;
if ( sysUserVoResultBean . getData ( ) ! = null ) {
if ( sysUserVoResultBean . getData ( ) ! = null ) {
flowTask . setStartUserSid ( sysUserVoResultBean . getData ( ) . getSid ( ) ) ;
flowTask . setStartUserName ( sysUserVoResultBean . getData ( ) . getName ( ) ) ;
String createOrgPath = ConstantUtils . getString ( flowTask . getProcessVariables ( ) , "createrOrgPath" , "" ) ;
String ogrName = "" ;
if ( StringUtils . isNotBlank ( createOrgPath ) ) {
String createOrgPath = ConstantUtils . getString ( flowTask . getProcessVariables ( ) , "createrOrgPath" , "" ) ;
String ogrName = "" ;
if ( StringUtils . isNotBlank ( createOrgPath ) ) {
List < String > stringList = Arrays . asList ( createOrgPath . split ( "/" ) ) ;
ResultBean < SysOrganizationVo > sysOrganizationVoResultBean = sysOrganizationFeign . fetchBySid ( stringList . get ( stringList . size ( ) - 1 ) ) ;
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
if ( StringUtils . isNotBlank ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ) {
ResultBean < SysOrganizationVo > sysOrganizationVoResultBean = sysOrganizationFeign . fetchBySid ( stringList . get ( stringList . size ( ) - 1 ) ) ;
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
if ( StringUtils . isNotBlank ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ) {
ResultBean < SysOrganizationVo > sysOrganizationVoResultBeanP = sysOrganizationFeign . fetchBySid ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ;
if ( sysOrganizationVoResultBeanP . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBeanP . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
if ( sysOrganizationVoResultBeanP . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBeanP . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
}
} else {
} else {
flowTask . setStartDeptName ( sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
}
}
} else {
} else {
flowTask . setStartDeptName ( sysUserVoResultBean . getData ( ) . getOrganizationName ( ) ) ;
}
}
@ -595,7 +627,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask . setAssigneeName ( sysUserVoResultBean2 . getData ( ) . getName ( ) ) ;
flowTask . setAssigneeSid ( sysUserVoResultBean2 . getData ( ) . getSid ( ) ) ;
flowTask . setDeptName ( sysUserVoResultBean2 . getData ( ) . getOrganizationName ( ) ) ;
if ( processVariables . containsKey ( "orderNames" ) ) {
if ( processVariables . containsKey ( "orderNames" ) ) {
flowTask . setProcDefName ( processVariables . get ( "orderNames" ) . toString ( ) ) ;
}
flowList . add ( flowTask ) ;
@ -611,11 +643,11 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @param userSid
* @return
* /
public ResultBean < Integer > getTodoNum ( String userSid , String orgPath ) {
public ResultBean < Integer > getTodoNum ( String userSid , String orgPath ) {
TaskQuery taskQuery = taskService . createTaskQuery ( )
. taskAssigneeLike ( "%" + userSid + "%" ) ;
if ( StringUtils . isNotBlank ( orgPath ) ) {
if ( StringUtils . isNotBlank ( orgPath ) ) {
/ * taskQuery
. taskVariableValueLike ( "orgPath" , "%" + orgPath + "%" ) ; * /
}
@ -744,13 +776,13 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask . setAssigneeSid ( histTask . get ( "ASSIGNEE_" ) = = null ? "" : histTask . get ( "ASSIGNEE_" ) . toString ( ) ) ;
if ( histTask . get ( "ASSIGNEE_" ) ! = null & & StringUtils . isNotBlank ( histTask . get ( "ASSIGNEE_" ) . toString ( ) ) ) {
ResultBean < List < SysUserVo > > assignee_ = sysUserFeign . fetchBySids ( histTask . get ( "ASSIGNEE_" ) . toString ( ) ) ;
StringBuilder userName = new StringBuilder ( ) ;
StringBuilder userName = new StringBuilder ( ) ;
List < SysUserVo > data1 = assignee_ . getData ( ) ;
for ( SysUserVo data : data1 ) {
for ( SysUserVo data : data1 ) {
userName . append ( data . getName ( ) ) . append ( "," ) ;
}
String userName_str = "" ;
userName_str = userName . substring ( 0 , userName . length ( ) - 1 ) ;
String userName_str = "" ;
userName_str = userName . substring ( 0 , userName . length ( ) - 1 ) ;
flowTask . setAssigneeName ( userName_str ) ;
}
flowTask . setHasRevokeButton ( userSid . equals ( flowTask . getAssigneeSid ( ) ) ? true : false ) ;
@ -765,7 +797,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean < SysUserVo > sysUserVoResultBean = sysUserFeign . fetchBySid ( histTask . get ( "START_USER_ID_" ) . toString ( ) ) ;
flowTask . setStartUserSid ( sysUserVoResultBean . getData ( ) . getSid ( ) ) ;
flowTask . setStartUserName ( sysUserVoResultBean . getData ( ) . getName ( ) ) ;
if ( sysUserVoResultBean . getData ( ) ! = null ) {
if ( sysUserVoResultBean . getData ( ) ! = null ) {
flowTask . setStartUserSid ( sysUserVoResultBean . getData ( ) . getSid ( ) ) ;
flowTask . setStartUserName ( sysUserVoResultBean . getData ( ) . getName ( ) ) ;
}
@ -782,36 +814,36 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask . setEndTime ( new Date ( end_time_t_l ) ) ;
}
flowTask . setProcessVariables ( historicTaskInstance . getProcessVariables ( ) ) ;
String createOrgPath = ConstantUtils . getString ( flowTask . getProcessVariables ( ) , "createrOrgPath" , "" ) ;
String ogrName = "" ;
if ( StringUtils . isNotBlank ( createOrgPath ) ) {
String createOrgPath = ConstantUtils . getString ( flowTask . getProcessVariables ( ) , "createrOrgPath" , "" ) ;
String ogrName = "" ;
if ( StringUtils . isNotBlank ( createOrgPath ) ) {
List < String > stringList = Arrays . asList ( createOrgPath . split ( "/" ) ) ;
ResultBean < SysOrganizationVo > sysOrganizationVoResultBean = sysOrganizationFeign . fetchBySid ( stringList . get ( stringList . size ( ) - 1 ) ) ;
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
if ( StringUtils . isNotBlank ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ) {
ResultBean < SysOrganizationVo > sysOrganizationVoResultBean = sysOrganizationFeign . fetchBySid ( stringList . get ( stringList . size ( ) - 1 ) ) ;
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
if ( StringUtils . isNotBlank ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ) {
ResultBean < SysOrganizationVo > sysOrganizationVoResultBeanP = sysOrganizationFeign . fetchBySid ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ;
if ( sysOrganizationVoResultBeanP . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBeanP . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
if ( sysOrganizationVoResultBeanP . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBeanP . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
}
} else {
} else {
flowTask . setStartDeptName ( sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
}
}
} else {
} else {
ResultBean < String > pathSidByUserSid = sysStaffOrgFeign . getPathSidByUserSid ( sysUserVoResultBean . getData ( ) . getSid ( ) ) ;
if ( pathSidByUserSid . getData ( ) ! = null ) {
if ( pathSidByUserSid . getData ( ) ! = null ) {
ResultBean < SysOrganizationVo > sysOrganizationVoResultBean = sysOrganizationFeign . fetchBySid ( pathSidByUserSid . getData ( ) ) ;
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBean . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysUserVoResultBean . getData ( ) . getOrganizationName ( ) ) ;
} else {
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBean . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysUserVoResultBean . getData ( ) . getOrganizationName ( ) ) ;
} else {
flowTask . setStartDeptName ( sysUserVoResultBean . getData ( ) . getOrganizationName ( ) ) ;
}
}
}
if ( flowTask . getProcessVariables ( ) . containsKey ( "orderNames" ) ) {
if ( flowTask . getProcessVariables ( ) . containsKey ( "orderNames" ) ) {
flowTask . setProcDefName ( flowTask . getProcessVariables ( ) . get ( "orderNames" ) . toString ( ) ) ;
}
hisTaskList . add ( flowTask ) ;
@ -821,6 +853,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean < Page < FlowTaskDto > > rb = new ResultBean < Page < FlowTaskDto > > ( ) ;
return rb . success ( ) . setData ( page ) ;
}
/ * *
* 已办任务列表
*
@ -876,13 +909,13 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask . setAssigneeSid ( histTask . get ( "ASSIGNEE_" ) = = null ? "" : histTask . get ( "ASSIGNEE_" ) . toString ( ) ) ;
if ( histTask . get ( "ASSIGNEE_" ) ! = null & & StringUtils . isNotBlank ( histTask . get ( "ASSIGNEE_" ) . toString ( ) ) ) {
ResultBean < List < SysUserVo > > assignee_ = sysUserFeign . fetchBySids ( histTask . get ( "ASSIGNEE_" ) . toString ( ) ) ;
StringBuilder userName = new StringBuilder ( ) ;
StringBuilder userName = new StringBuilder ( ) ;
List < SysUserVo > data1 = assignee_ . getData ( ) ;
for ( SysUserVo data : data1 ) {
for ( SysUserVo data : data1 ) {
userName . append ( data . getName ( ) ) . append ( "," ) ;
}
String userName_str = "" ;
userName_str = userName . substring ( 0 , userName . length ( ) - 1 ) ;
String userName_str = "" ;
userName_str = userName . substring ( 0 , userName . length ( ) - 1 ) ;
flowTask . setAssigneeName ( userName_str ) ;
}
@ -914,39 +947,39 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask . setProcessVariables ( historicTaskInstance . getProcessVariables ( ) ) ;
ResultBean < List < SysProUrlVo > > listResultBean = sysProUrlService . selectUrlByKey ( flowTask . getProcDefId ( ) , flowTask . getTaskDefKey ( ) , "2" , "2" ) ;
if ( listResultBean . getData ( ) ! = null & & listResultBean . getData ( ) . size ( ) > 0 ) {
if ( listResultBean . getData ( ) ! = null & & listResultBean . getData ( ) . size ( ) > 0 ) {
flowTask . setSysProUrlVo ( listResultBean . getData ( ) . get ( 0 ) ) ;
}
//发起人部门
String createOrgPath = ConstantUtils . getString ( flowTask . getProcessVariables ( ) , "createOrgPath" , "" ) ;
String ogrName = "" ;
if ( StringUtils . isNotBlank ( createOrgPath ) ) {
String createOrgPath = ConstantUtils . getString ( flowTask . getProcessVariables ( ) , "createOrgPath" , "" ) ;
String ogrName = "" ;
if ( StringUtils . isNotBlank ( createOrgPath ) ) {
List < String > stringList = Arrays . asList ( createOrgPath . split ( "/" ) ) ;
ResultBean < SysOrganizationVo > sysOrganizationVoResultBean = sysOrganizationFeign . fetchBySid ( stringList . get ( stringList . size ( ) - 1 ) ) ;
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
if ( StringUtils . isNotBlank ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ) {
ResultBean < SysOrganizationVo > sysOrganizationVoResultBean = sysOrganizationFeign . fetchBySid ( stringList . get ( stringList . size ( ) - 1 ) ) ;
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
if ( StringUtils . isNotBlank ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ) {
ResultBean < SysOrganizationVo > sysOrganizationVoResultBeanP = sysOrganizationFeign . fetchBySid ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ;
if ( sysOrganizationVoResultBeanP . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBeanP . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
if ( sysOrganizationVoResultBeanP . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBeanP . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
}
} else {
} else {
flowTask . setStartDeptName ( sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
}
}
} else {
} else {
ResultBean < String > pathSidByUserSid = sysStaffOrgFeign . getPathSidByUserSid ( sysUserVoResultBean . getData ( ) . getSid ( ) ) ;
if ( pathSidByUserSid . getData ( ) ! = null ) {
if ( pathSidByUserSid . getData ( ) ! = null ) {
ResultBean < SysOrganizationVo > sysOrganizationVoResultBean = sysOrganizationFeign . fetchBySid ( pathSidByUserSid . getData ( ) ) ;
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBean . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysUserVoResultBean . getData ( ) . getOrganizationName ( ) ) ;
} else {
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBean . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysUserVoResultBean . getData ( ) . getOrganizationName ( ) ) ;
} else {
flowTask . setStartDeptName ( sysUserVoResultBean . getData ( ) . getOrganizationName ( ) ) ;
}
}
}
if ( flowTask . getProcessVariables ( ) . containsKey ( "orderNames" ) ) {
if ( flowTask . getProcessVariables ( ) . containsKey ( "orderNames" ) ) {
flowTask . setProcDefName ( flowTask . getProcessVariables ( ) . get ( "orderNames" ) . toString ( ) ) ;
}
hisTaskList . add ( flowTask ) ;
@ -994,7 +1027,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean < FlowTask > rb = ResultBean . fireFail ( ) ;
if ( dto . getFormVariables ( ) = = null )
if ( dto . getFormVariables ( ) = = null )
dto . setFormVariables ( new HashMap < String , Object > ( ) ) ;
Map < String , Object > formVariables = dto . getFormVariables ( ) ;
String taskId = ( String ) formVariables . get ( "taskId" ) ;
@ -1197,14 +1230,15 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @param flowTaskVo
* /
public ResultBean < List < LatestTaskVo > > taskReject ( FlowTaskVo flowTaskVo ) {
return taskReject_ ( flowTaskVo , false ) ;
return taskReject_ ( flowTaskVo , false ) ;
}
/ * *
* 驳回任务
*
* @param flowTaskVo
* /
public ResultBean < List < LatestTaskVo > > taskReject_ ( FlowTaskVo flowTaskVo , boolean b ) {
public ResultBean < List < LatestTaskVo > > taskReject_ ( FlowTaskVo flowTaskVo , boolean b ) {
// 当前任务 task
Task task = taskService . createTaskQuery ( ) . taskId ( flowTaskVo . getTaskId ( ) ) . singleResult ( ) ;
if ( task . isSuspended ( ) ) {
@ -1243,7 +1277,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
HistoricTaskInstance historicTaskInstance = historicTaskInstanceList . get ( historicTaskInstanceList . size ( ) - 2 ) ;
Map < String , Object > actHiVarinstForOrgPath = flowTaskMapper . getActHiVarinstForOrgPath ( historicTaskInstance . getId ( ) ) ;
//Object o = actHiVarinstForOrgPath.get(BusinessVariables.ORGPATH);
String orgPath = MapUtil . getStr ( actHiVarinstForOrgPath , "TEXT_" ) ;
String orgPath = MapUtil . getStr ( actHiVarinstForOrgPath , "TEXT_" ) ;
// 数据清洗,将回滚导致的脏数据清洗掉
List < String > lastHistoricTaskInstanceList = FlowableUtils . historicTaskInstanceClean ( allElements , historicTaskInstanceList ) ;
// 此时历史任务实例为倒序,获取最后走的节点
@ -1325,41 +1359,41 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
. moveActivityIdsToSingleActivityId ( currentIds , targetIds . get ( 0 ) ) . changeState ( ) ;
}
// 最近环节
for ( UserTask item : parentUserTaskList ) {
for ( UserTask item : parentUserTaskList ) {
Map < String , Object > map2 = flowTaskMapper . getTaskByDefKey ( task . getProcessInstanceId ( ) , targetIds . get ( 0 ) ) ;
Map < String , Object > map = flowTaskMapper . getHistTaskByID ( task . getProcessInstanceId ( ) , targetIds . get ( 0 ) ) ;
String assignee_ = item . getAssignee ( ) ;
if ( map . get ( "ASSIGNEE_" ) ! = null ) {
String assignee_ = item . getAssignee ( ) ;
if ( map . get ( "ASSIGNEE_" ) ! = null ) {
assignee_ = map . get ( "ASSIGNEE_" ) . toString ( ) ;
}
if ( map2 = = null ) {
if ( map2 = = null ) {
continue ;
}
String id_ = map2 . get ( "id_" ) . toString ( ) ;
ResultBean < List < LatestTaskVo > > listResultBean_2 = null ;
if ( flowTaskVo . getUserSid ( ) . equals ( assignee_ ) ) {
ResultBean < List < LatestTaskVo > > listResultBean_2 = null ;
if ( flowTaskVo . getUserSid ( ) . equals ( assignee_ ) ) {
flowTaskVo . setTaskId ( id_ ) ;
flowTaskVo . setUserSid ( assignee_ ) ;
flowTaskVo . setTargetKey ( item . getId ( ) ) ;
listResultBean_2 = taskReject_ ( flowTaskVo , true ) ;
} else {
if ( ProcDefEnum . DEFAUL_TADMIN_SID . getProDefId ( ) . equals ( assignee_ ) ) {
listResultBean_2 = taskReject_ ( flowTaskVo , true ) ;
} else {
if ( ProcDefEnum . DEFAUL_TADMIN_SID . getProDefId ( ) . equals ( assignee_ ) ) {
flowTaskVo . setUserId ( flowTaskVo . getUserSid ( ) ) ;
flowTaskVo . setTaskId ( id_ ) ;
flowTaskVo . setUserSid ( assignee_ ) ;
flowTaskVo . setTargetKey ( item . getId ( ) ) ;
listResultBean_2 = taskReject_ ( flowTaskVo , true ) ;
} else {
if ( ProcDefEnum . DEFAUL_TADMIN_SID . getProDefId ( ) . equals ( flowTaskVo . getUserSid ( ) ) & & assignee_ . equals ( flowTaskVo . getUserId ( ) ) ) {
listResultBean_2 = taskReject_ ( flowTaskVo , true ) ;
} else {
if ( ProcDefEnum . DEFAUL_TADMIN_SID . getProDefId ( ) . equals ( flowTaskVo . getUserSid ( ) ) & & assignee_ . equals ( flowTaskVo . getUserId ( ) ) ) {
flowTaskVo . setTaskId ( id_ ) ;
flowTaskVo . setUserSid ( assignee_ ) ;
flowTaskVo . setTargetKey ( item . getId ( ) ) ;
flowTaskVo . setUserId ( flowTaskVo . getUserSid ( ) ) ;
listResultBean_2 = taskReject_ ( flowTaskVo , true ) ;
listResultBean_2 = taskReject_ ( flowTaskVo , true ) ;
} else {
} else {
taskService . setAssignee ( id_ , assignee_ ) ;
taskService . setVariablesLocal ( id_ , flowTaskVo . getValues ( ) ) ;
taskService . setVariablesLocal ( id_ , flowTaskVo . getValues ( ) ) ;
}
}
@ -1367,11 +1401,11 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
LatestTaskVo latestTaskVo = new LatestTaskVo ( ) ;
latestTaskVo . setASSIGNEE_ ( item . getAssignee ( ) ) ;
latestTaskVo . setId_ ( listResultBean_2 ! = null & & listResultBean_2 . getData ( ) . size ( ) ! = 0 ? listResultBean_2 . getData ( ) . get ( 0 ) . getId_ ( ) : id_ ) ;
latestTaskVo . setName_ ( listResultBean_2 ! = null & & listResultBean_2 . getData ( ) . size ( ) ! = 0 ? listResultBean_2 . getData ( ) . get ( 0 ) . getName_ ( ) : item . getName ( ) ) ;
latestTaskVo . setTask_def_key_ ( listResultBean_2 ! = null & & listResultBean_2 . getData ( ) . size ( ) ! = 0 ? listResultBean_2 . getData ( ) . get ( 0 ) . getTask_def_key_ ( ) : item . getId ( ) ) ;
latestTaskVo . setIncomingSourceRef ( listResultBean_2 ! = null & & listResultBean_2 . getData ( ) . size ( ) ! = 0 ? listResultBean_2 . getData ( ) . get ( 0 ) . getIncomingSourceRef ( ) : item . getIncomingFlows ( ) . get ( 0 ) . getSourceRef ( ) ) ;
latestTaskVo . setOrgPath ( listResultBean_2 ! = null & & listResultBean_2 . getData ( ) . size ( ) ! = 0 ? listResultBean_2 . getData ( ) . get ( 0 ) . getOrgPath ( ) : orgPath ) ;
latestTaskVo . setId_ ( listResultBean_2 ! = null & & listResultBean_2 . getData ( ) . size ( ) ! = 0 ? listResultBean_2 . getData ( ) . get ( 0 ) . getId_ ( ) : id_ ) ;
latestTaskVo . setName_ ( listResultBean_2 ! = null & & listResultBean_2 . getData ( ) . size ( ) ! = 0 ? listResultBean_2 . getData ( ) . get ( 0 ) . getName_ ( ) : item . getName ( ) ) ;
latestTaskVo . setTask_def_key_ ( listResultBean_2 ! = null & & listResultBean_2 . getData ( ) . size ( ) ! = 0 ? listResultBean_2 . getData ( ) . get ( 0 ) . getTask_def_key_ ( ) : item . getId ( ) ) ;
latestTaskVo . setIncomingSourceRef ( listResultBean_2 ! = null & & listResultBean_2 . getData ( ) . size ( ) ! = 0 ? listResultBean_2 . getData ( ) . get ( 0 ) . getIncomingSourceRef ( ) : item . getIncomingFlows ( ) . get ( 0 ) . getSourceRef ( ) ) ;
latestTaskVo . setOrgPath ( listResultBean_2 ! = null & & listResultBean_2 . getData ( ) . size ( ) ! = 0 ? listResultBean_2 . getData ( ) . get ( 0 ) . getOrgPath ( ) : orgPath ) ;
latestTaskList . add ( latestTaskVo ) ;
}
@ -1449,17 +1483,17 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
private String getTaskId ( String currentActivityId , String processInstanceId , String processDefinitionId ) {
BpmnModel bpmnModel = repositoryService . getBpmnModel ( processDefinitionId ) ;
FlowNode flowNode = ( FlowNode ) bpmnModel . getFlowElement ( currentActivityId ) ;
List < SequenceFlow > list = flowNode . getIncomingFlows ( ) ;
if ( list . size ( ) = = 0 ) {
List < SequenceFlow > list = flowNode . getIncomingFlows ( ) ;
if ( list . size ( ) = = 0 ) {
return "" ;
}
List < HistoricActivityInstance > list1 = new ArrayList < > ( ) ;
for ( SequenceFlow sequenceFlow : list ) {
List < HistoricActivityInstance > list1 = new ArrayList < > ( ) ;
for ( SequenceFlow sequenceFlow : list ) {
String sourceRef = sequenceFlow . getSourceRef ( ) ;
list1 = historyService . createHistoricActivityInstanceQuery ( ) . activityId ( sourceRef )
list1 = historyService . createHistoricActivityInstanceQuery ( ) . activityId ( sourceRef )
. processInstanceId ( processInstanceId ) . orderByHistoricActivityInstanceStartTime ( ) . desc ( ) . list ( ) ;
if ( list1 . size ( ) > 0 ) {
if ( list1 . size ( ) > 0 ) {
break ;
}
}
@ -1472,7 +1506,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
return historicActivityInstance . getTaskId ( ) ;
}
public ResultBean < List < LatestTaskVo > > revokeProcess ( FlowTaskVo flowTaskVo , int j ) {
public ResultBean < List < LatestTaskVo > > revokeProcess ( FlowTaskVo flowTaskVo , int j ) {
HistoricTaskInstance historicTaskInstance = historyService . createHistoricTaskInstanceQuery ( ) . taskId ( flowTaskVo . getTaskId ( ) ) . singleResult ( ) ;
Execution execution = runtimeService . createExecutionQuery ( ) . executionId ( historicTaskInstance . getExecutionId ( ) ) . singleResult ( ) ;
DelegateExecution delegateExecution = ( DelegateExecution ) execution ;
@ -1493,10 +1528,10 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String userSid = flowTaskVo . getUserSid ( ) ;
ResultBean < FlowRecordVo > flowRecordVoResultBean = flowableService . flowRecord ( flowTaskVo . getInstanceId ( ) , flowTaskVo . getInstanceId ( ) ) ;
List < FlowTask > flowList = flowRecordVoResultBean . getData ( ) . getFlowList ( ) ;
String ybrsid = "" ;
int ii = 0 ;
String ybrsid = "" ;
int ii = 0 ;
FlowTask flowTask_1 = flowList . get ( j + 1 ) ;
FlowTask flowTask_1 = flowList . get ( j + 1 ) ;
List < TaskUserInfo > taskUserInfos_1 = flowTask_1 . getTaskUserInfos ( ) ;
TaskUserInfo taskUserInfo_1 = taskUserInfos_1 . get ( 0 ) ;
@ -1506,21 +1541,21 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String assigneeSid1 = taskUserInfo_1 . getAssigneeSid ( ) ;
String assigneeSid0 = taskUserInfo_0 . getAssigneeSid ( ) ;
if ( ! assigneeSid1 . equals ( assigneeSid0 ) ) {
ybrsid = assignee ;
} else {
if ( ! assigneeSid1 . equals ( assigneeSid0 ) ) {
ybrsid = assignee ;
} else {
FlowTask flowTask1 = flowList . get ( 1 ) ;
for ( int i = 1 ; i < flowList . size ( ) ; i + + ) {
for ( int i = 1 ; i < flowList . size ( ) ; i + + ) {
FlowTask flowTask = flowList . get ( i ) ;
List < TaskUserInfo > taskUserInfos = flowTask . getTaskUserInfos ( ) ;
TaskUserInfo taskUserInfo = taskUserInfos . get ( 0 ) ;
if ( assigneeSid0 . equals ( taskUserInfo . getAssigneeSid ( ) ) ) {
if ( ! FlowComment . RECALL . getType ( ) . equals ( flowTask1 . getComment ( ) . getType ( ) ) ) {
if ( assigneeSid0 . equals ( taskUserInfo . getAssigneeSid ( ) ) ) {
if ( ! FlowComment . RECALL . getType ( ) . equals ( flowTask1 . getComment ( ) . getType ( ) ) ) {
ii + + ;
}
continue ;
} else {
ybrsid = flowList . get ( i ) . getTaskUserInfos ( ) . get ( 0 ) . getAssigneeSid ( ) ;
} else {
ybrsid = flowList . get ( i ) . getTaskUserInfos ( ) . get ( 0 ) . getAssigneeSid ( ) ;
break ;
}
}
@ -1530,29 +1565,30 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
return new ResultBean < List < LatestTaskVo > > ( ) . fail ( ) . setMsg ( "您不是上一环节处理人,不能进行撤回操作!" ) . setData ( new ArrayList < > ( ) ) ;
} else {
ResultBean < List < LatestTaskVo > > listResultBean = null ;
for ( int i = 0 ; i < = ii ; i + + ) { //ii==2的问题
listResultBean = revokeProcess_ ( historicTaskInstance . getProcessInstanceId ( ) , userSid ) ;
for ( int i = 0 ; i < = ii ; i + + ) { //ii==2的问题
listResultBean = revokeProcess_ ( historicTaskInstance . getProcessInstanceId ( ) , userSid ) ;
}
return listResultBean ;
}
}
public ResultBean < List < LatestTaskVo > > revokeProcess ( FlowTaskVo flowTaskVo ) {
return revokeProcess ( flowTaskVo , 0 ) ;
return revokeProcess ( flowTaskVo , 0 ) ;
}
public HistoricTaskInstance returnInstance ( HistoricTaskInstance historicTaskInstance1 ) {
if ( ProcDefEnum . DEFAUL_TADMIN_SID . getProDefId ( ) . equals ( historicTaskInstance1 . getAssignee ( ) ) ) {
public HistoricTaskInstance returnInstance ( HistoricTaskInstance historicTaskInstance1 ) {
if ( ProcDefEnum . DEFAUL_TADMIN_SID . getProDefId ( ) . equals ( historicTaskInstance1 . getAssignee ( ) ) ) {
String taskId = getTaskId ( historicTaskInstance1 . getTaskDefinitionKey ( ) , historicTaskInstance1 . getProcessInstanceId ( ) , historicTaskInstance1 . getProcessDefinitionId ( ) ) ;
historicTaskInstance1 = historyService . createHistoricTaskInstanceQuery ( ) . taskId ( taskId ) . singleResult ( ) ;
return returnInstance ( historicTaskInstance1 ) ;
} else {
} else {
return historicTaskInstance1 ;
}
}
// @Transactional(rollbackFor = Exception.class)
private ResultBean < List < LatestTaskVo > > revokeProcess_ ( String processInstanceId ,
String assignee ) {
private ResultBean < List < LatestTaskVo > > revokeProcess_ ( String processInstanceId ,
String assignee ) {
// 流程回退到上一个节点,审批人继续审批
// 获取流程定义信息
Task task = taskService . createTaskQuery ( ) . processInstanceId ( processInstanceId ) . singleResult ( ) ;
@ -1598,7 +1634,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
. orderByHistoricTaskInstanceStartTime ( ) . asc ( ) . list ( ) ;
HistoricTaskInstance historicTaskInstance = historicTaskInstanceList . get ( historicTaskInstanceList . size ( ) - 1 ) ;
Map < String , Object > actHiVarinstForOrgPath = flowTaskMapper . getActHiVarinstForOrgPath ( historicTaskInstance . getId ( ) ) ;
String orgPath = MapUtil . getStr ( actHiVarinstForOrgPath , "TEXT_" ) ;
String orgPath = MapUtil . getStr ( actHiVarinstForOrgPath , "TEXT_" ) ;
// 数据清洗,将回滚导致的脏数据清洗掉
List < String > lastHistoricTaskInstanceList = FlowableUtils . historicTaskInstanceClean ( allElements , historicTaskInstanceList ) ;
@ -1654,7 +1690,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
} ) ) ;
// 设置撤回意见
currentTaskIds . forEach ( item - > {
taskService . addComment ( item , processInstanceId , FlowComment . RECALL . getType ( ) , "撤回办理" ) ;
taskService . addComment ( item , processInstanceId , FlowComment . RECALL . getType ( ) , "撤回办理" ) ;
// 设置实际办理人
taskService . setAssignee ( item , assignee ) ;
} ) ;
@ -1686,7 +1722,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
latestTaskVo . setOrgPath ( orgPath ) ;
Map < String , Object > task_map = flowTaskMapper . getTaskByDefKey ( processInstanceId , item . getId ( ) ) ;
if ( task_map ! = null ) {
if ( task_map ! = null ) {
taskService . setAssignee ( task_map . get ( "id_" ) . toString ( ) , assignee ) ;
latestTaskVo . setId_ ( task_map . get ( "id_" ) . toString ( ) ) ;
latestTaskList . add ( latestTaskVo ) ;
@ -1855,8 +1891,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
int size = Integer . valueOf ( businessTaskQuery . getSize ( ) + "" ) ;
int current = Integer . valueOf ( businessTaskQuery . getCurrent ( ) + "" ) ;
List < BusinessTaskParam > fields = businessTaskQuery . getParams ( ) . getFields ( ) ;
String companySid = "" ;
ResultBean < Page < FlowTaskDto > > resultBean = businessTodoList ( userSid , companySid , fields , current , size ) ;
String companySid = "" ;
ResultBean < Page < FlowTaskDto > > resultBean = businessTodoList ( userSid , companySid , fields , current , size ) ;
return resultBean ;
}
@ -1866,6 +1902,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
List < BusinessTaskParam > fields = taskQueryPagerQuery . getParams ( ) . getFields ( ) ;
return businessFinishedList ( userSid , fields , current , size ) ;
}
public ResultBean < Page < FlowTaskDto > > businessDoneListNewForApp ( String userSid , PagerQuery < BusinessTaskQuery > taskQueryPagerQuery ) {
int size = Integer . valueOf ( taskQueryPagerQuery . getSize ( ) + "" ) ;
int current = Integer . valueOf ( taskQueryPagerQuery . getCurrent ( ) + "" ) ;
@ -1885,7 +1922,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
public ResultBean readXml ( String deployId ) {
ProcessDefinition definition = repositoryService . createProcessDefinitionQuery ( ) . deploymentId ( deployId ) . singleResult ( ) ;
if ( definition = = null ) {
if ( definition = = null ) {
definition = repositoryService . createProcessDefinitionQuery ( ) . processDefinitionId ( deployId ) . singleResult ( ) ;
}
InputStream inputStream = repositoryService . getResourceAsStream ( definition . getDeploymentId ( ) , definition . getResourceName ( ) ) ;
@ -1901,83 +1938,85 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
public ResultBean getNextNodesForSubmit ( BusinessVariables bv ) {
String modelId = null ;
if ( bv . getModelId ( ) ! = null ) {
if ( bv . getModelId ( ) ! = null ) {
modelId = bv . getModelId ( ) ;
}
String procId = null ;
if ( bv . getModelId ( ) ! = null ) {
procId = bv . getModelId ( ) ;
}
if ( bv . getFormVariables ( ) = = null )
if ( bv . getFormVariables ( ) = = null )
bv . setFormVariables ( new HashMap < String , Object > ( ) ) ;
List < FlowElement > flowElements = processService . calApprovePath ( procId , modelId , bv . getFormVariables ( ) ) ;
ResultBean < List < Map < String , Object > > > rb = new ResultBean < List < Map < String , Object > > > ( ) ;
List < Map < String , Object > > list = new ArrayList < > ( ) ;
boolean endTask = true ;
boolean endTask = true ;
Map < String , Object > map = new HashMap < > ( ) ;
for ( int i = 0 ; i < flowElements . size ( ) ; i + + ) {
FlowElement f = flowElements . get ( i ) ;
if ( i + 1 < flowElements . size ( ) & & bv . getTaskDefKey ( ) . equals ( f . getId ( ) ) ) {
f = flowElements . get ( i + 1 ) ;
for ( int i = 0 ; i < flowElements . size ( ) ; i + + ) {
FlowElement f = flowElements . get ( i ) ;
if ( i + 1 < flowElements . size ( ) & & bv . getTaskDefKey ( ) . equals ( f . getId ( ) ) ) {
f = flowElements . get ( i + 1 ) ;
map . put ( "name" , f . getName ( ) ) ;
map . put ( "id" , f . getId ( ) ) ;
String s = JSON . toJSONString ( f ) ;
JSONObject jsonObject = JSONObject . parseObject ( s ) ;
Object candidateGroups = jsonObject . get ( "candidateGroups" ) ;
map . put ( "candidateGroups" , candidateGroups ) ;
endTask = false ;
map . put ( "endTask" , endTask ) ; }
endTask = false ;
map . put ( "endTask" , endTask ) ;
}
if ( endTask ) {
}
if ( endTask ) {
map . put ( "name" , "结束" ) ;
map . put ( "id" , "endAction" ) ;
map . put ( "id" , "endAction" ) ;
map . put ( "endTask" , true ) ;
map . put ( "candidateGroups" , "" ) ;
}
list . add ( map ) ;
return rb . setData ( list ) ;
}
public ResultBean getPreviousNodesForReject ( BusinessVariables bv ) {
String modelId = null ;
if ( bv . getModelId ( ) ! = null ) {
if ( bv . getModelId ( ) ! = null ) {
modelId = bv . getModelId ( ) ;
}
String procId = null ;
if ( bv . getModelId ( ) ! = null ) {
procId = bv . getModelId ( ) ;
}
if ( bv . getFormVariables ( ) = = null )
if ( bv . getFormVariables ( ) = = null )
bv . setFormVariables ( new HashMap < String , Object > ( ) ) ;
List < FlowElement > flowElements = processService . calApprovePath ( procId , modelId , bv . getFormVariables ( ) ) ;
ResultBean < List < Map < String , Object > > > rb = new ResultBean < List < Map < String , Object > > > ( ) ;
List < Map < String , Object > > list = new ArrayList < > ( ) ;
boolean startTask = true ;
boolean startTask = true ;
Map < String , Object > map = new HashMap < > ( ) ;
for ( int i = 0 ; i < flowElements . size ( ) ; i + + ) {
FlowElement f = flowElements . get ( i ) ;
if ( i > 0 & & bv . getTaskDefKey ( ) . equals ( f . getId ( ) ) ) {
f = flowElements . get ( i - 1 ) ;
for ( int i = 0 ; i < flowElements . size ( ) ; i + + ) {
FlowElement f = flowElements . get ( i ) ;
if ( i > 0 & & bv . getTaskDefKey ( ) . equals ( f . getId ( ) ) ) {
f = flowElements . get ( i - 1 ) ;
map . put ( "name" , f . getName ( ) ) ;
map . put ( "id" , f . getId ( ) ) ;
String s = JSON . toJSONString ( f ) ;
JSONObject jsonObject = JSONObject . parseObject ( s ) ;
Object candidateGroups = jsonObject . get ( "candidateGroups" ) ;
map . put ( "candidateGroups" , candidateGroups ) ;
startTask = false ;
map . put ( "startTask" , startTask ) ;
startTask = false ;
map . put ( "startTask" , startTask ) ;
}
}
if ( startTask ) {
if ( startTask ) {
map . put ( "name" , "" ) ;
map . put ( "id" , "" ) ;
map . put ( "id" , "" ) ;
map . put ( "candidateGroups" , "" ) ;
map . put ( "startTask" , true ) ;
map . put ( "startTask" , true ) ;
}
list . add ( map ) ;
return rb . setData ( list ) ;
}
public ResultBean < Page < FlowTaskDto > > businessTodoListForApp ( String userSid , String orgPath , List < BusinessTaskParam > params , int pageNum , int pageSize ) {
public ResultBean < Page < FlowTaskDto > > businessTodoListForApp ( String userSid , String orgPath , List < BusinessTaskParam > params , int pageNum , int pageSize ) {
Page < FlowTaskDto > page = new Page < > ( ) ;
TaskQuery taskQuery = taskService . createTaskQuery ( ) ;
String names = "" ;
@ -2000,26 +2039,25 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
}
//发起人姓名查询
if ( "startUserSid" . equals ( btq . getField ( ) ) ) {
if ( "startUserSid" . equals ( btq . getField ( ) ) ) {
startUserSidParams = btq . getValue ( ) ;
}
}
if ( "proDefName" . equals ( btq . getField ( ) ) ) {
if ( "proDefName" . equals ( btq . getField ( ) ) ) {
names = btq . getValue ( ) ;
}
}
TaskQuery or = taskQuery . active ( )
. includeProcessVariables ( )
;
if ( StringUtils . isNotBlank ( orgPath ) ) {
. includeProcessVariables ( ) ;
if ( StringUtils . isNotBlank ( orgPath ) ) {
/* or.taskVariableValueLike("orgPath", "%" + orgPath + "%");*/
}
if ( StringUtils . isNotBlank ( names ) ) {
if ( StringUtils . isNotBlank ( names ) ) {
or . or ( ) ;
or . taskVariableValueLike ( "orderNames" , "%" + names + "%" ) . processDefinitionNameLike ( "%" + paramMap . get ( "proDefName" ) + "%" ) ;
or . endOr ( ) ;
}
if ( StringUtils . isNotBlank ( startUserSidParams ) ) {
if ( StringUtils . isNotBlank ( startUserSidParams ) ) {
or . processVariableValueLike ( "INITIATOR" , "%" + startUserSidParams + "%" ) ;
}
or . taskAssigneeLike ( "%" + userSid + "%" )
@ -2032,7 +2070,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
// taskQuery.taskCreatedAfter(DateUtils.dateStrConvertDate(paramMap.get("startDate").toString(), "yyyy-MM-dd"));
}
if ( paramMap . get ( "endDate" ) ! = null & & StringUtils . isNotBlank ( paramMap . get ( "endDate" ) . toString ( ) ) ) {
LocalDateTime localDateTime = LocalDateTime . ofInstant ( Instant . ofEpochMilli ( DateUtils . dateStrConvertDate ( paramMap . get ( "endDate" ) . toString ( ) , "yyyy-MM-dd" ) . getTime ( ) ) , ZoneId . systemDefault ( ) ) ; ;
LocalDateTime localDateTime = LocalDateTime . ofInstant ( Instant . ofEpochMilli ( DateUtils . dateStrConvertDate ( paramMap . get ( "endDate" ) . toString ( ) , "yyyy-MM-dd" ) . getTime ( ) ) , ZoneId . systemDefault ( ) ) ;
;
LocalDateTime endOfDay = localDateTime . with ( LocalTime . MAX ) ;
taskQuery . taskCreatedBefore ( Date . from ( endOfDay . atZone ( ZoneId . systemDefault ( ) ) . toInstant ( ) ) ) ;
// taskQuery.taskCreatedBefore(DateUtils.dateStrConvertDate(paramMap.get("endDate").toString(), "yyyy-MM-dd"));
@ -2067,32 +2106,32 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
. singleResult ( ) ;
flowTask . setProcessCreateTime ( historicProcessInstance . getStartTime ( ) ) ;
ResultBean < SysUserVo > sysUserVoResultBean = sysUserFeign . fetchBySid ( historicProcessInstance . getStartUserId ( ) ) ;
if ( sysUserVoResultBean . getData ( ) ! = null ) {
if ( sysUserVoResultBean . getData ( ) ! = null ) {
flowTask . setStartUserSid ( sysUserVoResultBean . getData ( ) . getSid ( ) ) ;
flowTask . setStartUserName ( sysUserVoResultBean . getData ( ) . getName ( ) ) ;
// flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
String createOrgPath = ConstantUtils . getString ( flowTask . getProcessVariables ( ) , "createOrgPath" , "" ) ;
String ogrName = "" ;
if ( StringUtils . isNotBlank ( createOrgPath ) ) {
String createOrgPath = ConstantUtils . getString ( flowTask . getProcessVariables ( ) , "createOrgPath" , "" ) ;
String ogrName = "" ;
if ( StringUtils . isNotBlank ( createOrgPath ) ) {
List < String > stringList = Arrays . asList ( createOrgPath . split ( "/" ) ) ;
ResultBean < SysOrganizationVo > sysOrganizationVoResultBean = sysOrganizationFeign . fetchBySid ( stringList . get ( stringList . size ( ) - 1 ) ) ;
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
if ( StringUtils . isNotBlank ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ) {
ResultBean < SysOrganizationVo > sysOrganizationVoResultBean = sysOrganizationFeign . fetchBySid ( stringList . get ( stringList . size ( ) - 1 ) ) ;
if ( sysOrganizationVoResultBean . getData ( ) ! = null ) {
if ( StringUtils . isNotBlank ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ) {
ResultBean < SysOrganizationVo > sysOrganizationVoResultBeanP = sysOrganizationFeign . fetchBySid ( sysOrganizationVoResultBean . getData ( ) . getPsid ( ) ) ;
if ( sysOrganizationVoResultBeanP . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBeanP . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
if ( sysOrganizationVoResultBeanP . getData ( ) ! = null ) {
ogrName = sysOrganizationVoResultBeanP . getData ( ) . getName ( ) ;
flowTask . setStartDeptName ( ogrName + "-" + sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
}
} else {
} else {
flowTask . setStartDeptName ( sysOrganizationVoResultBean . getData ( ) . getName ( ) ) ;
}
}
} else {
} else {
flowTask . setStartDeptName ( sysUserVoResultBean . getData ( ) . getOrganizationName ( ) ) ;
}
}
ResultBean < SysUserVo > sysUserVoResultBean2 = sysUserFeign . fetchBySid ( userSid ) ;
if ( sysUserVoResultBean2 . getData ( ) ! = null ) {
if ( sysUserVoResultBean2 . getData ( ) ! = null ) {
flowTask . setAssigneeName ( sysUserVoResultBean2 . getData ( ) . getName ( ) ) ;
flowTask . setAssigneeSid ( sysUserVoResultBean2 . getData ( ) . getSid ( ) ) ;
flowTask . setDeptName ( sysUserVoResultBean2 . getData ( ) . getOrganizationName ( ) ) ;
@ -2100,10 +2139,10 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String procDefId = flowTask . getProcDefId ( ) ;
String taskDefKey = flowTask . getTaskDefKey ( ) ;
ResultBean < List < SysProUrlVo > > listResultBean = sysProUrlService . selectUrlByKey ( procDefId , taskDefKey , "1" , "2" ) ;
if ( listResultBean . getData ( ) ! = null & & listResultBean . getData ( ) . size ( ) > 0 ) {
if ( listResultBean . getData ( ) ! = null & & listResultBean . getData ( ) . size ( ) > 0 ) {
flowTask . setSysProUrlVo ( listResultBean . getData ( ) . get ( 0 ) ) ;
}
if ( processVariables . containsKey ( "orderNames" ) ) {
if ( processVariables . containsKey ( "orderNames" ) ) {
flowTask . setProcDefName ( processVariables . get ( "orderNames" ) . toString ( ) ) ;
}
flowList . add ( flowTask ) ;
@ -2113,23 +2152,23 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
return rb . success ( ) . setData ( page ) ;
}
public ResultBean < List < Map < String , Object > > > yuyanTest ( FlowableQuery flowableQuery ) {
ResultBean < List < Map < String , Object > > > rb = ResultBean . fireFail ( ) ;
List < Map < String , Object > > list = new ArrayList < > ( ) ;
public ResultBean < List < Map < String , Object > > > yuyanTest ( FlowableQuery flowableQuery ) {
ResultBean < List < Map < String , Object > > > rb = ResultBean . fireFail ( ) ;
List < Map < String , Object > > list = new ArrayList < > ( ) ;
String modelId = flowableQuery . getModelId ( ) ;
Map < String , Object > map = flowableQuery . getMap ( ) ;
Map < String , Object > map = flowableQuery . getMap ( ) ;
boolean taskKeyTrue = false ;
List < FlowElement > flowElements = processService . calApprovePath ( "" , modelId , map ) ;
List < FlowElement > flowElements = processService . calApprovePath ( "" , modelId , map ) ;
List < FlowElement > collect = flowElements . stream ( ) . filter ( item - > item . getId ( ) . length ( ) > 0 ) . collect ( Collectors . toList ( ) ) ;
for ( int i = 0 ; i < collect . size ( ) ; i + + ) {
Map < String , Object > itemMap = new HashMap < > ( ) ;
Map < String , Object > itemMap = new HashMap < > ( ) ;
FlowElement item = collect . get ( i ) ;
if ( StringUtils . isBlank ( flowableQuery . getTaskDefKey ( ) ) ) {
if ( StringUtils . isBlank ( flowableQuery . getTaskDefKey ( ) ) ) {
log . info ( "flowElement:{}" , item ) ;
log . info ( "nodeName:{}" , item . getName ( ) ) ;
itemMap . put ( "nodeName" , item . getName ( ) ) ;
itemMap . put ( "nodeName" , item . getName ( ) ) ;
log . info ( "nodeId:{}" , item . getId ( ) ) ;
itemMap . put ( "nodeId" , item . getId ( ) ) ;
itemMap . put ( "nodeId" , item . getId ( ) ) ;
String s = JSON . toJSONString ( item ) ;
JSONObject jsonObject = JSONObject . parseObject ( s ) ;
log . info ( "item:{}" , jsonObject ) ;
@ -2143,17 +2182,17 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
log . info ( "candidateGroups:{}" , candidateGroups_arr ) ;
list . add ( itemMap ) ;
} else {
if ( flowableQuery . getTaskDefKey ( ) . equals ( item . getId ( ) ) ) {
} else {
if ( flowableQuery . getTaskDefKey ( ) . equals ( item . getId ( ) ) ) {
taskKeyTrue = true ;
continue ;
}
if ( taskKeyTrue ) {
if ( taskKeyTrue ) {
log . info ( "flowElement:{}" , item ) ;
log . info ( "nodeName:{}" , item . getName ( ) ) ;
itemMap . put ( "nodeName" , item . getName ( ) ) ;
itemMap . put ( "nodeName" , item . getName ( ) ) ;
log . info ( "nodeId:{}" , item . getId ( ) ) ;
itemMap . put ( "nodeId" , item . getId ( ) ) ;
itemMap . put ( "nodeId" , item . getId ( ) ) ;
String s = JSON . toJSONString ( item ) ;
JSONObject jsonObject = JSONObject . parseObject ( s ) ;
log . info ( "item:{}" , jsonObject ) ;
@ -2181,7 +2220,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
public ResultBean assignTask ( DelegateQuery delegateQuery ) {
ResultBean rb = ResultBean . fireFail ( ) ;
taskService . setAssignee ( delegateQuery . getTaskId ( ) , delegateQuery . getAssignee ( ) ) ;
taskService . setAssignee ( delegateQuery . getTaskId ( ) , delegateQuery . getAssignee ( ) ) ;
return rb . success ( ) ;
}
}