diff --git a/com.connor.chint.sap2/.classpath b/com.connor.chint.sap2/.classpath
index 8a49e95..b477b64 100644
--- a/com.connor.chint.sap2/.classpath
+++ b/com.connor.chint.sap2/.classpath
@@ -51,5 +51,8 @@
+
+
+
diff --git a/com.connor.chint.sap2/META-INF/MANIFEST.MF b/com.connor.chint.sap2/META-INF/MANIFEST.MF
index 0baf468..6cc0e14 100644
--- a/com.connor.chint.sap2/META-INF/MANIFEST.MF
+++ b/com.connor.chint.sap2/META-INF/MANIFEST.MF
@@ -79,7 +79,8 @@ Bundle-ClassPath: .,
poi/okhttp-2.7.4.jar,
poi/okio-1.13.0.jar,
lib/json-org.jar,
- lib/commons-dbcp2-2.8.0.jar
+ lib/commons-dbcp2-2.8.0.jar,
+ json_lib/jfxrt.jar
Export-Package: com.connor.chint.sap2,
com.connor.chint.sap2.assignfactoryno,
com.connor.chint.sap2.bombuilder,
diff --git a/com.connor.chint.sap2/build.properties b/com.connor.chint.sap2/build.properties
index 29853b2..16601a7 100644
--- a/com.connor.chint.sap2/build.properties
+++ b/com.connor.chint.sap2/build.properties
@@ -31,7 +31,8 @@ bin.includes = plugin.xml,\
lib/mysql-connector-java-8.0.12.jar,\
poi/okhttp-2.7.4.jar,\
poi/okio-1.13.0.jar,\
- lib/json-org.jar
+ lib/json-org.jar,\
+ json_lib/jfxrt.jar
src.includes = icons/,\
poi/jacob-1.20-x64.dll,\
poi/jacob-1.20-x86.dll,\
diff --git a/com.connor.chint.sap2/json_lib/jfxrt.jar b/com.connor.chint.sap2/json_lib/jfxrt.jar
new file mode 100644
index 0000000..a8cca25
Binary files /dev/null and b/com.connor.chint.sap2/json_lib/jfxrt.jar differ
diff --git a/com.connor.chint.sap2/plugin.xml b/com.connor.chint.sap2/plugin.xml
index d92537a..e0b50ae 100644
--- a/com.connor.chint.sap2/plugin.xml
+++ b/com.connor.chint.sap2/plugin.xml
@@ -64,6 +64,7 @@
+
@@ -111,7 +112,7 @@
-
+
@@ -306,6 +307,7 @@
+
@@ -418,6 +420,7 @@
+
@@ -621,6 +624,7 @@
+
@@ -675,6 +679,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2037,6 +2062,24 @@
+
diff --git a/com.connor.chint.sap2/poi/Spire.Xls.jar b/com.connor.chint.sap2/poi/Spire.Xls.jar
new file mode 100644
index 0000000..7f53b0a
Binary files /dev/null and b/com.connor.chint.sap2/poi/Spire.Xls.jar differ
diff --git a/com.connor.chint.sap2/poi/XmlSchema-1.4.7.jar b/com.connor.chint.sap2/poi/XmlSchema-1.4.7.jar
new file mode 100644
index 0000000..79251c6
Binary files /dev/null and b/com.connor.chint.sap2/poi/XmlSchema-1.4.7.jar differ
diff --git a/com.connor.chint.sap2/poi/activation-1.1.jar b/com.connor.chint.sap2/poi/activation-1.1.jar
new file mode 100644
index 0000000..53f82a1
Binary files /dev/null and b/com.connor.chint.sap2/poi/activation-1.1.jar differ
diff --git a/com.connor.chint.sap2/poi/annogen-0.1.0.jar b/com.connor.chint.sap2/poi/annogen-0.1.0.jar
new file mode 100644
index 0000000..869ea95
Binary files /dev/null and b/com.connor.chint.sap2/poi/annogen-0.1.0.jar differ
diff --git a/com.connor.chint.sap2/poi/axiom-api-1.2.7.jar b/com.connor.chint.sap2/poi/axiom-api-1.2.7.jar
new file mode 100644
index 0000000..7ff5072
Binary files /dev/null and b/com.connor.chint.sap2/poi/axiom-api-1.2.7.jar differ
diff --git a/com.connor.chint.sap2/poi/axiom-dom-1.2.7.jar b/com.connor.chint.sap2/poi/axiom-dom-1.2.7.jar
new file mode 100644
index 0000000..5a30fe9
Binary files /dev/null and b/com.connor.chint.sap2/poi/axiom-dom-1.2.7.jar differ
diff --git a/com.connor.chint.sap2/poi/axiom-impl-1.2.7.jar b/com.connor.chint.sap2/poi/axiom-impl-1.2.7.jar
new file mode 100644
index 0000000..d6ab571
Binary files /dev/null and b/com.connor.chint.sap2/poi/axiom-impl-1.2.7.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-adb-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-adb-1.4.1.jar
new file mode 100644
index 0000000..1a13e3e
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-adb-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-adb-codegen-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-adb-codegen-1.4.1.jar
new file mode 100644
index 0000000..cb5221a
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-adb-codegen-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-ant-plugin-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-ant-plugin-1.4.1.jar
new file mode 100644
index 0000000..0689058
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-ant-plugin-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-clustering-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-clustering-1.4.1.jar
new file mode 100644
index 0000000..687ba6d
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-clustering-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-codegen-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-codegen-1.4.1.jar
new file mode 100644
index 0000000..d2dcad1
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-codegen-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-corba-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-corba-1.4.1.jar
new file mode 100644
index 0000000..543a796
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-corba-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-fastinfoset-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-fastinfoset-1.4.1.jar
new file mode 100644
index 0000000..400cb48
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-fastinfoset-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-java2wsdl-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-java2wsdl-1.4.1.jar
new file mode 100644
index 0000000..7031ad3
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-java2wsdl-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-jaxbri-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-jaxbri-1.4.1.jar
new file mode 100644
index 0000000..2654a92
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-jaxbri-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-jaxws-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-jaxws-1.4.1.jar
new file mode 100644
index 0000000..388b087
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-jaxws-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-jaxws-api-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-jaxws-api-1.4.1.jar
new file mode 100644
index 0000000..7cf2e8e
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-jaxws-api-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-jibx-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-jibx-1.4.1.jar
new file mode 100644
index 0000000..ba03475
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-jibx-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-json-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-json-1.4.1.jar
new file mode 100644
index 0000000..20762d5
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-json-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-jws-api-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-jws-api-1.4.1.jar
new file mode 100644
index 0000000..b7694d1
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-jws-api-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-kernel-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-kernel-1.4.1.jar
new file mode 100644
index 0000000..dff9bb8
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-kernel-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-metadata-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-metadata-1.4.1.jar
new file mode 100644
index 0000000..1390bbe
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-metadata-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-mtompolicy-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-mtompolicy-1.4.1.jar
new file mode 100644
index 0000000..e9b82c3
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-mtompolicy-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-saaj-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-saaj-1.4.1.jar
new file mode 100644
index 0000000..714b248
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-saaj-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-saaj-api-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-saaj-api-1.4.1.jar
new file mode 100644
index 0000000..b032540
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-saaj-api-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-spring-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-spring-1.4.1.jar
new file mode 100644
index 0000000..f9f2e29
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-spring-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/axis2-xmlbeans-1.4.1.jar b/com.connor.chint.sap2/poi/axis2-xmlbeans-1.4.1.jar
new file mode 100644
index 0000000..43f6c72
Binary files /dev/null and b/com.connor.chint.sap2/poi/axis2-xmlbeans-1.4.1.jar differ
diff --git a/com.connor.chint.sap2/poi/backport-util-concurrent-3.1.jar b/com.connor.chint.sap2/poi/backport-util-concurrent-3.1.jar
new file mode 100644
index 0000000..3a4c279
Binary files /dev/null and b/com.connor.chint.sap2/poi/backport-util-concurrent-3.1.jar differ
diff --git a/com.connor.chint.sap2/poi/mail-1.4.jar b/com.connor.chint.sap2/poi/mail-1.4.jar
new file mode 100644
index 0000000..fd4555b
Binary files /dev/null and b/com.connor.chint.sap2/poi/mail-1.4.jar differ
diff --git a/com.connor.chint.sap2/poi/neethi-3.0.2.jar b/com.connor.chint.sap2/poi/neethi-3.0.2.jar
new file mode 100644
index 0000000..383efde
Binary files /dev/null and b/com.connor.chint.sap2/poi/neethi-3.0.2.jar differ
diff --git a/com.connor.chint.sap2/poi/woden-api-1.0M9.jar b/com.connor.chint.sap2/poi/woden-api-1.0M9.jar
new file mode 100644
index 0000000..3b07e8e
Binary files /dev/null and b/com.connor.chint.sap2/poi/woden-api-1.0M9.jar differ
diff --git a/com.connor.chint.sap2/poi/woden-impl-commons-1.0M9.jar b/com.connor.chint.sap2/poi/woden-impl-commons-1.0M9.jar
new file mode 100644
index 0000000..f99c8d7
Binary files /dev/null and b/com.connor.chint.sap2/poi/woden-impl-commons-1.0M9.jar differ
diff --git a/com.connor.chint.sap2/poi/woden-impl-dom-1.0M9.jar b/com.connor.chint.sap2/poi/woden-impl-dom-1.0M9.jar
new file mode 100644
index 0000000..0e3fff5
Binary files /dev/null and b/com.connor.chint.sap2/poi/woden-impl-dom-1.0M9.jar differ
diff --git a/com.connor.chint.sap2/poi/wsdl4j-1.6.2.jar b/com.connor.chint.sap2/poi/wsdl4j-1.6.2.jar
new file mode 100644
index 0000000..b9ffc36
Binary files /dev/null and b/com.connor.chint.sap2/poi/wsdl4j-1.6.2.jar differ
diff --git a/com.connor.chint.sap2/poi/wstx-asl-3.2.9.jar b/com.connor.chint.sap2/poi/wstx-asl-3.2.9.jar
new file mode 100644
index 0000000..ffdbd1f
Binary files /dev/null and b/com.connor.chint.sap2/poi/wstx-asl-3.2.9.jar differ
diff --git a/com.connor.chint.sap2/poi/xml-resolver-1.2.jar b/com.connor.chint.sap2/poi/xml-resolver-1.2.jar
new file mode 100644
index 0000000..e535bdc
Binary files /dev/null and b/com.connor.chint.sap2/poi/xml-resolver-1.2.jar differ
diff --git a/com.connor.chint.sap2/poi/xmlbeans-5.0.3.jar b/com.connor.chint.sap2/poi/xmlbeans-5.0.3.jar
new file mode 100644
index 0000000..63b0ab8
Binary files /dev/null and b/com.connor.chint.sap2/poi/xmlbeans-5.0.3.jar differ
diff --git a/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/KFXPanel.java b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/KFXPanel.java
new file mode 100644
index 0000000..1868761
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/KFXPanel.java
@@ -0,0 +1,135 @@
+package com.chint.plm.rdmCreate;
+
+import com.sun.javafx.util.Logging;
+import com.teamcenter.rac.util.MessageBox;
+import java.awt.Window;
+import javafx.application.Application;
+import javafx.application.Platform;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.control.Alert;
+import javafx.stage.Stage;
+//import sun.util.logging.PlatformLogger;
+
+public abstract class KFXPanel extends Application {
+ protected Scene scene;
+
+ protected KFXPanelController aifController;
+
+ protected Parent root;
+
+ protected String cssForm;
+
+ protected Window parentDialog;
+
+ static {
+ Platform.setImplicitExit(false);
+// Logging.getCSSLogger().setLevel(Platform.class...STYLESHEET_CASPIAN....Level.OFF);
+ }
+
+ public KFXPanel(Window dialog, String fxmlName) {
+ setParentDialog(dialog);
+ initUI(fxmlName);
+ initData();
+ }
+
+ public KFXPanel(Window dialog, Class> c, String css) {
+ setParentDialog(dialog);
+ this.cssForm = c.getResource(css).toExternalForm();
+ initUI();
+ initData();
+ }
+
+ public void setParentDialog(Window dialog) {
+ this.parentDialog = dialog;
+ }
+
+ public Window getParentDialog() {
+ return this.parentDialog;
+ }
+
+ public Parent getRoot() {
+ return this.root;
+ }
+
+ public KFXPanelController getController() {
+ return this.aifController;
+ }
+
+ public Scene getScene() {
+ if (this.scene == null) {
+ this.scene = new Scene(this.root);
+ this.scene.setFill(null);
+ }
+ return this.scene;
+ }
+
+ public void initData() {
+ try {
+ this.aifController.initData(this);
+ } catch (Exception e) {
+ e.printStackTrace();
+ post(this.parentDialog, e.getMessage(), "", 1);
+ }
+ }
+
+ protected void initUI(String fxmlName) {
+ try {
+ FXMLLoader fxmlLoader = new FXMLLoader();
+ String resource = fxmlName;// "SearchSapResultPanel.fxml";
+ fxmlLoader.setLocation(getClass().getResource(resource));
+ this.root = (Parent) fxmlLoader.load();
+ this.aifController = (KFXPanelController) fxmlLoader.getController();
+ if (this.cssForm != null)
+ this.root.getStylesheets().add(this.cssForm);
+ } catch (Exception e) {
+ e.printStackTrace();
+ post(this.parentDialog, e.getMessage(), "", 1);
+ }
+ }
+
+ protected void initUI() {
+ try {
+ FXMLLoader fxmlLoader = new FXMLLoader();
+ String resource = "SearchSapResultPanel.fxml";
+ fxmlLoader.setLocation(getClass().getResource(resource));
+ this.root = (Parent) fxmlLoader.load();
+ this.aifController = (KFXPanelController) fxmlLoader.getController();
+ if (this.cssForm != null)
+ this.root.getStylesheets().add(this.cssForm);
+ } catch (Exception e) {
+ e.printStackTrace();
+ post(this.parentDialog, e.getMessage(), "", 1);
+ }
+ }
+
+ public static void post(Window dialog, final String msg, final String title, int msgType) {
+ if (dialog == null) {
+ Platform.runLater(new Runnable() {
+ public void run() {
+ Alert alert = new Alert(Alert.AlertType.INFORMATION);
+ alert.setTitle(title);
+ alert.setHeaderText("");
+ alert.setContentText(msg);
+ alert.showAndWait();
+ }
+ });
+ } else {
+ MessageBox.post(dialog, msg, title, msgType);
+ }
+ }
+
+// protected Stage primaryStage;
+ public void start(Stage primaryStage) throws Exception {
+ initUI();
+ initData();
+// this.primaryStage = primaryStage;
+ primaryStage.setScene(getScene());
+ primaryStage.show();
+ }
+
+ public static void main(String[] args) {
+ launch(args);
+ }
+}
\ No newline at end of file
diff --git a/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/KFXPanelController.java b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/KFXPanelController.java
new file mode 100644
index 0000000..85d7b18
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/KFXPanelController.java
@@ -0,0 +1,27 @@
+package com.chint.plm.rdmCreate;
+
+import javafx.application.Platform;
+import javafx.fxml.FXML;
+import javafx.scene.layout.AnchorPane;
+
+public abstract class KFXPanelController {
+ @FXML
+ protected AnchorPane coverPane;
+
+ public abstract void initData(KFXPanel paramKFXPanel) throws Exception;
+
+ public void setCoverVisible(final boolean visible) {
+ if (this.coverPane != null) {
+ Platform.runLater(new Runnable() {
+ public void run() {
+ KFXPanelController.this.coverPane.setVisible(visible);
+ }
+ });
+ try {
+ Thread.sleep(10L);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
diff --git a/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/KFrame.java b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/KFrame.java
new file mode 100644
index 0000000..2cf0663
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/KFrame.java
@@ -0,0 +1,29 @@
+package com.chint.plm.rdmCreate;
+
+import com.teamcenter.rac.util.MessageBox;
+import com.teamcenter.rac.util.UIUtilities;
+import javax.swing.JFrame;
+
+public abstract class KFrame extends JFrame {
+// protected KDialogController controller;
+
+ public KFrame() {
+ try {
+// if (!this.controller.init())
+// return;
+ initUI();
+ showFrame();
+ } catch (Exception e) {
+ e.printStackTrace();
+ MessageBox.post(this, e);
+ }
+ }
+
+ public void showFrame() {
+ pack();
+ UIUtilities.centerToScreen(this);
+ setVisible(true);
+ }
+
+ protected abstract void initUI() throws Exception;
+}
\ No newline at end of file
diff --git a/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreate.fxml b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreate.fxml
new file mode 100644
index 0000000..2ca2a5e
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreate.fxml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateBean.java b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateBean.java
new file mode 100644
index 0000000..abc136d
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateBean.java
@@ -0,0 +1,200 @@
+package com.chint.plm.rdmCreate;
+
+import java.sql.Date;
+import java.text.SimpleDateFormat;
+
+import javafx.beans.property.BooleanProperty;
+import javafx.scene.control.CheckBox;
+import javafx.scene.control.TextArea;
+
+public class RdmCreateBean {
+
+ private TextArea ordernumber = new TextArea();
+ private TextArea projectno = new TextArea();
+ private TextArea rdmprojectno = new TextArea();
+ private TextArea projectname = new TextArea();
+ private TextArea projectleader = new TextArea();
+ private TextArea factory = new TextArea();
+ private TextArea pushuser = new TextArea();
+ private TextArea pushdate = new TextArea();
+ private TextArea status = new TextArea();
+ private TextArea createdate = new TextArea();
+ private TextArea projectleaderid = new TextArea();
+ private TextArea pushuserid = new TextArea();
+ private CheckBox checkBox = new CheckBox();
+
+
+
+
+ public CheckBox getCheckBox() {
+ return checkBox;
+ }
+
+ public void setCheckBox(CheckBox checkBox) {
+ this.checkBox = checkBox;
+ }
+
+ public RdmCreateBean(String ordernumber, String projectno, String rdmprojectno, String projectname,
+ String projectleader, String factory, String pushuser, Date pushdate, String status, Date createdate,
+ String projectleaderid, String pushuserid) {
+ super();
+
+ this.checkBox.setSelected(false);
+
+ this.ordernumber.setText(ordernumber);
+ this.ordernumber.setEditable(false);
+ this.ordernumber.setPrefSize(200, 40);
+
+ this.projectno.setText(projectno);
+ this.projectno.setEditable(false);
+ this.projectno.setPrefSize(200, 40);
+
+ this.rdmprojectno.setText(rdmprojectno);
+ this.rdmprojectno.setEditable(false);
+ this.rdmprojectno.setPrefSize(200, 40);
+
+
+ this.projectname.setText(projectname);
+ this.projectname.setEditable(false);
+ this.projectname.setPrefSize(200, 40);
+
+
+ this.projectleader.setText(projectleader);
+ this.projectleader.setEditable(false);
+ this.projectleader.setPrefSize(200, 40);
+
+
+ this.factory.setText(factory);
+ this.factory.setEditable(false);
+ this.factory.setPrefSize(200, 40);
+
+
+ this.pushuser.setText(pushuser);
+ this.pushuser.setEditable(false);
+ this.pushuser.setPrefSize(200, 40);
+
+ SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-M-dd");
+
+ this.pushdate.setText(sdf2.format(pushdate));
+ this.pushdate.setEditable(false);
+ this.pushdate.setPrefSize(200, 40);
+
+
+ this.status.setText(status);
+ this.status.setEditable(false);
+ this.status.setPrefSize(200, 40);
+
+
+ this.createdate.setText(sdf2.format(createdate));
+ this.createdate.setEditable(false);
+ this.createdate.setPrefSize(200, 40);
+
+
+ this.projectleaderid.setText(projectleaderid);
+ this.projectleaderid.setEditable(false);
+ this.projectleaderid.setPrefSize(200, 40);
+
+
+ this.pushuserid.setText(pushuserid);
+ this.pushuserid.setEditable(false);
+ this.pushuserid.setPrefSize(200, 40);
+ }
+
+ public void setOrdernumber(TextArea ordernumber) {
+ this.ordernumber = ordernumber;
+ }
+
+ public void setProjectno(TextArea projectno) {
+ this.projectno = projectno;
+ }
+
+ public void setRdmprojectno(TextArea rdmprojectno) {
+ this.rdmprojectno = rdmprojectno;
+ }
+
+ public void setProjectname(TextArea projectname) {
+ this.projectname = projectname;
+ }
+
+ public void setProjectleader(TextArea projectleader) {
+ this.projectleader = projectleader;
+ }
+
+ public void setFactory(TextArea factory) {
+ this.factory = factory;
+ }
+
+ public void setPushuser(TextArea pushuser) {
+ this.pushuser = pushuser;
+ }
+
+ public void setPushdate(TextArea pushdate) {
+ this.pushdate = pushdate;
+ }
+
+ public void setStatus(TextArea status) {
+ this.status = status;
+ }
+
+ public void setCreatedate(TextArea createdate) {
+ this.createdate = createdate;
+ }
+
+ public void setProjectleaderid(TextArea projectleaderid) {
+ this.projectleaderid = projectleaderid;
+ }
+
+ public void setPushuserid(TextArea pushuserid) {
+ this.pushuserid = pushuserid;
+ }
+
+ public TextArea getOrdernumber() {
+ return ordernumber;
+ }
+
+ public TextArea getProjectno() {
+ return projectno;
+ }
+
+ public TextArea getRdmprojectno() {
+ return rdmprojectno;
+ }
+
+ public TextArea getProjectname() {
+ return projectname;
+ }
+
+ public TextArea getProjectleader() {
+ return projectleader;
+ }
+
+ public TextArea getFactory() {
+ return factory;
+ }
+
+ public TextArea getPushuser() {
+ return pushuser;
+ }
+
+ public TextArea getPushdate() {
+ return pushdate;
+ }
+
+ public TextArea getStatus() {
+ return status;
+ }
+
+ public TextArea getCreatedate() {
+ return createdate;
+ }
+
+ public TextArea getProjectleaderid() {
+ return projectleaderid;
+ }
+
+ public TextArea getPushuserid() {
+ return pushuserid;
+ }
+
+
+}
diff --git a/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateController.java b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateController.java
new file mode 100644
index 0000000..f6a36c3
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateController.java
@@ -0,0 +1,716 @@
+package com.chint.plm.rdmCreate;
+
+
+
+/**
+ * ===============================================================================
+ * Copyright (c) 2012-2024 CONNOR lijh. Unpublished - All Rights Reserved
+ * ===============================================================================
+ * File description:
+ *
+ * GZXQController.java װѯ
+ *
+ * ===============================================================================
+ * DATE Name Description of Change
+ *
+ * 2024-06-13 ljh create
+ * ===============================================================================
+ */
+
+
+
+
+
+import java.awt.Component;
+import java.awt.event.ComponentEvent;
+import java.awt.event.ComponentListener;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+
+
+import com.connor.chint.sap2.util.KUtil;
+import com.connor.chint.sap2.util.SAPUtil;
+import com.connor.chint.sap2.util.SqlUtil;
+import com.teamcenter.rac.aif.AbstractAIFApplication;
+import com.teamcenter.rac.aif.kernel.AIFComponentContext;
+import com.teamcenter.rac.aifrcp.AIFUtility;
+import com.teamcenter.rac.kernel.TCComponent;
+import com.teamcenter.rac.kernel.TCComponentContextList;
+import com.teamcenter.rac.kernel.TCComponentGroup;
+import com.teamcenter.rac.kernel.TCComponentGroupType;
+import com.teamcenter.rac.kernel.TCComponentProject;
+import com.teamcenter.rac.kernel.TCComponentProjectType;
+import com.teamcenter.rac.kernel.TCComponentUser;
+import com.teamcenter.rac.kernel.TCComponentUserType;
+import com.teamcenter.rac.kernel.TCException;
+import com.teamcenter.rac.kernel.TCSession;
+import com.teamcenter.rac.util.MessageBox;
+
+import javafx.collections.FXCollections;
+import javafx.collections.ObservableList;
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.scene.control.Alert;
+import javafx.scene.control.Button;
+import javafx.scene.control.ComboBox;
+import javafx.scene.control.DatePicker;
+import javafx.scene.control.ScrollPane;
+import javafx.scene.control.SplitPane;
+import javafx.scene.control.TableCell;
+import javafx.scene.control.TableColumn;
+import javafx.scene.control.TableRow;
+import javafx.scene.control.TableView;
+import javafx.scene.control.TextArea;
+import javafx.scene.control.TextField;
+import javafx.scene.control.TitledPane;
+import javafx.scene.control.Alert.AlertType;
+import javafx.scene.control.cell.PropertyValueFactory;
+import javafx.scene.layout.AnchorPane;
+import javafx.scene.layout.BorderPane;
+import javafx.scene.layout.GridPane;
+import javafx.scene.layout.Pane;
+
+
+public class RdmCreateController extends KFXPanelController {
+ private Connection conn;
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ private String PlanTime;//
+ private String lineSeparator = System.lineSeparator();// з
+ private String[] prefs = null;
+ private double paneWidth;
+ private double paneHight;
+
+ @FXML
+ private Button cxButton;
+
+ @FXML
+ private TextField f0;
+
+ @FXML
+ private TextField f1;
+
+ @FXML
+ private AnchorPane anchorPane1;
+
+ @FXML
+ private TextField f2;
+
+ @FXML
+ private AnchorPane anchorPane2;
+
+ @FXML
+ private TextField f3;
+
+ @FXML
+ private TextField f4;
+
+ @FXML
+ private AnchorPane anchorPane3;
+
+ @FXML
+ private GridPane gridTop;
+
+ @FXML
+ private ComboBox f5;
+
+ @FXML
+ private AnchorPane anchorPane4;
+
+ @FXML
+ private TextField f6;
+
+ @FXML
+ private TitledPane titlePane;
+
+ @FXML
+ private DatePicker f7;
+
+ @FXML
+ private DatePicker f8;
+
+ @FXML
+ private ComboBox f9;
+
+// @FXML
+// private SplitPane splitPane;
+
+ @FXML
+ private Button cjButton;
+
+ @FXML
+ private GridPane grid;
+
+ @FXML
+ private Button gbxmButton;
+
+ @FXML
+ private Pane pane;
+
+ @FXML
+ private TableView table;
+
+ @FXML
+ private Pane pane1;
+
+ @FXML
+ private Pane pane2;
+
+
+ @FXML
+ private ScrollPane scrollpane;
+ // table
+ private TableColumn tc_1 = new TableColumn("");
+
+
+ private String f7Str;
+ private String f8Str;
+
+
+
+
+ private RdmCreateFrame frame;
+ protected AbstractAIFApplication app;
+ private TCSession session;
+
+ /**
+ * ʼ
+ */
+ @Override
+ public void initData(KFXPanel paramKFXPanel) throws Exception {
+ // TODO Auto-generated method stub
+ //ݿ ѯ
+
+ this.app = AIFUtility.getCurrentApplication();
+ this.session = (TCSession) app.getSession();
+ this.prefs = session.getPreferenceService().getStringValues("CHINT_SRM_SQL_CONNECT");
+
+ System.out.println("===============ʼtcݿ===============");
+ frame = (RdmCreateFrame) paramKFXPanel.getParentDialog();
+ addWindListener(frame);
+ initCombox();
+ frame.setMaximumSize(frame.getMaximumSize());
+ System.out.println("frame==>" + frame);
+
+ //ʼһйѡ
+ TableColumn checkboxColumn = new TableColumn<>("");
+ checkboxColumn.setCellValueFactory(new PropertyValueFactory("checkBox"));
+ checkboxColumn.prefWidthProperty().bind(table.widthProperty().multiply(0.03));
+ table.getColumns().add(checkboxColumn);
+
+
+ //ѡʼtable
+ String[] chint_tcproject_result_rule = session.getPreferenceService().getStringValues("CHINT_TCPROJECT_RESULT_RULE");
+ if(chint_tcproject_result_rule == null || chint_tcproject_result_rule.length <= 0) {
+ Alert alert = new Alert(AlertType.INFORMATION);
+ alert.setTitle("ʾ");
+ alert.setHeaderText("ȷáCHINT_TCPROJECT_RESULT_RULEѡ");
+ //alert.setContentText("");
+ alert.showAndWait();
+ return;
+ }
+ for (int i = 0; i < chint_tcproject_result_rule.length; i++) {
+ String[] split = chint_tcproject_result_rule[i].split(":");
+ if(split.length == 3) {
+ TableColumn tempColume = new TableColumn(split[0]);
+ tempColume.setSortable(false);
+ tempColume.setCellValueFactory(new PropertyValueFactory(split[1]));
+ tempColume.prefWidthProperty().bind(table.widthProperty().multiply(Double.parseDouble(split[2])));
+ table.getColumns().add(tempColume);
+ }
+
+ }
+
+
+ //ıĸ߶
+// jTextField1.setPrefHeight(30);
+
+
+
+ // аbean
+ // tc_1.setSortable(false);
+
+ // аbean
+ // tc_1.setCellValueFactory(new PropertyValueFactory("xh"));
+
+
+ //tableп
+ // tc_1.prefWidthProperty().bind(table.widthProperty().multiply(0.04));
+
+
+// //Ƿɱ༭
+// tc_1.setEditable(false);
+// tc_2.setEditable(false);
+// tc_3.setEditable(false);
+// tc_4.setEditable(false);
+// tc_5.setEditable(false);
+// tc_6.setEditable(false);
+// tc_7.setEditable(false);
+// tc_8.setEditable(true);
+// tc_9.setEditable(true);
+// tc_10.setEditable(false);
+
+
+
+ //ѴжtableмtableView
+// table.getColumns().addAll(tc_1, tc_2, tc_3, tc_4, tc_5, tc_6, tc_7,
+// tc_8, tc_9, tc_10);
+
+// tableView.setMaxHeight(pageNum);
+ }
+
+ // ʼ
+ private void initCombox() {
+ // TODO Auto-generated method stub
+ SqlUtil.SRMGetTCDataConnection(prefs);
+ String groupSql = "SELECT PNAME FROM ppom_group WHERE RPARENTU=(SELECT PUID FROM ppom_group WHERE PNAME='CHINT') order by PNAME ASC";
+ List gcList = new ArrayList();
+
+ ResultSet res;
+ try {
+ res = SqlUtil.read(groupSql);
+ //ѯݽ
+ while (res.next()) {
+ gcList.add(res.getString(1));
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ f5.getItems().addAll(gcList);
+
+ List ztList = new ArrayList();
+ ztList.add("δ");
+ ztList.add("Ѵ");
+ ztList.add("ѱ");
+ ztList.add("Ѹ");
+ ztList.add("ѹر");
+ f9.getItems().addAll(ztList);
+ }
+
+
+ /**
+ * @param frame
+ * @function ҳļ
+ */
+ private void addWindListener(RdmCreateFrame frame) {
+ // TODO Auto-generated method stub
+
+ frame.addComponentListener(new ComponentListener() {
+
+ @Override
+ public void componentShown(ComponentEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /**
+ * ʱpaneҲô
+ */
+ @Override
+ public void componentResized(ComponentEvent e) {
+ // TODO Auto-generated method stub
+// System.out.println("==============");
+ Component component = e.getComponent();
+ System.out.println("component==>" + component);
+ double width = component.getSize().getWidth();
+ double hight = component.getSize().getHeight();
+ paneWidth = pane.getWidth();
+ paneHight = pane.getHeight();
+ double widthxs = width/paneWidth;
+ double hightxs = hight/paneHight;
+ System.out.println("Widthxs============"+widthxs);
+// // double width = primaryStage.getWidth();
+ System.out.println("width=============>" + width);
+ System.out.println("pane==========="+pane.getWidth());
+ pane.setPrefWidth(width * 0.98);
+ pane.setPrefHeight(hight * 0.98);
+ System.out.println("pane==========="+pane.getWidth());
+ //anchorPane1.setPrefWidth(width * 0.98);
+ //anchorPane2.setPrefWidth(width * 0.98);
+ System.out.println("anchorPane3==========="+anchorPane3.getWidth());
+ anchorPane3.setPrefWidth(anchorPane3.getWidth() * widthxs);
+ anchorPane3.setPrefHeight(anchorPane3.getHeight() * hightxs);
+ System.out.println("anchorPane3==========="+anchorPane3.getWidth());
+ anchorPane4.setPrefWidth(anchorPane4.getWidth() * widthxs);
+ anchorPane4.setPrefHeight(anchorPane4.getHeight() * hightxs);
+
+ System.out.println("scrollpane==========="+scrollpane.getWidth());
+ scrollpane.setPrefWidth(scrollpane.getWidth() * widthxs);
+ scrollpane.setPrefHeight(scrollpane.getHeight() * hightxs);
+ System.out.println("scrollpane==========="+scrollpane.getWidth());
+ System.out.println("pane2==========="+pane2.getWidth());
+ pane2.setPrefWidth(pane2.getWidth() * widthxs);
+ pane2.setPrefHeight(pane2.getHeight() * hightxs);
+ System.out.println("pane2==========="+pane2.getWidth());
+ if(width == 1308.0) {
+ titlePane.setPrefWidth(width * 1.0);
+ System.out.println("111111111111111111111111111111111111111111111111111111111111111111111");
+ }else {
+ titlePane.setPrefWidth(width * 0.929);
+ }
+
+
+
+ //grid.setPrefWidth(width * 0.98);
+ //gridTop.setPrefWidth(width * 0.98);
+ System.out.println("table==========="+table.getWidth());
+ table.setPrefWidth(table.getWidth() * widthxs);
+ table.setPrefHeight(table.getHeight() * hightxs);
+ System.out.println("table==========="+table.getWidth());
+// bpane.setPrefWidth(width * 0.98);
+// titlePaneCondition.setPrefWidth(width * 0.98);
+// titlePaneResult.setPrefWidth(width * 0.98);
+// gridPaneCondition.setPrefWidth(width * 0.97);
+// gridPaneCondition.setPrefWidth(width * 0.97);
+// tablePane.setPrefWidth(width * 0.98);
+// tableView.setPrefWidth(width * 0.97);
+// gridPaneResult.setPrefWidth(width * 0.97);
+// refTable.setPrefWidth(width * 0.97);
+ }
+
+ @Override
+ public void componentMoved(ComponentEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void componentHidden(ComponentEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+
+ }
+//Ŀ
+ @FXML
+ void cjbutton(ActionEvent event) throws Exception {
+ SqlUtil.SRMGetTCDataConnection(prefs);
+ ObservableList items = table.getItems();
+ int count = 0;
+ TCComponentUserType userType = (TCComponentUserType)this.session
+ .getTypeComponent("User");
+ TCComponentGroupType groupType = (TCComponentGroupType) session.getTypeComponent("Group");
+ StringBuffer sbInfo = new StringBuffer();
+
+ for (int i = 0; i < items.size(); i++) {
+ RdmCreateBean rdmCreateBean = items.get(i);
+ boolean selected = rdmCreateBean.getCheckBox().isSelected();
+ if(selected) {
+ count++;
+ List members = new ArrayList();//ָɵûid
+ List exitUserName = new ArrayList();//ڵû
+ List notExitUserName = new ArrayList();//ڵû
+ //жtcǷѾĿ
+ Map field = new HashMap();
+ String ordernumber = rdmCreateBean.getOrdernumber().getText();
+ String id = ordernumber+"-"+rdmCreateBean.getProjectno().getText();
+ System.out.println("id="+id);
+ field.put("ordernumber", ordernumber);
+ TCComponentContextList contxt = KUtil.query(session, "chint_query_tcproject", field);
+ if(contxt == null || contxt.getListCount() == 0) {
+
+ //ȥݿвѯҪָɵԱ
+
+ String selectSql = "SELECT USERID,\"USER\",FACTORY FROM CHINT_RDM_PROJECT_PDTTEAMS WHERE ordernumber ='"+ordernumber+"'";
+ System.out.println("selectSql==="+selectSql);
+
+ ResultSet res = SqlUtil.read(selectSql);
+
+ //ѯݽ
+ while (res.next()) {
+ TCComponentUser userT = null;
+ try {
+ System.out.println("res.getString(1)=="+res.getString(1));
+ userT = userType.find(res.getString(1));
+ }catch (Exception e) {
+ // TODO: handle exception
+ notExitUserName.add(res.getString(2));//Ҳ˱
+ System.out.println("res.getString(2)=="+res.getString(2));
+ continue;
+ }
+ if (userT != null) {
+// TCComponentGroup group = groupType.find(res.getString(3));
+// KUtil.setByPass(true);
+// userT.setDefaultGroup(group);
+// KUtil.setByPass(false);
+ members.add(userT);
+ exitUserName.add(res.getString(2));
+ System.out.println("111");
+ }else {
+ notExitUserName.add(res.getString(2));
+ System.out.println("222");
+ }
+ }
+
+// //û˿ָ ᱨ
+// if(members.size() <= 0) {
+// sbInfo.append("Ŀʧܣڲţ"+ordernumber+"ĿIDΪ"+id+lineSeparator);
+// sbInfo.append("ʧԭǰˣҪӵĿСԱóĿԱ"+lineSeparator);
+// sbInfo.append(lineSeparator);
+// continue;
+// }
+
+
+
+ TCComponentProjectType projecttype = (TCComponentProjectType) session
+ .getTypeComponent("TC_Project");
+ TCComponentProject proj=null;
+ TCComponentUser user = session.getUser();
+
+// proj = projecttype.create(id, id, "",
+// new TCComponent[] {user}, user, new TCComponentUser[] {user});
+ //Լӽȥ
+ members.add(user);
+ exitUserName.add(session.getUserName());
+ proj = projecttype.create(id,
+ id, "",
+ (TCComponent[])members.toArray(
+ new TCComponent[members.size()]), user,//ԱָɵĿ
+ (TCComponentUser[])members.toArray(
+ new TCComponentUser[members.size()]));
+
+ //
+ proj.setProperties(new String[] {"zt2_ordernumber","zt2_projectno","zt2_rdmprojectno","zt2_projectname","zt2_projectleader","zt2_projectleaderid","zt2_factory","zt2_pushuser","zt2_pushuserid"},
+ new String[] {rdmCreateBean.getOrdernumber().getText(),rdmCreateBean.getProjectno().getText(),rdmCreateBean.getRdmprojectno().getText(),rdmCreateBean.getProjectname().getText(),rdmCreateBean.getProjectleader().getText(),rdmCreateBean.getProjectleaderid().getText(),rdmCreateBean.getFactory().getText(),rdmCreateBean.getPushuser().getText(),rdmCreateBean.getPushuserid().getText()});
+ String pushDate = rdmCreateBean.getPushdate().getText();
+ if(pushDate != null && !pushDate.isEmpty()) {
+ Date parse = sdf.parse(pushDate);
+ proj.setDateProperty("zt2_pushdate", parse);
+ }
+
+
+ //Ŀ ݿе״̬
+ String updateSql = "UPDATE CHINT_RDM_PROJECT SET status = 'Ѵ' WHERE ordernumber = '"+rdmCreateBean.getOrdernumber().getText()+"'";
+ System.out.println("updateSql==="+updateSql);
+
+
+
+ try {
+ SqlUtil.update(updateSql);
+ }catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+
+ //ĿϢ
+ sbInfo.append("ĿѴɣڲţ"+ordernumber+"ĿIDΪ"+id+lineSeparator);
+ if(exitUserName.size() > 0) {
+ sbInfo.append("Աָ");
+ for (int j = 0; j < exitUserName.size(); j++) {
+ sbInfo.append(exitUserName.get(j)+",");
+ }
+ }
+ if(notExitUserName.size() > 0) {
+ sbInfo.append("Աδָ");
+ for (int j = 0; j < notExitUserName.size(); j++) {
+ sbInfo.append(notExitUserName.get(j)+",");
+ }
+ }
+ sbInfo.append(lineSeparator);
+ sbInfo.append(lineSeparator);
+ }else {
+ //ȡѯ鵽Ŀ
+ TCComponentProject proj = (TCComponentProject)contxt.get(0).getComponent();
+ //
+ proj.setProperties(new String[] {"zt2_ordernumber","zt2_projectno","zt2_rdmprojectno","zt2_projectname","zt2_projectleader","zt2_projectleaderid","zt2_factory","zt2_pushuser","zt2_pushuserid"},
+ new String[] {rdmCreateBean.getOrdernumber().getText(),rdmCreateBean.getProjectno().getText(),rdmCreateBean.getRdmprojectno().getText(),rdmCreateBean.getProjectname().getText(),rdmCreateBean.getProjectleader().getText(),rdmCreateBean.getProjectleaderid().getText(),rdmCreateBean.getFactory().getText(),rdmCreateBean.getPushuser().getText(),rdmCreateBean.getPushuserid().getText()});
+ String pushDate = rdmCreateBean.getPushdate().getText();
+ if(pushDate != null && !pushDate.isEmpty()) {
+ Date parse = sdf.parse(pushDate);
+ proj.setDateProperty("zt2_pushdate", parse);
+ }
+
+
+ //Ŀ ݿе״̬
+ String updateSql = "UPDATE CHINT_RDM_PROJECT SET status = 'Ѹ' WHERE ordernumber = '"+rdmCreateBean.getOrdernumber().getText()+"'";
+ System.out.println("updateSql==="+updateSql);
+
+ sbInfo.append("ĿѸɣڲţ"+ordernumber+"ĿIDΪ"+id+lineSeparator);
+ sbInfo.append(lineSeparator);
+ try {
+ SqlUtil.update(updateSql);
+ }catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+
+ }
+ }
+ }
+
+ if(count == 0) {
+ Alert alert = new Alert(AlertType.INFORMATION);
+ alert.setTitle("ʾ");
+ alert.setHeaderText("빴ѡݣ");
+ //alert.setContentText("");
+ alert.showAndWait();
+ }else {
+ Alert alert = new Alert(AlertType.INFORMATION);
+ alert.setTitle("ʾ");
+ alert.setHeaderText(sbInfo.toString());
+ //alert.setContentText("");
+ alert.showAndWait();
+ }
+
+ }
+//رĿ
+ @FXML
+ void gbxmButton(ActionEvent event) throws SQLException {
+ SqlUtil.SRMGetTCDataConnection(prefs);
+ ObservableList items = table.getItems();
+ int count = 0;
+ for (int i = 0; i < items.size(); i++) {
+ RdmCreateBean rdmCreateBean = items.get(i);
+ boolean selected = rdmCreateBean.getCheckBox().isSelected();
+ if(selected) {
+ String updateSql = "UPDATE CHINT_RDM_PROJECT SET status = 'ѹر' WHERE ordernumber = '"+rdmCreateBean.getOrdernumber().getText()+"'";
+ System.out.println("updateSql==="+updateSql);
+
+ try {
+ SqlUtil.update(updateSql);
+ count++;
+ }catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+ }
+ }
+
+ if(count == 0) {
+ Alert alert = new Alert(AlertType.INFORMATION);
+ alert.setTitle("ʾ");
+ alert.setHeaderText("빴ѡݣ");
+ //alert.setContentText("");
+ alert.showAndWait();
+ }else {
+ Alert alert = new Alert(AlertType.INFORMATION);
+ alert.setTitle("ʾ");
+ alert.setHeaderText("Ŀرɣ");
+ //alert.setContentText("");
+ alert.showAndWait();
+ }
+ }
+
+ //ѯ
+ @FXML
+ void cxButton(ActionEvent event) throws ParseException {
+ SqlUtil.SRMGetTCDataConnection(prefs);
+ f7Str = f7.getEditor().getText();
+ f8Str = f8.getEditor().getText();
+ String selectedFactory = f5.getSelectionModel().getSelectedItem();
+ String selectedStatus = f9.getSelectionModel().getSelectedItem();
+
+ ArrayList fieldList = new ArrayList();
+ System.out.println("======================");
+ table.getItems().clear();
+ List quotations = new ArrayList();
+ String factory = "";
+ // ƴӲѯ
+ String sql = "select ordernumber,projectno,rdmprojectno,projectname,projectleader,factory,pushuser,pushdate,status,createdate,projectleaderid,pushuserid from CHINT_RDM_PROJECT where 1=1 ";
+
+ if(f0.getText()!=null && !"".equals(f0.getText().trim())) {
+ sql += "and ordernumber = \'" + f0.getText() +"\'";
+ }
+ if(f1.getText()!=null && !"".equals(f1.getText().trim())) {
+ sql += "and projectno = \'" + f1.getText() +"\'";
+ }
+ if(f2.getText()!=null && !"".equals(f2.getText().trim())) {
+ sql += "and rdmprojectno = \'" + f2.getText() +"\'";
+ }
+ if(f3.getText()!=null && !"".equals(f3.getText().trim())) {
+ sql += "and projectname = \'" + f3.getText() +"\'";
+ }
+ if(f4.getText()!=null && !"".equals(f4.getText().trim())) {
+ sql += "and projectleader = \'" + f4.getText() +"\'";
+ }
+
+ if(selectedFactory != null && !selectedFactory.isEmpty()) {
+ sql += "and factory like \'%" + selectedFactory +"%\'";
+ }
+
+
+ if(f6.getText()!=null && !"".equals(f6.getText().trim())) {
+ sql += "and pushuser = \'" + f6.getText() +"\'";
+ }
+ if(f7Str !=null && !"".equals(f7Str)) {
+
+ Date date = sdf.parse(f7Str);
+ java.sql.Date sqlDate = new java.sql.Date(date.getTime());
+ fieldList.add(sqlDate);
+ //sql += "and pushdate <= \'" + sqlDate +"\'";
+ sql += "and pushdate <= ?";
+ }
+ if(f8Str !=null && !"".equals(f8Str)) {
+ Date date = sdf.parse(f8Str);
+ java.sql.Date sqlDate = new java.sql.Date(date.getTime());
+ fieldList.add(sqlDate);
+ //sql += "and pushdate >= \'" + sqlDate +"\'";
+ sql += "and pushdate >= ?";
+ }
+ if(selectedStatus != null && !selectedStatus.isEmpty()) {
+ sql += "and status = \'" + selectedStatus +"\'";
+ }
+
+
+
+ System.out.println("sql:"+sql);
+
+
+ try {
+
+ ResultSet res = SqlUtil.read(sql,fieldList.toArray(new java.sql.Date[0]));
+ //ѯݽ
+ while (res.next()) {
+ RdmCreateBean rdmCreateBean = new RdmCreateBean(
+ res.getString("ordernumber") != null ? res.getString("ordernumber") : "",
+ res.getString("projectno") != null ? res.getString("projectno") : "",
+ res.getString("rdmprojectno") != null ? res.getString("rdmprojectno") : "",
+ res.getString("projectname") != null ? res.getString("projectname") : "",
+ res.getString("projectleader") != null ? res.getString("projectleader") : "",
+ res.getString("factory") != null ? res.getString("factory") : "",
+ res.getString("pushuser") != null ? res.getString("pushuser") : "",
+ res.getDate("pushdate"),
+ res.getString("status") != null ? res.getString("status") : "",
+ res.getDate("createdate"),
+ res.getString("projectleaderid") != null ? res.getString("projectleaderid") : "",
+ res.getString("pushuserid") != null ? res.getString("pushuserid") : "");
+
+ System.out.println("rdmCreateBean==="+rdmCreateBean);
+ quotations.add(rdmCreateBean);
+ }
+ }catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+
+ if(quotations.size() > 0) {
+ //֯
+ ObservableList data = FXCollections.observableArrayList(quotations);
+
+ table.getItems().clear();
+ table.setItems(data);
+ }else {
+ //δ鵽
+ Alert alert = new Alert(AlertType.INFORMATION);
+ alert.setTitle("ʾ");
+ alert.setHeaderText("δ鵽ݣ");
+ //alert.setContentText("");
+ alert.showAndWait();
+ }
+ }
+
+
+}
diff --git a/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateFrame.java b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateFrame.java
new file mode 100644
index 0000000..9a58e29
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateFrame.java
@@ -0,0 +1,25 @@
+package com.chint.plm.rdmCreate;
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+
+
+
+import javafx.embed.swing.JFXPanel;
+
+public class RdmCreateFrame extends KFrame {
+
+ public RdmCreateFrame() {
+ super();
+ }
+
+ @Override
+ protected void initUI() throws Exception {
+ this.setTitle("RDMзĿ");
+ this.setLayout(new BorderLayout());
+ this.setPreferredSize(new Dimension(1300, 900));
+ JFXPanel panel = new JFXPanel();
+ panel.setScene(new RdmCreatePanel(this).getScene());
+ this.add(BorderLayout.CENTER, panel);
+ }
+
+}
diff --git a/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateHandler.java b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateHandler.java
new file mode 100644
index 0000000..090fdeb
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreateHandler.java
@@ -0,0 +1,79 @@
+package com.chint.plm.rdmCreate;
+
+import java.awt.Dimension;
+import java.awt.Toolkit;
+import java.util.HashMap;
+
+import org.apache.log4j.chainsaw.Main;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+
+
+import com.connor.chint.sap2.util.SAPUtil;
+import com.teamcenter.rac.aif.AbstractAIFApplication;
+import com.teamcenter.rac.aifrcp.AIFUtility;
+import com.teamcenter.rac.kernel.TCException;
+import com.teamcenter.rac.kernel.TCSession;
+import com.teamcenter.rac.util.MessageBox;
+
+/**
+ * ɱ
+ * @author admin
+ * 2023/11/16
+ */
+public class RdmCreateHandler extends AbstractHandler{
+
+ @Override
+ public Object execute(ExecutionEvent arg0) {
+ // TODO Auto-generated method stub
+ AbstractAIFApplication app = AIFUtility.getCurrentApplication();
+ TCSession session = (TCSession)app.getSession();
+ try {
+ new Thread() {
+ @Override
+ public void run() {
+// NewJFrame newJFrame = new NewJFrame(session);
+// int width2 = newJFrame.getWidth();
+// int height2 = newJFrame.getHeight();
+// Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // ȡĻߴ
+// int screenWidth = screenSize.width; // ȡĻ
+// int screenHeight = screenSize.height; // ȡĻ߶
+// int x = (screenWidth - width2) / 2; // FrameϽx
+// int y = (screenHeight - height2) / 2; // FrameϽy
+// newJFrame.setTitle("װѯ");
+// // this.getContentPane().setBackground(Color.red);
+// newJFrame.getContentPane().setBackground(new java.awt.Color(255, 255, 255));
+// newJFrame.setSize(1240, height2); // FrameĴС
+// newJFrame.setLocation(x, y); // Frameλ
+// newJFrame.setResizable(false);
+// newJFrame.setDefaultCloseOperation(2); // ôڹرʱĬϲ
+// newJFrame.setVisible(true);
+
+ String groupID = "";
+ try {
+ groupID = SAPUtil.getGroupID(session);
+ } catch (TCException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ System.out.println("groupID==="+groupID);
+ //Project Administration
+ if(!groupID.equals("Project Administration")) {
+ MessageBox.post("лĿִд˹ܡ", "ʾ", MessageBox.INFORMATION);
+ return;
+ }
+
+ new RdmCreateFrame();
+ }
+ }.start();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static void main(String[] args) {
+ new RdmCreateFrame();
+ }
+
+}
diff --git a/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreatePanel.java b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreatePanel.java
new file mode 100644
index 0000000..88323c2
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/chint/plm/rdmCreate/RdmCreatePanel.java
@@ -0,0 +1,13 @@
+package com.chint.plm.rdmCreate;
+
+import java.awt.Window;
+
+
+
+public class RdmCreatePanel extends KFXPanel {
+
+ public RdmCreatePanel(Window dialog) {
+ super(dialog, "RdmCreate.fxml");
+ // TODO Auto-generated constructor stub
+ }
+}
\ No newline at end of file
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/BomBean.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/BomBean.java
new file mode 100644
index 0000000..30946a9
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/BomBean.java
@@ -0,0 +1,40 @@
+package com.connor.chint.sap2.createKjBom;
+
+import java.util.Objects;
+
+import com.teamcenter.rac.kernel.TCComponentBOMLine;
+
+public class BomBean {
+
+ String revName;
+ TCComponentBOMLine bomLine;
+ public BomBean(String revName, TCComponentBOMLine bomLine) {
+ super();
+ this.revName = revName;
+ this.bomLine = bomLine;
+ }
+ @Override
+ public int hashCode() {
+ return Objects.hash(revName);
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ BomBean other = (BomBean) obj;
+ return other.revName.contains(revName);
+ }
+ public BomBean(String revName) {
+ super();
+ this.revName = revName;
+ }
+ @Override
+ public String toString() {
+ return "BomBean [revName=" + revName + ", bomLine=" + bomLine + "]\n";
+ }
+
+}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/CBean.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/CBean.java
new file mode 100644
index 0000000..6c0996e
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/CBean.java
@@ -0,0 +1,34 @@
+package com.connor.chint.sap2.createKjBom;
+
+public class CBean {
+
+
+ String cId;
+ String folderName;
+ String piName;
+ public String getcId() {
+ return cId;
+ }
+ public void setcId(String cId) {
+ this.cId = cId;
+ }
+ public String getFolderName() {
+ return folderName;
+ }
+ public void setFolderName(String folderName) {
+ this.folderName = folderName;
+ }
+ public String getPiName() {
+ return piName;
+ }
+ public void setPiName(String piName) {
+ this.piName = piName;
+ }
+ public CBean(String cId, String folderName, String piName) {
+ super();
+ this.cId = cId;
+ this.folderName = folderName;
+ this.piName = piName;
+ }
+
+}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/ClassProperty.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/ClassProperty.java
new file mode 100644
index 0000000..f058639
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/ClassProperty.java
@@ -0,0 +1,42 @@
+package com.connor.chint.sap2.createKjBom;
+
+/**
+ * @copyRight 㽭տƼ˾
+ * @author E-mail:hub@connor.net.cn
+ * @date ʱ䣺2017-7-3 11:47:03
+ * @version v1.0
+ * @parameter
+ * @since
+ * @return
+ */
+
+public class ClassProperty {
+ private int propertyID;
+ private String value;
+
+ public ClassProperty() {
+
+ }
+
+ public ClassProperty(int propertyID, String value) {
+ this.propertyID = propertyID;
+ this.value = value;
+ }
+
+ public int getPropertyID() {
+ return propertyID;
+ }
+
+ public void setPropertyID(int propertyID) {
+ this.propertyID = propertyID;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/CreateKjBomCommand.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/CreateKjBomCommand.java
new file mode 100644
index 0000000..f7bce90
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/CreateKjBomCommand.java
@@ -0,0 +1,58 @@
+package com.connor.chint.sap2.createKjBom;
+
+import java.util.ArrayList;
+import java.util.List;
+import com.connor.chint.sap2.KCommand;
+import com.connor.chint.sap2.util.ChintPreferenceUtil;
+import com.connor.chint.sap2.util.SAPUtil;
+import com.teamcenter.rac.aif.AbstractAIFApplication;
+import com.teamcenter.rac.kernel.TCSession;
+import com.teamcenter.rac.util.MessageBox;
+
+public class CreateKjBomCommand extends KCommand {
+
+// private boolean top = true;
+// private TCComponentBOMLine line;
+ public CreateKjBomCommand(AbstractAIFApplication app, String commandId, String actionInfo) {
+ super(app, commandId, actionInfo);
+
+
+// InterfaceAIFComponent targetComponent = app.getTargetComponent();
+
+ try {
+
+ TCSession session = (TCSession)app.getSession();
+ String groupID = SAPUtil.getGroupID(session);//
+ String[] prefs = ChintPreferenceUtil.getPreferences("CHINT_kjbomTemp", session);
+ List kjList = new ArrayList();
+ for(String pref : prefs) {
+// 1ZDB300000P-xxx|1ZDB300000P=2-ͼ;1ZDB400000T=3-ͼֽ&H
+ if(!pref.startsWith(groupID))
+ continue;
+ String[] split = pref.substring(groupID.length() + 1).split("\\|");
+ String kjBomId = split[0];
+ KjBean bean = new KjBean(kjBomId);
+ String[] split2 = split[1].split(";");
+ for(String s : split2) {
+ String[] split3 = s.split("=");
+ if(split3[1].contains("&")) {
+ String[] split4 = split3[1].split("&");
+ CBean cb = new CBean(split3[0],split4[0],split4[1]);
+ bean.cbeans.add(cb);
+ }else {
+ CBean cb = new CBean(split3[0],split3[1],"");
+ bean.cbeans.add(cb);
+ }
+ }
+ kjList.add(bean);
+ }
+ if(kjList.size() == 0) {
+ MessageBox.post("ѡδҵã½ȷ", "", MessageBox.WARNING);
+ return;
+ }
+ this.setRunnable(new KjBomDialog(app, "", kjList));
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/KjBean.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/KjBean.java
new file mode 100644
index 0000000..01f16c1
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/KjBean.java
@@ -0,0 +1,28 @@
+package com.connor.chint.sap2.createKjBom;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class KjBean {
+
+ public String kjBs;
+ public String kjbomId;
+ public List cbeans = new ArrayList();
+ public String getKjbomId() {
+ return kjbomId;
+ }
+ public void setKjbomId(String kjbomId) {
+ this.kjbomId = kjbomId;
+ }
+ public KjBean(String kjbomId) {
+ super();
+ this.kjbomId = kjbomId;
+ String[] split = kjbomId.split("-");
+ kjBs = split[1];
+ }
+ @Override
+ public String toString() {
+ return kjbomId;
+ }
+
+}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/KjBomDialog.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/KjBomDialog.java
new file mode 100644
index 0000000..f871200
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/KjBomDialog.java
@@ -0,0 +1,172 @@
+package com.connor.chint.sap2.createKjBom;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.List;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.border.EtchedBorder;
+import javax.swing.border.TitledBorder;
+
+import com.connor.chint.sap2.util.KUtil;
+import com.connor.chint.sap2.util.MyProgressBarCompent;
+import com.teamcenter.rac.aif.AbstractAIFApplication;
+import com.teamcenter.rac.aif.AbstractAIFDialog;
+import com.teamcenter.rac.util.MessageBox;
+
+public class KjBomDialog extends AbstractAIFDialog {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List kjList;
+// private AbstractAIFApplication app;
+ private KjController controller;
+ public KjBomDialog(AbstractAIFApplication app, String actionInfo,List beanList) {
+ // Auto-generated constructor stub
+ super(false);
+// KUtil.setByPass(true);
+// this.app = app;
+ this.kjList = beanList;
+ this.controller = new KjController(app);
+ }
+
+ @Override
+ public void run() {
+ // Auto-generated method stub
+ try {
+ if (!controller.checkProject()) {
+ MessageBox.post(this, "ѡĿļж", "", MessageBox.INFORMATION);
+ return;
+ }
+ initUI();
+ showDialog();
+ /*
+ * if(!controller.isAllHave) { MessageBox.post(this,
+ * "Ŀ"+controller.name+"δͬWBS,ִֶ", "",MessageBox.INFORMATION); }else {
+ * b_syn.setVisible(false); }
+ */
+ } catch (Exception e) {
+
+ MessageBox.post(this, "뷽ʱ" + e.getMessage(), "", MessageBox.ERROR);
+ e.printStackTrace();
+ return;
+ }
+
+ }
+ private JButton okButton;
+ private JButton celButton;
+ private JComboBox kjCombox;
+ public void initUI() {
+ this.setTitle("BOM");
+ this.setPreferredSize(new Dimension(400,150));
+ JPanel p1 = new JPanel(new BorderLayout());
+ p1.setBorder(new TitledBorder(new EtchedBorder(), "BOMģ"));
+
+ kjCombox = new JComboBox();
+ for(KjBean bean:kjList) {
+ kjCombox.addItem(bean);
+ }
+ p1.add(kjCombox);
+
+ JPanel rootPanel = new JPanel(new FlowLayout());
+ this.okButton = new JButton("ȷ");
+ this.celButton = new JButton("ȡ");
+
+ rootPanel.add(okButton);
+ rootPanel.add(celButton);
+
+ this.setLayout(new BorderLayout());
+ this.add(p1, BorderLayout.NORTH);
+ this.add(rootPanel, BorderLayout.CENTER);
+ // dialog.add(tablePanel, BorderLayout.CENTER);
+ this.add(rootPanel, BorderLayout.SOUTH);
+ this.pack();
+ this.setLocationRelativeTo(null);
+ this.setVisible(true);
+
+ addListeners();
+ }
+
+ private void addListeners() {
+ // Auto-generated method stub
+ celButton.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // Auto-generated method stub
+ dispose();
+ }
+ });
+ okButton.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // Auto-generated method stub
+ //ʼBOM
+ //1.ԭпBOMȡĿ ĿṹļСidǷΨһ
+ //2.Ŀҵͼ BOM
+ //3.ϢתȨ
+ new Thread() {
+ @Override
+ public void run() {
+
+ MyProgressBarCompent comp = null;
+ KUtil.setByPass(true);
+ try {
+
+ comp = new MyProgressBarCompent("", "ڴBOM......");
+ int selectedIndex = kjCombox.getSelectedIndex();
+ KjBean kjBean = kjList.get(selectedIndex);
+ StringBuilder build = new StringBuilder("");
+ String tempId = kjBean.getKjbomId();
+ boolean checkFolder = controller.checkFolder(tempId, kjBean, build);
+ if(!checkFolder) {
+ comp.setVisible(false);
+ dispose();
+ MessageBox.post(build.toString(), "",2);
+
+ return;
+ }
+ if(controller.byqCCPFromProject.size()>1) {
+ Object[] options = {"",""};
+ int response = JOptionPane.showOptionDialog(null, "ĿƷڶ̨ѹȷǷΪͬһͼ", "ѡ",JOptionPane.YES_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
+ if(response == -1 || response==1)
+ {
+ return;
+ }
+ }
+ // List cbeans = kjBean.cbeans;
+ boolean createKjBom = controller.createKjBom(kjBean,comp);
+ comp.setVisible(false);
+ if(!createKjBom) {
+ dispose();
+ return;
+ }else {
+ dispose();
+ MessageBox.post("BOMɡ", "ʾ",2);
+ }
+ } catch (Exception e1) {
+ // Auto-generated catch block
+ e1.printStackTrace();
+ }finally {
+ KUtil.setByPass(false);
+ }
+ if(comp!=null) {
+ comp.setVisible(false);
+ }
+ dispose();
+ }
+ }.start();
+ }
+ });
+ }
+}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/KjController.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/KjController.java
new file mode 100644
index 0000000..de7d64f
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/createKjBom/KjController.java
@@ -0,0 +1,864 @@
+package com.connor.chint.sap2.createKjBom;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.JOptionPane;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.connor.chint.sap2.util.BomToSapUtil;
+import com.connor.chint.sap2.util.ChintPreferenceUtil;
+import com.connor.chint.sap2.util.KUtil;
+import com.connor.chint.sap2.util.MyProgressBarCompent;
+import com.connor.chint.sap2.util.SAPUtil;
+import com.squareup.okhttp.OkHttpClient;
+import com.squareup.okhttp.Request;
+import com.squareup.okhttp.Response;
+import com.teamcenter.rac.aif.AbstractAIFApplication;
+import com.teamcenter.rac.aif.kernel.AIFComponentContext;
+import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
+import com.teamcenter.rac.kernel.TCAccessControlService;
+import com.teamcenter.rac.kernel.TCComponent;
+import com.teamcenter.rac.kernel.TCComponentBOMLine;
+import com.teamcenter.rac.kernel.TCComponentBOMWindow;
+import com.teamcenter.rac.kernel.TCComponentBOMWindowType;
+import com.teamcenter.rac.kernel.TCComponentContextList;
+import com.teamcenter.rac.kernel.TCComponentFolder;
+import com.teamcenter.rac.kernel.TCComponentGroup;
+import com.teamcenter.rac.kernel.TCComponentItem;
+import com.teamcenter.rac.kernel.TCComponentItemRevision;
+import com.teamcenter.rac.kernel.TCComponentItemType;
+import com.teamcenter.rac.kernel.TCComponentRevisionRule;
+import com.teamcenter.rac.kernel.TCComponentUser;
+import com.teamcenter.rac.kernel.TCPreferenceService;
+import com.teamcenter.rac.kernel.TCSession;
+import com.teamcenter.rac.kernel.TCTypeService;
+import com.teamcenter.rac.ui.common.RACUIUtil;
+import com.teamcenter.rac.util.MessageBox;
+import com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsOutput;
+import com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSData;
+import com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureInputInfo;
+import com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureResponse;
+import com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureSaveAsIn;
+
+public class KjController {
+ private AbstractAIFApplication app;
+ private TCSession session;
+ private TCComponent project;
+ private String wbsNo = "";
+ private String projectDh = "";
+ private String projectId = "";
+ //ѾڵĿBOMID
+ Map oldkjIdMap = new HashMap();
+ //ſBOMӦID
+ Map kjIdMap = new HashMap();
+ private List copyLines = new ArrayList();
+ private String kjBs;
+// public
+// private TCComponentItemType ccomponentitemtype;
+
+ Map idName = new HashMap();
+ // ID-ļ
+ private Map fMap = new HashMap<>();
+ private Map nameUser = new HashMap<>();
+ private TCComponentItem tqqgdItem;
+ protected List byqCCPFromProject;
+
+ public KjController(AbstractAIFApplication app) {
+ // Auto-generated constructor stub
+ this.app = app;
+ this.session = (TCSession) app.getSession();
+ }
+ public boolean checkProject() throws Exception {
+ InterfaceAIFComponent target = app.getTargetComponent();
+ if (target == null || !(target instanceof TCComponent)) {
+ return false;
+ }
+ String type = target.getType();
+ if (type.equals("ZT2_ProjectItem")) {
+ project = (TCComponent) target;
+ projectId = project.getStringProperty("item_id");
+ projectDh = project.getProperty("zt2_ProjectCode");
+ wbsNo = project.getProperty("zt2_WBSNo");
+ System.out.println("WBS:" + wbsNo);
+ return true;
+ }
+ return false;
+ }
+
+ protected boolean checkFolder(String kjBomId, KjBean kjBean, StringBuilder errBuff) throws Exception {
+
+ boolean flag = true;
+ try {
+ //ȡѡļơжϵǰĿǷ
+ fMap.clear();
+ Map fodlers = new HashMap<>();
+ TCComponentFolder xmzxFolder = KUtil.getXMZXFolderFromProject(project);
+ byqCCPFromProject = getByqCCPFromProject(project, session);
+ AIFComponentContext[] childFolders = xmzxFolder.getChildren();
+ TCComponentFolder bztFolder = null;
+ TCComponentFolder dcsjFolder = null;
+ for(AIFComponentContext context : childFolders) {
+ InterfaceAIFComponent c = context.getComponent();
+ if(c instanceof TCComponentFolder) {
+ String cName = c.getProperty("object_name");
+ if(cName.equals("2-ͼ")) {
+ bztFolder = (TCComponentFolder)c;
+ }else if(cName.equals("1-")) {
+ dcsjFolder = (TCComponentFolder)c;
+ }
+ fodlers.put(cName, (TCComponentFolder)c);
+ }
+ }
+ if(bztFolder!=null) {
+ AIFComponentContext[] children = bztFolder.getChildren();
+ for(AIFComponentContext cont : children) {
+ InterfaceAIFComponent component = cont.getComponent();
+ String type = component.getType();
+ if(type.equals("ZT2_Requisition")) {
+ tqqgdItem = (TCComponentItem)component;
+ }
+ }
+ }
+ TCComponentItem dcsjItem = null;;
+ if(dcsjFolder != null) {
+ AIFComponentContext[] children = dcsjFolder.getChildren();
+ for(AIFComponentContext cont : children) {
+ InterfaceAIFComponent component = cont.getComponent();
+ String type = component.getType();
+ if(type.equals("ZT2_MainMat")) {
+ dcsjItem = (TCComponentItem)component;
+ }
+ }
+ }
+ if(dcsjItem == null) {
+ errBuff.append("ǰĿδIJɹ,BOM.\n");
+ flag = false;
+ }else {
+ TCComponentItemRevision latestItemRevision = dcsjItem.getLatestItemRevision();
+
+ if(!KUtil.isTCM(latestItemRevision)){
+ errBuff.append("ǰĿIJɹ汾δ,BOM.\n");flag = false;
+ }
+ if(!KUtil.isTCM(KUtil.getRevBOMView(latestItemRevision))) {
+ errBuff.append("ǰĿIJɹBOMͼ汾δ,BOM.\n");flag = false;
+ }
+ }
+ if(tqqgdItem == null) {
+ errBuff.append("ǰĿδǰ빺,BOM.\n");flag = false;
+ }else {
+ TCComponentItemRevision latestItemRevision = tqqgdItem.getLatestItemRevision();
+
+ if(!KUtil.isTCM(latestItemRevision)){
+ errBuff.append("ǰĿǰ빺汾δ,BOM.\n");flag = false;
+ }
+ if(!KUtil.isTCM(KUtil.getRevBOMView(latestItemRevision))) {
+ errBuff.append("ǰĿǰ빺BOMͼ汾δ,BOM.\n");flag = false;
+ }
+ }
+ OkHttpClient client = new OkHttpClient();
+ String preference = ChintPreferenceUtil.getPreference("CHINT_PIUrl", session);
+ Request request = new Request.Builder()
+ .url(preference + "/api/open/task/getTaskInfo/" + projectId)
+ .build();
+ Response response = client.newCall(request).execute();
+ String string = response.body().string();
+ System.out.println(string);
+ JSONObject parseObject = JSON.parseObject(string);
+ JSONArray datas = parseObject.getJSONArray("data");
+ idName.clear();
+ if(datas!=null) {
+ for(int t=0;t beanList = kjBean.cbeans;
+// ZT2_Requisition
+ for(CBean bean : beanList) {
+ String piName = bean.piName;
+ String folderName = bean.folderName;
+ if(idName.containsKey(piName)) {
+ String userId = idName.get(piName);
+ TCComponent userName = getUserName(userId,session);
+ if(userName!=null) {
+ nameUser.put(bean.cId,(TCComponentUser) userName);
+ }
+ }
+ if(!fodlers.containsKey(folderName)) {
+ errBuff.append("ĿִûҵΪ:"+folderName+"ļ");
+ return false;
+ }else {
+ fMap.put(bean.cId, fodlers.get(folderName));
+ }
+ }
+ System.out.println(nameUser.toString());
+ } catch (Exception e) {
+ // Auto-generated catch block
+ e.printStackTrace();
+ }
+ return flag;
+ }
+
+ private static TCComponent getUserName(String userID, TCSession session) throws Exception {
+ Map fields = new HashMap<>();
+ fields.put("û ID", userID);
+ TCComponentContextList quertList = KUtil.query(session, "__WEB_find_user", fields);
+ if (quertList.getListCount() > 0) {
+ // System.out.println("user:"+quertList.get(0).getComponent());
+ return (TCComponent)quertList.get(0).getComponent();
+ }
+ return null;
+ }
+
+ private String objectToJson(List props) {
+ String str = null;
+ try {
+ net.sf.json.JSONArray json = net.sf.json.JSONArray.fromObject(props);// javaתΪjson
+ str = json.toString();// jsonתΪַ
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ System.out.println("JSON =>" + str);
+ return str;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected boolean createKjBom(KjBean bean, MyProgressBarCompent comp) throws Exception {
+ StringBuilder builder = new StringBuilder("");
+ TCComponentItemType ccomponentitemtype = (TCComponentItemType)session.getTypeComponent("ZT2_Design3D");
+ TCComponentItem newItem = ccomponentitemtype.find(bean.getKjbomId());
+ TCComponentItemRevision kjBomRev = newItem.getLatestItemRevision();
+ TCTypeService service = session.getTypeService();
+ TCComponentBOMWindowType winType = (TCComponentBOMWindowType) service.getTypeComponent("BOMWindow");
+ TCComponentBOMWindow window = winType.create(null);
+ TCComponentBOMLine kjBomLine = window.setWindowTopLine(newItem, kjBomRev, null, null);
+ kjBs = bean.kjBs;
+ kjIdMap.clear();
+ oldkjIdMap.clear();
+ Map bomLineTreeNodeSOA = BomToSapUtil.getBomLineTreeNodeSOA(kjBomLine);
+ builder.setLength(0);
+// ȡBOMṹ жIDǷ
+ String item_id = kjBomRev.getProperty("item_id");
+ String replaceAll = item_id.replaceAll(kjBs, projectDh);
+ kjIdMap.put(kjBomRev, replaceAll);
+ Map findMap = new HashMap();
+ //ȡBOMID
+ List useLines = new ArrayList();
+ createId(kjBomLine, bomLineTreeNodeSOA, builder, ccomponentitemtype, findMap, useLines, 1);
+ System.out.println("kjIdMap==>" + kjIdMap.toString());
+ System.out.println("builder==>" + builder.toString());
+
+ if(builder.length() > 0) {
+// MessageBox.post(builder.toString(), "ʾ",2);
+ String[] msgs = builder.toString().split("");
+ builder.setLength(0);
+ for(int i = 0; i < msgs.length; i++) {
+ builder.append(msgs[i]).append("");
+ if(i % 4 == 3) {
+ builder.append("\n");
+ }
+ }
+ Object[] options = { "", "" };
+ comp.setVisible(false);
+ builder.append("ǷҪ.");
+ int response = JOptionPane.showOptionDialog(null, builder.toString(), "ѡ", JOptionPane.YES_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
+ if(response == -1 || response == 1) {
+ window.close();
+ return false;
+ }
+ } //else
+ {
+ comp = new MyProgressBarCompent("", "ڴBOM......");
+ //ʼ¡BOM
+ cloneOrUpdate(session, kjBomLine, copyLines, useLines);
+ //ӵļ
+ System.out.println("oldkjIdMap==>" + oldkjIdMap.toString());
+ for(TCComponentItemRevision rev : oldkjIdMap.keySet()) {
+ TCComponentItem find = oldkjIdMap.get(rev);
+ String id = find.getProperty("item_id");
+ String[] split = id.split("-");
+ System.out.println("id1==>" + id);
+ if(fMap.containsKey(split[0])) {
+ TCComponentFolder tcComponentFolder = fMap.get(split[0]);
+ try {
+ tcComponentFolder.add("contents", find);
+ }catch(Exception e) {
+ if(!e.getMessage().contains("Ŀļ"))
+ e.printStackTrace();
+ }
+ }
+ }
+ System.out.println("nameUser==>" + nameUser.toString());
+ System.out.println("fMap==>" + fMap.toString());
+ for(TCComponentItemRevision rev : kjIdMap.keySet()) {
+ String id = kjIdMap.get(rev);
+ TCComponentItem[] finds = ccomponentitemtype.findItems(id);
+ if(finds == null || finds.length == 0) {
+ System.out.println(id + "δҵ");
+ continue;
+ }
+ TCComponentItem find = finds[0];
+ String[] split = id.split("-");
+ System.out.println("id2==>" + split[0]);
+ if(fMap.containsKey(split[0])) {
+ TCComponentFolder tcComponentFolder = fMap.get(split[0]);
+ try {
+ tcComponentFolder.add("contents", find);
+ }catch(Exception e) {
+ if(!e.getMessage().contains("Ŀļ"))
+ e.printStackTrace();
+ }
+ }
+ if(nameUser.containsKey(split[0])) {
+ TCComponentUser tcComponentUser = nameUser.get(split[0]);
+ try {
+ changeOwners(find,tcComponentUser);
+ } catch (Exception e) {
+ // Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+ TCComponentItem find = ccomponentitemtype.findItems(replaceAll)[0];
+ System.out.println("find==>" + find);
+ if(findMap.size()>0) {
+// window.lock();
+ TCComponentBOMLine newTopline = window.setWindowTopLine(find, find.getLatestItemRevision(),null, null);
+ Map bomLineTreeNodeSOA2 = BomToSapUtil.getBomLineTreeNodeSOA(newTopline);
+ updateKjBom( findMap , bomLineTreeNodeSOA2,newTopline.getUid());
+ newTopline.save();
+ window.save();
+ window.refresh();
+// window.unlock();
+// window.close();
+ }
+ String groupId = SAPUtil.getGroupID(session);
+ TCComponentBOMLine newTopline = window.setWindowTopLine(find, find.getLatestItemRevision(),null, null);
+ //ѾеĿBOMBOMȻ滻ٽ
+ System.out.println("byqCCPFromProject==>" + byqCCPFromProject.toString());
+ if(byqCCPFromProject.size()>0) {
+ try {
+ if(groupId.equals("M005")) {
+ for(TCComponentItemRevision ccp : byqCCPFromProject) {
+ AIFComponentContext[] factorys = KUtil.getPseudoFolder(ccp, "ZT2_FactoryNumber").getChildren();
+ if(factorys.length > 0) {
+ for(AIFComponentContext f : factorys) {
+ find.getLatestItemRevision().add("ZT2_FactoryNumber", (TCComponent) f.getComponent());
+ }
+ }else {
+ find.getLatestItemRevision().add("representation_for", ccp);
+ }
+ }
+ }else
+ find.getLatestItemRevision().add("representation_for", byqCCPFromProject);
+ }catch(Exception e) {
+ if(!e.getMessage().contains("Ŀļ"))
+ e.printStackTrace();
+ }
+ }
+ List propList = new ArrayList();
+ //TODO ȡCHINT_kjbomTemp_FLѡ֯ͼֽĸҵӦķ ICM230101
+ String prefId = groupId + ":" + bean.kjbomId, classID = "";
+ String[] prefs = ChintPreferenceUtil.getPreferences("CHINT_kjbomTemp_FL", session);
+ for(String pref : prefs) {
+ if(!pref.startsWith(prefId))
+ continue;
+ classID = pref.substring(pref.indexOf("|") + 1);
+ }
+ if(classID.isEmpty()) {
+ MessageBox.post(prefId + "δҵӦ", "ʾ", MessageBox.WARNING);
+ }else
+ sendToClass(find.getUid(), classID, objectToJson(propList));
+ List listBoms = listBoms(newTopline);
+ //ƶӦBOM
+ List bomBeans = new ArrayList<>();
+ for(TCComponentBOMLine listBom : listBoms) {
+ String name = listBom.getItemRevision().getProperty("object_name");
+ bomBeans.add(new BomBean(name, listBom));
+ }
+ System.out.println("bomBeans==>" + bomBeans.toString());
+// Map> remarkMap = new HashMap>();
+ //BOMȡǰ빺BOM
+ if(tqqgdItem != null) {
+ TCComponentBOMWindow window2 = winType.create(null);
+ TCComponentBOMLine qgdBomline = window2.setWindowTopLine(tqqgdItem, tqqgdItem.getLatestItemRevision(), null, null);
+ AIFComponentContext[] children = qgdBomline.getChildren();
+ //ǰ빺 ݱעBOMӦλ
+ // lidy20240710BOMйеĴǰ빺BOMץȡɷִɵĿBOM
+ //ҪץȡϸڸƺעϢBOMԣԴbl_occ_zt2_wlsourceд롰ǰ빺
+ for(int i = 0; i < children.length; i++) {
+ TCComponentBOMLine wlLine = (TCComponentBOMLine) children[i].getComponent();
+ TCComponentItem item = wlLine.getItem();
+ if(item.getType().equals("ZT2_MainMat")) {
+ AIFComponentContext[] children2 = wlLine.getChildren();
+ for(AIFComponentContext c2 : children2) {
+ TCComponentBOMLine wlLine2 = (TCComponentBOMLine) c2.getComponent();
+ String object_name = wlLine2.getProperty("ZT2_Remark");
+ String objName = wlLine2.getItem().getProperty("object_name");
+ System.out.println(object_name);
+ System.out.println(objName + "gg");
+ if(!object_name.equals("") && bomBeans.contains(new BomBean(object_name))) {
+ BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean(object_name)));
+ if(checkSource(bomBean.bomLine, wlLine2))
+ continue;
+ bomBean.bomLine.add(wlLine2, false).setProperty("bl_occ_zt2_wlsource", "ǰ빺");
+ bomBean.bomLine.save();
+ }else if(object_name.equals("") && objName.contains("")) {
+ if(bomBeans.contains(new BomBean("Ƭ"))) {
+ BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean("Ƭ")));
+ if(checkSource(bomBean.bomLine, wlLine2))
+ continue;
+ bomBean.bomLine.add(wlLine2, false).setProperty("bl_occ_zt2_wlsource", "ǰ빺");
+ bomBean.bomLine.save();
+ }
+ }else {
+ if(checkSource(newTopline, wlLine2))
+ continue;
+ TCComponentBOMLine add = newTopline.add(wlLine2, false);
+ add.setProperty("bl_occ_zt2_wlsource", "ǰ빺");
+ System.out.println(add);
+ newTopline.save();
+ }
+ }
+ }else {
+ String object_name = wlLine.getProperty("ZT2_Remark");
+ System.out.println(object_name);
+ String objName = wlLine.getItem().getProperty("object_name");
+ if(!object_name.equals("") && bomBeans.contains(new BomBean(object_name))) {
+ BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean(object_name)));
+ if(checkSource(bomBean.bomLine, wlLine))
+ continue;
+ bomBean.bomLine.add(wlLine, false).setProperty("bl_occ_zt2_wlsource", "ǰ빺");
+ bomBean.bomLine.save();
+ }else if(object_name.equals("") && objName.equals("")) {
+ if(bomBeans.contains(new BomBean("Ƭ"))) {
+ BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean("Ƭ")));
+ if(checkSource(bomBean.bomLine, wlLine))
+ continue;
+ bomBean.bomLine.add(wlLine, false).setProperty("bl_occ_zt2_wlsource", "ǰ빺");
+ bomBean.bomLine.save();
+ }
+ }else {
+ if(checkSource(newTopline, wlLine))
+ continue;
+ TCComponentBOMLine add = newTopline.add(wlLine, false);
+ add.setProperty("bl_occ_zt2_wlsource", "ǰ빺");
+ System.out.println(add);
+ newTopline.save();
+ }
+ }
+ }
+ window2.close();
+ newTopline.window().save();
+ }
+ changePrivilege(session, find);
+ }
+ window.close();
+ comp.setVisible(false);
+ return true;
+ }
+
+ private static void changePrivilege(TCSession session, TCComponent dataset) throws Exception {
+ KUtil.setByPass(true);
+ TCAccessControlService accessControlService = session.getTCAccessControlService();
+ TCComponentUser user = session.getUser();
+ accessControlService.grantPrivilege(dataset, user, new String[]{"WRITE","READ"});
+// KUtil.setByPass(false);
+ }
+
+ @SuppressWarnings("deprecation")
+ private void updateKjBom(Map findMap, Map bomLineTreeNodeSOA, String uid) throws Exception {
+ // Auto-generated method stub
+ ExpandPSData[] expandPSDatas = bomLineTreeNodeSOA.get(uid);
+ for(ExpandPSData expandPSData : expandPSDatas) {
+ TCComponentBOMLine bomLine = expandPSData.bomLine;
+ TCComponentItemRevision itemRevOfBOMLine = expandPSData.itemRevOfBOMLine;
+ String itemId = itemRevOfBOMLine.getProperty("item_id");
+ System.out.println("findMap===>" + findMap.toString());
+ System.out.println("itemId===>" + itemId.toString());
+ if(findMap.containsKey(itemId)) {
+ TCComponentItem tcItem = findMap.get(itemId);
+ System.out.println("tcItem===>" + tcItem.toString());
+ TCComponentItemRevision lastRev = tcItem.getLatestItemRevision();
+ bomLine.replace(tcItem, lastRev, null);
+ bomLine.save();
+// bomLine.unlock();
+ }
+ updateKjBom(findMap, bomLineTreeNodeSOA, bomLine.getUid());//ExpandPSData[] expandPSDatas2 = bomLineTreeNodeSOA.get(bomLine.getUid());
+ }
+ }
+ @SuppressWarnings("deprecation")
+ private static void changeOwners(TCComponentItem item, TCComponentUser user) throws Exception {
+ TCComponent[] revs = item.getRelatedComponents("revision_list");
+ TCComponentItemRevision rev;
+ TCComponentGroup group = (TCComponentGroup) user.getRelatedComponent("default_group");
+ TCComponent bom = null;
+ TCComponent[] datasets;
+ for (int i = 0, len = revs.length; i < len; i++) {
+ rev = (TCComponentItemRevision) revs[i];
+ bom = rev.getRelatedComponent("structure_revisions");
+ datasets = rev.getRelatedComponents("IMAN_specification");
+ for (int m = 0, len2 = datasets.length; m < len2; m++) {
+ datasets[m].lock();
+ datasets[m].changeOwner(user, group);
+ datasets[m].save();
+ datasets[m].unlock();
+ }
+ if (bom != null) {
+ bom.lock();
+ bom.changeOwner(user, group);
+ bom.save();
+ bom.unlock();
+ }
+ rev.lock();
+ rev.changeOwner(user, group);
+ rev.save();
+ rev.unlock();
+ }
+ bom = item.getRelatedComponent("bom_view_tags");
+ if (bom != null) {
+ bom.lock();
+ bom.changeOwner(user, group);
+ bom.save();
+ bom.unlock();
+ }
+
+ item.lock();
+ item.changeOwner(user, group);
+ item.save();
+ item.unlock();
+ }
+
+ private void sendToClass(String wsoPUID, String classID, String json) {
+ // AbstractAIFApplication app;
+ // app=AIFUtility.getCurrentApplication();
+ // TCSession session;
+ // session=(TCSession) app.getSession();
+ try {
+ TCPreferenceService preferenceService = session.getPreferenceService();
+ // String account=preferenceService.getStringValue("Autocode_PriverUser_ID");
+ String url = preferenceService.getStringValue("Autocode_SendClassServer_URL");
+ ServiceClient sc = new ServiceClient();
+ Options opts = new Options();
+ // url = "http://10.201.5.203:19090/ErpWebService.asmx?WSDL";
+ EndpointReference end = new EndpointReference(url);
+ opts.setTo(end);
+ opts.setAction("SendToClass");
+ sc.setOptions(opts);
+
+ OMFactory fac = OMAbstractFactory.getOMFactory();
+ OMNamespace omNs = fac.createOMNamespace("http://tempuri.org/", "");
+ OMElement method = fac.createOMElement("SendToClass", omNs);
+ OMElement value = fac.createOMElement("wsoPuiid", omNs);
+ value.setText(wsoPUID);
+ OMElement value1 = fac.createOMElement("classID", omNs);
+ value1.setText(classID);
+ OMElement value2 = fac.createOMElement("JsonContainer", omNs);
+ // "[{\"value\":\"1\",\"propertyID\":-500003},{\"value\":\"1\",\"propertyID\":-500011}]"
+ value2.setText(json);
+
+ method.addChild(value);
+ method.addChild(value1);
+ method.addChild(value2);
+
+ OMElement res = sc.sendReceive(method);
+ res.getFirstElement().getText();
+ System.out.println(res.getFirstElement().getText());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ private void createId(TCComponentBOMLine pLine, Map bomLineTreeNodeSOA,
+ StringBuilder builder, TCComponentItemType ccomponentitemtype,
+ Map findMap, List useLines, int type) throws Exception {
+
+ ExpandPSData[] expandPSDatas = bomLineTreeNodeSOA.get(pLine.getUid());
+ if(type != 0) {
+ copyLines.add(pLine);
+ }
+ for(ExpandPSData expandPSData : expandPSDatas) {
+ TCComponentBOMLine cLine = expandPSData.bomLine;
+ TCComponentItemRevision cRev = expandPSData.itemRevOfBOMLine;
+ if(cRev.getType().contains("ZT2_Design3D")) {
+ String item_id = cRev.getProperty("item_id");
+ String replaceAll = item_id.replaceAll(kjBs, projectDh);
+ /*if(type == 0) {
+ useLines.add(cLine);
+ oldkjIdMap.put(cRev, cLine.getItem());
+ createId(cLine, bomLineTreeNodeSOA, builder, ccomponentitemtype, findMap, useLines, 0);
+ }else {
+ }*/
+ TCComponentItem[] finds = ccomponentitemtype.findItems(replaceAll);
+ if(finds != null && finds.length > 0) {
+ builder.append("ǰIDѾ:").append(replaceAll).append("");
+ findMap.put(item_id, finds[0]);
+ useLines.add(cLine);
+ oldkjIdMap.put(cRev, finds[0]);
+ createId(cLine, bomLineTreeNodeSOA, builder, ccomponentitemtype, findMap, useLines, 0);
+ }else {
+ kjIdMap.put(cRev, replaceAll);
+ createId(cLine, bomLineTreeNodeSOA, builder, ccomponentitemtype, findMap, useLines, 1);
+ }
+ }else {
+ copyLines.add(cLine);
+ }
+ }
+ }
+
+ //
+ private void cloneOrUpdate(TCSession session, TCComponentBOMLine parentLine,
+ List bomLines, List useLines) {
+ com.teamcenter.services.rac.structuremanagement.StructureService service =
+ com.teamcenter.services.rac.structuremanagement.StructureService.getService(session);
+// idMapAdd.clear();
+ CloneStructureInputInfo[] infos = new CloneStructureInputInfo[1];
+
+ infos[0] = new CloneStructureInputInfo();
+
+// infos[0].bomline = puid;
+ infos[0].cadOptions = new String[] { "PartFamilyMaster" };
+ try {
+ infos[0].defaultFolder = session.getUser().getNewStuffFolder();
+ infos[0].cloneFlags = 2;
+ com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureProjectInfo projectInfo
+ = new com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureProjectInfo();
+ projectInfo.assign = false;
+ projectInfo.validate = false;
+ infos[0].projects = projectInfo;
+ TCComponentRevisionRule revisionRule = parentLine.window().getRevisionRule();
+ infos[0].revRule = revisionRule;
+ TCComponentItemRevision[] revs = new TCComponentItemRevision[] { parentLine.getItemRevision() };
+ infos[0].topItemRevs = revs;
+
+ System.out.println("Save class Partial bomLine -- " + bomLines.size());
+
+ List saveList = new ArrayList();
+ for(TCComponentBOMLine subLine : bomLines) {
+// for(int i = 0; i < bomLines.size(); i++) {
+// TCComponentBOMLine subLine = bomLines.get(i);
+ TCComponentItem item = subLine.getItem();
+ CloneStructureSaveAsIn dataMap = null;
+ if(item.getType().equals("ZT2_Design3D")) {
+// subLine.replace
+ dataMap = getDataMap(subLine, 0, session);
+ }else {
+ dataMap = getDataMap(subLine, 1, session);
+ }
+ saveList.add(dataMap);
+ }
+ for(TCComponentBOMLine subLine : useLines) {
+ CloneStructureSaveAsIn dataMap = getDataMap(subLine, 1, session);
+ saveList.add(dataMap);
+ }
+ com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureDefaultNaming naming =
+ new com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureDefaultNaming();
+ CloneStructureSaveAsIn[] array = saveList.toArray(new CloneStructureSaveAsIn[saveList.size()]);
+ infos[0].dataMap = array;
+ naming.autogen = true;
+ infos[0].defaultName = naming;
+ infos[0].topLines = new TCComponentBOMLine[] { parentLine };
+// TCComponentBOMLine.get
+// puid.getr
+ } catch (Exception e1) {
+ // Auto-generated catch block
+ e1.printStackTrace();
+ }
+ CloneStructureResponse cloneStructure = service.cloneStructure(infos);
+// infos[0].
+// cloneStructureExpandOrUpdate.serviceData;
+ if (cloneStructure.serviceData.sizeOfPartialErrors() > 0) {
+ for (int i = 0; i < cloneStructure.serviceData.sizeOfPartialErrors(); i++) {
+ System.out.println("Save class Partial Error -- " + cloneStructure.serviceData
+ .getPartialError(i).getMessages()[0]);
+ }
+ }
+ try {
+ System.out.println("Save class Partial Error -- " + cloneStructure.serviceData.sizeOfUpdatedObjects());
+ if(cloneStructure.serviceData.sizeOfUpdatedObjects()>0) {
+ TCComponent updatedObject = cloneStructure.serviceData.getUpdatedObject(0);
+ System.out.println(session.componentToString(updatedObject) + " >> " + updatedObject);
+ }
+// for(int i = 0; i < cloneStructure.serviceData.sizeOfCreatedObjects(); i++) {
+// TCComponent plainObject = cloneStructure.serviceData.getCreatedObject(i);
+// System.out.println(session.componentToString(plainObject));
+// }
+// for(int i = 0; i < cloneStructure.serviceData.sizeOfPlainObjects(); i++) {
+// TCComponent plainObject = cloneStructure.serviceData.getPlainObject(i);
+// System.out.println(session.componentToString(plainObject));
+// }
+
+ } catch (Exception e) {
+ // Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ private CloneStructureSaveAsIn getDataMap(TCComponentBOMLine child, int type, TCSession session) throws Exception {
+ TCComponentItemRevision rev = child.getItemRevision();
+ CloneStructureSaveAsIn dataMap = new CloneStructureSaveAsIn();
+ Map newItemRevinfo = new HashMap<>();
+ dataMap.cloneOperationType = type;
+// dataMap.newItemRevinfo =
+ dataMap.origItemRevComp = rev;
+
+ newItemRevinfo.put("sequence_limit", new String[] { "3" });
+ newItemRevinfo.put("fnd0CheckoutOnSaveAs", new String[] { "false" });
+ newItemRevinfo.put("item_revision_id", new String[] { "" });
+ newItemRevinfo.put("sequence_id", new String[] { "1" });
+ newItemRevinfo.put("object_name", new String[] { rev.getStringProperty("object_name") });
+ if(type == 0) {
+ com.teamcenter.services.rac.structuremanagement._2014_10.Structure.DeepCopyData[] copys =
+ new com.teamcenter.services.rac.structuremanagement._2014_10.Structure.DeepCopyData[1];
+ com.teamcenter.services.rac.structuremanagement._2014_10.Structure.DeepCopyData copy =
+ new com.teamcenter.services.rac.structuremanagement._2014_10.Structure.DeepCopyData();
+ copy.attachedObject = rev.getItem();
+ copy.copyAction = "CopyAsObject";
+ copy.copyRelations = true;
+ copy.isRequired = true;
+ copy.isTargetPrimary = true;
+ copy.operationInputTypeName = "";
+ copy.propertyName = "items_tag";
+ copy.propertyType = "Reference";
+ Map operationInputs = new HashMap<>();
+
+ operationInputs.put("fnd0CheckoutOnSaveAs", new String[] { "false" });
+ operationInputs.put("is_configuration_item", new String[] { "false" });
+ String zt2Unit = rev.getItem().getTCProperty("zt2_unit").getStringValue();
+// rev.getItem().get("zt2_unit");
+ operationInputs.put("zt2_unit", new String[] { zt2Unit });
+ String newId = "";
+ try {
+ newId = kjIdMap.get(rev);
+// newId
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ operationInputs.put("item_id", new String[] { newId }); // ȡ
+ copy.operationInputs = operationInputs;
+ copys[0] = copy;
+
+ dataMap.deepCopyDataOverride = copys;
+ }
+ dataMap.newItemRevinfo = newItemRevinfo;
+ return dataMap;
+ }
+ /**
+ * ԴBOMݣBOMҪճBOMУBOMдǰ빺ôϾͲҪƵBOM
+ *
+ * @param parent Ŀ길
+ * @param target Դ
+ * @return BOMtrue
+ * @throws Exception
+ */
+ private boolean checkSource(TCComponentBOMLine parent, TCComponentBOMLine target) throws Exception {
+ String id = target.getProperty("bl_item_item_id");
+ for(AIFComponentContext c : parent.getChildren()) {
+ TCComponentBOMLine child = (TCComponentBOMLine) c.getComponent();
+ if(child.getProperty("bl_item_item_id").equals(id) && child.getProperty("bl_occ_zt2_wlsource").equals("ǰ빺"))
+ return true;
+ }
+ return false;
+ }
+ private List getByqCCPFromProject(TCComponent targetComp, TCSession session) throws Exception {
+ List ccpRevList = new ArrayList();
+ TCComponent[] refs = targetComp.getRelatedComponents("IMAN_reference");
+ int len = refs == null ? 0 : refs.length;
+ TCComponentFolder projStart = null;
+ System.out.println("ĿļУ" + targetComp);
+ for (int i = 0; i < len; i++) {
+ String cName = refs[i].getProperty("object_name");
+ System.out.println(">> ҵӶ" + cName);
+ if ((refs[i] instanceof TCComponentFolder) && cName.contains("Ŀ")) {
+ projStart = (TCComponentFolder) refs[i];
+ break;
+ }
+ }
+ if (projStart == null) {
+ return null;
+ }
+ TCComponentFolder ccpFolder = null;
+ AIFComponentContext[] cFolders = projStart.getChildren();
+ len = cFolders == null ? 0 : cFolders.length;
+ for (int i = 0; i < len; i++) {
+ InterfaceAIFComponent c = cFolders[i].getComponent();
+ String cName = c.getProperty("object_name");
+ if ((c instanceof TCComponentFolder) && cName.contains("Ʒ")) {
+ ccpFolder = (TCComponentFolder) c;
+ break;
+ }
+ }
+ String[] preferences = ChintPreferenceUtil.getPreferences("CHINT_NO_KJTOPROD_M060", session);
+ AIFComponentContext[] ccpContexts = ccpFolder.getChildren();
+ for(AIFComponentContext context:ccpContexts) {
+ InterfaceAIFComponent component = context.getComponent();
+ String property = component.getProperty("object_name");
+ if(property.contains("ѹ")) {
+ boolean flag = false;
+ for(String preference:preferences) {
+ if(property.contains(preference)) {
+ flag = true;
+ break;
+ }
+ }
+ if(component instanceof TCComponentItem && !flag) {
+ TCComponentItemRevision latestItemRevision = ((TCComponentItem)component).getLatestItemRevision();
+ ccpRevList.add(latestItemRevision);
+ }
+ }
+ }
+
+ return ccpRevList;
+ }
+
+ private List listBoms(TCComponentBOMLine bomLine) {
+// List bomLineNodes = list;
+
+ // ԤBOMӶmapItemRev map
+ List listBoms = new ArrayList<>();
+ try {
+// TCComponentItemRevision object = bomLine.getItemRevision();
+// String object_type = object.getType();
+ com.teamcenter.services.rac.cad._2007_01.StructureManagement structureService = com.teamcenter.services.rac.cad.StructureManagementService
+ .getService(RACUIUtil.getTCSession());
+ com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo levelInfo = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo();
+ com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref levelPref = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref();
+ levelInfo.parentBomLines = new TCComponentBOMLine[] { bomLine }; // 붥BOMLine
+ levelInfo.excludeFilter = "None";
+ levelPref.expItemRev = false;
+ levelPref.info = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.RelationAndTypesFilter[0];
+ // ʹ·չBOM
+ com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsResponse levelResp = structureService
+ .expandPSAllLevels(levelInfo, levelPref);
+ if (levelResp.output.length > 0) {
+ // BOMuidӶԹϵ
+ for (ExpandPSAllLevelsOutput data : levelResp.output) {
+ TCComponentBOMLine parentBomLine = (TCComponentBOMLine) data.parent.bomLine;
+ listBoms.add(parentBomLine);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return listBoms;
+ }
+}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/dy/createBOMDifference/CreateBOMDifference_GKController.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/dy/createBOMDifference/CreateBOMDifference_GKController.java
index f3d814f..1ede44b 100644
--- a/com.connor.chint.sap2/src/com/connor/chint/sap2/dy/createBOMDifference/CreateBOMDifference_GKController.java
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/dy/createBOMDifference/CreateBOMDifference_GKController.java
@@ -1,25 +1,23 @@
package com.connor.chint.sap2.dy.createBOMDifference;
import java.sql.ResultSet;
-import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
import com.connor.chint.sap2.util.ChintPreferenceUtil;
import com.connor.chint.sap2.util.SAPUtil;
import com.connor.chint.sap2.util.SqlUtil;
-import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentBOMWindow;
import com.teamcenter.rac.kernel.TCComponentBOMWindowType;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
-import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
+import com.teamcenter.services.rac.cad._2007_01.StructureManagement;
+import com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsOutput;
+import com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSData;
/**
* ѹ
@@ -28,197 +26,271 @@ import com.teamcenter.rac.kernel.TCSession;
*
*/
public class CreateBOMDifference_GKController {
+
+ private static HashMap> oldStBomMap;
+ private static HashMap> newStBomMap;
+ private static HashMap shitiMap;
+ private static HashMap bomMap;
public static final String SQL_Process = "select nvl(a.rprimary_objectu,'-1') from PIMANRELATION a "
+ "left join PIMANTYPE b on a.rrelation_typeu=b.puid "
+ "left join PWORKSPACEOBJECT c on c.puid =a.rprimary_objectu "
+ "where a.rsecondary_objectu =? and b.ptype_name='IMAN_METarget' and c.pobject_type='MEProcessRevision' ";
+ @SuppressWarnings("deprecation")
public static void getRevMap(TCSession session, TCComponent[] oldComponents, TCComponent[] newComponents,
- List beans) throws TCException {
+ List beans) throws Exception {
- Map map_item_beans = new HashMap<>();
+ oldStBomMap = new HashMap<>();
+ newStBomMap = new HashMap<>();
+ shitiMap = new HashMap<>();
+ bomMap = new HashMap<>();
+ StructureManagement structureService = com.teamcenter.services.rac.cad.StructureManagementService.getService(session);
+// HashMap map_item_beans = new HashMap<>();
+ HashMap map_item_beans = new HashMap<>();
+ ArrayList kjBeans = new ArrayList<>();
+
+ String[] prefs = ChintPreferenceUtil.getPreferences("database_tc", session);
+ if (SqlUtil.getTCDataConnection(prefs) == null) {
+ throw new Exception("ݿ,ѡá");
+ }
for (TCComponent comp : oldComponents) {
TCComponentItemRevision rev = (TCComponentItemRevision) comp;
TCComponentItem item = rev.getItem();
- BOMDifferenceBean bean = map_item_beans.get(item);
+ String id = item.getProperty("item_id");
+ BOMDifferenceBean bean = map_item_beans.get(id);
if (bean == null) {
bean = new BOMDifferenceBean();
bean.setItem(item);
bean.setOldRev(rev);
+ if(rev.getProperty("zt2_DrawingNo").equals("߿BOM")) {
+ bean.setKj(true);
+ kjBeans.add(bean);
+ }else if(isShiti(rev)) {
+ bean.setKj(false);
+ kjBeans.add(bean);
+ }
}
- map_item_beans.put(item, bean);
+ map_item_beans.put(id, bean);
}
for (TCComponent comp : newComponents) {
TCComponentItemRevision rev = (TCComponentItemRevision) comp;
TCComponentItem item = rev.getItem();
- BOMDifferenceBean bean = map_item_beans.get(item);
+ String id = item.getProperty("item_id");
+ BOMDifferenceBean bean = map_item_beans.get(id);
if (bean == null) {
bean = new BOMDifferenceBean();
bean.setItem(item);
bean.setNewRev(rev);
+ if(rev.getProperty("zt2_DrawingNo").equals("߿BOM")) {
+ bean.setKj(true);
+ kjBeans.add(bean);
+ }else if(isShiti(rev)) {
+ bean.setKj(false);
+ kjBeans.add(bean);
+ }
} else {
bean.setNewRev(rev);
}
- map_item_beans.put(item, bean);
+ map_item_beans.put(id, bean);
}
- try {
- String[] prefs = ChintPreferenceUtil.getPreferences("database_tc", session);
- if (SqlUtil.getTCDataConnection(prefs) == null) {
- throw new Exception("ݿ,ѡá");
+ if(kjBeans.size() == 0) {
+ throw new Exception("ϵδҵܲ");
+ }
+
+ TCComponentBOMWindowType bomWinType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
+ TCComponentBOMWindow win = bomWinType.create(null);
+// win.lock();
+ TCComponentBOMWindow win2 = bomWinType.create(null);
+// win2.lock();
+
+ List compares;
+ List items = new ArrayList<>();
+ List item_compares = new ArrayList<>();
+ HashMap map_childs = new HashMap<>();
+ HashMap> map_compares = new HashMap<>();
+
+// for (Entry entry : map_item_beans.entrySet()) {
+// BOMDifferenceBean bean = entry.getValue();
+ for(BOMDifferenceBean kjBean : kjBeans) {
+ TCComponentItemRevision oldKjRev = kjBean.getOldRev(), newKjRev = kjBean.getNewRev();
+ if(kjBean.isKj() && (oldKjRev == null || newKjRev == null)) {
+ throw new Exception("ǰϵ¿ܲƥ");
}
+ TCComponentBOMLine oldKjLine = win.setWindowTopLine(oldKjRev.getItem(), oldKjRev, null, null);
+ TCComponentBOMLine newKjLine = win2.setWindowTopLine(newKjRev.getItem(), newKjRev, null, null);
+ getBomLineTreeNodeSOA(oldKjRev, structureService, bomWinType);
+ getBomLineTreeNodeSOA(newKjRev, structureService, bomWinType);
+ oldStBomMap.clear();
+ newStBomMap.clear();
+ //TODO recycleBom
+ System.out.println("recycleBom------" + oldKjLine + ">>" + newKjLine);
+ recycleBom(oldKjRev.toString(), oldKjRev.toString(), true, bomWinType, map_item_beans, 1.0, structureService);
+ System.out.println("oldBomMap------" + printBomMap(oldStBomMap));
+ recycleBom(newKjRev.toString(), newKjRev.toString(), false, bomWinType, map_item_beans, 1.0, structureService);
+ System.out.println("newBomMap------" + printBomMap(newStBomMap));
- TCComponentBOMWindowType bomWinType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
- TCComponentBOMWindow win = bomWinType.create(null);
- win.lock();
- TCComponentBOMWindow win2 = bomWinType.create(null);
- win2.lock();
- List compares;
- List items = new ArrayList<>();
- List item_compares = new ArrayList<>();
- Map map_childs = new HashMap<>();
- Map> map_compares = new HashMap<>();
+ TCComponentItem item = kjBean.getItem();
+ System.out.println("------" + item + " old:" + kjBean.getOldRev() + "; new:" + kjBean.getNewRev());
- for (Entry entry : map_item_beans.entrySet()) {
- BOMDifferenceBean bean = entry.getValue();
- TCComponentItem item = entry.getKey();
- System.out.println("------" + item + " old:" + bean.getOldRev() + "; new:" + bean.getNewRev());
- if (item_compares.indexOf(item) != -1) {
- System.out.println("Ѷȡ,");
- continue;
- }
- System.out.println("δȡ,BOM---");
-
- if (bean.getOldRev() != null && bean.getNewRev() != null) {
- win.setWindowTopLine(entry.getKey(), bean.getOldRev(), null, null);
- win2.setWindowTopLine(entry.getKey(), bean.getNewRev(), null, null);
- win.refresh();
- win2.refresh();
-
- BOMDifferenceBean parentBean;
- if (map_childs.containsKey(item)) {
- parentBean = map_childs.get(item);
- parentBean.setOldBOMLine(win.getTopBOMLine());
- parentBean.setNewBOMLine(win2.getTopBOMLine());
- } else {
- parentBean = new BOMDifferenceBean();
- parentBean.setOldQuantity(1);
- parentBean.setNewQuantity(1);
- parentBean.setOldBOMLine(win.getTopBOMLine());
- parentBean.setNewBOMLine(win2.getTopBOMLine());
- String zt2_MaterialNo = "";
- String object_desc = "";
- String object_name = "";
- TCComponentItemRevision parentRev = null;
- parentRev = SAPUtil.getSAPPart(parentBean.getNewBOMLine(), session);
- if (parentRev != null) {
- zt2_MaterialNo = parentRev.getProperty("zt2_MaterialNo");
- object_desc = parentRev.getProperty("object_desc");
- object_name = parentRev.getProperty("object_name");
- }
- parentBean.setZt2_MaterialNo_Parent(zt2_MaterialNo);
- parentBean.setObject_desc_Parent(object_desc);
- parentBean.setObject_name_Parent(object_name);
- parentBean.setParentPartRev(parentRev);
- }
- System.out.println("oldLine:" + win.getTopBOMLine()+"; newLine:" + win2.getTopBOMLine());
- parentBean.setItem(item);
- compares = new ArrayList<>();
- bomCompare_M006(parentBean, session, parentBean.getOldQuantity(), parentBean.getNewQuantity(),
- compares, true, false, item_compares, map_item_beans, map_childs, 0);
- map_compares.put(item, compares);
- // map_childs.remove(item);
- items.add(item);
+ BOMDifferenceBean parentBean;
+ if (map_childs.containsKey(item)) {
+ parentBean = map_childs.get(item);
+ parentBean.setOldBOMLine(oldKjLine);
+ parentBean.setNewBOMLine(newKjLine);
+ parentBean.setOldRev(oldKjRev);
+ parentBean.setNewRev(newKjRev);
+ } else {
+ parentBean = new BOMDifferenceBean();
+ parentBean.setOldQuantity(1);
+ parentBean.setNewQuantity(1);
+ parentBean.setOldBOMLine(oldKjLine);
+ parentBean.setNewBOMLine(newKjLine);
+ parentBean.setOldRev(oldKjRev);
+ parentBean.setNewRev(newKjRev);
+ String zt2_MaterialNo = "";
+ String object_desc = "";
+ String object_name = "";
+ TCComponentItemRevision parentRev = null;
+ parentRev = SAPUtil.getSAPPart(parentBean.getNewBOMLine(), session);
+ if (parentRev != null) {
+ zt2_MaterialNo = parentRev.getProperty("zt2_MaterialNo");
+ object_desc = parentRev.getProperty("object_desc");
+ object_name = parentRev.getProperty("object_name");
}
- System.out.println("ȽϽ");
+ parentBean.setZt2_MaterialNo_Parent(zt2_MaterialNo);
+ parentBean.setObject_desc_Parent(object_desc);
+ parentBean.setObject_name_Parent(object_name);
+ parentBean.setParentPartRev(parentRev);
}
+// System.out.println("oldLine:" + win.getTopBOMLine()+"; newLine:" + win2.getTopBOMLine());
+ parentBean.setItem(item);
+ compares = new ArrayList<>();
+ bomCompare_M006(parentBean, session, parentBean.getOldQuantity(), parentBean.getNewQuantity(),
+ compares, true, false, item_compares, map_item_beans, map_childs, 0);
+ map_compares.put(kjBean.getId(), compares);
+ // map_childs.remove(item);
+ items.add(item);
+ System.out.println("ȽϽ");
+ }
+ /*
+ List keys = new ArrayList<>(map_childs.keySet());
+ BOMDifferenceBean bean2;
+ for (int i = 0, len = keys.size(); i < len; i++) {
+ TCComponentItem item = keys.get(i);
+ BOMDifferenceBean bean = map_childs.get(item);
+ bean2 = map_item_beans.get(item.getProperty("item_id"));
+ bean.setOldRev(bean2.getOldRev());
+ bean.setNewRev(bean2.getNewRev());
+ System.out.println("------" + item + " old:" + bean.getOldRev() + "; new:" + bean.getNewRev());
+ if (bean.getOldRev() != null && bean.getNewRev() != null) {
+ win.setWindowTopLine(item, bean.getOldRev(), null, null);
+ win2.setWindowTopLine(item, bean.getNewRev(), null, null);
+ win.refresh();
+ win2.refresh();
+ BOMDifferenceBean parentBean = map_childs.get(item);
+ parentBean.setOldBOMLine(win.getTopBOMLine());
+ parentBean.setNewBOMLine(win2.getTopBOMLine());
+ System.out.println("--------" + parentBean);
+ System.out.println("oldLine:" + win.getTopBOMLine()+"; newLine:" + win2.getTopBOMLine());
+ parentBean.setItem(item);
+ compares = new ArrayList<>();
+ bomCompare_M006(parentBean, session, parentBean.getOldQuantity(), parentBean.getNewQuantity(),
+ compares, true, true, item_compares, map_item_beans, map_childs, 0);
+ map_compares.put(item, compares);
- List keys = new ArrayList<>(map_childs.keySet());
- BOMDifferenceBean bean2;
- for (int i = 0, len = keys.size(); i < len; i++) {
- TCComponentItem item = keys.get(i);
- BOMDifferenceBean bean = map_childs.get(item);
- bean2 = map_item_beans.get(item);
- bean.setOldRev(bean2.getOldRev());
- bean.setNewRev(bean2.getNewRev());
- System.out.println("------" + item + " old:" + bean.getOldRev() + "; new:" + bean.getNewRev());
- if (bean.getOldRev() != null && bean.getNewRev() != null) {
- win.setWindowTopLine(item, bean.getOldRev(), null, null);
- win2.setWindowTopLine(item, bean.getNewRev(), null, null);
- win.refresh();
- win2.refresh();
- BOMDifferenceBean parentBean = map_childs.get(item);
- parentBean.setOldBOMLine(win.getTopBOMLine());
- parentBean.setNewBOMLine(win2.getTopBOMLine());
- System.out.println("--------" + parentBean);
- System.out.println("oldLine:" + win.getTopBOMLine()+"; newLine:" + win2.getTopBOMLine());
- parentBean.setItem(item);
- compares = new ArrayList<>();
- bomCompare_M006(parentBean, session, parentBean.getOldQuantity(), parentBean.getNewQuantity(),
- compares, true, true, item_compares, map_item_beans, map_childs, 0);
- map_compares.put(item, compares);
-
- items.add(item);
- }
- System.out.println("ȽϽ");
+ items.add(item);
}
- System.out.println("ȡ----ʼ");
- for (Entry> entry : map_compares.entrySet()) {
- System.out.println(":" + entry.getKey());
- compares = entry.getValue();
- if (compares != null) {
- for (int i = 0, len = compares.size(); i < len; i++) {
- System.out.println(i + "-----" + compares.get(i));
+ System.out.println("ȽϽ");
+ }*/
+ System.out.println("ȡ----ʼ");
+ HashMap idList = new HashMap<>();
+ ArrayList parentList = new ArrayList<>();
+ for (String id : map_compares.keySet()) {
+// String id = entry.getKey();
+ System.out.println(":" + id);
+// if(!id.startsWith("@"))
+// continue;
+ compares = map_compares.get(id);
+ if (compares != null) {
+ for (int i = 0, len = compares.size(); i < len; i++) {
+ BOMCompareBean compare = compares.get(i);
+ System.out.println(i + "-----" + compare);
+ String cid = compare.getId();
+ if(idList.containsKey(cid)) {
+ if(!parentList.contains(compare.getParentId())) {
+ BOMCompareBean bean = beans.get(idList.get(cid));
+ bean.addNum_Old(compare.getNum_Old());
+ bean.addNum_New(compare.getNum_New());
+ parentList.add(compare.getParentId());
+ }
+ continue;
}
- beans.addAll(compares);
+ parentList.add(compare.getParentId());
+ idList.put(cid, beans.size());
+ beans.add(compare);
}
}
- System.out.println("ȡ----");
- win.unlock();
- win.close();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
-
}
+// for(int i = beans.size() - 1; i >= 0; i--) {
+// BOMCompareBean bean = beans.get(i);
+// if(bean.getNum_Old() != null && bean.getNum_New() != null) {
+// if(bean.getNum_Old().equals(bean.getNum_New()))
+// beans.remove(i);
+// else if(!bean.getNum_Old().isEmpty() && !bean.getNum_New().isEmpty())
+// bean.setChangeType("");
+// }
+// }
+ System.out.println("ȡ----");
+ win.unlock();
+ win.close();
+// win2.unlock();
+// win2.close();
}
/**
- * ͼֽжǷΪ
+ * ͼֽжǷΪʵ
*
* @param revType
* @param rev
* @param con
* @throws SQLException
*/
- public static boolean isVirtual(TCComponentItemRevision rev) throws SQLException {
+ public static boolean isShiti(TCComponentItemRevision rev) throws Exception {
/**
* ıͼֽ,ĬʵҲչ
*/
- ResultSet rs = SqlUtil.read(SQL_Process, new Object[] { rev.getUid() });
- String puid = "";
+ String uid = rev.getUid();
+ if(shitiMap.containsKey(uid))
+ return shitiMap.get(uid);
+ ResultSet rs = SqlUtil.read(SQL_Process, new Object[] { uid });
+// String puid = "";
if (rs.next()) {
- puid = rs.getString(1);
+// puid = rs.getString(1);
+ shitiMap.put(uid, true);
SqlUtil.free();
- System.out.println(puid + "-----ʵͼֽ:" + rev);
+// System.out.println(puid + "-----ʵͼֽ:" + rev);
return true;
}
- System.out.println(puid + "-----ͼֽ:" + rev);
+// System.out.println(puid + "-----ͼֽ:" + rev);
+ shitiMap.put(uid, false);
SqlUtil.free();
return false;
}
public static void bomCompare_M006(BOMDifferenceBean parentBean, TCSession session, double parent_quantity_old,
double parent_quantity_new, List beans, boolean isAddVis, boolean isRepeat,
- List item_compares, Map map_item_beans,
- Map map_childs, int level) throws TCException, SQLException {
+ List item_compares, HashMap map_item_beans,
+ HashMap map_childs, int level) throws Exception {
- if (level > 0 && map_item_beans.containsKey(parentBean.getItem())) {
- System.out.println("-------:" + parentBean.getItem() + "||" + parentBean);
+ TCComponentItem patentItem = parentBean.getItem();
+ /*String id = patentItem.getProperty("item_id");
+ if (level > 0 && map_item_beans.containsKey(id)) {
+ System.out.println("-------:" + id + "||" + parentBean);
- BOMDifferenceBean bomDifferenceBean = map_item_beans.get(parentBean.getItem());
+ BOMDifferenceBean bomDifferenceBean = map_item_beans.get(id);
double oldQuantity = bomDifferenceBean.getOldQuantity();
double newQuantity = bomDifferenceBean.getNewQuantity();
System.out.println("Ѿ?-------:" + newQuantity + "||" + oldQuantity);
@@ -229,60 +301,75 @@ public class CreateBOMDifference_GKController {
bomDifferenceBean.setOldQuantity(parentBean.getOldQuantity()+oldQuantity);
bomDifferenceBean.setNewQuantity(parentBean.getNewQuantity()+newQuantity);
// }
- map_item_beans.put(parentBean.getItem(), bomDifferenceBean);
+ map_item_beans.put(id, bomDifferenceBean);
map_childs.put(parentBean.getItem(), parentBean);
return;
}
-
+ */
// if (item_compares.indexOf(parentBean.getItem()) != -1 && !isRepeat) {
// System.out.println("ӹ" + parentBean.getItem());
// return;
// }
- System.out.println("δӹ:" + parentBean.getItem());
- item_compares.add(parentBean.getItem());
- TCComponentBOMLine parentLine_old = parentBean.getOldBOMLine();
- TCComponentBOMLine parentLine_new = parentBean.getNewBOMLine();
+ System.out.println("δӹ:" + patentItem);
+ item_compares.add(patentItem);
+// TCComponentBOMLine parentLine_old = parentBean.getOldBOMLine();
+// TCComponentBOMLine parentLine_new = parentBean.getNewBOMLine();
+ TCComponentItemRevision parentLine_old = parentBean.getOldRev();
+ TCComponentItemRevision parentLine_new = parentBean.getNewRev();
System.out.println("Ƚ:" + parentLine_old + "--" + parent_quantity_old + "||" + parentLine_new + "--"
+ parent_quantity_new);
BOMDifferenceBean bean;
- Map map_child_beans = new HashMap<>();
+ HashMap map_child_beans = new HashMap<>();
TCComponentItemRevision oldPartRev = null;
TCComponentItemRevision newPartRev = null;
//
- String bl_quantity;
+// String bl_quantity;
double quantity;
String rev_object_type;
if (parentLine_new != null) {
TCComponentItem item = null;
TCComponentItemRevision rev = null;
TCComponentBOMLine line;
- AIFComponentContext[] childs_new = parentLine_new.getChildren();
- for (int i = 0, len = childs_new.length; i < len; i++) {
- line = (TCComponentBOMLine) childs_new[i].getComponent();
- rev = line.getItemRevision();
- item = rev.getItem();
- bean = map_child_beans.get(item);
- newPartRev = SAPUtil.getSAPPart(line, session);
- if (newPartRev == null) {
- continue;
- }
- bl_quantity = line.getProperty("bl_quantity");
- if (bl_quantity == null || bl_quantity.trim().length() == 0) {
- bl_quantity = "1";
- }
- quantity = Double.parseDouble(bl_quantity) * parent_quantity_new;
- if (bean == null) {
- bean = new BOMDifferenceBean();
- bean.setItem(item);
- rev_object_type = rev.getType();
- bean.setRev_object_type(rev_object_type);
- bean.setNewPartRev(newPartRev);
+// AIFComponentContext[] childs_new = parentLine_new.getChildren();
+// for (int i = 0, len = childs_new.length; i < len; i++) {
+ String revS = parentLine_new.toString();
+ if(newStBomMap.containsKey(revS)) {
+ for(Object[] c : newStBomMap.get(revS)) {
+// line = (TCComponentBOMLine) childs_new[i].getComponent();
+ line = (TCComponentBOMLine) c[0];
+ rev = (TCComponentItemRevision) c[1];
+// bom = (TCComponentBOMLine) c[2];
+ item = rev.getItem();
+ String id = item.getProperty("item_id");
+ bean = map_child_beans.get(id);
+ newPartRev = SAPUtil.getSAPPart(line, session);
+// System.out.println("newPartRev" + rev + "==" + line + ">>" + newPartRev);
+ if (newPartRev == null) {
+ continue;
+ }
+// bl_quantity = line.getProperty("bl_quantity");
+// if (bl_quantity == null || bl_quantity.trim().length() == 0) {
+// bl_quantity = "1";
+// }
+// quantity = Double.parseDouble(bl_quantity) * parent_quantity_new;
+ quantity = (double) c[3];
+// System.out.println(revS + "==>" + rev + "*" + quantity);
+
+ if (bean == null) {
+ bean = new BOMDifferenceBean();
+ bean.setItem(item);
+ rev_object_type = rev.getType();
+ bean.setRev_object_type(rev_object_type);
+ bean.setNewPartRev(newPartRev);
+ }
+ bean.setNewRev(rev);
+// bean.setNewBOMLine(bom);
+ bean.addNewQuantity(quantity);
+ map_child_beans.put(id, bean);
}
- bean.setNewRev(rev);
- bean.setNewBOMLine(line);
- bean.addNewQuantity(quantity);
- map_child_beans.put(item, bean);
+ }else {
+ System.out.println("newBomMapδӹ:" + revS);
}
}
@@ -290,34 +377,47 @@ public class CreateBOMDifference_GKController {
TCComponentItem item = null;
TCComponentItemRevision rev = null;
TCComponentBOMLine line;
- AIFComponentContext[] childs_old = parentLine_old.getChildren();
- for (int i = 0, len = childs_old.length; i < len; i++) {
- line = (TCComponentBOMLine) childs_old[i].getComponent();
- rev = line.getItemRevision();
- item = rev.getItem();
- bean = map_child_beans.get(item);
- oldPartRev = SAPUtil.getSAPPart(line, session);
- if (oldPartRev == null) {
- continue;
- }
- bl_quantity = line.getProperty("bl_quantity");
- if (bl_quantity == null || bl_quantity.trim().length() == 0) {
- bl_quantity = "1";
- }
-
- quantity = Double.parseDouble(bl_quantity) * parent_quantity_old;
+// ExpandPSData[] bom;
+// AIFComponentContext[] childs_old = parentLine_old.getChildren();
+// for (int i = 0, len = childs_old.length; i < len; i++) {
+ String revS = parentLine_old.toString();
+ if(oldStBomMap.containsKey(revS)) {
+ for(Object[] c : oldStBomMap.get(revS)) {
+// line = (TCComponentBOMLine) childs_old[i].getComponent();
+// rev = line.getItemRevision();
+ line = (TCComponentBOMLine) c[0];
+ rev = (TCComponentItemRevision) c[1];
+// bom = (ExpandPSData[]) c[2];
+ item = rev.getItem();
+ String id = item.getProperty("item_id");
+ bean = map_child_beans.get(id);
+ oldPartRev = SAPUtil.getSAPPart(line, session);
+// System.out.println("oldPartRev" + rev + "==" + line + ">>" + newPartRev);
+ if (oldPartRev == null) {
+ continue;
+ }
+// bl_quantity = line.getProperty("bl_quantity");
+// if (bl_quantity == null || bl_quantity.trim().length() == 0) {
+// bl_quantity = "1";
+// }
+// quantity = Double.parseDouble(bl_quantity) * parent_quantity_old;
+ quantity = (double) c[3];
+// System.out.println(revS + "==>" + rev + "*" + quantity);
- if (bean == null) {
- bean = new BOMDifferenceBean();
- bean.setItem(item);
- rev_object_type = rev.getType();
- bean.setRev_object_type(rev_object_type);
+ if (bean == null) {
+ bean = new BOMDifferenceBean();
+ bean.setItem(item);
+ rev_object_type = rev.getType();
+ bean.setRev_object_type(rev_object_type);
+ }
+ bean.setOldRev(rev);
+// bean.setOldBOMLine(bom);
+ bean.setOldPartRev(oldPartRev);
+ bean.addOldQuantity(quantity);
+ map_child_beans.put(id, bean);
}
- bean.setOldRev(rev);
- bean.setOldBOMLine(line);
- bean.setOldPartRev(oldPartRev);
- bean.addOldQuantity(quantity);
- map_child_beans.put(item, bean);
+ }else {
+ System.out.println("oldBomMapδӹ:" + revS);
}
}
@@ -344,8 +444,10 @@ public class CreateBOMDifference_GKController {
object_desc_Parent = parentBean.getObject_name_Parent();
}
- for (Entry entry : map_child_beans.entrySet()) {
- bean = entry.getValue();
+// for (Entry entry : map_child_beans.entrySet()) {
+// bean = entry.getValue();
+ for (String id : map_child_beans.keySet()) {
+ bean = map_child_beans.get(id);
oldPartRev = bean.getOldPartRev();
newPartRev = bean.getNewPartRev();
System.out.println(bean.getItem() + " BOMDifferenceBean:" + bean);
@@ -361,19 +463,21 @@ public class CreateBOMDifference_GKController {
// ɾ Ϊ¼
if ("ZT2_Design3DRevision".equals(bean.getRev_object_type())) {
zt2_Source = bean.getOldRev().getProperty("zt2_Source");
- if (bean.getOldBOMLine().getChildrenCount() == 0 || "".equals(zt2_Source)) {
+// if (bean.getOldBOMLine().getChildrenCount() == 0 || "".equals(zt2_Source)) {
+ if (bomMap.get(rev.toString()).length == 0 || "".equals(zt2_Source)) {
// Ϊֹ,չ
compareBean = new BOMCompareBean("ɾ", zt2_MaterialNo_Parent, object_desc_Parent,
zt2_MaterialNo_Old, object_desc_Old, num_Old, "", "", "");
beans.add(compareBean);
} else if ("".equals(zt2_Source)) {
// ʵ
- if (isVirtual(rev)) {
+ if (isShiti(rev)) {
compareBean = new BOMCompareBean("ɾ", zt2_MaterialNo_Parent, object_desc_Parent,
zt2_MaterialNo_Old, object_desc_Old, num_Old, "", "", "");
beans.add(compareBean);
- bomCompare_M006(bean, session, 1, 1, beans, false, isRepeat, item_compares, map_item_beans,
- map_childs, level + 1);
+ //TODO ɾʵʾɾ
+// bomCompare_M006(bean, session, 1, 1, beans, false, isRepeat, item_compares, map_item_beans,
+// map_childs, level + 1);
} else {
//
bean.setParentPartRev(oldPartRev);
@@ -405,18 +509,20 @@ public class CreateBOMDifference_GKController {
System.out.println("****:" + rev);
if ("ZT2_Design3DRevision".equals(bean.getRev_object_type())) {
zt2_Source = bean.getNewRev().getProperty("zt2_Source");
- if (bean.getNewBOMLine().getChildrenCount() == 0 || "".equals(zt2_Source)) {
+// if (bean.getNewBOMLine().getChildrenCount() == 0 || "".equals(zt2_Source)) {
+ if (bomMap.get(rev.toString()).length == 0 || "".equals(zt2_Source)) {
compareBean = new BOMCompareBean("", zt2_MaterialNo_Parent, object_desc_Parent, "", "", "",
zt2_MaterialNo_New, object_desc_New, num_New);
beans.add(compareBean);
System.out.println(bean.getItem() + "----" + compareBean);
} else if ("".equals(zt2_Source)) {
- if (isVirtual(rev)) {
+ if (isShiti(rev)) {
compareBean = new BOMCompareBean("", zt2_MaterialNo_Parent, object_desc_Parent, "", "",
"", zt2_MaterialNo_New, object_desc_New, num_New);
beans.add(compareBean);
- bomCompare_M006(bean, session, 1, 1, beans, isAddVis, isRepeat, item_compares,
- map_item_beans, map_childs, level + 1);
+ //TODO ʵʾ
+// bomCompare_M006(bean, session, 1, 1, beans, isAddVis, isRepeat, item_compares,
+// map_item_beans, map_childs, level + 1);
} else {
bean.setZt2_MaterialNo_Parent(zt2_MaterialNo_Parent);
bean.setObject_desc_Parent(object_desc_Parent);
@@ -467,22 +573,24 @@ public class CreateBOMDifference_GKController {
if ("ZT2_Design3DRevision".equals(bean.getRev_object_type())) {
zt2_Source = bean.getNewRev().getProperty("zt2_Source");
- if (bean.getNewBOMLine().getChildrenCount() == 0 || "".equals(zt2_Source)) {
+// if (bean.getNewBOMLine().getChildrenCount() == 0 || "".equals(zt2_Source)) {
+ if (bomMap.get(rev.toString()).length == 0 || "".equals(zt2_Source)) {
if (compareBean != null) {
System.out.println(bean.getItem() + "--仯(ʵ)--" + compareBean);
beans.add(compareBean);
}
} else if ("".equals(zt2_Source)) {
// ʵ
- if (isVirtual(rev)) {
+ if (isShiti(rev)) {
bean.setZt2_MaterialNo_Parent(zt2_MaterialNo_New);
bean.setObject_desc_Parent(object_desc_New);
if (compareBean != null) {
System.out.println(bean.getItem() + "--仯(ʵ)--" + compareBean);
beans.add(compareBean);
}
- bomCompare_M006(bean, session, 1, 1, beans, isAddVis, isRepeat, item_compares,
- map_item_beans, map_childs, level + 1);
+ //TODO ʵʾ仯
+// bomCompare_M006(bean, session, 1, 1, beans, isAddVis, isRepeat, item_compares,
+// map_item_beans, map_childs, level + 1);
} else {
if (compareBean != null && isAddVis) {
@@ -523,18 +631,19 @@ public class CreateBOMDifference_GKController {
System.out.println("ϱ");
if ("ZT2_Design3DRevision".equals(bean.getRev_object_type())) {
zt2_Source = bean.getNewRev().getProperty("zt2_Source");
- if (bean.getNewBOMLine().getChildrenCount() == 0 || "".equals(zt2_Source)) {
+// if (bean.getNewBOMLine().getChildrenCount() == 0 || "".equals(zt2_Source)) {
+ if (bomMap.get(rev.toString()).length == 0 || "".equals(zt2_Source)) {
if (compareBean != null) {
System.out.println(bean.getItem() + "--ϱ(ʵ)--" + compareBean);
beans.add(compareBean);
}
} else if ("".equals(zt2_Source)) {
// ʵ
- if (isVirtual(rev)) {
+ if (isShiti(rev)) {
bean.setZt2_MaterialNo_Parent(zt2_MaterialNo_New);
bean.setObject_desc_Parent(object_desc_New);
- bomCompare_M006(bean, session, 1, 1, beans, isAddVis, isRepeat, item_compares,
- map_item_beans, map_childs, level + 1);
+// bomCompare_M006(bean, session, 1, 1, beans, isAddVis, isRepeat, item_compares,
+// map_item_beans, map_childs, level + 1);
} else {
//
bean.setZt2_MaterialNo_Parent(zt2_MaterialNo_Parent);
@@ -553,5 +662,127 @@ public class CreateBOMDifference_GKController {
}
}
}
-
+ /**
+ * BOMʵBOMMap
+ * @param parent BOM
+ * @param uid ʵ常汾object_string//UID
+ * @param isOld or
+ * @param bomWinType BOM
+ * @param map_item_beans
+ * @param count ۳
+ */
+ private static void recycleBom(String parent, String uid, boolean isOld, TCComponentBOMWindowType bomWinType,
+ HashMap map_item_beans, Double count, StructureManagement structureService) throws Exception {
+// if(isOld && oldBomMap.containsKey(uid) || !isOld && newBomMap.containsKey(uid))
+// return;
+// System.out.println("recycleBom:" + parent + "==" + parent.getChildren().length);
+// for(AIFComponentContext c : parent.getChildren()) {
+ for(ExpandPSData data : bomMap.get(parent)) {
+ TCComponentBOMLine line = data.bomLine;//(TCComponentBOMLine) c.getComponent(), bom;
+ System.out.println("recycleBom:" + uid + "==" + parent + ">>" + line);
+ ExpandPSData[] bom = new ExpandPSData[0];
+ TCComponentItemRevision rev;
+ String id = data.itemRevOfBOMLine.getProperty("item_id");
+ if(map_item_beans.containsKey(id)) {
+ //BOMΪǾȷ˱ǰϵµĶ汾а汾
+ if(isOld)
+ rev = map_item_beans.get(id).getOldRev();
+ else
+ rev = map_item_beans.get(id).getNewRev();
+ getBomLineTreeNodeSOA(rev, structureService, bomWinType);
+ bom = bomMap.get(rev.toString());
+ }else {
+ rev = data.itemRevOfBOMLine;
+ if(bomMap.containsKey(rev.toString()))
+ bom = bomMap.get(rev.toString());
+ }
+ boolean part = !rev.getType().equals("ZT2_Design3DRevision");
+ String bl_quantity = line.getProperty("bl_quantity");
+ Double qty = (bl_quantity.isEmpty() ? 1 : Double.parseDouble(bl_quantity)) * count;
+ if((part && bom.length == 0) || rev.getProperty("zt2_Source").equals("")) {
+// System.out.println("bom:" + uid + "==" + bom);
+ //ʵ壬ÿգBOMҲҪչ
+ if(isOld) {
+ if(!oldStBomMap.containsKey(uid))
+ oldStBomMap.put(uid, new ArrayList<>());
+ oldStBomMap.get(uid).add(new Object[] { line, rev, bom, qty });
+ }else {
+ if(!newStBomMap.containsKey(uid))
+ newStBomMap.put(uid, new ArrayList<>());
+ newStBomMap.get(uid).add(new Object[] { line, rev, bom, qty });
+ }
+ }else if(!part && isShiti(rev)) {
+ if(isOld) {
+ if(!oldStBomMap.containsKey(uid))
+ oldStBomMap.put(uid, new ArrayList<>());
+ oldStBomMap.get(uid).add(new Object[] { line, rev, bom, qty });
+// System.out.println("oldBomMap:" + uid + "==" + bom);
+ //ͼֽϵʵֻбһ汾ǰݲҪΪ츸֡
+ if(!map_item_beans.containsKey(id) || map_item_beans.get(id).getNewRev() != null)
+ recycleBom(rev.toString(), rev.toString(), isOld, bomWinType, map_item_beans, 1.0, structureService);
+ }else {
+ if(!newStBomMap.containsKey(uid))
+ newStBomMap.put(uid, new ArrayList<>());
+ newStBomMap.get(uid).add(new Object[] { line, rev, bom, qty });
+// System.out.println("newBomMap:" + uid + "==" + bom);
+ //ͼֽϵʵֻбһ汾ǰݲҪΪ츸֡
+ if(!map_item_beans.containsKey(id) || map_item_beans.get(id).getOldRev() != null)
+ recycleBom(rev.toString(), rev.toString(), isOld, bomWinType, map_item_beans, 1.0, structureService);
+ }
+ }else {
+// System.out.println("bom:" + uid + "==" + bom);
+ //BOM
+ recycleBom(rev.toString(), uid, isOld, bomWinType, map_item_beans, qty, structureService);
+ }
+ }
+ }
+ /**
+ * BomMapתΪַʽ
+ * @param map BomMap
+ * @return ַʽBomMap
+ */
+ private static String printBomMap(HashMap> map) {
+ StringBuilder str = new StringBuilder("");
+ for(String s : map.keySet()) {
+ str.append(s).append("=[");
+ for(Object[] bojs : map.get(s)) {
+ str.append(bojs[1]).append("*").append(bojs[3]).append(";");
+ }
+ str.append("]\n");
+ }
+ return str.toString();
+ }
+ /**
+ * SOAչBOMbomMapStructureManagementΪԽԼԴ
+ * @param bomLine BOM
+ * @param structureService StructureManagement
+ */
+ private static void getBomLineTreeNodeSOA(TCComponentItemRevision rev, StructureManagement structureService, TCComponentBOMWindowType bomWinType) throws Exception {
+ if(bomMap.containsKey(rev.toString()))
+ return;
+ TCComponentBOMWindow win = bomWinType.create(null);
+ TCComponentBOMLine bomLine = win.setWindowTopLine(rev.getItem(), rev, null, null);
+ // SOAչBOM
+// com.teamcenter.services.rac.cad._2007_01.StructureManagement structureService = com.teamcenter.services.rac.cad.StructureManagementService.getService(RACUIUtil.getTCSession());
+ com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo levelInfo = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo();
+ com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref levelPref = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref();
+ levelInfo.parentBomLines = new TCComponentBOMLine[] { bomLine }; //붥BOMLine
+ levelInfo.excludeFilter = "None";//zt2_BOMMaterial
+ levelPref.expItemRev = false;
+ levelPref.info = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.RelationAndTypesFilter[0];
+// levelPref.info[0].relationName = "";
+ //ʹ·չBOM
+ com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsResponse levelResp = structureService.expandPSAllLevels(levelInfo, levelPref);
+ if (levelResp.output.length > 0) {
+ //BOMuidӶԹϵ
+ for (ExpandPSAllLevelsOutput data : levelResp.output) {
+ ExpandPSData[] children = data.children;
+ TCComponentItemRevision parentBomLine = data.parent.itemRevOfBOMLine;
+ bomMap.put(parentBomLine.toString(), children);
+ }
+ }else {
+ bomMap.put(rev.toString(), new ExpandPSData[0]);
+ }
+ win.close();
+ }
}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/gk/AProjectNo/AProjectNoDialog.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/gk/AProjectNo/AProjectNoDialog.java
index 88a6ab3..b821003 100644
--- a/com.connor.chint.sap2/src/com/connor/chint/sap2/gk/AProjectNo/AProjectNoDialog.java
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/gk/AProjectNo/AProjectNoDialog.java
@@ -19,6 +19,7 @@ import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableColumnModel;
+import com.connor.chint.sap2.util.ChintPreferenceUtil;
import com.connor.chint.sap2.util.KUtil;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
@@ -27,6 +28,11 @@ import com.teamcenter.rac.util.MessageBox;
public class AProjectNoDialog extends AbstractAIFDialog {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
private AProjectNoController controller;
private JButton assign;
private JButton b_ok;
@@ -35,21 +41,21 @@ public class AProjectNoDialog extends AbstractAIFDialog {
public static final String[] HEADER = new String[] { "Ʒ", "Ʒ", "", "˳" };
public static final int[] HEADERWIDTH = new int[] { 180, 180, 180, 180 };
- private AbstractAIFApplication app;
+// private AbstractAIFApplication app;
private TCSession session;
public AProjectNoDialog(AbstractAIFApplication app) {
super(false);
- this.app = app;
+// this.app = app;
this.session = (TCSession) app.getSession();
this.controller = new AProjectNoController(app, this);
}
public AProjectNoDialog(Frame paramFrame, AbstractAIFApplication app) {
- // TODO Auto-generated constructor stub
+ // Auto-generated constructor stub
super(paramFrame, false);
- this.app = app;
+// this.app = app;
this.session = (TCSession) app.getSession();
this.controller = new AProjectNoController(app, this);
}
@@ -107,7 +113,7 @@ public class AProjectNoDialog extends AbstractAIFDialog {
@Override
public void actionPerformed(ActionEvent e) {
- // TODO Auto-generated method stub
+ // Auto-generated method stub
try {
String cpdh = (String) tm_part.getValueAt(0, 0);
String cptzz = (String) tm_part.getValueAt(0, 1);
@@ -140,7 +146,7 @@ public class AProjectNoDialog extends AbstractAIFDialog {
@Override
public void actionPerformed(ActionEvent e) {
- // TODO Auto-generated method stub
+ // Auto-generated method stub
try {
String flowNo = (String) tm_part.getValueAt(0, 3);
String cpdh = (String) tm_part.getValueAt(0, 0);
@@ -174,7 +180,7 @@ public class AProjectNoDialog extends AbstractAIFDialog {
@Override
public void tableChanged(TableModelEvent e) {
- // TODO Auto-generated method stub
+ // Auto-generated method stub
int col = e.getColumn();
int row = e.getFirstRow();
if (col < 2) {
@@ -226,25 +232,33 @@ public class AProjectNoDialog extends AbstractAIFDialog {
for (int i = 0; i < colCnt; i++) {
colModel.getColumn(i).setPreferredWidth(HEADERWIDTH[i]);
}
+ String[] prefs = ChintPreferenceUtil.getPreferences("CHINT_M006_PROJNO", session);
JComboBox com = new JComboBox();
com.addItem("");
- com.addItem("H");
- com.addItem("CB");
- com.addItem("GW");
+ for(String s : prefs[0].split(";")) {
+ com.addItem(s);
+ }
+// com.addItem("H");
+// com.addItem("CB");
+// com.addItem("GW");
t_part.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(com));
JComboBox com2 = new JComboBox();
com2.addItem("");
- com2.addItem("G");
- com2.addItem("F");
- com2.addItem("E");
- com2.addItem("D");
- String cpdhs[] = new String[] { "", "H", "CB", "GW" };
- String cptzhs[] = new String[] { "", "G", "F", "E", "D" };
+ for(String s : prefs[1].split(";")) {
+ com2.addItem(s);
+ }
+// com2.addItem("G");
+// com2.addItem("F");
+// com2.addItem("E");
+// com2.addItem("D");
+// String cpdhs[] = new String[] { "", "H", "CB", "GW" };
+// String cptzhs[] = new String[] { "", "G", "F", "E", "D" };
t_part.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(com2));
tm_part.addRow(new Vector());
JScrollPane scroll = new JScrollPane(t_part);
- scroll.setPreferredSize(new Dimension(452, 48));
+ scroll.setPreferredSize(new Dimension(452, 120));//48
+ @SuppressWarnings("deprecation")
int year = new Date().getYear();
year = year % 100;
tm_part.setValueAt("" + year, 0, 2);
@@ -253,9 +267,9 @@ public class AProjectNoDialog extends AbstractAIFDialog {
return panel;
}
- private void setCompEnabled(boolean b) {
- assign.setEnabled(b);
- b_ok.setEnabled(b);
- }
+// private void setCompEnabled(boolean b) {
+// assign.setEnabled(b);
+// b_ok.setEnabled(b);
+// }
}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/lijc/GetDesignDsCommand.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/lijc/GetDesignDsCommand.java
index dfe4368..c491e5f 100644
--- a/com.connor.chint.sap2/src/com/connor/chint/sap2/lijc/GetDesignDsCommand.java
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/lijc/GetDesignDsCommand.java
@@ -214,15 +214,15 @@ public class GetDesignDsCommand extends KCommand{
esbMap.put("xmzx", replaceAll);
esbMap.put("project", projectUid);
esbMap.put("wbsno", project.getStringProperty("zt2_WBSNo"));
- esbMap.put("path",pathList);
+ esbMap.put("path", pathList);
String jsonString = JSON.toJSONString(esbMap);
-
+ System.out.println("jsonString==>" + jsonString);
if(actionInfo.equals("BOM")) {
- WebApiUtil.httpSapRequest(values+"/connor/Clone/createBOM","POST",
- jsonString,1);
+ WebApiUtil.httpSapRequest(values + "/connor/Clone/createBOM", "POST",
+ jsonString, 1);
}else {
- WebApiUtil.httpSapRequest(values+"/connor/Clone/createDesignDateset","POST",
- jsonString,1);
+ WebApiUtil.httpSapRequest(values + "/connor/Clone/createDesignDateset", "POST",
+ jsonString, 1);
}
}else {
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/materialno/FactoryChooseDialog.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/materialno/FactoryChooseDialog.java
new file mode 100644
index 0000000..eff497f
--- /dev/null
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/materialno/FactoryChooseDialog.java
@@ -0,0 +1,115 @@
+package com.connor.chint.sap2.materialno;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.sql.ResultSet;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import com.connor.chint.sap2.util.ChintPreferenceUtil;
+import com.connor.chint.sap2.util.SqlUtil;
+import com.teamcenter.rac.aif.AbstractAIFApplication;
+import com.teamcenter.rac.aif.AbstractAIFDialog;
+import com.teamcenter.rac.kernel.TCSession;
+import com.teamcenter.rac.util.MessageBox;
+
+public class FactoryChooseDialog extends AbstractAIFDialog {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private boolean update;
+
+ public FactoryChooseDialog(AbstractAIFApplication app, TCSession session, String groupID) {
+ super(true);
+ try {
+ String[] database = ChintPreferenceUtil.getPreferences("database_tc", session);
+ if (SqlUtil.getTCDataConnection(database) == null) {
+ MessageBox.post("ݿʧ,ѡ", "", 2);
+ return;
+ }
+ String user = session.getUser().getUserId();
+ update = false;
+ String sql = "select \"factory\" from CHINT_MATERIAL_APPLY_RULE where \"userid\"='" + user + "'";
+ System.out.println("sql:\n" + sql);
+ ResultSet rs = SqlUtil.read(sql);
+ String defaultGroup = "";
+ if(rs.next()) {
+ defaultGroup = rs.getString(1);
+ update = true;
+ }
+ String[] applys = ChintPreferenceUtil.getPreferences("CHINT_MATERIAL_APPLY_LIST", session);
+ JComboBox j_Group = new JComboBox<>();
+ j_Group.setSize(new Dimension(150, 30));
+ j_Group.setPreferredSize(new Dimension(130, 30));
+ j_Group.addItem("");
+ for(String s : applys) {
+ j_Group.addItem(s);
+ }
+ j_Group.setSelectedItem(defaultGroup);
+
+ JButton okBtn = new JButton("ȷ");
+ okBtn.setSize(new Dimension(100, 30));
+ okBtn.setPreferredSize(new Dimension(90, 30));
+ okBtn.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ String groupID = j_Group.getSelectedItem().toString();
+ if(groupID.isEmpty()) {
+ MessageBox.post(FactoryChooseDialog.this, "ѡ֯", "", MessageBox.WARNING);
+ return;
+ }
+ String sql = "insert into CHINT_MATERIAL_APPLY_RULE values ('" + user + "','" + groupID + "')";
+ if(update)
+ sql = "update CHINT_MATERIAL_APPLY_RULE set \"factory\"='" + groupID + "' where \"userid\"='" + user + "'";
+ System.out.println("sql:\n" + sql);
+ SqlUtil.write(sql);
+ SqlUtil.freeAll();
+
+ groupID = groupID.substring(0, groupID.indexOf(":"));
+ System.out.println("groupID:" + groupID);
+ //TODO
+// new Thread(new MaterialNoDialog(app, session, groupID)).start();
+ dispose();
+ }
+ });
+ JButton cancelBtn = new JButton("ȡ");
+ cancelBtn.setSize(new Dimension(100, 30));
+ cancelBtn.setPreferredSize(new Dimension(90, 30));
+ cancelBtn.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ SqlUtil.freeAll();
+ dispose();
+ }
+ });
+ JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));
+ panel.add(new JLabel("ѡ֯"));
+ panel.add(j_Group);
+ JPanel btnPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
+ btnPanel.add(okBtn);
+ btnPanel.add(cancelBtn);
+
+ this.setPreferredSize(new Dimension(500, 300));
+ this.setMinimumSize(new Dimension(400, 200));
+ this.setLayout(new BorderLayout());
+ this.add(BorderLayout.CENTER, panel);
+ this.add(BorderLayout.SOUTH, btnPanel);
+ setDefaultLookAndFeelDecorated(true);
+ Dimension screen = getToolkit().getScreenSize();
+ setLocation((screen.width - getSize().width) / 2, (screen.height - getSize().height) / 2);
+ this.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ MessageBox.post("" + e, "", MessageBox.ERROR);
+ }
+ }
+}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/materialno/MaterialNoDialog.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/materialno/MaterialNoDialog.java
index 36a172e..a143fb9 100644
--- a/com.connor.chint.sap2/src/com/connor/chint/sap2/materialno/MaterialNoDialog.java
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/materialno/MaterialNoDialog.java
@@ -773,6 +773,34 @@ public class MaterialNoDialog extends AbstractAIFDialog {
data.element("GoodsUsed", "3");
break;
}
+ // if(true)
+ //TODO ֯ݣдݿ⣬ӿڣжǷϺݿ
+ System.out.println("ʼ");
+ TCComponentItemRevision rev = createMaterial(goodsName, unitCode, companyCode, spec, teRe, uom,
+ t_pmcp.getCode());
+ System.out.println("Ͻ" + rev);
+ uid = rev.getUid();
+ TXTUtil.writeTXT(txtPath, "[CODE=" + code + ";PUID[" + uid + "]");
+ Object params[] = new Object[15];
+ params[0] = code;
+ params[1] = uid;
+ params[2] = t_pmcp.getCode();
+ params[3] = goodsCode;
+ params[4] = goodsName;
+ params[5] = unitCode;
+ params[6] = companyCode;
+ params[7] = bpNo;
+ params[8] = spec;
+ params[9] = teRe;
+ params[10] = state;
+ params[11] = user;
+ params[12] = time;
+ params[13] = condition;
+ params[14] = "";
+ checkData(params[0], params[1]);
+ System.out.println("ִеsql:" + sql + "\n" + Arrays.toString(params));
+ SqlUtil.write(sql, params);
+
JSONArray datas = new JSONArray();
datas.add(data);
@@ -789,36 +817,18 @@ public class MaterialNoDialog extends AbstractAIFDialog {
TXTUtil.writeTXT(txtPath, "Json:" + obj.toString());
TXTUtil.writeTXT(txtPath, "ؽ:" + req);
- // if(true)
- if (req.indexOf(state1) != -1) {
+ if (req.indexOf(state1) == -1) {
+ System.out.println("ɾ" + rev.getItem());
+ rev.getItem().delete();
+ //rev.delete();
+ String delete = "delete from chint_material where \"Code\"='" + code + "'";
+ SqlUtil.delete(delete);
+ System.out.println("ɾ¼" + delete);
+ MessageBox.post("ʧܣʾ:" + req, "", MessageBox.INFORMATION);
+ }else {
System.out.println("¼¼");
// TCComponentItemRevision partRev = null;
- System.out.println("ʼ");
- TCComponentItemRevision rev = createMaterial(goodsName, unitCode, companyCode, spec, teRe, uom,
- t_pmcp.getCode());
- uid = rev.getUid();
- TXTUtil.writeTXT(txtPath, "[CODE=" + code + ";PUID[" + uid + "]");
- System.out.println("Ͻ");
- Object params[] = new Object[15];
- params[0] = code;
- params[1] = uid;
- params[2] = t_pmcp.getCode();
- params[3] = goodsCode;
- params[4] = goodsName;
- params[5] = unitCode;
- params[6] = companyCode;
- params[7] = bpNo;
- params[8] = spec;
- params[9] = teRe;
- params[10] = state;
- params[11] = user;
- params[12] = time;
- params[13] = condition;
- params[14] = "";
- //TODO
- checkData(params[0], params[1]);
- System.out.println("ִеsql:" + sql + "\n" + Arrays.toString(params));
- SqlUtil.write(sql, params);
+
checkData(params[0], params[1]);
newStuff.add("contents", rev.getItem());
if (!KUtil.isEmpty(design_ID)) {
@@ -927,10 +937,6 @@ public class MaterialNoDialog extends AbstractAIFDialog {
if(!userId.equals("")) {
sendMsg(build.toString(),userId);
}
- } else {
- MessageBox.post("ʧܣʾ:" + req, "", MessageBox.INFORMATION);
- System.out.println("ɾ¼");
- System.out.println("ɾ¼");
}
}
@@ -1153,6 +1159,34 @@ public class MaterialNoDialog extends AbstractAIFDialog {
break;
}
+ //TODO ֯ݣдݿ⣬ӿڣжǷϺݿ
+ TCComponentItemRevision parent = null;
+ System.out.println("ʼ");
+ parent = createMaterial(goodsName, unitCode, companyCode, spec, teRe, uom, t_pmcp.getCode());
+ newStuff.add("contents", parent.getItem());
+ uid = parent.getUid();
+ TXTUtil.writeTXT(txtPath, "[CODE=" + code + ";PUID[" + uid + "]");
+ System.out.println("Ͻ");
+ Object params[] = new Object[15];
+ params[0] = code;
+ params[1] = uid;
+ params[2] = t_pmcp.getCode();
+ params[3] = goodsCode;
+ params[4] = goodsName;
+ params[5] = unitCode;
+ params[6] = companyCode;
+ params[7] = bpNo;
+ params[8] = spec;
+ params[9] = teRe;
+ params[10] = state;
+ params[11] = user;
+ params[12] = time;
+ params[13] = condition;
+ params[14] = "";
+ System.out.println("ִеsql:" + sql);
+ SqlUtil.write(sql, params);
+ System.out.println("½");
+
JSONArray datas = new JSONArray();
datas.add(data);
System.out.println("feature:" + feature);
@@ -1169,41 +1203,18 @@ public class MaterialNoDialog extends AbstractAIFDialog {
// String sql2 = "delete from chint_material where \"Code\"=?";
String state1 = "\"State\":\"1\"";
// String state2 = "\"State\":\"-1\"";
- TCComponentItemRevision parent = null;
- TCComponentItemRevision child = null;
TXTUtil.writeTXT(txtPath, "Json:" + obj.toString());
TXTUtil.writeTXT(txtPath, "ؽ:" + req);
if (req.indexOf(state1) != -1) {
System.out.println("¼¼");
// TCComponentItemRevision partRev = null;
- System.out.println("ʼ");
- parent = createMaterial(goodsName, unitCode, companyCode, spec, teRe, uom, t_pmcp.getCode());
- newStuff.add("contents", parent.getItem());
- uid = parent.getUid();
- TXTUtil.writeTXT(txtPath, "[CODE=" + code + ";PUID[" + uid + "]");
- System.out.println("Ͻ");
- Object params[] = new Object[15];
- params[0] = code;
- params[1] = uid;
- params[2] = t_pmcp.getCode();
- params[3] = goodsCode;
- params[4] = goodsName;
- params[5] = unitCode;
- params[6] = companyCode;
- params[7] = bpNo;
- params[8] = spec;
- params[9] = teRe;
- params[10] = state;
- params[11] = user;
- params[12] = time;
- params[13] = condition;
- params[14] = "";
- System.out.println("ִеsql:" + sql);
- SqlUtil.write(sql, params);
- System.out.println("½");
} else {
- System.out.println("ɾ¼");
- System.out.println("ɾ¼");
+ System.out.println("ɾ¼" + parent.getItem());
+ parent.getItem().delete();
+// parent.delete();
+ String delete = "delete from chint_material where \"Code\"='" + code + "'";
+ SqlUtil.delete(delete);
+ System.out.println("ɾ¼" + delete);
MessageBox.post("ʧܣʾ:" + req, "", MessageBox.INFORMATION);
return;
@@ -1233,6 +1244,33 @@ public class MaterialNoDialog extends AbstractAIFDialog {
datas2.add(data2);
code = KUtil.getCode();
+ //TODO ֯ݣдݿ⣬ӿڣжǷϺݿ
+ TCComponentItemRevision child = null;
+ System.out.println("ʼ");
+ child = createMaterial(goodsName, unitCode, companyCode, spec, teRe2, uom, t_pmcp.getCode());
+ newStuff.add("contents", child.getItem());
+ uid = child.getUid();
+ TXTUtil.writeTXT(txtPath, "[CODE=" + code + ";PUID[" + uid + "]");
+ System.out.println("Ͻ");
+ params = new Object[15];
+ params[0] = code;
+ params[1] = uid;
+ params[2] = t_pmcp.getCode();
+ params[3] = goodsCode;
+ params[4] = goodsName;
+ params[5] = unitCode;
+ params[6] = companyCode;
+ params[7] = bpNo;
+ params[8] = spec;
+ params[9] = teRe2;
+ params[10] = state;
+ params[11] = user;
+ params[12] = time;
+ params[13] = condition;
+ params[14] = "";
+ System.out.println("ִеsql:" + sql);
+ SqlUtil.write(sql, params);
+
JSONObject obj2 = new JSONObject();
obj2.element("Code", code);
obj2.element("Data", datas2);
@@ -1245,33 +1283,15 @@ public class MaterialNoDialog extends AbstractAIFDialog {
if (req.indexOf(state1) != -1) {
System.out.println("¼¼");
// TCComponentItemRevision partRev = null;
- System.out.println("ʼ");
- child = createMaterial(goodsName, unitCode, companyCode, spec, teRe2, uom, t_pmcp.getCode());
- newStuff.add("contents", child.getItem());
- uid = child.getUid();
- TXTUtil.writeTXT(txtPath, "[CODE=" + code + ";PUID[" + uid + "]");
- System.out.println("Ͻ");
- Object params[] = new Object[15];
- params[0] = code;
- params[1] = uid;
- params[2] = t_pmcp.getCode();
- params[3] = goodsCode;
- params[4] = goodsName;
- params[5] = unitCode;
- params[6] = companyCode;
- params[7] = bpNo;
- params[8] = spec;
- params[9] = teRe2;
- params[10] = state;
- params[11] = user;
- params[12] = time;
- params[13] = condition;
- params[14] = "";
- System.out.println("ִеsql:" + sql);
- SqlUtil.write(sql, params);
System.out.println("½");
} else {
+ System.out.println("ɾ¼" + child.getItem());
+ child.getItem().delete();
+// child.delete();
+ String delete = "delete from chint_material where \"Code\"='" + code + "'";
+ SqlUtil.delete(delete);
+ System.out.println("ɾ¼" + delete);
MessageBox.post("Ӽʧܣʾ:" + req, "", MessageBox.INFORMATION);
return;
}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/proc_zy/CreateProcZYDialogController.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/proc_zy/CreateProcZYDialogController.java
index 1e48087..51cfdae 100644
--- a/com.connor.chint.sap2/src/com/connor/chint/sap2/proc_zy/CreateProcZYDialogController.java
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/proc_zy/CreateProcZYDialogController.java
@@ -23,6 +23,7 @@ import com.connor.chint.sap2.util.BomToSapUtil;
import com.connor.chint.sap2.util.ChintPreferenceUtil;
import com.connor.chint.sap2.util.KUtil;
import com.connor.chint.sap2.util.ProgressBar;
+import com.connor.chint.sap2.util.SAPUtil;
import com.connor.chint.sap2.util.SqlUtil;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
@@ -51,7 +52,7 @@ public class CreateProcZYDialogController {
private String group;
// private TCComponentGroup login_group = null;
- private Map mepMap = new HashMap<>();
+ private Map mepMap = new HashMap<>();
public CreateProcZYDialogController(CreateProcZYDialog createProcBYDialog, AbstractAIFApplication app) {
this.dialog = createProcBYDialog;
@@ -196,7 +197,15 @@ public class CreateProcZYDialogController {
System.out.println("[ZT2_ClassificationNo=" + zt2_ClassificationCode + "]");
noList.add(zt2_ClassificationCode);
// ѯƷ
- TCComponentItemRevision cpgy = (TCComponentItemRevision) getMeproces(comp.getUid(), session);
+ String uid = comp.getUid();
+ TCComponentItemRevision cpgy;// = (TCComponentItemRevision) getMeproces(comp.getUid(), session);
+ if(mepMap.containsKey(uid))
+ cpgy = mepMap.get(uid);
+ else {
+ cpgy = (TCComponentItemRevision) SAPUtil.getMeprocesYh(uid, group, session);
+ mepMap.put(uid, cpgy);
+ }
+
BYProcBean bean = new BYProcBean(procBeanList.size() + 1, comp, bzgys, cpgy, tlgx, topLine, cptlgx, parentRev);
zt2_ClassificationCode = comp.getProperty("zt2_ClassificationCode");
@@ -524,7 +533,15 @@ public class CreateProcZYDialogController {
}
}
}*/
- TCComponent meop = getMeproces(parent.getItemRevision().getUid(), session);
+// TCComponent meop = getMeproces(parent.getItemRevision().getUid(), session);
+ String uid = parent.getItemRevision().getUid();
+ TCComponentItemRevision meop;// = (TCComponentItemRevision) getMeproces(comp.getUid(), session);
+ if(mepMap.containsKey(uid))
+ meop = mepMap.get(uid);
+ else {
+ meop = (TCComponentItemRevision) SAPUtil.getMeprocesYh(uid, group, session);
+ mepMap.put(uid, meop);
+ }
if(meop != null) {
flag = true;
if(!lists.contains(meop) && (meop instanceof TCComponentItemRevision))
@@ -534,39 +551,6 @@ public class CreateProcZYDialogController {
getGX(parent, lists);
}
}
-
- private TCComponent getMeproces(String uid, TCSession session) throws Exception {
- //TODO getMeproces
- if(mepMap.containsKey(uid)) {
- return mepMap.get(uid);
- }
-// String sql = SAPUtil.sqlRef.replace("\\?", "'" + uid + "'");
- String sql = "select P.puid as supItemUID,V.puid as supRevUID,P.pitem_id as supItemID,ITRO.Pobject_Name as supItemName,"
- + "V.Pitem_Revision_Id as supRevID,cP.pitem_id as subItemID,cV.puid as subRevUID,RT.partifactname as 汾汾ϵ "
- + "from PWORKSPACEOBJECT ITRO,PIMANRELATION R,PIMANTYPE RT,PITEMREVISION V,PITEM P,PITEMREVISION cV,PITEM cP,PWORKSPACEOBJECT cITRO,PPOM_APPLICATION_OBJECT g "
- + "where g.puid=V.puid and V.Puid = R.Rprimary_Objectu and r.rrelation_typeu = RT.puid and P.Puid = V.Ritems_Tagu and ITRO.Puid = V.Puid "
- + "and R.Rsecondary_Objectu = cV.Puid and cP.Puid = cV.Ritems_Tagu and cV.Puid = cITRO.Puid and ITRO.Pactive_Seq<>0 "
- + "and cITRO.Pactive_Seq<>0 and RT.partifactname='IMAN_METarget' and g.ROWNING_GROUPU='" + group + "' and cV.PUID = '" + uid + "'";
- try {
- ResultSet read = SqlUtil.read(sql);//SAPUtil.sqlRef, new Object[] { uid }
-// boolean next = read.next();
- while (read.next()) {
- String string = read.getString("supRevUID");
- TCComponent mpComp = session.stringToComponent(string);
-// TCComponent mpComp = SAPUtil.getSameGroupProcYH(meops, session);
- if(mpComp != null) {
- mepMap.put(uid, mpComp);
-// SqlUtil.free();
- return mpComp;
- }
- }
-// SqlUtil.free();
- }catch(Exception e) {
- System.out.println("sql==>" + sql);
- e.printStackTrace();
- }
- return null;
- }
public void assignProcess(ProgressBar pb) throws Exception {
if (this.procBeanList.size() == 0) {
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/sap_by/SAPZZDialog.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/sap_by/SAPZZDialog.java
index a36c96e..151cf3d 100644
--- a/com.connor.chint.sap2/src/com/connor/chint/sap2/sap_by/SAPZZDialog.java
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/sap_by/SAPZZDialog.java
@@ -18,8 +18,6 @@ import javax.swing.table.TableColumnModel;
import com.connor.chint.sap2.create_proc.CreateProcBean;
import com.connor.chint.sap2.create_proc.CreateProcController;
-import com.connor.chint.sap2.sap_zy.PartBean;
-import com.connor.chint.sap2.sap_zy.SAPZYDialogzt;
import com.connor.chint.sap2.util.ConfirmDialogUtil;
import com.connor.chint.sap2.util.KUtil;
import com.connor.chint.sap2.util.MyProgressBarCompent;
@@ -42,9 +40,14 @@ import plm.xi.com.chintelectric.SI_PUSH_BOM_PLM_OUT_SYNServiceLocator;
public class SAPZZDialog extends AbstractAIFDialog {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
private SAPZZDialogController controller;
private JButton b_check;
private JButton b_bom;
+ private JButton b_qr3;// 첽;
protected DefaultTableModel tm_part;
protected JTable t_part;
@@ -54,7 +57,7 @@ public class SAPZZDialog extends AbstractAIFDialog {
public static final String[] HEADER = new String[] { "", "", "", "ϱ", "װͼ", "BOMȷ״̬", "ȷ", "ȷʱ" };
public static final int[] HEADERWIDTH = new int[] { 50, 60, 120, 180, 180, 100, 100, 100 };
- private AbstractAIFApplication app;
+// private AbstractAIFApplication app;
private TCSession session;
protected JButton pushBOM_btn; // BOMȷ
protected String materialCode = "";
@@ -62,7 +65,7 @@ public class SAPZZDialog extends AbstractAIFDialog {
public SAPZZDialog(AbstractAIFApplication app) {
super(false);
this.controller = new SAPZZDialogController(this, app);
- this.app = app;
+// this.app = app;
this.session = (TCSession) app.getSession();
}
@@ -140,6 +143,7 @@ public class SAPZZDialog extends AbstractAIFDialog {
b_bom.setEnabled(b);
t_part.setEnabled(b);
pushBOM_btn.setEnabled(b);
+ b_qr3.setEnabled(b);
}
private void addListeners() {
@@ -273,12 +277,34 @@ public class SAPZZDialog extends AbstractAIFDialog {
}
});
+ b_qr3.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+// String selectedItem = (String) comb.getSelectedItem();
+ try {
+ controller.sendToSapYHAsyn("ƷBOM", false);
+ } catch (Exception e) {
+ // Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ });
}
private JPanel getTablePanel() {
JPanel panel = new JPanel(new BorderLayout());
tm_part = new DefaultTableModel();
t_part = new JTable(tm_part) {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
@Override
public boolean isCellEditable(int row, int column) { // ѡУУÿɱ༭
if (column == 0)
@@ -314,8 +340,11 @@ public class SAPZZDialog extends AbstractAIFDialog {
b_check = new JButton("");
b_bom = new JButton("BOM");
pushBOM_btn = new JButton("BOMȷ");
+ b_qr3 = new JButton("첽");
panel.add(b_check);
panel.add(b_bom);
+ //TODO
+// panel.add(b_qr3);
// panel.add(pushBOM_btn);
// ѹBOMȷϵ
JPanel panelt = new JPanel(new BorderLayout());
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/sap_by/SAPZZDialogController.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/sap_by/SAPZZDialogController.java
index 96e0dde..5defea0 100644
--- a/com.connor.chint.sap2/src/com/connor/chint/sap2/sap_by/SAPZZDialogController.java
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/sap_by/SAPZZDialogController.java
@@ -1,15 +1,21 @@
package com.connor.chint.sap2.sap_by;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import com.alibaba.fastjson2.JSONArray;
import com.connor.chint.sap2.sap.SAPPushBOMBean;
import com.connor.chint.sap2.util.KUtil;
import com.connor.chint.sap2.util.MyProgressBarCompent;
import com.connor.chint.sap2.util.SAPMessageUtil;
import com.connor.chint.sap2.util.SAPUtil;
+import com.connor.chint.sap2.util.SqlUtil;
import com.connor.chint.sap2.util.TXTUtil;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
@@ -191,6 +197,7 @@ public class SAPZZDialogController {
dialog.t_part.repaint();
}
+ @SuppressWarnings("deprecation")
public void sendToSap() throws Exception {
List selectedParts = getSelectedParts();
int len = selectedParts == null ? 0 : selectedParts.size();
@@ -281,5 +288,83 @@ public class SAPZZDialogController {
}
return selectedParts;
}
+ // ȡBOM
+ private int getCode() throws SQLException {
+ String sql = "select Tab_SendBom_Sequence.nextval as sid from dual";
+ ResultSet rs = SqlUtil.read(sql);
+// Object objs[] = new Object[1];
+ int code = 0;
+ if (rs.next()) {
+ code = rs.getInt(1);
+ System.out.println("code:" + code);
+ }
+ SqlUtil.free();
+ return code;
+ }
+ // ڶŻ첽
+ protected void sendToSapYHAsyn(String ban, boolean isCheckProduct) throws Exception {
+ List selectedParts = getSelectedParts();
+ MyProgressBarCompent my = new MyProgressBarCompent("", "ܵBOMSAP......");
+ try {
+ String strs[] = session.getPreferenceService().getStringValues("database_tc");
+ if (SqlUtil.getTCDataConnection(strs) == null) {
+ MessageBox.post("ݿʧ,ѡ", "", 2);
+ return;
+ }
+
+ String groupID2 = SAPUtil.getGroupID();
+ String userId = session.getUser().getUserId();
+ String userName = session.getUser().getProperty("user_name");
+ String dataTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+ String zt2_WBSNo = project.getStringProperty("zt2_WBSNo");
+ String object_name = project.getStringProperty("object_name");
+ int code = getCode();
+
+ JSONArray array = new JSONArray();
+ StringBuilder uids = new StringBuilder("");
+ for (int i = 0; i < selectedParts.size(); i++) {
+ String uid = selectedParts.get(i).part.getUid();
+ array.add(uid);
+ uids.append(uid).append(":");
+ }
+// obj.put("uid", array);
+// OkHttpClient client = new OkHttpClient();
+ String substring = uids.substring(0, uids.length() - 1);
+ // ֶ ĿUIDִˣijɶʱִУýӿ
+ String serverHostname = session.getServerHostname();
+ System.out.println("serverHostname===>" + serverHostname);
+ String sql = "insert into CHINT_BOM_TO_SAP_SUM (code,factory,\"USER\",starttime,wbsno,projectno,taskstauts"
+ + ",plmresult,transfer,keymsg,sapresult,PROJECTUID,SERVERHOST,USERID) values "
+ + "(?,?,?,to_date(?,'yyyy-mm-ddhh24:mi:ss')" + ",?,?,'ȴ֯','δ',?,?,'δ',?,?,?)"; // to_date(?,'yyyy-mm-ddhh24:mi:ss')
+ SqlUtil.write(sql, new String[] { code + "", groupID2, userName, dataTime, zt2_WBSNo, object_name,
+ ban.replaceAll("", ""), substring, project.getUid(), serverHostname, userId });
+// MediaType mediaType = MediaType.parse("application/json");
+// RequestBody body = RequestBody.create(mediaType, obj.toString());
+//// String preference = ChintPreferenceUtil.getPreference("CHINT_PIUrl", session);
+// Request request = new Request.Builder().url("http://10.128.10.203:8081/plm/sendBomXB") // http://10.128.10.203:8081/plm/sendBomXB
+// .method("POST", body)
+// // .addHeader("Cookie", "")
+//// .addHeader("Authorization", "Bearer "+token)
+// // .addHeader("Connection", "keep-alive")
+// .addHeader("Content-Type", "application/json").build();
+// Response response = client.newCall(request).execute();
+// // response.body().byteStream()
+// // System.out.println(response.body().string());
+// String string = response.body().string();
+// System.out.println("string==>" + string);
+// JSONObject parseObject = JSON.parseObject(string);
+ //
+// my.setVisible(false);
+// System.out.println("parseObject==>" + parseObject);
+ MessageBox.post(dialog, "Ѽ¼ȴ֪ͨ.", "", MessageBox.INFORMATION);
+ } catch (Exception e) {
+ MessageBox.post(dialog, "" + e.getMessage(), "", MessageBox.ERROR);
+ e.printStackTrace();
+ my.setVisible(false);
+ } finally {
+ SqlUtil.freeAll();
+ my.setVisible(false);
+ }
+ }
}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/util/SAPUtil.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/util/SAPUtil.java
index 9830b58..e82aeef 100644
--- a/com.connor.chint.sap2/src/com/connor/chint/sap2/util/SAPUtil.java
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/util/SAPUtil.java
@@ -5449,7 +5449,7 @@ public class SAPUtil {
}
/*
- * TODO ѹش
+ * ѹش
*/
public static void recurSAP2(TCComponentBOMLine line, TCComponentItemRevision rev, TCComponentItemRevision partRev,
boolean isStruct, TCSession session, String groupName, String now, String txtPath,
@@ -6505,5 +6505,56 @@ public class SAPUtil {
}
return null;
}
-
+ /**
+ * ȡͬ鹤գŻ
+ *
+ * @param uid Դ
+ * @param group
+ * @param session session
+ * @return ĸ
+ * @throws Exception
+ */
+ public static TCComponent getMeprocesYh(String uid, String group, TCSession session) throws Exception {
+// String sql = SAPUtil.sqlRef.replace("\\?", "'" + uid + "'");
+ String sql = "select P.puid as supItemUID,V.puid as supRevUID,P.pitem_id as supItemID,ITRO.Pobject_Name as supItemName,"
+ + "V.Pitem_Revision_Id as supRevID,cP.pitem_id as subItemID,cV.puid as subRevUID,RT.partifactname as 汾汾ϵ "
+ + "from PWORKSPACEOBJECT ITRO,PIMANRELATION R,PIMANTYPE RT,PITEMREVISION V,PITEM P,PITEMREVISION cV,PITEM cP,PWORKSPACEOBJECT cITRO,PPOM_APPLICATION_OBJECT g "
+ + "where g.puid=V.puid and V.Puid = R.Rprimary_Objectu and r.rrelation_typeu = RT.puid and P.Puid = V.Ritems_Tagu and ITRO.Puid = V.Puid "
+ + "and R.Rsecondary_Objectu = cV.Puid and cP.Puid = cV.Ritems_Tagu and cV.Puid = cITRO.Puid and ITRO.Pactive_Seq<>0 "
+ + "and cITRO.Pactive_Seq<>0 and RT.partifactname='IMAN_METarget' and g.ROWNING_GROUPU='" + group + "' and cV.PUID = '" + uid + "'";
+ try {
+ ResultSet read = SqlUtil.read(sql);//SAPUtil.sqlRef, new Object[] { uid }
+// boolean next = read.next();
+ while (read.next()) {
+ String string = read.getString("supRevUID");
+ TCComponent mpComp = session.stringToComponent(string);
+// TCComponent mpComp = SAPUtil.getSameGroupProcYH(meops, session);
+ if(mpComp != null) {
+// mepMap.put(uid, mpComp);
+// SqlUtil.free();
+ return mpComp;
+ }
+ }
+// SqlUtil.free();
+ }catch(Exception e) {
+ System.out.println("sql==>" + sql);
+ e.printStackTrace();
+ }
+ return null;
+ }
+ /**
+ * жǷָ
+ *
+ * @param array Դ
+ * @param str
+ * @return ĸ
+ */
+ public static boolean contains(Object[] array, Object str) {
+ for(Object s : array) {
+// System.out.println("contains:"+s+"="+str);
+ if(s.equals(str))
+ return true;
+ }
+ return false;
+ }
}
diff --git a/com.connor.chint.sap2/src/com/connor/chint/sap2/util/SqlUtil.java b/com.connor.chint.sap2/src/com/connor/chint/sap2/util/SqlUtil.java
index bae8a63..d0373d7 100644
--- a/com.connor.chint.sap2/src/com/connor/chint/sap2/util/SqlUtil.java
+++ b/com.connor.chint.sap2/src/com/connor/chint/sap2/util/SqlUtil.java
@@ -872,4 +872,46 @@ public class SqlUtil {
}
return connection;
}
+
+ public static Connection SRMGetTCDataConnection(String[] prefs) {
+// System.out.println("getTCDataConnection(String[] prefs)");
+ String driver = reg.getString("SQL.TCDATA.DRIVER");
+ String url = reg.getString("SQL.TCDATA.URL");
+ String user = reg.getString("SQL.TCDATA.USER");
+ String password = reg.getString("SQL.TCDATA.PASSWORD");
+ if (prefs != null) {
+ url = "jdbc:oracle:thin:@" + prefs[5] + ":" + prefs[3] + ":" + prefs[4];
+ user = prefs[1];
+ password = prefs[2];
+ }
+ // System.out.println("ݿϢ");
+ // System.out.println("DRIVER: " + driver);
+ // System.out.println("URL: " + url);
+ // System.out.println("USER: " + user);
+ if (connection != null) {
+ try {
+ connection.close();
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ connection = null;
+ }
+ try {
+ //
+ Class.forName(driver);
+ // 1.getConnection()MySQLݿ⣡
+ connection = DriverManager.getConnection(url, user, password);
+ connection.setAutoCommit(false);
+ } catch (ClassNotFoundException e) {
+ // ݿ쳣
+ System.out.println("δҵݿ");
+ e.printStackTrace();
+ } catch (SQLException e) {
+ // ݿʧ쳣
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return connection;
+ }
}