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

📄 bill.java

📁 简单的餐厅管理系统
💻 JAVA
字号:
package beans;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;

import util.AddZeroAhead;
import util.BaseSQL;

public class Bill {
	private String billID = "";
	private User waiter = new User();
	private int tableNum = 0;
	private int numberOfMan = 0;
	private Date beginTime = new Date();
	private Date endTime = new Date();


	private float price = 0;
	private int type = 0;
	
	private Vector<DishNumber> dishNumbers = new Vector<DishNumber>();
	
	public String getData(String billID){
		BaseSQL b = new BaseSQL();
		try {
			b.connect("eatery", "root", "123456");

			ResultSet rs = b.statement.executeQuery(
					"select * from bill where billID = '"+billID+"'");
			String waiterID;
			if(rs.next()){
				
				this.billID = rs.getString("billID");
				waiterID = rs.getString("waiterID");
				this.tableNum = rs.getInt("tableNum");
				this.numberOfMan = rs.getInt("numberOfMan");
				this.beginTime = rs.getTimestamp("beginTime");
				this.endTime = rs.getTimestamp("endTime");
				this.price = rs.getFloat("price");
				this.type = rs.getInt("type");
				
			}else{
				return "此单不存在!";
			}
			
			this.waiter.getWaiterData(waiterID);
			dishNumbers = new Vector();

			rs = b.statement.executeQuery(
					"select * from bill_dish where billID = '"+billID+"'");

			while(rs.next()){
				Dish dish = new Dish();
				dish.getMainInfo(rs.getString(2));
				DishNumber dishNumber = new DishNumber();
				dishNumber.setNumber(rs.getInt(3));
				dishNumber.setDish(dish);
				dishNumbers.add(dishNumber);

			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block

			return "数据库操作出错!";
		} catch (Exception e) {
			// TODO Auto-generated catch block

			return "出现未知错误!";
		} finally {
			try {
				b.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block

			}
		}
		return null;
	}
	
	
	public String getMainData(String billID){
		BaseSQL b = new BaseSQL();
		try {
			b.connect("eatery", "root", "123456");

			ResultSet rs = b.statement.executeQuery(
					"select * from bill where billID = '"+billID+"'");
			String waiterID;
			if(rs.next()){
				
				this.billID = rs.getString("billID");
				waiterID = rs.getString("waiterID");
				this.tableNum = rs.getInt("tableNum");
				this.numberOfMan = rs.getInt("numberOfMan");
				this.beginTime = rs.getTimestamp("beginTime");
				this.endTime = rs.getTimestamp("endTime");
				this.price = rs.getFloat("price");
				this.type = rs.getInt("type");
				
			}else{
				return "此单不存在!";
			}
			
			this.waiter.getWaiterData(waiterID);
		} catch (SQLException e) {
			// TODO Auto-generated catch block

			return "数据库操作出错!";
		} catch (Exception e) {
			// TODO Auto-generated catch block

			return "出现未知错误!";
		} finally {
			try {
				b.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block

			}
		}
		return null;
	}
	public String checkOut(){
		this.type = 2;
		return update();
	}
	
	public String deleteBill(){
		BaseSQL b = new BaseSQL();
		try {
			b.connect("eatery", "root", "123456");

			ResultSet rs = b.statement.executeQuery(
					"select * from bill where billID = '"+billID+"'");
			
			if(rs.next()){
				b.connection.setAutoCommit(false);
				b.statement.executeUpdate("delete from bill where billID = '"+billID+"'");
				b.connection.commit();
				b.connection.setAutoCommit(true);
			}else{
				return "数据库中不存在该项!";
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block

			} 
			return "数据库操作出错!";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block

			} 
			return "出现未知错误!";
		} finally {
			try {
				b.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block

			}
		}
		return null;
	}
	
