【EAS工作流】工作流脚本-时间等待节点绝对时间配置原创
金蝶云社区-汪伟康
汪伟康
11人赞赏了该文章 408次浏览 未经作者许可,禁止转载编辑于2024年11月21日 15:23:57
  • 配置案例1:入职单的流程中想等待到达入职日期(单据上的字段)之后再审批通过。

1、定义流程变量

image.png


2、编写脚本用来得到日期的年,月,日

//脚本
rzDate = bizObj.entrys.enrollDate;
java.text.SimpleDateFormat dateFormat =new java.text.SimpleDateFormat("yyyy-MM-dd");
String date = dateFormat.format(rzDate);
year = Integer.parseInt(date.substring(0, 4));
month = Integer.parseInt(date.substring(5,7));
day = Integer.parseInt(date.substring(8));


3、配置年月日变量到 时间等待节点的绝对时间中

image.png




  • 配置案例2:离职单流程某个审批节点审批完成之后需要等到距离离职生效日期小于7天才往下流转。

//1、流程图增加时间等待节点和连接弧

image.png


//2、定义流程变量

image.png


3、审批节点中 添加后置脚本

//假如leaveDate 是离职生效时间字段
leaveDate = bizObj.entrys.bizDate;
long msNum = leaveDate.getTime() - new java.util.Date().getTime();//时间戳相差的毫秒数
minsNum = msNum/(60*1000);//得到相差分钟数
//即 minsNum就是当前时间减去 离职生效时间 相差的分钟数
//计算什么时候往下走
// 使用Calendar类操作日期
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(leaveDate); // 设置原始日期
c.add(java.util.Calendar.DATE, -7); // 减去指定天数
// 获取调整后的日期年,月,日,时,分
year = c.get(java.util.Calendar.YEAR);
month = c.get(java.util.Calendar.MONTH)+1;
day = c.get(java.util.Calendar.DATE);
hour = c.get(java.util.Calendar.HOUR_OF_DAY);
minute = c.get(java.util.Calendar.MINUTE);




4、两个连接弧条件

image.png


image.png


5、时间等待节点绝对时间配置

image.png




  • 配置案例3费用申请单提交后,需要在每天的18点后往下走;18点提交后的费用申请单则在第二天的18点往下走。(该案例具体配置方案见附件

//1、定义流程变量

image.png


//2、编写脚本

java.util.Calendar c = java.util.Calendar.getInstance();
year = c.get(java.util.Calendar.YEAR);
month = c.get(java.util.Calendar.MONTH)+1;
day = c.get(java.util.Calendar.DATE);
int hour = c.get(java.util.Calendar.HOUR_OF_DAY);

if(hour>18){
     c.add(c.DATE, 1);
     year = c.get(java.util.Calendar.YEAR);
     month = c.get(java.util.Calendar.MONTH)+1;
     day = c.get(java.util.Calendar.DATE);
}


//3、时间等待节点配置

image.png



图标赞 11
11人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!