工具:使用idea和安装activity插件 教程可以网上有
流程:1.创建bpmn插件,绘制一个流程图,可以从最简单的只有一个受理人开始,注意assigine最好指定为参数创建,格式为 #{参数名} 。
2.编写审批的类,控制层加入新增申请,任务详情,处理申请等接口
/** * 新增一个你的申请 */ @PostMapping public AjaxResult add(@RequestBody 你的申请类 对象 ) { logger.info(JSON.toJSONString(对象)); Long userid = getUserId(); 对象.setUserId(userid); //审批编号 Date dt = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss"); String data = sdf.format(dt) + userid; 对象.setApNo(data); 回想.insert申请的mapper方法(对象); 申请的类把原实体类的修改方法 比如修改时间和编号的逻辑 long bussniseeKey = 对象.getId(); Authentication.setAuthenticatedUserId(userid.toString()); //开始工作流、监听 Map<String, Object> variables = new HashMap<>(); //这里只用了一个审批受理人 variables.put("这里是自定义的流程受理人的name", 对象.受理人.toString()); //采用key来启动流程定义并设置流程变量,返回流程实例 ProcessInstance pi = runtimeService.startProcessInstanceByKey("这里是自定义流程的id", String.valueOf(bussniseeKey), variables); logger.info("流程部署id:" + pi.getDeploymentId()); logger.info("流程定义id:" + pi.getProcessDefinitionId()); logger.info("流程实例id:" + pi.getProcessInstanceId()); 对象.setProcessId(pi.getProcessInstanceId()); 对象.更新申请方法(对象); return AjaxResult.success(); }
3.项目启动时和流程运行初始化时必须要将审批申请保存到activity的数据库表中
/** * 初始化配置,将创建28张表 * * @return */