上一篇解决到了对开庭排期的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出提示信息,并且返回。