如何控制流程传阅或转交时选择人员的范围原创
金蝶云社区-wbshcy
wbshcy
3人赞赏了该文章 378次浏览 未经作者许可,禁止转载编辑于2022年12月28日 10:39:26

关键字:流程、传阅转交、选择人范围

一、需求

标准产品流程任务在转交或传阅时可选择的人员是所有,希望实现只能选择单据上申请人所属部门下的人员,不可以选择部门外其他人员。

二、思路与方案

工作流给选择人员的F7字段都增加口子,支持用户通过插件给用户F7传自定义过滤条件,可以扩展选择人员的页面,然后绑定表单插件,表单插件重写customEvent事件自定义自己的过滤条件。
image.png

image.png

三、实现过程

1.增加一个动态表单插件,然后重写customEvent事件,并判断传入的参数是AddPersonFilterCustomEvent再自定义自己的过滤条件。

 

public class CirPersonFilterPlugin extends AbstractFormPlugin implements Plugin {
    @Override
    public void customEvent(CustomEventArgs e) {
        super.customEvent(e);
        if (null != e && AddPersonFiltersCustomEvent.KEY_ADDPERSONFILTERSCUSTOMEVENT.equals(e.getKey()) && e instanceof AddPersonFiltersCustomEvent) {
            //从界面参数拿任务id
            AddPersonFiltersCustomEvent event = (AddPersonFiltersCustomEvent)e;
            IFormView formView = (IFormView) e.getSource();
            FormShowParameter fs = formView.getFormShowParameter();
            Long taskId = fs.getCustomParam("taskid");

            //根据任务id拿到任务信息,从任务信息可以拿到单据id、单据实体
            WorkflowService wfService = ServiceFactory.getService(WorkflowService.class);
            TaskService taskService = wfService.getTaskService();
            TaskInfo taskInfo = wfService.findTaskById(taskId);
            String entityNumber = taskInfo.getEntityNumber();//实体标识
            if("simplebill".equals(entityNumber)){
                String businessKey = taskInfo.getBusinessKey();//单据id
                //构造过滤条件
                DynamicObject bill = BusinessDataServiceHelper.loadSingle(businessKey, entityNumber);
                String orgNum = bill.getDynamicObject("appliercompany").getString("number");
                QFilter orgFilter = new QFilter("entryentity.dpt.number",QCP.equals,orgNum);
                ((AddPersonFiltersCustomEvent) e).getQFilters().add(orgFilter);
            }



        }


    }
}


2.扩展选择人员所在页面,比如传阅页面则扩展wf_taskcirculation,并注册插件CirPersonFilterPlugin

image.png

四、效果图

只能选择某个组织下的人员

上传图片

五、开发环境版本

V4.0.0.14

、参考资料

【开发平台】指导手册

学习成长中心
流程服务事件介绍

 


赞 3