pull/53/head
HouXinyu 10 months ago
parent 56521ce0d3
commit b319190310

@ -6,10 +6,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
<<<<<<< HEAD
// 导入相关的业务逻辑接口、数据传输对象以及工具类,用于数据库操作和日期处理等功能
=======
>>>>>>> remotes/origin/main
import com.lingnan.supermarket.dao.storageRecordService;
import com.lingnan.supermarket.dto.StorageRecord;
import com.lingnan.supermarket.utils.DateUtil;
@ -18,7 +15,6 @@ import com.lingnan.supermarket.utils.JDBCUtil;
// 实现storageRecordService接口--用于处理库存记录相关的数据持久化操作
public class storageRecordImpl implements storageRecordService {
<<<<<<< HEAD
// 查询所有库存记录信息并以Vector容器存储返回
@Override
public Vector<StorageRecord> findAllStorageRecord() {
@ -49,53 +45,12 @@ public class storageRecordImpl implements storageRecordService {
// 设置StorageRecord对象的执行情况属性
sr.setExecute(resultSet.getString("execute"));
// 通过DateUtil工具类的dateToString方法将数据库中获取的时间戳类型的日期数据转换为字符串类型方便后续使用第二个参数为null可能表示使用默认的日期格式转换具体看DateUtil实现
=======
/**
*
*
* @return Vector<StorageRecord>
*/
@Override
public Vector<StorageRecord> findAllStorageRecord() {
// 创建一个空的Vector对象用于存储所有查询到的StorageRecord
Vector<StorageRecord> v = new Vector<StorageRecord>();
// 通过JDBC获取数据库连接
Connection conn = JDBCUtil.getConn();
// 声明PreparedStatement和ResultSet对象
PreparedStatement pstmt = null;
ResultSet resultSet = null;
try {
// 编写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工具类格式化日期
>>>>>>> remotes/origin/main
sr.setcDate(DateUtil.dateToString(resultSet.getTimestamp("cDate"), null));
// 将StorageRecord对象添加到Vector中
v.add(sr);
}
<<<<<<< HEAD
} catch (SQLException e) {
// 若出现SQL异常打印异常栈信息
@ -116,41 +71,10 @@ public class storageRecordImpl implements storageRecordService {
StorageRecord sr = null;
// 获取数据库连接
Connection conn = JDBCUtil.getConn();
=======
} catch (SQLException e) {
// 如果出现SQL异常打印错误信息
e.printStackTrace();
} finally {
// 确保资源被关闭,避免内存泄漏
JDBCUtil.close(resultSet, pstmt, conn);
}
// 返回所有存储记录的Vector
return v;
}
/**
*
*
* @param theNumber
* @return StorageRecord null
*/
@Override
public StorageRecord findByIdStorageRecord(String theNumber) {
// 创建一个空的StorageRecord对象用于存储查询结果
StorageRecord sr = null;
// 获取数据库连接
Connection conn = JDBCUtil.getConn();
// 声明PreparedStatement和ResultSet对象
>>>>>>> remotes/origin/main
PreparedStatement pstmt = null;
ResultSet resultSet = null;
try {
<<<<<<< HEAD
// 创建一个新的StorageRecord对象用于后续封装查询到的数据
sr = new StorageRecord();
// 预编译SQL语句用于根据给定的库存编号theNumber查询storageRecord表中的记录
@ -163,30 +87,11 @@ public class storageRecordImpl implements storageRecordService {
if (resultSet.next()) {
sr.setTheNumber((resultSet.getString("theNumber")));
sr.setId((resultSet.getString("id")));
=======
// 初始化StorageRecord对象
sr = new StorageRecord();
// 编写SQL查询语句通过存储记录编号查询特定记录
pstmt = conn.prepareStatement("select * from storageRecord where theNumber=?");
// 设置查询条件,即存储记录编号
pstmt.setString(1, theNumber);
// 执行查询操作并将结果存放在resultSet中
resultSet = pstmt.executeQuery();
// 如果查询到数据填充StorageRecord对象
if (resultSet.next()) {
sr.setTheNumber(resultSet.getString("theNumber"));
sr.setId(resultSet.getString("id"));
>>>>>>> remotes/origin/main
sr.setNum(resultSet.getInt("num"));
sr.setExecute(resultSet.getString("execute"));
// 设置存储记录的创建日期,并进行格式化
sr.setcDate(DateUtil.dateToString(resultSet.getTimestamp("cDate"), null));
}
<<<<<<< HEAD
} catch (SQLException e) {
// 若出现SQL异常打印异常栈信息
@ -205,44 +110,10 @@ public class storageRecordImpl implements storageRecordService {
boolean flag = false;
// 获取数据库连接
Connection conn = JDBCUtil.getConn();
=======
} catch (SQLException e) {
// 如果发生SQLException打印堆栈信息
e.printStackTrace();
} finally {
// 确保资源关闭,防止资源泄露
JDBCUtil.close(resultSet, pstmt, conn);
}
// 返回找到的存储记录对象如果没有找到则返回null
return sr;
}
/**
*
*
* @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();
// 声明PreparedStatement和ResultSet对象
>>>>>>> remotes/origin/main
PreparedStatement pstmt = null;
ResultSet resultSet = null;
try {
<<<<<<< HEAD
// 预编译插入数据的SQL语句向storageRecord表中插入五条数据
pstmt = conn.prepareStatement("insert into storageRecord values(?,?,?,?,?) ");
// 设置SQL语句中的第一个参数
@ -268,43 +139,6 @@ public class storageRecordImpl implements storageRecordService {
// 关闭相关资源
JDBCUtil.close(resultSet, pstmt, conn);
}
=======
// 编写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) {
// 如果发生SQLException打印堆栈信息
e.printStackTrace();
} finally {
// 确保数据库连接和资源被关闭
JDBCUtil.close(resultSet, pstmt, conn);
}
// 返回插入操作的结果成功返回true失败返回false
>>>>>>> remotes/origin/main
return flag;
}
}

@ -8,7 +8,6 @@ import com.lingnan.supermarket.dto.Production;
// 用于创建订单相关文本内容
public class CreateOrder {
<<<<<<< HEAD
// 用于生成一个完整的订单文本信息,接收商品信息向量、订单编号、时间、总价以及负责人用户名等参数
public String CreateOrder(Vector<Production> v, String oNumber, String time, Float allPrice, String username) {
// 分割线
@ -19,25 +18,10 @@ public class CreateOrder {
// 添加订单小票中商品信息展示的表头部分
InRequireText += "#名称 #单价 #数量 #金额\r\n";
//循环遍历传入的商品信息向量,将每个商品的具体信息按照设定的格式拼接添加到订单文本中
=======
// 方法:生成订单小票文本
public String CreateOrder(Vector<Production> v, String oNumber, String time, Float allPrice, String username) {
// 初始化分隔符
String xx = "----------------------------------------------------------------------------\r\n";
// 订单生成时间
String InRequireText = time + "\r\n" + xx;
// 添加订单标题
InRequireText += "#名称 #单价 #数量 #金额\r\n";
// 遍历商品列表,生成订单项信息
>>>>>>> remotes/origin/main
for (Production p : v) {
InRequireText += p.getName() + " " + p.getInPrice() + " " + p.getSum() + " " + p.getPrice() + "\r\n";
}
<<<<<<< HEAD
// 添加一条分割线
InRequireText += "\r\n" + xx;
@ -56,75 +40,3 @@ public class CreateOrder {
return InRequireText;
}
}
=======
// 订单总金额
InRequireText += "\r\n" + xx;
InRequireText += "#总进货金额:" + allPrice + "元";
// 订单负责人和编号
InRequireText += "\r\n#负责人:" + username;
InRequireText += "\r\n#订单编号:" + oNumber;
// 商店信息
InRequireText += "\r\n#地址:新民超市";
InRequireText += "\r\n#联系电话:xxx";
// 加入订单备注
InRequireText += "\r\n#备注:谢谢光临,欢迎下次购买!";
// 空行分隔
InRequireText += "\r\n";
// 添加当前时间的时间戳
InRequireText += "#生成时间:" + System.currentTimeMillis() + "\r\n";
// 订单结束标记
InRequireText += "----------------------------------------------------------------------------\r\n";
// 返回生成的订单小票文本
return InRequireText;
}
// 日志记录方法(模拟)
private void logOrderCreation(String oNumber) {
// 这里模拟记录订单生成日志
System.out.println("订单创建成功,订单编号:" + oNumber);
}
// 模拟打印订单内容的方法
public void printOrder(String orderContent) {
// 打印订单内容(实际应用中可能是发送到打印机)
System.out.println(orderContent);
}
// 订单处理(模拟)方法
public void processOrder(Vector<Production> v, String oNumber, String time, Float allPrice, String username) {
// 创建订单内容
String orderContent = CreateOrder(v, oNumber, time, allPrice, username);
// 打印订单
printOrder(orderContent);
// 记录订单创建日志
logOrderCreation(oNumber);
}
// 添加订单清单格式方法
private String getOrderListFormat(Vector<Production> v) {
StringBuilder orderList = new StringBuilder();
for (Production p : v) {
orderList.append(p.getName())
.append(" - 单价: ")
.append(p.getInPrice())
.append(",数量: ")
.append(p.getSum())
.append(",金额: ")
.append(p.getPrice())
.append("\r\n");
}
return orderList.toString();
}
}
>>>>>>> remotes/origin/main

@ -9,16 +9,10 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
<<<<<<< HEAD
// JDBCUtil工具类用于管理数据库连接相关的操作如加载数据库配置、获取数据库连接以及释放相关资源等
public class JDBCUtil {
// 用于存储数据库连接相关的配置信息,通过读取配置文件将配置项加载到该对象中
=======
public class JDBCUtil {
// Properties对象用于加载配置文件
>>>>>>> remotes/origin/main
private static Properties properties;
// 数据库连接的URL地址
private static String url;
@ -27,25 +21,15 @@ public class JDBCUtil {
// 数据库连接的密码
private static String password;
<<<<<<< HEAD
// 静态代码块,在类加载时执行,主要用于加载数据库配置文件并注册数据库驱动,同时获取配置文件中的连接相关信息
static {
// 通过类加载器获取配置文件的输入流,该文件应位于类路径下,以便能够正确读取
InputStream inputStream = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
// 创建一个Properties对象用于存储键值对形式的配置信息
=======
// 静态代码块用于加载配置文件和数据库驱动
static {
// 获取配置文件输入流
InputStream inputStream = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
// 初始化Properties对象
>>>>>>> remotes/origin/main
properties = new Properties();
try {
<<<<<<< HEAD
// 将从输入流中读取配置文件的内容加载到Properties对象中
properties.load(inputStream);
} catch (IOException e) {
@ -54,16 +38,6 @@ public class JDBCUtil {
} finally {
// 在完成配置文件读取后释放资源
if (inputStream!= null) {
=======
// 加载配置文件
properties.load(inputStream);
} catch (IOException e) {
// 如果加载配置文件失败,打印错误信息
e.printStackTrace();
} finally {
// 关闭输入流
if (inputStream != null) {
>>>>>>> remotes/origin/main
try {
inputStream.close();
} catch (IOException e) {
@ -73,7 +47,6 @@ public class JDBCUtil {
}
}
<<<<<<< HEAD
// 注册数据库驱动
try {
// 从配置文件中获取驱动类名属性,并加载该驱动类,类加载过程会执行驱动类中相关的静态代码,完成驱动在系统中的注册
@ -87,35 +60,15 @@ public class JDBCUtil {
password = properties.getProperty("password");
} catch (ClassNotFoundException e) {
// 若找不到指定的驱动类,打印异常栈信息
=======
// 注册JDBC驱动
try {
// 加载JDBC驱动类
Class.forName(properties.getProperty("driver"));
// 获取数据库连接信息
url = properties.getProperty("url");
user = properties.getProperty("user");
password = properties.getProperty("password");
} catch (ClassNotFoundException e) {
// 如果驱动类加载失败,打印错误信息
>>>>>>> remotes/origin/main
e.printStackTrace();
}
}
/**
<<<<<<< HEAD
* DriverManagerURL
* SQLnull
*
* @return null
=======
*
*
* @return
>>>>>>> remotes/origin/main
*/
public static Connection getConn() {
try {
@ -129,7 +82,6 @@ public class JDBCUtil {
}
/**
<<<<<<< HEAD
* ResultSetStatementConnection
* nullnullcloseSQL
*
@ -151,97 +103,9 @@ public class JDBCUtil {
if (connection!= null) {
connection.close();
}
=======
*
*
* @param resultSet
* @param statement SQL
* @param connection
*/
public static void close(ResultSet resultSet, Statement statement, Connection connection) {
try {
// 释放结果集资源
if (resultSet != null) {
resultSet.close();
}
// 释放Statement资源
if (statement != null) {
statement.close();
}
// 释放Connection资源
if (connection != null) {
connection.close();
}
>>>>>>> remotes/origin/main
} catch (SQLException e) {
// 如果关闭资源时发生错误,打印错误信息
e.printStackTrace();
}
}
<<<<<<< HEAD
}
=======
/**
*
*/
private static void printDbConfig() {
System.out.println("数据库连接信息:");
System.out.println("JDBC驱动" + properties.getProperty("driver"));
System.out.println("数据库URL" + properties.getProperty("url"));
System.out.println("数据库用户名:" + properties.getProperty("user"));
System.out.println("数据库密码:" + properties.getProperty("password"));
}
/**
*
*
* @return
*/
private static String getDbConnectionString() {
return "jdbc connection info: " + url + " as user " + user;
}
/**
*
*
* @return true if connection is successful, otherwise false
*/
public static boolean testConnection() {
Connection connection = null;
try {
connection = getConn();
if (connection != null) {
System.out.println("数据库连接成功!");
return true;
} else {
System.out.println("数据库连接失败!");
return false;
}
} catch (Exception e) {
System.out.println("测试数据库连接时发生异常:" + e.getMessage());
return false;
} finally {
// 关闭连接
close(null, null, connection);
}
}
/**
*
*/
private static void logConnectionStatus() {
System.out.println("正在尝试连接数据库...");
}
/**
*
*/
private static void logCloseConnection() {
System.out.println("数据库连接已关闭。");
}
}
>>>>>>> remotes/origin/main

@ -8,7 +8,6 @@ import java.util.Random;
public class TimeAndOrder {
/**
<<<<<<< HEAD
*
*
* "yyyy-MM-dd HH:mm:ss"
@ -49,46 +48,11 @@ public class TimeAndOrder {
System.out.println(s[1]); // 打印时间戳
// 返回包含订单号和时间戳的字符串数组
=======
*
* @param username
* @return
*/
public static String[] TimeAndOrder(String username) {
// 创建一个长度为2的字符串数组用于存储订单号和当前时间
String[] s = new String[2];
// 创建两个SimpleDateFormat对象分别用于不同格式的日期输出
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 当前时间的格式
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss"); // 订单号日期格式(年月日时分秒)
// 获取当前时间
Calendar cal = Calendar.getInstance();
String date1 = sdf1.format(cal.getTime()); // 当前日期时间
String date2 = sdf2.format(cal.getTime()); // 订单号使用的时间
// 生成随机数,以增加订单号的随机性
Random random = new Random();
int result1 = random.nextInt(10); // 随机生成一个0到9之间的数字
int result2 = random.nextInt(10); // 随机生成另一个0到9之间的数字
// 生成订单号,将用户名、时间和随机数拼接在一起
s[0] = username + result1 + date2 + result2;
// 生成当前时间字符串
s[1] = date1;
// 打印生成的订单号和时间(调试用)
System.out.println(s[0]);
System.out.println(s[1]);
// 返回包含订单号和时间的字符串数组
>>>>>>> remotes/origin/main
return s;
}
/**
<<<<<<< HEAD
* "yyyy-MM-dd"
*
* @return
@ -105,39 +69,5 @@ public class TimeAndOrder {
// 返回当前日期的字符串表示
return date;
=======
*
* @return yyyy-MM-dd
*/
public static String yMdTime() {
// 创建一个SimpleDateFormat对象用于格式化当前日期
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
// 获取当前时间
Calendar cal = Calendar.getInstance();
String date = sdf1.format(cal.getTime()); // 获取当前日期的字符串
// 返回当前日期字符串
return date;
}
/**
*
*/
public static void testMethod() {
// 输出当前时间和生成的订单号
System.out.println("Current time: " + yMdTime());
String[] orderDetails = TimeAndOrder("testUser");
System.out.println("Generated order number: " + orderDetails[0]);
System.out.println("Generated time: " + orderDetails[1]);
}
/**
*
*/
private static void logMethodCall(String methodName) {
// 模拟打印方法调用日志
System.out.println("Method " + methodName + " was called.");
>>>>>>> remotes/origin/main
}
}

@ -42,7 +42,6 @@ import com.lingnan.supermarket.utils.SendQQMailUtil;
import com.lingnan.supermarket.utils.TimeAndOrder;
import com.lingnan.supermarket.view.ProdCatalogView.MyItemListener;
<<<<<<< HEAD
/**
*
*
@ -53,18 +52,9 @@ public class InView extends JPanel implements ActionListener {
private JPanel toolBarPanel;
// 搜索面板
=======
public class InView extends JPanel implements ActionListener{
//上面
private JPanel toolBarPanel;
>>>>>>> remotes/origin/main
private JPanel searchPanel;
private JLabel nameLabel, locationLabel;
private JTextField nameSearchTF;
<<<<<<< HEAD
private JButton searchBtn, StockBtn, exitBtn;
// 操作面板
@ -87,31 +77,10 @@ public class InView extends JPanel implements ActionListener{
private static Vector<Production> v = new Vector<Production>();
// 状态下拉框
=======
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;
private static Vector<Production> v = new Vector<Production>();
>>>>>>> remotes/origin/main
private JComboBox<String> combo;
private String[] status = {"全部", "已入库", "待入库", "已取消"};
private int catalog;
<<<<<<< HEAD
// 主窗口和用户信息
private JFrame jFrame;
private User user;
@ -129,24 +98,10 @@ public class InView extends JPanel implements ActionListener{
private inOrderServiceImpl inOrderImpl;
// 总价和行数
=======
private JFrame jFrame;
private User user;
private InTableModel inTableModel ;
private BufferImpl bufferImpl = new BufferImpl();
private int mark;/*标记从提醒那里来1是进货表0是提醒过来的表*/
private inOrderServiceImpl inOrderImpl;
>>>>>>> remotes/origin/main
private Float allPrice;
private int row;
private String uname;
<<<<<<< HEAD
//构造函数
public InView(JFrame jFrame, User user, Vector<Production> v, int mark) {
@ -259,148 +214,11 @@ public class InView extends JPanel implements ActionListener{
}
//处理状态下拉框的选项变化
=======
public InView(JFrame jFrame,User user,Vector<Production> v,int mark) {
this.setLayout(new BorderLayout());
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));
nameLabel = new JLabel("订单号");
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));
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);/*在订单详情页显示出来*/
opePanel.add(addBtn);
opePanel.add(backBtn);
opePanel.add(detailBtn);
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");
//中间表
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);
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");
if(mark==1) /*判断是不是从提醒那里过来的*/{
refreshBuffer(v);
}
else if(mark==0) {
InOrderRecord();
}
setVisible(true);
}
public static Vector<Production> getVector(){
return v;
}
>>>>>>> remotes/origin/main
public class MyItemListener implements ItemListener {
@Override
public void itemStateChanged(ItemEvent e) {
<<<<<<< HEAD
JComboBox cb = (JComboBox) e.getSource(); // 获取事件源
String catalog1 = (String) cb.getSelectedItem(); // 获取选中的状态
if (catalog1.equals("全部"))
@ -411,35 +229,12 @@ public class InView extends JPanel implements ActionListener{
catalog = 2;
else if (catalog1.equals("已取消"))
catalog = 3;
=======
JComboBox cb = (JComboBox) e.getSource();
String catalog1 = (String) cb.getSelectedItem();
if(catalog1.equals("全部"))
catalog=0;
else if(catalog1.equals("已入库"))
catalog=1;
else if(catalog1.equals("待入库"))
catalog=2;
else if(catalog1.equals("已取消"))
catalog=3;
resultOfFindStatus(catalog);
>>>>>>> remotes/origin/main
resultOfFindStatus(catalog); // 根据状态查询结果
}
}
<<<<<<< HEAD
//按钮组件隐藏。
=======
}
//按钮组件隐藏
>>>>>>> remotes/origin/main
public void OrderView() {
backBtn.setVisible(true); // 显示返回按钮
detailBtn.setVisible(true); // 显示详情按钮
@ -449,7 +244,6 @@ public class InView extends JPanel implements ActionListener{
historyBtn.setVisible(false); // 隐藏历史记录按钮
}
<<<<<<< HEAD
//根据订单号查询结果
public void resultOfNumber(String iNumber) {
this.mark = 0; // 设置标记为0
@ -463,20 +257,6 @@ public class InView extends JPanel implements ActionListener{
}
//根据状态查询结果
=======
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();
}
>>>>>>> remotes/origin/main
public void resultOfFindStatus(int catalog) {
this.mark = 0; // 设置标记为0
InOrderTM inOrderTM = new InOrderTM(); // 创建进货订单表格模型
@ -488,7 +268,6 @@ public class InView extends JPanel implements ActionListener{
OrderView(); // 调用OrderView方法
}
<<<<<<< HEAD
//刷新缓冲区
public void refreshBuffer(Vector<Production> v) {
this.mark = 1; // 设置标记为1
@ -520,64 +299,8 @@ public class InView extends JPanel implements ActionListener{
bottomPanelLeft.add(countInfoLabel); // 将标签添加到底部左侧面板
OrderView(); // 调用OrderView方法
}
=======
/*刷新*/
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();
row = inTableModel.getRowCount();
}
/*调出进货订单表*/
public void InOrderRecord() {
this.mark=0;
InOrderTM inOrderTM = new InOrderTM();
inOrderTM.allInOrderRecord();
inTable.setModel(inOrderTM);
bottomPanelLeft.removeAll();
countInfoLabel = new JLabel("共"+inOrderTM.getRowCount()+"条记录");
bottomPanelLeft.add(countInfoLabel);
OrderView();
}
/*调出进货订单表*/
public void InRecord(String iNumber) {
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);
}
>>>>>>> remotes/origin/main
// 调出进货订单表
public void InRecord(String iNumber) {
this.mark = 2; // 设置标记为2
@ -598,7 +321,6 @@ public class InView extends JPanel implements ActionListener{
//按钮监听事件
@Override
public void actionPerformed(ActionEvent e) {
<<<<<<< HEAD
BufferImpl = new BufferImpl(); // 获取购物车
Object source = e.getSource(); // 获取事件源
@ -729,175 +451,7 @@ public class InView extends JPanel implements ActionListener{
MainView.refreshRemind(); // 刷新提醒
JOptionPane.showConfirmDialog(null, "发送邮件成功\r\n订单号:" + s[0] + "\r\n负责人:" + uname, "提示", JOptionPane.YES_OPTION); // 提示用户发送邮件成功
}
=======
BufferImpl = new BufferImpl();/*获得购物车*/
Object source = e.getSource();
if(searchBtn==source) {
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(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();
}
}
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();
}
}
}else if(historyBtn==source) {/*查看历史全部记录*/
InOrderRecord();
}else if(backBtn==source) {/*历史记录中的返回按钮*/
if(mark==0)
refreshBuffer(v);
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);
}
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("sender@qq.com","自行获取 SMTP 授权码","receiver@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);
}
}
}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);
>>>>>>> remotes/origin/main
}
} else if (exitBtn == source) { // 如果是退出按钮
int res = JOptionPane.showConfirmDialog(null, "确定退出并清空购物车吗", "结账", JOptionPane.YES_NO_OPTION); // 提示用户确认退出
@ -908,8 +462,4 @@ public class InView extends JPanel implements ActionListener{
}
}
}
<<<<<<< HEAD
}
=======
}
>>>>>>> remotes/origin/main
}
Loading…
Cancel
Save