处理人设置
百度已收录

流程处理人指的是在该节点接受数据并进行处理的人。

通过节点属性 > 人员> 候选人便可以设置流程处理人,可选择范围为: 用户、部门、角色、职位、关系。

1、用户

在部门用户树中,选择具体执行人。

流程流转提交时,流程选人展示:

2、部门

选择部门作为执行人。

流程流转提交时,流程选人展示:

3、角色

选择角色作为执行人。

流程流转提交时,流程选人展示:

4、职位

选择职位作为执行人。

流程流转提交时,流程选人展示:

5、关系

关系选人包括:所有人、当前登录人、申请人、当前登录人部门、当前登录人上级部门、当前登录人上上级部门、当前登录人顶级部门、当前登录人组织角色、当前登录人同级组织角色、当前登录人上级组织角色、当前登录人上上级组织角色、当前登录人部门角色、当前登录人上上级组织角色、当前登录人部门角色、申请人部门、申请人上级部门、申请人上上级部门、申请人顶级部门、自定义实现类、自定义脚本、流程变量

  • 所有人

展示所有组织用户树

流程流转提交时,流程选人展示:

  • 当前登录人部门

单击当前登录人部门,右侧会显示职位列表;不选择职位则为选人为部门,选择职位则选人为部门+职位。

不选择职位:

流程流转提交时,流程选人展示:

选择部门+职位:

流程流转提交时,流程选人展示:

其他当前登录人XX部门 同当前登录人部门。

  • 当前登录人组织角色

获取当前登录人所属组织下用户+选择的角色下用户的交集,如果没有选择角色则不限制角色;当前登录人所属组织下用户范围为当前组织直属用户+当前组织所有下级部门下用户,不包含当前组织下级组织的用户。

其他当前登录人XX组织角色同当前登录人组织角色。

  • 当前登录人部门角色

当前登录人所属部门下的用户+选择的角色下用户的交集,没选择角色则取当前登录人所属部门下所有用户。

  • 申请人部门

流程实例发起人所属部门下用户+所选职务下用户的交集,如果没有选择职务则取流程实例发起人所属部门下所有用户。

其他申请人XX部门同申请人部门。

  • 自定义实现类

自定义实现类

自定义实现类需要继承接口:com.yuncheng.bpm.core.delegate.CustomFuncInterFace.java

该接口代码如下:

/**
 * 自定义实现类选人的接口
 */
public interface CustomFuncInterFace {
    /**
     * 获取流程选人集合,只包含用户集合
     *
     * @param userId 操作人ID
     * @param deptId 操作人部门ID
     * @param params 其他参数
     */
    List<UserActorImpl> getUserActors(String userId, String deptId, Map<String, Object> params);
    /**
     * 获取流程选人集合,包括所有维度集合
     *
     * @param userId 操作人ID
     * @param deptId 操作人部门ID
     * @param params 其他参数
     */
    List<Actor> getActors(String userId, String deptId, Map<String, Object> params);
}

该接口包含两个方法:

getUserActors: 返回选人用户列表,该接口为预留扩展接口,暂时未用到

getActors:返回选人集合,可以返回用户(UserActorImpl)集合、部门(DeptActorImpl)集合、角色(RoleActorImpl)集合、职位(PositionActorImpl)集合中的一种或多种

自定义实现类示例代码如下:

package com.yuncheng.bpm.core.demo;

import com.yuncheng.bpm.core.delegate.CustomFuncInterFace;
import com.yuncheng.bpm.dto.Actor;
import com.yuncheng.bpm.dto.impl.DeptActorImpl;
import com.yuncheng.bpm.dto.impl.UserActorImpl;
import com.yuncheng.system.api.BpmOrgAPI;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Component
public class CustomFuncDemo implements CustomFuncInterFace {
    @Resource
    private BpmOrgAPI bpmOrgAPI;
    @Override
    public List<UserActorImpl> getUserActors(String userId, String deptId, Map<String, Object> params) {
        List<UserActorImpl> userActorList = new ArrayList<>();
        UserActorImpl userActor = new UserActorImpl();
        userActor.setId("1373536011328802817");
        userActor = bpmOrgAPI.getUser(userActor);
        userActorList.add(userActor);
        return userActorList;
    }
    @Override
    public List<Actor> getActors(String userId, String deptId, Map<String, Object> params) {
        List<Actor> actorList = new ArrayList<>();
        UserActorImpl userActor = new UserActorImpl();
        userActor.setId("1373536011328802817");
        userActor = bpmOrgAPI.getUser(userActor);
        DeptActorImpl deptActor = bpmOrgAPI.getDeptById("1373536559281065985");
        actorList.add(deptActor);
        actorList.add(userActor);
        return actorList;
    }
}

注:自定义实现类需要添加SpringBean注解,本例使用@ Component

自定义类需要配置SpringBean的名称如下所示:

  • 自定义脚本

通过groovy脚本获取流程候选人。

  • 流程变量

通过流程变量获取流程候选人,变量类型包括用户、部门、角色、职务

可以通过在表单上设置字段为流程变量或者在流程事件监听类中调接口设置。

表单字段设置为流程变量示例如下:

如上图所示,该表单作为流程表单提交时qjsqUser的值会被当作流程存入流程变量表中。

可以在应用管理->流程监控模块查看流程实例中的流程变量值,如下图所示: