activiti整合业务

阅读: 评论:0

activiti整合业务

activiti整合业务

Activiti整合业务需求

1.流程部署

1.1跳转流程部署首页list

@GetMapping("/deploy")
private String toDeploy(){return "purchase/deploy";
}

1.2跳转流程图首页Data

//查询以部署的流程	
@ResponseBody@GetMapping("/deployData")public PageUtils deployData(){ProcessDefinitionQuery processDefinitionQuery =  ateProcessDefinitionQuery();	           List<ProcessDefinition> list = processDefinitionQuery.list();List<Map> list1 = new ArrayList<>();for (ProcessDefinition processDefinition : list) {HashMap<Object, Object> map = new HashMap<>();map.put("deploymentId",DeploymentId());map.put("name",Name());map.put("version",Version());map.put("key",Key());list1.add(map);}PageUtils pageUtils = new PageUtils(list1, list1.size());return pageUtils;}

1.3流程图部署form

	//添加流程界面@GetMapping("/todeployAdd")public String todeployAdd(){return "purchase/deployAdd";}

1.4流程图部署保存

//流程部署保存@ResponseBody@PostMapping("/deploysave")public R deploysave(String processName, MultipartFile processFile){try {Deployment deploy = ateDeployment()//流程图名称.name(processName)//流程图zip文件.addZipInputStream(new InputStream())).deploy();System.out.println("流程部署ID:"&#Id());System.out.println("流程部署名称:"&#Name());return R.ok();} catch (IOException e) {e.printStackTrace();();}}

2.流程启动(业务表整合)

2.1流程发起首页

@GetMapping()String Purchase(){return "purchase/purchase";}

2.流程发起首页数据

	@ResponseBody@GetMapping("/list")@RequiresPermissions("system:purchase:purchase")public PageUtils list(@RequestParam Map<String, Object> params){//查询列表数据Query query = new Query(params);List<PurchaseDO> purchaseList = purchaseService.list(query);int total = unt(query);PageUtils pageUtils = new PageUtils(purchaseList, total);return pageUtils;}
效果图如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5x3aP5ME-1603875299652)(D:开发资料wangyunshi工作流笔记整合业务typora-user-images1602140492074.png)]

数据库设计:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v64hD0LS-1603875299654)(D:开发资料wangyunshi工作流笔记整合业务typora-user-images1602140603252.png)]

2.2流程发起添加页面

@GetMapping("/add")String add(){return "purchase/add";}

2.2流程发起保存(purchase为业务表map里面构造画图时候的设置的变量)

	public int save(PurchaseDO purchase){UserDO user = User();purchase.UserId().toString());purchase.Name());purchase.setCreateDate(new Date());purchase.setFlag(0);int save = purchaseDao.save(purchase); //这里要在mybatis里面配置inster主键回填//这里发起工作流,启动流程//业务id,拥于存入工作流表中String businessKey&#Id()+"";HashMap<String, Object> map = new HashMap<>();map.put("userId",UserId()); //申请人map.put("money",Money()); //金额//这里要去查询当前用户的上级id,这里暂时写死,这里可以暂时不用全部构造,要执行下一个几点在构造下一个任务接收人就可以map.put("loderUserId",138); //领导审批     lisimap.put("managerUserId",139); //经理审批   wangwumap.put("financeUserId",140); //财务审批   zhaoliuruntimeService.startProcessInstanceByKey("purchase",businessKey,map);return save;}

3.任务查看

3.1待办事项页面

@GetMapping("/whatToDo")public String toWhatToDo(){return "purchase/whatToDo";}

3.2代办事项数据(这里根据当前登录用户去查询自己的待办任务)

	@GetMapping("/whatToDoData")public PageUtils whatToDoData(){List<Task> tasks = ateTaskQuery().User().getUserId() + "").list();List<Map> lists = new ArrayList<>();//构造返回数据(因为里面有二进制数据不能直接序列化为json所有手动构造自己需要的数据)for (Task task : tasks) {Map<String, Object> map = new HashMap<>();map.put("id",Id()); //任务idmap.put("name",Name());  //流程节点UserDO user = User();map.put("assignee",Name()); //审批人map.put("processId",ProcessInstanceId());//流程实例idmap.put("createDate",CreateTime());//申请时间lists.add(map);}return new PageUtils(lists,lists.size());}
效果如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3iae3hyC-1603875299656)(D:开发资料wangyunshi工作流笔记整合业务typora-user-images1602141301264.png)]

4.任务处理在加一张处理记录表

