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
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值