当前位置: 首页 > news >正文

Flowable工程化改造相关文档

本章将针对前期进行的Flowable流程引擎研究,进行相应的工程化改造,改造过程分别为对Flowable引擎流程文件远程化处理,流程过程接口化升级,等方面进行改造,以适配其他项目对流程引擎的API调用

首先对流程引擎项目主要流转功能进行API封装暴露出接口

/*** 根据流程Key创建一个流程* @response* @return*/@RequestMapping(value = "/pushFlowable",method = RequestMethod.POST)public R<String> pushFlowable(@RequestBody FlowableCreateDTO flowableCreate) {Map<String, Object> map = new HashMap<>();for (FlowableMapDTO flowable : flowableCreate.getMapList()){map.put(flowable.getKey(),flowable.getValue());}ProcessInstance studentLeave = runtimeService.startProcessInstanceByKey(flowableCreate.getFlowableKey(), map);Task task = taskService.createTaskQuery().processInstanceId(studentLeave.getId()).singleResult();taskService.complete(task.getId());return R.data(studentLeave.getId());}/*** 根据分组信息查询当前分组下的任务列表* @param queryDTO* @return*/@RequestMapping(value = "/getTaskListByGroup",method = RequestMethod.POST)public R<List<FlowableTaskInfoDTO>> getTaskListByGroup(@RequestBody FlowableTaskQueryDTO queryDTO) {List<Task> teacherTaskList = taskService.createTaskQuery().taskCandidateGroup(queryDTO.getGroupKey()).list();List<FlowableTaskInfoDTO> infoDTOList = new ArrayList<>();for (Task task : teacherTaskList){FlowableTaskInfoDTO infoDTO = new FlowableTaskInfoDTO();BeanUtils.copyProperties(task,infoDTO);infoDTOList.add(infoDTO);}return R.data(infoDTOList);}/*** 根据用户信息查询当前用户的任务列表* @param queryDTO* @return*/@RequestMapping(value = "/getTaskListByUser",method = RequestMethod.POST)public R<List<FlowableTaskInfoDTO>> getTaskListByUser(@RequestBody FlowableTaskQueryDTO queryDTO) {List<Task> teacherTaskList = taskService.createTaskQuery().taskCandidateUser(queryDTO.getUserKey()).list();List<FlowableTaskInfoDTO> infoDTOList = new ArrayList<>();for (Task task : teacherTaskList){FlowableTaskInfoDTO infoDTO = new FlowableTaskInfoDTO();BeanUtils.copyProperties(task,infoDTO);infoDTOList.add(infoDTO);}return R.data(infoDTOList);}/*** 根据任务ID执行下一步* @response* @return*/@RequestMapping(value = "/completeTaskById",method = RequestMethod.POST)public R<String> completeTaskById(@RequestBody FlowableCreateDTO flowableCreate) {Map<String, Object> map = new HashMap<>();for (FlowableMapDTO flowable : flowableCreate.getMapList()){map.put(flowable.getKey(),flowable.getValue());}taskService.complete(flowableCreate.getTaskId(), map);return R.data("success");}/*** 根据任务ID查询流程流转记录* @response* @return*/@RequestMapping(value = "/getHistoricActivityListById",method = RequestMethod.POST)public R<List<FlowableHistoricActivityDTO>> getHistoricActivityListById(@RequestBody FlowableCreateDTO flowableCreate) {// 查看历史List<HistoricActivityInstance> activities = historyService.createHistoricActivityInstanceQuery().processInstanceId(flowableCreate.getProcessInstanceId()).finished().orderByHistoricActivityInstanceEndTime().asc().list();List<FlowableHistoricActivityDTO> historicActivityDTOList = new ArrayList<>();for (HistoricActivityInstance activity : activities) {FlowableHistoricActivityDTO dto = new FlowableHistoricActivityDTO();BeanUtils.copyProperties(activity,dto);historicActivityDTOList.add(dto);}return R.data(historicActivityDTOList);}

根据业务需求调用相应接口

在这里插入图片描述

任务调度服务调用API完成任务流转

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

相关文章:

  • AI大模型如何重塑科研范式:从“假说驱动”到“数据涌现”
  • 11【模块学习】DS18B20(一):使用学习
  • 免费的内网穿刺工具和免费域名
  • **Windows 系统**的常用快捷键大全
  • C语言实战:用Pygame打造高难度水果消消乐游戏
  • Linux路漫漫
  • 千树万树梨花开
  • 【18】Strongswan encoding详解 message2
  • 面试题:请描述一下你在项目中是如何进行性能优化的?针对哪些方面进行了优化,采取了哪些具体的措施?
  • 【JavaScript】二十一、日期对象
  • 数据结构*集合框架顺序表-ArrayList
  • 网络的起点:深入解析计算机网络中的网络接口层
  • 在JavaScript中实现文件下载完成后自动打开
  • Python multiprocessing模块介绍
  • ns-3中UDP饱和流发包时间间隔设置最合理值
  • Redis + Caffeine打造超速两级缓存架构
  • 未支付订单如何释放库存
  • 无参数RCE
  • hackmyvm-quick2
  • 如何从 GitHub 镜像仓库到极狐GitLab?
  • 持续更新丨伊朗官员:港口爆炸事件已致5人死亡
  • 国务院同意在海南全岛和秦皇岛等15个城市(地区)设立跨境电子商务综合试验区
  • 马上评丨喷淋头全是摆设,酒店消防岂能“零设防”
  • 男子称喝中药治肺结节三个月后反变大增多,自贡卫健委回应
  • 今年一季度上海离境退税商品销售额7.6亿元,同比增85%
  • 大卫·第艾维瑞谈历史学与社会理论③丨尼古拉斯·卢曼与历史研究