审核节点任务创建之后,使用工作流插件自动加签

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:3

审核节点任务创建之后,使用工作流插件自动加签

一、需求

在进入审核节点后,自动加签


二、思路与方案

1.需要使用工作流插件,在任务创建之后,监听afterHandleTask事件,在afterHandleTask事件中完成加签。

2.加签可以使用WorkflowServiceHelper的addSign方法进行加签。


三、实现过程

1.添加工作流插件,执行时机为“任务创建之后”。


2.编写工作流插件

监听afterHandleTask事件,使用WorkflowServiceHelper工具类的getNextUseableUserAndScope方法查询下一步参与人,用addSign方法进行加签。

import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.bos.servicehelper.workflow.WorkflowServiceHelper;
import kd.bos.workflow.api.AgentExecution;
import kd.bos.workflow.api.AgentTask;
import kd.bos.workflow.engine.dynprocess.AddSignInfo;
import kd.bos.workflow.engine.extitf.IWorkflowPlugin;

import java.util.*;

// 自动加签
public class AddDecisonWfPlugin implements IWorkflowPlugin {

    @Override
    public void afterHandleTask(AgentTask task, String evtName, Map<String, Object> executeParam) {
        Long currentTaskId = task.getId();

        // 获取当前参与人
        List<Long> userList = WorkflowServiceHelper.getApproverByBusinessKey(task.getBusinessKey());
        if (userList.size() > 0) {
            addSi(currentTaskId, userList.get(0));
        }
    }

    private void addSi(Long currentTaskId, Long ownerId) {
        //加签信息
        AddSignInfo addSignInfo = new AddSignInfo();
        //加签说明
        Map<String, String> addSingMsg = new HashMap<>();
        addSingMsg.put("zh_CN","加签");
        addSingMsg.put("zh_TW","加签");
        addSingMsg.put("en_US","加签");
        addSignInfo.setAddSingMsg(addSingMsg);
        //前加签
        addSignInfo.setAddSignType("addsignbefore");
        //是否允许再加签
        addSignInfo.setAllowAddSign(false);
        // 加签处理方式
        // one: 单人单节点加签
        addSignInfo.setAddSignDealType("one");
        // 会审模式 passByOne: 一票通过
        addSignInfo.setYzjType("passByOne");
        List<Long> userIds = new ArrayList<>();
        // 查询用户名为张三的用户
        QFilter qFilter = new QFilter("name", QCP.equals,"张三");
        DynamicObject bosUser = BusinessDataServiceHelper.loadSingle("bos_user", qFilter.toArray());
        // 本案例中,加签给张三,开发者可以根据自身业务需求,给指导人员加签
        userIds.add(bosUser.getLong("id"));
        addSignInfo.setUserIds(userIds);
        // 设置OwnerId,必须设置一个当前参与人
        addSignInfo.setOwnerId(ownerId);

        String result = WorkflowServiceHelper.addSign(currentTaskId, addSignInfo);

    }

}


四、效果图

当一级节点审批通过时,二级审批节点创建时,会自动加签



审批之后,发现自动加签




审核节点任务创建之后,使用工作流插件自动加签

一、需求在进入审核节点后,自动加签二、思路与方案1.需要使用工作流插件,在任务创建之后,监听afterHandleTask事件,在afterHandleTask事...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息