如何实现每月15日后审批的单据统一在下个月一号再自动流转到下一个审批节点原创
5人赞赏了该文章
729次浏览
编辑于2022年07月14日 10:14:32
关键字:流程服务、审批、等待
一、需求
由于业务部门规定当月15号前审批的单据正常流转到下一个审批节点,超过15号审批的单据统一要等到下月一号再流转到下一个审批节点。
二、思路与方案
工作流有等待节点,实现等待一段时间后再流转到下一个节点。但是由于只能设置等待固定的天数,但是16号审批和20审批的单据需要等待的时间不一致,所以需要只能设置等待一天,然后配置条件计算是否需要继续等待。
三、实现过程
1.增加两个流程变量,用来记录上个节点当月哪天审批的,以及当月有多少天。
2.在一级审批节点增加任务同意执行工作流插件,插件主要给流程变量赋值上个节点当月哪天审批的,以及当月有多少天。
插件代码如下:
@Override public void notify(AgentExecution execution) { // TODO Auto-generated method stub LocalDate now = LocalDate.now(); logger.info("当前审批时间:"+now.getMonthValue()+"月"+now.getDayOfMonth()+"天"); execution.setVariable("ifdays", now.getDayOfMonth()); execution.setVariable("daysOfMouth", now.withMonth(now.getMonthValue()).lengthOfMonth()); }4.等待节点设置条件等待,等待时长为1天,跳出条件配置插件。
插件代码如下:
@Override public boolean hasTrueCondition(AgentExecution execution) { // TODO Auto-generated method stub //每等待一次,则ifdays+1,ifdays小于当月天数,则继续等待,否则退出等待 int ifdays = (int) execution.getVariable("ifdays")+1; if(ifdays<=(int)execution.getVariable("daysOfMouth")) { execution.setVariable("ifdays", ifdays); return false; } return true; }
四、效果图
进入等待节点:
满足跳出条件后进入下一个节点:
五、开发环境版本
V4.0.0.14
六、参考资料
WorkflowHcyTestPlugin.zip(0.81KB)
赞 5
5人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *
10金币20金币30金币40金币50金币60金币
可用金币: 0