snaker流程预览

本文介绍了如何在snaker工作流引擎中,根据特定需求实现子流程的预览功能。通过分析需求,了解到不能直接返回完整流程图,而需要计算出一条可执行的子流程路径。开发过程包括获取流程实例、表单参数、节点信息,执行条件表达式判断,最终获取符合条件的流程节点。代码实现部分详细阐述了创建返回对象、预览方法、单独流程获取方法及对象转化的步骤。
摘要由CSDN通过智能技术生成

需求:工作流引擎snaker,不可以返回完成全流程图,通过表达式计算出一条可执行的子流程。

分析:直接返回完整流程图比较简单,直接获取List<NodeMode>返回即可,当前需要返回一条可执行的子流程,开始头疼。流程预览并非流程提交,不可以通过任务executeaske()方法获取条件decisionMode下outputs下enabled=true条件节点。前端提供参数orderId。

开发过程

@Autowired private SnakerEngine facets;

1、获取流程实例order

Order order = facets.query().getOrder(orderId);

2、获取表单参数

Map<String, Object> argsMap = (Map<String, Object>) JSON.parse(order.getVariable());

3、获取所有节点

ProcessModel processModel =        facets.process().getProcessById(order.getProcessId()).getModel();
List<NodeModel> nodeModels = processModel.getNodes();

4、迭代获取流程节点的properties详情

Process process = facets.process().getProcessById(order.getProcessId());
FlowWebDto flowWebDto = this.getProcessById(order.getProcessId());
ProcessData processData = flowWebDto.getProcessData();
Map<String, ProcessData> processDataMap = new HashMap<>();
// 递归获取每个流程节点的properties
ProcessData.getRecursiveProperties(processData, processDataMap);

5、创建执行器

Execution execution = new Execution(facets,process,order, (Map)argsMap);

6、获取表达式对象

Expression expression =  (Expression) ServiceContext.getContext().find(Expression.class);

7、获取所有的条件判断节点

List<DecisionModel> decisionModel = SnakerHelper.getDecisionModel(nodeModels);

8、执行条件表达进行判断

for(int i=0;i<decisionModel.size();i++){
  Iterator i$ = decisionModel.get(0).getOutputs().iterator();
  while(i$.hasNext()) {
    TransitionModel tm = (TransitionModel)i$.next();
    String expr = tm.getExpr();
    if (StringHelper.isNotEmpty(expr) && (Boolean)expression.eval(Bo
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sneaker球鞋库存管理系统是一种用于管理球鞋库存的软件系统。它主要包括库存管理、销售预测、采购管理、和销售分析等模块。 首先,库存管理模块是该系统的核心功能之一。它能够实时跟踪球鞋库存信息,包括每一款球鞋的数量、尺码、颜色等详细信息。此外,库存管理模块还能提供库存预警功能,当某款球鞋的库存低于设定值时,系统会自动发出警报,提醒管理员及时补货。 其次,销售预测模块是帮助商家预测销售需求的重要功能。通过对历史销售数据的分析,系统可以准确地预测不同款式、尺码或颜色的球鞋的销售情况。这些预测数据可供商家参考制定采购计划,避免库存积压或断货的问题。 第三,采购管理模块可以帮助商家更好地管理供应链,确保库存充足。这个模块能够自动生成采购订单,并与供应商建立起电子化的订单和发货流程。通过与供应商实时对接,商家可以根据销售预测和库存状况自动计算出需要采购的球鞋数量,实现库存的持续补充。 最后,销售分析模块是用于帮助商家分析销售数据,了解销售趋势和球鞋热卖款式的功能。通过对销售数据的统计和分析,商家可以了解哪些球鞋畅销,哪些款式受欢迎,从而及时调整销售策略,提高库存周转率和盈利能力。 总之,Sneaker球鞋库存管理系统是一套集库存管理、销售预测、采购管理、和销售分析于一体的软件系统,能够有效帮助商家管理球鞋库存,实现库存的科学管理和提高销售效益。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值