一种快速判断环卫排班任务中的时间是否冲突的方法

文档序号:8299138阅读:1147来源:国知局
一种快速判断环卫排班任务中的时间是否冲突的方法
【技术领域】
[0001]本发明涉及环卫行业技术领域,尤其涉及一种快速判断环卫排班任务中的时间是否冲突的方法。
【背景技术】
[0002]目前随着计算机信息的发展,环卫行业方面的软件发展迅速,很多环卫企业已经开始利用现代化的计算机工具软件进行环卫日常工作的排班,即采用电子排班,但是在电子排班中,同一人员或车辆在同一时间只能执行同一任务,鉴于时间冲突判断复杂,目前大部分软件都采用人工方式进行判断,因此如何快速的对多日期下同时排班下的时间冲突判断进行成为一种需要。

【发明内容】

[0003]本发明要解决的技术问题,在于提供一种快速判断环卫排班任务中的时间是否冲突的方法,本发明能有效解决环卫排班任务中的时间冲突的问题。
[0004]本发明是这样实现的:一种快速判断环卫排班任务中的时间是否冲突的方法,所述方法为:在进行电子排班时,将排班数据按照一设定的数据存储方式存入数据库,数据库采用关系数据库,在进行一条新任务计划进行安排时,根据设定的数据时间冲突判断规则进行判断,如果符合冲突,则进行提示,并列出冲突提醒信息,如果不符合冲突,则将新任务的排班数据按照设定的数据插入方式插入数据库,并列出保存信息。
[0005]进一步地,所述数据存储方式具体为:设定两个任务计划表,表名分别为FutureTask和HistoryTask,FutureTask用来存储未开始的任务计划,HistoryTask用来存储历史的任务计划;两个任务计划表中需要保存存储的关键数据包括环卫车辆唯一标记VID、驾驶员唯一标记DriverlD、任务计划内容Content、任务计划开始时间PStimeValue以及任务计划结束时间PEtimeValue ;单条关键数据的存储数据格式为{VID,DriverID,Content,PStimeValue, PEtimeValue};环卫车辆唯一标记可采用车辆编号或车牌号;可采用数字或者字母或者数字字母混杂方式;驾驶员唯一标记可采用数字+字母混杂方式进行唯一标记;任务计划内容指具体需要执行的任务内容,此处采用文字格式方式进行存储;任务计划开始时间和任务计划结束时间需要包含年月日时分信息,进行数据存储时将年月日时分进行换算;数据库负责存储已经排好的班次,按照数值型方式进行存储,且同一车辆同一日期下同一连续时间段作为一条记录进行存储;FutureTask表只存储未来的计划数据;数据库中定时对任务计划进行判断,如果是当前系统时间过了任务计划的结束时间,则将任务计划数据记录转移到历史任务计划数据表HistoryTask中进行存储。
[0006]进一步地,设定冲突判断的输入条件为车辆唯一标记VID或驾驶员唯一标记DriverID ;所述数据时间冲突判断规则具体为:查询FutureTask数据库表中指定车辆唯一标记VID的全部计划数据,并按照任务计划开始时间进行升序排列,设查询的数据条数为M条,其中总数M条中的第η条记录数据Recordn的数据内容为{VID,DriverlD, Content,PStimeValue,PEtimeValue};通过对半查找算法,查找记录数据Recordn,使得条件{Recordn (PEtimeValue)〈PStimeValue}且 Recordn+1 (PStimeValue) >PEtimeValue}成立,如果记录Recordn存在,则表示数据不冲突,如果数据不存在,则表示数据冲突,判断结束;或者,查询FutureTask数据库表中指定驾驶员唯一标记DriverID的全部计划数据,并按照任务计划开始时间进行升序排列,设查询的数据条数为M条,其中总数M条中的第η条记录数据Recordn 的数据内容为{VID,DriverlD,Content,PStimeValue,PEtimeValue};通过对半查找算法,查找记录数据 Recordn,使得条件{Recordn (PEtimeValue)〈PStimeValue}且 Recordn+1 (PStimeValue) >PEtimeValue}成立,如果记录Recordn存在,则表示数据不冲突,如果数据不存在,则表示数据冲突,判断结束。
[0007]进一步地,所述数据插入方式具体为:设FutureTask数据库表中已经存在的分配到某一车辆/驾驶员的未执行的任务计划记录为M条,且Recordn (PStimeValue)代表第N条记录的任务计划开始时间,Recordn (PEtimeValue)代表第N条记录的任务计划结束时间,贝1J新排班记录Recordx加入时,如果排班时间没有冲突,且{Recordx (PStimeValue) >Recordn (PEtimeValue)且 Recordx (PEtimeValue)〈Recordn+1 (PStimeValue)}为真,则将记录插入到Recordn和Recordn+Ι记录中间,使数据库中记录始终按照Recordl (PStimeValue)<Record2 (PStimeValue)<...〈Recordn(PStimeValue)〈Recordx(PStimeValue)〈Recordn+I (PStimeValue) <...〈RecordM(PStimeValue)进行排列;所述排班时间是否冲突判断的条件是否为真,如果为真,则冲突,如果不为真,则为不冲突;所述排班时间是否冲突判断的条件为:设定的任务计划的时间段与现有计划记录的时间段是否有交集;如果是撤销或删除之前设定的排班计划,则需要将数据从FutureTask表删除后,将记录转移到HistoryTask表中,数据库的表记录顺序不需要进行相应的重新调整;如果是修改设定的排班计划时间,则需要重新判断时间是否冲突,再根据是否冲突的结果对数据库的表记录顺序进行相应的重新调整。
[0008]本发明具有如下优点:本发明提供一种快速判断环卫排班任务中的时间是否冲突的方法,由于车辆/人员在同一日期同一时刻只能执行单一任务,而软件系统采用此方法进行冲突判断后进行电子排班时,可以进行批量排班,节省任务安排速度,尤其适用于大量车辆/人员在长时间内的任务排班情况。通过该方法,可有效提高多日期多工作时间段下的电子排班的时间冲突判断效率。
【附图说明】
[0009]图1为本发明方法流程示意图。
【具体实施方式】
[0010]请参阅图1所示,本发明的一种快速判断环卫排班任务中的时间是否冲突的方法,所述方法为:在进行电子排班时,将排班数据按照一设定的数据存储方式存入数据库,数据库采用关系数据库,在进行一条新任务计划进行安排时,根据设定的数据时间冲突判断规则进行判断,如果符合冲突,则进行提示,并列出冲突提醒信息,如果不符合冲突,则将新任务的排班数据按照设定的数据插入方式插入数据库,并列出保存信息。
[0011]所述数据存储方式具体为:设定两个任务计划表,表名分别为FutureTask和HistoryTask,FutureTask用来存储未开始的任务计划,HistoryTask用来存储历史的任务计划;两个任务计划表中需要保存存储的关键数据包括环卫车辆唯一标记VID、驾驶员唯一标记DriverlD、任务计划内容Content、任务计划开始时间PStimeValue以及任务计划结束时间PEtimeValue ;单条关键数据的存储数据格式为{VID,DriverlD、Content,PStimeValue, PEtimeValue};环卫车辆唯一标记可采用车辆编号或车牌号;可唯一标记车辆信息的数据,可采用数字或者字母或者数字字母混杂方式;驾驶员唯一标记可采用数字+字母混杂方式进行唯一标记;任务计划内容指具体需要执行的任务内容,此处采用文字格式方式进行存储;任务计划开始时间和任务计划结束时间需要包含年月日时分信息,进行数据存储时将年月日时分进行换算;如2014年11月01日8:00需要换算成201411010800。数据库负责存储已经排好的班次,按照数值型方式进行存储,且同一车辆同一日期下同一连续时间段作为一条记录进行存储;假设排班的起始/结束时间为2014年11月01日8:00至2014年11月01日10:30,则数据库中存储的PStimeValue值为201411010800, PEtimeValue 的值为 201411011030。FutureTask 表只存储未来的计划数据(即任务计划开始时间大于当前系统时间);数据库中定时对任务计划进行判断,如果是当前系统时间过了任务计划的结束时间,则将任务计划数据记录转移到历史任务计划数据表HistoryTask中进行存储。
[0012]设定冲突判断的输入条件为车辆唯一标记VID或驾驶员唯一标记DriverID ;其中,任务计划开始时间PStimeValue、任务计划结束时间PEtimeValue,且PStimeValue和PEtimeValue已经按照数据存储规则进行转化。所述数据时间冲突判断规则具体为:查询FutureTask数据库表中指定车辆唯一标记VID的全部计划数据,并按照任务计划开始时间进行升序排列,设查询的数据条数为M条,其中总数M条中的第η条记录数据Recordn的数据内容为{VID,DriverlD,Content, PStimeValue, PEtim
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1