OA中时间库系统设计

背景和需求分析:
旺季员工加班的时间暂存在OA系统里,到了淡季的时候员工可以拿出来休掉
时间库系统正是为了解决这个而提出设计的。

需求包括:
1:小组上报员工入库出库时间(小时/月)
2:人事审核时间库
3:时间库报表,可按月导出
4:清空时间库:设计时人事要求一定时间50Jt0qoDuT/nj4FA43Onea2OXAeoY8tH4tOI1B7lrGnx0IvmXf9ikA!/b/YeM*MJxtHgAAYhfIMZxu后(一般为一年)时间库以加班方式发放到工资,同时时间库里所以还有正时间库的员工进行清零处理。

综上功能系统设计使用1个数据表解决:表结构设计



需求分析清楚后,功能实现上没有什么难度,
注意:
1、每员工最后一条记录的TimesAll即为员工总时间剩余
所以在添加月时间库记录时,一定要使用, 前一条记录的TimesAll+当前条记录的TimesTotal得到最新的TimesAll保存下来
2、清空时间库代码:
DECLARE _cursor CURSOR FOR 
SELECT id FROM record WHERE leave_office='在职' 
DECLARE @id INT 

OPEN _cursor 
FETCH NEXT FROM _cursor INTO @id

WHILE @@FETCH_STATUS = 0 
BEGIN 
	DECLARE @SQL NVARCHAR(2000)
	DECLARE @timeall DECIMAL(18,2) 
	DECLARE @ForId INT
	SELECT TOP 1 @timeall=timesall FROM timesrecord WHERE idrecord=@id ORDER BY tayear DESC,tamonth DESC

	IF @timeall>0 
	BEGIN
		SET @ForId = 0
		SELECT @ForId = IDLOG FROM timesrecord WHERE idrecord=@id AND tayear=2012 AND tamonth=2
		IF @ForId=0 OR @ForId IS NULL
		BEGIN 
			INSERT INTO timesrecord (IDRecord,TimesOut,TimesTotal,TaYear,TaMonth,TimesAll) VALUES( @id ,@timeall,-@timeall,2012,2,0)
		END 
		ELSE
		BEGIN 
			UPDATE timesrecord SET TimesOut=TimesOut+@timeall,TimesTotal=TimesTotal-@timeall,TimesAll=0 WHERE IDLOG=@ForId
		END 
	END 
	FETCH NEXT FROM _cursor INTO @id 
END 

CLOSE _cursor 
DEALLOCATE _cursor 

欢迎指教
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值