第一题:
数据库中有哪个人在哪一个天值班的数据。值班地点中同一天会有两个人去值班。
客户要求导出excel数据如下:
显示出搭档的值班人员在哪些天需要值班。
我的思想是:
在往数据库插入值班人员在哪些地方值班的时候做如下处理:
得到需要值班的人员名单list。
日期循环
{
i=0;
插入这一天list[i]值班的数据
i=getNamlistIndex(i,list.size());
插入这一天list[i]值班的数据
}
public int getNamlistIndex(int i,int nameListSize)
{
if(i+1>=nameListSize)
{
i=0;
}
else
{
i=i+1;
}
return i;
}
然后,关于导出excel部分的思想是:
在excel左半边列出需要值班的人员名单,这个名单的排序和上面 “得到需要值班的人员名单list” 中list的排序一致。
在excel的右半边列出需要值班的日期,日期按照从小到大排序。
这样不用做数据匹配,就可以满足用户要求了。
但是,前提是必须保证人员名单为偶数,正好客户需要对值班人员名单必须为偶数做验证。
第二题:
如下图:是需要安排值班的值班的人员名单。每天办公室安排2个人去值班,可以确保值班人员总数是偶数,要求如下:
同一天值班的人员不能是同一个律所的,为了方便监督。
相隔日期是同一个律所的人在值班,方便通知。
结果如下图:
律所a 人员1 律所b人员1
律所a 人员2 律所b人员2
律所a 人员3 律所b人员3
我的思想是:先按照律所进行排序,然后快速排序的算法
按照数据库对律所进行排序之后,再按照1,8,2,7这样取可以保证题目要求。(因为保证了总人数偶数,不用担心基数不匹配问题)
以上只是我个人认为比较简便的思想,有疑问的可以加qq细聊!
2413172711@qq.com