测试项维护

main
刘江林 6 years ago
parent fcee732772
commit 2a45b91196

@ -549,5 +549,7 @@
<classpathentry kind="lib" path="lib/poi-ooxml-schemas-4.1.1.jar"/>
<classpathentry kind="lib" path="lib/poi-scratchpad-4.1.1.jar"/>
<classpathentry kind="lib" path="lib/xmlbeans-3.1.0.jar"/>
<classpathentry kind="lib" path="lib/ojdbc6.jar"/>
<classpathentry kind="lib" path="lib/commons-lang3-3.9.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

@ -12,7 +12,8 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.108.0",
com.teamcenter.rac.kernel;bundle-version="12000.1.0",
com.teamcenter.rac.ui.views;bundle-version="12000.1.0",
org.eclipse.core.runtime;bundle-version="3.12.0",
org.eclipse.ui.forms;bundle-version="3.7.0"
org.eclipse.ui.forms;bundle-version="3.7.0",
org.eclipse.swt
Automatic-Module-Name: JDProject
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: com.connor.jd.plm.action,
@ -44,4 +45,6 @@ Bundle-ClassPath: .,
lib/poi-ooxml-4.1.1.jar,
lib/poi-ooxml-schemas-4.1.1.jar,
lib/poi-scratchpad-4.1.1.jar,
lib/xmlbeans-3.1.0.jar
lib/xmlbeans-3.1.0.jar,
lib/ojdbc6.jar,
lib/commons-lang3-3.9.jar

@ -21,4 +21,6 @@ bin.includes = plugin.xml,\
lib/poi-ooxml-4.1.1.jar,\
lib/poi-ooxml-schemas-4.1.1.jar,\
lib/poi-scratchpad-4.1.1.jar,\
lib/xmlbeans-3.1.0.jar
lib/xmlbeans-3.1.0.jar,\
lib/ojdbc6.jar,\
lib/commons-lang3-3.9.jar