4.1处理按钮点击后跳转的form(这里id就是任务列表的当前行id)

//任务处理页面@GetMapping("/taskHandle/{id}")public String taskHandle(@PathVariable("id") Integer id,Model model){PurchaseDO purchaseDO = TaskManager(id);model.addAttribute("purchase", purchaseDO);model.addAttribute("taskid",id);return "purchase/taskHandle";}
4.1.1 service层业务代码 taskid----->流程实例id , 流程实例id--------->业务表id
	//这里要根据id去act_ru_task表中查找任务执行表act_ru_execution的流程id,在通过任务执行表的流程id去查找业务表id去查询业务信息//表:act_ru_task   id---------->PROC_INST_ID----------->//表:act_ru_execution    PROC_INST_ID------》BUSINESS_KEY@Overridepublic PurchaseDO getTaskManager(Integer id) {/*** 表:act_ru_task   id---------->PROC_INST_ID----------->* 表:act_ru_execution    PROC_INST_ID------》BUSINESS_KEY* *///通过传过来的任务id去查找流程实例idTask task = ateTaskQuery().String()).singleResult();//流程实例idString processid = ProcessInstanceId();//通过流程实例id获取业务idB   USINESS_KEYProcessInstance processInstance = ateProcessInstanceQuery().processInstanceId(processid).singleResult();//这里拿到了业务表id采购信息String businessKey = BusinessKey();//去查采购信息PurchaseDO purchaseDO = (Integer.parseInt(businessKey));return purchaseDO;}

4.2任务处理from提交(同意,驳回)4.1的model.addAttribute一定要记得放入进去任务id

	//任务处理(同意,驳回),记录处理信息@ResponseBody@PostMapping("/taskHandleSave")public R taskHandleSave(@RequestParam("taskid")String taskid, PurchasedetilDO purchasedetilDO){UserDO user = User();purchasedetilDO.UserId().toString());purchasedetilDO.Name());purchasedetilDO.setCreateTime(new Date());if(purchasedetilService.save(purchasedetilDO,taskid)>0){return R.ok();}();}
4.2.1service业务层
	public int save(PurchasedetilDO purchasedetil,String taskid){int save = purchasedetilDao.save(purchasedetil);//执行工作流任务处理如果是0同意1驳回构造数据HashMap<String, Object> map = new HashMap<>();map.put("flag",State()==0?false:true);taskServiceplete(taskid,map);return save;}
处理记录表如图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1CG9Alhe-1603875299657)(D:开发资料wangyunshi工作流笔记整合业务typora-user-images1602143315662.png)]

4.2.2前台页面
<form class="form-horizontal m-t" id="signupForm"><div class="form-group"><label class="col-sm-3 control-label">任务标题:</label><div class="col-sm-8"><input id="title" name="title" th:value="${purchase.title}"                               class="form-control" type="text" disabled="disabled"readonly="readonly"></div></div><div class="form-group"><label class="col-sm-3 control-label">金额:</label><div class="col-sm-8"><input id="money" name="money" th:value="${}"                                  class="form-control" type="text" disabled="disabled" readonly="readonly"></div></div><div class="form-group"><label class="col-sm-3 control-label">备注:</label><div class="col-sm-8"><input id="content" name="content" th:value="${t}"                           class="form- control" type="text" disabled="disabled" readonly="readonly"></div></div><h5>审批意见------上面是用来回显任务说明的,下面才是提交的用意见----------------</h5><div class="form-group"><label class="col-sm-3 control-label">意见:</label><div class="col-sm-8"><input id="opinion" name="opinion" class="form-control" type="text"></div></div><div><input type="hidden" id="state" name="state"><input type="hidden" id="purchaseId"name="purchaseId"th:value="${purchase.id}"><input type="hidden" id="taskid" name="taskid" th:value="${taskid}"><div class="form-group"><div class="col-sm-8 col-sm-offset-3"><button type="submit" class="btn btn-primary" onclick="pass(1)">同意</button></div></div><div class="form-group"><div class="col-sm-8 col-sm-offset-3"><button type="submit" class="btn btn-primary" onclick="pass(0)">驳回</button></div></div></div>
</form>
最后附上一张流程图

ass(1)">同意




驳回


```
最后附上一张流程图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-63LmFfO7-1603875299658)(D:开发资料wangyunshi工作流笔记整合业务typora-user-images1602143629559.png)]

本文发布于:2024-02-02 14:44:54,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170685629544496.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:业务   activiti
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23