|
|
@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.google.common.collect.Lists; |
|
|
|
import com.yxt.anrui.flowable.api.flow.UserAndOrgPath; |
|
|
|
import com.yxt.anrui.flowable.api.flowcomment.FlowComment; |
|
|
|
import com.yxt.anrui.flowable.api.flowcomment.FlowCommentDto; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.*; |
|
|
@ -27,6 +28,7 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUser; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.UserQuery; |
|
|
|
import com.yxt.anrui.portal.api.sysuserrole.SysUserRoleFeign; |
|
|
|
import com.yxt.common.base.config.component.FileUploadComponent; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
@ -113,6 +115,50 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask |
|
|
|
private SysOrganizationFeign sysOrganizationFeign; |
|
|
|
@Resource |
|
|
|
private FlowableService flowableService; |
|
|
|
public ResultBean<UserAndOrgPath> getNextNodeUserSidsOfCreate(BusinessVariables bv){ |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String orgSidPath=bv.getOrgSidPath(); |
|
|
|
//根据业务参数取流程流转的环节 信息
|
|
|
|
List<Map<String, Object>> list = (List<Map<String, Object>>) getProcessCirculationNodesByMap(bv).getData(); |
|
|
|
if(list==null||list.size()<2){ |
|
|
|
return rb.setMsg("流程设计问题"); |
|
|
|
} |
|
|
|
//取第二个环节的配置角色
|
|
|
|
Object o = list.get(1).get("candidateGroups"); |
|
|
|
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(); |
|
|
|
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o)); |
|
|
|
String roleSid = jsonArray.get(0).toString(); |
|
|
|
//根据组织架构、角色两个参数取相关符合条件的用户信息
|
|
|
|
UserQuery userQuery = new UserQuery(); |
|
|
|
userQuery.setRoleSid(roleSid); |
|
|
|
userQuery.setOrgSidPath(orgSidPath); |
|
|
|
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData(); |
|
|
|
if(sysUserVos==null||sysUserVos.size()<1){ |
|
|
|
return rb.fail().setMsg("环节没有用户"); |
|
|
|
} |
|
|
|
StringBuilder nextNodeUserSids = new StringBuilder(); |
|
|
|
StringBuilder nextNodeOrgPathSids = new StringBuilder(); |
|
|
|
for (SysUserVo su : sysUserVos) { |
|
|
|
nextNodeUserSids.append(su.getSid()).append(","); |
|
|
|
nextNodeOrgPathSids.append(su.getOrgSidPath()).append(","); |
|
|
|
} |
|
|
|
//符合条件的用户的sid,拼接的字符串
|
|
|
|
String nextNodeUserSids_ = nextNodeUserSids.toString(); |
|
|
|
String nextNodeOrgPathSids_ = nextNodeOrgPathSids.toString(); |
|
|
|
if(StringUtils.isBlank(nextNodeUserSids_)) |
|
|
|
return rb.fail().setMsg("环节没有用户"); |
|
|
|
nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1); |
|
|
|
nextNodeOrgPathSids_ = nextNodeOrgPathSids_.substring(0, nextNodeOrgPathSids_.length() - 1); |
|
|
|
mapParam.setUserSid(nextNodeUserSids_); |
|
|
|
mapParam.setOrgPath(nextNodeOrgPathSids_); |
|
|
|
return rb.success().setData(mapParam); |
|
|
|
} |
|
|
|
public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) { |
|
|
|
log.info("bv"); |
|
|
|
String modelId = null; |
|
|
|