@ -0,0 +1,69 @@
package com.connor.jd.operations;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.connor.jd.plm.utils.DBConnectionUtil;
public class CreateTableOperation {
private static Connection con = null;
private static Statement ps = null;
private static ResultSet rs = null;
public static void create() {
String createTable1 = "CREATE TABLE JD2_Component (test_type VARCHAR(255),test_project VARCHAR(255),test_time VARCHAR(255),test_num NUMBER,test_cost FLOAT, test_id NUMBER primary key)";
String createSeq1 = "CREATE sequence component_id_seq minvalue 1 nomaxvalue INCREMENT BY 1 START WITH 1 nocache";
String createTRG1 = "CREATE or REPLACE TRIGGER component_id_ins_trg before INSERT ON JD2_COMPONENT for each ROW BEGIN SELECT component_id_seq.Nextval into : new.TEST_ID from dual; END;";
String createTable2 = "CREATE TABLE JD2_Machine (test_type VARCHAR(255),test_project VARCHAR(255),test_cost FLOAT, test_id NUMBER primary key)";
String createSeq2 = "CREATE sequence machine_id_seq minvalue 1 nomaxvalue INCREMENT BY 1 START WITH 1 nocache";
String createTRG2 = "CREATE or REPLACE TRIGGER machine_id_ins_trg before INSERT ON JD2_MACHINE for each ROW BEGIN SELECT machine_id_seq.Nextval into : new.TEST_ID from dual; END;";
String[] sqls = { createTable1, createSeq1, createTRG1, createTable2, createSeq2, createTRG2 };
try {
con = DBConnectionUtil.dbConn("infodba", "infodba");
String sqlString = "SELECT count(*) from user_tables WHERE table_name='JD2_COMPONENT'";
if (con == null) {
System.out.print("Á¬½Óʧ°Ü");
} else {
ps = con.createStatement();
rs = ps.executeQuery(sqlString);
while (rs.next()) {
System.out.println(rs.getInt(1));
if (rs.getInt(1) == 0) {
for (int i = 0; i < sqls.length; i++) {
ps = con.createStatement();
ps.execute(sqls[i]);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}

@ -0,0 +1,101 @@
package com.connor.jd.plm.beans;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
public class ComponentBean {
private int compId;
private SimpleStringProperty type;
private SimpleStringProperty project;
private SimpleStringProperty time;
private SimpleStringProperty number;
private SimpleStringProperty cost;
private int addId;// 只用于添加所用
private int stage;// 状态 0为从数据库中取出的1为新增的2为从数据库取出但被修改了的
public int getAddId() {
return addId;
}
public void setAddId(int addId) {
this.addId = addId;
}
public int getStage() {
return stage;
}
public void setStage(int stage) {
this.stage = stage;
}
public ObservableValue<String> typeProperty() {
return type;
}
public ObservableValue<String> projectProperty() {
return project;
}
public ObservableValue<String> timeProperty() {
return time;
}
public ObservableValue<String> numberProperty() {
return number;
}
public ObservableValue<String> costProperty() {
return cost;
}
public int getCompId() {
return compId;
}
public void setCompId(int compId) {
this.compId = compId;
}
public String getType() {
return type.get();
}
public void setType(String type) {
this.type = new SimpleStringProperty(type);
}
public String getProject() {
return project.get();
}
public void setProject(String project) {
this.project = new SimpleStringProperty(project);
}
public String getTime() {
return time.get();
}
public void setTime(String time) {
this.time = new SimpleStringProperty(time);
}
public String getNumber() {
return number.get();
}
public void setNumber(String number) {
this.number = new SimpleStringProperty(number);
}
public String getCost() {
return cost.get();
}
public void setCost(String cost) {
this.cost = new SimpleStringProperty(cost);
}
}

@ -0,0 +1,75 @@
package com.connor.jd.plm.beans;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
public class MachineBean {
private int macId;
private SimpleStringProperty type;
private SimpleStringProperty project;
private SimpleStringProperty cost;
private int addId;// 只用于添加所用
private int stage;// 状态 0为从数据库中取出的1为新增的2为从数据库取出但被修改了的
public int getMacId() {
return macId;
}
public void setMacId(int macId) {
this.macId = macId;
}
public int getAddId() {
return addId;
}
public void setAddId(int addId) {
this.addId = addId;
}
public int getStage() {
return stage;
}
public void setStage(int stage) {
this.stage = stage;
}
public ObservableValue<String> typeProperty() {
return type;
}
public ObservableValue<String> projectProperty() {
return project;
}
public ObservableValue<String> costProperty() {
return cost;
}
public String getType() {
return type.get();
}
public void setType(String type) {
this.type = new SimpleStringProperty(type);
}
public String getProject() {
return project.get();
}
public void setProject(String project) {
this.project = new SimpleStringProperty(project);
}
public String getCost() {
return cost.get();
}
public void setCost(String cost) {
this.cost = new SimpleStringProperty(cost);
;
}
}

@ -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 {
}
}
}

@ -5,9 +5,12 @@ import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.connor.jd.plm.dialogs.CSXWHDialog;
import com.connor.jd.plm.utils.JDMethodUtil;
import com.teamcenter.rac.aif.AbstractAIFUIApplication;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
@ -19,21 +22,36 @@ public class CSXWHHandler extends AbstractHandler {
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFUIApplication app = AIFUtility.getCurrentApplication();
TCSession session = (TCSession) app.getSession();
new Thread(() -> {
new JFXPanel();
Platform.setImplicitExit(false);
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
CSXWHDialog csxwh = new CSXWHDialog();
csxwh.start(new Stage());
} catch (Exception e) {
e.printStackTrace();
}
String[] userIdList = JDMethodUtil.getPrefStrArray("JD2_CSXWH", session);
Boolean tag = true;
for (int i = 0; i < userIdList.length; i++) {
try {
if (session.getUser().getUserId().equals(userIdList[i])) {
tag = false;
new Thread(() -> {
new JFXPanel();
Platform.setImplicitExit(false);
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
CSXWHDialog csxwh = new CSXWHDialog();
csxwh.start(new Stage());
} catch (Exception e) {
e.printStackTrace();
}
}
});
}).start();
}
});
}).start();
} catch (TCException e) {
e.printStackTrace();
}
}
if (tag) {
MessageBox.post("没有开启权限,请联系管理员", "提示", MessageBox.INFORMATION);
}
return null;
}

@ -0,0 +1,31 @@
package com.connor.jd.plm.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnectionUtil {
public static Connection dbConn(String name, String pass) {
Connection c = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
// 要是导入驱动没有成功的话都是会出现classnotfoundException.自己看看是不是哪里错了,例如classpath这些设置
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:TC12", name, pass);
// 连接数据的方法有四种, 这个属于最简单的,一般用网页程序 TC是你的数据库实例名称在下载的文件test.sql中可以执行语句查看
// "jdbc:oracle:thin:@计算机名称:监听端口:系统实例名", username, password,
// 计算机名称,要是自己不知道可以在计算机属性查知.
// 监听端口一般默认是1521, 要是改变了就看自己的监听文件listener.ora
// 系统实例名一般是默认orcl, 要是不是的话就用 select name from v$database;
// username,password,就是登陆数据库的用户名和密码.
} catch (SQLException e) {
e.printStackTrace();
}
return c;
}
}
Loading…
Cancel
Save