日历生成装置和日历生成方法

摘要
本发明提供一种日历生成装置和一种日历生成方法。其中,日历生成装置包括:规则设置模块,设置用于生成日历的规则;指令生成模块,根据规则,生成用于生成日历的指令;日历生成模块,执行指令,以生成日历。通过本发明,可以根据业务需要,制定相应的日历规则,即可自动生成日历。
说明

日历生成装置和日历生成方法

技术领域

[0001] 本发明涉及计算机技术领域,具体而言,涉及一种日历生成装置和一种日历生成方法。

背景技术

[0002] 目前,日历的形式多种多样,相应地,日历的制作规则越来越多样和复杂。

[0003] 例如,工厂日历也称作工作日历,是用于企业资源规划(ERP)系统的特殊形式的日历,它是由普通日历除去每周休息日,节假日,停工和其他不生产的日期形成的,是 MRP (Material Requirement Planning 物料需求计划)展开依据之一。

[0004] 工厂日历在ERP系统中通常采用系统运行前按照实际情况预先设置的方式生成, 在这种情况下一方面ERP系统需要针对不同行业预先设置多套工厂日历方案,这种情况下一旦客户方的工厂日历不能满足实际系统运行时需要时,ERP支持人员需要按照客户要求进行工厂日历的调整;另一方面对一些跨行业的企业也不便于按照行业特点灵活自行定制工厂日历。

[0005] 因此,需要一种新的制定日历的方法,能够灵活地适应不同类型日历的需要,以及不同企业对日历规则的需要,灵活地生成日历。

发明内容

[0006] 本发明所要解决的技术问题在于,提供一种新的制定日历的装置和方法,用于计算机系统,能够灵活地适应不同类型日历的需要,以及不同企业对日历规则的需要,灵活地生成日历。

[0007] 有鉴于此,本发明提供一种日历生成装置,用于计算机系统,包括:规则设置模块, 设置用于生成日历的规则;指令生成模块,根据规则,生成用于生成日历的指令;日历生成模块,执行指令,以生成日历。通过该技术方案,可以根据业务需要,制定相应的日历规则, 即可自动生成日历。

[0008] 在上述技术方案,优选地,规则设置模块还为规则制定优先级;指令生成模块根据优先级的高低,设置指令的执行顺序;日历生成模块按照执行顺序执行指令,以生成日历。 通过该技术方案,当前存在互相冲突的规则时,可以根据规则重要性设置优先级的高低,且优先级较高的规则生成的指令在后执行,可更新部分已生成的日历,保证生成日历的准确性。

[0009] 在上述技术方案,优选地,还包括:时间设置模块,设置日历的起始时间和结束时间。

[0010] 在上述技术方案,优选地,规则的类型包括:周类型,将每周的一天或几天设置为工作日或非工作日;月类型,将每月的一天或几天设置为工作日或非工作日;年类型,将每年的一个月或几个月设置为工作日或非工作日;固定日期类型,将预定的一天或几天设置为工作日或非工作日。实际上,具体的规则可以根据业务需要灵活定制,并不限于以上列举的几种。

[0011] 本发明还提供一种日历生成方法,用于计算机系统,包括:步骤202,设置用于生成日历的规则;步骤204,根据规则,生成用于生成日历的指令;步骤206,执行指令,以生成日历。通过该技术方案,可以根据业务需要,制定相应的日历规则,即可自动生成日历。

[0012] 在上述技术方案,优选地,在步骤202中,还为规则制定优先级;在步骤204中,还根据优先级的高低,设置指令的执行顺序;在步骤206中,按照执行顺序执行指令,以生成日历。通过该技术方案,当前存在互相冲突的规则时,可以根据规则重要性设置优先级的高低,且优先级较高的规则生成的指令在后执行,可更新部分已生成的日历,保证生成日历的准确性。

[0013] 在上述技术方案,优选地,在步骤202中,还设置日历的起始时间和结束时间。

[0014] 在上述技术方案,优选地,规则的类型包括:周类型,将每周的一天或几天设置为工作日或非工作日;月类型,将每月的一天或几天设置为工作日或非工作日;年类型,将每年的一个月或几个月设置为工作日或非工作日;固定日期类型,将预定的一天或几天设置为工作日或非工作日。实际上,具体的规则可以根据业务需要灵活定制,并不限于以上列举的几种。

[0015] 通过以上技术方案,可以实现一种日历生成装置和一种日历生成方法,能够灵活地适应不同类型日历的需要,以及不同企业对日历规则的需要,灵活地生成日历。

