📄 bill.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 + -