	public String persist(){
		BaseSQL b = new BaseSQL();
		try {
			b.connect("eatery", "root", "123456");
			String year;
			String month;
			String date;
			type = 1;
			
			ResultSet rs = b.statement.executeQuery(
					"select billID from bill");

			year = AddZeroAhead.addZeroAhead(beginTime.getYear()-100+"", 2);
			month = AddZeroAhead.addZeroAhead(beginTime.getMonth()+1+"", 2);
			date = AddZeroAhead.addZeroAhead(beginTime.getDate()+"", 2);
			billID = year+month+date+"01";
			while(rs.next()){
				if(Integer.parseInt(billID)==Integer.parseInt(rs.getString(1))){
					billID = Integer.parseInt(billID)+1+"";
				}
			}
			billID = AddZeroAhead.addZeroAhead(billID, 8);
			System.out.println(billID);
			b.connection.setAutoCommit(false);

			PreparedStatement pStmt = b.connection.prepareStatement("insert into bill values(?,?,?,?,?,?,?,?)");
			
			pStmt.setString(1, billID);

			pStmt.setString(2, waiter.getUserName());
			pStmt.setInt(3, numberOfMan);
			pStmt.setInt(4, tableNum);
			String beginYear = beginTime.getYear()+1900+"";
			String beginMonth = AddZeroAhead.addZeroAhead(beginTime.getMonth()+1+"", 2);
			String beginDay = AddZeroAhead.addZeroAhead(beginTime.getDate()+"", 2);
			String beginHour = AddZeroAhead.addZeroAhead(beginTime.getHours()+"", 2);
			String beginMinute = AddZeroAhead.addZeroAhead(beginTime.getMinutes()+"", 2);
			String beginSecond = AddZeroAhead.addZeroAhead(beginTime.getSeconds()+"", 2);
						
			pStmt.setTimestamp(5, java.sql.Timestamp.valueOf(
					beginYear+"-"+beginMonth+"-"+beginDay+" "+beginHour+":"+beginMinute+":"+beginSecond));
			pStmt.setTimestamp(6, java.sql.Timestamp.valueOf(
					beginYear+"-"+beginMonth+"-"+beginDay+" "+beginHour+":"+beginMinute+":"+beginSecond));
			pStmt.setFloat(7, price);
			pStmt.setInt(8, type);

			pStmt.executeUpdate();

			Iterator iter = dishNumbers.iterator();
			while(iter.hasNext()){
				DishNumber dishenumber = (DishNumber)iter.next();
				String dishID = dishenumber.getDish().getDishID();
				int number = dishenumber.getNumber();
				System.out.println(billID+" "+dishID+" "+number);
				if(b.statement.executeQuery(
						"select * from dish where dishID = '"
						+dishID+"'").next()){
					b.statement.executeUpdate("insert into bill_dish values ('"
							+billID+"','"+dishID+"',"+number+")");
				}else{
					b.connection.rollback();
					return "菜不存在,无法添加!";
				}
			}
			b.connection.commit();
			b.connection.setAutoCommit(true);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block

			} 
			e.printStackTrace();
			return "数据库操作出错!";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block

			} 
			e.printStackTrace();
			return "出现未知错误!";
		} finally {
			try {
				b.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block

			}
		}
		return null;
	}

	public String update(){
		BaseSQL b = new BaseSQL();
		try {
			b.connect("eatery", "root", "123456");
			b.connection.setAutoCommit(false);

			ResultSet rs = b.statement.executeQuery(
					"select * from bill where billID = '"+billID+"'");

			if(rs.next()){
				PreparedStatement pStmt = b.connection.prepareStatement(
						"update bill set billID = ?,waiterID = ?,tableNum = ?,numberOfMan = ?," +
						"beginTime = ?,endTime = ?,price = ?,type =? where billID = ?");
				pStmt.setString(1, billID);
				pStmt.setString(2, waiter.getUserName());
				pStmt.setInt(3, tableNum);
				pStmt.setInt(4, numberOfMan);
				String beginYear = beginTime.getYear()+1900+"";
				String beginMonth = AddZeroAhead.addZeroAhead(beginTime.getMonth()+1+"", 2);
				String beginDay = AddZeroAhead.addZeroAhead(beginTime.getDate()+"", 2);
				String beginHour = AddZeroAhead.addZeroAhead(beginTime.getHours()+"", 2);
				String beginMinute = AddZeroAhead.addZeroAhead(beginTime.getMinutes()+"", 2);
				String beginSecond = AddZeroAhead.addZeroAhead(beginTime.getSeconds()+"", 2);
							
				pStmt.setTimestamp(5, java.sql.Timestamp.valueOf(
						beginYear+"-"+beginMonth+"-"+beginDay+" "+beginHour+":"+beginMinute+":"+beginSecond));
				String endYear = endTime.getYear()+1900+"";
				String endMonth = AddZeroAhead.addZeroAhead(endTime.getMonth()+1+"", 2);
				String endDay = AddZeroAhead.addZeroAhead(endTime.getDate()+"", 2);
				String endHour = AddZeroAhead.addZeroAhead(endTime.getHours()+"", 2);
				String endMinute = AddZeroAhead.addZeroAhead(endTime.getMinutes()+"", 2);
				String endSecond = AddZeroAhead.addZeroAhead(endTime.getSeconds()+"", 2);
				pStmt.setTimestamp(6, java.sql.Timestamp.valueOf(
						endYear+"-"+endMonth+"-"+endDay+" "+endHour+":"+endMinute+":"+endSecond));
//				pStmt.setTimestamp(5, (java.sql.Timestamp)beginTime);
//				pStmt.setTimestamp(6, (java.sql.Timestamp) endTime);
				pStmt.setFloat(7, price);
				pStmt.setInt(8, type);
				pStmt.setString(9, billID);
				pStmt.executeUpdate();
			}else{
				b.connection.rollback();
				return "数据库中不存在该项!";
			}

			
			Iterator iter = dishNumbers.iterator();
			
			b.statement.executeUpdate("delete from bill_dish where billID ='"+billID+"'");
			
			while(iter.hasNext()){
				DishNumber dishenumber = (DishNumber)iter.next();
				String dishID = dishenumber.getDish().getDishID();
				int number = dishenumber.getNumber();
				if(b.statement.executeQuery(
						"select * from dish where dishID = '"
						+dishID+"'").next()){
					b.statement.executeUpdate("insert into bill_dish values ('"
							+billID+"','"+dishID+"',"+number+")");
				}else{
					b.connection.rollback();
					return "菜不存在,无法添加!";
				}
			}
			b.connection.commit();
			b.connection.setAutoCommit(true);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} 
			e.printStackTrace();
			return "数据库操作出错!";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} 
			e.printStackTrace();
			return "出现未知错误!";
		} finally {
			try {
				b.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();

			}
		}
		return null;		
	}
	
	public String addDishes(Dish add,int number){

		Iterator iter = dishNumbers.iterator();
		DishNumber d = new DishNumber();
		d.setDish(add);
		d.setNumber(number);
		while(iter.hasNext()){
			DishNumber dishnumber = (DishNumber)iter.next();
			if(dishnumber.getDish().equals(add.getDishID())){
				
				dishNumbers.remove(dishnumber);
				dishNumbers.add(d);
				return "此菜已存在!替换!";
			}
		}
		dishNumbers.add(d);
		return "成功增加!";	
	}
	public String getBillID() {
		return billID;
	}

	
	public String deleteDishes(Dish delete){
		Iterator iter = dishNumbers.iterator();
		while(iter.hasNext()){
			DishNumber dishnumber = (DishNumber)iter.next();
			if(dishnumber.getDish().equals(delete.getDishID())){
				dishNumbers.remove(dishnumber);
				return "成功删除!";	
			}
		}
		return "删除失败!此菜不存在!";
	}
	
	public float caculatePrice(){

		Iterator<DishNumber> iterator = dishNumbers.iterator();
		price = 0;
		while(iterator.hasNext()){
			DishNumber d = iterator.next();
			price += d.getDish().getPrice()*d.getNumber();
		}
		return price;
	}
	
	public int queryDish(String dishID){
		dishID = AddZeroAhead.addZeroAhead(dishID, 8);
		if(dishNumbers.size() == 0){
			return 0;
		}
		for(int i = 0 ; i < dishNumbers.size(); i++){
			Dish temp = (Dish)dishNumbers.get(i).getDish();
			if(temp.equals(dishID)){
				return dishNumbers.get(i).getNumber();
			}
		}
		return 0;
	}
	
	public boolean equals(String compare){
		if(billID.equals(compare)){
			return true;
		}else{
			return false;
		}
	}
	
	public void setBillID(String billID) {
		this.billID = billID;
	}

	public User getWaiter() {
		return waiter;
	}

	public void setWaiter(User waiter) {
		this.waiter = waiter;
	}

	public int getTableNum() {
		return tableNum;
	}

	public void setTableNum(int tableNum) {
		this.tableNum = tableNum;
	}

	public int getNumberOfMan() {
		return numberOfMan;
	}

	public void setNumberOfMan(int numberOfMan) {
		this.numberOfMan = numberOfMan;
	}

	public Date getBeginTime() {
		return beginTime;
	}

	public void setBeginTime(Date beginTime) {
		this.beginTime = beginTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public float getPrice() {
		return price;
	}

	public void setPrice(float price) {
		this.price = price;
	}

	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

	public Vector<DishNumber> getDishNumbers() {
		return dishNumbers;
	}

	public void setDishNumbers(Vector<DishNumber> dishNumbers) {
		this.dishNumbers = dishNumbers;
	}

	public String importOrder(String orderID){
		Order order = new Order();
		if(order.getData(orderID)==null){
			setDishNumbers(order.getDishes());
			setNumberOfMan(order.getNumberOfMan());
			setPrice(order.getPrice());
			return null;
		}
		return "订单不存在!";
	}
}

⌨️ 快捷键说明

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