当前位置: 首页 > 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完成任务流转

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

http://www.dtcms.com/a/134592.html

相关文章:

  • 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?
  • 2025年4月份生活有感
  • 【scikit-learn基础】--『监督学习』之 K-近邻分类
  • 第T8周:猫狗识别
  • 红帽Linux网页访问问题
  • 【工具变量】1907年大清邮政舆图数据集(高清图+PDF)
  • confluent-kafka入门教程
  • Windows 下 MongoDB ZIP 版本安装指南
  • 【Linux系统篇】:从匿名管道到命名管道--如何理解进程通信中的管道?
  • 《如何结合XMind和DeepSeek高效生成思维导图》
  • Obsidian 文件夹体系构建 -INKA