一、
计算工作流任务的超时时间,即,当任务已分派后,最迟要在某个时间之前处理完,这个最迟时间为超时时间,或称为有效时间。
在计算超时时间时,节假日或非工作时间,如上班前、下班后,都不能计算在内。
二、
startTime:任务的分派时间,即任务的生成时间;
finishTime:任务的超时时间;
duration:超时时长,如8 hour;
onWorkTime:上班时间,如09:00:00;
offWorkTime:下班时间,如17:00:00;
workDure:工作时长,即从上班到下班期间;
leftDure:当天可用的时长;
三、
if startTime >= 下班时间 then {
finishTime = 第二天的上班时间;
}else if startTime < 上班时间 then {
finishTime = 当天的上班时间;
}else {
finishTime = startTime;
}
while duration > 0 then {
if finish is 节假日 then{
finish = 第二天的上班时间;
continue;
}else{
leftDure = 下班时间 - finishTime;
if leftDure >= duration then{
finishTime = finishTime + duration;
duration = duration - leftDure;
}else{
finishTime = 第二天的上班时间;
duration = duration - leftDure;
}
}
}
....