CN102542437B - 一种任务到期提醒的方法及装置 - Google Patents
一种任务到期提醒的方法及装置 Download PDFInfo
- Publication number
- CN102542437B CN102542437B CN201110455893.5A CN201110455893A CN102542437B CN 102542437 B CN102542437 B CN 102542437B CN 201110455893 A CN201110455893 A CN 201110455893A CN 102542437 B CN102542437 B CN 102542437B
- Authority
- CN
- China
- Prior art keywords
- date
- day
- work
- moment
- expiry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种任务到期提醒的方法及装置,所述方法包括:获取工作日历数据,工作日历数据包含多个连续的日期,当日期的作息状态为工作日类型时日期还包含一个或多个工作时段;获取任务派发时间及任务办理时限;根据派发日和整日数并通过排除派发日之后的指定数量的休息日类型的日期,获得临时到期日;根据派发时刻、非整日时长、及临时到期日包含的工作时段,获得任务到期时间;根据任务到期时间进行任务到期提醒。本发明可根据工作日工作时段的实际情况获取精确的任务到期时间,避免了工作流系统发出错误提醒。同时引入了作息日期段,优化了获取任务到期日期的处理过程,减少了判断步骤,使得发出提醒的速度更快、效率更高。
Description
技术领域
本发明涉及办公自动化领域,尤其是涉及一种任务到期提醒的方法及装置。
背景技术
办公室自动化,又可称为电子政务、OA(OFFICE AUTOMATION)、无纸化办公等,是近年随着计算机科学发展而提出来的基于计算机及网络的新概念。当前,在行政机关、企业事业等单位中,为了改变过去复杂、低效的手工办公方式,提高工作效率,普遍采用了办公自动化技术及系统。办公自动化系统一般是以工作流(Workflow)为中心、工作任务为基本处理单元,而工作流在派发任务时需要解决的一个技术问题便是实现任务到期时的自动提醒功能,而实现该功能首要环节就是任务到期时间的计算。
任务到期时间对于企业信息化建设至关重要,它是及时处理紧急事务及考核人员工作效率等的重要手段。工作流系统通过后台轮询服务实时比对当前时间和每个任务到期时间,抓取已经过期或即将到期的任务,然后对这些任务进行及时处理。此外,通过比对每个任务实际办理时间和任务到期时间,还可以统计出办理人员任务的完成情况(有多少提前、有多少延迟等),进而为评估办理人员工作效率提供有力依据。
一般来讲,任务到期时间需要借助工作流系统中该任务的办理期限并结合公司或人员的工作日历计算得出(工作日历通俗来讲即标明了哪天上班、哪天休息的日历)。在现有技术中一般是通过以下方案来计算任务到期时间的:
首先,设置工作日历。例如设置2011年9月26日到9月30日为工作日,设置10月1日到10月7日为休息日,设置10月8日到10月14日为工作日。
然后,将某待办任务及其办理时限等信息输入到系统中,系统计算得到到期时间并发送提醒。假设工作流系统需要在9月27日9点30分派发该任务,同时该任务办理期限为4天零6小时。则工作流系统会先根据期限中的整日数(4天)计算到期日(精确到天),再根据期限中非整日的时长(6个小时)计算到期时间(精确到小时或分钟)。具体流程如下:
a)将派发任务的日期加上任务办理期限中的整日数(注意:此时先忽略非整日的时长),得到任务到期临时日期。9月27日+4天,得到10月1日为任务到期临时日期。注意该日期为中间结果,因为在计算过程中并未将所加的这4天中可能出现的休息日考虑进来。
b)对任务派发日期与任务到期临时日期之间的每一天,根据工作日历分别判断其是否为休息日,并得出休息日的天数。易知从9月27日到10月1日之间休息日为1天,即10月1日。
c)若前一步骤中得出的休息日天数为0,则任务到期临时日期即为真正的任务到期日期,进入步骤e;否则,将任务到期临时日期与休息日天数相加得到新的任务到期临时日期,进入步骤d。本例中,10月1日+1天,得到10月2日为新的任务到期临时日期。
d)对从原任务到期临时日期到新的任务到期日期之间的每一天,根据工作日历分别判断其是否为休息日,并得出休息日的天数,即继续执行c步骤,直至得到真正的任务到期日期。
e)经过以上步骤,最后得到任务到期日为10月8日。因为派发任务时的时间为9点30分,故任务到期时间为10月8日9点30分。注意这是忽略非整日时长的结果,所以应该再加上办理期限中非整日的时长,即加上6个小时,最终可得任务到期时间为10月8日9点30分+6小时,即10月8日15点30分。
发明人在实现本发明的过程中,发现现有技术中的方案至少存在如下缺点:
第一,该方案容易发出错误提醒。例如:若10月8日的工作时段是8:00~17:00,则任务到期时间的计算结果(15点30分)是正确的;但若10月8日的工作时段是8:00~13:00,则任务到期时间的计算结果是错误的,因为15点30分时已经不属于办公时间了。
第二,该方案在判断派发日与临时到期日之间是否存在休息日时需要逐天判断,效率较低,影响工作流系统的处理速度,尤其是在派发任务工作较为频繁时,该缺点尤为明显。
发明内容
本发明实施例要解决的技术问题是:避免发出错误的任务到期提醒。
本发明实施例中提供了一种任务到期提醒的方法,包括:
获取工作日历数据,所述工作日历数据包含多个连续的日期,每个所述日期包含一个作息状态,所述作息状态包括工作日类型和休息日类型,当所述日期的作息状态为工作日类型时所述日期还包含一个或多个工作时段;
获取任务派发时间及任务办理时限,所述任务派发时间包括派发日和派发时刻,所述任务办理时限包括整日数和非整日时长;
根据所述派发日和所述整日数并通过排除所述派发日之后的指定数量的所述休息日类型的日期,获得临时到期日;
根据所述派发时刻、所述非整日时长、及所述临时到期日包含的工作时段,获得所述任务到期时间;
根据所述任务到期时间进行任务到期提醒。
优选的,将所述工作日历数据中连续的作息状态相同的日期组成一个日期段,以使所述工作日历数据被划分为一个或多个的作息日期段,所述作息日期段具有与其内日期作息状态相同的作息状态;根据所述派发日和所述整日数并通过排除所述派发日之后的指定数量的所述休息日类型的日期,获得临时到期日的步骤,具体包括:
i)将所述派发日作为起点日,将所述整日数作为累加天数;
ii)判断所述起点日所在作息日期段的作息类型是否为休息日类型,若是,则将所述起点日所在作息日期段之后的第一个作息状态为工作日类型的日期作为新的起点日;
iii)将所述起点日与所述累加天数相加的结果作为临时到期日;
iv)获得在所述起点日所在作息日期段之后、且在所述临时到期日所在作息日期段之前的所有作息日期段并组成作息日期段集合,获得所述作息日期段集合中所述休息日类型的日期的总天数并将所述总天数作为新的累加天数;
v)判断所述累加天数是否大于零;
若是,则将所述临时到期日作为新的起点日,继续执行步骤ii);
若否,则判断所述临时到期日所在作息日期段的作息类型是否为休息日类型,若否则获得所述临时到期日,若是则获得所述临时到期日所在作息日期段之后的第一个作息状态为工作日类型的日期作为所述临时到期日。
优选的,根据所述派发时刻、所述非整日时长、及所述临时到期日对应的工作时段,获得所述任务到期时间的步骤,具体包括:
a、将所述临时到期日中与所述派发时刻相同的时刻作为第一临时到期时刻;
b、获得所述第一临时到期时刻与所述临时到期日包含的工作时段在时间上的位置关系,根据所述在时间上的位置关系获得第二临时到期时刻;
c、根据所述非整日时长、及所述第二临时到期时刻与其所在工作时段的结束时刻的差值,获得所述任务到期时间。
优选的,步骤b具体包括:
如果所述第一临时到期时刻在所述临时到期日的所有工作时段之前,则将所述临时到期日的所有工作时段中的最早时刻,作为第二临时到期时刻;
如果所述第一临时到期时刻在所述临时到期日的所有工作时段之后,则将所述临时到期日的所有工作时段中的最晚时刻,作为第二临时到期时刻;
如果所述第一临时到期时刻在所述临时到期日的相邻的两个工作时段之间,则将所述相邻的两个工作时段中后一个工作时段的开始时刻,作为第二临时到期时刻;
如果所述第一临时到期时刻在所述临时到期日的一个工作时段之中,则将所述第一临时到期时刻作为第二临时到期时刻。
优选的,步骤c具体包括:
c1、选取所述第二临时到期时刻所在的工作时段作为当前工作时段;
c2、通过计算获得所述第二临时到期时刻与所述当前工作时段的结束时刻的差值;
c3、判断所述差值是否大于等于所述非整日时长,
若是,则对所述第二临时到期时刻与所述非整日时长进行相加处理,获得任务到期时刻,并根据所述临时到期日及所述任务到期时刻获得任务到期时间;
若否,则在所述非整日时长中减去所述差值并将结果作为新的非整日时长,同时选取所述当前工作时段的下一工作时段作为新的当前工作时段,并将所述新的当前工作时段的开始时刻作为新的第二临时到期时刻、将所述新的当前工作时段所在的日期作为新的临时到期日,进入步骤c2。
本发明实施例还提供了一种任务到期提醒的装置,包括:
工作日历数据获取单元,用于获取工作日历数据,所述工作日历数据包含多个连续的日期,每个所述日期包含一个作息状态,所述作息状态包括工作日类型和休息日类型,当所述日期的作息状态为工作日类型时所述日期还包含一个或多个工作时段;
任务信息获取单元,用于获取任务派发时间及任务办理时限,所述任务派发时间包括派发日和派发时刻,所述任务办理时限包括整日数和非整日时长;
临时到期日获取单元,用于根据所述派发日和所述整日数并通过排除所述派发日之后的指定数量的所述休息日类型的日期,获得临时到期日;
任务到期时间获取单元,用于根据所述派发时刻、所述非整日时长、及所述临时到期日包含的工作时段,获得所述任务到期时间;
提醒单元,用于根据所述任务到期时间进行任务到期提醒。
优选的,将所述工作日历数据中连续的作息状态相同的日期组成一个日期段,以使所述工作日历数据被划分为一个或多个的作息日期段,所述作息日期段具有与其内日期作息状态相同的作息状态;所述临时到期日获取单元具体包括:
第一初始化子单元,用于将所述派发日作为起点日,将所述整日数作为累加天数;
起点日修正子单元,用于判断所述起点日所在作息日期段的作息类型是否为休息日类型,若是,则将所述起点日所在作息日期段之后的第一个作息状态为工作日类型的日期作为新的起点日;
临时到期日计算子单元,用于将所述起点日与所述累加天数相加的结果作为临时到期日;
累加天数调整子单元,用于获得在所述起点日所在作息日期段之后、且在所述临时到期日所在作息日期段之前的所有作息日期段并组成作息日期段集合,获得所述作息日期段集合中所述休息日类型的日期的总天数并将所述总天数作为新的累加天数;
临时到期日获取子单元,用于判断所述累加天数是否大于零;若是,则将所述临时到期日作为新的起点日,继续执行步骤ii);若否,则判断所述临时到期日所在作息日期段的作息类型是否为休息日类型,若否则获得所述临时到期日,若是则获得所述临时到期日所在作息日期段之后的第一个作息状态为工作日类型的日期作为所述临时到期日。
优选的,所述任务到期时间获取单元具体包括:
第二初始化子单元,用于将所述临时到期日中与所述派发时刻相同的时刻作为第一临时到期时刻;
第二临时到期时刻获取子单元,用于获得所述第一临时到期时刻与所述临时到期日包含的工作时段在时间上的位置关系,根据所述在时间上的位置关系获得第二临时到期时刻;
任务到期时间获取子单元,用于根据所述非整日时长、及所述第二临时到期时刻与其所在工作时段的结束时刻的差值,获得所述任务到期时间。
优选的,所述第二临时到期时刻获取子单元具体包括:
第二临时到期时刻第一获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的所有工作时段之前,若是则将所述临时到期日的所有工作时段中的最早时刻,作为第二临时到期时刻;
第二临时到期时刻第二获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的所有工作时段之后,若是则将所述临时到期日的所有工作时段中的最晚时刻,作为第二临时到期时刻;
第二临时到期时刻第三获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的相邻的两个工作时段之间,若是则将所述相邻的两个工作时段中后一个工作时段的开始时刻,作为第二临时到期时刻;
第二临时到期时刻第四获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的一个工作时段之中,若是则将所述第一临时到期时刻作为第二临时到期时刻。
优选的,所述任务到期时间获取子单元具体包括:
第三初始化子单元,用于选取所述第二临时到期时刻所在的工作时段作为当前工作时段;
差值计算子单元,用于通过计算获得所述第二临时到期时刻与所述当前工作时段的结束时刻的差值;
循环判断子单元,用于判断所述差值是否大于等于所述非整日时长,
若是,则对所述第二临时到期时刻与所述非整日时长进行相加处理,获得任务到期时刻,并根据所述临时到期日及所述任务到期时刻获得任务到期时间;
若否,则在所述非整日时长中减去所述差值并将结果作为新的非整日时长,同时选取所述当前工作时段的下一工作时段作为新的当前工作时段,并将所述新的当前工作时段的开始时刻作为新的第二临时到期时刻、将所述新的当前工作时段所在的日期作为新的临时到期日,调用所述差值计算子单元
本发明实施例的方法和装置可根据工作日工作时段的实际情况获取精确的任务到期时间,避免了工作流系统发出错误提醒。同时引入了作息日期段,优化了获取任务到期日期的处理过程,减少了判断步骤,使得发出提醒的速度更快、效率更高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一方法的流程图;
图2是本发明实施例一中步骤S3的内部流程图;
图3是本发明实施例一中步骤S4的内部流程图;
图4是本发明实施例二装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解,首先对本文中涉及的几个基础概念进行说明:本文中有日期、时刻、时间三个概念,时间=日期+时刻,“10月1日”这样的叫日期,“9点30分”这样的叫时刻,“10月1日9点30分”这样的叫时间;本文中还有日期段、时段两个概念,“10月1日至10月7日”这样的叫日期段,“9点30分至15点30分”这样的叫时段;此外,本文中还有任务办理时限、整日数、非整日时长三个概念,任务办理时限=整日数+非整日时长,“4天零6个小时”这样的叫任务办理时限,“4天”即整日数,“6个小时”即非整日时长。
实施例一
图1是本发明实施例一方法的流程图,包括以下步骤:
S1:获取工作日历数据,所述工作日历数据包含多个连续的日期,每个所述日期包含一个作息状态,所述作息状态包括工作日类型和休息日类型,当所述日期的作息状态为工作日类型时所述日期还包含一个或多个工作时段。
在本实施例中,首先按照普通作息规律即周天作息规律,对普通日历进行设置,获得周天日历。周天作息规律即周一至周五为工作日、周六周日为休息日。在本实施例中,以2011年10月1日前后的场景为例(为了简练,下文中的日期均省略2011年),对每日按照周天作息规律设置后获得的周天日历参见表1所示:
表1
日期 | 星期 | 作息状态 | 日期 | 星期 | 作息状态 |
9月26日 | 一 | 工作日 | 10月4日 | 二 | 工作日 |
9月27日 | 二 | 工作日 | 10月5日 | 三 | 工作日 |
9月28日 | 三 | 工作日 | 10月6日 | 四 | 工作日 |
9月29日 | 四 | 工作日 | 10月7日 | 五 | 工作日 |
9月30日 | 五 | 工作日 | 10月8日 | 六 | 休息日 |
10月1日 | 六 | 休息日 | 10月9日 | 日 | 休息日 |
10月2日 | 日 | 休息日 | 10月10日 | 一 | 工作日 |
10月3日 | 一 | 工作日 | 10月11日 | 二 | 工作日 |
此外,在上述周天日历中,对于工作日还要再设置一下工作时段,一个工作日中的工作时段可能有一个或多个。可以将所有工作日的工作时段设置为相同,也可以将某些工作日的工作时段进行专门或者额外的设置。例如可以将所有工作日的工作时段都设置为一个时段8:30~17:30,或者设置为两个时段8:30~12:00、13:00~17:30。
不过,在实际中会经常碰到作息规律与以上周天日历不符的情况,例如十一长假串休的场景。为应对这类场景,需要对上述周天日历进行调整,或者说是在周天日历基础上加入自定义设置,例如调整一些日期的作息状态,同时也可能会调整工作日的工作时段。经过这些调整后,可在周天日历基础上进一步获得一个自定义日历,即所述的工作日历数据。参见表2所示:
表2
日期 | 星期 | 作息状态 | 日期 | 星期 | 作息状态 |
9月26日 | 一 | 工作日 | 10月4日 | 二 | 休息日 |
9月27日 | 二 | 工作日 | 10月5日 | 三 | 休息日 |
9月28日 | 三 | 工作日 | 10月6日 | 四 | 休息日 |
9月29日 | 四 | 工作日 | 10月7日 | 五 | 休息日 |
9月30日 | 五 | 工作日 | 10月8日 | 六 | 工作日 |
10月1日 | 六 | 休息日 | 10月9日 | 日 | 工作日 |
10月2日 | 日 | 休息日 | 10月10日 | 一 | 工作日 |
10月3日 | 一 | 休息日 | 10月11日 | 二 | 工作日 |
优选的,为了提高处理效率可以将相同作息状态的相连日期进行合并。在本实施例中可以将所述工作日历数据中连续的作息状态相同的日期组成一个日期段,以使所述工作日历数据被划分为一个或多个的作息日期段,所述作息日期段具有与其内日期作息状态相同的作息状态。在具体实现时,可以在内存中为每个所述作息日期段创建一个内存对象,每个所述内存对象包含一个所述作息日期段并包含该作息日期段的天数及作息状态等信息。以下将包含休息日的内存对象称为休息类型内存对象。表3中的一行记录即代表一个作息日期段:
表3
ID | 作息状态 | 开始日期 | 结束日期 |
1001 | 工作日 | 9月26日 | 9月30日 |
1002 | 休息日 | 10月1日 | 10月7日 |
1003 | 工作日 | 10月8日 | 10月11日 |
注意,一个作息日期段中是可以只有1天的;另外表1、2、3中均省略了各工作日包含的工作时段信息。
S2:获取任务派发时间及任务办理时限,所述任务派发时间包括派发日和派发时刻,所述任务办理时限包括整日数和非整日时长。仍以上文9月27日派发任务的场景为例,即假设该任务是在9月27日9点30分派发的,同时办理时限是4天零6小时,则:9月27日9点30分即任务派发时间、9月27日即派发日、9点30分即派发时刻,4天零6小时即任务办理时限、4天即整日数、6小时即非整日时长。此外可以理解的是,S2可以在S1之后,也可以在S1之前。
注意,下文中若无特殊说明,则均以9月27日9点30分派发任务、办理时限是4天零6小时、工作日历按表3进行设置的场景为例。
S3:根据所述派发日和所述整日数并通过排除所述派发日之后的指定数量的所述休息日类型的日期,获得临时到期日。
初始时,令派发日加上整日数可得到一个临时日期,但是派发日与该临时日期之间即这些加上的日期中,可能会存在一个或多个休息日,而这些休息日时不应该计入办理时限中的,因此需要找到这些休息日并将其排除,也即需要将这个临时日期再加上这些休息日的天数,以得到一个新的临时日期;但是同样的,这些新加上的天数中又可能会有休息日,仍需要排除。如此反复,最终当要排除的休息日天数为0时停止。
在本发明其他实施例中,可以按照上面的思想,对那些派发日后加上的日期逐一判断是否为休息日;但是在本实施例中,参见图2所示,优选的,当按照上文方法使工作日历数据被划分为一个或多个的作息日期段时,因为一个作息日期段与一个内存对象相对应,而内存对象中已经记载了该作息日期段的天数,因此可以以作息日期段为单位进行判断和计数(即在内存中以内存对象为单位进行判断和技术),而不再需要逐天判断计数,从而减少了判断次数,提高了运行效率,S3具体可以包括以下步骤:
S31:将所述派发日作为起点日,将所述整日数作为累加天数。本步骤的作用是初始化,即初始时将9月27日作为初始时的起点日,4天作为初始时的累加天数。
S32:判断所述起点日所在作息日期段的作息类型是否为休息日类型,若是,则将所述起点日所在作息日期段之后的第一个作息状态为工作日类型的日期作为新的起点日。本步骤的作用是对起点日进行修正。起点日所在作息日期段之后的第一个作息状态为工作日类型的日期也即起点日所在作息日期段之后的第一个作息状态为工作日的作息日期段的第一天。9月27日所在的作息日期段为工作日,所以不需要修正。
S33:将所述起点日与所述累加天数相加的结果作为临时到期日。9月27日+4天,得到10月1日为临时到期日。
S34:获得在所述起点日所在作息日期段之后、且在所述临时到期日所在作息日期段之前的所有作息日期段并组成作息日期段集合,获得所述作息日期段集合中所述休息日类型的日期的总天数并将所述总天数作为新的累加天数。9月27日所在的作息日期段为9.26~9.30,10月1日所在的作息日期段为10.1~10.7,这两个作息日期段之间没有其他作息日期段,故作息日期段集合为空,即新的累加天数为0。
S35:判断所述累加天数是否大于零;
若是,则将所述临时到期日作为新的起点日,继续执行S32;
若否,则判断所述临时到期日所在作息日期段的作息类型是否为休息日类型,若否则获得所述临时到期日,若是则获得所述临时到期日所在作息日期段之后的第一个作息状态为工作日类型的日期作为所述临时到期日。
累加天数为0,同时10月1日所在的作息日期段为休息日,最后获得的临时到期日期为10月1日后的第一个工作日,即10月8日,然后将其输出至下一流程S4。
为了便于理解,此处再举一个临时的例子:假设工作日历如表4所示(2011年),
表4
作息状态 | 开始日期 | 结束日期 |
休息日 | 9月17日 | 9月18日 |
工作日 | 9月19日 | 9月23日 |
休息日 | 9月24日 | 9月25日 |
工作日 | 9月26日 | 9月30日 |
休息日 | 10月1日 | 10月7日 |
工作日 | 10月8日 | 10月14日 |
再设任务在9月18日派发,办理期限为12天,则:
执行S31,得到初始时的起点日为9月18日,累加天数为12天;
执行S32,得到修正后的起点日为9月19日;
执行S33,9月19日+12天,得到临时到期日为10月1日;
执行S34,获得的作息日期段(也可称内存对象)集合中包括:9月24日~9月25日、9月26日~9月30日,其中只有9月24日~9月25日这个作息日期段为休息日,所以得到新的累加天数2天;
执行S35,因为2>0,所以将10月1日作为新的起点日;
继续执行S32,得到修正后的起点日为10月8日;
继续执行S33,10月8日+2天,得到新的临时到期日为10月10日,因为10月8日与10月10日之间无其他作息时间段,且10月10日本身就是工作日,所以10月8日即最后的临时到期日。上述临时例子结束。
S4:根据所述派发时刻、所述非整日时长、及所述临时到期日包含的工作时段,获得所述任务到期时间。优选的,在本实施例中,参见图3所示,S4具体可以包括以下步骤
S41:将所述临时到期日中与所述派发时刻相同的时刻作为第一临时到期时刻。因为任务是在9月27日9点30分开始派发的,所以将临时到期日即10月8日中的9点30分作为第一到期临时时刻。
S42:获得所述第一临时到期时刻与所述临时到期日的工作时段在时间上的位置关系,根据所述在时间上的位置关系获得第二临时到期时刻。具体有下面四种情况:
如果所述第一临时到期时刻在所述临时到期日的所有工作时段之前,则将所述临时到期日的所有工作时段中的最早时刻,作为第二临时到期时刻;
如果所述第一临时到期时刻在所述临时到期日的所有工作时段之后,则将所述临时到期日的所有工作时段中的最晚时刻,作为第二临时到期时刻;
如果所述第一临时到期时刻在所述临时到期日的相邻的两个工作时段之间,则将所述相邻的两个工作时段中后一个工作时段的开始时刻,作为第二临时到期时刻;
如果所述第一临时到期时刻在所述临时到期日的一个工作时段之中,则将所述第一临时到期时刻作为第二临时到期时刻。
假设临时到期日即10月8日中工作时段只有一个,为13:00~17:00,显然9点30分在该工作时段之前,故将该工作时段中的13:00作为第二临时到期时刻。
S43:根据所述非整日时长、及所述第二临时到期时刻与其所在工作时段的结束时刻的差值,获得所述任务到期时间。具体可包括以下几个步骤:
S431:选取所述第二临时到期时刻所在的工作时段作为当前工作时段。
S432:通过计算获得所述第二临时到期时刻与所述当前工作时段的结束时刻的差值。
S433:判断所述差值是否大于等于所述非整日时长,
若是,则对所述第二临时到期时刻与所述非整日时长进行相加处理,获得任务到期时刻,并根据所述临时到期日及所述任务到期时刻获得任务到期时间,退出S4;
若否,则在所述非整日时长中减去所述差值并将结果作为新的非整日时长,同时选取所述当前工作时段的下一工作时段作为新的当前工作时段,并将所述新的当前工作时段的开始时刻作为新的第二临时到期时刻、将所述新的当前工作时段所在的日期作为新的临时到期日,继续进入S432。
结合实例:
执行S431,根据S42知第二临时到期时刻为13:00,故将10月8日中的13:00~17:00作为当前工作时段。
执行S432,第二临时到期时刻为13:00,其与17:00的差值为4小时。
执行S433,因为任务期限中的非整日时长为6小时,大于4小时,故得到新的非整日时长为6-4=2小时。同时,将13:00~17:00的下一个工作时段作为新的当前工作时段。因为10月8日只有13:00~17:00这一个工作时段,所以下一工作时段将是10月9日中的第一个工作时段。假设10月9日的工作时段为8:00~17:00,则将8:00作为新的第二临时到期时刻,将10月9日作为新的临时到期日。需要说明的是:当前工作时段的下一工作时段到底是哪一天的哪一个工作时段,需要视具体情况而定,本例只是描述了其中一种情况。又例如,若10月9日巧好为休息日,则应继续向后查找,直到找到一个工作日为止,然后将该工作日的第一个工作时段作为所述的下一工作时段,并将该工作日作为新的临时到期日;还例如,若10月8日中在13:00~17:00后还有一个工作时段20:00~22:00,则当前工作时段的下一工作时段即20:00~22:00。
继续执行S432,算得8:00与当前工作时段结束时刻即17:00的差值为9小时;
继续执行S433,因为差值9小时大于非整日时长2小时,所以任务到期时刻即8:00+2小时,即10:00。同时因为临时到期日为10月9日,所以可得到最终的任务到期时间是10月9日10:00,退出S4。
S5:根据所述任务到期时间进行任务到期提醒。所述提醒可以是在到期时发出,也可以是在到期前发出。而提醒的方式可以是声、光、电等提醒信号,也可以是通过拔打电话、发送短信、发送电子邮件、广播等形式进行的提醒。
实施例二
图4是本发明实施例二装置的示意图,所述装置包括:
工作日历数据获取单元401,用于获取工作日历数据,所述工作日历数据包含多个连续的日期,每个所述日期包含一个作息状态,所述作息状态包括工作日类型和休息日类型,当所述日期的作息状态为工作日类型时所述日期还包含一个或多个工作时段;
任务信息获取单元402,用于获取任务派发时间及任务办理时限,所述任务派发时间包括派发日和派发时刻,所述任务办理时限包括整日数和非整日时长;
临时到期日获取单元403,用于根据所述派发日和所述整日数并通过排除所述派发日之后的指定数量的所述休息日类型的日期,获得临时到期日;
任务到期时间获取单元404,用于根据所述派发时刻、所述非整日时长、及所述临时到期日包含的工作时段,获得所述任务到期时间;
提醒单元405,用于根据所述任务到期时间进行任务到期提醒。
优选的,将所述工作日历数据中连续的作息状态相同的日期组成一个日期段,以使所述工作日历数据被划分为一个或多个的作息日期段,所述作息日期段具有与其内日期作息状态相同的作息状态;所述临时到期日获取单元403具体包括:
第一初始化子单元,用于将所述派发日作为起点日,将所述整日数作为累加天数;
起点日修正子单元,用于判断所述起点日所在作息日期段的作息类型是否为休息日类型,若是,则将所述起点日所在作息日期段之后的第一个作息状态为工作日类型的日期作为新的起点日;
临时到期日计算子单元,用于将所述起点日与所述累加天数相加的结果作为临时到期日;
累加天数调整子单元,用于获得在所述起点日所在作息日期段之后、且在所述临时到期日所在作息日期段之前的所有作息日期段并组成作息日期段集合,获得所述作息日期段集合中所述休息日类型的日期的总天数并将所述总天数作为新的累加天数;
临时到期日获取子单元,用于判断所述累加天数是否大于零;若是,则将所述临时到期日作为新的起点日,继续执行步骤ii);若否,则判断所述临时到期日所在作息日期段的作息类型是否为休息日类型,若否则获得所述临时到期日,若是则获得所述临时到期日所在作息日期段之后的第一个作息状态为工作日类型的日期作为所述临时到期日。
优选的,所述任务到期时间获取单元404具体包括:
第二初始化子单元,用于将所述临时到期日中与所述派发时刻相同的时刻作为第一临时到期时刻;
第二临时到期时刻获取子单元,用于获得所述第一临时到期时刻与所述临时到期日包含的工作时段在时间上的位置关系,根据所述在时间上的位置关系获得第二临时到期时刻;
任务到期时间获取子单元,用于根据所述非整日时长、及所述第二临时到期时刻与其所在工作时段的结束时刻的差值,获得所述任务到期时间。
优选的,所述第二临时到期时刻获取子单元具体包括:
第二临时到期时刻第一获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的所有工作时段之前,若是则将所述临时到期日的所有工作时段中的最早时刻,作为第二临时到期时刻;
第二临时到期时刻第二获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的所有工作时段之后,若是则将所述临时到期日的所有工作时段中的最晚时刻,作为第二临时到期时刻;
第二临时到期时刻第三获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的相邻的两个工作时段之间,若是则将所述相邻的两个工作时段中后一个工作时段的开始时刻,作为第二临时到期时刻;
第二临时到期时刻第四获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的一个工作时段之中,若是则将所述第一临时到期时刻作为第二临时到期时刻。
优选的,所述任务到期时间获取子单元具体包括:
第三初始化子单元,用于选取所述第二临时到期时刻所在的工作时段作为当前工作时段;
差值计算子单元,用于通过计算获得所述第二临时到期时刻与所述当前工作时段的结束时刻的差值;
循环判断子单元,用于判断所述差值是否大于等于所述非整日时长,
若是,则对所述第二临时到期时刻与所述非整日时长进行相加处理,获得任务到期时刻,并根据所述临时到期日及所述任务到期时刻获得任务到期时间;
若否,则在所述非整日时长中减去所述差值并将结果作为新的非整日时长,同时选取所述当前工作时段的下一工作时段作为新的当前工作时段,并将所述新的当前工作时段的开始时刻作为新的第二临时到期时刻、将所述新的当前工作时段所在的日期作为新的临时到期日,调用所述差值计算子单元。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种任务到期提醒的方法,其特征在于,包括:
获取工作日历数据,所述工作日历数据包含多个连续的日期,每个所述日期包含一个作息状态,所述作息状态包括工作日类型和休息日类型,当所述日期的作息状态为工作日类型时所述日期还包含一个或多个工作时段;
获取任务派发时间及任务办理时限,所述任务派发时间包括派发日和派发时刻,所述任务办理时限包括整日数和非整日时长;
根据所述派发日和所述整日数并通过排除所述派发日之后的指定数量的所述休息日类型的日期,获得临时到期日;
根据所述派发时刻、所述非整日时长、及所述临时到期日包含的工作时段,获得所述任务到期时间;
根据所述任务到期时间进行任务到期提醒,
其中,将所述工作日历数据中连续的作息状态相同的日期组成一个日期段,以使所述工作日历数据被划分为一个或多个的作息日期段,所述作息日期段具有与其内日期作息状态相同的作息状态;所述作息日期段对应内存中的一个内存对象,所述内存对象包含一个所述作息日期段及该作息日期段的天数和作息状态;
根据所述派发日和所述整日数并通过排除所述派发日之后的指定数量的所述休息日类型的日期,获得临时到期日的步骤,具体包括:
i)将所述派发日作为起点日,将所述整日数作为累加天数;
ii)判断所述起点日所在作息日期段的作息类型是否为休息日类型,若是,则将所述起点日所在作息日期段之后的第一个作息状态为工作日类型的日期作为新的起点日;
iii)将所述起点日与所述累加天数相加的结果作为临时到期日;
iv)获得在所述起点日所在作息日期段之后、且在所述临时到期日所在作息日期段之前的所有作息日期段并组成作息日期段集合,获得所述作息日期段集合中所述休息日类型的日期的总天数并将所述总天数作为新的累加天数;
v)判断所述累加天数是否大于零;
若是,则将所述临时到期日作为新的起点日,继续执行步骤ii);
若否,则判断所述临时到期日所在作息日期段的作息类型是否为休息日类型,若否则获得所述临时到期日,若是则获得所述临时到期日所在作息日期段之后的第一个作息状态为工作日类型的日期作为所述临时到期日。
2.根据权利要求1所述的方法,其特征在于,根据所述派发时刻、所述非整日时长、及所述临时到期日对应的工作时段,获得所述任务到期时间的步骤,具体包括:
a、将所述临时到期日中与所述派发时刻相同的时刻作为第一临时到期时刻;
b、获得所述第一临时到期时刻与所述临时到期日包含的工作时段在时间上的位置关系,根据所述在时间上的位置关系获得第二临时到期时刻;
c、根据所述非整日时长、及所述第二临时到期时刻与其所在工作时段的结束时刻的差值,获得所述任务到期时间。
3.根据权利要求2所述的方法,其特征在于,步骤b具体包括:
如果所述第一临时到期时刻在所述临时到期日的所有工作时段之前,则将所述临时到期日的所有工作时段中的最早时刻,作为第二临时到期时刻;
如果所述第一临时到期时刻在所述临时到期日的所有工作时段之后,则将所述临时到期日的所有工作时段中的最晚时刻,作为第二临时到期时刻;
如果所述第一临时到期时刻在所述临时到期日的相邻的两个工作时段之间,则将所述相邻的两个工作时段中后一个工作时段的开始时刻,作为第二临时到期时刻;
如果所述第一临时到期时刻在所述临时到期日的一个工作时段之中,则将所述第一临时到期时刻作为第二临时到期时刻。
4.根据权利要求2所述的方法,其特征在于,步骤c具体包括:
c1、选取所述第二临时到期时刻所在的工作时段作为当前工作时段;
c2、通过计算获得所述第二临时到期时刻与所述当前工作时段的结束时刻的差值;
c3、判断所述差值是否大于等于所述非整日时长,
若是,则对所述第二临时到期时刻与所述非整日时长进行相加处理,获得任务到期时刻,并根据所述临时到期日及所述任务到期时刻获得任务到期时间;
若否,则在所述非整日时长中减去所述差值并将结果作为新的非整日时长,同时选取所述当前工作时段的下一工作时段作为新的当前工作时段,并将所述新的当前工作时段的开始时刻作为新的第二临时到期时刻、将所述新的当前工作时段所在的日期作为新的临时到期日,进入步骤c2。
5.一种任务到期提醒的装置,其特征在于,包括:
工作日历数据获取单元,用于获取工作日历数据,所述工作日历数据包含多个连续的日期,每个所述日期包含一个作息状态,所述作息状态包括工作日类型和休息日类型,当所述日期的作息状态为工作日类型时所述日期还包含一个或多个工作时段;
任务信息获取单元,用于获取任务派发时间及任务办理时限,所述任务派发时间包括派发日和派发时刻,所述任务办理时限包括整日数和非整日时长;
临时到期日获取单元,用于根据所述派发日和所述整日数并通过排除所述派发日之后的指定数量的所述休息日类型的日期,获得临时到期日;
任务到期时间获取单元,用于根据所述派发时刻、所述非整日时长、及所述临时到期日包含的工作时段,获得所述任务到期时间;
提醒单元,用于根据所述任务到期时间进行任务到期提醒,
其中,将所述工作日历数据中连续的作息状态相同的日期组成一个日期段,以使所述工作日历数据被划分为一个或多个的作息日期段,所述作息日期段具有与其内日期作息状态相同的作息状态;所述作息日期段对应内存中的一个内存对象,所述内存对象包含一个所述作息日期段及该作息日期段的天数和作息状态;
所述临时到期日获取单元具体包括:
第一初始化子单元,用于将所述派发日作为起点日,将所述整日数作为累加天数;
起点日修正子单元,用于判断所述起点日所在作息日期段的作息类型是否为休息日类型,若是,则将所述起点日所在作息日期段之后的第一个作息状态为工作日类型的日期作为新的起点日;
临时到期日计算子单元,用于将所述起点日与所述累加天数相加的结果作为临时到期日;
累加天数调整子单元,用于获得在所述起点日所在作息日期段之后、且在所述临时到期日所在作息日期段之前的所有作息日期段并组成作息日期段集合,获得所述作息日期段集合中所述休息日类型的日期的总天数并将所述总天数作为新的累加天数;
临时到期日获取子单元,用于判断所述累加天数是否大于零;若是,则将所述临时到期日作为新的起点日,继续执行步骤ii);若否,则判断所述临时到期日所在作息日期段的作息类型是否为休息日类型,若否则获得所述临时到期日,若是则获得所述临时到期日所在作息日期段之后的第一个作息状态为工作日类型的日期作为所述临时到期日。
6.根据权利要求5所述的装置,其特征在于,所述任务到期时间获取单元具体包括:
第二初始化子单元,用于将所述临时到期日中与所述派发时刻相同的时刻作为第一临时到期时刻;
第二临时到期时刻获取子单元,用于获得所述第一临时到期时刻与所述临时到期日包含的工作时段在时间上的位置关系,根据所述在时间上的位置关系获得第二临时到期时刻;
任务到期时间获取子单元,用于根据所述非整日时长、及所述第二临时到期时刻与其所在工作时段的结束时刻的差值,获得所述任务到期时间。
7.根据权利要求6所述的装置,其特征在于,所述第二临时到期时刻获取子单元具体包括:
第二临时到期时刻第一获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的所有工作时段之前,若是则将所述临时到期日的所有工作时段中的最早时刻,作为第二临时到期时刻;
第二临时到期时刻第二获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的所有工作时段之后,若是则将所述临时到期日的所有工作时段中的最晚时刻,作为第二临时到期时刻;
第二临时到期时刻第三获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的相邻的两个工作时段之间,若是则将所述相邻的两个工作时段中后一个工作时段的开始时刻,作为第二临时到期时刻;
第二临时到期时刻第四获取子单元,用于判断所述第一临时到期时刻是否在所述临时到期日的一个工作时段之中,若是则将所述第一临时到期时刻作为第二临时到期时刻。
8.根据权利要求6所述的装置,其特征在于,所述任务到期时间获取子单元具体包括:
第三初始化子单元,用于选取所述第二临时到期时刻所在的工作时段作为当前工作时段;
差值计算子单元,用于通过计算获得所述第二临时到期时刻与所述当前工作时段的结束时刻的差值;
循环判断子单元,用于判断所述差值是否大于等于所述非整日时长,
若是,则对所述第二临时到期时刻与所述非整日时长进行相加处理,获得任务到期时刻,并根据所述临时到期日及所述任务到期时刻获得任务到期时间;
若否,则在所述非整日时长中减去所述差值并将结果作为新的非整日时长,同时选取所述当前工作时段的下一工作时段作为新的当前工作时段,并将所述新的当前工作时段的开始时刻作为新的第二临时到期时刻、将所述新的当前工作时段所在的日期作为新的临时到期日,调用所述差值计算子单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110455893.5A CN102542437B (zh) | 2011-12-30 | 2011-12-30 | 一种任务到期提醒的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110455893.5A CN102542437B (zh) | 2011-12-30 | 2011-12-30 | 一种任务到期提醒的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102542437A CN102542437A (zh) | 2012-07-04 |
CN102542437B true CN102542437B (zh) | 2014-11-26 |
Family
ID=46349277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110455893.5A Expired - Fee Related CN102542437B (zh) | 2011-12-30 | 2011-12-30 | 一种任务到期提醒的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102542437B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309736A (zh) * | 2013-07-01 | 2013-09-18 | 蓝贤秦 | 定时器设置及执行方法 |
CN103745342A (zh) * | 2014-01-23 | 2014-04-23 | 惠州Tcl移动通信有限公司 | 提前提醒过期商品的方法和电子终端 |
CN106855969B (zh) * | 2015-12-08 | 2021-06-11 | 阿里巴巴集团控股有限公司 | 一种确定超时时间的方法及系统 |
CN107784483A (zh) * | 2017-09-30 | 2018-03-09 | 中国平安人寿保险股份有限公司 | 任务执行控制方法及服务器 |
CN110910083A (zh) * | 2018-09-18 | 2020-03-24 | 北大方正集团有限公司 | 工时统计方法、装置、设备及存储介质 |
CN115907710A (zh) * | 2023-01-06 | 2023-04-04 | 浪潮通信信息系统有限公司 | 业务处理时限的确定方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815499A (zh) * | 2005-02-04 | 2006-08-09 | 台湾积体电路制造股份有限公司 | 工作排程管理系统与方法 |
CN101276445A (zh) * | 2008-05-16 | 2008-10-01 | 金蝶软件(中国)有限公司 | 快速定位工厂日历的方法和系统 |
CN101645149A (zh) * | 2008-08-04 | 2010-02-10 | 株式会社川崎造船 | 船舶生产管理系统 |
CN102184483A (zh) * | 2011-05-16 | 2011-09-14 | 浪潮集团山东通用软件有限公司 | 一种灵活可扩展的基于自定义工作日历的工作流调度框架 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001209738A (ja) * | 2000-01-26 | 2001-08-03 | Hitachi Ltd | ワークフローシステムにおける処理時間表示方法および処理期限設定方法 |
-
2011
- 2011-12-30 CN CN201110455893.5A patent/CN102542437B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815499A (zh) * | 2005-02-04 | 2006-08-09 | 台湾积体电路制造股份有限公司 | 工作排程管理系统与方法 |
CN101276445A (zh) * | 2008-05-16 | 2008-10-01 | 金蝶软件(中国)有限公司 | 快速定位工厂日历的方法和系统 |
CN101645149A (zh) * | 2008-08-04 | 2010-02-10 | 株式会社川崎造船 | 船舶生产管理系统 |
CN102184483A (zh) * | 2011-05-16 | 2011-09-14 | 浪潮集团山东通用软件有限公司 | 一种灵活可扩展的基于自定义工作日历的工作流调度框架 |
Also Published As
Publication number | Publication date |
---|---|
CN102542437A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102542437B (zh) | 一种任务到期提醒的方法及装置 | |
CN111221726A (zh) | 一种测试数据生成方法、装置、存储介质和智能设备 | |
US20090036163A1 (en) | Contact expiration management | |
CN106910044A (zh) | 项目进度提醒方法和系统 | |
CN110309975A (zh) | 项目研发过程管理方法、装置、设备及计算机存储介质 | |
US20190156385A1 (en) | System and method for timekeeping entry and work in progress reports | |
CN114416703A (zh) | 数据完整性自动监控方法、装置、设备及介质 | |
CN111417969A (zh) | 标记会议邀请以自动创建任务 | |
US20200058078A1 (en) | Expense calculation based on event data | |
CN112765135A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
KR101109292B1 (ko) | 액티브 어젠더 | |
CN116822924A (zh) | 工作流配置方法、装置、设备及存储介质 | |
CN111754204A (zh) | 用于rpa流程执行端的流程编组方法、装置、设备及介质 | |
CN111951078B (zh) | 使用权资产计量方法及装置 | |
Mohamed et al. | Quantifying the time and cost associated with the request for information (RFI) process in construction | |
CN113240384A (zh) | 一种薪酬的统计核算方法及装置 | |
US10810640B1 (en) | Automated time tracking of events in a calendar and use of the same to generate invoices | |
CN110502370A (zh) | 一种自动清理备份对象的方法 | |
CN109801047A (zh) | 金融理财产品的提醒信息生成方法及装置 | |
CN101459745B (zh) | 计费校正方法及校正装置 | |
CN114666326B (zh) | 数据同步方法、装置、电子设备及计算机存储介质 | |
CN117391418B (zh) | 一种基于流程模型的流程配置方法及系统、存储介质 | |
CN113035367B (zh) | 传染病群体传染趋势预测方法、装置、设备及存储介质 | |
CN111507522A (zh) | 电信账期收入预测方法、装置、电子设备及存储介质 | |
CN115827738A (zh) | 一种利用redis提高定时任务执行效率的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141126 Termination date: 20181230 |
|
CF01 | Termination of patent right due to non-payment of annual fee |