jeecg审核流程

流程审核代码
目前还没具体懂先写上当前理解以免忘记

private void inputVerifyStart(WarehosueMgr warehosueMgr){

        //获取登录用户信息
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();

        //获取流程定义
        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
                .processDefinitionKey("in_bound")
                .orderByProcessDefinitionVersion().desc()   //如果多次部署时要获取最新的版本
                .list().get(0);

        //获取流程实例(启动新流程)通过id进行绑定,绑定流程图和表
        ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId(),warehosueMgr.getId());  //流程定义ID,业务ID

        //设置任务完成 (从from变成step1了)
        Task task =  taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();   //form
        //System.out.println("当前任务节点:"+task.getName()); //form
        //form直接在这里完成
        taskService.complete(task.getId());
        //System.out.println("当前任务节点(完成后):"+taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult().getName());// step1


        //流程全局属性,用于存放每个节点的审批信息
        {
            List<AuditHistroyVO> formVariables = new ArrayList<AuditHistroyVO>();
            AuditHistroyVO vo = new AuditHistroyVO()
                .setAuditType("入库审核")
                .setTaskId(task.getId())
                .setAuditCreateTime( new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(task.getCreateTime()))
                .setAuditEndTime(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()))
                .setTaskName("form")
                .setTaskDescr("材料员填写表单")
                .setAuditUserId(sysUser.getId()); //审批人,这里表示提交人
            formVariables.add(vo);
            runtimeService.setVariable(processInstance.getId(),"form",formVariables);


            List<AuditHistroyVO> step1Variables = new ArrayList<AuditHistroyVO>();
            runtimeService.setVariable(processInstance.getId(),"step1",step1Variables);

            List<AuditHistroyVO> step2Variables = new ArrayList<AuditHistroyVO>();
            runtimeService.setVariable(processInstance.getId(),"step2",step2Variables);
        }

        warehosueMgr.setVerifyStatus(1);//设置状态为提交审核
        warehosueMgr.setActInstanceId(processInstance.getId()); //记录入库流程ID
    }

首先我们审核的用户都是来自于sysuser,其中这里的sysuser其实是封装的名字,
将系统登录用户编程本类中的loginuser

//获取登录用户信息
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();

之后获取的流程,流程具体在系统设置中可以看到,然后我们将整个流程的密钥,key统一设置为in——bound,就是所有该流程的节点都是通过这个key来进行传递验证的

 ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
                .processDefinitionKey("in_bound")
                .orderByProcessDefinitionVersion().desc()   //如果多次部署时要获取最新的版本
                .list().get(0);

流程跑起来之后我们的id,标记改数据流向的是流程实例ProcessInstance

//获取流程实例(启动新流程)通过id进行绑定,绑定流程图和表
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId(),warehosueMgr.getId());  //流程定义ID,业务ID

在这里插入图片描述
如图所示我们的任务其实有三个节点,分别是form,step1,step2三个任务节点,但是form在我们的业务中是填写的表单,所以在逻辑上其实这个任务不需要审核,直接通过即可

//设置任务完成 (从from变成step1了)
Task task =  taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();   //form
        //System.out.println("当前任务节点:"+task.getName()); //form
        //form直接在这里完成
        taskService.complete(task.getId());
        //System.out.println("当前任务节点(完成后):"+taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult().getName());// step1

以下流程主要记录节点的审批信息,即表单每个节点的审批意见,不同审批的过程中的信息不同,这里仅作为入库处理

 {
            List<AuditHistroyVO> formVariables = new ArrayList<AuditHistroyVO>();
            AuditHistroyVO vo = new AuditHistroyVO()
                .setAuditType("入库审核")
                .setTaskId(task.getId())
                .setAuditCreateTime( new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(task.getCreateTime()))
                .setAuditEndTime(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()))
                .setTaskName("form")
                .setTaskDescr("材料员填写表单")
                .setAuditUserId(sysUser.getId()); //审批人,这里表示提交人
            formVariables.add(vo);
            runtimeService.setVariable(processInstance.getId(),"form",formVariables);


            List<AuditHistroyVO> step1Variables = new ArrayList<AuditHistroyVO>();
            runtimeService.setVariable(processInstance.getId(),"step1",step1Variables);

            List<AuditHistroyVO> step2Variables = new ArrayList<AuditHistroyVO>();
            runtimeService.setVariable(processInstance.getId(),"step2",step2Variables);
        }

其中流程中的节点变量formVariables中记录结点的信息,流程中要过哪些节点就要从这里进行记录
form表单没有list审核但是存在相应节点,所以虽然存在但是不一样

