System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及值班人员排班的方法。
技术介绍
1、在企业、学校、医院或者政府部门等单位中,由于业务上的需要,需要配置值班人员,以此使得单位能够在24小时快速响应一些事务尤其是紧急事务。配置值班人员时,对于大的业务部门而言,每个时间段仅需要配置一个值班人员。而大的业务部门通常又分成若干小部门。考虑到值班人员在所配置的时间段内需要及时在场或在线,值班人员需要轮岗。另一方面,值班人员也不能由某个小部门专门承担,通常需要由各个小部门分别承担。由此就带来了值班人员安排的平均化,即要求各个部门以及各个值班人员平均化做出安排。现有技术下,值班人员的排班通常通过excel表格等工具进行手工排班,不但工作量大,而且存在不科学和不公平的问题。
技术实现思路
1、本专利技术所要解决的问题:值班人员手工排班存在的不科学和不公平问题。
2、为解决上述问题,本专利技术采用的方案如下:
3、根据本专利技术的一种多部门值班排班的方法,该方法包括如下步骤:
4、步骤s1:获取值班人员集合和分段时间列表;所述值班人员集合是值班人员信息的集合;所述值班人员信息包括值班人员的所属部门;
5、步骤s2:对所述值班人员集合进行分部门平均排序得到值班人员序列;
6、步骤s3:遍历分段时间列表,对所遍历的分段时间按所述值班人员序列的循环顺序配置相应的值班人员,形成值班排班表;
7、所述步骤s2包括如下步骤:
8、步骤s21:根据值班人员的所属部门
9、步骤s22:按照部门值班人员人数自小到大的顺序对所述值班人员分部门集合进行排序得到值班人员分部门序列;
10、步骤s23:统计所述值班人员分部门序列的总值班人数nt,然后按照nt初始化值班人员序列;所初始化的值班人员序列是由nt个表示值班人员为空的序列元素所组成的序列;
11、步骤s24:以所述值班人员分部门序列作为剩余值班人员分部门序列,从所述剩余值班人员分部门序列提取出第一个值班人员分部门信息,然后为所提取出的值班人员分部门信息中的部门值班人员队列的各个值班人员计算各个值班人员的插入序数iinsert(ik),然后再将各个值班人员填入所述值班人员序列中第iinsert(ik)个值班人员为空的序列元素中,直到所述剩余值班人员分部门序列为空;其中,插入序数iinsert(ik)采用如下方式计算:
12、iinsert(ik)=roundup(nr*(1+(ik-1)*nk)/x);其中,
13、ik表示为值班人员在所提取出的值班人员分部门信息中的部门值班人员队列中的序数,取值为1至nk;其中nk为所提取出的值班人员分部门信息中的部门值班人员人数;
14、iinsert(ik)表示为所提取出的值班人员分部门信息中的部门值班人员队列中第ik个值班人员所对应的插入序数;
15、roundup为向上舍入函数;
16、nr为剩余值班人员分部门序列的总值班人数;
17、x为份数值,若nk为1,则x=2,否则为x=nk*nk。
18、进一步,根据本专利技术的多部门值班排班的方法,所述步骤s24包括如下步骤:
19、步骤s241:统计剩余值班人员分部门序列的总值班人数nr,按照nr初始化剩余值班人员序列;所初始化的剩余值班人员序列是由nr个表示值班人员为空的序列元素所组成的序列;
20、步骤s242:从所述剩余值班人员分部门序列提取出第一个值班人员分部门信息,并在所述剩余值班人员分部门序列中删除所提取的值班人员分部门信息;
21、步骤s243:为所提取的值班人员分部门信息中的部门值班人员队列的各个值班人员计算各个值班人员的插入序数iinsert(ik);
22、步骤s244:按照剩余值班人员序列中的第iinsert(ik)个序列元素中填入第ik个值班人员的方法,将所提取的值班人员分部门信息中的部门值班人员队列的各个值班人员填入至剩余值班人员序列;
23、步骤s245:按照所述剩余值班人员序列第i个序列元素对应所述值班人员序列中第i个值班人员为空的序列元素的方式将所述剩余值班人员序列整体复制到所述值班人员序列中;
24、步骤s246:判断剩余值班人员分部门序列是否为空,若剩余值班人员分部门序列不为空,则重复按顺序执行步骤s241至s245,否则结束。
25、进一步,根据本专利技术的多部门值班排班的方法,所述步骤s1还包括获取冲突规则;所述步骤s3中对所遍历的分段时间配置值班人员时,检测该值班人员是否符合冲突规则,若符合冲突规则,则对所遍历的分段时间配置所述值班人员序列的循环顺序的下一个值班人员。
26、根据本专利技术的一种多部门值班排班的装置,该装置包括如下模块:
27、模块m1,用于:获取值班人员集合和分段时间列表;所述值班人员集合是值班人员信息的集合;所述值班人员信息包括值班人员的所属部门;
28、模块m2,用于:对所述值班人员集合进行分部门平均排序得到值班人员序列;
29、模块m3,用于:遍历分段时间列表,对所遍历的分段时间按所述值班人员序列的循环顺序配置相应的值班人员,形成值班排班表;
30、所述模块m2包括如下模块:
31、模块m21,用于:根据值班人员的所属部门,对所述值班人员集合进行分部门划分得到值班人员分部门集合;所述值班人员分部门集合是值班人员分部门信息的集合;所述值班人员分部门信息包括所属部门、部门值班人员人数和部门值班人员队列;
32、模块m22,用于:按照部门值班人员人数自小到大的顺序对所述值班人员分部门集合进行排序得到值班人员分部门序列;
33、模块m23,用于:统计所述值班人员分部门序列的总值班人数nt,然后按照nt初始化值班人员序列;所初始化的值班人员序列是由nt个表示值班人员为空的序列元素所组成的序列;
34、模块m24,用于:以所述值班人员分部门序列作为剩余值班人员分部门序列,从所述剩余值班人员分部门序列提取出第一个值班人员分部门信息,然后为所提取出的值班人员分部门信息中的部门值班人员队列的各个值班人员计算各个值班人员的插入序数iinsert(ik),然后再将各个值班人员填入所述值班人员序列中第iinsert(ik)个值班人员为空的序列元素中,直到所述剩余值班人员分部门序列为空;其中,插入序数iinsert(ik)采用如下方式计算:
35、iinsert(ik)=roundup(nr*(1+(ik-1)*nk)/x);其中,
36、ik表示为值班人员在所提取出的值班人员分部门信息中的部门值班人员队列中的序数,取值为1至nk;其中nk本文档来自技高网...
【技术保护点】
1.一种多部门值班排班的方法,其特征在于,该方法包括如下步骤:
2.根据权利要求1所述的多部门值班排班的方法,其特征在于,所述步骤S24包括如下步骤:
3.根据权利要求1所述的多部门值班排班的方法,其特征在于,所述步骤S1还包括获取冲突规则;所述步骤S3中对所遍历的分段时间配置值班人员时,检测该值班人员是否符合冲突规则,若符合冲突规则,则对所遍历的分段时间配置所述值班人员序列的循环顺序的下一个值班人员。
4.一种多部门值班排班的装置,其特征在于,该装置包括如下模块:
5.根据权利要求4所述的多部门值班排班的装置,其特征在于,所述模块M24包括如下模块:
6.根据权利要求4所述的多部门值班排班的装置,其特征在于,所述模块M1还包括获取冲突规则;所述模块M3中对所遍历的分段时间配置值班人员时,检测该值班人员是否符合冲突规则,若符合冲突规则,则对所遍历的分段时间配置所述值班人员序列的循环顺序的下一个值班人员。
7.一种机器可读介质,该介质内存储有能够被机器读取的程序指令集;其特征在于,当该介质内所存储的程序指令集被
8.一种电子设备,包括处理器和存储器;所述存储器内存储有程序指令集;其特征在于,当所述存储器内所存储的程序指令集被处理器执行时该设备能够实现根据权利要求1至3任一项所述的多部门值班排班的方法。
...【技术特征摘要】
1.一种多部门值班排班的方法,其特征在于,该方法包括如下步骤:
2.根据权利要求1所述的多部门值班排班的方法,其特征在于,所述步骤s24包括如下步骤:
3.根据权利要求1所述的多部门值班排班的方法,其特征在于,所述步骤s1还包括获取冲突规则;所述步骤s3中对所遍历的分段时间配置值班人员时,检测该值班人员是否符合冲突规则,若符合冲突规则,则对所遍历的分段时间配置所述值班人员序列的循环顺序的下一个值班人员。
4.一种多部门值班排班的装置,其特征在于,该装置包括如下模块:
5.根据权利要求4所述的多部门值班排班的装置,其特征在于,所述模块m24包括如下模块:
6.根据权利要求4所述...
【专利技术属性】
技术研发人员:焦祖春,阮振华,王琴,
申请(专利权)人:江苏金智教育信息股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。