package com.lingnan.supermarket.table; // 声明当前类所在的包 import java.util.List; // 导入List接口,用于表示列表 import java.util.Vector; // 导入Vector类,用于实现可增长的对象数组 import javax.swing.JFrame; // 导入JFrame类,用于创建窗口 import javax.swing.table.AbstractTableModel; // 导入AbstractTableModel类,用于创建表格模型 import com.lingnan.supermarket.dto.Buffer; // 导入Buffer数据传输对象 import com.lingnan.supermarket.dto.InOrder; // 导入InOrder数据传输对象 import com.lingnan.supermarket.dto.Buffer; // 重复导入Buffer数据传输对象,可能是错误 import com.lingnan.supermarket.dto.Production; // 导入Production数据传输对象 import com.lingnan.supermarket.dto.User; // 导入User数据传输对象 import com.lingnan.supermarket.dao.UserService; // 导入UserService接口,用于用户数据访问 import com.lingnan.supermarket.dao.impl.*; // 导入所有实现类,可能用于数据访问层的具体实现 import com.lingnan.supermarket.dialog.InDialog; // 导入InDialog类,可能用于进货对话框 public class InOrderTM extends AbstractTableModel{ // 定义一个类InOrderTM,继承自AbstractTableModel类,用于表格模型 private String [] columnName = {"订单号","总价","时间","负责人","状态"}; // 定义列名数组,用于表格的列标题 private productionImpl prodDao = new productionImpl(); // 创建productionImpl对象,用于操作产品数据 private Vector InOrders; // 声明一个Vector数组,用于存储InOrder对象 private inOrderServiceImpl inOrderImpl= new inOrderServiceImpl(); // 创建inOrderServiceImpl对象,用于操作订单数据 private InOrder inOrder ; // 声明InOrder对象,用于单个订单操作 String iNumber ; // 声明一个String变量,用于存储订单号 public void allInOrderRecord() { // 定义一个方法,用于获取所有订单记录 //将添加的商品加入到静态变量Vector数组中 /*prod = InDialog.getProduction();*/ InOrders = inOrderImpl.findAllInOrder(); // 调用inOrderImpl的方法,获取所有订单并赋值给InOrders } //查找分类结果 public void resultOfFind(int catalog) { // 定义一个方法,根据分类查找订单 if(catalog==0) // 如果分类为0,查找所有订单 InOrders = inOrderImpl.findAllInOrder(); // 获取所有订单 else InOrders = inOrderImpl.FindStatus(catalog); // 否则根据状态查找订单 } //根据订单号查找 public void resultOfNumber(String Number) { // 定义一个方法,根据订单号查找订单 InOrders=new Vector(); // 初始化InOrders为新的Vector对象 inOrder = inOrderImpl.findByIdinOrder(Number); // 根据订单号查找订单 InOrders.add(inOrder); // 将找到的订单添加到InOrders中 } @Override // 重写getRowCount方法,返回表格的行数,即订单列表的大小 public int getRowCount() { return InOrders.size(); // 返回InOrders Vector的大小 } /* // 获取所有订单的总价格,此方法已被注释掉 public Float getAllPrice() { return BufferImpl.InBufferAllPrice(); } */ @Override // 重写getColumnCount方法,返回表格的列数,即列名数组的长度 public int getColumnCount() { return columnName.length; // 返回columnName数组的长度 } @Override // 重写getValueAt方法,根据行索引和列索引获取表格单元格的值 public Object getValueAt(int rowIndex, int columnIndex) { inOrder = InOrders.get(rowIndex); // 获取指定行的订单对象 // 以下代码已被注释,可能是用于调试的打印语句 /*System.out.println( "id="+users.get(rowIndex).getId()); System.out.println("rowIndex"+rowIndex); System.out.println("columnIndex"+columnIndex);*/ iNumber=inOrder.getiNumber(); // 获取订单号并赋值给iNumber if(columnIndex==0) { // 如果是第一列,返回订单号 return inOrder.getiNumber(); }else if(columnIndex==1) { // 如果是第二列,返回订单总价 return inOrder.getAllInPrice(); }else if(columnIndex==2) { // 如果是第三列,返回订单日期 return inOrder.getInDate(); }else if(columnIndex==3) { // 如果是第四列,返回负责人 return inOrder.getPrincipal(); }else if(columnIndex==4) { // 如果是第五列,返回订单状态 String status = null; if(inOrder.getStatus()==1) status= "已入库"; else if(inOrder.getStatus()==2) status= "待入库"; else if(inOrder.getStatus()==3) status= "已取消"; return status; }else { // 如果列索引不匹配,返回null return null; } } // 返回要修改或删除的记录的订单号 public String getINumber() { return iNumber; // 返回类的成员变量iNumber } @Override // 重写getColumnName方法,根据列索引获取列名 public String getColumnName(int column) { return columnName[column]; // 返回columnName数组中指定索引的值 } }