电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何处理“待办任务列表中,对一些任务暂时不需要或不想审批,需核实确认之后再处理;担心误点审批”场景

来源:金蝶云社区作者:金蝶2024-09-2318

如何处理“待办任务列表中,对一些任务暂时不需要或不想审批,需核实确认之后再处理;担心误点审批”场景


1 场景描述

待办任务列表中,对一些任务暂时不需要或不想审批,需核实确认之后再处理;担心误点审批。


2 思路分析

  • 针对以上场景,思路为:暂时将任务挂起,挂起的任务不可以处理,需要等到手动激活之后才能处理。

  • 涉及到的方法:

    kd.bos.servicehelper.workflow.WorkflowServiceHelper#suspendTaskById 用于挂起任务;

    kd.bos.servicehelper.workflow.WorkflowServiceHelper#activateTaskById 用于激活任务。

  • 为了完成场景,可以在wf_task元数据的列表界面添加两个工具栏按钮,一个用作“挂起”,另一个用作“激活”;同时编写列表插件。


3 思路实现

    第一步:如图所示,在wf_task元数据的列表界面,添加两个工具栏按钮。


    第二步:分析两个方法。都需要用到taskid和userid,并且“挂起”方法额外需要“挂起原因”。


    第三步:需要获取userid和taskid;挂起原因可以自行拼接、指定。

    userid的获取方法为:

long currUserId = RequestContext.get().getCurrUserId();

    taskid在本方案中的获取方法为:

String pkvalue = selectedRow.getPrimaryKeyValue().toString();

    因为需要注册插件的表单为wf_task,则pkvalue即为taskid;如业务单据中需要获取taskid,需要使用getTaskIdByBusinessKeyAndUserId方法。


    第四步:将以上步骤在列表插件中实现。

package nm21.plugin.listPlugin;

import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.ILocaleString;
import kd.bos.dataentity.entity.LocaleString;
import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.form.control.Toolbar;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.workflow.WorkflowServiceHelper;
import kd.sdk.plugin.Plugin;
import java.util.EventObject;
import static java.lang.Long.parseLong;

/**
 * 标准单据列表插件
 */
public class SuspendAndActivateListPlugin extends AbstractListPlugin implements Plugin {
    @Override
    public void registerListener(EventObject e) {
        super.registerListener(e);
        //监听按钮点击
        this.addItemClickListeners("toolbarap");
    }

    @Override
    public void itemClick(ItemClickEvent evt) {
        super.itemClick(evt);
        //待办任务列表中,挂起选中任务。nm21_baritemap为wf_task元数据的列表界面添加的工具栏按钮,功能为“挂起”
        if ("nm21_baritemap".equals(evt.getItemKey())) {
            //获取用户id
            long currUserId = RequestContext.get().getCurrUserId();

            //列表多选场景
            ListSelectedRowCollection selectedRows = this.getSelectedRows();
            for (ListSelectedRow selectedRow : selectedRows) {
                //获取任务id,因为加按钮和插件就是在wf_task这个元数据内,所以pk值即为taskid
                String pkvalue = selectedRow.getPrim

如何处理“待办任务列表中,对一些任务暂时不需要或不想审批,需核实确认之后再处理;担心误点审批”场景

1 场景描述待办任务列表中,对一些任务暂时不需要或不想审批,需核实确认之后再处理;担心误点审批。2 思路分析针对以上场景,思路为:暂...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信