Browse Source

flowable 处理查询待办人的逻辑

zhanglei
yxt_djz 3 years ago
parent
commit
47d9a696b4
  1. 4
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowdefinition/FlowDefinitionFeign.java
  2. 4
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowdefinition/FlowDefinitionFeignFallBack.java
  3. 3
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/LatestTaskVo.java
  4. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionRest.java
  5. 6
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.xml
  6. 46
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  7. 4
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFallback.java
  8. 4
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFeign.java
  9. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java
  10. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableService.java

4
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowdefinition/FlowDefinitionFeign.java

@ -77,9 +77,9 @@ public interface FlowDefinitionFeign {
public ResultBean start(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables);
@ApiOperation(value = "业务系统发起流程根据流程定义id启动流程实例")
/* @ApiOperation(value = "业务系统发起流程根据流程定义id启动流程实例")
@PostMapping("/businessStart")
@ResponseBody
public ResultBean<FlowTask> businessStart(@ApiParam(value = "请求参数") @RequestBody
BusinessVariables dto);
BusinessVariables dto);*/
}

4
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowdefinition/FlowDefinitionFeignFallBack.java

@ -60,9 +60,9 @@ public class FlowDefinitionFeignFallBack implements FlowDefinitionFeign {
return null;
}
@Override
/* @Override
public ResultBean<FlowTask> businessStart(BusinessVariables dto) {
return null;
}
*/
}

3
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/LatestTaskVo.java

@ -26,6 +26,9 @@ public class LatestTaskVo implements Vo {
@ApiModelProperty(value = "name_")
private String ASSIGNEE_;
@ApiModelProperty(value = "orgPath")
private String orgPath;
@ApiModelProperty(value = "incomingSourceRef")
private String incomingSourceRef;
}

4
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionRest.java

@ -138,8 +138,8 @@ public class FlowDefinitionRest implements FlowDefinitionFeign {
return flowDefinitionService.startProcessInstanceById(procDefId, variables);
}
@Override
/* @Override
public ResultBean<FlowTask> businessStart(@ApiParam(value = "变量集合") @RequestBody BusinessVariables dto) {
return flowDefinitionService.businessStart(dto);
}
}*/
}

6
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.xml

@ -191,9 +191,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
task.name_ ,
task.task_def_key_ ,
task.id_,
task.ASSIGNEE_
task.ASSIGNEE_,
a.TEXT_ orgpath
FROM
act_ru_task task
act_ru_task task
LEFT JOIN `act_ru_variable` a ON task.id_= a.task_id_ AND a.name_='orgPath'
WHERE
task.proc_inst_id_= #{procId}
</select>

46
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -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;

4
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFallback.java

@ -15,11 +15,11 @@ import java.util.Map;
@Component
public class FlowableFallback implements FlowableFeign{
@Override
/* @Override
public ResultBean businessStart(String procDefId, String userSid, Map<String, Object> variables) {
return null;
}
*/
@Override
public ResultBean processPagerList(Integer pageNum, Integer pageSize) {
return null;

4
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFeign.java

@ -32,11 +32,11 @@ public interface FlowableFeign {
* @param variables form参数
* @return
*/
@PostMapping("/businessStart/{procDefId}/{userSid}")
/* @PostMapping("/businessStart/{procDefId}/{userSid}")
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables);
*/
/**
* 流程定义列表 一般业务中不需要查询该列表
*

2
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java

@ -72,11 +72,13 @@ public class FlowableRest implements FlowableFeign {
private SysStaffOrgService sysStaffOrgService;
@Autowired
private SysUserService sysUserService;
/*
@Override
public ResultBean businessStart(String procDefId, String userSid, Map<String, Object> variables) {
return flowableService.businessStart(procDefId, userSid, variables);
}
*/
@Override
public ResultBean processPagerList(Integer pageNum, Integer pageSize) {

2
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableService.java

@ -92,6 +92,7 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
private AppSubsetVersionService appSubsetVersionService;
@Autowired
private FileUploadComponent fileUploadComponent;
/*
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ -109,6 +110,7 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
ResultBean rb = flowDefinitionFeign.businessStart(bv);
return rb;
}
*/
public ResultBean myprocess(String userSid, PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
PagerQuery<BusinessTaskQuery> pq = new PagerQuery<>();

Loading…
Cancel
Save