如何实现在列表界面打开审批界面原创
10人赞赏了该文章
2,874次浏览
编辑于2022年05月01日 22:07:56
摘要由AI智能服务提供
客户希望直接在列表界面点击按钮处理审批任务,避免进入消息中心。方案是在列表增加按钮,点击后检查选中单据的审批人是否为当前用户,是则打开审批界面。实现涉及配置工具栏项、检查选中记录和审批任务,并构造审批界面参数。最终效果包括错误提示和审批界面展示,开发环境为V4.0.0.14。
有用
反馈
关键字:列表、流程、审批界面
一、需求
客户为了能够快速处理业务,希望直接点击列表中的按钮就能打开审批界面进行任务处理,而不需要进入消息中心去操作。
二、思路与方案
可以在列表界面增加按钮,点击按钮则判断选中单据的当前审批处理人是不是登录用户,如果是则构造审批界面参数并打开审批界面。
三、实现过程
1.给单据列表的工具栏配置工具栏项,标识为kded_openapprovepage。
2.在点击前事件判断只能选中一条记录,且判断当前用户是否有该选中单据的审批任务,有则打开审批界面。
@Override public void beforeItemClick(BeforeItemClickEvent evt) { // TODO Auto-generated method stub super.beforeItemClick(evt); if("kded_openapprovepage".equals(evt.getItemKey())) { BillList billlist = this.getView().getControl("billlistap"); ListSelectedRowCollection currentSelectedRowCollection= billlist.getSelectedRows(); if(currentSelectedRowCollection.size()==0||currentSelectedRowCollection.size()>1) { this.getView().showMessage("至少选择一条数据且至多选择一条数据"); return; } WorkflowService wfService = ServiceFactory.getService(WorkflowService.class); String billId = billlist.getCurrentSelectedRowInfo().getPrimaryKeyValue().toString(); //选中单据行的id Long currentUserId = RequestContext.get().getCurrUserId(); // 当前登录人 Long taskId = wfService.getTaskIdByBusinessKeyAndUserId(billId, currentUserId); // 查询当前单据当前用户是否有任务 boolean isShowErrorNotification = true; if(null != taskId && taskId.longValue() != 0){ TaskInfo taskInfo = wfService.findTaskById(taskId); // 获取任务数据 if(null != taskInfo){ isShowErrorNotification = false; FormShowParameter parameter = new FormShowParameter(); HashMap<String,Object> customParams = new HashMap<>(); // 组装参数 customParams.put("taskId", taskId); customParams.put("type", "toHandle"); //待办任务 类型 parameter.setCustomParams(customParams); parameter.setFormId(taskInfo.getProcessingPage()); //设置审批处理的页面 parameter.getOpenStyle().setShowType(ShowType.NewWindow); this.getView().showForm(parameter); } } if (isShowErrorNotification ){ this.getView().showErrorNotification("当前选中单据没有你的审批任务,请重新选择单据或稍后再试。"); } } }
四、效果图
1. 未选择单据或多选单据时提示“至少选择一条数据且至多选择一条数据”。
2.选择处理人不是自己的单据时提示“当前选中的单据没有你的对应任务,请重新选择或稍后再试”
3. 选择当前处理人是自己的单据,打开审批界面
五、开发环境版本
V4.0.0.14
六、参考资料
在列表打开审批界面的元数据及代码.zip(17.11KB)
赞 10
10人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读