如何实现在列表显示流程当前节点和处理人原创
金蝶云社区-wbshcy
wbshcy
24人赞赏了该文章 5569次浏览 未经作者许可,禁止转载编辑于2022年04月25日 11:31:59

关键字:列表、流程当前处理人

一、需求

在单据列表一般可以通过查看流程图按钮查看单据走到哪一个节点以及当前是谁在处理,如果经常关注流程当前处理节点和处理人的话,每次都点击按钮才能看到,操作很繁琐。所以很多需求要求在单据列表界面就能显示流程当前处理人及处理节点。

二、思路与方案

在单据增加动态列然后通过重写beforeCreateListDataProvider给该列赋值,而WorkflowServiceHelper有提供获取单据当前处理节点及处理人的接口。

三、实现过程

1.给单据配置一个文本字段,字段标识为kded_currentapprover。

 

1.png

 

2.列表将上一步增加的字段配置出来,或者在列表插件beforeCreateListColumns将列显示出来。

@Override
public void beforeCreateListColumns(BeforeCreateListColumnsArgs args) {
// TODO Auto-generated method stub
super.beforeCreateListColumns(args);
  ListColumn listColumn = new ListColumn();
  listColumn.setCaption(new LocaleString("流程当前处理人"));
  listColumn.setKey("kded_currentapprover");
  listColumn.setListFieldKey("kded_currentapprover");
  listColumn.setParentViewKey("gridview");
  args.addListColumn(listColumn);
}


3.在beforeCreateListDataProvider取流程当前处理人,然后给kded_currentapprover字段赋值。

 

@Override
public void beforeCreateListDataProvider(BeforeCreateListDataProviderArgs args) {
args.setListDataProvider(new ListDataProvider() {
private final static String KEY_CURRENTAPPROVER = "kded_currentapprover";
/**
 * 加载列表数据
 * @remark
 * 获取系统自动加载的列表数据,然后对内容进行修正
 */
@Override
public DynamicObjectCollection getData(int arg0, int arg1) {
DynamicObjectCollection rows = super.getData(arg0, arg1);
for(DynamicObject row : rows){
String businessKey = row.getPkValue().toString();
//单据是否在流程中
boolean inProcess = WorkflowServiceHelper.inProcess(businessKey);
if(inProcess) {
//获取流程节点处理人,赋值到列表当前处理人字段
List<Long> approverByBusinessKey = WorkflowServiceHelper.getApproverByBusinessKey(row.getPkValue().toString());
Map<String, List<BizProcessStatus>> map = WorkflowServiceHelper.getBizProcessStatus(new String[] {row.getPkValue().toString()});
List<BizProcessStatus> node = map.get(row.getPkValue().toString());
node.forEach((e) -> {
String nodeStr = e.getCurrentNodeName();
String auditor = e.getParticipantName();
if (auditor != null && !"".equals(auditor.trim())) {
nodeStr = nodeStr + " / " + auditor;}
row.set(KEY_CURRENTAPPROVER, nodeStr);
});
}
}
 
return rows;
}
});
}


四、效果图

 

2.png

 

五、开发环境版本

V4.0.0.14

、参考资料

【开发平台】指导手册

学习成长中心

 

 


赞 24