最近完成的小系統,會議室預定系統。可預覽:
技術分析:
1,準備乙個表,儲存會議室,可以新增,編輯,啟用或禁用(為控制某一會議室是否顯示給使用者在預定時是否可見),刪除功能,可有可無,如果實現,當刪除時,需要寫觸發器,把此預定過此會議室的記錄一同刪除。
2,準備兩個表,儲存時間記錄(id,timename),每半個小時,如00:00,00:30,01:00直至23:30;另乙個表是儲存星期(id,weekname),你可以儲存中文或是英文星期名稱。這兩個表均是為使用者選擇時間而準備。
3,預定你可以使用使用者登入功能,登入成功之後,才可以預定,這樣可以實現不同的人可以管理好自己的預定記錄。
4,會議型別分為一次性,或是週期性。一次性的會議,日期需大於或等於當天。而開始時間,還需要判斷,始時間須大於當前時間加上一小時。因為系統會預留半小時,不夠半小時的,算夠半小時。系統會作傳送郵件。
5,準備乙個表,儲存預定記錄,(id,會議室id,weekname,預定日期,開始,結束,...)上面使用中文,只是為了更好作解釋。儲存預定記錄時,如果是週期性的,預定日期欄位是為空的。另外,如果是儲存一次性,預定日期字段不能為空,或是weekname要把預定日期轉換算出是星期幾填充weekname欄位,這樣我們為下面判斷時間是否有衝突,就方便多了。
5,判斷預定時間是否有衝突,同一會議室,不管是一次性,還是週期性,時間不能重疊。
ifexists
(select
top1
1from
[***]
where
[mrid]=
@mrid
and[
weekname]=
@wand
@starttime
<
[endtime
]and
@endtime
>
[starttime])
begin
raiserror(n'
不能預定此會議室,會議時間發生重疊。',
16,1)
return
end
6,預定成功,給預定人和會議聯絡人傳送會議室預定成功的郵件。
7,寫乙個程序,30秒判斷一次,當前的時間,分鐘部分是否為00或是30,如果是的話,把當前這個時間加半小時,去判斷預定開始時間是否相同,如果相同,傳送郵件。
intcurrenthour
=e.signaltime.hour;
intcurrentminute
=e.signaltime.minute;
if(currentminute ==0
||currentminute
==30
)catch
(exception ex)}
上面有乙個方法meetingnotify(***,***):
public
void
meetingnotify(
intcurrenthour,
intcurrentminute)
if(currentminute
==30
)
//傳入資料庫}
8,最後乙個需要說的,就是會議參與人的字段,在傳送郵件時,需要在sql做split。sql沒有此函式,但你可以在網上找到很多相關的方法。
另外,提供一下前端頁面顯示:
今天的預定:
select
...from
[dbo].
[***
]where
[mrid
]<>
1and([
weekname]=
datename
(w,current_timestamp
) or
[bookingdate]=
cast
(current_timestamp
asdate))
明天的預定:
declare
@tomorrow
date
=dateadd
(day,1
,current_timestamp
)select
...from
[dbo].
[***
]where
[mrid
]<>
1and([
weekname]=
datename
(w,@tomorrow
) or
[bookingdate]=
@tomorrow)
本週的預定,本月和所有的預定儲存過程略。
取消或是過期:
首先要寫乙個預定記錄status的函式:
declare
@bookingdatetime
datetime='
預定日期'+
'開始時間'if
(@isenable=0
)set
@returnvalue=1
--取消if(
'一次性
'and
(@bookingdatetime
<
current_timestamp
))set
@returnvalue=2
--過期if(
@isenable=0
and'
一次性'
and(
@bookingdatetime
<
current_timestamp
))set
@returnvalue=3
--取消與過期
select
...from
[dbo].
[***
]where
[mrid
]<>
1and
[status
]<>0
會議室預定設計
一 目標 會議室預定 二 流程 使用者註冊 使用者登陸 選時間 會議室預定 會議室退訂 三 結構 使用者表 會議室表 會議室記錄表 四 具體流程 前端 1 製作 日期框 2 js動作繫結,用ajax方式提交資料和獲取資料 3 點選動作,重新整理動作,提交動作,刪除動作。後端 get方式 目的 獲取資...
啟明星會議室預定管理系統 v9 2
啟明星會議室預定系統 由於目前許多大中型企業手工化管理會議室,各樓層的會議室空閒 預定情況不能及時得知。為了進一步規範會議室的使用 預定管理,避免資源的衝突。由我公司自主研發的基於b s結構的會議室管理系統,使用者只需要通過網際網路即可隨時了解每個會議室的當前狀態和預定情況,提高了會議室的使用率,節...
會議室預定管理系統 v4 1 基於B S結構
啟明星會議室預定系統 由於目前許多大中型企業手工化管理會議室,各樓層的會議室空閒 預定情況不能及時得知。為了進一步規範會議室的使用 預定管理,避免資源的衝突。由我公司自主研發的基於b s結構的會議室管理系統,使用者只需要通過網際網路即可隨時了解每個會議室的當前狀態和預定情況,提高了會議室的使用率,節...