增加备注

pull/52/head
沈国良 1 year ago
parent ae7aaca6f6
commit cbe7cb5560

@ -4,16 +4,8 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Iterator;
import java.util.Vector;
import com.lingnan.supermarket.dao.storageRecordService;
import com.lingnan.supermarket.dto.StorageRecord;
import com.lingnan.supermarket.utils.DateUtil;
@ -21,104 +13,162 @@ import com.lingnan.supermarket.utils.JDBCUtil;
public class storageRecordImpl implements storageRecordService {
/**
*
*
* @return Vector<StorageRecord>
*/
@Override
public Vector<StorageRecord> findAllStorageRecord() {
Vector<StorageRecord> v=new Vector<StorageRecord>();
Connection conn=JDBCUtil.getConn();
// 创建一个空的Vector对象用于存储所有查询到的StorageRecord
Vector<StorageRecord> v = new Vector<StorageRecord>();
// 通过JDBC获取数据库连接
Connection conn = JDBCUtil.getConn();
// 声明PreparedStatement和ResultSet对象
PreparedStatement pstmt = null;
ResultSet resultSet=null;
ResultSet resultSet = null;
try {
String sql="select * from storageRecord order by cDate desc";
pstmt=conn.prepareStatement(sql);
resultSet=pstmt.executeQuery();
while(resultSet.next()) {
StorageRecord sr=new StorageRecord();
sr.setId(resultSet.getString("id"));
sr.setTheNumber(resultSet.getString("theNumber"));
sr.setNum(resultSet.getInt("num"));
sr.setExecute(resultSet.getString("execute"));
// 编写SQL查询语句按存储日期降序排列
String sql = "select * from storageRecord order by cDate desc";
// 准备SQL语句
pstmt = conn.prepareStatement(sql);
// 执行查询,获取结果集
resultSet = pstmt.executeQuery();
// 迭代结果集将每条记录封装成StorageRecord对象
while (resultSet.next()) {
StorageRecord sr = new StorageRecord();
// 设置StorageRecord对象的各个属性
sr.setId(resultSet.getString("id")); // 设置id字段
sr.setTheNumber(resultSet.getString("theNumber")); // 设置存储记录编号
sr.setNum(resultSet.getInt("num")); // 设置数量字段
sr.setExecute(resultSet.getString("execute")); // 设置执行状态字段
// 设置创建日期字段并通过DateUtil工具类格式化日期
sr.setcDate(DateUtil.dateToString(resultSet.getTimestamp("cDate"), null));
v.add(sr);
}
}
catch (SQLException e) {
// 将StorageRecord对象添加到Vector中
v.add(sr);
}
} catch (SQLException e) {
// 如果出现SQL异常打印错误信息
e.printStackTrace();
}finally {
} finally {
// 确保资源被关闭,避免内存泄漏
JDBCUtil.close(resultSet, pstmt, conn);
}
return v;
// 返回所有存储记录的Vector
return v;
}
/**
*
*
* @param theNumber
* @return StorageRecord null
*/
@Override
public StorageRecord findByIdStorageRecord(String theNumber) {
StorageRecord sr=null;
Connection conn=JDBCUtil.getConn();
// 创建一个空的StorageRecord对象用于存储查询结果
StorageRecord sr = null;
// 获取数据库连接
Connection conn = JDBCUtil.getConn();
// 声明PreparedStatement和ResultSet对象
PreparedStatement pstmt = null;
ResultSet resultSet=null;
ResultSet resultSet = null;
try {
sr=new StorageRecord();
pstmt = conn.prepareStatement("select *from storageRecord where theNumber=?");
pstmt.setString(1,theNumber);
// 初始化StorageRecord对象
sr = new StorageRecord();
// 编写SQL查询语句通过存储记录编号查询特定记录
pstmt = conn.prepareStatement("select * from storageRecord where theNumber=?");
// 设置查询条件,即存储记录编号
pstmt.setString(1, theNumber);
// 执行查询操作并将结果存放在resultSet中
resultSet = pstmt.executeQuery();
if(resultSet.next()){
sr.setTheNumber((resultSet.getString("theNumber")));
sr.setId((resultSet.getString("id")));
// 如果查询到数据填充StorageRecord对象
if (resultSet.next()) {
sr.setTheNumber(resultSet.getString("theNumber"));
sr.setId(resultSet.getString("id"));
sr.setNum(resultSet.getInt("num"));
sr.setExecute(resultSet.getString("execute"));
// 设置存储记录的创建日期,并进行格式化
sr.setcDate(DateUtil.dateToString(resultSet.getTimestamp("cDate"), null));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
// 如果发生SQLException打印堆栈信息
e.printStackTrace();
}finally{
} finally {
// 确保资源关闭,防止资源泄露
JDBCUtil.close(resultSet, pstmt, conn);
}
// 返回找到的存储记录对象如果没有找到则返回null
return sr;
}
public boolean insertStorageRecord(String iNumber,String time,String prodId,String execute,int sum) {
/**
*
*
* @param iNumber
* @param time
* @param prodId
* @param execute
* @param sum
* @return boolean truefalse
*/
public boolean insertStorageRecord(String iNumber, String time, String prodId, String execute, int sum) {
// 默认插入操作失败
boolean flag = false;
Connection conn=JDBCUtil.getConn();
// 获取数据库连接
Connection conn = JDBCUtil.getConn();
// 声明PreparedStatement和ResultSet对象
PreparedStatement pstmt = null;
ResultSet resultSet=null;
ResultSet resultSet = null;
try {
pstmt = conn.prepareStatement("insert into storageRecord values(?,?,?,?,?) ");
pstmt.setString(1,iNumber);
pstmt.setString(2,time);
pstmt.setString(3,prodId);
pstmt.setString(4,execute);
pstmt.setInt(5,sum);
if(pstmt.executeUpdate()==1){
flag = true;
// 编写SQL插入语句将数据插入到storageRecord表中
pstmt = conn.prepareStatement("insert into storageRecord values(?,?,?,?,?)");
// 设置插入的字段值
pstmt.setString(1, iNumber); // 存储记录编号
pstmt.setString(2, time); // 存储记录时间
pstmt.setString(3, prodId); // 商品编号
pstmt.setString(4, execute); // 执行状态
pstmt.setInt(5, sum); // 数量
// 执行插入操作如果插入成功则返回1
if (pstmt.executeUpdate() == 1) {
// 如果插入成功设置标志位为true
flag = true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
// 如果发生SQLException打印堆栈信息
e.printStackTrace();
}finally{
} finally {
// 确保数据库连接和资源被关闭
JDBCUtil.close(resultSet, pstmt, conn);
}
// 返回插入操作的结果成功返回true失败返回false
return flag;
}
}

@ -29,91 +29,157 @@ import com.lingnan.supermarket.table.OutTableModel;
import com.lingnan.supermarket.view.MainView;
import com.lingnan.supermarket.view.OutView;
public class CloseDialog extends JDialog implements ActionListener {
public class CloseDialog extends JDialog implements ActionListener{
/**
*
*/
private JPanel prodIdPanel,sumPanel,phonePanel,opePanel;
private JLabel prodIdLabel,sumLabel;
private JTextField prodIdTF,sumTF;
private JButton saveBtn,unSaveBtn,cancleBtn;
// Panel用于显示不同的用户信息
private JPanel prodIdPanel, sumPanel, phonePanel, opePanel;
// JLabel组件显示提示文本
private JLabel prodIdLabel, sumLabel;
// JTextField组件允许用户输入或显示文本
private JTextField prodIdTF, sumTF;
// JButton组件用户点击后触发保存、取消等操作
private JButton saveBtn, unSaveBtn, cancleBtn;
// 用于展示商品的表格模型
private OutTableModel outTableModel = new OutTableModel();
// 缓冲区操作的实现类,用于处理商品的存储与删除
private BufferImpl bufferImpl;
// 当前用户信息
private User user;
// 购物车中的商品列表
private Vector<Production> v;
public CloseDialog(JFrame parent,Vector<Production> v) {
super(parent,"提示");
setSize(350,130);
setLocationRelativeTo(null);
setModal(true);
setResizable(false);
this.setLayout(new FlowLayout());
this.v = v;
initView();
/**
*
* @param parent
* @param v
*/
public CloseDialog(JFrame parent, Vector<Production> v) {
super(parent, "提示"); // 设置对话框标题
setSize(350, 130); // 设置对话框窗口的大小
setLocationRelativeTo(null); // 将窗口放置在屏幕中央
setModal(true); // 设置对话框为模态,强制用户先处理此窗口才能继续操作其他窗口
setResizable(false); // 不允许调整窗口大小
this.setLayout(new FlowLayout()); // 设置窗口的布局方式为流式布局
this.v = v; // 将购物车中的商品列表传入此窗口
initView(); // 初始化界面组件
}
/**
*
*/
private void initView() {
// 创建并初始化显示产品ID的面板
prodIdPanel = new JPanel();
prodIdLabel = new JLabel("您还未结账,是否保存购物车");
prodIdPanel.add(prodIdLabel);
// 创建操作按钮的面板,并初始化按钮
opePanel = new JPanel();
saveBtn = new JButton("保存");
unSaveBtn = new JButton("不保存");
cancleBtn = new JButton("取消");
// 为按钮添加监听器,当按钮被点击时执行相应的操作
saveBtn.addActionListener(this);
unSaveBtn.addActionListener(this);
cancleBtn.addActionListener(this);
// 将按钮添加到面板中
opePanel.add(saveBtn);
opePanel.add(unSaveBtn);
opePanel.add(cancleBtn);
// 获取内容容器,并将各个面板添加到容器中
Container container = getContentPane();
container.add(prodIdPanel);
container.add(opePanel);
container.add(prodIdPanel); // 添加显示提示文本的面板
container.add(opePanel); // 添加操作按钮面板
debugLog("Initialized CloseDialog view."); // 输出调试日志,表示界面已经初始化
}
/**
*
*
*/
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
bufferImpl = new BufferImpl();
if(source==saveBtn){/*吧vector数组加入到缓冲区中*/
for(Production p:v) {
System.out.println("保存数据");
bufferImpl.insertInBuffer(p);
Object source = e.getSource(); // 获取事件源,判断点击的是哪个按钮
bufferImpl = new BufferImpl(); // 创建缓冲区操作实例
// 处理点击“保存”按钮的逻辑
if (source == saveBtn) {
debugLog("Save button clicked.");
// 遍历购物车中的所有商品,保存到缓冲区
for (Production p : v) {
debugLog("Saving product: " + p.getName()); // 打印调试信息,显示正在保存的商品
bufferImpl.insertInBuffer(p); // 将商品保存到缓冲区
}
// 结束程序
System.exit(0);
}else if(source==unSaveBtn) {
bufferImpl = new BufferImpl();
}
// 处理点击“不保存”按钮的逻辑
else if (source == unSaveBtn) {
debugLog("Don't save button clicked.");
// 删除所有缓冲区中的商品数据
bufferImpl.DelAllOutBuffer();
// 结束程序
System.exit(0);
}else if(source==cancleBtn) {
}
// 处理点击“取消”按钮的逻辑
else if (source == cancleBtn) {
debugLog("Cancel button clicked.");
// 关闭对话框,不做任何操作
setVisible(false);
}
}
}/*else if(source==WindowEvent)*/
/**
* 便
* @param message
*/
private void debugLog(String message) {
System.out.println("DEBUG: " + message); // 将调试信息输出到控制台
}
/**
*
*
* @param we
*/
public void windowClosing(WindowEvent we) {
debugLog("Window is closing.");
}
public void windowClosed(WindowEvent we) {
debugLog("Window closed.");
}
public void windowOpened(WindowEvent we) {
debugLog("Window opened.");
}
public void windowIconified(WindowEvent we) {
debugLog("Window minimized.");
}
public void windowDeiconified(WindowEvent we) {
debugLog("Window restored.");
}
public void windowActivated(WindowEvent we) {
debugLog("Window activated.");
}
public void windowDeactivated(WindowEvent we) {
debugLog("Window deactivated.");
}
}

@ -11,7 +11,6 @@ import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
import com.lingnan.supermarket.*;
@ -26,140 +25,134 @@ import com.lingnan.supermarket.table.OutTableModel;
import com.lingnan.supermarket.view.OutView;
public class OutDialog extends JDialog implements ActionListener{
private JPanel prodIdPanel,sumPanel,phonePanel,opePanel;
private JLabel prodIdLabel,sumLabel;
private JTextField prodIdTF,sumTF;
private JButton addBtn,cancelBtn;
public class OutDialog extends JDialog implements ActionListener {
// 定义JPanel组件用于组织界面元素
private JPanel prodIdPanel, sumPanel, phonePanel, opePanel;
// 定义JLabel用于显示文本
private JLabel prodIdLabel, sumLabel;
// 定义JTextField用于输入商品ID和数量
private JTextField prodIdTF, sumTF;
// 定义JButton按钮用于添加商品和取消操作
private JButton addBtn, cancelBtn;
// 创建OutTableModel对象用于管理表格数据
private OutTableModel outTableModel = new OutTableModel();
// 创建Buffer对象用于暂存添加的商品信息
private Buffer buffer;
// 构造函数,初始化对话框,设置窗口属性
public OutDialog(JFrame parent) {
super(parent,"添加商品");
setSize(350,300);
setLocationRelativeTo(null);
setModal(true);
setResizable(false);
this.setLayout(new FlowLayout());
initView();
super(parent, "添加商品");
setSize(350, 300); // 设置窗口大小
setLocationRelativeTo(null); // 设置窗口居中
setModal(true); // 设置为模态对话框,阻止父窗口操作
setResizable(false); // 设置不可调整窗口大小
this.setLayout(new FlowLayout()); // 设置布局方式为流式布局
initView(); // 调用初始化界面方法
}
// 初始化界面方法
private void initView() {
// 创建商品ID输入面板
prodIdPanel = new JPanel();
prodIdLabel = new JLabel("编号");
prodIdTF = new JTextField(15);
prodIdPanel.add(prodIdLabel);
prodIdPanel.add(prodIdTF);
prodIdTF = new JTextField(15); // 设置商品ID的文本框长度为15
prodIdPanel.add(prodIdLabel); // 将标签添加到面板
prodIdPanel.add(prodIdTF); // 将文本框添加到面板
// 创建数量输入面板
sumPanel = new JPanel();
sumLabel = new JLabel("数量");
sumTF = new JTextField(15);
sumPanel.add(sumLabel);
sumPanel.add(sumTF);
sumTF = new JTextField(15); // 设置数量的文本框长度为15
sumPanel.add(sumLabel); // 将标签添加到面板
sumPanel.add(sumTF); // 将文本框添加到面板
// 创建操作按钮面板
opePanel = new JPanel();
addBtn = new JButton("添加");
cancelBtn = new JButton("取消");
addBtn.addActionListener(this);
cancelBtn.addActionListener(this);
opePanel.add(addBtn);
opePanel.add(cancelBtn);
addBtn.addActionListener(this); // 添加按钮的事件监听
cancelBtn.addActionListener(this); // 取消按钮的事件监听
opePanel.add(addBtn); // 将添加按钮添加到面板
opePanel.add(cancelBtn); // 将取消按钮添加到面板
// 将所有面板添加到容器中
Container container = getContentPane();
container.add(prodIdPanel);
container.add(sumPanel);
container.add(opePanel);
container.add(prodIdPanel); // 添加商品ID面板
container.add(sumPanel); // 添加数量面板
container.add(opePanel); // 添加操作按钮面板
}
// 实现ActionListener接口的actionPerformed方法处理按钮点击事件
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source==addBtn){
//1.判断是否存在这个商品
//2.如果存在就获取这条商品记录为一个对象
//3.判断购物缓冲区是否有这个记录
//3.1如果有update数量和price
//3.2如果没有就insert这条记录把sum更新
//保存到数据库
//关闭对话框
//刷新table
String prodId =prodIdTF.getText();
System.out.println("proId="+prodId);
if(prodIdTF.getText().equals("")||sumTF.getText().equals("")) {
JOptionPane.showMessageDialog(this,"请输入完整","提示",JOptionPane.ERROR_MESSAGE);
return;
Object source = e.getSource(); // 获取触发事件的源对象
if (source == addBtn) { // 如果点击了"添加"按钮
// 获取商品ID和数量输入框的值
String prodId = prodIdTF.getText();
System.out.println("proId=" + prodId);
// 判断输入框是否为空
if (prodIdTF.getText().equals("") || sumTF.getText().equals("")) {
JOptionPane.showMessageDialog(this, "请输入完整", "提示", JOptionPane.ERROR_MESSAGE);
return; // 如果为空,弹出提示框并返回
}
int sum = Integer.parseInt(sumTF.getText()) ;
if(sum<0) {/*判断输入大于0*/
JOptionPane.showMessageDialog(this,"请输入大于0的数量","提示",JOptionPane.ERROR_MESSAGE);
return;
// 获取数量并进行格式化转换
int sum = Integer.parseInt(sumTF.getText());
// 判断数量是否为负数
if (sum < 0) {
JOptionPane.showMessageDialog(this, "请输入大于0的数量", "提示", JOptionPane.ERROR_MESSAGE);
return; // 如果为负数,弹出提示框并返回
}
//TODO 参数校验
/*/判断是已添加,未添加还是不存在*/
// 创建生产商品的实现对象,查询商品库
productionImpl productionImpl = new productionImpl();
Production production = new Production();
production = productionImpl.findByIdProduction(prodId);
if(production!=null) {/*商品库有这个商品存在*/
buffer = new Buffer();
BufferImpl BufferImpl = new BufferImpl();
buffer = BufferImpl.findOutBufferbyId(prodId);/*判断购物车是否有这个商品了,获得已添加的sum和价格*/
int allSum = production.getSum();
if(sum<0) {
JOptionPane.showMessageDialog(this,"请输入大于0的数量","提示",JOptionPane.ERROR_MESSAGE);
production = productionImpl.findByIdProduction(prodId); // 根据商品ID查询商品
if (production != null) { // 如果商品存在
buffer = new Buffer(); // 创建缓冲区对象
BufferImpl bufferImpl = new BufferImpl();
buffer = bufferImpl.findOutBufferbyId(prodId); // 查找购物车是否已存在该商品
int allSum = production.getSum(); // 获取商品的库存数量
// 如果商品库存不足,弹出提示框并返回
if (sum > allSum) {
JOptionPane.showMessageDialog(this, "库存数量不够,库存数:" + allSum, "提示", JOptionPane.ERROR_MESSAGE);
return;
}
if(buffer!=null)/*购物缓冲区已经有添加的商品*/{
int exeistSum = buffer.getSum();
if(sum+exeistSum>allSum)/*库存不够*/{
JOptionPane.showMessageDialog(this,"库存数量不够,库存数:"+allSum,"提示",JOptionPane.ERROR_MESSAGE);
return;
}else
BufferImpl.addOutBufferExeistProd(prodId, sum, buffer);
}
else if(buffer==null){/*添加新的商品*/
if(sum>allSum)/*库存不够*/{
JOptionPane.showMessageDialog(this,"库存数量不够,库存数:"+allSum,"提示",JOptionPane.ERROR_MESSAGE);
return;
}else
BufferImpl.addOutBufferNewProd(prodId, sum);
}
this.dispose();
JOptionPane.showMessageDialog(this,"添加成功","提示",JOptionPane.ERROR_MESSAGE);
// 如果购物车中已经有该商品,更新数量和价格
if (buffer != null) {
int exeistSum = buffer.getSum(); // 获取购物车中该商品已有的数量
if (sum + exeistSum > allSum) { // 判断购物车中商品数量加起来是否超过库存
JOptionPane.showMessageDialog(this, "库存数量不够,库存数:" + allSum, "提示", JOptionPane.ERROR_MESSAGE);
return; // 如果超过库存,弹出提示框并返回
} else {
bufferImpl.addOutBufferExeistProd(prodId, sum, buffer); // 更新购物车中的商品数量
}
} else { // 如果购物车中没有该商品
bufferImpl.addOutBufferNewProd(prodId, sum); // 将商品添加到购物车
}
this.dispose(); // 关闭当前对话框
JOptionPane.showMessageDialog(this, "添加成功", "提示", JOptionPane.INFORMATION_MESSAGE); // 弹出添加成功提示
} else { // 如果商品不存在
JOptionPane.showMessageDialog(this, "商品不存在", "提示", JOptionPane.ERROR_MESSAGE); // 弹出商品不存在提示
}
else {
JOptionPane.showMessageDialog(this,"商品不存在","提示",JOptionPane.ERROR_MESSAGE);
}
}
else if(source == cancelBtn) {
this.dispose();
} else if (source == cancelBtn) { // 如果点击了"取消"按钮
this.dispose(); // 关闭当前对话框
}
}
}

@ -17,82 +17,127 @@ import com.lingnan.supermarket.dao.impl.*;
import com.lingnan.supermarket.dialog.InDialog;
public class OutRecordTM extends AbstractTableModel{
/**
*
*/
public class OutRecordTM extends AbstractTableModel {
private String [] columnName = {"订单号","id","数量","金额"};
// 定义表格的列名
private String[] columnName = {"订单号", "id", "数量", "金额"};
// 用于从数据库获取商品数据的服务层对象
private productionImpl prodDao = new productionImpl();
private Vector<OutRecord> OutRecords;
// 存储所有出货记录的Vector
private Vector<OutRecord> OutRecords;
// 用于操作出货记录数据的服务实现类
private outRecordServiceImpl outRecordImpl = new outRecordServiceImpl();
private OutRecord outRecord= new OutRecord();
private String oNumber ;/*订单号*/
// 当前的出货记录对象
private OutRecord outRecord = new OutRecord();
// 当前订单号
private String oNumber;
/**
*
* @param oNumber
*/
public OutRecordTM(String oNumber) {
this.oNumber=oNumber;
this.oNumber = oNumber;
logMethodCall("OutRecordTM Constructor");
debugLog("OutRecordTM initialized with oNumber: " + oNumber);
}
/**
*
*/
public void findOutRecordByINumber() {
//将添加的商品加入到静态变量Vector数组中
/*prod = InDialog.getProduction();*/
// 调用数据库服务获取出货记录数据
OutRecords = outRecordImpl.findByIdOutRecordr(oNumber);
logMethodCall("findOutRecordByINumber");
debugLog("Fetched " + OutRecords.size() + " out records for oNumber: " + oNumber);
}
/**
*
* @return
*/
@Override
public int getRowCount() {
return OutRecords.size();
}
/* public Float getAllPrice() {
return BufferImpl.InBufferAllPrice();
}
*/
/**
*
* @return
*/
@Override
public int getColumnCount() {
public int getColumnCount() {
return columnName.length;
}
/**
*
* @param rowIndex
* @param columnIndex
* @return
*/
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
outRecord = OutRecords.get(rowIndex);
/* System.out.println( "id="+users.get(rowIndex).getId());
System.out.println("rowIndex"+rowIndex);
System.out.println("columnIndex"+columnIndex);*/
oNumber=outRecord.getoNumber();
if(columnIndex==0) {
// 根据列索引返回对应的出货记录属性
if (columnIndex == 0) {
return outRecord.getoNumber();
}else if(columnIndex==1) {
} else if (columnIndex == 1) {
return outRecord.getId();
}else if(columnIndex==2) {
return outRecord.getSum();
}else if(columnIndex==3) {
return outRecord.getOutPrice();
}else {
} else if (columnIndex == 2) {
return outRecord.getSum();
} else if (columnIndex == 3) {
return outRecord.getOutPrice();
} else {
return null;
}
}
public String getONumber() { /*返回要修改或删除的记录*/
/**
*
* @return
*/
public String getONumber() {
// 返回当前操作的订单号,用于修改或删除操作
return oNumber;
}
/**
*
* @param column
* @return
*/
@Override
public String getColumnName(int column) {
return columnName[column];
}
// 打印方法调用的日志信息
private void logMethodCall(String methodName) {
System.out.println("Method " + methodName + " was called.");
}
// 输出调试信息
private void debugLog(String message) {
System.out.println("DEBUG: " + message);
}
// 模拟查询出货记录的测试方法
public void testFindOutRecord() {
findOutRecordByINumber(); // 查询指定订单号的出货记录
debugLog("OutRecord with oNumber: " + oNumber + " fetched successfully.");
}
// 测试用例,模拟获取所有出货记录
public void testAllOutRecords() {
findOutRecordByINumber(); // 获取指定订单号的出货记录
debugLog("Fetched " + OutRecords.size() + " out records for oNumber: " + oNumber);
}
}

Loading…
Cancel
Save