附图说明

[0016] 图1是根据本发明的一个实施例的日历生成装置的框图;

[0017] 图2是根据本发明的一个实施例的日历生成方法的流程图;

[0018] 图3是根据本发明的一个实施例的日历生成方法的工作示意图。



具体实施方式

[0019] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。

[0020] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。

[0021] 图1是根据本发明的一个实施例的日历生成装置的框图。

[0022] 如图1所示,本发明提供一种日历生成装置100,包括:规则设置模块102,设置用于生成日历的规则;指令生成模块104,根据规则,生成用于生成日历的指令;日历生成模块106,执行指令,以生成日历。通过该技术方案,可以根据业务需要,制定相应的日历规则, 即可自动生成日历。

[0023] 在上述技术方案,规则设置模块102还为规则制定优先级;指令生成模块104根据优先级的高低,设置指令的执行顺序;日历生成模块106按照执行顺序执行指令,以生成日历。通过该技术方案,当前存在互相冲突的规则时,可以根据规则重要性设置优先级的高低,且优先级较高的规则生成的指令在后执行,可更新部分已生成的日历,保证生成日历的准确性。[0024] 在上述技术方案,还包括:时间设置模块108,设置日历的起始时间和结束时间。

[0025] 在上述技术方案,规则的类型包括:周类型,将每周的一天或几天设置为工作日或非工作日;月类型,将每月的一天或几天设置为工作日或非工作日;年类型,将每年的一个月或几个月设置为工作日或非工作日;固定日期类型,将预定的一天或几天设置为工作日或非工作日。实际上,具体的规则可以根据业务需要灵活定制,并不限于以上列举的几种。

[0026] 图2是根据本发明的一个实施例的日历生成方法的流程图。

[0027] 如图2所示,本发明还提供一种日历生成方法,包括:步骤202,设置用于生成日历的规则;步骤204,根据规则,生成用于生成日历的指令;步骤206,执行指令,以生成日历。 通过该技术方案,可以根据业务需要,制定相应的日历规则,即可自动生成日历。

[0028] 在上述技术方案,在步骤202中,还为规则制定优先级;在步骤204中,还根据优先级的高低,设置指令的执行顺序;在步骤206中,按照执行顺序执行指令,以生成日历。通过该技术方案,当前存在互相冲突的规则时,可以根据规则重要性设置优先级的高低,且优先级较高的规则生成的指令在后执行,可更新部分已生成的日历,保证生成日历的准确性。

[0029] 在上述技术方案,在步骤202中,还设置日历的起始时间和结束时间。

[0030] 在上述技术方案,规则的类型包括:周类型,将每周的一天或几天设置为工作日或非工作日;月类型,将每月的一天或几天设置为工作日或非工作日;年类型,将每年的一个月或几个月设置为工作日或非工作日;固定日期类型,将预定的一天或几天设置为工作日或非工作日。实际上,具体的规则可以根据业务需要灵活定制,并不限于以上列举的几种。

[0031] 以下结合图3详细解释根据本发明实施例的日历生成方法的流程。

[0032] 根据本发明实施例的日历生成方法,首先需要制定生成日历的规则,详细如下。

[0033] 制定规则的核心特征为:

[0034] 工作日类型:包括年,月,周,固定日期,具体表述如下表:

[0035] 类型为周的情况:

[0036]

类型 是否工作曰 周 优先级周 是/否 (周一-周天) 0

[0037] 可以选择周一到周天的其中一个选项为工作日,这样在这一条规则在生成具体工程日历时会针对该选项比如周一的话都设置成工作日。

[0038] 类型为月的情况:

[0039]

类型 是否工作曰 日(某日) 优先级月 是/否 日历月中的某天 0

[0040] 可以选择每个月的固定第几天为工作日,在生成工厂日历的时候会根据该条规则设置每个日历月中的该天为工作日或者相反。

[0041] 类型为年的情况:

[0042]

Figure CN102306152AD00061

[0043] 可以固定选择某个月全部作为工作日,在生成工厂日历时该月根据规则全部生成工作日或者非工作日。

[0044] 类型为固定日期的情况:

[0045]

Figure CN102306152AD00062

[0046] 可以设置具体的某个日期比如五一,十一为工作日,生成工厂日历时会依据该规则对设置的具体日期生成工厂日历。

[0047] 优先级问题:对于多条规则设置有冲突的,比如设置了周规则的周一为工作日,当某个节假日比如五一正好也是周一时需要设置成非工作日,这样的情况下需要给定规则设置优先级,一般日期跨度越小优先级越高,固定日期>周>月>年,用户也可以自行设置。

