如何在业务单据列表上批量同意待办任务

1 问题描述
当前处理待办任务,需要进入消息中心的待办任务列表进行操作;而有些场景,在对应的单据列表上直接进行审批会更加便捷。
2 解决方法
以上场景可以通过插件达成。在对应单据列表上添加按钮,并编写插件实现具体逻辑。如下图所示:

插件中的主要逻辑为:
调用接口kd.bos.servicehelper.workflow.WorkflowServiceHelper#batchAgreeTaskWithUserId

其中需要三个参数,分别是需要处理的任务id、审批意见以及任务处理人id。
参数3 任务处理人即为当前用户,可通过以下代码获取:
long userId = UserServiceHelper.getCurrentUserId();
参数2 任务id需要借助另一个接口:
其中,需要的两个参数,用户id即为上述的任务处理人id;而businessKey即为业务单据的id,此参数可以通过列表的选中行获取到。参数1 审批意见可以自行组装、设计。比如:
ILocaleString option = new LocaleString(); option.setLocaleValue("审批通过");
至此,接口实现逻辑已经完成,还需考虑交互场景。例如:用户没有选择列表上的数据就点击了按钮;用户选择的按钮当前用户无法处理等情况。
最后,完整代码如下:
package nm21.cosmic.plugin.list;
import com.kingdee.util.StringUtils;
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.Control;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.BillList;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.bos.servicehelper.workflow.WorkflowServiceHelper;
import kd.sdk.plugin.Plugin;
import java.util.ArrayList;
import java.util.List;
public class BatchApprovalPlugin extends AbstractListPlugin implements Plugin {
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);
String itemKey = evt.getItemKey();
if (StringUtils.equals(itemKey, "nm21_baritemap")) {
//所有任务id
List<Long> taskIds = new ArrayList<>();
//1当前用户id
long userId = UserServiceHelper.getCurrentUserId();
//2获取选中行
ListSelectedRowCollection selectedRows = this.getSelectedRows();
if (selectedRows.size() <= 0) {
this.getView().showTipNotification("请选择要审批的单据~~~");
如何在业务单据列表上批量同意待办任务
1 问题描述当前处理待办任务,需要进入消息中心的待办任务列表进行操作;而有些场景,在对应的单据列表上直接进行审批会更加便捷。2 解决...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



