库存信息修改功能

master
王城 7 months ago
parent 9f0b592da3
commit f9271f3a74

Binary file not shown.

@ -11,6 +11,7 @@ import model.Goods;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.time.LocalDateTime;
@ -145,19 +146,16 @@ public class GoodsManagementView extends BorderPane {
String url = "jdbc:sqlite:db/dbuml.db3";
List<Goods> goodsList = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(url)) {
String sql = "SELECT id, goods_id as name, quantity, " +
"supplier, inbound_time, operator, remark " +
"FROM warehouse " +
"ORDER BY id"; // 不再使用GROUP BY直接显示所有记录
String sql = "SELECT * FROM warehouse ORDER BY inbound_time DESC";
try (Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
while (rs.next()) {
Goods goods = new Goods(
rs.getString("id"),
rs.getString("name"),
rs.getInt("quantity"),
rs.getString("remark")
rs.getString("id"),
rs.getString("goods_id"),
rs.getInt("quantity"),
rs.getString("remark")
);
goods.setInboundTime(LocalDateTime.parse(rs.getString("inbound_time")));
goods.setOperator(rs.getString("operator"));
@ -198,33 +196,41 @@ public class GoodsManagementView extends BorderPane {
return;
}
// 查找货物对象
Goods existingGoods = DataManager.getInstance().getGoods(id);
if (existingGoods == null) {
// 插入新货物
Goods newGoods = new Goods(String.format("NO%014d", System.currentTimeMillis()),
name, quantity, remark);
newGoods.setInboundTime(LocalDateTime.now());
newGoods.setOperator("当前用户");
newGoods.setSupplier(supplier);
DataManager.getInstance().addGoodsToDatabase(newGoods);
} else {
// 更新现有货物
existingGoods.setName(name);
existingGoods.setQuantity(quantity);
existingGoods.setSupplier(supplier);
existingGoods.setRemark(remark);
DataManager.getInstance().updateGoodsInDatabase(existingGoods);
// 检查是否存在该记录
String url = "jdbc:sqlite:db/dbuml.db3";
try (Connection conn = DriverManager.getConnection(url)) {
String checkSql = "SELECT * FROM warehouse WHERE id = ?";
try (PreparedStatement pstmt = conn.prepareStatement(checkSql)) {
pstmt.setString(1, id);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
// 记录存在,执行更新操作
String updateSql = "UPDATE warehouse SET goods_id = ?, quantity = ?, " +
"supplier = ?, remark = ? WHERE id = ?";
try (PreparedStatement updateStmt = conn.prepareStatement(updateSql)) {
updateStmt.setString(1, name);
updateStmt.setInt(2, quantity);
updateStmt.setString(3, supplier);
updateStmt.setString(4, remark);
updateStmt.setString(5, id);
updateStmt.executeUpdate();
showAlert("成功", "货物信息已更新!");
}
} else {
showAlert("错误", "未找到指定ID的货物记录");
return;
}
}
}
// 更新表格
// 更新表格显示
loadGoodsData();
// 清空输入
handleClear();
showAlert("成功", "货物信息已更新!");
} catch (Exception e) {
showAlert("错误", "保存失败:" + e.getMessage());
e.printStackTrace();

Loading…
Cancel
Save