日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

工作流实战_23_flowable 任务监听器 事件监听器

發(fā)布時(shí)間:2024/9/27 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 工作流实战_23_flowable 任务监听器 事件监听器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

項(xiàng)目地址:https://gitee.com/lwj/flowable.git 分支flowable-base
視頻講解地址 https://www.bilibili.com/video/av79328344
監(jiān)聽(tīng)器
任務(wù)監(jiān)聽(tīng)器 針對(duì)userTask節(jié)點(diǎn)
事件監(jiān)聽(tīng)器 針對(duì)任意節(jié)點(diǎn)
由于實(shí)際情況下我們會(huì)在節(jié)點(diǎn)會(huì)動(dòng)態(tài)調(diào)用業(yè)務(wù)系統(tǒng)的接口去改變業(yè)務(wù)單據(jù)的狀態(tài)或者做一些業(yè)務(wù)處理。如果每次都去新建一個(gè)監(jiān)聽(tīng)器這樣勢(shì)必就非常的繁瑣也不好維護(hù),那么我們?cè)撊绾巫霾拍苓_(dá)到動(dòng)態(tài)調(diào)用的效果呢?接下來(lái)小學(xué)生一步步的實(shí)現(xiàn)這個(gè)統(tǒng)一的功能。
一、定義統(tǒng)一的任務(wù)監(jiān)聽(tīng)器

@Scope @Component(value = "taskBusinessCallListener") public class TaskBusinessCallListener extends BusinessCallListener implements TaskListener {/*** rest接口*/private FixedValue restUrl;/*** 參數(shù) 多個(gè)的話用分號(hào)隔開(kāi) 實(shí)例 userCode:00004737;status:1*/private FixedValue params;@Overridepublic void notify(DelegateTask delegateTask) {String processInstanceId = delegateTask.getProcessInstanceId();String restUrlStr = null, paramsStr = null;if (restUrl != null) {restUrlStr = restUrl.getExpressionText();}if (params != null) {paramsStr = params.getExpressionText();}//執(zhí)行回調(diào)//TODO 臨時(shí)處理restUrlStr = "http://127.0.0.1:8989/rest/leave/updateLeaveStatus";paramsStr = "status:1";this.callBack(processInstanceId, restUrlStr, paramsStr);} }

FixedValue restUrl 介紹我們配置的field字段,表示要請(qǐng)求的resturl,這里注意接收字段一定要用FixedValue才能接收到。

二、調(diào)用接口

public void callBack(String pocessInstanceId, String restUrl, String params) {String paramsJson = null;try {Map<String, Object> paramMap = new HashMap<String, Object>();ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pocessInstanceId).singleResult();paramMap.put("businessKey", processInstance.getBusinessKey());this.setParams(params, paramMap);paramsJson = JsonUtils.toJson(paramMap);//執(zhí)行dubbo方法logger.info("開(kāi)始調(diào)用業(yè)務(wù)系統(tǒng)接口" + restUrl + ",業(yè)務(wù)參數(shù):" + paramsJson);restTemplate.postForObject(restUrl, paramsJson, String.class);} catch (Exception e) {logger.error("調(diào)用業(yè)務(wù)系統(tǒng)的方法失敗", e);}

三、配置監(jiān)聽(tīng)

總結(jié)

以上是生活随笔為你收集整理的工作流实战_23_flowable 任务监听器 事件监听器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。