关于值班管理的存储过程
来源:互联网 发布:linux下的caffe安装 编辑:程序博客网 时间:2024/06/05 07:33
1一组队列 n个人,有4种角色,领导,汉子,大妈,司机。n个人根据自己角色按顺序排好队
2值班要求:周一到周日1个领导值班1个司机值班;周一到周日每晚1个汉子值班;周六周日上午下午2个大妈值班;假期每天1个领导1个司机1个汉子上午下午2个大妈
3要求队列可增删查该,人员顺序可以调整,队列发生变化时,值班表自动更新
4要求队列人员随时可以抽调对列中的人员不参加本轮排序(出差或请假)下轮继续按队列顺序排序,人员抽调后,队列自动向前顶替
5换班等...
建2个表
1watching
[datetime]日期 [weekday]星期[leaderid]领导id[maleid]汉子id[female1]大妈1id[female2]大妈2id [driverid]司机id [mark]备注
2watching_person
[ordercode]人员编号[personid]人员id [part]人员角色[leave]是否离开 [mark]备注
part为人员角色1领导2汉子3大妈4司机
当新的队列产生时需要更细从明天以后的值班安排表(此处为30天),然后将按角色排队好的起始位置传给存储过程(即领到从第几位开始排司机从第几位开始排汉子大妈...)
createprocProc_WatchingSetup
--参数为四种角色的起始位置
@leaderint,
@Maleint,
@Femaleint,
@Driverint
as
declare@iint --计数器
declare@jint
declare@PersonIDint
declare@weekdayint
declare@InsertPointdatetime
declare@msgchar(20)
set@i=1
set@j=1
--事务开始
BegintranReChange
--删除明天以后的记录(队列已改变删除以前的)
deletefromWatchingwhere[Datetime]>GetDate()
if(@@error<>0)
Begin
rollbacktran
set@msg='error1'
return
end
--重新插入后30天的日期和星期
while@i<=30
begin
insertWatching(Datetime,WeekDay)values(dateadd(day,@i,{fncurdate()}),datepart(weekday,dateadd(day,@i,{fncurdate()})))
set@i=@i+1
end
if(@@error!=0)
Begin
rollbacktran
set@msg='error2'
return
end
--开始使用游标
set@j=1
--////首先按排队顺序读出领导的队列
declarecur_watchingPersonscrollcursorFor
selectPersonid fromwatching_personwherepart=1orderbyorderCodeasc
opencur_watchingPerson
--移动到开始位置
fetchabsolute@leaderfromcur_watchingPersoninto@PersonID
if@@fetch_status=-1
fetchfirstfromcur_watchingpersoninto@PersonID
set@i=1
while@i<=30
begin
while@j<=7--最长可能是1人插入7天
begin
updatewatchingsetLeaderId=@PersonIDwhere[datetime]=(dateadd(day,@i,{fncurdate()})) 1
- 关于值班管理的存储过程
- 对 值班管理系统的一些总结
- 值班管理数据表设计
- 关于晚上值班
- 关于存储过程的优缺点
- 关于分页的存储过程
- 关于MySQL的存储过程
- 关于存储过程的调用
- 关于存储过程的函数
- 存储过程管理过程
- 关于存储设备的管理
- 机房值班的总结
- 存储过程的创建与管理
- 数据库的创建与管理存储过程
- 值班
- 值班
- 值班
- 管理存储过程
- SQLServer2000之日志传送功能-描述(1)
- app server 与web server的理解
- SQLServer2000之日志传送功能-描述(2)
- 小议MS2000的及管理
- 当崩溃时如何恢复
- 关于值班管理的存储过程
- 根据进程号获取该进程所在客户端的ip地址
- 在业务系统中处理小数精度,四舍五入,全舍弃,全进位的方法
- 如何将中被锁表解锁
- Oracle数据库的安全策略
- 日期计算
- SQLServer2005安装及界面截图,新增功能
- DataList内DropDownList取值和即时更新
- sqlserver锁机制