[0048] 规则设置的样式例子如下:

[0049]

Figure CN102306152AD00063

[0050] 如上面规则样例所示,2011-5-1作为固定日期被设置非工作日,

[0051] 同时2011-5-1正好也是周一,5月1日也符合月规则中月第一天为工作日的规则, 最后会按照优先级生成,固定日期优先级最高,如下表:2011-5-1日最终生成为非工作日。

[0052]

Figure CN102306152AD00064

[0053] 以下说明了工厂日历与工厂日历规则在物理结构上的关联定义。

[0054] 根据工厂日历规则的特征,以及生成工厂日历的结果,定义工厂日历和工厂日历规则的物理结果:[0055] 工作日规则物理结构图:

Figure CN102306152AD00071

[0056]

[0057]

[0058] 工厂日历引用工作日规则:

[0059]

Figure CN102306152AD00072

[0060] 根据以上两表,保证每个工厂日历规则的创建和工厂日历的生成都按照固定的轨迹处理,不同的用户可以按照自己的规则通过工作日规则编码来区分各自的工厂日历。[0061] 当用户定义了工厂日历规则后,需要日历生成方法通过编译算法生成工厂日历, 具体可以如下。

[0062] 编译算法核心步骤如下:

[0063] A、根据用户定义规则的开始年度和结束年度,将开始年度和结束年度之间的所有日期按照数据记录的形式全部存储到工厂日历中。默认【是否工作日为】否,示例如下:

[0064]

Figure CN102306152AD00081

[0065] B、将工作日规则按照优先级排序。

[0066] 工作日规则按照优先级排序后,按照常规一般先更新年规则,然后更新月规则,其后更新周规则,然后更新固定日期规则:

[0067] 年规则:规定了一年中那些月的所有日期是工作日或者不是工作日。

[0068] 生成的SQL为=UPDATE工厂日期SET是否工作日=设置值where工作日规则=定义的规则and日期=(设定的月中每一天)。

[0069] 月规则:规定了月中的某天时工作日或者非工作日。

[0070] 生成的SQL为=UPDATE工厂日期SET是否工作日=设置值where工作日规则=定义的规则and日期=(设定的月的天数)。

[0071] 周规则:规定了按星期,那一天是工作日或者非工作日。

[0072] 生成的SQL为=UPDATE工厂日期SET是否工作日=设置值where工作日规则=定义的规则and日期=(设定的周的天数)。

[0073] 固定日期规则:规定了那些日期是工作日或者非工作日。

[0074] 生成的SQL为=UPDATE工厂日期SET是否工作日=设置值where工作日规则=定义的规则and日期=(设定的日期范围)。

[0075] 当各个具体规则之间有冲突时,保证优先级最高的规则最后更新数据,也就是说最后执行的规则对最终工作日结果影响最大。

[0076] 生成结果的大致样例如下:

[0077]

Figure CN102306152AD00082
Figure CN102306152AD00091

[0078] C、设置工厂日历规则的是否编译为是。

[0079] 按照以上设置进行的日历生成可以如图3所示。

[0080] 步骤302,获取工作日历起始结束年度,此时,规则已设置如下:

[0081]

Figure CN102306152AD00092

[0082] 步骤304,计算合计的生成天数,并且生成工厂日历,先设置全部为非工作日,具体如下:

[0083]

Figure CN102306152AD00093

[0084] 步骤306,获取工作日规则按照优先级更新;[0085] 步骤308,先按照年规则更新对应的日历,具体结果如下:

[0086]

Figure CN102306152AD00101

[0087] 步骤310,按照月规则更新对应的日历,具体结果如下:

[0088]

Figure CN102306152AD00102

[0089]

[0090] 步骤312,按照周规则更新对应的日历,具体结果如下:[0091]

Figure CN102306152AD00111

[0092] 步骤314,按照固定日期规则更新对应的日历,具体结果如下:

[0093]

Figure CN102306152AD00112

[0094] 根据以上技术方案,可以实现一种日历生成装置和一种日历生成方法,使用户可以随时根据实际生产情况,调整工厂日历,以保证生产任务计划的准确性,实现了通过提供定义工厂日历的规则,通过用户定义的规则来生成工厂日历,这方便了依赖工厂日历的实现应用功能的灵活度,提高了 ERP产品的业务匹配度,有助于系统实施效率和客户体验的改进。

[0095] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值