|
|
|
@ -1,39 +1,714 @@
|
|
|
|
|
package com.connor.jd.plm.dialogs;
|
|
|
|
|
|
|
|
|
|
import javax.swing.JPanel;
|
|
|
|
|
import java.sql.Connection;
|
|
|
|
|
import java.sql.PreparedStatement;
|
|
|
|
|
import java.sql.ResultSet;
|
|
|
|
|
import java.sql.SQLException;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.regex.Matcher;
|
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.math.NumberUtils;
|
|
|
|
|
|
|
|
|
|
import com.connor.jd.operations.CreateTableOperation;
|
|
|
|
|
import com.connor.jd.plm.beans.ComponentBean;
|
|
|
|
|
import com.connor.jd.plm.beans.MachineBean;
|
|
|
|
|
import com.connor.jd.plm.utils.DBConnectionUtil;
|
|
|
|
|
import com.teamcenter.rac.aif.AbstractAIFApplication;
|
|
|
|
|
import com.teamcenter.rac.kernel.TCException;
|
|
|
|
|
|
|
|
|
|
import javafx.application.Application;
|
|
|
|
|
import javafx.collections.FXCollections;
|
|
|
|
|
import javafx.collections.ObservableList;
|
|
|
|
|
import javafx.scene.Scene;
|
|
|
|
|
import javafx.scene.control.Alert;
|
|
|
|
|
import javafx.scene.control.Alert.AlertType;
|
|
|
|
|
import javafx.scene.control.Button;
|
|
|
|
|
import javafx.scene.control.SelectionMode;
|
|
|
|
|
import javafx.scene.control.Tab;
|
|
|
|
|
import javafx.scene.control.TabPane;
|
|
|
|
|
import javafx.scene.control.TableCell;
|
|
|
|
|
import javafx.scene.control.TableColumn;
|
|
|
|
|
import javafx.scene.control.TableColumn.CellEditEvent;
|
|
|
|
|
import javafx.scene.control.TableView;
|
|
|
|
|
import javafx.scene.control.TextField;
|
|
|
|
|
import javafx.scene.control.cell.PropertyValueFactory;
|
|
|
|
|
import javafx.scene.control.cell.TextFieldTableCell;
|
|
|
|
|
import javafx.scene.layout.AnchorPane;
|
|
|
|
|
import javafx.scene.layout.Pane;
|
|
|
|
|
import javafx.stage.Stage;
|
|
|
|
|
|
|
|
|
|
public class CSXWHDialog extends Application {
|
|
|
|
|
|
|
|
|
|
private AbstractAIFApplication app;
|
|
|
|
|
private static Connection con = null;
|
|
|
|
|
private static PreparedStatement ps = null;
|
|
|
|
|
private static ResultSet rs = null;
|
|
|
|
|
private ObservableList<ComponentBean> componentData = FXCollections.observableArrayList();
|
|
|
|
|
private ObservableList<MachineBean> machineData = FXCollections.observableArrayList();
|
|
|
|
|
private ObservableList<ComponentBean> findList = FXCollections.observableArrayList();
|
|
|
|
|
private ObservableList<MachineBean> findMacList = FXCollections.observableArrayList();
|
|
|
|
|
|
|
|
|
|
public CSXWHDialog() throws TCException {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private JPanel Panel;
|
|
|
|
|
private Object[] obj = new Object[] { "序号", "产品类型", "试验项目", "试验时间", "样品数量", "试验费用" };//
|
|
|
|
|
private Object[] obj2 = new Object[] { "序号", "类别", "项目", "项目费用" };//
|
|
|
|
|
|
|
|
|
|
public void initUI() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
private TableView<ComponentBean> tableView0;
|
|
|
|
|
private TableView<MachineBean> tableView1;
|
|
|
|
|
private int index = 10000;
|
|
|
|
|
private int macindex = 10000;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void start(Stage arg0) throws Exception {
|
|
|
|
|
CreateTableOperation.create();
|
|
|
|
|
try {
|
|
|
|
|
con = DBConnectionUtil.dbConn("infodba", "infodba");
|
|
|
|
|
String sqlString = "select * from JD2_Component";
|
|
|
|
|
if (con == null) {
|
|
|
|
|
Alert alert = new Alert(AlertType.ERROR, "连接失败");
|
|
|
|
|
alert.show();
|
|
|
|
|
} else {
|
|
|
|
|
ps = con.prepareStatement(sqlString);
|
|
|
|
|
rs = ps.executeQuery();
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
ComponentBean comBean = new ComponentBean();
|
|
|
|
|
// System.out.println("第一列内容:" + rs.getString(1));
|
|
|
|
|
comBean.setType(rs.getString(1));
|
|
|
|
|
comBean.setProject(rs.getString(2));
|
|
|
|
|
comBean.setTime(rs.getString(3));
|
|
|
|
|
comBean.setNumber(String.valueOf(rs.getInt(4)));
|
|
|
|
|
comBean.setCost(String.valueOf(rs.getDouble(5)));
|
|
|
|
|
comBean.setCompId(rs.getInt(6));
|
|
|
|
|
comBean.setAddId(0);
|
|
|
|
|
comBean.setStage(0);// 刚从数据库取出
|
|
|
|
|
componentData.add(comBean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
} finally {
|
|
|
|
|
if (rs != null) {
|
|
|
|
|
rs.close();
|
|
|
|
|
}
|
|
|
|
|
if (ps != null) {
|
|
|
|
|
ps.close();
|
|
|
|
|
}
|
|
|
|
|
if (con != null) {
|
|
|
|
|
con.close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (int i = 0; i < componentData.size(); i++) {
|
|
|
|
|
findList.add(componentData.get(i));
|
|
|
|
|
}
|
|
|
|
|
Stage primaryStage = new Stage();
|
|
|
|
|
Pane root = new Pane();
|
|
|
|
|
Scene scene = new Scene(root, 382, 178);
|
|
|
|
|
TabPane tabPane = new TabPane();
|
|
|
|
|
Tab tab0 = new Tab("部件测试项维护");
|
|
|
|
|
Tab tab1 = new Tab("整机测试项维护");
|
|
|
|
|
// 第一个页面
|
|
|
|
|
AnchorPane ap0 = new AnchorPane();
|
|
|
|
|
tableView0 = new TableView<ComponentBean>();
|
|
|
|
|
tableView0.setEditable(true);
|
|
|
|
|
tableView0.setLayoutY(27.0);
|
|
|
|
|
tableView0.setPrefSize(486.0, 270.0);
|
|
|
|
|
TableColumn<ComponentBean, String> num0 = new TableColumn<ComponentBean, String>("序号");
|
|
|
|
|
num0.setPrefWidth(75);
|
|
|
|
|
|
|
|
|
|
TableColumn<ComponentBean, String> type0 = new TableColumn<ComponentBean, String>("部品类型");
|
|
|
|
|
type0.setPrefWidth(90);
|
|
|
|
|
type0.setCellValueFactory(new PropertyValueFactory<>("type"));
|
|
|
|
|
type0.setCellFactory(TextFieldTableCell.<ComponentBean>forTableColumn());
|
|
|
|
|
type0.setOnEditCommit((CellEditEvent<ComponentBean, String> t) -> {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setType(t.getNewValue());
|
|
|
|
|
// 如果数据本身是从数据库中取出的,那么将数据状态改为2->从数据库取出但被修改了的
|
|
|
|
|
if (t.getTableView().getItems().get(t.getTablePosition().getRow()).getStage() == 0) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setStage(2);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
TableColumn<ComponentBean, String> project0 = new TableColumn<ComponentBean, String>("试验项目");
|
|
|
|
|
project0.setPrefWidth(89);
|
|
|
|
|
project0.setCellValueFactory(new PropertyValueFactory<>("project"));
|
|
|
|
|
project0.setCellFactory(TextFieldTableCell.<ComponentBean>forTableColumn());
|
|
|
|
|
project0.setOnEditCommit((CellEditEvent<ComponentBean, String> t) -> {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setProject(t.getNewValue());
|
|
|
|
|
if (t.getTableView().getItems().get(t.getTablePosition().getRow()).getStage() == 0) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setStage(2);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
TableColumn<ComponentBean, String> time = new TableColumn<ComponentBean, String>("试验时间");
|
|
|
|
|
time.setPrefWidth(92);
|
|
|
|
|
time.setCellValueFactory(new PropertyValueFactory<>("time"));
|
|
|
|
|
time.setCellFactory(TextFieldTableCell.<ComponentBean>forTableColumn());
|
|
|
|
|
time.setOnEditCommit((CellEditEvent<ComponentBean, String> t) -> {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setTime(t.getNewValue());
|
|
|
|
|
if (t.getTableView().getItems().get(t.getTablePosition().getRow()).getStage() == 0) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setStage(2);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
TableColumn<ComponentBean, String> number = new TableColumn<ComponentBean, String>("样品数量");
|
|
|
|
|
number.setPrefWidth(68);
|
|
|
|
|
number.setCellValueFactory(new PropertyValueFactory<>("number"));
|
|
|
|
|
number.setCellFactory(TextFieldTableCell.<ComponentBean>forTableColumn());
|
|
|
|
|
number.setOnEditCommit((CellEditEvent<ComponentBean, String> t) -> {
|
|
|
|
|
if (NumberUtils.isNumber(t.getNewValue())) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setNumber(t.getNewValue());
|
|
|
|
|
// 如果数据本身是从数据库中取出的,那么将数据状态改为2->从数据库取出但被修改了的
|
|
|
|
|
if (t.getTableView().getItems().get(t.getTablePosition().getRow()).getStage() == 0) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setStage(2);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
tableView0.refresh();
|
|
|
|
|
Alert alert = new Alert(AlertType.ERROR, "请输入数字");
|
|
|
|
|
alert.show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
TableColumn<ComponentBean, String> cost = new TableColumn<ComponentBean, String>("试验费用");
|
|
|
|
|
cost.setPrefWidth(71);
|
|
|
|
|
cost.setCellValueFactory(new PropertyValueFactory<>("cost"));
|
|
|
|
|
cost.setCellFactory(TextFieldTableCell.<ComponentBean>forTableColumn());
|
|
|
|
|
cost.setOnEditCommit((CellEditEvent<ComponentBean, String> t) -> {
|
|
|
|
|
t.getNewValue();
|
|
|
|
|
if (NumberUtils.isNumber(t.getNewValue())) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setCost(t.getNewValue());
|
|
|
|
|
if (t.getTableView().getItems().get(t.getTablePosition().getRow()).getStage() == 0) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setStage(2);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
tableView0.refresh();
|
|
|
|
|
Alert alert = new Alert(AlertType.ERROR, "请输入数字");
|
|
|
|
|
alert.show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
tableView0.getColumns().addAll(num0, type0, project0, time, number, cost);
|
|
|
|
|
num0.setCellFactory((col) -> {
|
|
|
|
|
TableCell<ComponentBean, String> cell = new TableCell<ComponentBean, String>() {
|
|
|
|
|
@Override
|
|
|
|
|
public void updateItem(String item, boolean empty) {
|
|
|
|
|
super.updateItem(item, empty);
|
|
|
|
|
this.setText(null);
|
|
|
|
|
this.setGraphic(null);
|
|
|
|
|
if (!empty) {
|
|
|
|
|
int rowIndex = this.getIndex() + 1;
|
|
|
|
|
this.setText(String.valueOf(rowIndex));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
return cell;
|
|
|
|
|
});
|
|
|
|
|
tableView0.setItems(findList);
|
|
|
|
|
tableView0.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
|
|
|
|
|
TextField search0 = new TextField();
|
|
|
|
|
search0.setPrefSize(416.0, 23.0);
|
|
|
|
|
search0.setLayoutY(3.0);
|
|
|
|
|
Button searchBtn0 = new Button("查询");
|
|
|
|
|
searchBtn0.setLayoutX(431.0);
|
|
|
|
|
searchBtn0.setLayoutY(3.0);
|
|
|
|
|
searchBtn0.setPrefSize(55.0, 23.0);
|
|
|
|
|
searchBtn0.setOnAction((arg) -> {
|
|
|
|
|
findList.clear();
|
|
|
|
|
findList = search(search0.getText(), componentData);
|
|
|
|
|
tableView0.setItems(findList);
|
|
|
|
|
});
|
|
|
|
|
Button addBtn0 = new Button("添加");
|
|
|
|
|
addBtn0.setLayoutX(501.0);
|
|
|
|
|
addBtn0.setLayoutY(63.0);
|
|
|
|
|
addBtn0.setPrefSize(48.0, 23.0);
|
|
|
|
|
addBtn0.setOnAction((arg) -> {
|
|
|
|
|
|
|
|
|
|
ComponentBean comBean = new ComponentBean();
|
|
|
|
|
comBean.setType("");
|
|
|
|
|
comBean.setProject("");
|
|
|
|
|
comBean.setTime("");
|
|
|
|
|
comBean.setNumber(String.valueOf(""));
|
|
|
|
|
comBean.setCost(String.valueOf(""));
|
|
|
|
|
comBean.setCompId(0);
|
|
|
|
|
comBean.setAddId(index++);// 只用于判断是不是新增的
|
|
|
|
|
comBean.setStage(1);// 新增的
|
|
|
|
|
findList.add(comBean);
|
|
|
|
|
componentData.add(comBean);
|
|
|
|
|
// tableView0.refresh();
|
|
|
|
|
});
|
|
|
|
|
Button removeBtn0 = new Button("删除");
|
|
|
|
|
removeBtn0.setLayoutX(501.0);
|
|
|
|
|
removeBtn0.setLayoutY(127.0);
|
|
|
|
|
removeBtn0.setPrefSize(48.0, 23.0);
|
|
|
|
|
removeBtn0.setOnAction((arg) -> {
|
|
|
|
|
ObservableList<ComponentBean> delList = tableView0.getSelectionModel().getSelectedItems();
|
|
|
|
|
List<Integer> delAddList = new ArrayList<Integer>();
|
|
|
|
|
List<Integer> delCompList = new ArrayList<Integer>();
|
|
|
|
|
for (int del = 0; del < delList.size(); del++) {
|
|
|
|
|
delAddList.add(delList.get(del).getAddId());
|
|
|
|
|
delCompList.add(delList.get(del).getCompId());
|
|
|
|
|
System.out.println("选中的id" + delList.get(del).getAddId());
|
|
|
|
|
}
|
|
|
|
|
for (int i = 0; i < delAddList.size(); i++) {
|
|
|
|
|
System.out.println("deList的长度" + delList.size());
|
|
|
|
|
System.out.println("选中的" + delAddList.get(i));
|
|
|
|
|
for (int j = 0; j < findList.size(); j++) {
|
|
|
|
|
// System.out.println("addId:" + componentData.get(j).getAddId() + "--delId:" +
|
|
|
|
|
// delAddList.get(i));
|
|
|
|
|
if (findList.get(j).getCompId() == 0) {
|
|
|
|
|
if (delAddList.get(i) == findList.get(j).getAddId()) {
|
|
|
|
|
// System.out.println("只移除了新增还未进数据库的");
|
|
|
|
|
findList.remove(j);
|
|
|
|
|
}
|
|
|
|
|
Iterator<ComponentBean> compIt = componentData.iterator();
|
|
|
|
|
while (compIt.hasNext()) {
|
|
|
|
|
int addid = compIt.next().getAddId();
|
|
|
|
|
if (delAddList.get(i) == addid) {
|
|
|
|
|
compIt.remove();
|
|
|
|
|
// System.out.println("初始结果集移除了一条");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (findList.get(j).getCompId() != 0) {
|
|
|
|
|
if (delCompList.get(i) == findList.get(j).getCompId()) {
|
|
|
|
|
String sql = "delete from JD2_Component where test_id=?";
|
|
|
|
|
update(sql, findList.get(j).getCompId());
|
|
|
|
|
// System.out.println("移除了原本数据库就有的");
|
|
|
|
|
findList.remove(j);
|
|
|
|
|
}
|
|
|
|
|
Iterator<ComponentBean> compIt = componentData.iterator();
|
|
|
|
|
while (compIt.hasNext()) {
|
|
|
|
|
int compid = compIt.next().getCompId();
|
|
|
|
|
if (delCompList.get(i) == compid) {
|
|
|
|
|
compIt.remove();
|
|
|
|
|
// System.out.println("初始结果集移除了一条");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// tableView0.refresh();
|
|
|
|
|
});
|
|
|
|
|
Button saveBtn0 = new Button("保存");
|
|
|
|
|
saveBtn0.setLayoutX(161.0);
|
|
|
|
|
saveBtn0.setLayoutY(319.0);
|
|
|
|
|
saveBtn0.setPrefSize(59.0, 23.0);
|
|
|
|
|
saveBtn0.setOnAction((arg) -> {
|
|
|
|
|
Boolean flag = true;
|
|
|
|
|
for (ComponentBean com : findList) {
|
|
|
|
|
if (com.getType().equals("") && com.getProject().equals("") && com.getTime().equals("")
|
|
|
|
|
&& com.getNumber().equals("") && com.getCost().equals("")) {
|
|
|
|
|
flag = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (flag) {
|
|
|
|
|
for (ComponentBean com : findList) {
|
|
|
|
|
System.out.println("状态" + com.getStage());
|
|
|
|
|
if (com.getStage() == 1) {
|
|
|
|
|
insert(com);
|
|
|
|
|
com.setStage(0);
|
|
|
|
|
}
|
|
|
|
|
if (com.getStage() == 2) {
|
|
|
|
|
update(com);
|
|
|
|
|
com.setStage(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
tableView0.refresh();
|
|
|
|
|
} else {
|
|
|
|
|
Alert alert = new Alert(AlertType.ERROR, "存在某行的内容全为空,请检查");
|
|
|
|
|
alert.show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
Button exitBtn0 = new Button("取消");
|
|
|
|
|
exitBtn0.setLayoutX(362.0);
|
|
|
|
|
exitBtn0.setLayoutY(319.0);
|
|
|
|
|
exitBtn0.setPrefSize(59.0, 23.0);
|
|
|
|
|
exitBtn0.setOnAction((arg) -> {
|
|
|
|
|
// for (int i = 0; i < findList.size(); i++) {
|
|
|
|
|
// System.out.println("状态:" + findList.get(i).getStage());
|
|
|
|
|
// }
|
|
|
|
|
primaryStage.close();
|
|
|
|
|
});
|
|
|
|
|
ap0.getChildren().addAll(tableView0, search0, searchBtn0, addBtn0, removeBtn0, saveBtn0, exitBtn0);
|
|
|
|
|
tab0.setContent(ap0);
|
|
|
|
|
tab0.setClosable(false);
|
|
|
|
|
// 第二个页面
|
|
|
|
|
try {
|
|
|
|
|
con = DBConnectionUtil.dbConn("infodba", "infodba");
|
|
|
|
|
String sqlString = "select * from JD2_Machine";
|
|
|
|
|
if (con == null) {
|
|
|
|
|
System.out.print("连接失败");
|
|
|
|
|
// System.exit(0);
|
|
|
|
|
} else {
|
|
|
|
|
ps = con.prepareStatement(sqlString);
|
|
|
|
|
rs = ps.executeQuery();
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
MachineBean macBean = new MachineBean();
|
|
|
|
|
macBean.setType(rs.getString(1));
|
|
|
|
|
macBean.setProject(rs.getString(2));
|
|
|
|
|
macBean.setCost(String.valueOf(rs.getDouble(3)));
|
|
|
|
|
macBean.setMacId(rs.getInt(4));
|
|
|
|
|
macBean.setAddId(0);
|
|
|
|
|
macBean.setStage(0);// 刚从数据库取出
|
|
|
|
|
machineData.add(macBean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
} finally {
|
|
|
|
|
if (rs != null) {
|
|
|
|
|
rs.close();
|
|
|
|
|
}
|
|
|
|
|
if (ps != null) {
|
|
|
|
|
ps.close();
|
|
|
|
|
}
|
|
|
|
|
if (con != null) {
|
|
|
|
|
con.close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (int i = 0; i < machineData.size(); i++) {
|
|
|
|
|
findMacList.add(machineData.get(i));
|
|
|
|
|
}
|
|
|
|
|
AnchorPane ap1 = new AnchorPane();
|
|
|
|
|
tableView1 = new TableView<MachineBean>();
|
|
|
|
|
tableView1.setEditable(true);
|
|
|
|
|
tableView1.setLayoutY(27.0);
|
|
|
|
|
tableView1.setPrefSize(486.0, 270.0);
|
|
|
|
|
TableColumn<MachineBean, String> num1 = new TableColumn<MachineBean, String>("序号");
|
|
|
|
|
num1.setPrefWidth(136.0);
|
|
|
|
|
TableColumn<MachineBean, String> type1 = new TableColumn<MachineBean, String>("类别");
|
|
|
|
|
type1.setPrefWidth(110.0);
|
|
|
|
|
type1.setCellValueFactory(new PropertyValueFactory<>("type"));
|
|
|
|
|
type1.setCellFactory(TextFieldTableCell.<MachineBean>forTableColumn());
|
|
|
|
|
type1.setOnEditCommit((CellEditEvent<MachineBean, String> t) -> {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setType(t.getNewValue());
|
|
|
|
|
if (t.getTableView().getItems().get(t.getTablePosition().getRow()).getStage() == 0) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setStage(2);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
TableColumn<MachineBean, String> project1 = new TableColumn<MachineBean, String>("项目");
|
|
|
|
|
project1.setPrefWidth(121.0);
|
|
|
|
|
project1.setCellValueFactory(new PropertyValueFactory<>("project"));
|
|
|
|
|
project1.setCellFactory(TextFieldTableCell.<MachineBean>forTableColumn());
|
|
|
|
|
project1.setOnEditCommit((CellEditEvent<MachineBean, String> t) -> {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setProject(t.getNewValue());
|
|
|
|
|
if (t.getTableView().getItems().get(t.getTablePosition().getRow()).getStage() == 0) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setStage(2);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
TableColumn<MachineBean, String> cost1 = new TableColumn<MachineBean, String>("项目费用");
|
|
|
|
|
cost1.setPrefWidth(118.0);
|
|
|
|
|
cost1.setCellValueFactory(new PropertyValueFactory<>("cost"));
|
|
|
|
|
cost1.setCellFactory(TextFieldTableCell.<MachineBean>forTableColumn());
|
|
|
|
|
cost1.setOnEditCommit((CellEditEvent<MachineBean, String> t) -> {
|
|
|
|
|
if (NumberUtils.isNumber(t.getNewValue())) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setCost(t.getNewValue());
|
|
|
|
|
if (t.getTableView().getItems().get(t.getTablePosition().getRow()).getStage() == 0) {
|
|
|
|
|
t.getTableView().getItems().get(t.getTablePosition().getRow()).setStage(2);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
tableView0.refresh();
|
|
|
|
|
Alert alert = new Alert(AlertType.ERROR, "请输入数字");
|
|
|
|
|
alert.show();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
tableView1.getColumns().addAll(num1, type1, project1, cost1);
|
|
|
|
|
num1.setCellFactory((col) -> {
|
|
|
|
|
TableCell<MachineBean, String> cell = new TableCell<MachineBean, String>() {
|
|
|
|
|
@Override
|
|
|
|
|
public void updateItem(String item, boolean empty) {
|
|
|
|
|
super.updateItem(item, empty);
|
|
|
|
|
this.setText(null);
|
|
|
|
|
this.setGraphic(null);
|
|
|
|
|
if (!empty) {
|
|
|
|
|
int rowIndex = this.getIndex() + 1;
|
|
|
|
|
this.setText(String.valueOf(rowIndex));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
return cell;
|
|
|
|
|
});
|
|
|
|
|
tableView1.setItems(findMacList);
|
|
|
|
|
tableView1.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
|
|
|
|
|
TextField search1 = new TextField();
|
|
|
|
|
search1.setPrefSize(416.0, 23.0);
|
|
|
|
|
search1.setLayoutY(3.0);
|
|
|
|
|
Button searchBtn1 = new Button("查询");
|
|
|
|
|
searchBtn1.setLayoutX(431.0);
|
|
|
|
|
searchBtn1.setLayoutY(3.0);
|
|
|
|
|
searchBtn1.setPrefSize(55.0, 23.0);
|
|
|
|
|
searchBtn1.setOnAction((arg) -> {
|
|
|
|
|
findMacList.clear();
|
|
|
|
|
findMacList = searchMac(search1.getText(), machineData);
|
|
|
|
|
tableView1.setItems(findMacList);
|
|
|
|
|
});
|
|
|
|
|
Button addBtn1 = new Button("添加");
|
|
|
|
|
addBtn1.setLayoutX(501.0);
|
|
|
|
|
addBtn1.setLayoutY(63.0);
|
|
|
|
|
addBtn1.setPrefSize(48.0, 23.0);
|
|
|
|
|
addBtn1.setOnAction((arg) -> {
|
|
|
|
|
|
|
|
|
|
MachineBean macBean = new MachineBean();
|
|
|
|
|
macBean.setType("");
|
|
|
|
|
macBean.setProject("");
|
|
|
|
|
macBean.setCost(String.valueOf(""));
|
|
|
|
|
macBean.setMacId(0);
|
|
|
|
|
macBean.setAddId(macindex++);// 只用于判断是不是新增的
|
|
|
|
|
macBean.setStage(1);// 新增的
|
|
|
|
|
findMacList.add(macBean);
|
|
|
|
|
machineData.add(macBean);
|
|
|
|
|
});
|
|
|
|
|
Button removeBtn1 = new Button("删除");
|
|
|
|
|
removeBtn1.setLayoutX(501.0);
|
|
|
|
|
removeBtn1.setLayoutY(127.0);
|
|
|
|
|
removeBtn1.setPrefSize(48.0, 23.0);
|
|
|
|
|
removeBtn1.setOnAction((arg) -> {
|
|
|
|
|
ObservableList<MachineBean> delList = tableView1.getSelectionModel().getSelectedItems();
|
|
|
|
|
List<Integer> delAddList = new ArrayList<Integer>();
|
|
|
|
|
List<Integer> delMacList = new ArrayList<Integer>();
|
|
|
|
|
for (int del = 0; del < delList.size(); del++) {
|
|
|
|
|
delAddList.add(delList.get(del).getAddId());
|
|
|
|
|
delMacList.add(delList.get(del).getMacId());
|
|
|
|
|
}
|
|
|
|
|
for (int i = 0; i < delAddList.size(); i++) {
|
|
|
|
|
System.out.println("deList的长度" + delList.size());
|
|
|
|
|
System.out.println("选中的" + delAddList.get(i));
|
|
|
|
|
for (int j = 0; j < findList.size(); j++) {
|
|
|
|
|
if (findMacList.get(j).getMacId() == 0) {
|
|
|
|
|
if (delAddList.get(i) == findMacList.get(j).getAddId()) {
|
|
|
|
|
findMacList.remove(j);
|
|
|
|
|
}
|
|
|
|
|
Iterator<MachineBean> compIt = machineData.iterator();
|
|
|
|
|
while (compIt.hasNext()) {
|
|
|
|
|
int addid = compIt.next().getAddId();
|
|
|
|
|
if (delAddList.get(i) == addid) {
|
|
|
|
|
compIt.remove();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (findMacList.get(j).getMacId() != 0) {
|
|
|
|
|
if (delMacList.get(i) == findMacList.get(j).getMacId()) {
|
|
|
|
|
String sql = "delete from JD2_Machine where test_id=?";
|
|
|
|
|
update(sql, findMacList.get(j).getMacId());
|
|
|
|
|
findMacList.remove(j);
|
|
|
|
|
}
|
|
|
|
|
Iterator<MachineBean> compIt = machineData.iterator();
|
|
|
|
|
while (compIt.hasNext()) {
|
|
|
|
|
int compid = compIt.next().getMacId();
|
|
|
|
|
if (delMacList.get(i) == compid) {
|
|
|
|
|
compIt.remove();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
Button saveBtn1 = new Button("保存");
|
|
|
|
|
saveBtn1.setLayoutX(161.0);
|
|
|
|
|
saveBtn1.setLayoutY(319.0);
|
|
|
|
|
saveBtn1.setPrefSize(59.0, 23.0);
|
|
|
|
|
saveBtn1.setOnAction((arg) -> {
|
|
|
|
|
Boolean flag = true;
|
|
|
|
|
for (MachineBean com : findMacList) {
|
|
|
|
|
if (com.getType().equals("") && com.getProject().equals("") && com.getCost().equals("")) {
|
|
|
|
|
flag = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (flag) {
|
|
|
|
|
for (MachineBean mac : findMacList) {
|
|
|
|
|
if (mac.getStage() == 1) {
|
|
|
|
|
insertMac(mac);
|
|
|
|
|
mac.setStage(0);
|
|
|
|
|
}
|
|
|
|
|
if (mac.getStage() == 2) {
|
|
|
|
|
updateMac(mac);
|
|
|
|
|
mac.setStage(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
tableView1.refresh();
|
|
|
|
|
} else {
|
|
|
|
|
Alert alert = new Alert(AlertType.ERROR, "存在某行的内容全为空,请检查");
|
|
|
|
|
alert.show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
Button exitBtn1 = new Button("取消");
|
|
|
|
|
exitBtn1.setOnAction((arg) -> {
|
|
|
|
|
primaryStage.close();
|
|
|
|
|
});
|
|
|
|
|
exitBtn1.setLayoutX(362.0);
|
|
|
|
|
exitBtn1.setLayoutY(319.0);
|
|
|
|
|
exitBtn1.setPrefSize(59.0, 23.0);
|
|
|
|
|
ap1.getChildren().addAll(tableView1, search1, searchBtn1, addBtn1, removeBtn1, saveBtn1, exitBtn1);
|
|
|
|
|
tab1.setContent(ap1);
|
|
|
|
|
tab1.setClosable(false);
|
|
|
|
|
|
|
|
|
|
tabPane.getTabs().addAll(tab0, tab1);
|
|
|
|
|
root.getChildren().add(tabPane);
|
|
|
|
|
Scene scene = new Scene(root, 600, 400);
|
|
|
|
|
primaryStage.setScene(scene);
|
|
|
|
|
primaryStage.setTitle("²âÊÔÏîά»¤");
|
|
|
|
|
primaryStage.show();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ObservableList search(String name, ObservableList list) {
|
|
|
|
|
ObservableList results = FXCollections.observableArrayList();
|
|
|
|
|
Pattern pattern = Pattern.compile(name);
|
|
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
|
|
Matcher matcher = pattern.matcher(((ComponentBean) list.get(i)).getType());
|
|
|
|
|
if (matcher.find()) {
|
|
|
|
|
results.add(list.get(i));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return results;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ObservableList searchMac(String name, ObservableList list) {
|
|
|
|
|
ObservableList results = FXCollections.observableArrayList();
|
|
|
|
|
Pattern pattern = Pattern.compile(name);
|
|
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
|
|
Matcher matcher = pattern.matcher(((MachineBean) list.get(i)).getType());
|
|
|
|
|
if (matcher.find()) {
|
|
|
|
|
results.add(list.get(i));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return results;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void insert(ComponentBean com) {
|
|
|
|
|
String sql = "insert into JD2_Component(test_type,test_project,test_time,test_num,test_cost) values(?,?,?,?,?)";
|
|
|
|
|
con = DBConnectionUtil.dbConn("infodba", "infodba");
|
|
|
|
|
try {
|
|
|
|
|
System.out.println("添加");
|
|
|
|
|
ps = con.prepareStatement(sql);
|
|
|
|
|
ps.setString(1, com.getType());
|
|
|
|
|
ps.setString(2, com.getProject());
|
|
|
|
|
ps.setString(3, com.getTime());
|
|
|
|
|
if (com.getNumber().equals("")) {
|
|
|
|
|
com.setNumber("0");
|
|
|
|
|
}
|
|
|
|
|
ps.setInt(4, Integer.valueOf(com.getNumber()));
|
|
|
|
|
if (com.getCost().equals("")) {
|
|
|
|
|
com.setCost("0");
|
|
|
|
|
}
|
|
|
|
|
ps.setDouble(5, Double.valueOf(com.getCost()));
|
|
|
|
|
int rs = ps.executeUpdate();
|
|
|
|
|
if (rs == 1)
|
|
|
|
|
System.out.println("添加成功");
|
|
|
|
|
else
|
|
|
|
|
System.out.println("添加失败");
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
System.out.println("添加失败");
|
|
|
|
|
} finally {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void insertMac(MachineBean mac) {
|
|
|
|
|
String sql = "insert into JD2_Machine(test_type,test_project,test_cost) values(?,?,?)";
|
|
|
|
|
con = DBConnectionUtil.dbConn("infodba", "infodba");
|
|
|
|
|
try {
|
|
|
|
|
ps = con.prepareStatement(sql);
|
|
|
|
|
ps.setString(1, mac.getType());
|
|
|
|
|
ps.setString(2, mac.getProject());
|
|
|
|
|
if (mac.getCost().equals("")) {
|
|
|
|
|
mac.setCost("0");
|
|
|
|
|
}
|
|
|
|
|
ps.setDouble(3, Double.valueOf(mac.getCost()));
|
|
|
|
|
int rs = ps.executeUpdate();
|
|
|
|
|
System.out.println(rs);
|
|
|
|
|
if (rs == 1)
|
|
|
|
|
System.out.println("添加成功");
|
|
|
|
|
else
|
|
|
|
|
System.out.println("添加失败");
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
System.out.println("添加失败");
|
|
|
|
|
} finally {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void update(ComponentBean com) {
|
|
|
|
|
String sql = "update JD2_Component set test_type=?,test_project=?,test_time=?,test_num=?,test_cost=? where test_id=?";
|
|
|
|
|
con = DBConnectionUtil.dbConn("infodba", "infodba");
|
|
|
|
|
try {
|
|
|
|
|
ps = con.prepareStatement(sql);
|
|
|
|
|
ps.setString(1, com.getType());
|
|
|
|
|
ps.setString(2, com.getProject());
|
|
|
|
|
ps.setString(3, com.getTime());
|
|
|
|
|
if (com.getNumber().equals("")) {
|
|
|
|
|
com.setNumber("0");
|
|
|
|
|
}
|
|
|
|
|
ps.setInt(4, Integer.valueOf(com.getNumber()));
|
|
|
|
|
if (com.getCost().equals("")) {
|
|
|
|
|
com.setCost("0");
|
|
|
|
|
}
|
|
|
|
|
ps.setDouble(5, Double.valueOf(com.getCost()));
|
|
|
|
|
ps.setInt(6, com.getCompId());
|
|
|
|
|
int rs = ps.executeUpdate();
|
|
|
|
|
if (rs == 1)
|
|
|
|
|
System.out.println("更新成功");
|
|
|
|
|
else
|
|
|
|
|
System.out.println("更新失败");
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
} finally {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void update(String sql, int id) {
|
|
|
|
|
con = DBConnectionUtil.dbConn("infodba", "infodba");
|
|
|
|
|
try {
|
|
|
|
|
ps = con.prepareStatement(sql);
|
|
|
|
|
ps.setInt(1, id);
|
|
|
|
|
int rs = ps.executeUpdate();
|
|
|
|
|
if (rs > 0)
|
|
|
|
|
System.out.println("成功");
|
|
|
|
|
else
|
|
|
|
|
System.out.println("失败");
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
} finally {
|
|
|
|
|
if (ps != null) {
|
|
|
|
|
try {
|
|
|
|
|
ps.close();
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (con != null) {
|
|
|
|
|
try {
|
|
|
|
|
con.close();
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void updateMac(MachineBean mac) {
|
|
|
|
|
String sql = "update JD2_Machine set test_type=?,test_project=?,test_cost=? where test_id=?";
|
|
|
|
|
con = DBConnectionUtil.dbConn("infodba", "infodba");
|
|
|
|
|
try {
|
|
|
|
|
ps = con.prepareStatement(sql);
|
|
|
|
|
ps.setString(1, mac.getType());
|
|
|
|
|
ps.setString(2, mac.getProject());
|
|
|
|
|
if (mac.getCost().equals("")) {
|
|
|
|
|
mac.setCost("0");
|
|
|
|
|
}
|
|
|
|
|
ps.setDouble(3, Double.valueOf(mac.getCost()));
|
|
|
|
|
ps.setInt(4, mac.getMacId());
|
|
|
|
|
int rs = ps.executeUpdate();
|
|
|
|
|
if (rs == 1)
|
|
|
|
|
System.out.println("更新成功");
|
|
|
|
|
else
|
|
|
|
|
System.out.println("更新失败");
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
} finally {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|