📄 haircutshopmanage.java
字号:
{
if(e.getSource()==sure)
{
String id=idText.getText();
String level=levelText.getText();
String newLevel=newLevelText.getText();
h.buyerChangeSelect(id,level,newLevel);
}
setVisible(false);
dispose();
}
}
/**
*顾客更改选择
*id0:用户在当前队列中的序号--从一开始
*level0:用户所在的队列的级别--从一开始
*newlevel0:用户的新级别的选择
*/
public void buyerChangeSelect(String id0,String level0,String newLevel0)
{
try
{
if(buyerAdvaceMove(id0,level0))
{
int a=Integer.parseInt(newLevel0);
newbuyer(a);
dateData.flux--;
fluxText.setText(""+dateData.flux);
isChanged=true;
saveTempFileAcition.setEnabled(true);
}
}
catch(Exception ex)
{
ex.printStackTrace();
JOptionPane.showMessageDialog(null,"输入格式错误","理发店经营软件",JOptionPane.ERROR_MESSAGE);
}
}
/**
*实现顾客提前离去的对话框
*
*/
class BuyerAdvaceMoveDialog extends JDialog implements ActionListener
{
private JPanel p1,p2,p3,p4;
private JButton sure,cancel;
private JLabel idLabel,levelLabel;
private JTextField idText,levelText;
private HaircutShopManage h;
public BuyerAdvaceMoveDialog(JFrame parent,String title)
{
super(parent,title,true);
if(parent!=null&&parent instanceof HaircutShopManage)
h=(HaircutShopManage)parent;
sure=new JButton("确定");
cancel=new JButton("取消");
levelLabel=new JLabel("输入用户所在的队列的级别:");
idLabel=new JLabel("输入用户在当前队列中的序号:");
idText=new JTextField(10);
levelText=new JTextField(10);
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
p1.add(idLabel);
p1.add(idText);
p2.add(levelLabel);
p2.add(levelText);
p3.add(sure);
p3.add(cancel);
sure.addActionListener(this);
cancel.addActionListener(this);
if(parent!=null)
{
Dimension parentSize=parent.getSize();
Point p=parent.getLocation();
setLocation(p.x+parentSize.width/4,p.y+parentSize.height/4);
}
p4=new JPanel(new GridLayout(2,1));
p4.add(p2);
p4.add(p1);
getContentPane().add(p4,BorderLayout.CENTER);
getContentPane().add(p3,BorderLayout.SOUTH);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==sure)
{
String id=idText.getText();
String level=levelText.getText();
h.buyerAdvaceMove(id,level);
}
setVisible(false);
dispose();
}
}
/**
*顾客提前离去
*id0:用户在当前队列中的序号--从一开始
*level0:用户所在的队列的级别--从一开始
*/
public boolean buyerAdvaceMove(String id0,String level0)
{
try
{
int i=Integer.parseInt(id0);
int level=Integer.parseInt(level0);
if(level<1||level>haircutShop.levelBarber.length||i<1||i>dateData.buyerQueueLength[level-1])
{
JOptionPane.showMessageDialog(null,"输入不合实际","顾客管理",JOptionPane.WARNING_MESSAGE);
return false;
}
else
{
Buyer b=(Buyer)(dateData.buyerQueue[level-1].get(i-1));
Date d=new Date();
b.leaveTime=d;
leaveNumber++;
stayTime+=dateDistance(b.comeInTime,d);
dateData.averageStayTime=stayTime/leaveNumber;
averageStayTimeText.setText(""+dateData.averageStayTime);
dateData.buyerQueue[level-1].remove(i-1);
dateData.buyerQueueLength[level-1]--;
levelButton[level-1].textField.setText(""+dateData.buyerQueueLength[level-1]);
isChanged=true;
saveTempFileAcition.setEnabled(true);
}
}
catch(Exception ex)
{
ex.printStackTrace();
JOptionPane.showMessageDialog(null,"输入格式错误","理发店经营软件",JOptionPane.ERROR_MESSAGE);
return false;
}
return true;
}
/**
*新的一天
*/
public void newDay()
{
/*isChanged=false;
saveTempFileAcition.setEnabled(false);
endWorkAction.setEnabled(true);*/
setVisible(false);
dispose();
new HaircutShopManage(haircutShop);
}
/**
*顾客结帐离开
*id:理发师编号
*/
public void buyerLeaveWithCheckOut(int id)
{
if(checkofBarber(id)==false)
JOptionPane.showMessageDialog(null,"该编号的理发师不存在","顾客结帐离开",JOptionPane.WARNING_MESSAGE);
else
{
if(curBarber.barber.curBuyer!=null)
{
Date d=new Date();
curBarber.barber.curBuyer.leaveTime=d;
leaveNumber++;
stayTime+=dateDistance(curBarber.barber.curBuyer.comeInTime,d);
dateData.averageStayTime=stayTime/leaveNumber;
averageStayTimeText.setText(dateData.averageStayTime+"");
curBarber.barber.curBuyer=null;
barberIcon[curBarber.level][curBarber.index].comeIn();
dateData.income+=(haircutShop.levelFee[curBarber.level]);
dateData.levelIncome[curBarber.level]+=(haircutShop.levelFee[curBarber.level]);
incomeText.setText(""+dateData.income);
if(isEndWork==true)
dateData.endingWorkTime+=dateDistance(dateData.closeShopTime,d);
}
else
{
JOptionPane.showMessageDialog(null,"该编号的理发师手头没有顾客","顾客结帐离开",JOptionPane.ERROR_MESSAGE);
}
}
}
/**
*顾客开始理发
*id:理发师编号
*/
public void buyerBeginHaitcut(int id)
{
if(checkofBarber(id)==false)
JOptionPane.showMessageDialog(null,"该编号的理发师不存在","顾客开始理发",JOptionPane.WARNING_MESSAGE);
else
{
if((dateData.buyerQueueLength[curBarber.level])>0)
{
Buyer b=(Buyer)(dateData.buyerQueue[curBarber.level].get(0));
b.haircutTime=new Date();
curBarber.barber.curBuyer=b;
dateData.buyerQueue[curBarber.level].remove(0);
dateData.buyerQueueLength[curBarber.level]--;
levelButton[curBarber.level].textField.setText(""+dateData.buyerQueueLength[curBarber.level]);
barberIcon[curBarber.level][curBarber.index].hasBuyer();
isChanged=true;
saveTempFileAcition.setEnabled(true);
}
else
JOptionPane.showMessageDialog(null,"该级别没有顾客可以理发","顾客开始理发",JOptionPane.WARNING_MESSAGE);
}
}
/**
*新顾客
*level:顾客挑选的级别--从一开始
*/
public void newbuyer(int level)
{
if(level<1||level>haircutShop.levelBarber.length)
JOptionPane.showMessageDialog(null,"输入不合实际情况","理发师报到",JOptionPane.ERROR_MESSAGE);
else
{
Buyer b=new Buyer(dateData.flux,new Date(),dateData.buyerQueueLength[level-1]);
dateData.buyer.add(b);
dateData.buyerQueue[level-1].add(b);
queueLength+=dateData.buyerQueueLength[level-1];
dateData.buyerQueueLength[level-1]++;
levelButton[level-1].textField.setText(""+dateData.buyerQueueLength[level-1]);
dateData.flux++;
dateData.averageQueueLength=queueLength/(dateData.flux);
averageQueueLengthTimeText.setText(""+dateData.averageQueueLength);
fluxText.setText(""+dateData.flux);
isChanged=true;
saveTempFileAcition.setEnabled(true);
}
}
/**
*检查理发师编号是否合法或者以前有出现过
*/
public boolean checkofBarber(int id)
{
Barber b=null;
Barber temp;
for(int i=0;i<haircutShop.levelBarber.length;i++)
for(int j=0;j<haircutShop.levelLength[i];j++)
{
Object o=haircutShop.levelBarber[i].get(j);
temp=(Barber)o;
if(temp.barberID==id)
{
curBarber=new CurBarber(id,i,temp.name,j,temp);
return true;
}
}
curBarber=null;
return false;
}
/**
*
*理发师报到
*id:理发师编号
*
*/
public void barbercheckIn(int id)
{
if(checkofBarber(id)==false)
JOptionPane.showMessageDialog(null,"该编号的理发师不存在","理发师报到",JOptionPane.WARNING_MESSAGE);
else
{
curBarber.barber.beginWorkTime=new Date();
curBarber.barber.dimissionTime=null;
barberIcon[curBarber.level][curBarber.index].comeIn();
isChanged=true;
saveTempFileAcition.setEnabled(true);
}
}
/**
*理发师离开
*id:理发师编号
*/
public void barberLeave(int id)
{
if(checkofBarber(id)==false)
JOptionPane.showMessageDialog(null,"该编号的理发师不存在","理发师离开",JOptionPane.WARNING_MESSAGE);
else
{
Barber b=curBarber.barber;
b.dimissionTime=new Date();
b.workTime+=dateDistance(b.beginWorkTime,b.dimissionTime);
barberIcon[curBarber.level][curBarber.index].go();
isChanged=true;
saveTempFileAcition.setEnabled(true);
}
}
/**
*计算当天两个时间的长度--以分为单位
*/
public long dateDistance(Date last,Date now)
{
return now.getHours()*60-last.getHours()*60+now.getMinutes()-last.getMinutes();
}
/**
*查询事件处理
*/
class QueryAction extends AbstractAction
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -