⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reservationmanageframe.java

📁 一个KTV管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			DefaultTableModel md = new DefaultTableModel(pi, name);
			reservationTable = new JTable(md);
			Room roo = null;
			Calendar tm = Calendar.getInstance();
			// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE) + "
			// "
			// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
			// + tm.get(tm.SECOND));
			long systemtime = 0;
			long checkInTime = 0;
			String[] Intemp = null;
			String[] Intemp1 = null;
			String[] Intemp2 = null;
			Vector v = getReservation();
			Iterator ite = v.iterator();
			Intemp = reservationTimeTextField.getText().split(" ");
			Intemp1 = Intemp[0].split("-");
			Intemp2 = Intemp[1].split(":");
			tm.set(tm.YEAR, Integer.parseInt(Intemp1[0]));
			tm.set(tm.MONTH, Integer.parseInt(Intemp1[1]));
			tm.set(tm.DATE, Integer.parseInt(Intemp1[2]));
			tm.set(tm.HOUR_OF_DAY, Integer.parseInt(Intemp2[0]));
			tm.set(tm.MINUTE, Integer.parseInt(Intemp2[1]));
			tm.set(tm.SECOND, Integer.parseInt(Intemp2[2]));
			// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE) + "
			// "
			// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
			// + tm.get(tm.SECOND));
			systemtime = tm.getTimeInMillis();
			while (ite.hasNext()) {
				Reservation value = (Reservation) ite.next();
				Object[] date = { value.getGuestName(),
						String.valueOf(value.getGuestTelephone()),
						value.getRoomNumber(), value.getRoomType(),
						value.getReservationTime(), value.getReservationType() };
				Intemp = value.getReservationTime().split(" ");
				Intemp1 = Intemp[0].split("-");
				Intemp2 = Intemp[1].split(":");
				tm.set(tm.YEAR, Integer.parseInt(Intemp1[0]));
				tm.set(tm.MONTH, Integer.parseInt(Intemp1[1]));
				tm.set(tm.DATE, Integer.parseInt(Intemp1[2]));
				tm.set(tm.HOUR_OF_DAY, Integer.parseInt(Intemp2[0]));
				tm.set(tm.MINUTE, Integer.parseInt(Intemp2[1]));
				tm.set(tm.SECOND, Integer.parseInt(Intemp2[2]));
				checkInTime = tm.getTimeInMillis();
				// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE)
				// + " "
				// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
				// + tm.get(tm.SECOND));
				// 预订时间超过当前时间自动从数据库中删除
				if (checkInTime >= systemtime) {
					// 将数据添加到数据模型中
					md.addRow(date);
				} else {
					deleteReservation(value.getRoomNumber());
					roo = getARoom(value.getRoomNumber());
					roo.setRoomStatement("可用");
					updateRoomInfo(roo);
				}
			}
			reservationTable.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					int row = reservationTable.getSelectedRow();
					guestNameTextField.setText(reservationTable.getValueAt(row,
							0).toString());
					guestTelephoneTextField.setText(reservationTable
							.getValueAt(row, 1).toString());
					roomNumberTextField.setText(reservationTable.getValueAt(
							row, 2).toString());
					roomTypeComboBox.setSelectedItem(reservationTable
							.getValueAt(row, 3).toString().trim());
					reservationTimeTextField.setText(reservationTable
							.getValueAt(row, 4).toString().substring(0, 19));
				}
			});
		} else {
			DefaultTableModel model = (DefaultTableModel) reservationTable
					.getModel();
			int rows = model.getRowCount();
			// 删除数据模型之前的所有数据
			for (int i = rows - 1; i >= 0; i--) {
				model.removeRow(i);
			}
			Room roo = null;
			Calendar tm = Calendar.getInstance();
			// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE) + "
			// "
			// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
			// + tm.get(tm.SECOND));
			long systemtime = 0;
			long checkInTime = 0;
			String[] Intemp = null;
			String[] Intemp1 = null;
			String[] Intemp2 = null;
			Vector v = getReservation();
			Iterator ite = v.iterator();
			Intemp = reservationTimeTextField.getText().split(" ");
			Intemp1 = Intemp[0].split("-");
			Intemp2 = Intemp[1].split(":");
			tm.set(tm.YEAR, Integer.parseInt(Intemp1[0]));
			tm.set(tm.MONTH, Integer.parseInt(Intemp1[1]));
			tm.set(tm.DATE, Integer.parseInt(Intemp1[2]));
			tm.set(tm.HOUR_OF_DAY, Integer.parseInt(Intemp2[0]));
			tm.set(tm.MINUTE, Integer.parseInt(Intemp2[1]));
			tm.set(tm.SECOND, Integer.parseInt(Intemp2[2]));
			// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE) + "
			// "
			// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
			// + tm.get(tm.SECOND));
			systemtime = tm.getTimeInMillis();
			while (ite.hasNext()) {
				Reservation value = (Reservation) ite.next();
				Object[] date = { value.getGuestName(),
						String.valueOf(value.getGuestTelephone()),
						value.getRoomNumber(), value.getRoomType(),
						value.getReservationTime(), value.getReservationType() };
				Intemp = value.getReservationTime().split(" ");
				Intemp1 = Intemp[0].split("-");
				Intemp2 = Intemp[1].split(":");
				tm.set(tm.YEAR, Integer.parseInt(Intemp1[0]));
				tm.set(tm.MONTH, Integer.parseInt(Intemp1[1]));
				tm.set(tm.DATE, Integer.parseInt(Intemp1[2]));
				tm.set(tm.HOUR_OF_DAY, Integer.parseInt(Intemp2[0]));
				tm.set(tm.MINUTE, Integer.parseInt(Intemp2[1]));
				tm.set(tm.SECOND, Integer.parseInt(Intemp2[2]));
				checkInTime = tm.getTimeInMillis();
				// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE)
				// + " "
				// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
				// + tm.get(tm.SECOND));
				// 预订时间超过当前时间自动从数据库中删除
				if (checkInTime >= systemtime) {
					// 将数据添加到数据模型中
					model.addRow(date);
				} else {
					deleteReservation(value.getRoomNumber());
					roo = getARoom(value.getRoomNumber());
					roo.setRoomStatement("可用");
					updateRoomInfo(roo);
				}
			}
		}
		return reservationTable;
	}

	// 向数据库中新增一条预订信息
	private boolean insertReservation(Reservation temp) {
		boolean flag = false;
		flag = new ReservationDao().insertReservation(temp);
		return flag;
	}

	// 更新预订信息
	private boolean updateResevaton(Reservation demo, String demo2) {
		boolean flag = false;
		flag = new ReservationDao().updateReservation(demo, demo2);
		return flag;
	}

	// 在数据库中删除一条预订信息
	private boolean deleteReservation(String temp) {
		boolean flag = false;
		flag = new ReservationDao().deleteReservation(temp);
		return flag;
	}

	// 取得所有的宾客预订信息
	private Vector getReservation() {
		Vector v = null;
		v = new ReservationDao().getAllReservation();
		return v;
	}

	public void actionPerformed(ActionEvent e) {
		DefaultTableModel model = (DefaultTableModel) reservationTable
				.getModel();
		JButton temp = (JButton) e.getSource();

		if (temp.getText().equals("预订修改")) {
			if (checkInputValue()) {
				try {
					int row = reservationTable.getSelectedRow();
					String value = reservationTable.getValueAt(row, 2)
							.toString().trim();
					Room roo = getARoom(value);
					String rn = roomNumberTextField.getText().trim();
					Room roo2 = getARoom(rn);
					Reservation value2 = new Reservation(guestNameTextField
							.getText(), Long.parseLong(guestTelephoneTextField
							.getText()), roomNumberTextField.getText(),
							roomTypeComboBox.getSelectedItem().toString(),
							reservationTimeTextField.getText(), "N");
					if (roo2 != null) {
						if (value.equals(rn)) {
							if (updateResevaton(value2, value)) {
								model.removeRow(row);
								Object[] date = {
										guestNameTextField.getText(),
										guestTelephoneTextField.getText(),
										roomNumberTextField.getText(),
										roomTypeComboBox.getSelectedItem()
												.toString(),
										reservationTimeTextField.getText(), "N" };
								model.addRow(date);
								JOptionPane.showMessageDialog(null, "修改预订信息成功",
										"提示信息", JOptionPane.YES_OPTION);
							}
						} else {
							if (roo2.getRoomStatement().trim().equals("可用")) {

								roo.setRoomStatement("可用");
								roo2.setRoomStatement("预订");
								if (updateResevaton(value2, value)
										&& updateRoomInfo(roo)
										&& updateRoomInfo(roo2)) {
									model.removeRow(row);
									Object[] date = {
											guestNameTextField.getText(),
											guestTelephoneTextField.getText(),
											roomNumberTextField.getText(),
											roomTypeComboBox.getSelectedItem()
													.toString(),
											reservationTimeTextField.getText(),
											"N" };
									model.addRow(date);
									RoomButton jb2 = MainFrame.getInstance()
											.getHashtable(value);
									jb2
											.setIcon(new ImageIcon(
													"icon/mainframe/UltraMix35_001.jpg"));
									jb2.setRoomStatement("可用");
									RoomButton jb = MainFrame.getInstance()
											.getHashtable(rn);
									jb
											.setIcon(new ImageIcon(
													"icon/mainframe/UltraMix08_001.jpg"));
									jb.setRoomStatement("预订");
									JOptionPane.showMessageDialog(null,
											"修改预订信息成功", "提示信息",
											JOptionPane.YES_OPTION);
								}
							} else {
								JOptionPane.showMessageDialog(null,
										"不能预订该包间,正在被使用或已被预定或已停用", "提示信息",
										JOptionPane.YES_OPTION);
							}
						}
					} else {
						JOptionPane.showMessageDialog(null, "该包间不存在", "提示信息",
								JOptionPane.YES_OPTION);
					}
				} catch (Exception ex) {
					JOptionPane.showMessageDialog(null, "修改失败,请选中要修改的记录",
							"提示信息", JOptionPane.YES_OPTION);
				}
			}
		}
		if (temp.getText().equals("预订删除")) {
			try {
				int row = reservationTable.getSelectedRow();
				String value = reservationTable.getValueAt(row, 2).toString()
						.trim();
				// System.out.println(value);
				Room roo = getARoom(value);
				roo.setRoomStatement("可用");
				if (deleteReservation(value) && updateRoomInfo(roo)) {
					model.removeRow(row);
					RoomButton jb = MainFrame.getInstance().getHashtable(value);
					jb.setIcon(new ImageIcon(
							"icon/mainframe/UltraMix35_001.jpg"));
					jb.setRoomStatement("可用");
					JOptionPane.showMessageDialog(null, "删除预订信息成功", "提示信息",
							JOptionPane.YES_OPTION);
				}
			} catch (Exception ex) {
				JOptionPane.showMessageDialog(null, "无法删除", "提示信息",
						JOptionPane.YES_OPTION);
			}
		}
		if (temp.getText().equals("刷新")) {
			int rows = model.getRowCount();
			// 删除表格中目前的数据
			for (int i = rows - 1; i >= 0; i--) {
				model.removeRow(i);
			}
			Vector v = getReservation();
			Iterator iter = v.iterator();
			while (iter.hasNext()) {
				Reservation value = (Reservation) iter.next();
				Object[] date = { value.getGuestName(),
						String.valueOf(value.getGuestTelephone()),
						value.getRoomNumber(), value.getRoomType(),
						value.getReservationTime(), value.getReservationType() };
				// 将数据添加到数据模型中
				model.addRow(date);
			}

		}

		if (temp.getText().equals("查询")) {
			int rows = model.getRowCount();
			for (int i = rows - 1; i >= 0; i--) {
				System.out
						.println(reservationTable.getValueAt(i, 2).toString());
				if (!queryTextField.getText().equals(
						reservationTable.getValueAt(i, 2).toString().trim()))
					model.removeRow(i);
			}

		}
	}

	/**
	 * This method initializes freshButton
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getFreshButton() {
		if (freshButton == null) {
			freshButton = new JButton();
			freshButton.setText("刷新");
			freshButton.setBounds(new java.awt.Rectangle(400, 20, 80, 30));
			freshButton.addActionListener(this);
		}

		return freshButton;
	}

	// 该窗口所有输入信息的约束
	private boolean checkInputValue() {
		// boolean flag = false;
		Check check = new Check();
		if (check.checkInputIsNull(guestNameTextField.getText())) {
			JOptionPane.showMessageDialog(null, "宾客姓名不能为空", "提示信息",
					JOptionPane.YES_OPTION);
			guestNameTextField.requestFocus();
			return false;
		}
		if (check.checkIsContainNumber(guestNameTextField.getText().trim())) {
			JOptionPane.showMessageDialog(null, "宾客姓名不能包含数字", "提示信息",
					JOptionPane.YES_OPTION);
			guestNameTextField.requestFocus();
			return false;
		}
		if (check.checkInputIsNull(guestTelephoneTextField.getText())) {
			JOptionPane.showMessageDialog(null, "宾客联系方式不能为空", "提示信息",
					JOptionPane.YES_OPTION);
			guestTelephoneTextField.requestFocus();
			return false;
		}
		if (check.checkIsContainCharactor(guestTelephoneTextField.getText()
				.trim())) {
			JOptionPane.showMessageDialog(null, "宾客联系方式不能包含有字母", "提示信息",
					JOptionPane.YES_OPTION);
			guestTelephoneTextField.requestFocus();
			return false;
		}
		if (check.checkInputIsNull(roomNumberTextField.getText())) {
			JOptionPane.showMessageDialog(null, "预订包间号不能为空", "提示信息",
					JOptionPane.YES_OPTION);
			roomNumberTextField.requestFocus();
			return false;
		}
		if (check.checkInputIsNull(reservationTimeTextField.getText())) {
			JOptionPane.showMessageDialog(null, "预订时间不能为空", "提示信息",
					JOptionPane.YES_OPTION);
			reservationTimeTextField.requestFocus();
			return false;
		}
		if (!check.checkDateFormatIsLegal(reservationTimeTextField.getText())) {
			JOptionPane.showMessageDialog(null, "预订时间只能是2007-11-17 00:12:25格式",
					"提示信息", JOptionPane.YES_OPTION);
			reservationTimeTextField.requestFocus();
			return false;
		}

		return true;
	}

	private boolean updateRoomInfo(Room value) {
		boolean flag = false;
		flag = new RoomSettingDao().updateRoomInfo(value);
		return flag;
	}

	// 通过房间号取得相应的房间信息
	private static Room getARoom(String value) {
		Room r = null;
		r = new RoomSettingDao().getARoom(value);
		return r;
	}

	public static void main(String[] args) {
		// ReservationManageFrame.getInstance();
	}
} // @jve:decl-index=0:visual-constraint="215,9"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -