SpringBoot+Activiti6+JPA+Vue+ElementUi--完整小案例--2

SpringBoot+Activiti6+JPA+Vue+ElementUi--完整小案例--2

2023年8月1日发(作者:)

SpringBoot+Activiti6+JPA+Vue+ElementUi--完整⼩案例--2⽂章⽬录1.简介在案例1的基础上进⾏完善,。2. 案例22.1 对⽐案例1,增加的内容(后台IDEA)查看当前流程图,当前任务节点标红,返回到前台进⾏展⽰。ShowCurrentViewpackage ller;import del;import sEngine;import toryService;import eService;import rvice;import sDefinition;import sInstance;import ;import s;import ping;import riable;import tMapping;import ntroller;import ce;import rvletResponse;import tream;import Stream;import ist;import ;/** * @author liangjie@ * @version 1.0 * @date 2020/8/7 */@RestController@RequestMapping("/showCurrentView")public class ShowCurrentView { @Resource private TaskService taskService; @Resource private RepositoryService repositoryService; @Resource private RuntimeService runtimeService; @Resource private ProcessEngine processEngine; @GetMapping("/{id}") public void showCurrentView(@PathVariable("id") String taskId, HttpServletResponse response){ Task task = TaskQuery() .taskId(taskId) //根据任务id查询 .singleResult(); //获取流程实例id String processInstanceId = cessInstanceId(); String processInstanceId = cessInstanceId(); //

查询流程实例 ProcessInstance pi = ProcessInstanceQuery() .processInstanceId(processInstanceId).singleResult(); //

查询流程实例 ProcessDefinition pd = ProcessDefinitionQuery() .processDefinitionId(cessDefinitionId()).singleResult(); //

获取BPMN模型对象 BpmnModel model = nModel(()); //

定义使⽤宋体 String fontName = "宋体"; //

获取流程实实例当前点的节点,需要⾼亮显⽰ List currentActs = iveActivityIds(()); // BPMN模型对象、图⽚类型、显⽰的节点 InputStream is = processEngine .getProcessEngineConfiguration() .getProcessDiagramGenerator() .generateDiagram(model, "png", currentActs, new ArrayList(), fontName, fontName, fontName, null, 1.0); OutputStream out = null; try { tentType("multipart/form-data;charset=utf8"); tentType("image/png"); out = putStream(); (Array(is)); (); } catch (Exception e) { tackTrace(); }finally { try { (); } catch (Exception e) { } } }}增加了在审批时查看任务信息ApprovalServiceImpl/** *

查询当前⽤户待办任务+回显需要审批的任务信息 * @param name * @return */ @Override public BaseResult searchApprovalByName(String name) { List list = Assignee(name); if(()>0){ //查询当前待办任务时,获取请假单信息 Leave leave = new Leave(); for (ActRuTask actRuTask : list) { String procInstId = cInstId(); Map variables = iables(procInstId); //inputUser是办理请假单任务的⼈,获取到的信息存进请假单业务类中返回 for ( entry : et()) { if(().equals("inputUser")){ e((String) ue()); }else { Object value = ue(); s((Integer) value); } n("Key = " + () + ", Value = " + ue()); } } return ("查询成功",list).append("leave",leave); }else { List byUserId = UserId(name); if (()>0) { for (ActRuIdentitylink actRuIdentitylink : byUserId) { if (kId() != null) { (kId(), rId()); List byAssignee = Assignee(name); return ("查询成功", byAssignee); } } } } return ("暂时没有您的任务"); }增加了审批通过时更改申请⼈审批状态 /** *

审批-多⼈审批 * @param approval * @return */ @Override public BaseResult Approval(Approval approval) { List byAssignee = Assignee(e()); if(()>0){ for (ActRuTask actRuTask : byAssignee) { if(nion().equals("同意")){ String procInstId = cInstId(); n(procInstId); Map variables = iables(procInstId); for ( entry : et()) { if(().equals("inputUser")){ String value = (String) ue(); n("申请⼈"+value); //已审批通过更改申请⼈状态 Integer i = StateByName(value); } } te(()); return ("已审批"); }else { return ("该流程未通过审批,已通知该员⼯"); } } } List byUserId = UserId(e()); if(()>0){ for (ActRuIdentitylink actRuIdentitylink : byUserId) { if(kId()!=null){ (kId(),rId()); if(nion().equals("同意")){ String procInstId = cInstId(); Map variables = iables(procInstId); //inputUser是办理请假单任务的⼈,获取到的信息存进请假单业务类中返回 for ( entry : et()) { if(().equals("inputUser")){ String value = (String) ue(); //已审批通过更改申请⼈状态 Integer i = StateByName(value); } } te(kId()); return ("已审批"); }else { return ("该流程未通过审批,已通知该员⼯"); } } } } return ("该流程未通过审批,已通知该员⼯"); }2.2 对⽐案例1,增加的内容(前台VUE)增加查看当前流程图前台传递任务id到后端,接收后端传递的⼆进制流程图数据,对数据进⾏处理并展⽰//查看流程图 searchFlowChartFn(id){ FormVisibleImg=true ('localhost:9090/showCurrentView/'+id,{

responseType: 'arraybuffer' //这⾥是声明期望返回的数据类型 }).then(response => { //这⾥的第⼀次处理后台返回来的⼆进制留数据

转化为base64 //这⾥的data数据是后台返回来的,这⾥的key是params中的键值(byte) return 'data:image/png;base64,' + btoa( new Uint8Array().reduce((data, key) => data + arCode(key), '') ) }).then( data =>{ //这⼀次箭头函数是依赖于第⼀次.then函数处理的data值 (data) =data }) },展⽰:增加审批时回显任务信息效果增加了审批通过时更改申请⼈审批状态,效果:说明:相对,案例2,增加了查看流程图,审批通过更改申请⼈状态,不同的⼈登录查看不同的信息,例如:员⼯登录可以查看请假的申请状态,项⽬经理登录不但可以看到⾃⼰的请假信息,还可以做⾃⼰应有的待办任务。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690876537a452762.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信