MeetingRoomManagerImpl.java
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:3k
源码类别:

OA系统

开发平台:

Java

  1. package com.bjsxt.oa.managers.impl;
  2. import java.util.Date;
  3. import java.util.List;
  4. import com.bjsxt.oa.managers.MeetingRoomManager;
  5. import com.bjsxt.oa.managers.SystemException;
  6. import com.bjsxt.oa.model.MeetingRoom;
  7. import com.bjsxt.oa.model.MeetingRoomApply;
  8. public class MeetingRoomManagerImpl extends AbstractManager implements
  9. MeetingRoomManager {
  10. public void addRoom(MeetingRoom room) {
  11. getHibernateTemplate().save(room);
  12. }
  13. public void applyRoom(MeetingRoomApply apply,String sn) {
  14. //是否有冲突?
  15. Long size = (Long)getSession()
  16. .createQuery(
  17. "select count(*) from MeetingRoomApply ap where ap.room.sn = ? and " +
  18. "(" +
  19. "(:begin between ap.beginDate and ap.endDate ) or " +
  20. "(:end between ap.beginDate and ap.endDate )" +
  21. ")")
  22. .setParameter(0, sn)
  23. .setParameter("begin", apply.getBeginDate())
  24. .setParameter("end", apply.getEndDate())
  25. .uniqueResult();
  26. if(size >= 1){
  27. throw new SystemException("您申请的会议室与其他人的申请有冲突,请重新申请!");
  28. }
  29. apply.setRoom(
  30. (MeetingRoom)getSession()
  31. .createQuery("from MeetingRoom ap where ap.sn = ?")
  32. .setParameter(0, sn)
  33. .uniqueResult()
  34. );
  35. getHibernateTemplate().save(apply);
  36. }
  37. public MeetingRoomApply findRoomApply(int applyId) {
  38. return (MeetingRoomApply)getHibernateTemplate().load(MeetingRoomApply.class, applyId);
  39. }
  40. public void updateApply(MeetingRoomApply apply, String sn) {
  41. //是否有冲突?
  42. Long size = (Long)getSession()
  43. .createQuery(
  44. "select count(*) from MeetingRoomApply ap where ap.room.sn = ? and " +
  45. "(" +
  46. "(:begin between ap.beginDate and ap.endDate ) or " +
  47. "(:end between ap.beginDate and ap.endDate )" +
  48. ") and " +
  49. "ap.id <> "+apply.getId())
  50. .setParameter(0, sn)
  51. .setParameter("begin", apply.getBeginDate())
  52. .setParameter("end", apply.getEndDate())
  53. .uniqueResult();
  54. if(size >= 1){
  55. throw new SystemException("您申请的会议室与其他人的申请有冲突,请重新申请!");
  56. }
  57. apply.setRoom(
  58. (MeetingRoom)getSession()
  59. .createQuery("from MeetingRoom ap where ap.sn = ?")
  60. .setParameter(0, sn)
  61. .uniqueResult()
  62. );
  63. getHibernateTemplate().update(apply);
  64. }
  65. public List searchAllRooms() {
  66. return getHibernateTemplate().find("from MeetingRoom");
  67. }
  68. public List searchApplies(Date begin, Date end) {
  69. return getSession().createQuery(
  70. "select a from MeetingRoomApply a where (a.beginDate between :begin and :end ) " +
  71. "or (a.endDate between :begin and :end)"
  72. )
  73. .setParameter("begin", begin)
  74. .setParameter("end", end)
  75. .list();
  76. }
  77. }