最后设置审核结果,通过就修改为1然后再做记录

 warehosueMgr.setVerifyStatus(1);//设置状态为提交审核
 warehosueMgr.setActInstanceId(processInstance.getId()); //记录入库流程ID
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
授权方式: 开源软件 界面语言: 简体中文 文件大小: 45.6 MB 更新时间: 2020-08-12 资源类型: 国产软件 推荐等级: ★★★☆☆ 平台环境: JAVA 作者主页: 点击查看 演示地址: 点击查看 详细介绍 – [ JEECG快速开发平台 v4.0 ] JEECG (J2EE Code Generation)是一款基于代码生成器的智能开发平台。引领新的开发模式(Online Coding->代码生成器->手工MERGE智能开发),可以帮助解决Java项目90%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。 JEECG宗旨是:简单功能由代Online Coding配置出功能;复杂功能由代码生成器生成进行手工Merge;复杂流程业务采用表单自定义,业务流程使用工作流来实现、扩展出任务接口,供开发编写业务逻辑。实现了流程任务节点和任务接口的灵活配置,既保证了公司流程的保密行,又减少了开发人员的工作量。 JEECG功能特点 1、采用SpringMVC+Hibernate+Minidao(类Mybatis)+Easyui(UI库)+Jquery+Boostrap+Ehcache+Redis+Ztree+Vue+Boostrap-table+ElementUI等基础架构 2、采用面向声明的开发模式,基于泛型编写极少代码即可实现复杂的数据展示、数据编辑、表单处理等功能,再配合Online Coding在线开发与代码生成器的使用,将J2EE的开发效率提高8倍以上,可以将代码减少90%以上。 3、JEECGV4.0,经过了专业压力测试,性能测试,保证后台数据的准确性和页面访问速度 4、支持多种浏览器:IE,火狐,Google等 5、支持数据库:Mysql,Oracle,Postgre,SqlServer等 6、基础权限:用户,角色,菜单权限,按钮权限,数据权限 7、智能报表集成:简易的图像报表工具和Excel导入导出 8、Web容器测试通过的有Jetty和Tomcat,Weblogic 9、亮点功能:分布式部署,云平台,移动平台开发,规则引擎 10、要求JDK1.6+ JEECG技术点总结 技术点一:代码生成器SPA单页面应用快速生成,采用VUE+ElementUI打造酷炫效果 技术点二:新一代代码生成器更灵活的代码生成器工厂,可灵活自定义生成的代码文件名称、路径等;根据模板结构生成代码文件 技术点三:新一代代码生成器支持Vue+ElementUI风格,Bootstrap表单+EasyUI原生态列表风格,ElementUI表单+EasyUI原生态列表风格 技术点四:Dategrid标签多列表风格快速切换,给用户提供多种选择 技术点五:Online Coding在线开发(通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义表单布局) 技术点六:代码生成器,支持多种数据模型,根据表生成对应的Entity,Service,Dao,Action,JSP等,增删改查功能生成直接使用 技术点七:UI快速开发库,针对WEBUI进行标准封装,页面统一采用UI标签实现功能:数据datagrid,表单校验,Popup,Tab等,实现JSP页面零JS,开发维护非常高效 技术点八:在线流程定义,采用开源Activiti流程引擎,实现在线画流程,自定义表单,表单挂接,业务流转,流程监控,流程跟踪,流程委托等 技术点九:自定义表单,支持用户自定义表单布局,支持单表、列表、Select\\Radio\\Checkbox\\PopUP\\Date等特殊控件 技术点十:查询过滤器:查询功能自动生成,后台动态拼SQL追加查询条件;支持多种匹配方式(全匹配/模糊查询/包含查询/不匹配查询) 技术点十一:移动平台支持,对Bootstrap(兼容Html5)进行标准封装 技术点十二:动态报表功能(用户输入一个sql,系统自动解析生成报表) 技术点十三:数据权限(精细化数据权限控制,控制到行级,列表级,表单字段级,实现不同人看不同数据,不同人对同一个页面操作不同字段) 技术点十四:国际化(支持多语言,国际化的封装为多语言做了便捷支持) 技术点十五:多数据源(在线配置数据源,数据源工作类封装) 技术点十六:多种首页风格切换,支持自定义首页风格。(经典风格、Shortcut风格、ACEbootstrap风格、云桌面风格) 技术点十七:在线配置报表(无需编码,通过在线配置方式,实现曲线图,柱状图,数据等报表) 技术点十八:简易Excel导入导出,支持单表导出和一对多表模式导出,生成的代码自带导入导出功能 技术点十九:移动OA,移动OA审批功能,采用H5技术,实现手机移动办公,无缝对接微信、钉钉、微信企业号
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值