JEPaaS 社区

 找回密码
 立即注册
JECloud低代码平台-官网
查看: 2114|回复: 0

【流程系列】如何通过java代码的方式找到当前节点审批人

[复制链接]

75

主题

77

帖子

355

积分

中级会员

Rank: 3Rank: 3

积分
355
发表于 2021-8-27 12:36:33 | 显示全部楼层 |阅读模式
一、实现效果
如图1所示,当前节点的审批人不是配置出来的,而是通过后台代码实现的。

1.png
二、实现思路
1、在前端配置对应的service名称和方法名
2、后端写业务代码找到具体审批人
三、具体操作
1、如图2所示,首先在流程那里配置上对应的类和方法,用逗号隔开。
2.png
2、在后台编写对应的代码,如图3所示,不需要写controller,只需要写对应的service和serviceImpl即可。将改实现类注入到Spring容器中,容器中的bean名字即是我们在如2工作流中所配置的业务bean的名字。
3.png
3、如图4是后端的写法。
4.png
1)这个方法名,也是我们在前端工作流那里配置的名字
2)这个参数是固定写法
3)方法最后的返回值可以是一个DynaBean可以是List形式的,即可以返回一个审批人也可以返回多个审批人。
4)所返回的该DynaBean必须是JE_CORE_ENDUSER这张表的,这张表是用户表
5)通过业务逻辑找到对应的人,将该人加入到对应的列表中
6)返回改用户
四、相关代码(可选)
前端
  1. workFlowService,checkSheetFinancialExaminer
复制代码

后端
  1.   @Override
  2.     public List<DynaBean> checkSheetFinancialExaminer(WfAssgineSubmitInfo eventInfo){
  3.         // 获取当前业务表数据
  4.         DynaBean dynaBean = eventInfo.getDynaBean();
  5.         String pzzId=dynaBean.getStr("CWZT_JCXX_PZZ_ID");//总账id
  6.         // 如果不查询则指定 用户三个属性即可 USERNAME USERCODE USERID
  7.         List<DynaBean> user = new ArrayList<DynaBean>();
  8.         //查询报账单信息
  9.         List<DynaBean> bzdBean=metaService.select("CWZT_JCXX_BZD", ConditionsWrapper.builder().eq("CWZT_JCXX_PZZ_ID",pzzId));
  10.         Boolean b=true;
  11.         if(bzdBean.size()>0){
  12.             String companyCode=bzdBean.get(0).getStr("BZD_GSGS_CODE");//法人公司code
  13.             //查询法人组织主数据信息
  14.             List<DynaBean> coa = metaService.select("MDM_COA_COM", ConditionsWrapper.builder().eq("MAIN_FLEX_VALUE",companyCode));
  15.             if(coa.size()>0&&StringUtil.isNotEmpty(coa.get(0).getStr("COM_YJHZGSCWSHR_ID"))){
  16.                 DynaBean us = new DynaBean("JE_CORE_ENDUSER", true);
  17.                 us.set("USERID", coa.get(0).getStr("COM_YJHZGSCWSHR_ID"));//一级合作公司财务审核人ID
  18.                 us.set("BACKUSERCODE", coa.get(0).getStr("COM_YJHZGSCWSHRBH"));//一级合作公司财务审核人code
  19.                 us.set("USERNAME", coa.get(0).getStr("COM_YJHZGSCWSHR"));//一级合作公司财务审核人姓名
  20.                 user.add(us);   // 返回us也可以实现
  21.                 System.out.println("动态获取人员事件已执行..");
  22.                 b=false;
  23.             }
  24.         }
  25.         if(b){
  26.             return null;
  27.         }
  28.         return user;
  29.     }
复制代码
五、总结(可选)
审批的每个节点的审批人都可以通过后台写代码的方式实现,这样可以满足灵活多变的业务场景。
六、关键字

审批人,自定义审批人,灵活配置审批人,后台代码决定审批人

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|JEPaaS 低代码平台社区 ( 京ICP备18023569号 )

GMT+8, 2024-4-29 00:50 , Processed in 0.058761 second(s), 23 queries .

Powered by 北京凯特伟业科技有限公司

Copyright © 2001-2021, JEPaaS.COM

快速回复 返回顶部 返回列表