当前位置: 首页 > 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?
  • 经济日报社论:书写新征程上奋斗华章
  • 中国证券监督管理委员会党委委员、副主席王建军接受审查调查
  • 东风着陆场近日气象条件满足神舟十九号安全返回要求
  • 邮储银行一季度净赚超252亿降逾2%,营收微降
  • 2025全国知识产权宣传周:用AI生成的图片要小心什么?
  • 安徽一交通事故责任认定引质疑:民警和司法鉴定人被处罚,已中止诉讼