|
|
|
@ -43,193 +43,298 @@ import com.lingnan.supermarket.utils.SendQQMailUtil;
|
|
|
|
|
import com.lingnan.supermarket.utils.TimeAndOrder;
|
|
|
|
|
import com.lingnan.supermarket.view.ProdCatalogView.MyItemListener;
|
|
|
|
|
|
|
|
|
|
// 定义一个名为InView的类,继承自JPanel,并实现ActionListener接口
|
|
|
|
|
public class InView extends JPanel implements ActionListener{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//上面
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义顶部工具栏面板
|
|
|
|
|
private JPanel toolBarPanel;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义搜索面板
|
|
|
|
|
private JPanel searchPanel;
|
|
|
|
|
// 定义标签
|
|
|
|
|
private JLabel nameLabel,locationLabel;
|
|
|
|
|
// 定义文本框,用于商品名称搜索
|
|
|
|
|
private JTextField nameSearchTF;
|
|
|
|
|
// 定义按钮,包括搜索、库存、退出等
|
|
|
|
|
private JButton searchBtn,StockBtn,exitBtn;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义操作面板
|
|
|
|
|
private JPanel opePanel;
|
|
|
|
|
// 定义操作按钮,包括添加、更新、删除、历史、返回、详情等
|
|
|
|
|
private JButton addBtn,updateBtn,deleteBtn,historyBtn,backBtn,detailBtn;
|
|
|
|
|
|
|
|
|
|
//中间
|
|
|
|
|
|
|
|
|
|
// 定义中间部分的滚动面板和表格
|
|
|
|
|
private JScrollPane tableScrollPane;
|
|
|
|
|
private JTable inTable;
|
|
|
|
|
|
|
|
|
|
//下面
|
|
|
|
|
|
|
|
|
|
// 定义底部面板及其左右部分
|
|
|
|
|
private JPanel bottomPanel,bottomPanelLeft,bottomPanelRight;
|
|
|
|
|
// 定义显示记录数的标签
|
|
|
|
|
private JLabel countInfoLabel,countInfoLabel2;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义缓冲区对象和其实现类
|
|
|
|
|
private Buffer Buffer;
|
|
|
|
|
private BufferImpl BufferImpl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义一个静态的向量,用于存储Production对象
|
|
|
|
|
private static Vector<Production> v = new Vector<Production>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义一个下拉框,用于选择状态
|
|
|
|
|
private JComboBox<String> combo;
|
|
|
|
|
// 定义状态数组,包含不同的货物状态
|
|
|
|
|
private String[] status ={"全部","已入库","待入库","已取消"};
|
|
|
|
|
// 定义商品目录ID
|
|
|
|
|
private int catalog;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义一个JFrame对象,用于引用主窗口
|
|
|
|
|
private JFrame jFrame;
|
|
|
|
|
// 定义一个User对象,用于存储当前用户信息
|
|
|
|
|
private User user;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义一个表格模型,用于进货表格
|
|
|
|
|
private InTableModel inTableModel ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 实例化缓冲区实现类
|
|
|
|
|
private BufferImpl bufferImpl = new BufferImpl();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义一个标记,用于区分是从进货表还是提醒过来的表
|
|
|
|
|
private int mark;/*标记从提醒那里来1是进货表,0是提醒过来的表*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义一个进货订单服务实现类
|
|
|
|
|
private inOrderServiceImpl inOrderImpl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义一个浮点数,用于存储总价
|
|
|
|
|
private Float allPrice;
|
|
|
|
|
// 定义一个整数,用于存储行号
|
|
|
|
|
private int row;
|
|
|
|
|
// 定义一个字符串,用于存储用户名
|
|
|
|
|
private String uname;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// InView类的构造方法,接收主窗口、用户、货物向量、标记作为参数
|
|
|
|
|
public InView(JFrame jFrame,User user,Vector<Production> v,int mark) {
|
|
|
|
|
this.setLayout(new BorderLayout());
|
|
|
|
|
// 设置布局管理器为边界布局
|
|
|
|
|
this.setLayout(new BorderLayout());
|
|
|
|
|
// 保存传入的JFrame引用
|
|
|
|
|
this.jFrame = jFrame;
|
|
|
|
|
// 保存传入的用户对象
|
|
|
|
|
this.user = user;
|
|
|
|
|
//获得进货缓冲区的保存的货物并删除缓冲区
|
|
|
|
|
// 获取进货缓冲区保存的货物并删除缓冲区中的数据
|
|
|
|
|
this.v =bufferImpl.allInBuffer();
|
|
|
|
|
bufferImpl.DelAllInBuffer();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 保存传入的标记
|
|
|
|
|
this.mark=mark;
|
|
|
|
|
// 打印标记值
|
|
|
|
|
System.out.println("mark="+mark);
|
|
|
|
|
// 获取用户名
|
|
|
|
|
uname = user.getUsername();
|
|
|
|
|
// 初始化视图
|
|
|
|
|
initView();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化视图的方法
|
|
|
|
|
private void initView() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
toolBarPanel = new JPanel(new BorderLayout());
|
|
|
|
|
|
|
|
|
|
searchPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
|
|
|
|
|
|
|
|
|
|
// 创建工具栏面板,并设置布局管理器为边界布局
|
|
|
|
|
toolBarPanel = new JPanel(new BorderLayout());
|
|
|
|
|
|
|
|
|
|
// 创建搜索面板,并设置布局管理器为流布局,对齐方式为右对齐
|
|
|
|
|
searchPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
|
|
|
|
|
// 创建并初始化订单号标签
|
|
|
|
|
nameLabel = new JLabel("订单号");
|
|
|
|
|
// 创建文本框,用于输入订单号,宽度为20
|
|
|
|
|
nameSearchTF = new JTextField(20);
|
|
|
|
|
// 创建搜索按钮,并设置图标
|
|
|
|
|
searchBtn = new JButton(new ImageIcon("static\\icon\\search.png"));
|
|
|
|
|
// 为搜索按钮添加动作监听器
|
|
|
|
|
searchBtn.addActionListener(this);
|
|
|
|
|
// 创建并初始化位置标签
|
|
|
|
|
locationLabel=new JLabel("当前位置>进货系统");
|
|
|
|
|
// 设置位置标签的字体
|
|
|
|
|
locationLabel.setFont(new FontUtil().userFont);
|
|
|
|
|
// 设置位置标签的前景色
|
|
|
|
|
locationLabel.setForeground(new Color(18, 150, 219));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建下拉框,并使用状态数组初始化
|
|
|
|
|
combo = new JComboBox<String>(status);
|
|
|
|
|
// 为下拉框添加项目监听器
|
|
|
|
|
combo.addItemListener(new MyItemListener());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
opePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建操作面板,并设置布局管理器为流布局,对齐方式为左对齐
|
|
|
|
|
opePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
|
|
|
|
|
// 创建添加按钮,并设置图标
|
|
|
|
|
addBtn =new JButton(new ImageIcon("static\\icon\\add.png"));
|
|
|
|
|
// 创建更新按钮,并设置图标
|
|
|
|
|
updateBtn =new JButton(new ImageIcon("static\\icon\\change.png"));
|
|
|
|
|
// 创建删除按钮,并设置图标
|
|
|
|
|
deleteBtn =new JButton(new ImageIcon("static\\icon\\delete.png"));
|
|
|
|
|
// 创建历史按钮,并设置图标
|
|
|
|
|
historyBtn =new JButton(new ImageIcon("static\\icon\\history.png"));
|
|
|
|
|
// 创建返回按钮,并设置图标
|
|
|
|
|
backBtn =new JButton(new ImageIcon("static\\icon\\back.png"));
|
|
|
|
|
// 创建详情按钮,并设置图标
|
|
|
|
|
detailBtn = new JButton(new ImageIcon("static\\icon\\detail.png"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 为添加按钮添加动作监听器
|
|
|
|
|
addBtn.addActionListener(this);
|
|
|
|
|
// 为更新按钮添加动作监听器
|
|
|
|
|
updateBtn.addActionListener(this);
|
|
|
|
|
// 为删除按钮添加动作监听器
|
|
|
|
|
deleteBtn.addActionListener(this);
|
|
|
|
|
// 为历史按钮添加动作监听器
|
|
|
|
|
historyBtn.addActionListener(this);
|
|
|
|
|
// 为返回按钮添加动作监听器
|
|
|
|
|
backBtn.addActionListener(this);
|
|
|
|
|
// 为详情按钮添加动作监听器
|
|
|
|
|
detailBtn.addActionListener(this);
|
|
|
|
|
|
|
|
|
|
backBtn.setVisible(false);/*在记录页面显示出来*/
|
|
|
|
|
detailBtn.setVisible(false);/*在订单详情页显示出来*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 设置返回按钮为不可见,它在记录页面会显示出来
|
|
|
|
|
backBtn.setVisible(false);
|
|
|
|
|
// 设置详情按钮为不可见,它在订单详情页会显示出来
|
|
|
|
|
detailBtn.setVisible(false);
|
|
|
|
|
|
|
|
|
|
// 将添加按钮添加到操作面板
|
|
|
|
|
opePanel.add(addBtn);
|
|
|
|
|
// 将返回按钮添加到操作面板
|
|
|
|
|
opePanel.add(backBtn);
|
|
|
|
|
// 将详情按钮添加到操作面板
|
|
|
|
|
opePanel.add(detailBtn);
|
|
|
|
|
opePanel.add(updateBtn);
|
|
|
|
|
// 将更新按钮添加到操作面板
|
|
|
|
|
opePanel.add(updateBtn);
|
|
|
|
|
// 将删除按钮添加到操作面板
|
|
|
|
|
opePanel.add(deleteBtn);
|
|
|
|
|
// 将历史按钮添加到操作面板
|
|
|
|
|
opePanel.add(historyBtn);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 将位置标签添加到搜索面板
|
|
|
|
|
searchPanel.add(locationLabel);
|
|
|
|
|
// 将订单号标签添加到搜索面板
|
|
|
|
|
searchPanel.add(nameLabel);
|
|
|
|
|
// 将订单号文本框添加到搜索面板
|
|
|
|
|
searchPanel.add(nameSearchTF);
|
|
|
|
|
// 将搜索按钮添加到搜索面板
|
|
|
|
|
searchPanel.add(searchBtn);
|
|
|
|
|
// 将下拉框添加到搜索面板
|
|
|
|
|
searchPanel.add(combo);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 将搜索面板添加到工具栏面板的西边
|
|
|
|
|
toolBarPanel.add(searchPanel,"West");
|
|
|
|
|
// 将操作面板添加到工具栏面板的东边
|
|
|
|
|
toolBarPanel.add(opePanel,"East");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//中间表
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化中间表格模型,使用货物向量v
|
|
|
|
|
inTableModel = new InTableModel(v);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建表格,使用中间表格模型
|
|
|
|
|
inTable = new JTable(inTableModel);
|
|
|
|
|
// 设置表格字体
|
|
|
|
|
inTable.setFont(FontUtil.tableFont);
|
|
|
|
|
// 设置表格行高
|
|
|
|
|
inTable.setRowHeight(50);
|
|
|
|
|
// 创建滚动面板,并将表格添加到其中
|
|
|
|
|
tableScrollPane = new JScrollPane(inTable);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取表格模型中的总价格
|
|
|
|
|
allPrice = inTableModel.getAllPrice();
|
|
|
|
|
// 获取表格模型中的行数
|
|
|
|
|
row = inTableModel.getRowCount();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//下面
|
|
|
|
|
// 创建底部左侧面板,并设置布局管理器为流布局,对齐方式为右对齐
|
|
|
|
|
bottomPanelLeft = new JPanel(new FlowLayout(FlowLayout.RIGHT));
|
|
|
|
|
countInfoLabel = new JLabel("商品种类:"+row+",总价:"+allPrice);
|
|
|
|
|
// 创建并初始化显示商品种类和总价的标签
|
|
|
|
|
countInfoLabel = new JLabel("商品种类:"+row+",总价:"+allPrice);
|
|
|
|
|
// 将标签添加到左侧面板,指定对齐方式为左对齐
|
|
|
|
|
bottomPanelLeft.add(countInfoLabel,"Left");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建底部右侧面板,并设置布局管理器为流布局,对齐方式为左对齐
|
|
|
|
|
bottomPanelRight = new JPanel(new FlowLayout(FlowLayout.LEFT));
|
|
|
|
|
// 创建结账按钮,并设置图标
|
|
|
|
|
StockBtn =new JButton(new ImageIcon("static\\icon\\stock.png"));/*结账按钮*/
|
|
|
|
|
// 创建退出按钮,并设置图标
|
|
|
|
|
exitBtn =new JButton(new ImageIcon("static\\icon\\exit.png"));/*退出按钮*/
|
|
|
|
|
// 为结账按钮添加动作监听器
|
|
|
|
|
StockBtn.addActionListener(this);
|
|
|
|
|
// 为退出按钮添加动作监听器
|
|
|
|
|
exitBtn.addActionListener(this);
|
|
|
|
|
// 将结账按钮添加到右侧面板
|
|
|
|
|
bottomPanelRight.add(StockBtn);
|
|
|
|
|
// 将退出按钮添加到右侧面板
|
|
|
|
|
bottomPanelRight.add(exitBtn);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建底部面板,并设置布局管理器为边界布局
|
|
|
|
|
bottomPanel = new JPanel(new BorderLayout());
|
|
|
|
|
// 将右侧面板添加到底部面板的东边
|
|
|
|
|
bottomPanel.add(bottomPanelRight,"East");
|
|
|
|
|
// 将左侧面板添加到底部面板的西边
|
|
|
|
|
bottomPanel.add(bottomPanelLeft,"West");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 将工具栏面板添加到窗口的北边
|
|
|
|
|
this.add(toolBarPanel,"North");
|
|
|
|
|
// 将滚动面板(含表格)添加到窗口的中间
|
|
|
|
|
this.add(tableScrollPane,"Center");/*将表格放到中间*/
|
|
|
|
|
// 将底部面板添加到窗口的南边
|
|
|
|
|
this.add(bottomPanel,"South");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果标记为1,表示从提醒页面过来,刷新缓冲区
|
|
|
|
|
if(mark==1) /*判断是不是从提醒那里过来的*/{
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 如果标记为0,执行进货订单记录操作
|
|
|
|
|
else if(mark==0) {
|
|
|
|
|
InOrderRecord();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 设置窗口为可见
|
|
|
|
|
setVisible(true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 提供一个静态方法,用于获取存储Production对象的向量
|
|
|
|
|
public static Vector<Production> getVector(){
|
|
|
|
|
return v;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义一个内部类,实现ItemListener接口,用于监听下拉框的项目状态改变事件
|
|
|
|
|
public class MyItemListener implements ItemListener {
|
|
|
|
|
|
|
|
|
|
// 重写itemStateChanged方法,当下拉框中的项目状态改变时被调用
|
|
|
|
|
@Override
|
|
|
|
|
public void itemStateChanged(ItemEvent e) {
|
|
|
|
|
// 将事件源强制转换为JComboBox
|
|
|
|
|
JComboBox cb = (JComboBox) e.getSource();
|
|
|
|
|
// 获取下拉框中选中的项目,并转换为字符串
|
|
|
|
|
String catalog1 = (String) cb.getSelectedItem();
|
|
|
|
|
// 根据选中的项目设置商品目录ID
|
|
|
|
|
if(catalog1.equals("全部"))
|
|
|
|
|
catalog=0;
|
|
|
|
|
else if(catalog1.equals("已入库"))
|
|
|
|
@ -238,276 +343,424 @@ public class InView extends JPanel implements ActionListener{
|
|
|
|
|
catalog=2;
|
|
|
|
|
else if(catalog1.equals("已取消"))
|
|
|
|
|
catalog=3;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据商品目录ID执行查找状态的结果处理
|
|
|
|
|
resultOfFindStatus(catalog);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//按钮组件隐藏
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 设置按钮组件的可见性,用于订单视图
|
|
|
|
|
public void OrderView() {
|
|
|
|
|
// 显示返回按钮
|
|
|
|
|
backBtn.setVisible(true);
|
|
|
|
|
// 显示详情按钮
|
|
|
|
|
detailBtn.setVisible(true);
|
|
|
|
|
// 显示更新按钮
|
|
|
|
|
updateBtn.setVisible(true);
|
|
|
|
|
// 显示删除按钮
|
|
|
|
|
deleteBtn.setVisible(true);
|
|
|
|
|
// 隐藏添加按钮
|
|
|
|
|
addBtn.setVisible(false);
|
|
|
|
|
// 隐藏历史按钮
|
|
|
|
|
historyBtn.setVisible(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据订单编号处理结果
|
|
|
|
|
public void resultOfNumber(String iNumber) {
|
|
|
|
|
// 重置标记
|
|
|
|
|
this.mark=0;
|
|
|
|
|
// 创建订单表格模型
|
|
|
|
|
InOrderTM inOrderTM = new InOrderTM();
|
|
|
|
|
// 根据订单编号查询结果
|
|
|
|
|
inOrderTM.resultOfNumber(iNumber);
|
|
|
|
|
// 更新表格模型
|
|
|
|
|
inTable.setModel(inOrderTM);
|
|
|
|
|
// 清空底部左侧面板
|
|
|
|
|
bottomPanelLeft.removeAll();
|
|
|
|
|
// 创建并初始化显示记录数的标签
|
|
|
|
|
countInfoLabel = new JLabel("共"+inOrderTM.getRowCount()+"条记录");
|
|
|
|
|
// 将标签添加到底部左侧面板
|
|
|
|
|
bottomPanelLeft.add(countInfoLabel);
|
|
|
|
|
// 调用OrderView设置按钮可见性
|
|
|
|
|
OrderView();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 根据状态处理查询结果
|
|
|
|
|
public void resultOfFindStatus(int catalog) {
|
|
|
|
|
// 重置标记
|
|
|
|
|
this.mark=0;
|
|
|
|
|
// 创建订单表格模型
|
|
|
|
|
InOrderTM inOrderTM = new InOrderTM();
|
|
|
|
|
// 根据状态查询结果
|
|
|
|
|
inOrderTM.resultOfFind(catalog);
|
|
|
|
|
// 更新表格模型
|
|
|
|
|
inTable.setModel(inOrderTM);
|
|
|
|
|
// 清空底部左侧面板
|
|
|
|
|
bottomPanelLeft.removeAll();
|
|
|
|
|
// 创建并初始化显示记录数的标签
|
|
|
|
|
countInfoLabel = new JLabel("共"+inOrderTM.getRowCount()+"条记录");
|
|
|
|
|
// 将标签添加到底部左侧面板
|
|
|
|
|
bottomPanelLeft.add(countInfoLabel);
|
|
|
|
|
// 调用OrderView设置按钮可见性
|
|
|
|
|
OrderView();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*刷新*/
|
|
|
|
|
public void refreshBuffer(Vector<Production> v) {
|
|
|
|
|
this.mark=1;
|
|
|
|
|
|
|
|
|
|
// 刷新缓冲区,更新表格数据
|
|
|
|
|
public void refreshBuffer(Vector<Production> v) {
|
|
|
|
|
// 设置标记
|
|
|
|
|
this.mark=1;
|
|
|
|
|
// 创建商品表格模型
|
|
|
|
|
InTableModel inTableModel = new InTableModel(v);
|
|
|
|
|
// 更新表格模型
|
|
|
|
|
inTable.setModel(inTableModel);
|
|
|
|
|
// 清空底部左侧面板
|
|
|
|
|
bottomPanelLeft.removeAll();
|
|
|
|
|
// 创建并初始化显示商品种类和总价的标签
|
|
|
|
|
countInfoLabel = new JLabel("商品种类:"+inTableModel.getRowCount()+",总价:"+inTableModel.getAllPrice());
|
|
|
|
|
// 将标签添加到底部左侧面板
|
|
|
|
|
bottomPanelLeft.add(countInfoLabel);
|
|
|
|
|
// 隐藏返回按钮
|
|
|
|
|
backBtn.setVisible(false);
|
|
|
|
|
// 隐藏详情按钮
|
|
|
|
|
detailBtn.setVisible(false);
|
|
|
|
|
// 显示历史按钮
|
|
|
|
|
historyBtn.setVisible(true);
|
|
|
|
|
// 显示更新按钮
|
|
|
|
|
updateBtn.setVisible(true);
|
|
|
|
|
// 显示添加按钮
|
|
|
|
|
addBtn.setVisible(true);
|
|
|
|
|
// 显示删除按钮
|
|
|
|
|
deleteBtn.setVisible(true);
|
|
|
|
|
|
|
|
|
|
allPrice = inTableModel.getAllPrice();
|
|
|
|
|
|
|
|
|
|
// 更新总价和行数
|
|
|
|
|
allPrice = inTableModel.getAllPrice();
|
|
|
|
|
row = inTableModel.getRowCount();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*调出进货订单表*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 调出进货订单表 */
|
|
|
|
|
public void InOrderRecord() {
|
|
|
|
|
// 设置标记为0
|
|
|
|
|
this.mark=0;
|
|
|
|
|
// 创建进货订单表格模型
|
|
|
|
|
InOrderTM inOrderTM = new InOrderTM();
|
|
|
|
|
// 获取所有进货订单记录
|
|
|
|
|
inOrderTM.allInOrderRecord();
|
|
|
|
|
// 更新表格模型
|
|
|
|
|
inTable.setModel(inOrderTM);
|
|
|
|
|
// 清空底部左侧面板
|
|
|
|
|
bottomPanelLeft.removeAll();
|
|
|
|
|
// 创建并初始化显示记录数的标签
|
|
|
|
|
countInfoLabel = new JLabel("共"+inOrderTM.getRowCount()+"条记录");
|
|
|
|
|
// 将标签添加到底部左侧面板
|
|
|
|
|
bottomPanelLeft.add(countInfoLabel);
|
|
|
|
|
// 调用OrderView设置按钮可见性
|
|
|
|
|
OrderView();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*调出进货订单表*/
|
|
|
|
|
|
|
|
|
|
/* 根据订单号调出进货订单记录 */
|
|
|
|
|
public void InRecord(String iNumber) {
|
|
|
|
|
// 设置标记为2
|
|
|
|
|
this.mark=2;
|
|
|
|
|
// 创建进货记录表格模型,并传入订单号
|
|
|
|
|
InRecordTM inRecordTM = new InRecordTM(iNumber);
|
|
|
|
|
// 根据订单号查询进货记录
|
|
|
|
|
inRecordTM.findInRecordByINumber();
|
|
|
|
|
// 更新表格模型
|
|
|
|
|
inTable.setModel(inRecordTM);
|
|
|
|
|
// 清空底部左侧面板
|
|
|
|
|
bottomPanelLeft.removeAll();
|
|
|
|
|
// 创建并初始化显示订单号和记录数的标签
|
|
|
|
|
countInfoLabel = new JLabel("订单号@"+iNumber+"共有"+inRecordTM.getRowCount()+"条记录");
|
|
|
|
|
// 将标签添加到底部左侧面板
|
|
|
|
|
bottomPanelLeft.add(countInfoLabel);
|
|
|
|
|
// 设置按钮可见性
|
|
|
|
|
backBtn.setVisible(true);
|
|
|
|
|
detailBtn.setVisible(false);
|
|
|
|
|
updateBtn.setVisible(false);
|
|
|
|
|
addBtn.setVisible(false);
|
|
|
|
|
historyBtn.setVisible(false);
|
|
|
|
|
deleteBtn.setVisible(false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*按钮监听时间*/
|
|
|
|
|
@Override
|
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
|
BufferImpl = new BufferImpl();/*获得购物车*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 按钮监听事件 */
|
|
|
|
|
@Override
|
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
|
// 实例化购物车
|
|
|
|
|
BufferImpl = new BufferImpl();/* 获得购物车 */
|
|
|
|
|
// 获取事件源
|
|
|
|
|
Object source = e.getSource();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果事件源是搜索按钮
|
|
|
|
|
if(searchBtn==source) {
|
|
|
|
|
String number = nameSearchTF.getText();
|
|
|
|
|
System.out.println("搜索后的订单:"+number);
|
|
|
|
|
resultOfNumber(number);
|
|
|
|
|
// 获取搜索框中的文本
|
|
|
|
|
String number = nameSearchTF.getText();
|
|
|
|
|
// 打印搜索后的订单号
|
|
|
|
|
System.out.println("搜索后的订单:"+number);
|
|
|
|
|
// 处理搜索结果
|
|
|
|
|
resultOfNumber(number);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if(addBtn==source) {/*添加*/
|
|
|
|
|
InDialog outDialog = new InDialog(jFrame,v,user);
|
|
|
|
|
outDialog.setVisible(true);
|
|
|
|
|
v=outDialog.getVector();
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
|
|
|
|
|
// 如果事件源是添加按钮
|
|
|
|
|
else if(addBtn==source) {/* 添加 */
|
|
|
|
|
// 创建并显示添加对话框
|
|
|
|
|
InDialog outDialog = new InDialog(jFrame,v,user);
|
|
|
|
|
outDialog.setVisible(true);
|
|
|
|
|
// 获取对话框中的向量并更新
|
|
|
|
|
v=outDialog.getVector();
|
|
|
|
|
// 刷新购物车
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果事件源是更新按钮
|
|
|
|
|
else if(updateBtn==source) {/* 更新 */
|
|
|
|
|
// 打印当前标记
|
|
|
|
|
System.out.println("mark="+mark);
|
|
|
|
|
// 获取选中行的索引
|
|
|
|
|
int rowIndex = inTable.getSelectedRow();
|
|
|
|
|
// 如果没有选中行,弹出提示
|
|
|
|
|
if(rowIndex==-1) {
|
|
|
|
|
JOptionPane.showMessageDialog(this,"请选中一条进行更改数量");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else if(updateBtn==source) {/*更新*/
|
|
|
|
|
System.out.println("mark="+mark);
|
|
|
|
|
int rowIndex = inTable.getSelectedRow();
|
|
|
|
|
if(rowIndex==-1) {
|
|
|
|
|
JOptionPane.showMessageDialog(this,"请选中一条进行更改数量");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//进货表修改
|
|
|
|
|
if(mark==1) {
|
|
|
|
|
String id =(String) inTable.getValueAt(rowIndex,0);
|
|
|
|
|
ChangeSumDialog changesumDialog = new ChangeSumDialog(jFrame,id,"In",v);
|
|
|
|
|
changesumDialog.setVisible(true);
|
|
|
|
|
v = changesumDialog.getVector();
|
|
|
|
|
System.out.println("更改状态后v.size="+v.size());
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//inOrder修改,修改状态
|
|
|
|
|
else if(mark==0) {
|
|
|
|
|
String iNumber =(String) inTable.getValueAt(rowIndex,0);
|
|
|
|
|
String status =(String) inTable.getValueAt(rowIndex,4);
|
|
|
|
|
if(status.equals("已入库")) {
|
|
|
|
|
JOptionPane.showMessageDialog(this,"订单上的货物已入库无法修改状态","提示",JOptionPane.INFORMATION_MESSAGE);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ChangeStatusDialog changeStatusDialog = new ChangeStatusDialog(jFrame,iNumber,status);
|
|
|
|
|
changeStatusDialog.setVisible(true);
|
|
|
|
|
MainView.refreshRemind();
|
|
|
|
|
HomeView.refreshHome();
|
|
|
|
|
InOrderRecord();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 如果标记为1,表示进货表修改
|
|
|
|
|
if(mark==1) {
|
|
|
|
|
// 获取选中行的ID
|
|
|
|
|
String id =(String) inTable.getValueAt(rowIndex,0);
|
|
|
|
|
// 创建并显示更改数量对话框
|
|
|
|
|
ChangeSumDialog changesumDialog = new ChangeSumDialog(jFrame,id,"In",v);
|
|
|
|
|
changesumDialog.setVisible(true);
|
|
|
|
|
// 获取对话框中的向量并更新
|
|
|
|
|
v = changesumDialog.getVector();
|
|
|
|
|
// 打印更改状态后的向量大小
|
|
|
|
|
System.out.println("更改状态后v.size="+v.size());
|
|
|
|
|
// 刷新购物车
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果标记为0,表示inOrder修改,修改状态
|
|
|
|
|
else if(mark==0) {
|
|
|
|
|
// 获取选中行的订单号和状态
|
|
|
|
|
String iNumber =(String) inTable.getValueAt(rowIndex,0);
|
|
|
|
|
String status =(String) inTable.getValueAt(rowIndex,4);
|
|
|
|
|
// 如果状态为已入库,弹出提示
|
|
|
|
|
if(status.equals("已入库")) {
|
|
|
|
|
JOptionPane.showMessageDialog(this,"订单上的货物已入库无法修改状态","提示",JOptionPane.INFORMATION_MESSAGE);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 创建并显示更改状态对话框
|
|
|
|
|
ChangeStatusDialog changeStatusDialog = new ChangeStatusDialog(jFrame,iNumber,status);
|
|
|
|
|
changeStatusDialog.setVisible(true);
|
|
|
|
|
// 刷新提醒和首页视图
|
|
|
|
|
MainView.refreshRemind();
|
|
|
|
|
HomeView.refreshHome();
|
|
|
|
|
// 重新加载进货订单记录
|
|
|
|
|
InOrderRecord();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 如果事件源是删除按钮
|
|
|
|
|
else if(deleteBtn==source) {
|
|
|
|
|
int rowIndex = inTable.getSelectedRow();
|
|
|
|
|
if(rowIndex==-1) {
|
|
|
|
|
JOptionPane.showMessageDialog(this,"请选中一条");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*删除进货表的*/
|
|
|
|
|
if(mark==1) {
|
|
|
|
|
System.out.println("删除进货表");
|
|
|
|
|
String id =(String) inTable.getValueAt(rowIndex,0);
|
|
|
|
|
int select = JOptionPane.showConfirmDialog(this,"是否删除id为"+id+"的记录","提示",JOptionPane.YES_NO_OPTION);
|
|
|
|
|
if(select==JOptionPane.YES_OPTION) {/*选择是*/
|
|
|
|
|
for(int i =0;i<v.size();i++) {
|
|
|
|
|
System.out.println("开始删除");
|
|
|
|
|
if(v.elementAt(i).getId().equals(id))
|
|
|
|
|
{
|
|
|
|
|
v.remove(i);
|
|
|
|
|
|
|
|
|
|
JOptionPane.showMessageDialog(this,"删除成功","提示",JOptionPane.INFORMATION_MESSAGE);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//删除进货订单*/
|
|
|
|
|
else if(mark==0) {
|
|
|
|
|
System.out.println("删除订单表");
|
|
|
|
|
String iNumber =(String) inTable.getValueAt(rowIndex,0);
|
|
|
|
|
int select = JOptionPane.showConfirmDialog(this,"是否删除订单为"+iNumber+"的记录","提示",JOptionPane.YES_NO_OPTION);
|
|
|
|
|
if(select==JOptionPane.YES_OPTION) {/*选择是*/
|
|
|
|
|
System.out.println("iNumber="+iNumber);
|
|
|
|
|
inOrderImpl=new inOrderServiceImpl();
|
|
|
|
|
inOrderImpl.deleteInOrder(iNumber);
|
|
|
|
|
JOptionPane.showMessageDialog(this,"删除成功","提示",JOptionPane.INFORMATION_MESSAGE);
|
|
|
|
|
InOrderRecord();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取选中行的索引
|
|
|
|
|
int rowIndex = inTable.getSelectedRow();
|
|
|
|
|
// 如果没有选中行,弹出提示
|
|
|
|
|
if(rowIndex==-1) {
|
|
|
|
|
JOptionPane.showMessageDialog(this,"请选中一条");
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 删除进货表的记录 */
|
|
|
|
|
if(mark==1) {
|
|
|
|
|
// 打印提示信息
|
|
|
|
|
System.out.println("删除进货表");
|
|
|
|
|
// 获取选中行的ID
|
|
|
|
|
String id =(String) inTable.getValueAt(rowIndex,0);
|
|
|
|
|
// 显示确认删除对话框
|
|
|
|
|
int select = JOptionPane.showConfirmDialog(this,"是否删除id为"+id+"的记录","提示",JOptionPane.YES_NO_OPTION);
|
|
|
|
|
// 如果用户选择是
|
|
|
|
|
if(select==JOptionPane.YES_OPTION) {/*选择是*/
|
|
|
|
|
// 遍历向量v,查找并删除对应ID的记录
|
|
|
|
|
for(int i =0;i<v.size();i++) {
|
|
|
|
|
// 打印删除操作开始提示
|
|
|
|
|
System.out.println("开始删除");
|
|
|
|
|
// 如果找到对应ID的记录
|
|
|
|
|
if(v.elementAt(i).getId().equals(id))
|
|
|
|
|
{
|
|
|
|
|
// 删除记录
|
|
|
|
|
v.remove(i);
|
|
|
|
|
// 显示删除成功提示
|
|
|
|
|
JOptionPane.showMessageDialog(this,"删除成功","提示",JOptionPane.INFORMATION_MESSAGE);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// 刷新购物车
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// 删除进货订单的记录
|
|
|
|
|
else if(mark==0) {
|
|
|
|
|
// 打印提示信息
|
|
|
|
|
System.out.println("删除订单表");
|
|
|
|
|
// 获取选中行的订单号
|
|
|
|
|
String iNumber =(String) inTable.getValueAt(rowIndex,0);
|
|
|
|
|
// 显示确认删除对话框
|
|
|
|
|
int select = JOptionPane.showConfirmDialog(this,"是否删除订单为"+iNumber+"的记录","提示",JOptionPane.YES_NO_OPTION);
|
|
|
|
|
// 如果用户选择是
|
|
|
|
|
if(select==JOptionPane.YES_OPTION) {/*选择是*/
|
|
|
|
|
// 打印订单号
|
|
|
|
|
System.out.println("iNumber="+iNumber);
|
|
|
|
|
// 实例化订单服务实现类
|
|
|
|
|
inOrderImpl=new inOrderServiceImpl();
|
|
|
|
|
// 调用删除订单的方法
|
|
|
|
|
inOrderImpl.deleteInOrder(iNumber);
|
|
|
|
|
// 显示删除成功提示
|
|
|
|
|
JOptionPane.showMessageDialog(this,"删除成功","提示",JOptionPane.INFORMATION_MESSAGE);
|
|
|
|
|
// 重新加载进货订单记录
|
|
|
|
|
InOrderRecord();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果事件源是查看历史按钮
|
|
|
|
|
}else if(historyBtn==source) {/*查看历史全部记录*/
|
|
|
|
|
InOrderRecord();
|
|
|
|
|
// 重新加载进货订单记录
|
|
|
|
|
InOrderRecord();
|
|
|
|
|
// 如果事件源是返回按钮
|
|
|
|
|
}else if(backBtn==source) {/*历史记录中的返回按钮*/
|
|
|
|
|
if(mark==0)
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
else if(mark==2)
|
|
|
|
|
InOrderRecord();
|
|
|
|
|
// 如果标记为0,刷新购物车
|
|
|
|
|
if(mark==0)
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
// 如果标记为2,重新加载进货订单记录
|
|
|
|
|
else if(mark==2)
|
|
|
|
|
InOrderRecord();
|
|
|
|
|
// 如果事件源是详情按钮
|
|
|
|
|
}else if(detailBtn==source) {/*查看订单详细*/
|
|
|
|
|
int rowIndex = inTable.getSelectedRow();
|
|
|
|
|
if(rowIndex==-1) {
|
|
|
|
|
JOptionPane.showMessageDialog(this,"请选中一条查看订单详细信息");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
String iNumber =(String) inTable.getValueAt(rowIndex,0);
|
|
|
|
|
System.out.println("详情订单号为="+iNumber);
|
|
|
|
|
InRecord(iNumber);
|
|
|
|
|
// 获取选中行的索引
|
|
|
|
|
int rowIndex = inTable.getSelectedRow();
|
|
|
|
|
// 如果没有选中行,弹出提示
|
|
|
|
|
if(rowIndex==-1) {
|
|
|
|
|
JOptionPane.showMessageDialog(this,"请选中一条查看订单详细信息");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// 获取选中行的订单号
|
|
|
|
|
String iNumber =(String) inTable.getValueAt(rowIndex,0);
|
|
|
|
|
// 打印详情订单号
|
|
|
|
|
System.out.println("详情订单号为="+iNumber);
|
|
|
|
|
// 查看订单详细信息
|
|
|
|
|
InRecord(iNumber);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果事件源是结账按钮
|
|
|
|
|
else if(StockBtn==source) {/*结账*/
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(v.size()==0)/*购物车为空*/{
|
|
|
|
|
JOptionPane.showMessageDialog(null,"您的进货页面为空", "提示", JOptionPane.YES_OPTION);
|
|
|
|
|
}
|
|
|
|
|
else {/*购物车不为空*/
|
|
|
|
|
int res = JOptionPane.showConfirmDialog(null,"进价总金额:"+allPrice+"元\r\n负责人:"+uname+"\r\n发送邮件至 re@qq.com", "提交订单", JOptionPane.YES_NO_OPTION);
|
|
|
|
|
if(res==JOptionPane.YES_OPTION)/*如果已经结账*/{
|
|
|
|
|
|
|
|
|
|
/*获得时间和订单号,s[0]为订单号,s[1]为时间*/
|
|
|
|
|
String[] s =TimeAndOrder.TimeAndOrder(uname);
|
|
|
|
|
|
|
|
|
|
/*往订单表插入一条记录*/
|
|
|
|
|
inOrderServiceImpl inOrderImpl = new inOrderServiceImpl();
|
|
|
|
|
inOrderImpl.InsertInOrder(s[0], allPrice, s[1],uname ,2);
|
|
|
|
|
|
|
|
|
|
/*往inRecord表添加数据*/
|
|
|
|
|
inRecordServiceImpl inRecordImpl = new inRecordServiceImpl();
|
|
|
|
|
for(Production p:v) {/*往inRecord表添加数据*/
|
|
|
|
|
inRecordImpl.insertInRecord(s[0], p);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*生成订单文本*/
|
|
|
|
|
CreateOrder createOrder = new CreateOrder();
|
|
|
|
|
String OrderText = createOrder.CreateOrder(v, s[0], s[1], allPrice,uname);
|
|
|
|
|
try {/*发送邮件*/
|
|
|
|
|
SendQQMailUtil QQEmail = new SendQQMailUtil("cwfeng5@qq.com","wlcinslohrgpdiac","1912638153@qq.com","@新民超市进货需求申请",OrderText);
|
|
|
|
|
} catch (MessagingException e1) {
|
|
|
|
|
// TODO Auto-generated catch block
|
|
|
|
|
e1.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
v=new Vector<Production>();
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
MainView.refreshRemind();
|
|
|
|
|
JOptionPane.showConfirmDialog(null,"发送邮件成功\r\n订单号:"+s[0]+"\r\n负责人:"+uname, "提示", JOptionPane.YES_OPTION);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 刷新购物车
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果购物车为空
|
|
|
|
|
if(v.size()==0)/*购物车为空*/{
|
|
|
|
|
// 显示提示信息
|
|
|
|
|
JOptionPane.showMessageDialog(null,"您的进货页面为空", "提示", JOptionPane.YES_OPTION);
|
|
|
|
|
}
|
|
|
|
|
// 如果购物车不为空
|
|
|
|
|
else {/*购物车不为空*/
|
|
|
|
|
// 显示确认对话框,包含进价总金额、负责人等信息
|
|
|
|
|
int res = JOptionPane.showConfirmDialog(null,"进价总金额:"+allPrice+"元\r\n负责人:"+uname+"\r\n发送邮件至 re@qq.com", "提交订单", JOptionPane.YES_NO_OPTION);
|
|
|
|
|
// 如果用户选择是,即已经结账
|
|
|
|
|
if(res==JOptionPane.YES_OPTION)/*如果已经结账*/{
|
|
|
|
|
|
|
|
|
|
// 获取时间和订单号,s[0]为订单号,s[1]为时间
|
|
|
|
|
String[] s =TimeAndOrder.TimeAndOrder(uname);
|
|
|
|
|
|
|
|
|
|
// 往订单表插入一条记录
|
|
|
|
|
inOrderServiceImpl inOrderImpl = new inOrderServiceImpl();
|
|
|
|
|
inOrderImpl.InsertInOrder(s[0], allPrice, s[1],uname ,2);
|
|
|
|
|
|
|
|
|
|
// 往inRecord表添加数据
|
|
|
|
|
inRecordServiceImpl inRecordImpl = new inRecordServiceImpl();
|
|
|
|
|
for(Production p:v) {/*往inRecord表添加数据*/
|
|
|
|
|
inRecordImpl.insertInRecord(s[0], p);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 生成订单文本
|
|
|
|
|
CreateOrder createOrder = new CreateOrder();
|
|
|
|
|
String OrderText = createOrder.CreateOrder(v, s[0], s[1], allPrice,uname);
|
|
|
|
|
try {/*发送邮件*/
|
|
|
|
|
SendQQMailUtil QQEmail = new SendQQMailUtil("cwfeng5@qq.com","wlcinslohrgpdiac","1912638153@qq.com","@新民超市进货需求申请",OrderText);
|
|
|
|
|
} catch (MessagingException e1) {
|
|
|
|
|
// 打印异常堆栈信息
|
|
|
|
|
e1.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
// 清空购物车
|
|
|
|
|
v=new Vector<Production>();
|
|
|
|
|
// 刷新购物车显示
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
// 刷新主视图提醒
|
|
|
|
|
MainView.refreshRemind();
|
|
|
|
|
// 显示发送邮件成功提示
|
|
|
|
|
JOptionPane.showConfirmDialog(null,"发送邮件成功\r\n订单号:"+s[0]+"\r\n负责人:"+uname, "提示", JOptionPane.YES_OPTION);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 如果事件源是退出按钮
|
|
|
|
|
}else if(exitBtn==source) {
|
|
|
|
|
int res = JOptionPane.showConfirmDialog(null,"确定退出并清空购物车吗", "结账", JOptionPane.YES_NO_OPTION);
|
|
|
|
|
if(res==JOptionPane.YES_OPTION)/*如果退出*/{
|
|
|
|
|
v=new Vector<Production>();/*将数组置空*/
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
JOptionPane.showConfirmDialog(null,"退出成功", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 显示确认对话框,询问是否退出并清空购物车
|
|
|
|
|
int res = JOptionPane.showConfirmDialog(null,"确定退出并清空购物车吗", "结账", JOptionPane.YES_NO_OPTION);
|
|
|
|
|
// 如果用户选择是,即退出
|
|
|
|
|
if(res==JOptionPane.YES_OPTION)/*如果退出*/{
|
|
|
|
|
// 将购物车数组置空
|
|
|
|
|
v=new Vector<Production>();/*将数组置空*/
|
|
|
|
|
// 刷新购物车显示
|
|
|
|
|
refreshBuffer(v);
|
|
|
|
|
// 显示退出成功提示
|
|
|
|
|
JOptionPane.showConfirmDialog(null,"退出成功", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|