庭審管理中動態顯示今天起7日內的數據,動態查詢,並根據已有數據判斷新增和修改時的時間衝突問題(2)

    上一篇解決到了對開庭排期的save操作,暫且爲考慮時間衝突。

    在開庭排期結束之後,能夠在list界面中看到相應的效果。同時,也可以進行對記錄員、是否公開開庭、旁聽、境外旁聽、筆錄內容的設置。此時便是通過另外一個界面進行的

開庭排期的部分數據已經顯示在界面上,設爲disabled,不可使用。同時需要注意:在保存的時候需要進行$("#id").removeAttr("disabled")。原因是:如果不接觸disabled,那麼

這幾個屬性都將無效,會報錯。

  8.重中之重:時間衝突問題。

    剛開始我的時間衝突問題是寫在js中進行解決的,雖然成功解決。但是由於js過長,並且會出現瀏覽器的兼容問題。於是,便改寫都後臺。時間衝突問題解決的關鍵是分析清楚

各種情形,根據每一種情形的不同來設定解決方案。

    首先是參數問題:時間造成衝突的根本原因是在統一法庭、同一天中場次時間重合,所以數據衝突的時候,查詢的條件就必須限定在同一法庭、同一天。由於衝突的時間是時

分秒之間的衝突,所以開始和結束時間也是必要的參數。 houseId、openTime、beginTime、endTime。

    其次是判定條件的問題

    (1)根據法庭和天查詢出已有的數據:此時出現新的判定條件,list。如果list爲空,那麼說明不可能會出現衝突,反之需要進一步判斷

    (2)法庭排期是新建還是更改的問題,id也成爲判定條件。

    (3)是否可以共用,如果都可以公用,那麼就不存在衝突的問題,如果有一個不能公用,那麼就需要進行判定。

    (4)判定完成以後返回值的問題,使用boolean isSave來判斷是否可保存。

    於是,調理就比較清晰了。

    ----list是否爲空:在list爲空時,無衝突。在list不爲空時,進行對id的判斷

    ----id是否爲空:在兩種條件下,分別對當前操作的法庭排期是否公用進行判斷。

         如果id爲空,不可共用:循環判斷時間是否合適,如果不可以isSave=false,直接return跳出循環

         如果id爲空,可以公用:循環判斷,如果list中的有不可共用的並且時間有衝突isSave = false,return。如果都可共用,那麼isSave = true

         如果id不爲空,不可共用:循環判斷時間是否合適,不合適跳出循環。

         如果id不爲空,可以共用:循環判斷是否有不可共用並時間衝突的,不合適就跳出循環。

    ----最後返回:isSave。

    在js中接收參數isSave。如果是true,就調用save方法,將數據保存到數據庫。如果false,那麼就alert出提示信息,並且返回。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章