Compare commits

...

41 Commits
ldy ... main

Author SHA1 Message Date
李冬阳 9900f547db 20250603代码上传
2 weeks ago
李冬阳 4de2e69a26 1ZDB300000P-逻辑修改前备份
2 months ago
李建辉 08b1c7d229 20241223——1
6 months ago
李建辉 06ce605cc3 20241223
6 months ago
李冬阳 64c15090ce Merge pull request '创建编辑更改通知单双击输入弹出单独大的输入框' (#32) from ldy into main
6 months ago
李冬阳 8142db5be0 Merge pull request '创建编辑更改通知单输入字段超出限制报错逻辑调整' (#31) from ldy into main
7 months ago
李冬阳 9806e11b62 Merge pull request '创建编辑更改通知单修改excel文件名称避免重复' (#30) from ldy into main
7 months ago
李冬阳 7455e2334d Merge pull request '更改通知单中引用更改申请单时,影响分析人员信息需要特殊处理。1、将:更改为;存储在数据库里 2.去掉数据库中多余的;' (#29) from ldy into main
7 months ago
李冬阳 5abec9e98d Merge pull request '创建框架BOM云派接口报错逻辑优化' (#28) from ldy into main
8 months ago
李建辉 0b5e29dae1 commit
8 months ago
李冬阳 91c8cadc6e Merge pull request '1、创建编辑更改通知单下拉框去重' (#27) from ldy into main
8 months ago
李冬阳 234f4aeed1 Merge pull request '武汉创建框架BOM无法读取首选项分类信息问题修改' (#26) from ldy into main
9 months ago
李冬阳 45e3a05384 Merge pull request '1、更改单中的更改类型默认值改为“临时更改”特性等级默认为“C”' (#25) from ldy into main
9 months ago
李冬阳 cc4da5d194 Merge pull request '1、变更单创建/编辑时,填写了名字,没点指派,点到其他地方,提示进行指派。' (#24) from ldy into main
10 months ago
李冬阳 9aeac26390 Merge pull request '创建/编辑更改通知单功能增加选文件夹进行创建的逻辑' (#23) from ldy into main
10 months ago
李建辉 05f255483b RDM项目创建
10 months ago
李建辉 b897f349f2 20240808更新自制外购属性
10 months ago
李冬阳 e3ee0e25b6 Merge pull request '创建/编辑更改通知单如果受影响分析的地方没有勾一个是,不允许点击指派人员,指派人员按钮为灰色,人员填写也不让写,如果部门下都改了否,那么也清空掉后面的人员信息' (#22) from ldy into main
10 months ago
李冬阳 dd24df7010 Merge pull request '武汉生成更改差异文件功能报错修改' (#21) from ldy into main
11 months ago
李冬阳 eaaeca590f Merge pull request '创建/编辑更改通知单 影响分析,指派,数据库写邮箱前缀的修改点' (#20) from ldy into main
11 months ago
李建辉 aabd198422 贴心
11 months ago
李建辉 7f030fa8e3 铁心
11 months ago
李冬阳 736c63cb9d Merge pull request '1、变更界面,影响分析责任人,清空人员后,点击指派,增加弹框:请输入用户名' (#19) from ldy into main
11 months ago
李建辉 2811ff7d92 装箱集成和工装需求
11 months ago
李建辉 92113227ea 装箱集成和工装需求
11 months ago
李冬阳 be67b3d060 Merge pull request '创建/编辑更改通知单1、增加时间的必填检查2、OA获取用户增加多人选择界面' (#18) from ldy into main
12 months ago
李建辉 46057e6823 20240704装箱调整
12 months ago
李建辉 dc52c69198 工装需求
12 months ago
李冬阳 bbcac57a9a Merge pull request '工艺路线指派功能查找P物料顶层逻辑修改' (#17) from ldy into main
1 year ago
李建辉 e1e43dd81e 工装需求添加分页,制造部过滤
1 year ago
李冬阳 14b2c8ef95 Merge pull request '1、校对表填写功能增加null处理逻辑' (#16) from ldy into main
1 year ago
李冬阳 7070568d24 Merge pull request '武汉异步增加根据图纸指派批次号的逻辑' (#15) from ldy into main
1 year ago
李冬阳 b173978853 Merge pull request '1、生成更改差异文件增加过滤类型及类名修改' (#14) from ldy into main
1 year ago
李建辉 4e96c9aa6e 装箱集成增加:取BOMline属性备注及图纸版本属性“图样代号”:ZT2_Remark和zt2_DrawingNo(中间用“\”隔开,只有单值时不用加“\”)
1 year ago
李冬阳 ab732fedc9 Merge pull request '创建/编辑更改通知单界面调整' (#13) from ldy into main
1 year ago
李冬阳 4a58aa0d72 Merge pull request '框架创建BUG修改' (#12) from ldy into main
1 year ago
李建辉 f5cf64fdaa Merge pull request 'ljh' (#11) from ljh into main
1 year ago
李建辉 aa09e3de11 装箱集成日志
1 year ago
李冬阳 0ac1bbb8ed Merge pull request '创建更改通知单问题修改' (#10) from ldy into main
1 year ago
李建辉 95425d0717 装箱集成增加特殊数据逻辑和飞书通知
1 year ago
李建辉 b8f1a6ce74 装箱集成修改流水码逻辑
1 year ago

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>chint_wuhan</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>

@ -48,7 +48,6 @@ Require-Bundle: org.eclipse.ui,
com.teamcenter.rac.util;bundle-version="11000.2.0", com.teamcenter.rac.util;bundle-version="11000.2.0",
org.eclipse.osgi.services;bundle-version="3.3.100", org.eclipse.osgi.services;bundle-version="3.3.100",
TcSoaCaeRac;bundle-version="11000.2.0", TcSoaCaeRac;bundle-version="11000.2.0",
com.teamcenter.rac.project;bundle-version="11000.2.0",
org.apache.poi.39;bundle-version="3.9.0" org.apache.poi.39;bundle-version="3.9.0"
Automatic-Module-Name: com.connor.chint.yunpi Automatic-Module-Name: com.connor.chint.yunpi
Bundle-RequiredExecutionEnvironment: JavaSE-1.8, Bundle-RequiredExecutionEnvironment: JavaSE-1.8,

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import tornadofx.control.*?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<StackPane fx:id="stackPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.chint.plm.SearchSapResult.DetailsController">
<children>
<GridPane fx:id="girdPane">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="100.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<FlowPane fx:id="flowPane" alignment="TOP_CENTER" prefHeight="200.0" prefWidth="200.0" style="-fx-padding: 5;">
<children>
<CheckBox fx:id="cb_errBtn" mnemonicParsing="false" text="仅显示错误数据" />
</children>
</FlowPane>
<ScrollPane fx:id="scrollPane" prefHeight="1200.0" prefWidth="1200.0" style="-fx-padding: 5;" GridPane.rowIndex="1">
<content>
<TableView fx:id="tableView" prefHeight="660.0" prefWidth="1180.0" style="-fx-faint-focus-color: transparent;">
<columns>
<TableColumn fx:id="tc_xh" prefWidth="75.0" text="序号" />
<TableColumn fx:id="tc_batch" prefWidth="75.0" text="批次号" />
<TableColumn fx:id="tc_material" prefWidth="162.0" text="父物料编码" />
<TableColumn fx:id="tc_wbs" minWidth="0.0" prefWidth="127.0" text="WBS号" />
<TableColumn fx:id="tc_SapResult" minWidth="0.0" prefWidth="99.0" text="SAP处理结果" />
<TableColumn fx:id="tc_msg" prefWidth="126.0" text="结果内容" />
<TableColumn fx:id="tc_cDate" prefWidth="114.0" text="BOM创建日期" />
<TableColumn fx:id="tc_cTime" prefWidth="110.0" text="BOM创建时间" />
<TableColumn fx:id="tc_returnDate" prefWidth="110.0" text="BOM同步日期" />
<TableColumn fx:id="tc_returnTime" prefWidth="104.0" text="BOM同步时间" />
<TableColumn fx:id="tc_plm" prefWidth="82.0" text="PLM状态" />
</columns>
</TableView>
</content>
</ScrollPane>
<BorderPane prefHeight="100.0" prefWidth="200.0" style="-fx-padding: 10;" GridPane.rowIndex="2">
<left>
<FlowPane hgap="15.0" prefHeight="140.0" prefWidth="552.0" style="-fx-padding: 0;" BorderPane.alignment="CENTER">
<children>
<Button fx:id="bt_first" mnemonicParsing="false" onAction="#firstAction" prefHeight="30.0" prefWidth="80.0" text="首页" />
<Button fx:id="bt_last" mnemonicParsing="false" onAction="#lastAction" prefHeight="30.0" prefWidth="80.0" text="上一页" />
<Button fx:id="bt_next" mnemonicParsing="false" onAction="#nextAction" prefWidth="80.0" text="下一页" />
<Button fx:id="bt_tail" mnemonicParsing="false" onAction="#tailAction" prefWidth="80.0" text="尾页" />
<Button fx:id="bt_all" mnemonicParsing="false" onAction="#allAction" text="本页全部加载" />
</children>
<BorderPane.margin>
<Insets bottom="5.0" left="10.0" right="10.0" top="5.0" />
</BorderPane.margin>
<padding>
<Insets left="10.0" right="10.0" />
</padding>
</FlowPane>
</left>
<right>
<FlowPane alignment="TOP_CENTER" prefHeight="140.0" prefWidth="589.0" BorderPane.alignment="CENTER">
<children>
<TextField fx:id="pageNumTxt" alignment="TOP_RIGHT" prefHeight="30.0" prefWidth="154.0" text="1" />
<Label fx:id="lb_page" prefWidth="80.0" text="/" />
<Button mnemonicParsing="false" onAction="#outputAction" text="结果导出" />
</children>
<BorderPane.margin>
<Insets bottom="5.0" left="10.0" right="10.0" top="5.0" />
</BorderPane.margin>
</FlowPane>
</right>
</BorderPane>
</children>
</GridPane>
</children>
</StackPane>

@ -0,0 +1,204 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import tornadofx.control.*?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<StackPane fx:id="stackPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="1600.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.chint.plm.SearchSapResult.SearchSapController">
<children>
<ScrollPane fx:id="scrollPane" prefHeight="200.0">
<content>
<BorderPane fx:id="topBorder" prefHeight="200.0" prefWidth="200.0">
<top>
<TitledPane fx:id="tp_sxtj" prefHeight="650.0" text="筛选条件" BorderPane.alignment="CENTER">
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="10.0" />
</padding>
<content>
<BorderPane prefHeight="200.0" prefWidth="200.0">
<top>
<TitledPane fx:id="rwtjPane" prefHeight="300.0" prefWidth="200.0" text="任务条件" BorderPane.alignment="CENTER">
<content>
<GridPane fx:id="gridPane" style="-fx-padding: 15;">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="40.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="60.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<padding>
<Insets bottom="5.0" left="5.0" right="10.0" top="5.0" />
</padding>
<children>
<Label text="任务编号:" />
<Label text="工厂:" GridPane.rowIndex="1" />
<Label text="发起人:" GridPane.rowIndex="2" />
<Label text="发起时间晚于:" GridPane.rowIndex="3" />
<Label text="发起时间早于:" GridPane.rowIndex="4" />
<Label text="项目名称:" GridPane.columnIndex="3" GridPane.rowIndex="4" />
<Label text="WBS号:" GridPane.columnIndex="3" GridPane.rowIndex="3" />
<Label text="数据状态:" GridPane.columnIndex="3" GridPane.rowIndex="5" />
<Label text="是否仅查看错误数据:" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<Label text="是否仅查看错误任务:" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<Label text="任务SAP处理结果:" GridPane.columnIndex="3" />
<TextField fx:id="tx_bh" GridPane.columnIndex="1" />
<TextField fx:id="tx_user" promptText="用户名称或用户ID" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<TextField fx:id="tx_wbs" promptText="wbs号" GridPane.columnIndex="4" GridPane.rowIndex="3" />
<TextField fx:id="tx_projectName" promptText="项目名称" GridPane.columnIndex="4" GridPane.rowIndex="4" />
<ComboBox fx:id="cb_factory" prefWidth="250.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<ComboBox fx:id="cb_status" prefWidth="250.0" GridPane.columnIndex="4" GridPane.rowIndex="5" />
<ComboBox fx:id="cb_sapState" prefWidth="250.0" GridPane.columnIndex="4" />
<CheckBox fx:id="bt_errMsg" mnemonicParsing="false" text="是" GridPane.columnIndex="4" GridPane.rowIndex="2" />
<CheckBox fx:id="bt_errTask" mnemonicParsing="false" text="是" GridPane.columnIndex="4" GridPane.rowIndex="1" />
</children>
</GridPane>
</content>
</TitledPane>
</top>
<center>
<TitledPane fx:id="mxtjPane" prefHeight="200.0" prefWidth="200.0" text="明细条件" BorderPane.alignment="CENTER">
<content>
<GridPane style="-fx-padding: 15;">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="40.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="60.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="父物料编码:" />
<Label text="SAP数据状态:" GridPane.rowIndex="1" />
<Label text="SAP返回信息" GridPane.rowIndex="2" />
<TextField fx:id="tx_pcode" promptText="多个物料以;隔开" GridPane.columnIndex="1" />
<TextField fx:id="tx_sapReturn" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<ComboBox fx:id="tx_sapStatus" prefWidth="250.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label text="WBS号:" GridPane.columnIndex="3" />
<Label text="批次号:" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<TextField fx:id="tx_wbsMx" GridPane.columnIndex="4" />
<TextField fx:id="tx_batchNum" GridPane.columnIndex="4" GridPane.rowIndex="1" />
</children>
</GridPane>
</content>
</TitledPane>
</center>
<bottom>
<GridPane fx:id="bt_cx" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="bt_close" mnemonicParsing="false" onAction="#closeClick" text="关闭" GridPane.columnIndex="3" />
<Button fx:id="bt_search" mnemonicParsing="false" onAction="#searchAction" text="查询" GridPane.columnIndex="1" />
<Button fx:id="bt_czcx" mnemonicParsing="false" onAction="#resetClick" text="重置查询" GridPane.columnIndex="2" />
</children>
</GridPane>
</bottom>
</BorderPane>
</content>
</TitledPane>
</top>
<center>
<BorderPane fx:id="resultBorder" prefHeight="800.0" prefWidth="1200.0" BorderPane.alignment="CENTER">
<top>
<TitledPane fx:id="tp_result" prefHeight="600.0" prefWidth="200.0" text="结果" BorderPane.alignment="CENTER">
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="10.0" />
</padding>
<content>
<BorderPane prefHeight="200.0" prefWidth="200.0" style="-fx-padding: 5;">
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding>
<opaqueInsets>
<Insets />
</opaqueInsets>
<top>
<TableView fx:id="tableView" prefHeight="460.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<columns>
<TableColumn fx:id="tc_xh" prefWidth="75.0" text="序号" />
<TableColumn fx:id="tc_rwh" prefWidth="102.0" text="任务号" />
<TableColumn fx:id="tc_fqr" prefWidth="133.0" text="发起人" />
<TableColumn fx:id="tc_fqsj" prefWidth="160.0" text="发起时间" />
<TableColumn fx:id="tc_zrws" prefWidth="85.0" text="子任务数" />
<TableColumn fx:id="tc_sapState" prefWidth="142.0" text="SAP处理结果" />
<TableColumn fx:id="tc_status" prefWidth="111.0" text="数据状态" />
<TableColumn fx:id="tc_plm" prefWidth="133.0" text="PLM处理进度" />
<TableColumn fx:id="tc_result" minWidth="7.0" prefWidth="103.0" text="结果明细" />
<TableColumn fx:id="tc_log" minWidth="0.0" prefWidth="91.0" text="日志获取" />
</columns>
</TableView>
</top>
<bottom>
<GridPane BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<BorderPane.margin>
<Insets bottom="10.0" left="10.0" right="10.0" />
</BorderPane.margin>
<children>
<Button fx:id="bt_sy" mnemonicParsing="false" onAction="#firstBtnAction" text="首页" GridPane.columnIndex="1" />
<Button fx:id="bt_syy" mnemonicParsing="false" onAction="#lastBtnAction" text="上一页" GridPane.columnIndex="2" />
<Button fx:id="bt_xyy" mnemonicParsing="false" onAction="#nextBtnAction" text="下一页" GridPane.columnIndex="3" />
<Button fx:id="bt_wy" mnemonicParsing="false" onAction="#tailBtnAction" text="尾页" GridPane.columnIndex="4" />
</children>
</GridPane>
</bottom>
</BorderPane>
</content>
</TitledPane>
</top>
</BorderPane>
</center>
<bottom>
<AnchorPane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<Button fx:id="bt_closeAll" layoutX="1108.0" layoutY="14.0" mnemonicParsing="false" onAction="#clossAll" text="关闭" />
</children>
</AnchorPane>
</bottom>
<padding>
<Insets left="10.0" />
</padding>
</BorderPane>
</content>
</ScrollPane>
</children>
</StackPane>

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import tornadofx.control.*?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<StackPane fx:id="stackPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.chint.plm.SearchSapResult.DetailsController">
<children>
<GridPane>
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="100.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<FlowPane alignment="TOP_CENTER" prefHeight="200.0" prefWidth="200.0" style="-fx-padding: 5;">
<children>
<CheckBox fx:id="cb_errBtn" mnemonicParsing="false" onAction="#errBtnAction" text="仅显示错误数据" />
</children>
</FlowPane>
<ScrollPane prefHeight="1200.0" prefWidth="1200.0" style="-fx-padding: 5;" GridPane.rowIndex="1">
<content>
<TableView fx:id="tableView" prefHeight="700.0" prefWidth="1190.0" style="-fx-faint-focus-color: transparent;">
<columns>
<TableColumn fx:id="tc_xh" prefWidth="75.0" text="序号" />
<TableColumn fx:id="tc_batch" prefWidth="75.0" text="批次号" />
<TableColumn fx:id="tc_material" prefWidth="162.0" text="父物料编码" />
<TableColumn fx:id="tc_wbs" minWidth="0.0" prefWidth="127.0" text="WBS号" />
<TableColumn fx:id="tc_SapResult" minWidth="0.0" prefWidth="99.0" text="SAP处理结果" />
<TableColumn fx:id="tc_msg" prefWidth="126.0" text="结果内容" />
<TableColumn fx:id="tc_cDate" prefWidth="114.0" text="BOM创建日期" />
<TableColumn fx:id="tc_cTime" prefWidth="110.0" text="BOM创建时间" />
<TableColumn fx:id="tc_returnDate" prefWidth="110.0" text="BOM同步日期" />
<TableColumn fx:id="tc_returnTime" prefWidth="104.0" text="BOM同步时间" />
<TableColumn fx:id="tc_plm" prefWidth="82.0" text="PLM状态" />
</columns>
</TableView>
</content>
</ScrollPane>
<BorderPane prefHeight="100.0" prefWidth="200.0" style="-fx-padding: 10;" GridPane.rowIndex="2">
<left>
<FlowPane hgap="15.0" prefHeight="140.0" prefWidth="552.0" style="-fx-padding: 0;" BorderPane.alignment="CENTER">
<children>
<Button fx:id="bt_first" mnemonicParsing="false" onAction="#firstAction" prefHeight="30.0" prefWidth="80.0" text="首页" />
<Button fx:id="bt_last" mnemonicParsing="false" onAction="#lastAction" prefHeight="30.0" prefWidth="80.0" text="上一页" />
<Button fx:id="bt_next" mnemonicParsing="false" onAction="#nextAction" prefWidth="80.0" text="下一页" />
<Button fx:id="bt_tail" mnemonicParsing="false" onAction="#tailAction" prefWidth="80.0" text="尾页" />
<Button fx:id="bt_all" mnemonicParsing="false" onAction="#allAction" text="本页全部加载" />
</children>
<BorderPane.margin>
<Insets bottom="5.0" left="10.0" right="10.0" top="5.0" />
</BorderPane.margin>
<padding>
<Insets left="10.0" right="10.0" />
</padding>
</FlowPane>
</left>
<right>
<FlowPane alignment="TOP_CENTER" prefHeight="140.0" prefWidth="589.0" BorderPane.alignment="CENTER">
<children>
<TextField alignment="TOP_RIGHT" prefHeight="30.0" prefWidth="154.0" text="1" />
<Label fx:id="lb_page" prefWidth="80.0" text="/" />
<Button mnemonicParsing="false" onAction="#outputAction" text="结果导出" />
</children>
<BorderPane.margin>
<Insets bottom="5.0" left="10.0" right="10.0" top="5.0" />
</BorderPane.margin>
</FlowPane>
</right>
</BorderPane>
</children>
</GridPane>
</children>
</StackPane>

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import tornadofx.control.*?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<StackPane fx:id="stackPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="1600.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.chint.plm.SearchSapResult.SearchSapController">
<children>
<ScrollPane prefHeight="865.0" prefWidth="1192.0">
<content>
<BorderPane prefHeight="849.0" prefWidth="1075.0">
<center>
<BorderPane prefHeight="503.0" prefWidth="1075.0" BorderPane.alignment="CENTER">
<right>
<TitledPane fx:id="tp_result" animated="false" prefHeight="480.0" prefWidth="1075.0" text="结果" BorderPane.alignment="CENTER">
<content>
<BorderPane prefHeight="400.0" prefWidth="900.0">
<top>
<TableView fx:id="tableView" BorderPane.alignment="CENTER">
<columns>
<TableColumn fx:id="tc_xh" prefWidth="54.0" text="序号" />
<TableColumn fx:id="tc_drawingno" prefWidth="96.0" text="图号" />
<TableColumn fx:id="tc_datesetname" prefWidth="103.0" text="文件名称" />
<TableColumn fx:id="tc_materialno" prefWidth="98.0" text="物料编码" />
<TableColumn fx:id="tc_wbs" prefWidth="97.0" text="WBS号" />
<TableColumn fx:id="tc_revision" prefWidth="45.0" text="版本" />
<TableColumn fx:id="tc_code" prefWidth="66.0" text="文件类型" />
<TableColumn fx:id="tc_urlcreatetime" prefWidth="94.0" text="提交时间" />
<TableColumn fx:id="tc_released" prefWidth="71.0" text="发放状态" />
<TableColumn fx:id="tc_username" prefWidth="59.0" text="提交人" />
<TableColumn fx:id="tc_fileurl" prefWidth="265.0" text="链接" />
</columns>
</TableView>
</top>
<bottom>
<GridPane BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="321.0" minWidth="10.0" prefWidth="265.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="349.0" minWidth="10.0" prefWidth="160.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="334.0" minWidth="10.0" prefWidth="155.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="309.0" minWidth="10.0" prefWidth="149.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="219.0" minWidth="10.0" prefWidth="213.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="bt_sy" mnemonicParsing="false" onAction="#firstBtnAction" text="首页" GridPane.columnIndex="1" />
<Button fx:id="bt_syy" mnemonicParsing="false" onAction="#lastBtnAction" text="上一页" GridPane.columnIndex="2" />
<Button fx:id="bt_xyy" mnemonicParsing="false" onAction="#nextBtnAction" text="下一页" GridPane.columnIndex="3" />
<Button fx:id="bt_wy" mnemonicParsing="false" onAction="#tailBtnAction" text="尾页" GridPane.columnIndex="4" />
</children>
</GridPane>
</bottom>
</BorderPane>
</content>
</TitledPane>
</right>
</BorderPane>
</center>
<top>
<TitledPane fx:id="tp_sxtj" animated="false" text="筛选条件" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="331.0" prefWidth="1073.0">
<children>
<BorderPane layoutX="26.0" layoutY="8.0" prefHeight="235.0" prefWidth="1022.0">
<top>
<TitledPane fx:id="rwtjPane" animated="false" prefHeight="236.0" prefWidth="1022.0" text="查询条件" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<GridPane fx:id="gridPane" layoutX="20.0" layoutY="16.0" prefHeight="175.0" prefWidth="980.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="208.0" minWidth="10.0" prefWidth="157.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="300.0" minWidth="10.0" prefWidth="268.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="291.0" minWidth="10.0" prefWidth="101.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="214.0" minWidth="10.0" prefWidth="97.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="356.0" minWidth="10.0" prefWidth="356.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="发放人:" GridPane.rowIndex="1" />
<Label text="物料编码" GridPane.rowIndex="2" />
<Label text="发放状态" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<Label text="工厂" GridPane.columnIndex="3" />
<Label text="WBS号:" />
<TextField fx:id="tx_bh" GridPane.columnIndex="1" />
<TextField fx:id="tx_projectName" prefHeight="30.0" prefWidth="291.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField fx:id="tx_user" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<ComboBox fx:id="cb_sapState" prefHeight="30.0" prefWidth="271.0" GridPane.columnIndex="4" />
<ComboBox fx:id="cb_status" prefHeight="30.0" prefWidth="272.0" GridPane.columnIndex="4" GridPane.rowIndex="1" />
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</top>
</BorderPane>
<GridPane layoutX="216.0" layoutY="270.0" prefHeight="30.0" prefWidth="702.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="95.0" minWidth="10.0" prefWidth="80.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="219.0" minWidth="10.0" prefWidth="219.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="216.0" minWidth="10.0" prefWidth="210.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="185.0" minWidth="10.0" prefWidth="74.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="bt_close" mnemonicParsing="false" onAction="#closeClick" prefHeight="30.0" prefWidth="86.0" text="关闭" GridPane.columnIndex="3" />
<Button fx:id="bt_search" mnemonicParsing="false" onAction="#searchAction" prefHeight="30.0" prefWidth="96.0" text="查询" GridPane.columnIndex="1" />
<Button fx:id="bt_czcx" mnemonicParsing="false" onAction="#resetClick" prefHeight="30.0" prefWidth="88.0" text="重置查询" GridPane.columnIndex="2" />
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</top>
</BorderPane>
</content>
</ScrollPane>
</children>
</StackPane>

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import tornadofx.control.*?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<StackPane fx:id="stackPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="1600.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.chint.plm.SearchSapResult9.SearchSapController">
<children>
<ScrollPane fx:id="scrollPane" prefHeight="865.0" prefWidth="1192.0">
<content>
<BorderPane prefHeight="849.0" prefWidth="1075.0">
<center>
<BorderPane fx:id="resultBorder" prefHeight="503.0" prefWidth="1075.0" BorderPane.alignment="CENTER">
<right>
<TitledPane fx:id="tp_result" animated="false" prefHeight="480.0" prefWidth="1075.0" text="结果" BorderPane.alignment="CENTER">
<content>
<BorderPane prefHeight="400.0" prefWidth="900.0">
<top>
<TableView fx:id="tableView" prefHeight="374.0" prefWidth="1049.0" BorderPane.alignment="CENTER">
<columns>
<TableColumn fx:id="tc_xh" prefWidth="54.0" text="序号" />
<TableColumn fx:id="tc_drawingno" prefWidth="96.0" text="图号" />
<TableColumn fx:id="tc_datesetname" prefWidth="103.0" text="文件名称" />
<TableColumn fx:id="tc_materialno" prefWidth="98.0" text="物料编码" />
<TableColumn fx:id="tc_wbs" prefWidth="97.0" text="WBS号" />
<TableColumn fx:id="tc_revision" prefWidth="45.0" text="版本" />
<TableColumn fx:id="tc_code" prefWidth="66.0" text="文件类型" />
<TableColumn fx:id="tc_urlcreatetime" prefWidth="94.0" text="提交时间" />
<TableColumn fx:id="tc_released" prefWidth="71.0" text="发放状态" />
<TableColumn fx:id="tc_username" prefWidth="59.0" text="提交人" />
<TableColumn fx:id="tc_fileurl" prefWidth="265.0" text="链接" />
</columns>
</TableView>
</top>
<bottom>
<GridPane BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="321.0" minWidth="10.0" prefWidth="265.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="349.0" minWidth="10.0" prefWidth="160.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="334.0" minWidth="10.0" prefWidth="155.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="309.0" minWidth="10.0" prefWidth="149.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="219.0" minWidth="10.0" prefWidth="213.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="bt_sy" mnemonicParsing="false" onAction="#firstBtnAction" text="首页" GridPane.columnIndex="1" />
<Button fx:id="bt_syy" mnemonicParsing="false" onAction="#lastBtnAction" text="上一页" GridPane.columnIndex="2" />
<Button fx:id="bt_xyy" mnemonicParsing="false" onAction="#nextBtnAction" text="下一页" GridPane.columnIndex="3" />
<Button fx:id="bt_wy" mnemonicParsing="false" onAction="#tailBtnAction" text="尾页" GridPane.columnIndex="4" />
</children>
</GridPane>
</bottom>
</BorderPane>
</content>
</TitledPane>
</right>
</BorderPane>
</center>
<top>
<TitledPane fx:id="tp_sxtj" animated="false" text="筛选条件" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="331.0" prefWidth="1073.0">
<children>
<BorderPane layoutX="26.0" layoutY="8.0" prefHeight="235.0" prefWidth="1022.0">
<top>
<TitledPane fx:id="rwtjPane" animated="false" prefHeight="236.0" prefWidth="1022.0" text="查询条件" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<GridPane fx:id="gridPane" layoutX="20.0" layoutY="16.0" prefHeight="175.0" prefWidth="980.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="208.0" minWidth="10.0" prefWidth="157.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="300.0" minWidth="10.0" prefWidth="268.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="291.0" minWidth="10.0" prefWidth="101.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="214.0" minWidth="10.0" prefWidth="97.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="356.0" minWidth="10.0" prefWidth="356.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="发放人:" GridPane.rowIndex="1" />
<Label text="物料编码" GridPane.rowIndex="2" />
<Label text="发放状态" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<Label text="工厂" GridPane.columnIndex="3" />
<Label text="WBS号:" />
<TextField fx:id="tx_bh" GridPane.columnIndex="1" />
<TextField fx:id="tx_projectName" prefHeight="30.0" prefWidth="291.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField fx:id="tx_user" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<ComboBox fx:id="cb_sapState" prefHeight="30.0" prefWidth="271.0" GridPane.columnIndex="4" />
<ComboBox fx:id="cb_status" prefHeight="30.0" prefWidth="272.0" GridPane.columnIndex="4" GridPane.rowIndex="1" />
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</top>
</BorderPane>
<GridPane layoutX="216.0" layoutY="270.0" prefHeight="30.0" prefWidth="702.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="95.0" minWidth="10.0" prefWidth="80.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="219.0" minWidth="10.0" prefWidth="219.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="216.0" minWidth="10.0" prefWidth="210.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="185.0" minWidth="10.0" prefWidth="74.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="bt_close" mnemonicParsing="false" onAction="#closeClick" prefHeight="30.0" prefWidth="86.0" text="关闭" GridPane.columnIndex="3" />
<Button fx:id="bt_search" mnemonicParsing="false" onAction="#searchAction" prefHeight="30.0" prefWidth="96.0" text="查询" GridPane.columnIndex="1" />
<Button fx:id="bt_czcx" mnemonicParsing="false" onAction="#resetClick" prefHeight="30.0" prefWidth="88.0" text="重置查询" GridPane.columnIndex="2" />
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</top>
</BorderPane>
</content>
</ScrollPane>
</children>
</StackPane>

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<GridPane hgap="5.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="240.0" prefWidth="400.0" vgap="5.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.chint.plm.createEcn.AssignIdController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" vgrow="NEVER" />
<RowConstraints minHeight="10.0" vgrow="NEVER" />
</rowConstraints>
<children>
<FlowPane alignment="CENTER" hgap="12.0" GridPane.rowIndex="1">
<children>
<Button fx:id="assignBtn" mnemonicParsing="false" onAction="#okBtnClick" prefWidth="77.0" text="指派" />
<Button fx:id="closeBtn" mnemonicParsing="false" onAction="#cancelBtnClick" text=" 取消 " />
</children>
</FlowPane>
<GridPane alignment="CENTER" prefHeight="200.0">
<columnConstraints>
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" maxWidth="100.0" minWidth="10.0" prefWidth="50.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="创建者工厂:" />
<ComboBox fx:id="factoryComb" maxWidth="200.0" prefWidth="150.0" GridPane.columnIndex="1" />
<Label text="创建者部门:" GridPane.rowIndex="1" />
<ComboBox fx:id="bmComb" maxWidth="200.0" prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<RadioButton fx:id="rb_formalChange" maxWidth="200.0" prefWidth="150.0" mnemonicParsing="false" text="正式更改" GridPane.rowIndex="2" />
<RadioButton fx:id="rb_tempChange" mnemonicParsing="false" text="临时更改" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label text="预览" GridPane.rowIndex="3" />
<TextField fx:id="ylText" maxWidth="200.0" prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="3" />
</children>
</GridPane>
</children>
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding>
</GridPane>

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<StackPane fx:id="stackPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.chint.plm.createEcn.CreateEcnController">
<children>
<ScrollPane fx:id="scollPane" prefHeight="800.0" prefWidth="1200.0">
<content>
<GridPane fx:id="gridPane" prefHeight="1600.0" prefWidth="1180.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="160.0" minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="280.0" minHeight="10.0" prefHeight="230.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="600.0" minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" vgrow="NEVER" />
</rowConstraints>
<children>
<BorderPane prefHeight="160.0" prefWidth="200.0">
<left>
<FlowPane alignment="CENTER_LEFT" hgap="12.0" prefHeight="80.0" prefWidth="400.0" style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<children>
<Label text="单位:" />
<TextField fx:id="factoryText" />
</children>
<BorderPane.margin>
<Insets />
</BorderPane.margin>
<padding>
<Insets left="10.0" />
</padding>
</FlowPane>
</left>
<center>
<FlowPane alignment="CENTER" prefHeight="200.0" prefWidth="100.0" style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<children>
<Label text="更改通知单">
<font>
<Font size="22.0" />
</font>
</Label>
</children>
</FlowPane>
</center>
<padding>
<Insets left="2.0" right="2.0" top="2.0" />
</padding>
<bottom>
<BorderPane prefHeight="80.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<left>
<FlowPane alignment="CENTER" prefHeight="200.0" prefWidth="200.0" style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<children>
<Label text="更改类型">
<font>
<Font size="18.0" />
</font>
</Label>
</children>
</FlowPane>
</left>
<center>
<GridPane style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="400.0" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<FlowPane alignment="CENTER_LEFT" hgap="100.0" prefHeight="200.0" prefWidth="200.0">
<children>
<RadioButton fx:id="rb_formalChange" mnemonicParsing="false" text="正式更改" />
<RadioButton fx:id="rb_tempChange" mnemonicParsing="false" text="临时更改" />
</children>
<GridPane.margin>
<Insets />
</GridPane.margin>
<padding>
<Insets left="5.0" />
</padding>
</FlowPane>
<FlowPane alignment="CENTER_LEFT" hgap="100.0" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1">
<children>
<RadioButton fx:id="rb_product" mnemonicParsing="false" text="产品" />
<RadioButton fx:id="rb_Process" mnemonicParsing="false" text="过程" />
</children>
<GridPane.margin>
<Insets />
</GridPane.margin>
<padding>
<Insets left="5.0" />
</padding>
</FlowPane>
<FlowPane alignment="CENTER_LEFT" hgap="15.0" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<padding>
<Insets left="5.0" />
</padding>
</FlowPane>
</children>
</GridPane>
</center>
</BorderPane>
</bottom>
<right>
<GridPane prefHeight="78.0" prefWidth="400.0" style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="120.0" minWidth="10.0" prefWidth="80.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="150.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="60.0" minWidth="10.0" prefWidth="20.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="通知单编号:" />
<Label text="关联申请单编号:" GridPane.rowIndex="1" />
<Button fx:id="assignBtn" mnemonicParsing="false" onAction="#assignClick" text="指派" GridPane.columnIndex="2" />
<Button mnemonicParsing="false" onAction="#relateClick" text="查看" GridPane.columnIndex="2" GridPane.rowIndex="1" />
<TextField fx:id="ecnId" GridPane.columnIndex="1" />
<TextField fx:id="relateEcnText" GridPane.columnIndex="1" GridPane.rowIndex="1" />
</children>
<padding>
<Insets left="5.0" />
</padding>
</GridPane>
</right>
</BorderPane>
<TitledPane fx:id="tp_product" animated="false" prefHeight="280.0" prefWidth="1200.0" text="产品及项目信息:" GridPane.rowIndex="1">
<content>
<BorderPane prefHeight="200.0" prefWidth="200.0">
<center>
<GridPane fx:id="productPane" alignment="CENTER" maxHeight="200.0" style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" maxWidth="160.0" minWidth="10.0" prefWidth="20.0" />
<ColumnConstraints halignment="LEFT" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" maxWidth="160.0" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="LEFT" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="产品型号:" />
<Label text="产品名称:" GridPane.rowIndex="1" />
<Label text="文件代号及名称:" GridPane.rowIndex="2" />
<ComboBox fx:id="pmCombox" prefHeight="30.0" prefWidth="370.0" GridPane.columnIndex="1" />
<ComboBox fx:id="prodNameComb" prefHeight="30.0" prefWidth="370.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField fx:id="markText" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label text="合同代号:" GridPane.columnIndex="2" />
<Label text="合同名称:" GridPane.columnIndex="2" GridPane.rowIndex="1" />
<Label text="更改实施日期:" GridPane.columnIndex="2" GridPane.rowIndex="2" />
<TextField fx:id="contractText" GridPane.columnIndex="3" />
<TextField fx:id="htNameText" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<DatePicker fx:id="changeDate" GridPane.columnIndex="3" GridPane.rowIndex="2" />
</children>
<padding>
<Insets right="10.0" />
</padding>
</GridPane>
</center>
<bottom>
<BorderPane prefHeight="40.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<BorderPane.margin>
<Insets top="5.0" />
</BorderPane.margin>
<left>
<FlowPane alignment="CENTER" prefHeight="200.0" prefWidth="200.0" style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<children>
<Label text="发放部门" />
</children>
</FlowPane>
</left>
<center>
<FlowPane fx:id="departPane" alignment="CENTER_LEFT" hgap="20.0" prefHeight="200.0" prefWidth="200.0" style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<BorderPane.margin>
<Insets />
</BorderPane.margin>
<padding>
<Insets left="5.0" />
</padding>
</FlowPane>
</center>
</BorderPane>
</bottom>
</BorderPane>
</content>
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TitledPane>
<TitledPane fx:id="tc_details" prefHeight="1200.0" prefWidth="200.0" text="变更明细:" GridPane.rowIndex="2">
<GridPane.margin>
<Insets top="5.0" />
</GridPane.margin>
<padding>
<Insets left="2.0" right="2.0" />
</padding>
<content>
<BorderPane>
<center>
<ScrollPane prefHeight="500.0" style="-fx-padding: 5;" BorderPane.alignment="CENTER">
<content>
<TableView fx:id="tableView" prefHeight="480.0" prefWidth="1142.0" style="-fx-faint-focus-color: transparent;" />
</content>
</ScrollPane>
</center>
<top>
<FlowPane alignment="CENTER" hgap="25.0" prefHeight="80.0" BorderPane.alignment="CENTER">
<children>
<Button fx:id="addRows" mnemonicParsing="false" onAction="#addRows" text="增加五行" />
<Button fx:id="addRow" mnemonicParsing="false" onAction="#addRow" text="增加行" />
<Button fx:id="deleteRow" mnemonicParsing="false" onAction="#deleteRow" text="删除行" />
</children>
<BorderPane.margin>
<Insets bottom="5.0" />
</BorderPane.margin>
</FlowPane>
</top>
</BorderPane>
</content>
</TitledPane>
<GridPane GridPane.rowIndex="3">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" vgrow="NEVER" />
<RowConstraints minHeight="10.0" prefHeight="100.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<TitledPane fx:id="referencePane" animated="false" text="影响分析(会签):">
<GridPane.margin>
<Insets top="5.0" />
</GridPane.margin>
<padding>
<Insets left="2.0" right="2.0" />
</padding>
<content>
<ScrollPane prefHeight="400.0">
<content>
<TableView fx:id="refTable" prefHeight="400.0" prefWidth="1170.0" />
</content>
</ScrollPane>
</content>
</TitledPane>
<BorderPane prefHeight="100.0" prefWidth="200.0" GridPane.rowIndex="1">
<left>
<Label text="备注:" />
</left>
<center>
<ScrollPane prefHeight="100.0" style="-fx-padding: 5;" BorderPane.alignment="CENTER">
<content>
<TextArea fx:id="remarkArea" prefHeight="99.0" prefWidth="1100.0" wrapText="true" />
</content>
</ScrollPane>
</center>
</BorderPane>
<FlowPane alignment="TOP_CENTER" hgap="40.0" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="2">
<children>
<Button fx:id="createBtn" mnemonicParsing="false" onAction="#createClick" text="确定" />
<Button alignment="CENTER" mnemonicParsing="false" onAction="#disposeClick" text="取消" />
</children>
<GridPane.margin>
<Insets top="5.0" />
</GridPane.margin>
</FlowPane>
</children>
</GridPane>
</children>
</GridPane>
</content>
</ScrollPane>
</children>
</StackPane>

@ -0,0 +1,187 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import tornadofx.control.*?>
<?import java.lang.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<StackPane fx:id="stackPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.chint.plm.createEcn.RelateEcnController">
<children>
<ScrollPane fx:id="scollPane" prefHeight="800.0" prefWidth="1200.0">
<content>
<GridPane fx:id="gridPane" prefHeight="800.0" prefWidth="1180.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="85.0" minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="280.0" minHeight="10.0" prefHeight="230.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="400.0" minHeight="10.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<BorderPane maxHeight="80.0" prefHeight="80.0" prefWidth="200.0">
<padding>
<Insets left="2.0" right="2.0" top="2.0" />
</padding>
<bottom>
<BorderPane prefHeight="80.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<left>
<FlowPane alignment="CENTER" prefHeight="200.0" prefWidth="200.0" style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<children>
<Label text="更改类型">
<font>
<Font size="18.0" />
</font>
</Label>
</children>
</FlowPane>
</left>
<center>
<GridPane style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="400.0" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<FlowPane alignment="CENTER_LEFT" hgap="100.0" prefHeight="200.0" prefWidth="200.0">
<children>
<RadioButton fx:id="rb_formalChange" mnemonicParsing="false" text="正式更改" />
<RadioButton fx:id="rb_tempChange" mnemonicParsing="false" text="临时更改" />
</children>
<GridPane.margin>
<Insets />
</GridPane.margin>
<padding>
<Insets left="5.0" />
</padding>
</FlowPane>
<FlowPane alignment="CENTER_LEFT" hgap="15.0" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1">
<children>
<RadioButton fx:id="rb_product" mnemonicParsing="false" text="产品" />
<Label text="产品特性:" />
<RadioButton mnemonicParsing="false" text="A" />
<RadioButton mnemonicParsing="false" text="B" />
<RadioButton mnemonicParsing="false" text="C" />
</children>
<GridPane.margin>
<Insets />
</GridPane.margin>
<padding>
<Insets left="5.0" />
</padding>
</FlowPane>
<FlowPane alignment="CENTER_LEFT" hgap="15.0" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<children>
<RadioButton fx:id="rb_Process" mnemonicParsing="false" text="过程" />
<Label text="过程特性:" />
<RadioButton mnemonicParsing="false" text="A" />
<RadioButton mnemonicParsing="false" text="B" />
<RadioButton mnemonicParsing="false" text="C" />
</children>
<padding>
<Insets left="5.0" />
</padding>
</FlowPane>
</children>
</GridPane>
</center>
</BorderPane>
</bottom>
</BorderPane>
<TitledPane fx:id="tp_product" animated="false" prefHeight="280.0" prefWidth="1200.0" text="更改涉及内容:" GridPane.rowIndex="1">
<content>
<BorderPane prefHeight="200.0" prefWidth="200.0">
<center>
<GridPane alignment="CENTER" maxHeight="200.0" style="-fx-border-color: black;" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" maxWidth="160.0" minWidth="10.0" prefWidth="20.0" />
<ColumnConstraints halignment="LEFT" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" maxWidth="160.0" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="产品型号:" />
<Label text="产品名称:" GridPane.rowIndex="1" />
<Label text="文件代号及名称:" GridPane.rowIndex="2" />
<TextField fx:id="prodModelText" GridPane.columnIndex="1" />
<TextField fx:id="prodNameText" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField fx:id="docCodeText" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label text="合同代号:" GridPane.columnIndex="2" />
<Label text="合同名称:" GridPane.columnIndex="2" GridPane.rowIndex="1" />
<Label text="图样代号及名称:" GridPane.columnIndex="2" GridPane.rowIndex="2" />
<TextField fx:id="contCondeText" GridPane.columnIndex="3" />
<TextField fx:id="contNameText" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<TextField fx:id="pattCodeText" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<Label text="申请人:" GridPane.rowIndex="3" />
<Label text="申请单号:" GridPane.columnIndex="2" GridPane.rowIndex="3" />
<Label text="申请时间晚于:" GridPane.rowIndex="4" />
<Label text="申请时间早于:" GridPane.columnIndex="2" GridPane.rowIndex="4" />
<TextField fx:id="applicantText" GridPane.columnIndex="1" GridPane.rowIndex="3" />
<TextField fx:id="requestNoText" GridPane.columnIndex="3" GridPane.rowIndex="3" />
<DatePicker fx:id="startTime" GridPane.columnIndex="1" GridPane.rowIndex="4" />
<DatePicker fx:id="endTime" GridPane.columnIndex="3" GridPane.rowIndex="4" />
</children>
<padding>
<Insets right="10.0" top="2.0" />
</padding>
</GridPane>
</center>
<bottom>
<BorderPane prefHeight="40.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<BorderPane.margin>
<Insets top="5.0" />
</BorderPane.margin>
<right>
<FlowPane alignment="CENTER" hgap="30.0" prefHeight="40.0" prefWidth="318.0" BorderPane.alignment="CENTER">
<children>
<Button mnemonicParsing="false" onAction="#searchClick" prefWidth="80.0" text="查询" />
<Button mnemonicParsing="false" onAction="#closeClick" prefWidth="80.0" text="关闭" />
</children>
</FlowPane>
</right>
</BorderPane>
</bottom>
</BorderPane>
</content>
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TitledPane>
<TitledPane fx:id="tc_details" prefHeight="400.0" prefWidth="200.0" text="搜索结果:" GridPane.rowIndex="2">
<GridPane.margin>
<Insets top="5.0" />
</GridPane.margin>
<padding>
<Insets left="2.0" right="2.0" />
</padding>
<content>
<BorderPane>
<center>
<ScrollPane prefHeight="400.0" style="-fx-padding: 5;" BorderPane.alignment="CENTER">
<content>
<TableView fx:id="tableView" prefHeight="400.0" prefWidth="1142.0" style="-fx-faint-focus-color: transparent;" />
</content>
</ScrollPane>
</center>
</BorderPane>
</content>
</TitledPane>
</children>
</GridPane>
</content>
</ScrollPane>
</children>
</StackPane>

@ -0,0 +1,3 @@
ERROR_NOT_CHANGE=\u8BF7\u9009\u62E9\u66F4\u6539\u901A\u77E5\u5355\u5BF9\u8C61
ERROR_NO_CHANGE=\u672A\u627E\u5230\u53D8\u66F4\u524D\u540E\u5BF9\u8C61,\u65E0\u6CD5\u63D0\u53D6\u5DEE\u5F02\u9879\uFF01
SUCC_CHANGE=\u63D0\u53D6\u5B8C\u6210

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<StackPane fx:id="stackPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="1200.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.connor.chint.JDBPackage.MySceneController">
<children>
<ScrollPane fx:id="scollPane" prefHeight="1200.0" prefWidth="1200.0">
<content>
<AnchorPane fx:id="parentPane" minHeight="0.0" minWidth="0.0" prefHeight="1800.0" prefWidth="1200.0">
<children>
<BorderPane fx:id="borderPane" layoutX="-7.0" prefHeight="1800.0" prefWidth="1200.0" style="-fx-padding: 5;">
<padding>
<Insets bottom="18.0" left="18.0" right="18.0" top="18.0" />
</padding>
<top>
<TitledPane fx:id="topTitlePane" animated="false" blendMode="DARKEN" pickOnBounds="false" style="-fx-padding: 10;" text="校对条件" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="182.0" prefWidth="1162.0" style="-fx-padding: 5;">
<children>
<GridPane fx:id="gridPane" hgap="9.0" layoutX="17.0" maxWidth="1400.0" prefHeight="175.0" prefWidth="1098.0" style="-fx-padding: 7;" vgap="9.0">
<columnConstraints>
<ColumnConstraints hgrow="NEVER" maxWidth="104.0" minWidth="10.0" prefWidth="104.0" />
<ColumnConstraints hgrow="ALWAYS" maxWidth="373.0" minWidth="10.0" prefWidth="283.0" />
<ColumnConstraints halignment="CENTER" hgrow="NEVER" maxWidth="361.0" minWidth="10.0" prefWidth="208.0" />
<ColumnConstraints hgrow="ALWAYS" maxWidth="317.0" minWidth="0.0" prefWidth="122.0" />
<ColumnConstraints halignment="RIGHT" hgrow="NEVER" maxWidth="146.0" minWidth="0.0" prefWidth="0.0" />
<ColumnConstraints hgrow="ALWAYS" maxWidth="322.0" minWidth="10.0" prefWidth="322.0" />
<ColumnConstraints hgrow="NEVER" maxWidth="5.0" minWidth="0.0" prefWidth="0.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="36.0" minHeight="10.0" prefHeight="36.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="23.0" minHeight="10.0" prefHeight="20.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="编号:" />
<Label text="检查次数:" GridPane.columnIndex="3" />
<Label text="校对表编号:" GridPane.rowIndex="2" />
<Label text="校对日期:" GridPane.rowIndex="1" />
<Label text="检查人:" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<ComboBox fx:id="cb_jccs" editable="true" maxWidth="1.7976931348623157E308" onAction="#selectJccs" GridPane.columnIndex="5" />
<TextField fx:id="tf_bh" prefHeight="30.0" prefWidth="288.0" GridPane.columnIndex="1" />
<ComboBox fx:id="cb_jclx" maxWidth="1.7976931348623157E308" prefWidth="150.0" GridPane.columnIndex="5" GridPane.rowIndex="3" />
<TextField fx:id="tf_jcr" GridPane.columnIndex="5" GridPane.rowIndex="1" />
<Label text="图号清单:" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<ComboBox fx:id="cb_thqd" maxWidth="1.7976931348623157E308" GridPane.columnIndex="5" GridPane.rowIndex="2" />
<Label text="版本号:" GridPane.rowIndex="3" />
<Label text="检查类型:" GridPane.columnIndex="3" GridPane.rowIndex="3" />
<TextField fx:id="jdrq" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField fx:id="revId" GridPane.columnIndex="1" GridPane.rowIndex="3" />
<TextField fx:id="jdbbh" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label text="过滤不通过项:" GridPane.rowIndex="4" />
<CheckBox fx:id="glBtn" mnemonicParsing="false" onAction="#selectBtnGl" GridPane.columnIndex="1" GridPane.rowIndex="4" />
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</top>
<center>
<TabPane fx:id="TestPane" prefHeight="263.0" prefWidth="1180.0" style="-fx-padding: 10;" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" BorderPane.alignment="CENTER">
<tabs>
<Tab text="检查结果">
<content>
<TableView fx:id="table" prefHeight="292.0" prefWidth="1170.0" style="-fx-faint-focus-color: transparent; -fx-focus-color: rgba(0,0,0,0.2);" />
</content>
</Tab>
</tabs>
</TabPane>
</center>
<bottom>
<BorderPane prefHeight="200.0" prefWidth="200.0" style="-fx-padding: 10;" BorderPane.alignment="CENTER">
<top>
<TitledPane fx:id="btoTitlePane" animated="false" prefHeight="260.0" prefWidth="1160.0" style="-fx-padding: 5;" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="457.0" prefWidth="1178.0">
<children>
<GridPane prefHeight="214.0" prefWidth="1178.0" style="-fx-padding: 15;">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1166.0" minWidth="10.0" prefWidth="1127.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="584.0" minWidth="10.0" prefWidth="51.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="校对人员发现的问题真实记录:" />
<Label text="审核人员发现的问题真实记录:" GridPane.rowIndex="2" />
<Label text="校对、审核发现的问题“是否”已逐条进行更改?如未更改则写明未更改理由。(审核人再审签字):" GridPane.rowIndex="4" />
<TextField fx:id="tx1" GridPane.rowIndex="1" />
<TextField fx:id="tx2" GridPane.rowIndex="3" />
<TextField fx:id="tx3" GridPane.rowIndex="5" />
</children>
</GridPane>
</children></AnchorPane>
</content>
</TitledPane>
</top>
<bottom>
<GridPane style="-fx-padding: 30;" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="bt_tj" mnemonicParsing="false" onAction="#tjBtnClick" text="提交" />
<Button fx:id="bt_sc" mnemonicParsing="false" text="输出" GridPane.columnIndex="1" />
<Button fx:id="bt_lsbc" mnemonicParsing="false" onAction="#lsbcBtnClick" text="临时保存" GridPane.columnIndex="2" />
<Button fx:id="bt_outbtg" mnemonicParsing="false" text="输出不通过项" GridPane.columnIndex="3" />
<Button mnemonicParsing="false" text="输出当前检查" GridPane.columnIndex="4" />
<Button fx:id="qxBtn" mnemonicParsing="false" onAction="#qxBtnClick" text="取消" GridPane.columnIndex="5" />
</children>
</GridPane>
</bottom>
</BorderPane>
</bottom>
</BorderPane>
</children>
</AnchorPane>
</content>
</ScrollPane>
</children>
</StackPane>

@ -0,0 +1,19 @@
#\u6570\u636E\u5E93\u9A71\u52A8
driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
#\u6570\u636E\u5E93\u8FDE\u63A5\u5730\u5740
url=jdbc:sqlserver://10.128.10.135:1433;DatabaseName=CHINT_DB
#\u7528\u6237\u540D
username=PLMUser
#\u5BC6\u7801
password=PLMUser
#\u8FDE\u63A5\u6C60\u7684\u6700\u5927\u6570\u636E\u5E93\u8FDE\u63A5\u6570\u3002\u8BBE\u4E3A0\u8868\u793A\u65E0\u9650\u5236
maxActive=30
#\u6700\u5927\u7A7A\u95F2\u6570\uFF0C\u6570\u636E\u5E93\u8FDE\u63A5\u7684\u6700\u5927\u7A7A\u95F2\u65F6\u95F4\u3002\u8D85\u8FC7\u7A7A\u95F2\u65F6\u95F4\uFF0C\u6570\u636E\u5E93\u8FDE
#\u63A5\u5C06\u88AB\u6807\u8BB0\u4E3A\u4E0D\u53EF\u7528\uFF0C\u7136\u540E\u88AB\u91CA\u653E\u3002\u8BBE\u4E3A0\u8868\u793A\u65E0\u9650\u5236
maxIdle=10
#\u6700\u5927\u5EFA\u7ACB\u8FDE\u63A5\u7B49\u5F85\u65F6\u95F4\u3002\u5982\u679C\u8D85\u8FC7\u6B64\u65F6\u95F4\u5C06\u63A5\u5230\u5F02\u5E38\u3002\u8BBE\u4E3A-1\u8868\u793A\u65E0\u9650\u5236
maxWait=1000
#\u8D85\u8FC7removeAbandonedTimeout\u65F6\u95F4\u540E\uFF0C\u662F\u5426\u8FDB \u884C\u6CA1\u7528\u8FDE\u63A5\uFF08\u5E9F\u5F03\uFF09\u7684\u56DE\u6536\uFF08\u9ED8\u8BA4\u4E3Afalse\uFF0C\u8C03\u6574\u4E3Atrue)
removeAbandoned=true
#\u8D85\u8FC7\u65F6\u95F4\u9650\u5236\uFF0C\u56DE\u6536\u6CA1\u6709\u7528(\u5E9F\u5F03)\u7684\u8FDE\u63A5\uFF08\u9ED8\u8BA4\u4E3A 300\u79D2\uFF0C\u8C03\u6574\u4E3A180\uFF09
removeAbandonedTimeout=180

@ -0,0 +1,41 @@
SQL.URL=jdbc:sqlserver://10.128.20.35:1433;DatabaseName=BDP2020
SQL.DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver
SQL.USER=PLMUser
SQL.PASSWORD=PLMUser
#\u4F4E\u538B\u8BDA\u521B
SQL.CC.URL=jdbc:sqlserver://10.128.10.135:1433;DatabaseName=CHINT_DB
SQL.CC.DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver
SQL.CC.USER=PLMUser
SQL.CC.PASSWORD=PLMUser
# Test
#SQL.SH.URL=jdbc:sqlserver://10.128.155.236:1433;DatabaseName=ISP.CADAssistant
#SQL.SH.DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver
#SQL.SH.USER=sa
#SQL.SH.PASSWORD=2wsx#EDC
#
SQL.SH.URL=jdbc:sqlserver://10.128.155.140:1433;DatabaseName=ISP.CADAssistant
SQL.SH.DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver
SQL.SH.USER=sa
SQL.SH.PASSWORD=2wsx#EDC
SQL.TC.URL=jdbc:oracle:thin:@10.128.10.207:1521:tcprod
SQL.TC.DRIVER=oracle.jdbc.driver.OracleDriver
SQL.TC.USER=infodba
SQL.TC.PASSWORD=infodba
#SQL.TCDATA.URL=jdbc:oracle:thin:@192.168.0.103:1521:TC
SQL.TCDATA.URL=jdbc:oracle:thin:@10.128.18.139:1521:testdb
SQL.TCDATA.DRIVER=oracle.jdbc.driver.OracleDriver
SQL.TCDATA.USER=infodba
SQL.TCDATA.PASSWORD=infodba
SQL.TEMPLATE_TREE=select t.PmpcCode, t.PmpcCompanyCode, t.PmpcName, t.PmpcUpperCode, t.PmpcItem, t.PmpcPrhCode, t.PmpcEnd,t.PmpcCanzz,t.PmpcPType,t.PmpcMType from CcemVW_Pmpc t;
SQL.TEMPLATE=select t.PrhName,t.PrdLine,t.PrdNo,t.PrdFeatureCode,t.FeatureName,t.PrdCanInput,t.PrdSign from CcemVW_Prd t where t.prhcode = ? order by t.PrdNo
SQL.LOV=select t.PrddNo,t.PrddFeatureCode,t.PrddValue from CcemVW_Prdd t where t.PrddCode = ? and PrddLine = ? order by t.PrddNo
SQL.FEATURE=select t.FeatureCode,t.FeatureName from CcemVW_Feature t
SQL.GROUP=select t.ProductGroupCode,t.ProductGroupName from CcemVW_ProductGroup t

@ -0,0 +1,191 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.FlowPane?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<AnchorPane fx:id="coverPane" prefHeight="842.0" prefWidth="1326.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.connor.plm.CreateOuotation.MyController">
<children>
<GridPane fx:id="gridPane" layoutX="14.0" layoutY="108.0" prefHeight="189.0" prefWidth="1302.0" style="-fx-border-color: gray; -fx-border-width: 0.5px; -fx-border-radius: 5px;" AnchorPane.leftAnchor="9.0" AnchorPane.rightAnchor="10.0">
<columnConstraints>
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label fx:id="projectNameLabel" prefHeight="20.0" prefWidth="83.0" text="项目名称:" />
<TextField fx:id="projectNameTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="1" />
<Label fx:id="transformerModelLabel" prefHeight="20.0" prefWidth="83.0" text="变压器型号:" GridPane.rowIndex="1" />
<TextField fx:id="transformerModelTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label fx:id="noLoadLossLabel" prefHeight="20.0" prefWidth="83.0" text="空载损耗:" GridPane.rowIndex="2" />
<TextField fx:id="noLoadLossTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label fx:id="loadLossLabel" prefHeight="20.0" prefWidth="120.0" text="负载损耗(KW):" GridPane.rowIndex="3" />
<TextField fx:id="loadLossTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="1" GridPane.rowIndex="3" />
<Label fx:id="biddingNumberLabel" prefHeight="20.0" prefWidth="83.0" text="投标编号:" GridPane.columnIndex="2" />
<Label fx:id="capacityRatioLabel" prefHeight="20.0" prefWidth="120.0" text="容量比(MVA):" GridPane.columnIndex="2" GridPane.rowIndex="1" />
<Label fx:id="impedanceVoltageLabel" prefHeight="20.0" prefWidth="83.0" text="阻抗电压:" GridPane.columnIndex="2" GridPane.rowIndex="2" />
<TextField fx:id="biddingNumberTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="3" />
<TextField fx:id="capacityRatioTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<TextField fx:id="impedanceVoltageTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<Label fx:id="projectManagerLabel" prefHeight="20.0" prefWidth="83.0" text="项目经理:" GridPane.columnIndex="4" />
<Label fx:id="voltageRatioLabel" prefHeight="20.0" prefWidth="83.0" text="电压比(kV):" GridPane.columnIndex="4" GridPane.rowIndex="1" />
<Label fx:id="transportationWeightLabel" prefHeight="20.0" prefWidth="83.0" text="运输重(t):" GridPane.columnIndex="4" GridPane.rowIndex="2" />
<TextField fx:id="projectManagerTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="5" />
<TextField fx:id="voltageRatioTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="5" GridPane.rowIndex="1" />
<TextField fx:id="transportationWeightTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="5" GridPane.rowIndex="2" />
<Label fx:id="quantityLabel" prefHeight="20.0" prefWidth="83.0" text="数量:" GridPane.columnIndex="6" />
<TextField fx:id="quantityTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="7" />
<Label fx:id="totalWeightLabel" prefHeight="20.0" prefWidth="83.0" text="总重(t):" GridPane.columnIndex="6" GridPane.rowIndex="2" />
<TextField fx:id="totalWeightTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="7" GridPane.rowIndex="2" />
</children>
<padding>
<Insets right="15.0" />
</padding>
</GridPane>
<FlowPane fx:id="buttonPane" alignment="CENTER_RIGHT" hgap="40.0" layoutX="618.0" layoutY="766.0" prefHeight="60.0" prefWidth="698.0" AnchorPane.bottomAnchor="1.0" AnchorPane.rightAnchor="10.0">
<children>
<Button fx:id="saveButton" mnemonicParsing="false" prefWidth="100.0" text="保存" />
<Button fx:id="calculateButton" mnemonicParsing="false" prefWidth="100.0" text="计算金额" />
<Button fx:id="selectComparisonButton" mnemonicParsing="false" prefWidth="100.0" text="选择对比" />
<Button fx:id="compareButton" mnemonicParsing="false" prefWidth="100.0" text="对比" />
</children>
<padding>
<Insets right="30.0" />
</padding>
</FlowPane>
<BorderPane fx:id="tablePane" layoutX="14.0" layoutY="365.0" prefHeight="379.0" prefWidth="1302.0" AnchorPane.bottomAnchor="80.0" AnchorPane.leftAnchor="9.0" AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="350.0">
<center>
<TableView fx:id="materialsTable" prefHeight="320.0" prefWidth="1302.0" BorderPane.alignment="CENTER">
<columns>
<TableColumn fx:id="no" prefWidth="54.0" />
<TableColumn fx:id="materialNameColumn" prefWidth="78.0" text="材料名称" />
<TableColumn fx:id="relatedMaterialColumn" prefWidth="76.0" text="材料名称" />
<TableColumn fx:id="specificationColumn" prefWidth="223.0" text="规格" />
<TableColumn fx:id="manufacturerColumn" minWidth="0.0" prefWidth="215.0" text="制造厂商" />
<TableColumn fx:id="quantityColumn" prefWidth="81.0" text="数量(净重)" />
<TableColumn fx:id="utilizationRateColumn" prefWidth="71.0" text="利用率" />
<TableColumn fx:id="unitColumn" prefWidth="60.0" text="单位" />
<TableColumn fx:id="unitPriceColumn" prefWidth="89.0" text="单价(元)" />
<TableColumn fx:id="amountColumn" prefWidth="85.0" text="金额(元)" />
<TableColumn fx:id="comparedQuantityColumn" prefWidth="74.0" text="对比数量" />
<TableColumn fx:id="comparedUnitPriceColumn" prefWidth="75.0" text="对比单价" />
<TableColumn fx:id="comparedResultColumn" prefWidth="114.0" text="对比结果(元)" />
</columns>
</TableView>
</center>
<bottom>
<BorderPane fx:id="bordPane" prefHeight="60.0" prefWidth="314.0" BorderPane.alignment="CENTER">
<center>
<FlowPane alignment="CENTER_RIGHT" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<FlowPane alignment="CENTER" prefHeight="43.0" prefWidth="447.0">
<children>
<Label alignment="CENTER" contentDisplay="CENTER" nodeOrientation="LEFT_TO_RIGHT" text="颜色备注:">
<FlowPane.margin>
<Insets top="10.0" />
</FlowPane.margin>
</Label>
<TextField editable="false" prefHeight="20.0" prefWidth="37.0" style="-fx-background-color: #FF6600;">
<FlowPane.margin>
<Insets top="10.0" />
</FlowPane.margin>
</TextField>
<Label text=":代表亏损 ">
<FlowPane.margin>
<Insets top="10.0" />
</FlowPane.margin>
</Label>
<TextField editable="false" prefHeight="20.0" prefWidth="37.0" style="-fx-background-color: #A9D08E;">
<FlowPane.margin>
<Insets top="10.0" />
</FlowPane.margin>
</TextField>
<Label text=":代表盈利 ">
<FlowPane.margin>
<Insets top="10.0" />
</FlowPane.margin>
</Label>
</children>
</FlowPane>
<Label prefWidth="86.0" text=" 总价:" />
<TextField fx:id="totalPriceTextField" prefHeight="30.0" prefWidth="131.0" />
</children>
</FlowPane>
</center>
<bottom>
<FlowPane alignment="CENTER_RIGHT" prefHeight="50.0" prefWidth="1237.0" BorderPane.alignment="CENTER">
<children>
<Label text="总价对比结果:" />
<TextField fx:id="totalPriceCompareTextField" prefHeight="30.0" prefWidth="131.0" />
</children>
</FlowPane>
</bottom>
<padding>
<Insets top="2.0" />
</padding>
</BorderPane>
</bottom>
</BorderPane>
<FlowPane alignment="TOP_RIGHT" hgap="40.0" layoutX="160.0" layoutY="26.0" prefHeight="48.0" prefWidth="1151.0" AnchorPane.rightAnchor="10.0">
<children>
<Label fx:id="costSheetTypeLabel" prefHeight="20.0" prefWidth="83.0" text="成本单类型:" />
<ComboBox fx:id="costSheetTypeComboBox" prefHeight="30.0" prefWidth="216.0" />
<Label fx:id="editionLabel" prefHeight="20.0" prefWidth="52.0" text="版次:" />
<ComboBox fx:id="editionComboBox" prefWidth="100.0" />
<Label fx:id="comparedCostSheetLabel" prefHeight="20.0" prefWidth="113.0" text="要对比的成本单:" />
<TextField fx:id="comparedCostSheetTextField" prefHeight="30.0" prefWidth="200.0" />
</children>
</FlowPane>
<GridPane fx:id="centerPane" layoutX="14.0" layoutY="304.0" prefHeight="48.0" prefWidth="1297.0" style="-fx-border-color: gray; -fx-border-width: 0.5px; -fx-border-radius: 5px;" AnchorPane.leftAnchor="9.0" AnchorPane.rightAnchor="10.0">
<columnConstraints>
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label fx:id="copperAmountLabel" prefHeight="20.0" prefWidth="83.0" text="用铜量(kg):" />
<TextField fx:id="copperAmountTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="1" />
<Label fx:id="copperMarketPriceLabel" prefHeight="20.0" prefWidth="139.0" text="铜价市场价(元/kg):" GridPane.columnIndex="2" />
<TextField fx:id="copperMarketPriceTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="3" />
<Label fx:id="voltageLevelLabel" prefHeight="20.0" prefWidth="74.0" text="电压等级:" GridPane.columnIndex="4" />
<TextField fx:id="voltageLevelTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="5" />
</children>
<padding>
<Insets right="15.0" />
</padding>
</GridPane>
<TextArea fx:id="changeReason" layoutX="106.0" layoutY="794.0" prefHeight="106.0" prefWidth="450.0" AnchorPane.bottomAnchor="1.0" />
<Label layoutX="37.0" layoutY="796.0" text="更改原因:" AnchorPane.bottomAnchor="90.0" />
</children>
<padding>
<Insets bottom="30.0" left="5.0" right="5.0" top="10.0" />
</padding>
</AnchorPane>

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Pane?>
<AnchorPane fx:id="coverPane" prefHeight="814.0" prefWidth="1329.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.connor.plm.CreateOuotation.MyController">
<children>
<Label fx:id="costSheetTypeLabel" layoutX="461.0" layoutY="50.0" prefHeight="20.0" prefWidth="83.0" text="成本单类型:" />
<ComboBox fx:id="costSheetTypeComboBox" layoutX="560.0" layoutY="45.0" prefWidth="160.0" />
<Label fx:id="editionLabel" layoutX="762.0" layoutY="50.0" prefHeight="20.0" prefWidth="52.0" text="版次:" />
<ComboBox fx:id="editionComboBox" layoutX="822.0" layoutY="45.0" prefWidth="100.0" />
<Label fx:id="comparedCostSheetLabel" layoutX="957.0" layoutY="50.0" prefHeight="20.0" prefWidth="113.0" text="要对比的成本单:" />
<TextField fx:id="comparedCostSheetTextField" layoutX="1093.0" layoutY="45.0" prefHeight="30.0" prefWidth="200.0" />
<Pane fx:id="centerPane" layoutX="14.0" layoutY="299.0" prefHeight="48.0" prefWidth="1302.0" style="-fx-border-color: gray; -fx-border-width: 0.5px; -fx-border-radius: 5px;">
<children>
<Label fx:id="copperAmountLabel" layoutX="25.0" layoutY="14.0" prefHeight="20.0" prefWidth="83.0" text="用铜量(kg):" />
<TextField fx:id="copperAmountTextField" layoutX="131.0" layoutY="9.0" prefHeight="20.0" prefWidth="166.0" />
<Label fx:id="copperMarketPriceLabel" layoutX="375.0" layoutY="14.0" prefHeight="20.0" prefWidth="139.0" text="铜价市场价(元/kg):" />
<TextField fx:id="copperMarketPriceTextField" layoutX="533.0" layoutY="9.0" prefHeight="20.0" prefWidth="166.0" />
<Label fx:id="voltageLevelLabel" layoutX="766.0" layoutY="14.0" prefHeight="20.0" prefWidth="74.0" text="电压等级:" />
<TextField fx:id="voltageLevelTextField" layoutX="854.0" layoutY="9.0" prefHeight="20.0" prefWidth="166.0" />
</children>
</Pane>
<Pane fx:id="tablePane" layoutX="14.0" layoutY="365.0" prefHeight="380.0" prefWidth="1302.0">
<children>
<TableView fx:id="materialsTable" prefHeight="309.0" prefWidth="1302.0">
<columns>
<TableColumn fx:id="no" prefWidth="75.0" />
<TableColumn fx:id="materialNameColumn" prefWidth="126.0" text="材料名称" />
<TableColumn fx:id="relatedMaterialColumn" prefWidth="122.0" text="材料名称" />
<TableColumn fx:id="specificationColumn" prefWidth="250.0" text="规格" />
<TableColumn fx:id="manufacturerColumn" minWidth="0.0" prefWidth="203.0" text="制造厂商" />
<TableColumn fx:id="quantityColumn" prefWidth="91.0" text="数量(净重)" />
<TableColumn fx:id="utilizationRateColumn" prefWidth="69.0" text="利用率" />
<TableColumn fx:id="unitColumn" prefWidth="70.0" text="单位" />
<TableColumn fx:id="unitPriceColumn" prefWidth="86.0" text="单价(元)" />
<TableColumn fx:id="amountColumn" prefWidth="94.0" text="金额(元)" />
<TableColumn fx:id="comparedResultColumn" prefWidth="115.0" text="对比结果(元)" />
</columns>
</TableView>
<BorderPane fx:id="bordPane" layoutX="974.0" layoutY="309.0" prefHeight="60.0" prefWidth="314.0">
<center>
<FlowPane alignment="CENTER_RIGHT" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<Label prefWidth="86.0" text=" 总价:" />
<TextField fx:id="totalPriceTextField" prefHeight="30.0" prefWidth="131.0" />
</children>
</FlowPane>
</center>
<bottom>
<FlowPane alignment="CENTER_RIGHT" prefHeight="50.0" prefWidth="314.0" BorderPane.alignment="CENTER">
<children>
<Label text="总价对比结果:" />
<TextField fx:id="totalPriceCompareTextField" prefHeight="30.0" prefWidth="131.0" />
</children>
</FlowPane>
</bottom>
<padding>
<Insets top="2.0" />
</padding>
</BorderPane>
</children>
</Pane>
<Button fx:id="saveButton" layoutX="750.0" layoutY="759.0" mnemonicParsing="false" prefWidth="100.0" text="保存" />
<Button fx:id="calculateButton" layoutX="900.0" layoutY="759.0" mnemonicParsing="false" prefWidth="100.0" text="计算金额" />
<Button fx:id="selectComparisonButton" layoutX="1050.0" layoutY="759.0" mnemonicParsing="false" prefWidth="100.0" text="选择对比" />
<Button fx:id="compareButton" layoutX="1200.0" layoutY="759.0" mnemonicParsing="false" prefWidth="100.0" text="对比" />
<GridPane fx:id="gridPane" layoutX="14.0" layoutY="108.0" prefHeight="189.0" prefWidth="1302.0">
<columnConstraints>
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label fx:id="projectNameLabel" prefHeight="20.0" prefWidth="83.0" text="项目名称:" />
<TextField fx:id="projectNameTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="1" />
<Label fx:id="transformerModelLabel" prefHeight="20.0" prefWidth="83.0" text="变压器型号:" GridPane.rowIndex="1" />
<TextField fx:id="transformerModelTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label fx:id="noLoadLossLabel" prefHeight="20.0" prefWidth="83.0" text="空载损耗:" GridPane.rowIndex="2" />
<TextField fx:id="noLoadLossTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label fx:id="loadLossLabel" prefHeight="20.0" prefWidth="120.0" text="负载损耗(KW):" GridPane.rowIndex="3" />
<TextField fx:id="loadLossTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="1" GridPane.rowIndex="3" />
<Label fx:id="biddingNumberLabel" prefHeight="20.0" prefWidth="83.0" text="投标编号:" GridPane.columnIndex="2" />
<Label fx:id="capacityRatioLabel" prefHeight="20.0" prefWidth="120.0" text="容量比(MVA):" GridPane.columnIndex="2" GridPane.rowIndex="1" />
<Label fx:id="impedanceVoltageLabel" prefHeight="20.0" prefWidth="83.0" text="阻抗电压:" GridPane.columnIndex="2" GridPane.rowIndex="2" />
<TextField fx:id="biddingNumberTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="3" />
<TextField fx:id="capacityRatioTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<TextField fx:id="impedanceVoltageTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<Label fx:id="projectManagerLabel" prefHeight="20.0" prefWidth="83.0" text="项目经理:" GridPane.columnIndex="4" />
<Label fx:id="voltageRatioLabel" prefHeight="20.0" prefWidth="83.0" text="电压比(kV):" GridPane.columnIndex="4" GridPane.rowIndex="1" />
<Label fx:id="transportationWeightLabel" prefHeight="20.0" prefWidth="83.0" text="运输重(t):" GridPane.columnIndex="4" GridPane.rowIndex="2" />
<TextField fx:id="projectManagerTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="5" />
<TextField fx:id="voltageRatioTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="5" GridPane.rowIndex="1" />
<TextField fx:id="transportationWeightTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="5" GridPane.rowIndex="2" />
<Label fx:id="quantityLabel" prefHeight="20.0" prefWidth="83.0" text="数量:" GridPane.columnIndex="6" />
<TextField fx:id="quantityTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="7" />
<Label fx:id="totalWeightLabel" prefHeight="20.0" prefWidth="83.0" text="总重(t):" GridPane.columnIndex="6" GridPane.rowIndex="2" />
<TextField fx:id="totalWeightTextField" prefHeight="20.0" prefWidth="166.0" GridPane.columnIndex="7" GridPane.rowIndex="2" />
</children>
</GridPane>
</children>
</AnchorPane>

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Pane?>
<AnchorPane fx:id="coverPane" prefHeight="814.0" prefWidth="1329.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.connor.plm.CreateOuotation.MyController">
<children>
<Pane fx:id="topPane" layoutX="14.0" layoutY="91.0" prefHeight="189.0" prefWidth="1302.0" style="-fx-border-color: gray; -fx-border-width: 0.5px; -fx-border-radius: 5px;">
<children>
<Label fx:id="projectNameLabel" layoutX="23.0" layoutY="16.0" prefHeight="20.0" prefWidth="83.0" text="项目名称:" />
<Label fx:id="transformerModelLabel" layoutX="23.0" layoutY="60.0" prefHeight="20.0" prefWidth="83.0" text="变压器型号:" />
<Label fx:id="noLoadLossLabel" layoutX="23.0" layoutY="105.0" prefHeight="20.0" prefWidth="83.0" text="空载损耗:" />
<Label fx:id="loadLossLabel" layoutX="23.0" layoutY="148.0" prefHeight="20.0" prefWidth="120.0" text="负载损耗(KW):" />
<TextField fx:id="projectNameTextField" layoutX="129.0" layoutY="11.0" prefHeight="20.0" prefWidth="166.0" />
<TextField fx:id="transformerModelTextField" layoutX="129.0" layoutY="55.0" prefHeight="20.0" prefWidth="166.0" />
<TextField fx:id="noLoadLossTextField" layoutX="129.0" layoutY="100.0" prefHeight="20.0" prefWidth="166.0" />
<TextField fx:id="loadLossTextField" layoutX="129.0" layoutY="143.0" prefHeight="20.0" prefWidth="166.0" />
<Label fx:id="biddingNumberLabel" layoutX="355.0" layoutY="16.0" prefHeight="20.0" prefWidth="83.0" text="投标编号:" />
<TextField fx:id="biddingNumberTextField" layoutX="473.0" layoutY="11.0" prefHeight="20.0" prefWidth="166.0" />
<Label fx:id="capacityRatioLabel" layoutX="355.0" layoutY="60.0" prefHeight="20.0" prefWidth="120.0" text="容量比(MVA):" />
<TextField fx:id="capacityRatioTextField" layoutX="473.0" layoutY="55.0" prefHeight="20.0" prefWidth="166.0" />
<Label fx:id="impedanceVoltageLabel" layoutX="355.0" layoutY="105.0" prefHeight="20.0" prefWidth="83.0" text="阻抗电压:" />
<Label fx:id="projectManagerLabel" layoutX="705.0" layoutY="16.0" prefHeight="20.0" prefWidth="83.0" text="项目经理:" />
<TextField fx:id="impedanceVoltageTextField" layoutX="473.0" layoutY="100.0" prefHeight="20.0" prefWidth="166.0" />
<TextField fx:id="projectManagerTextField" layoutX="825.0" layoutY="11.0" prefHeight="20.0" prefWidth="166.0" />
<Label fx:id="voltageRatioLabel" layoutX="705.0" layoutY="60.0" prefHeight="20.0" prefWidth="83.0" text="电压比(kV):" />
<Label fx:id="transportationWeightLabel" layoutX="705.0" layoutY="105.0" prefHeight="20.0" prefWidth="83.0" text="运输重(t):" />
<TextField fx:id="voltageRatioTextField" layoutX="825.0" layoutY="55.0" prefHeight="20.0" prefWidth="166.0" />
<TextField fx:id="transportationWeightTextField" layoutX="825.0" layoutY="100.0" prefHeight="20.0" prefWidth="166.0" />
<Label fx:id="quantityLabel" layoutX="1044.0" layoutY="15.0" prefHeight="20.0" prefWidth="83.0" text="数量:" />
<Label fx:id="totalWeightLabel" layoutX="1044.0" layoutY="105.0" prefHeight="20.0" prefWidth="83.0" text="总重(t):" />
<TextField fx:id="quantityTextField" layoutX="1113.0" layoutY="11.0" prefHeight="20.0" prefWidth="166.0" />
<TextField fx:id="totalWeightTextField" layoutX="1113.0" layoutY="100.0" prefHeight="20.0" prefWidth="166.0" />
</children>
</Pane>
<Label fx:id="costSheetTypeLabel" layoutX="461.0" layoutY="50.0" prefHeight="20.0" prefWidth="83.0" text="成本单类型:" />
<ComboBox fx:id="costSheetTypeComboBox" layoutX="560.0" layoutY="45.0" prefWidth="160.0" />
<Label fx:id="editionLabel" layoutX="762.0" layoutY="50.0" prefHeight="20.0" prefWidth="52.0" text="版次:" />
<ComboBox fx:id="editionComboBox" layoutX="822.0" layoutY="45.0" prefWidth="100.0" />
<Label fx:id="comparedCostSheetLabel" layoutX="957.0" layoutY="50.0" prefHeight="20.0" prefWidth="113.0" text="要对比的成本单:" />
<TextField fx:id="comparedCostSheetTextField" layoutX="1093.0" layoutY="45.0" prefHeight="30.0" prefWidth="200.0" />
<Pane fx:id="centerPane" layoutX="14.0" layoutY="299.0" prefHeight="48.0" prefWidth="1302.0" style="-fx-border-color: gray; -fx-border-width: 0.5px; -fx-border-radius: 5px;">
<children>
<Label fx:id="copperAmountLabel" layoutX="25.0" layoutY="14.0" prefHeight="20.0" prefWidth="83.0" text="用铜量(kg):" />
<TextField fx:id="copperAmountTextField" layoutX="131.0" layoutY="9.0" prefHeight="20.0" prefWidth="166.0" />
<Label fx:id="copperMarketPriceLabel" layoutX="375.0" layoutY="14.0" prefHeight="20.0" prefWidth="139.0" text="铜价市场价(元/kg):" />
<TextField fx:id="copperMarketPriceTextField" layoutX="533.0" layoutY="9.0" prefHeight="20.0" prefWidth="166.0" />
<Label fx:id="voltageLevelLabel" layoutX="766.0" layoutY="14.0" prefHeight="20.0" prefWidth="74.0" text="电压等级:" />
<TextField fx:id="voltageLevelTextField" layoutX="854.0" layoutY="9.0" prefHeight="20.0" prefWidth="166.0" />
</children>
</Pane>
<Pane fx:id="tablePane" layoutX="14.0" layoutY="365.0" prefHeight="380.0" prefWidth="1302.0">
<children>
<TableView fx:id="materialsTable" prefHeight="309.0" prefWidth="1302.0">
<columns>
<TableColumn fx:id="no" prefWidth="75.0" />
<TableColumn fx:id="materialNameColumn" prefWidth="126.0" text="材料名称" />
<TableColumn fx:id="relatedMaterialColumn" prefWidth="122.0" text="材料名称" />
<TableColumn fx:id="specificationColumn" prefWidth="250.0" text="规格" />
<TableColumn fx:id="manufacturerColumn" minWidth="0.0" prefWidth="203.0" text="制造厂商" />
<TableColumn fx:id="quantityColumn" prefWidth="91.0" text="数量(净重)" />
<TableColumn fx:id="utilizationRateColumn" prefWidth="69.0" text="利用率" />
<TableColumn fx:id="unitColumn" prefWidth="70.0" text="单位" />
<TableColumn fx:id="unitPriceColumn" prefWidth="86.0" text="单价(元)" />
<TableColumn fx:id="amountColumn" prefWidth="94.0" text="金额(元)" />
<TableColumn fx:id="comparedResultColumn" prefWidth="115.0" text="对比结果(元)" />
</columns>
</TableView>
<TextField fx:id="totalPriceTextField" layoutX="1171.0" layoutY="308.0" prefHeight="30.0" prefWidth="131.0" />
<Label layoutX="1085.0" layoutY="313.0" prefWidth="86.0" text=" 总价:" />
<Label layoutX="1050.0" layoutY="346.0" text="总价对比结果:" />
<TextField fx:id="totalPriceCompareTextField" layoutX="1171.0" layoutY="341.0" prefHeight="30.0" prefWidth="131.0" />
</children>
</Pane>
<Button fx:id="saveButton" layoutX="750.0" layoutY="759.0" mnemonicParsing="false" prefWidth="100.0" text="保存" />
<Button fx:id="calculateButton" layoutX="900.0" layoutY="759.0" mnemonicParsing="false" prefWidth="100.0" text="计算金额" />
<Button fx:id="selectComparisonButton" layoutX="1050.0" layoutY="759.0" mnemonicParsing="false" prefWidth="100.0" text="选择对比" />
<Button fx:id="compareButton" layoutX="1200.0" layoutY="759.0" mnemonicParsing="false" prefWidth="100.0" text="对比" />
</children>
</AnchorPane>

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<Pane fx:id="pane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="840.0" prefWidth="1270.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.connor.plm.GZXQ.GZXQController">
<children>
<BorderPane fx:id="bpane" layoutX="5.0" layoutY="14.0" prefHeight="840.0" prefWidth="1261.0">
<top>
<TitledPane fx:id="titlePaneCondition" animated="false" prefHeight="182.0" prefWidth="1034.0" text="条件" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="151.0" prefWidth="964.0">
<children>
<GridPane fx:id="gridPaneCondition" layoutX="13.0" layoutY="11.0" prefHeight="114.0" prefWidth="1218.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="109.0" minWidth="10.0" prefWidth="86.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="216.0" minWidth="10.0" prefWidth="164.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="112.0" minWidth="10.0" prefWidth="93.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="233.0" minWidth="10.0" prefWidth="185.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="103.0" minWidth="10.0" prefWidth="95.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="246.0" minWidth="10.0" prefWidth="191.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="189.0" minWidth="10.0" prefWidth="97.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="212.0" minWidth="10.0" prefWidth="212.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<TextField fx:id="jTextField1" GridPane.columnIndex="1" />
<TextField fx:id="jTextField2" prefHeight="30.0" prefWidth="189.0" GridPane.columnIndex="3" />
<TextField fx:id="jTextField5" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField fx:id="jTextField6" prefHeight="30.0" prefWidth="152.0" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<TextField fx:id="jTextField7" GridPane.columnIndex="5" GridPane.rowIndex="1" />
<TextField fx:id="jTextField3" GridPane.columnIndex="5" />
<TextField fx:id="jTextField8" GridPane.columnIndex="7" GridPane.rowIndex="1" />
<TextField fx:id="jTextField4" prefHeight="30.0" prefWidth="168.0" GridPane.columnIndex="7" />
<TextField fx:id="jTextField9" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<TextField fx:id="jTextField10" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<Label text="流程实例ID" GridPane.halignment="CENTER" />
<Label text="工装名称" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label text="产品名称" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
<Label text="工艺负责人" GridPane.columnIndex="2" GridPane.halignment="CENTER" />
<Label text="委托理由" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label text="工装等级" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
<Label text="产品型号" GridPane.columnIndex="4" GridPane.halignment="CENTER" />
<Label text="计划时间" GridPane.columnIndex="4" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label GridPane.columnIndex="4" GridPane.rowIndex="2" />
<Label text="工装编号" GridPane.columnIndex="6" GridPane.halignment="CENTER" />
<Label text="申请人" GridPane.columnIndex="6" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Button fx:id="jButton2" mnemonicParsing="false" onAction="#cxAction" prefHeight="30.0" prefWidth="98.0" text="查 询" GridPane.columnIndex="7" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="BOTTOM">
<GridPane.margin>
<Insets />
</GridPane.margin>
</Button>
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</top>
<center>
<TitledPane fx:id="titlePaneResult" animated="false" prefHeight="620.0" prefWidth="966.0" text="结果" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="570.0" prefWidth="964.0">
<children>
<BorderPane fx:id="tablePane" layoutX="8.0" layoutY="6.0" prefHeight="573.0" prefWidth="1245.0">
<top>
<TableView fx:id="tableView" prefHeight="544.0" prefWidth="1195.0" BorderPane.alignment="CENTER" />
</top>
<bottom>
<GridPane fx:id="gridPaneResult" prefHeight="29.0" prefWidth="948.0" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="sy" mnemonicParsing="false" onAction="#firstBtnAction" text="首页" GridPane.columnIndex="2" />
<Button fx:id="syy" mnemonicParsing="false" onAction="#lastBtnAction" text="上一页" GridPane.columnIndex="3" />
<Button mnemonicParsing="false" onAction="#nextBtnAction" text="下一页" GridPane.columnIndex="4" fx:id="xyy" />
<Button fx:id="wy" mnemonicParsing="false" onAction="#tailBtnAction" text="尾页" GridPane.columnIndex="5" />
</children>
</GridPane>
</bottom>
</BorderPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</center>
</BorderPane>
</children>
</Pane>

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<Pane fx:id="pane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="840.0" prefWidth="1270.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.connor.plm.GZXQ.GZXQController">
<children>
<BorderPane fx:id="bpane" layoutX="5.0" layoutY="14.0" prefHeight="840.0" prefWidth="1261.0">
<top>
<TitledPane fx:id="titlePaneCondition" animated="false" prefHeight="182.0" prefWidth="1034.0" text="条件" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="151.0" prefWidth="964.0">
<children>
<GridPane fx:id="gridPaneCondition" layoutX="13.0" layoutY="11.0" prefHeight="114.0" prefWidth="1218.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="109.0" minWidth="10.0" prefWidth="86.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="216.0" minWidth="10.0" prefWidth="164.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="112.0" minWidth="10.0" prefWidth="93.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="233.0" minWidth="10.0" prefWidth="185.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="103.0" minWidth="10.0" prefWidth="95.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="246.0" minWidth="10.0" prefWidth="191.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="189.0" minWidth="10.0" prefWidth="97.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="212.0" minWidth="10.0" prefWidth="212.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<TextField fx:id="jTextField1" GridPane.columnIndex="1" />
<TextField fx:id="jTextField2" prefHeight="30.0" prefWidth="189.0" GridPane.columnIndex="3" />
<TextField fx:id="jTextField5" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField fx:id="jTextField6" prefHeight="30.0" prefWidth="152.0" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<TextField fx:id="jTextField3" GridPane.columnIndex="5" />
<TextField fx:id="jTextField8" GridPane.columnIndex="7" GridPane.rowIndex="1" />
<TextField fx:id="jTextField4" prefHeight="30.0" prefWidth="168.0" GridPane.columnIndex="7" />
<TextField fx:id="jTextField9" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<TextField fx:id="jTextField10" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<Label text="流程实例ID" GridPane.halignment="CENTER" />
<Label text="工装名称" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label text="产品名称" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
<Label text="工艺负责人" GridPane.columnIndex="2" GridPane.halignment="CENTER" />
<Label text="委托理由" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label text="工装等级" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
<Label text="产品型号" GridPane.columnIndex="4" GridPane.halignment="CENTER" />
<Label text="计划时间" GridPane.columnIndex="4" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label GridPane.columnIndex="4" GridPane.rowIndex="2" />
<Label text="工装编号" GridPane.columnIndex="6" GridPane.halignment="CENTER" />
<Label text="申请人" GridPane.columnIndex="6" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Button fx:id="jButton2" mnemonicParsing="false" onAction="#cxAction" prefHeight="30.0" prefWidth="98.0" text="查 询" GridPane.columnIndex="7" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="BOTTOM">
<GridPane.margin>
<Insets />
</GridPane.margin>
</Button>
<DatePicker GridPane.columnIndex="5" GridPane.rowIndex="1" />
<DatePicker fx:id="jTextField7" GridPane.columnIndex="5" GridPane.rowIndex="1" />
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</top>
<center>
<TitledPane fx:id="titlePaneResult" animated="false" prefHeight="620.0" prefWidth="966.0" text="结果" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="570.0" prefWidth="964.0">
<children>
<BorderPane fx:id="tablePane" layoutX="8.0" layoutY="6.0" prefHeight="573.0" prefWidth="1245.0">
<top>
<TableView fx:id="tableView" prefHeight="544.0" prefWidth="1195.0" BorderPane.alignment="CENTER" />
</top>
<bottom>
<GridPane fx:id="gridPaneResult" prefHeight="29.0" prefWidth="948.0" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="sy" mnemonicParsing="false" onAction="#firstBtnAction" text="首页" GridPane.columnIndex="2" />
<Button fx:id="syy" mnemonicParsing="false" onAction="#lastBtnAction" text="上一页" GridPane.columnIndex="3" />
<Button mnemonicParsing="false" onAction="#nextBtnAction" text="下一页" GridPane.columnIndex="4" fx:id="xyy" />
<Button fx:id="wy" mnemonicParsing="false" onAction="#tailBtnAction" text="尾页" GridPane.columnIndex="5" />
</children>
</GridPane>
</bottom>
</BorderPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</center>
</BorderPane>
</children>
</Pane>

@ -0,0 +1,24 @@
preferr=\u9996\u9009\u9879\u914D\u7F6E\u4E0D\u6B63\u786E
err=\u9519\u8BEF\uFF1A
#ProcessCheckDialog
title=\u5DE5\u827A\u8DEF\u7EBF\u9F50\u5957\u6027\u68C0\u67E5
cols=\u5E8F\u53F7;\u7269\u6599\u7F16\u7801;\u7269\u6599\u540D\u79F0;\u662F\u5426\u5173\u8054\u5DE5\u827A\u8DEF\u7EBF
xmzx=\u9879\u76EE\u6267\u884C
zztz=13-\u603B\u88C5\u56FE\u7EB8
msg1=\u8BF7\u9009\u62E9\u9879\u76EE\u5BF9\u8C61
msg2=\u672A\u627E\u5230\u603B\u88C5\u56FE\u7EB8
yes=\u662F
no=\u5426
#AssProcessAutoFeedingCommand
cpxh=\u4EA7\u54C1\u578B\u53F7
info1=\u8BF7\u767B\u5F55\u6B63\u786E\u7EC4
info2=\u8BF7\u9009\u62E9BOM\u884C\u6216\u8005\u7248\u672C\u5BF9\u8C61
info3=\u8BF7\u9009\u62E9PBOM\u5BF9\u8C61
info4=\u672A\u627E\u5230\u4EA7\u6210\u54C1\u6587\u4EF6\u5939\uFF0C\u8BF7\u68C0\u67E5
info5=\u5B58\u5728\u9876\u5C42P\u7269\u6599\u6CA1\u6709\u5173\u8054\u56FE\u7EB8\uFF0C\u8BF7\u68C0\u67E5
info6=\u5F53\u524D\u4EA7\u54C1\u578B\u53F7\u672A\u7EF4\u62A4\uFF0C\u8BF7\u9009\u62E9\u5BF9\u5E94\u4EA7\u54C1\u65CF
info7=\u6B63\u5728\u8FDB\u884C\u4E00\u952E\u6307\u6D3E\u5DE5\u827A\u8DEF\u7EBF......
info8=\u6307\u6D3E\u5DE5\u827A\u8DEF\u7EBF\u5B58\u5728\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\uFF1A\n
info9=\u6B63\u5728\u8FDB\u884C\u81EA\u52A8\u6295\u6599......
info10=\u81EA\u52A8\u6295\u6599\u5B58\u5728\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\uFF1A\n
info11=\u6307\u6D3E\u5DE5\u827A\u8DEF\u7EBF\u4E0E\u81EA\u52A8\u6295\u6599\u5B8C\u6210

@ -0,0 +1,24 @@
preferr=\u9996\u9009\u9879\u914D\u7F6E\u4E0D\u6B63\u786E
#ProcessCheckDialog
err=\u9519\u8BEF\uFF1A
title=\u5DE5\u827A\u8DEF\u7EBF\u9F50\u5957\u6027\u68C0\u67E5
cols=\u5E8F\u53F7;\u7269\u6599\u7F16\u7801;\u7269\u6599\u540D\u79F0;\u662F\u5426\u5173\u8054\u5DE5\u827A\u8DEF\u7EBF
xmzx=\u9879\u76EE\u6267\u884C
zztz=13-\u603B\u88C5\u56FE\u7EB8
msg1=\u8BF7\u9009\u62E9\u9879\u76EE\u5BF9\u8C61
msg2=\u672A\u627E\u5230\u603B\u88C5\u56FE\u7EB8
yes=\u662F
no=\u5426
#AssProcessAutoFeedingCommand
cpxh=\u4EA7\u54C1\u578B\u53F7
info1=\u8BF7\u767B\u5F55\u6B63\u786E\u7EC4
info2=\u8BF7\u9009\u62E9BOM\u884C\u6216\u8005\u7248\u672C\u5BF9\u8C61
info3=\u8BF7\u9009\u62E9PBOM\u5BF9\u8C61
info4=\u672A\u627E\u5230\u4EA7\u6210\u54C1\u6587\u4EF6\u5939\uFF0C\u8BF7\u68C0\u67E5
info5=\u5B58\u5728\u9876\u5C42P\u7269\u6599\u6CA1\u6709\u5173\u8054\u56FE\u7EB8\uFF0C\u8BF7\u68C0\u67E5
info6=\u5F53\u524D\u4EA7\u54C1\u578B\u53F7\u672A\u7EF4\u62A4\uFF0C\u8BF7\u9009\u62E9\u5BF9\u5E94\u4EA7\u54C1\u65CF
info7=\u6B63\u5728\u8FDB\u884C\u4E00\u952E\u6307\u6D3E\u5DE5\u827A\u8DEF\u7EBF......
info8=\u6307\u6D3E\u5DE5\u827A\u8DEF\u7EBF\u5B58\u5728\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\uFF1A\n
info9=\u6B63\u5728\u8FDB\u884C\u81EA\u52A8\u6295\u6599......
info10=\u81EA\u52A8\u6295\u6599\u5B58\u5728\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\uFF1A\n
info11=\u6307\u6D3E\u5DE5\u827A\u8DEF\u7EBF\u4E0E\u81EA\u52A8\u6295\u6599\u5B8C\u6210

@ -4,8 +4,12 @@
<extension point="org.eclipse.ui.commands"> <extension point="org.eclipse.ui.commands">
<!--工具条--> <!--工具条-->
<!-- <command name="创建RDM研发项目" id="com.connor.plm.rdmCreate.RdmCreateHandler"/>-->
<command name="SRM图纸下发查询" id="com.chint.plm.SearchSapResult9.PlclIDHandler"/> <command name="SRM图纸下发查询" id="com.chint.plm.SearchSapResult9.PlclIDHandler"/>
<command name="SRM图纸下发" id="com.connor.plm.srm.SRMHandler"/> <command name="SRM图纸下发" id="com.connor.plm.srm.SRMHandler"/>
<command name="更新图纸自制外购" id="com.connor.plm.txdp.GXTZHandler"/>
<command name="铁心数据管理" id="com.connor.plm.txdp.TXDPHandler"/>
<command name="标准工时维护" id="com.connor.plm.txdp.BZGSHandler"/>
<command name="获取售前资料" id="com.connor.plm.srm.FileIntegrationHandler"/> <command name="获取售前资料" id="com.connor.plm.srm.FileIntegrationHandler"/>
<command name="DBOM转EBOM" id="com.connor.chint.yunpi.command.DbomToECommand"/> <command name="DBOM转EBOM" id="com.connor.chint.yunpi.command.DbomToECommand"/>
<command name="EBOM转PBOM" id="com.connor.chint.yunpi.command.EbomToPCommand"/> <command name="EBOM转PBOM" id="com.connor.chint.yunpi.command.EbomToPCommand"/>
@ -13,6 +17,7 @@
<command name="框架BOM传递SAP" id="com.connor.chint.yunpi.command.BomSapKjSendCommand"/> <command name="框架BOM传递SAP" id="com.connor.chint.yunpi.command.BomSapKjSendCommand"/>
<command name="项目BOM传递SAP" id="com.connor.chint.yunpi.command.BomSapWhCommand"/> <command name="项目BOM传递SAP" id="com.connor.chint.yunpi.command.BomSapWhCommand"/>
<command name="拆卸一览表下发" id="com.connor.chint.yunpi.command.ZxjcCommand"/> <command name="拆卸一览表下发" id="com.connor.chint.yunpi.command.ZxjcCommand"/>
<command name="拆卸一览表默认数据管理" id="com.connor.chint.yunpi.command.QueryZxjcHandler"/>
<command name="部件BOM传递SAP" id="com.connor.chint.yunpi.command.BomSapWhBjCommand"/> <command name="部件BOM传递SAP" id="com.connor.chint.yunpi.command.BomSapWhBjCommand"/>
<command name="物料编码批量申请-全部图纸" id="com.chint.plm.applyMatnr.ApplyMatnrCommand#all"/> <command name="物料编码批量申请-全部图纸" id="com.chint.plm.applyMatnr.ApplyMatnrCommand#all"/>
<!--正泰定制下 中压开关--> <!--正泰定制下 中压开关-->
@ -41,8 +46,12 @@
<extension <extension
point="org.eclipse.ui.handlers"> point="org.eclipse.ui.handlers">
<handler commandId="com.connor.plm.srm.FileIntegrationHandler" class="com.connor.plm.srm.FileIntegrationHandler"/> <handler commandId="com.connor.plm.srm.FileIntegrationHandler" class="com.connor.plm.srm.FileIntegrationHandler"/>
<!--<handler commandId="com.connor.plm.rdmCreate.RdmCreateHandler" class="com.connor.plm.rdmCreate.RdmCreateHandler"/>-->
<handler commandId="com.chint.plm.SearchSapResult9.PlclIDHandler" class="com.chint.plm.SearchSapResult9.PlclIDHandler"/> <handler commandId="com.chint.plm.SearchSapResult9.PlclIDHandler" class="com.chint.plm.SearchSapResult9.PlclIDHandler"/>
<handler commandId="com.connor.plm.srm.SRMHandler" class="com.connor.plm.srm.SRMHandler"/> <handler commandId="com.connor.plm.srm.SRMHandler" class="com.connor.plm.srm.SRMHandler"/>
<handler commandId="com.connor.plm.txdp.TXDPHandler" class="com.connor.plm.txdp.TXDPHandler"/>
<handler commandId="com.connor.plm.txdp.BZGSHandler" class="com.connor.plm.txdp.BZGSHandler"/>
<handler commandId="com.connor.plm.txdp.GXTZHandler" class="com.connor.plm.txdp.GXTZHandler"/>
<handler commandId="com.chint.plm.createbomdifference.BomCompareComd" class="com.connor.chint.yunpi.KHandler"/> <handler commandId="com.chint.plm.createbomdifference.BomCompareComd" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.chint.plm.createbomdifference.ExtractDiffComd" class="com.connor.chint.yunpi.KHandler"/> <handler commandId="com.chint.plm.createbomdifference.ExtractDiffComd" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.chint.plm.extractdraw.ExtractDrawComd" class="com.connor.chint.yunpi.KHandler"/> <handler commandId="com.chint.plm.extractdraw.ExtractDrawComd" class="com.connor.chint.yunpi.KHandler"/>
@ -59,6 +68,7 @@
<handler commandId="com.connor.chint.yunpi.command.EbomToPCommand" class="com.connor.chint.yunpi.KHandler"/> <handler commandId="com.connor.chint.yunpi.command.EbomToPCommand" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.connor.chint.yunpi.command.BomSapWhCommand" class="com.connor.chint.yunpi.KHandler"/> <handler commandId="com.connor.chint.yunpi.command.BomSapWhCommand" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.connor.chint.yunpi.command.ZxjcCommand" class="com.connor.chint.yunpi.KHandler"/> <handler commandId="com.connor.chint.yunpi.command.ZxjcCommand" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.connor.chint.yunpi.command.QueryZxjcHandler" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.connor.chint.yunpi.command.BomSapWhBjCommand" class="com.connor.chint.yunpi.KHandler"/> <handler commandId="com.connor.chint.yunpi.command.BomSapWhBjCommand" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.chint.plm.createKjBom.CreateKjBomCommand" class="com.connor.chint.yunpi.KHandler"/> <handler commandId="com.chint.plm.createKjBom.CreateKjBomCommand" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.connor.chint.yunpi.command.DbomToECommand" class="com.connor.chint.yunpi.KHandler"/> <handler commandId="com.connor.chint.yunpi.command.DbomToECommand" class="com.connor.chint.yunpi.KHandler"/>
@ -73,6 +83,34 @@
</extension> </extension>
<extension point="org.eclipse.ui.menus"> <extension point="org.eclipse.ui.menus">
<menuContribution locationURI="menu:com.connor.chint.sap2.menu.test?after=additions">
<command commandId = "com.connor.plm.GZXQHandler" id = "com.connor.plm.GZXQHandler">
</command>
<command commandId = "com.connor.plm.txdp.TXDPHandler" id = "com.connor.plm.txdp.TXDPHandler">
<visibleWhen>
<and>
<or>
<reference definitionId="com.teamcenter.rac.ui.inMainPerspective"/>
<reference definitionId="com.teamcenter.rac.pse.inMainView"/>
</or>
<with
variable="rac_command_suppression">
<not>
<iterate
operator="or">
<equals
value="com.connor.plm.txdp.TXDPHandler">
</equals>
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
</menuContribution>
<menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=additions"> <menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=additions">
@ -486,6 +524,29 @@
</visibleWhen> </visibleWhen>
</command> </command>
<command commandId = "com.connor.chint.yunpi.command.QueryZxjcHandler" id = "com.connor.chint.yunpi.command.QueryZxjcHandler">
<visibleWhen>
<and>
<or>
<reference definitionId="com.teamcenter.rac.ui.inMainPerspective"/>
<reference definitionId="com.teamcenter.rac.pse.inMainView"/>
</or>
<with
variable="rac_command_suppression">
<not>
<iterate
operator="or">
<equals
value="com.connor.chint.yunpi.command.QueryZxjcHandler">
</equals>
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
<command commandId = "com.connor.chint.yunpi.command.BomDcSapCommand" id = "com.connor.chint.yunpi.command.BomDcSapCommand"> <command commandId = "com.connor.chint.yunpi.command.BomDcSapCommand" id = "com.connor.chint.yunpi.command.BomDcSapCommand">
<visibleWhen> <visibleWhen>
<and> <and>
@ -637,6 +698,71 @@
</visibleWhen> </visibleWhen>
</command> </command>
<command commandId = "com.connor.plm.txdp.TXDPHandler" id = "com.connor.plm.txdp.TXDPHandler">
<visibleWhen>
<and>
<or>
<reference definitionId="com.teamcenter.rac.ui.inMainPerspective"/>
<reference definitionId="com.teamcenter.rac.pse.inMainView"/>
</or>
<with
variable="rac_command_suppression">
<not>
<iterate
operator="or">
<equals
value="com.connor.plm.txdp.TXDPHandler">
</equals>
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
<command commandId = "com.connor.plm.txdp.BZGSHandler" id = "com.connor.plm.txdp.BZGSHandler">
<visibleWhen>
<and>
<or>
<reference definitionId="com.teamcenter.rac.ui.inMainPerspective"/>
<reference definitionId="com.teamcenter.rac.pse.inMainView"/>
</or>
<with
variable="rac_command_suppression">
<not>
<iterate
operator="or">
<equals
value="com.connor.plm.txdp.BZGSHandler">
</equals>
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
<command commandId = "com.connor.plm.txdp.GXTZHandler" id = "com.connor.plm.txdp.GXTZHandler">
<visibleWhen>
<and>
<or>
<reference definitionId="com.teamcenter.rac.ui.inMainPerspective"/>
<reference definitionId="com.teamcenter.rac.pse.inMainView"/>
</or>
<with
variable="rac_command_suppression">
<not>
<iterate
operator="or">
<equals
value="com.connor.plm.txdp.GXTZHandler">
</equals>
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
<command commandId = "com.connor.plm.srm.FileIntegrationHandler" id = "com.connor.plm.srm.FileIntegrationHandler"> <command commandId = "com.connor.plm.srm.FileIntegrationHandler" id = "com.connor.plm.srm.FileIntegrationHandler">
<visibleWhen> <visibleWhen>
@ -683,7 +809,29 @@
</visibleWhen> </visibleWhen>
</command> </command>
<!--
<command commandId = "com.connor.plm.rdmCreate.RdmCreateHandler" id = "com.connor.plm.rdmCreate.RdmCreateHandler">
<visibleWhen>
<and>
<or>
<reference definitionId="com.teamcenter.rac.ui.inMainPerspective"/>
<reference definitionId="com.teamcenter.rac.pse.inMainView"/>
</or>
<with
variable="rac_command_suppression">
<not>
<iterate
operator="or">
<equals
value="com.connor.plm.rdmCreate.RdmCreateHandler">
</equals>
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
-->
</menuContribution> </menuContribution>
</extension> </extension>

@ -13,6 +13,7 @@ public class ApplyBean {
this.mCode = mCode; this.mCode = mCode;
} }
public String getIdType() { public String getIdType() {
return idType; return idType;
} }

@ -207,7 +207,7 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
// 220103001 CHINT_MadMaterialApply // 220103001 CHINT_MadMaterialApply
for(ApplyBean bean:beans) { for(ApplyBean bean:beans) {
if(bean.getIdType().equals("1ZD")) { if(bean.getIdType().equals("1ZD") || bean.getIdType().equals("6ZD")) {
m_code1 = bean.getmCode(); m_code1 = bean.getmCode();
}else { }else {
m_code2 = bean.getmCode(); m_code2 = bean.getmCode();
@ -388,7 +388,7 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
for(TCComponentItemRevision generalRev:general_maps.keySet()) { for(TCComponentItemRevision generalRev:general_maps.keySet()) {
String item_id = generalRev.getStringProperty("item_id"); String item_id = generalRev.getStringProperty("item_id");
String stringProperty = generalRev.getStringProperty("object_name"); String stringProperty = generalRev.getStringProperty("object_name");
if(item_id.startsWith("1ZD")) { if(item_id.startsWith("1ZD") || item_id.startsWith("6ZD")) {
if(!nameList.contains(stringProperty)) { if(!nameList.contains(stringProperty)) {
errBuff.append(generalRev.toString()).append("\n"); errBuff.append(generalRev.toString()).append("\n");
} }
@ -830,7 +830,7 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
} }
String bpNo = properties[0];//rev.getProperty("item_id"); // 非必填 String bpNo = properties[0];//rev.getProperty("item_id"); // 非必填
String zt2_DrawingNo = properties[2];//rev.getProperty("zt2_DrawingNo"); String zt2_DrawingNo = properties[2];//rev.getProperty("zt2_DrawingNo");
if (!KUtil.isEmpty(zt2_DrawingNo)&& !stuf.equalsIgnoreCase("1ZD")) { if (!KUtil.isEmpty(zt2_DrawingNo) && !stuf.equalsIgnoreCase("1ZD") && !stuf.equalsIgnoreCase("6ZD")) {
if (!bpNo.equals(zt2_DrawingNo)) if (!bpNo.equals(zt2_DrawingNo))
bpNo = zt2_DrawingNo; bpNo = zt2_DrawingNo;
} }
@ -984,7 +984,7 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
} }
String bpNo = properties[0].toString();// rev.getProperty("item_id"); // 非必填 String bpNo = properties[0].toString();// rev.getProperty("item_id"); // 非必填
String zt2_DrawingNo = properties[2];// rev.getProperty("zt2_DrawingNo"); String zt2_DrawingNo = properties[2];// rev.getProperty("zt2_DrawingNo");
if (!KUtil.isEmpty(zt2_DrawingNo) && !stuf.equalsIgnoreCase("1ZD")) { if (!KUtil.isEmpty(zt2_DrawingNo) && !stuf.equalsIgnoreCase("1ZD") && !stuf.equalsIgnoreCase("6ZD")) {
if (!bpNo.equals(zt2_DrawingNo)) if (!bpNo.equals(zt2_DrawingNo))
bpNo = zt2_DrawingNo; bpNo = zt2_DrawingNo;
} }
@ -1094,7 +1094,8 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
String item_id = revProperties[0]; String item_id = revProperties[0];
if (item_id.length() >= 3) { if (item_id.length() >= 3) {
String stuf = item_id.substring(0, 3); String stuf = item_id.substring(0, 3);
if (stuf.equalsIgnoreCase("2ZD") || stuf.equalsIgnoreCase("4ZD") || stuf.equalsIgnoreCase("1ZD")) { if (stuf.equalsIgnoreCase("2ZD") || stuf.equalsIgnoreCase("4ZD")
|| stuf.equalsIgnoreCase("1ZD") || stuf.equalsIgnoreCase("6ZD")) {
// flag = false; // flag = false;
// 开始根据通用件规格属性来判断是否需要申请物料 // 开始根据通用件规格属性来判断是否需要申请物料
String zt2_TYJSpec = line.getProperty("ZT2_TYSpecifications"); String zt2_TYJSpec = line.getProperty("ZT2_TYSpecifications");
@ -1144,6 +1145,11 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
general_maps.put(rev, specs); general_maps.put(rev, specs);
} }
} }
}else {//20240730ÔöźÓ˛éŃŻ˛éľ˝ľÄÂßź­
if(comps!= null && comps.length > 0) {
partRevs.add(comps[0]);
}
} }
@ -1170,7 +1176,8 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
String bpNo = item_id; String bpNo = item_id;
//String zt2_DrawingNo = rev.getProperty("zt2_DrawingNo"); //String zt2_DrawingNo = rev.getProperty("zt2_DrawingNo");
String zt2_DrawingNo = revProperties[2]; String zt2_DrawingNo = revProperties[2];
if (!KUtil.isEmpty(zt2_DrawingNo) && !stuf.equalsIgnoreCase("1ZD")) { if (!KUtil.isEmpty(zt2_DrawingNo) && !stuf.equalsIgnoreCase("1ZD")
&& !stuf.equalsIgnoreCase("6ZD")) {
if (!item_id.equals(zt2_DrawingNo)) if (!item_id.equals(zt2_DrawingNo))
bpNo = zt2_DrawingNo; bpNo = zt2_DrawingNo;
} }

@ -1118,28 +1118,72 @@ public class ApplyMatnrOp2 extends AbstractAIFOperation {
general_maps.put(rev, specs); general_maps.put(rev, specs);
} }
}else if(stuf.equalsIgnoreCase("2ZD")){ }else if(stuf.equalsIgnoreCase("2ZD")){
partRevs.add(comps[0]); //20240426 增加查询的代码
boolean needApply = true; Map<String, String> field = new HashMap<String, String>();
for(TCComponent comp:comps) { String value = "* " + spec;
String specs = comp.getProperty("zt2_Specifications"); // ·Ç±ØÌî System.out.println("查询值:" + value+"item_id==>"+item_id);
if(specs.equals(spec)) { field.put("描述", value);
needApply = false; field.put("关联的图号", item_id);
break; TCComponentContextList contxt = KUtil.query(session, "chint_query_material_test", field);
//"*"+item_id+"*"+zt2_TYJSpec+"*"
if(contxt == null || contxt.getListCount() == 0) {
partRevs.add(comps[0]);
boolean needApply = true;
for(TCComponent comp:comps) {
String specs = comp.getProperty("zt2_Specifications"); // 非必填
if(specs.equals(spec)) {
needApply = false;
break;
}
} }
} if(needApply) {
if(needApply) { if (general_maps.containsKey(rev)) {
if (general_maps.containsKey(rev)) { if (!general_maps.get(rev).contains(spec)) {
if (!general_maps.get(rev).contains(spec)) { general_maps.get(rev).add(spec);
general_maps.get(rev).add(spec); }
} else {
List<String> specs = new ArrayList<String>();
specs.add(spec);
general_maps.put(rev, specs);
} }
} else {
List<String> specs = new ArrayList<String>();
specs.add(spec);
general_maps.put(rev, specs);
} }
}else {//20240730增加查询查到的逻辑
if(comps!= null && comps.length > 0) {
partRevs.add(comps[0]);
}
} }
} }
} else { }
// else if(stuf.equalsIgnoreCase("2ZD")){
// partRevs.add(comps[0]);
// boolean needApply = true;
// for(TCComponent comp:comps) {
// String specs = comp.getProperty("zt2_Specifications"); // 非必填
// if(specs.equals(spec)) {
// needApply = false;
// break;
// }
// }
// if(needApply) {
// if (general_maps.containsKey(rev)) {
// if (!general_maps.get(rev).contains(spec)) {
// general_maps.get(rev).add(spec);
// }
// } else {
// List<String> specs = new ArrayList<String>();
// specs.add(spec);
// general_maps.put(rev, specs);
// }
// }
// }
// }
else {
// 有通用件规格 // 有通用件规格
Map<String, String> field = new HashMap<String, String>(); Map<String, String> field = new HashMap<String, String>();
String value = "* " + zt2_TYJSpec; String value = "* " + zt2_TYJSpec;

@ -4,7 +4,6 @@ import java.util.Map;
import com.teamcenter.rac.kernel.TCComponentBOMLine; import com.teamcenter.rac.kernel.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemType; import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCProperty;
import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.kernel.TCSession;
public class RemarkUtil { public class RemarkUtil {
@ -14,11 +13,31 @@ public class RemarkUtil {
int len =0; int len =0;
try { try {
String[] split = itemId.split("-"); String[] split = itemId.split("-");
String topId = "1ZDB300000P-"+split[1]; String id4 = itemId.substring(0, 4);
System.out.println("topId:" + topId); //lidy20250423
String[] ids = session.getPreferenceService().getStringValues("CHINT_FindDrawing");
String topId = "";//"1ZDB300000P-" + split[1];
for(String s : ids) {
if(s.substring(0, 4).equalsIgnoreCase(id4)) {
topId = s + split[1];
break;
}
}
TCComponentItemType partType = (TCComponentItemType) session.getTypeComponent("ZT2_Design3D"); TCComponentItemType partType = (TCComponentItemType) session.getTypeComponent("ZT2_Design3D");
TCComponentItem find = partType.findItems(topId)[0]; TCComponentItem[] find = null;
Map<String, String> classificationAttributes = find.getClassificationAttributes(); if(topId.isEmpty()) {
for(String s : ids) {
topId = s + split[1];
find = partType.findItems(topId);
if(find != null && find.length > 0)
break;
}
}else {
find = partType.findItems(topId);
}
System.out.println("topId:" + topId);
// TCComponentItem find = partType.findItems(topId)[0];
Map<String, String> classificationAttributes = find[0].getClassificationAttributes();
// System.out.println(classificationAttributes.toString()); // System.out.println(classificationAttributes.toString());
for(String key : classificationAttributes.keySet()) { for(String key : classificationAttributes.keySet()) {

@ -972,6 +972,8 @@ public class CreateEcnController extends KFXPanelController {
refTableBean.setCompDate(read.getString("pctime")); refTableBean.setCompDate(read.getString("pctime"));
refTableBean.setMark(read.getString("remark")); refTableBean.setMark(read.getString("remark"));
String principal = read.getString("principal"); String principal = read.getString("principal");
if(principal == null)
principal = "";
String[] split = principal.split(";"); String[] split = principal.split(";");
if (split.length >= 2) { if (split.length >= 2) {
refTableBean.setUserUUid(split[1]); refTableBean.setUserUUid(split[1]);

@ -1,6 +1,7 @@
package com.chint.plm.createKjBom; package com.chint.plm.createKjBom;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -407,6 +408,7 @@ public class KjController {
continue; continue;
bomBean.bomLine.add(wlLine2, false).setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데"); bomBean.bomLine.add(wlLine2, false).setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데");
bomBean.bomLine.save(); bomBean.bomLine.save();
bomBean.bomLine.unlock();//unlock
}else if(object_name.equals("") && objName.contains("배멀係죕")) { }else if(object_name.equals("") && objName.contains("배멀係죕")) {
if(bomBeans.contains(new BomBean("배멀튬"))) { if(bomBeans.contains(new BomBean("배멀튬"))) {
BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean("배멀튬"))); BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean("배멀튬")));
@ -414,6 +416,7 @@ public class KjController {
continue; continue;
bomBean.bomLine.add(wlLine2, false).setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데"); bomBean.bomLine.add(wlLine2, false).setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데");
bomBean.bomLine.save(); bomBean.bomLine.save();
bomBean.bomLine.unlock();//unlock
} }
}else { }else {
if(checkSource(newTopline, wlLine2)) if(checkSource(newTopline, wlLine2))
@ -422,6 +425,7 @@ public class KjController {
add.setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데"); add.setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데");
System.out.println(add); System.out.println(add);
newTopline.save(); newTopline.save();
newTopline.unlock();//unlock
} }
} }
}else { }else {
@ -434,6 +438,7 @@ public class KjController {
continue; continue;
bomBean.bomLine.add(wlLine, false).setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데"); bomBean.bomLine.add(wlLine, false).setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데");
bomBean.bomLine.save(); bomBean.bomLine.save();
bomBean.bomLine.unlock();//unlock
}else if(object_name.equals("") && objName.equals("배멀係죕")) { }else if(object_name.equals("") && objName.equals("배멀係죕")) {
if(bomBeans.contains(new BomBean("배멀튬"))) { if(bomBeans.contains(new BomBean("배멀튬"))) {
BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean("배멀튬"))); BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean("배멀튬")));
@ -441,6 +446,7 @@ public class KjController {
continue; continue;
bomBean.bomLine.add(wlLine, false).setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데"); bomBean.bomLine.add(wlLine, false).setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데");
bomBean.bomLine.save(); bomBean.bomLine.save();
bomBean.bomLine.unlock();//unlock
} }
} }
else { else {
@ -450,6 +456,7 @@ public class KjController {
add.setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데"); add.setProperty("bl_occ_zt2_wlsource", "瓊품헝뭔데");
System.out.println(add); System.out.println(add);
newTopline.save(); newTopline.save();
newTopline.unlock();//unlock
} }
} }
} }
@ -472,7 +479,8 @@ public class KjController {
} }
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
private void updateKjBom(Map<String, TCComponentItem> findMap, Map<String, ExpandPSData[]> bomLineTreeNodeSOA, String uid) throws Exception { private void updateKjBom(Map<String, TCComponentItem> findMap, Map<String, ExpandPSData[]> bomLineTreeNodeSOA,
String uid) throws Exception {
// Auto-generated method stub // Auto-generated method stub
ExpandPSData[] expandPSDatas = bomLineTreeNodeSOA.get(uid); ExpandPSData[] expandPSDatas = bomLineTreeNodeSOA.get(uid);
for(ExpandPSData expandPSData : expandPSDatas) { for(ExpandPSData expandPSData : expandPSDatas) {
@ -487,9 +495,16 @@ public class KjController {
TCComponentItemRevision lastRev = tcItem.getLatestItemRevision(); TCComponentItemRevision lastRev = tcItem.getLatestItemRevision();
bomLine.replace(tcItem, lastRev, null); bomLine.replace(tcItem, lastRev, null);
bomLine.save(); bomLine.save();
// bomLine.unlock(); bomLine.unlock();
}
TCComponent[] views = itemRevOfBOMLine.getRelatedComponents("view");
if(views.length > 0) {//lidy20241213 优化“BOM 模块接收的标记无效。”报错
views[0].lock();
bomLine.lock();
updateKjBom(findMap, bomLineTreeNodeSOA, bomLine.getUid());
bomLine.unlock();
views[0].unlock();
} }
updateKjBom(findMap, bomLineTreeNodeSOA, bomLine.getUid());//ExpandPSData[] expandPSDatas2 = bomLineTreeNodeSOA.get(bomLine.getUid());
} }
} }
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@ -613,6 +628,8 @@ public class KjController {
//툽좆릿齡 //툽좆릿齡
private void cloneOrUpdate(TCSession session, TCComponentBOMLine parentLine, private void cloneOrUpdate(TCSession session, TCComponentBOMLine parentLine,
List<TCComponentBOMLine> bomLines, List<TCComponentBOMLine> useLines) { List<TCComponentBOMLine> bomLines, List<TCComponentBOMLine> useLines) {
System.out.println("cloneOrUpdate==>" + bomLines);
System.out.println("useLines==>" + useLines);
com.teamcenter.services.rac.structuremanagement.StructureService service = com.teamcenter.services.rac.structuremanagement.StructureService service =
com.teamcenter.services.rac.structuremanagement.StructureService.getService(session); com.teamcenter.services.rac.structuremanagement.StructureService.getService(session);
// idMapAdd.clear(); // idMapAdd.clear();
@ -642,6 +659,10 @@ public class KjController {
// for(int i = 0; i < bomLines.size(); i++) { // for(int i = 0; i < bomLines.size(); i++) {
// TCComponentBOMLine subLine = bomLines.get(i); // TCComponentBOMLine subLine = bomLines.get(i);
TCComponentItem item = subLine.getItem(); TCComponentItem item = subLine.getItem();
// String name = item.getProperty("object_name");
// if(name.equals("箱底焊装") || name.equals("箱沿焊装")) {//TODO
// continue;
// }
CloneStructureSaveAsIn dataMap = null; CloneStructureSaveAsIn dataMap = null;
if(item.getType().equals("ZT2_Design3D")) { if(item.getType().equals("ZT2_Design3D")) {
// subLine.replace // subLine.replace
@ -651,10 +672,10 @@ public class KjController {
} }
saveList.add(dataMap); saveList.add(dataMap);
} }
for(TCComponentBOMLine subLine : useLines) { // for(TCComponentBOMLine subLine : useLines) {
CloneStructureSaveAsIn dataMap = getDataMap(subLine, 1, session); // CloneStructureSaveAsIn dataMap = getDataMap(subLine, 1, session);
saveList.add(dataMap); // saveList.add(dataMap);
} // }
com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureDefaultNaming naming = com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureDefaultNaming naming =
new com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureDefaultNaming(); new com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureDefaultNaming();
CloneStructureSaveAsIn[] array = saveList.toArray(new CloneStructureSaveAsIn[saveList.size()]); CloneStructureSaveAsIn[] array = saveList.toArray(new CloneStructureSaveAsIn[saveList.size()]);
@ -673,8 +694,8 @@ public class KjController {
// cloneStructureExpandOrUpdate.serviceData; // cloneStructureExpandOrUpdate.serviceData;
if (cloneStructure.serviceData.sizeOfPartialErrors() > 0) { if (cloneStructure.serviceData.sizeOfPartialErrors() > 0) {
for (int i = 0; i < cloneStructure.serviceData.sizeOfPartialErrors(); i++) { for (int i = 0; i < cloneStructure.serviceData.sizeOfPartialErrors(); i++) {
System.out.println("Save class Partial Error -- " + cloneStructure.serviceData System.out.println(i + "Save class Partial Error -- " + Arrays.toString(cloneStructure.serviceData
.getPartialError(i).getMessages()[0]); .getPartialError(i).getMessages()));
} }
} }
try { try {

@ -147,6 +147,8 @@ public class MySceneController extends KFXPanelController {
private String findLovString = "SELECT result FROM CHINT_CHECK_LOV_TEMPLATE where lovcode = ? ORDER BY code asc"; private String findLovString = "SELECT result FROM CHINT_CHECK_LOV_TEMPLATE where lovcode = ? ORDER BY code asc";
private String addMsgString = "INSERT INTO CHINT_CHECK_DETAILS (no,imcheckproject,ipcheckdetials,designresult,proofreadresult,design,proofread," private String addMsgString = "INSERT INTO CHINT_CHECK_DETAILS (no,imcheckproject,ipcheckdetials,designresult,proofreadresult,design,proofread,"
+ "\"AUDIT\",checkno,modelversion,numberofchecks) VALUES (?,?,?,?,?,?,?,?,?,?,1)"; + "\"AUDIT\",checkno,modelversion,numberofchecks) VALUES (?,?,?,?,?,?,?,?,?,?,1)";
private String addMsgString1 = "INSERT INTO CHINT_CHECK_DETAILS (no,imcheckproject,ipcheckdetials,designresult,proofreadresult,design,proofread,"
+ "\"AUDIT\",checkno,modelversion,numberofchecks) VALUES (?,?,?,?,?,?,?,?,?,?,?)";
private String oldMsgString = "SELECT no,designresult,PROOFREADRESULT,design,proofread,\"AUDIT\" FROM CHINT_CHECK_DETAILS where checkno = ? and modelversion = ? and numberofchecks = ? ORDER BY no asc "; private String oldMsgString = "SELECT no,designresult,PROOFREADRESULT,design,proofread,\"AUDIT\" FROM CHINT_CHECK_DETAILS where checkno = ? and modelversion = ? and numberofchecks = ? ORDER BY no asc ";
private String updMsgString = "UPDATE CHINT_CHECK_DETAILS SET designresult = ?,proofreadresult = ?,design = ?,proofread = ?,\"AUDIT\" = ? where checkno = ? and no = ? and modelversion = ? and numberofchecks = ? "; private String updMsgString = "UPDATE CHINT_CHECK_DETAILS SET designresult = ?,proofreadresult = ?,design = ?,proofread = ?,\"AUDIT\" = ? where checkno = ? and no = ? and modelversion = ? and numberofchecks = ? ";
private String getTempString = "SELECT no,imcheckproject,ipcheckdetials,designresultrule,proofreadresultrule,designrule,proofreadrule,auditrule" private String getTempString = "SELECT no,imcheckproject,ipcheckdetials,designresultrule,proofreadresultrule,designrule,proofreadrule,auditrule"
@ -260,7 +262,20 @@ public class MySceneController extends KFXPanelController {
shType = "2"; shType = "2";
} }
if(isFirst) { if(isFirst) {
SqlUtil.write(addMsgString, new String[] {String.valueOf(i),zdjc,zdhc,valYqz,valSjz,sjType,jdType,shType,code,version});
//update
String text = cb_jccs.getValue();
//20240805 增加非第一次检查次数逻辑
if(text != null && !text.isEmpty()) {
String substring = text.substring(1, 2);
System.out.println("text==="+substring);
SqlUtil.write(addMsgString1, new String[] {String.valueOf(i),zdjc,zdhc,valYqz,valSjz,sjType,jdType,shType,code,version,substring});
}else {
SqlUtil.write(addMsgString, new String[] {String.valueOf(i),zdjc,zdhc,valYqz,valSjz,sjType,jdType,shType,code,version});
}
}else { }else {
//update //update
String text = cb_jccs.getValue(); String text = cb_jccs.getValue();
@ -1259,6 +1274,7 @@ public class MySceneController extends KFXPanelController {
// String testTh = "TestTh00001"; // String testTh = "TestTh00001";
if(checkno!=null) { if(checkno!=null) {
ResultSet read2 = SqlUtil.read(oldMsgString, new String[] {checkno,version,String.valueOf(selectedIndex+1)}); ResultSet read2 = SqlUtil.read(oldMsgString, new String[] {checkno,version,String.valueOf(selectedIndex+1)});
System.out.println(checkno+"-"+version+"-"+String.valueOf(selectedIndex+1));
System.out.println("version==>"+version); System.out.println("version==>"+version);
while(read2.next()) { while(read2.next()) {
isFirst = false; isFirst = false;

@ -63,30 +63,50 @@ public class BomDcSapOp extends AbstractAIFOperation {
List<TCComponentItem> itemList = new ArrayList<>(); List<TCComponentItem> itemList = new ArrayList<>();
List<TCComponentItem> itemPList = new ArrayList<>(); List<TCComponentItem> itemPList = new ArrayList<>();
String id = "1ZDB300000P-"; //lidy20250423 1ZDB300000P-
if(rev2.getType().equals("Part Revision")) { String[] ids = session.getPreferenceService().getStringValues("CHINT_FindDrawing");
String desc = rev2.getStringProperty("object_desc"); String id = "", idl = "";
String[] split = desc.split(" "); if (rev2.getType().equals("Part Revision")) {
if(split.length>=2) { String desc = rev2.getStringProperty("object_desc");
String[] split2 = split[1].split("-"); String[] split = desc.split(" ");
if(split2.length==2) { if (split.length >= 2) {
id = id + split2[1]; String[] split2 = split[1].split("-");
}else if(split2.length==3) { if (split2.length == 2) {
id = id + split2[2]; idl = split2[1];
} else if (split2.length == 3) {
idl = split2[2];
}
}
} else if (rev2.getType().equals("ZT2_Design3DRevision")) {
String desc = rev2.getStringProperty("item_id");
String[] split2 = desc.split("-");
if (split2.length == 2) {
idl = split2[1];
} else if (split2.length == 3) {
idl = split2[2];
}
String id4 = desc.substring(0, 4);
for(String s : ids) {
if(s.substring(0, 4).equalsIgnoreCase(id4)) {
id = s + idl;
break;
} }
} }
}else if(rev2.getType().equals("ZT2_Design3DRevision")) { }
String desc = rev2.getStringProperty("item_id"); TCComponentItem[] find = null;
String[] split2 = desc.split("-"); if(id.isEmpty()) {
if(split2.length==2) { for(String s : ids) {
id = id + split2[1]; id = s + idl;
}else if(split2.length==3) { find = ccomponentitemtype.findItems(id);
id = id + split2[2]; if(find != null && find.length > 0)
break;
} }
}else {
find = ccomponentitemtype.findItems(id);
} }
System.out.print("id===>"+id); System.out.print("id===>" + id);
TCComponentItem find = ccomponentitemtype.findItems(id)[0]; // TCComponentItem find = ccomponentitemtype.findItems(id)[0];
TCComponentItemRevision zztRev = find.getLatestItemRevision(); TCComponentItemRevision zztRev = find[0].getLatestItemRevision();
TCComponent[] matnrs = zztRev.getRelatedComponents("representation_for"); TCComponent[] matnrs = zztRev.getRelatedComponents("representation_for");
for(TCComponent matnr:matnrs) { for(TCComponent matnr:matnrs) {
String[] properties = matnr.getProperties(new String[]{"zt2_ifpbom"}); String[] properties = matnr.getProperties(new String[]{"zt2_ifpbom"});

@ -65,30 +65,50 @@ public class BomSapWhBjOp extends AbstractAIFOperation {
List<TCComponentItem> itemList = new ArrayList<>(); List<TCComponentItem> itemList = new ArrayList<>();
List<TCComponentItem> itemPList = new ArrayList<>(); List<TCComponentItem> itemPList = new ArrayList<>();
String id = "1ZDB300000P-"; //lidy20250423 1ZDB300000P-
String[] ids = session.getPreferenceService().getStringValues("CHINT_FindDrawing");
String id = "", idl = "";
if (rev2.getType().equals("Part Revision")) { if (rev2.getType().equals("Part Revision")) {
String desc = rev2.getStringProperty("object_desc"); String desc = rev2.getStringProperty("object_desc");
String[] split = desc.split(" "); String[] split = desc.split(" ");
if (split.length >= 2) { if (split.length >= 2) {
String[] split2 = split[1].split("-"); String[] split2 = split[1].split("-");
if (split2.length == 2) { if (split2.length == 2) {
id = id + split2[1]; idl = split2[1];
} else if (split2.length == 3) { } else if (split2.length == 3) {
id = id + split2[2]; idl = split2[2];
} }
} }
} else if (rev2.getType().equals("ZT2_Design3DRevision")) { } else if (rev2.getType().equals("ZT2_Design3DRevision")) {
String desc = rev2.getStringProperty("item_id"); String desc = rev2.getStringProperty("item_id");
String[] split2 = desc.split("-"); String[] split2 = desc.split("-");
if (split2.length == 2) { if (split2.length == 2) {
id = id + split2[1]; idl = split2[1];
} else if (split2.length == 3) { } else if (split2.length == 3) {
id = id + split2[2]; idl = split2[2];
} }
String id4 = desc.substring(0, 4);
for(String s : ids) {
if(s.substring(0, 4).equalsIgnoreCase(id4)) {
id = s + idl;
break;
}
}
} }
TCComponentItem[] find = null;
if(id.isEmpty()) {
for(String s : ids) {
id = s + idl;
find = ccomponentitemtype.findItems(id);
if(find != null && find.length > 0)
break;
}
}else {
find = ccomponentitemtype.findItems(id);
}
System.out.print("id===>" + id); System.out.print("id===>" + id);
TCComponentItem find = ccomponentitemtype.findItems(id)[0]; // TCComponentItem find = ccomponentitemtype.findItems(id)[0];
TCComponentItemRevision zztRev = find.getLatestItemRevision(); TCComponentItemRevision zztRev = find[0].getLatestItemRevision();
TCComponent[] matnrs = zztRev.getRelatedComponents("representation_for"); TCComponent[] matnrs = zztRev.getRelatedComponents("representation_for");
for (TCComponent matnr : matnrs) { for (TCComponent matnr : matnrs) {
String[] properties = matnr.getProperties(new String[] { "zt2_ifpbom" }); String[] properties = matnr.getProperties(new String[] { "zt2_ifpbom" });

@ -64,12 +64,35 @@ public class DbomToECommand extends KCommand {
String itemId = rev.getProperty("item_id"); String itemId = rev.getProperty("item_id");
String[] split = itemId.split("-"); String[] split = itemId.split("-");
if(split.length>=2) { if(split.length>=2) {
String topId = "1ZDB300000P-"+split[1]; // String topId = "1ZDB300000P-"+split[1];
String id4 = itemId.substring(0, 4);
//lidy20250423
String[] ids = session.getPreferenceService().getStringValues("CHINT_FindDrawing");
String topId = "";//"1ZDB300000P-" + split[1];
for(String s : ids) {
if(s.substring(0, 4).equalsIgnoreCase(id4)) {
topId = s + split[1];
break;
}
}
// TCComponentItemType itemType = (TCComponentItemType) session.getTypeComponent("ZT2_Design3D");
// TCComponentItem find = itemType.find(topId);
TCComponentItemType itemType = (TCComponentItemType) session.getTypeComponent("ZT2_Design3D"); TCComponentItemType itemType = (TCComponentItemType) session.getTypeComponent("ZT2_Design3D");
TCComponentItem find = itemType.find(topId); TCComponentItem[] find = null;
if(find!=null) { if(topId.isEmpty()) {
for(String s : ids) {
topId = s + split[1];
find = itemType.findItems(topId);
if(find != null && find.length > 0)
break;
}
}else {
find = itemType.findItems(topId);
}
System.out.println("topId:" + topId);
if(find != null && find.length > 0) {
//boolean equals = find.getLatestItemRevision().getProperty("zt2_SapState").equals("已传"); //boolean equals = find.getLatestItemRevision().getProperty("zt2_SapState").equals("已传");
boolean equals = find.getProperty("zt2_kjbomstate").equals("ÒÑ´«"); boolean equals = find[0].getProperty("zt2_kjbomstate").equals("ÒÑ´«");
if(!equals) { if(!equals) {
MessageBox.post("请联系主设传递框架BOM.", "", MessageBox.ERROR); MessageBox.post("请联系主设传递框架BOM.", "", MessageBox.ERROR);
return; return;

@ -0,0 +1,474 @@
package com.connor.chint.yunpi.command;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Month;
import java.time.YearMonth;
import java.time.temporal.ChronoUnit;
import java.time.temporal.WeekFields;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.connor.chint.sap2.util.SAPUtil;
import com.connor.chint.sap2.util.SqlUtil;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.DateButton;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
public class QueryZxjcFram extends JFrame implements ActionListener {
private TCSession session;
protected DefaultTableModel tm_part;
private static ArrayList<String> dateConnList = new ArrayList<String>();
private String[] prefs;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
private JTextField pathJTextField = new JTextField(30);
private JButton outputButton = new JButton("选择");
public QueryZxjcFram(TCSession session) {
// TODO Auto-generated constructor stub
this.session = session;
prefs = session.getPreferenceService().getStringValues("CHINT_SRM_SQL_CONNECT");
initUI();
}
// private String sqlString = "delete ML_CREATEORDERBOM where STATUS='2' and PRODUCTID=? and MATERIALNO=? "
// + "and OBJECTNAME=? and PRODPLANO=? and BATCHNO=?"
// + " and FACTORY=? and REPCODE=? and PRODORDERO=?";
private String sqlString = "";
private void initUI() {
// TODO Auto-generated method stub
try {
this.setTitle("WMS集成默认物料维护界面");
this.setLayout(new BorderLayout());
JPanel topPanel = getTopPanel();
// JScrollPane pane = getTablePanel();
// pane.setBorder(BorderFactory.createTitledBorder(""));
// JPanel btnPanel = getRightPanel();
JPanel btnPanel = getBtnPanel();
this.add(topPanel, BorderLayout.NORTH);
// this.add(pane,BorderLayout.CENTER);
this.add(btnPanel, BorderLayout.SOUTH);
this.setPreferredSize(new Dimension(550, 110));
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸
int screenWidth = screenSize.width; // 获取屏幕宽度
int screenHeight = screenSize.height; // 获取屏幕高度
int x = (screenWidth - 550) / 2; // 计算Frame的左上角x坐标
int y = (screenHeight - 300) / 2; // 计算Frame的左上角y坐标
this.setLocation(x, y); // 设置Frame的位置
// this.setLocationRelativeTo(null);
this.createActionEvent();
this.pack();
// this.validate();
this.setVisible(true);
// this.setAlwaysOnTop(true);
} catch (Exception e) {
e.printStackTrace();
return;
}
}
// 添加监听
public void createActionEvent() {
this.btnOut.addActionListener(this);
this.btnIn.addActionListener(this);
}
private List<TCComponent> compList = new ArrayList<TCComponent>();
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object source = e.getSource();
System.out.println("source==>+" + source);
if (this.btnIn.equals(source)) {
//导入的逻辑
String pathJTextFieldStr = pathJTextField.getText();
if(pathJTextFieldStr == null || pathJTextFieldStr.isEmpty()) {
MessageBox.post("请选择需要导入的Excel。", "提示", 2);
return;
}
FileInputStream input = null;
try {
SqlUtil.SRMGetTCDataConnection(prefs);
String factory = "";
try {
factory = SAPUtil.getGroupID(session);
} catch (TCException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
if(!pathJTextFieldStr.contains(".xlsx")) {
MessageBox.post("请选择.xlsx格式的Excel。", "提示", 2);
return;
}
File file = new File(pathJTextFieldStr);
input = new FileInputStream(file);
Workbook workbook = new XSSFWorkbook(input);
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
System.out.println("row.getRowNum()=================="+row.getRowNum());
if(row.getRowNum() != 0) {
if(getCellValue(row.getCell(4)).isEmpty()) {
String insertSql = "INSERT INTO CHINT_WMS_DEFAULT_MATERIAL_RULE(FACTORY,OBJECTNAME,SPECIFICATIONS,QUANTITY,DRAWINGNO,UNIT,REMARK) VALUES('"+
getCellValue(row.getCell(0))+"','"+
getCellValue(row.getCell(1))+"','"+
getCellValue(row.getCell(2))+"','"+
getCellValue(row.getCell(3))+"','"+
getCellValue(row.getCell(4))+"','"+
getCellValue(row.getCell(5))+"','"+
getCellValue(row.getCell(6))+"')";
System.out.println("sql语句:" + insertSql.toString());
SqlUtil.update(insertSql);
}else {//有物料编码
String selectSql = "SELECT SEQ FROM CHINT_WMS_DEFAULT_MATERIAL_RULE WHERE DRAWINGNO='"+getCellValue(row.getCell(4))+
"' AND FACTORY='"+getCellValue(row.getCell(0))+"'";
ResultSet rs = SqlUtil.read(selectSql);
String seq = "";
while (rs.next()) {
seq = rs.getString(1);
}
if(seq.isEmpty()) {
String insertSql = "INSERT INTO CHINT_WMS_DEFAULT_MATERIAL_RULE(FACTORY,OBJECTNAME,SPECIFICATIONS,QUANTITY,DRAWINGNO,UNIT,REMARK) VALUES('"+
getCellValue(row.getCell(0))+"','"+
getCellValue(row.getCell(1))+"','"+
getCellValue(row.getCell(2))+"','"+
getCellValue(row.getCell(3))+"','"+
getCellValue(row.getCell(4))+"','"+
getCellValue(row.getCell(5))+"','"+
getCellValue(row.getCell(6))+"')";
System.out.println("sql语句:" + insertSql.toString());
SqlUtil.update(insertSql);
}else {
int cellType = row.getCell(5).getCellType();
int cellType1 = row.getCell(6).getCellType();
System.out.println("type5==============================="+cellType);
System.out.println("cellType1==============================="+cellType1);
String updateSql = "UPDATE CHINT_WMS_DEFAULT_MATERIAL_RULE SET FACTORY='"+getCellValue(row.getCell(0))+
"',OBJECTNAME='"+getCellValue(row.getCell(1))+
"',SPECIFICATIONS='"+getCellValue(row.getCell(2))+
"',QUANTITY='"+getCellValue(row.getCell(3))+
"',DRAWINGNO='"+getCellValue(row.getCell(4))+
"',UNIT='"+getCellValue(row.getCell(5))+
"',REMARK='"+getCellValue(row.getCell(6))+"' WHERE DRAWINGNO='"+getCellValue(row.getCell(4))+
"' AND FACTORY='"+getCellValue(row.getCell(0))+"'";
System.out.println("sql语句:" + updateSql.toString());
SqlUtil.update(updateSql);
}
}
}
}
} catch (IOException e2) {
e2.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
MessageBox.post("导入失败请联系管理员!", "提示", 2);
}
MessageBox.post("导入成功!", "提示", 2);
} else if (source.equals(this.btnOut)) {
File model_file = null;
File output_file = null;
SqlUtil.SRMGetTCDataConnection(prefs);
String factory = "";
try {
factory = SAPUtil.getGroupID(session);
} catch (TCException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
sqlString = "SELECT * FROM CHINT_WMS_DEFAULT_MATERIAL_RULE WHERE FACTORY = '"+factory+"'";
// 1.根据条件查询数据
System.out.println("查询语句:" + sqlString.toString());
List<ZxjcMATERIALBean> lists = new ArrayList<ZxjcMATERIALBean>();
try{
ResultSet result = SqlUtil.read(sqlString.toString());
while (result.next()) {
ZxjcMATERIALBean ZxjcMATERIALBean = new ZxjcMATERIALBean(result.getInt(1),
result.getString(2), result.getString(3),result.getString(4) , result.getInt(5),
result.getString(6), result.getString(7),result.getString(8));
System.out.println(ZxjcMATERIALBean);
// 过滤有处理人的数据
lists.add(ZxjcMATERIALBean);
}
} catch (SQLException e1) {
e1.printStackTrace();
}
if (lists.size() == 0) {
MessageBox.post("未查到数据,无法导出!", "提示", 2);
return;
} else {
// 导出数据的逻辑
InputStream input;
String targetPath = null;
try {
String[] CHINT_WMS_ModelUid = session.getPreferenceService()
.getStringValues("CHINT_WMS_ModelUid");
if (CHINT_WMS_ModelUid == null || CHINT_WMS_ModelUid.length == 0) {
MessageBox.post("首选项CHINT_WMS_ModelUid配置有误请检查。", "提示", 2);
return;
} else {
String pathJTextFieldStr = pathJTextField.getText();
if(pathJTextFieldStr == null || pathJTextFieldStr.isEmpty()) {
MessageBox.post("请选择需要导出的路径。", "提示", 2);
return;
}
TCComponentDataset excel = (TCComponentDataset) session
.stringToComponent(CHINT_WMS_ModelUid[0]);
model_file = ((TCComponentDataset) excel).getTcFiles()[0].getFmsFile();
String date = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());
String fileName = "WMS集成默认物料_" + date + ".xlsx";
// 定义源文件路径
Path sourcePath = Paths.get(model_file.getPath()); // 替换为你的源文件路径
// 定义目标文件路径
// targetPath = System.getProperty("user.home")+"\\Desktop"+"\\"+fileName;
targetPath = pathJTextFieldStr + "\\" + fileName;
// 使用Files.copy()方法复制文件
// Files.copy(sourcePath, targetPath);
// 设置可写
// makeFileWritable(System.getProperty("user.home")+"\\Desktop"+"\\"+fileName);
// output_file = new
// File(System.getProperty("user.home")+"\\Desktop"+"\\"+fileName);
}
input = new FileInputStream(model_file);
XSSFWorkbook wb = new XSSFWorkbook(input);// (
XSSFSheet sheet = wb.getSheetAt(0);
sheet.getSheetName();
for (int i = 0; i < lists.size(); i++) {
ZxjcMATERIALBean ZxjcMATERIALBean = lists.get(i);
int row = i + 1;
XSSFRow titleRow = sheet.getRow(row);
// setCellValue(titleRow, 0, i + 1 + "", sheet, row);
// 零件号合零件名称逻辑
if(titleRow == null) {
titleRow = sheet.createRow(row);
}
setCellValue(titleRow, 0, ZxjcMATERIALBean.getFACTORY());
setCellValue(titleRow, 1, ZxjcMATERIALBean.getOBJECTNAME());
setCellValue(titleRow, 2, ZxjcMATERIALBean.getSPECIFICATIONS());
setCellValue(titleRow, 3, ZxjcMATERIALBean.getQUANTITY()+"");
setCellValue(titleRow, 4, ZxjcMATERIALBean.getDRAWINGNO());
setCellValue(titleRow, 5, ZxjcMATERIALBean.getUNIT());
setCellValue(titleRow, 6, ZxjcMATERIALBean.getREMARK());
}
// 写入输出文件
try (FileOutputStream outputStream = new FileOutputStream(new File(targetPath))) {
wb.write(outputStream);
} catch (FileNotFoundException e1) {
System.err.println("目标文件未找到: " + targetPath);
e1.printStackTrace();
} catch (IOException e2) {
System.err.println("写入文件时发生错误: " + targetPath);
e2.printStackTrace();
}
this.dispose();
MessageBox.post("成功导出" + lists.size() + "条数据!", "提示", 2);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
/**
*
*
* @param filePath
*/
public static void makeFileWritable(String filePath) {
File file = new File(filePath);
if (!file.exists()) {
System.out.println("File does not exist.");
return;
}
try {
// 设置文件可写true 表示可写false 表示不可写null 表示使用系统默认值
boolean success = file.setWritable(true, false); // 第二个参数表示是否只改变文件所有者的权限
if (success) {
System.out.println("File permissions set to writable.");
} else {
System.out.println("Failed to set file as writable.");
}
} catch (SecurityException se) {
System.err.println("Security exception: " + se.getMessage());
}
}
public static void setCellValue(XSSFRow row, int colum, String str) {
// if (row == null) {
// // 处理空行的情况,比如插入一行或者给出提示
// row = sheet.createRow(rowNum);
// }
XSSFCell cell = row.getCell(colum);
if (cell == null) {
cell = row.createCell(colum);
}
cell.setCellValue(str);
}
private JButton btnOut;
private JButton btnIn;
private JPanel getBtnPanel() {
JPanel topPanel = new JPanel();
topPanel.setLayout(new PropertyLayout());
btnOut = new JButton("导出");
btnIn = new JButton("导入");
topPanel.add("1.1.center", new JLabel(""));
topPanel.add("2.1.center", new JLabel(""));
topPanel.add("2.3.center", new JLabel(""));
topPanel.add("2.5.center", new JLabel(""));
topPanel.add("2.2.center", btnIn);
topPanel.add("2.4.center", btnOut);
return topPanel;
}
// 查询部分
private JPanel getTopPanel() {
// TODO Auto-generated method stub
JPanel topPanel = new JPanel();
topPanel.setLayout(new PropertyLayout());
topPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
topPanel.add("1.1.left.center", new JLabel(""));
topPanel.add("2.1.left.center", new JLabel("文件存放位置:"));
topPanel.add("2.2.left.center", pathJTextField);
topPanel.add("2.3.left.center", outputButton);
// 注册输出按钮的点击事件监听器
outputButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 创建文件选择器
JFileChooser fileChooser = new JFileChooser();
// 设置文件选择器只能选择文件夹
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int result = fileChooser.showOpenDialog(topPanel);
if (result == JFileChooser.APPROVE_OPTION) {
// 获取用户选择的路径
String selectedPath = fileChooser.getSelectedFile().getPath();
// 输出用户选择的路径
System.out.println("用户选择的路径:" + selectedPath);
pathJTextField.setText(selectedPath);
}
}
});
return topPanel;
}
public String getCellValue(Cell cell) {
if(cell == null) {
return "";
}else {
int cellType = cell.getCellType();
if(cellType == 1) {//string
return cell.getStringCellValue();
}else if(cellType == 3 || cellType == 0) {//num
double numericCellValue = cell.getNumericCellValue();
System.out.println("================================numericCellValue===="+numericCellValue);
if(numericCellValue == 0.0) {
return ""; }
return cell.getNumericCellValue()+"";
}
}
return "";
}
}

@ -0,0 +1,30 @@
package com.connor.chint.yunpi.command;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCSession;
import com.connor.chint.yunpi.KCommand;
import com.teamcenter.rac.aif.AbstractAIFApplication;
public class QueryZxjcHandler extends KCommand {
public QueryZxjcHandler(AbstractAIFApplication app, String commandId, String actionInfo) {
super(app, commandId, actionInfo);
TCSession session = (TCSession) app.getSession();
try {
new QueryZxjcFram(session);
}catch(Exception e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,260 @@
package com.connor.chint.yunpi.command;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
//import com.connor.chint.sap2.sap.SAPPushBOMBean;
//import com.connor.chint.sap2.sap_by.SAPZZDialogController;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
public class ZxjcBean extends SAPPushBOMBean {
public static final String TYPE_FACTNO = "ZT2_FactoryNo";
public static final String REL_PART_FACTNO = "ZT2_FactoryNumber";
private int index;
public TCComponentItemRevision part;
public TCComponentItem factoryNo;
public TCComponentItemRevision zzDesignRev = null;
public TCComponent[] factoryNos;
public String materialNo;
//出厂编号
public String ccbh;
public String getCcbh() {
return ccbh;
}
public void setCcbh(String ccbh) {
this.ccbh = ccbh;
}
public TCComponentItemRevision getZzDesignRev() {
return zzDesignRev;
}
public void setZzDesignRev(TCComponentItemRevision zzDesignRev) {
this.zzDesignRev = zzDesignRev;
}
public String getMaterialNo() {
return materialNo;
}
public void setMaterialNo(String materialNo) {
this.materialNo = materialNo;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public ZxjcBean(TCComponentItemRevision part, int index) {
this.index = index;
this.part = part;
try {
getZZDesign(this.part);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public ZxjcBean(TCComponentItemRevision part, int index,String dy) {
this.index = index;
this.part = part;
// try {
// getZZDesign(this.part);
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
private TCComponentItemRevision getZZDesign(TCComponentItemRevision part) throws Exception {
try {
TCComponent[] facts = part.getRelatedComponents(REL_PART_FACTNO);
int len = facts.length;
for (int i = 0; i < len; i++) {
String type = facts[i].getType();
System.out.println(">> 找到子对象:" + facts[i] + "|" + type);
if (TYPE_FACTNO.equals(type)) {
// factNo = facts[i].getStringProperty("item_id");//出厂编码
this.factoryNo = (TCComponentItem) facts[i];
AIFComponentContext contexts[] = factoryNo.whereReferencedByTypeRelation(
new String[] { "ZT2_Design3DRevision" }, new String[] { "ZT2_FactoryNumber" });
Map<TCComponentItem, List<TCComponentItemRevision>> items2 = new HashMap<TCComponentItem, List<TCComponentItemRevision>>(
10);
for (int j = 0; j < contexts.length; j++) {
String type2 = contexts[j].getComponent().getType();
String name = contexts[j].getComponent().getProperty("object_name");
System.out.println(contexts[j] + "->type:" + type2);
// if (name.contains("总装")) { // || name.contains("变压器")
TCComponentItemRevision pRev = (TCComponentItemRevision) contexts[j].getComponent();
TCComponentItem item = pRev.getItem();
if (items2.containsKey(item)) {
items2.get(item).add(pRev);
} else {
List<TCComponentItemRevision> revs = new ArrayList<TCComponentItemRevision>();
revs.add(pRev);
items2.put(item, revs);
}
/*
* zzDesignRev =(TCComponentItemRevision) contexts[j].getComponent();
* if(isLastRev(zzDesignRev)) { //zztydh =
* contexts[j].getComponent().getProperty("item_id"); break; } zzDesignRev=null;
*/
// }
}
if (items2.size() > 0) {
List<TCComponentItemRevision> cZZRevs = new ArrayList<TCComponentItemRevision>();
addLastRevisions(items2, cZZRevs);
if (cZZRevs.size() > 0) {
zzDesignRev = cZZRevs.get(0);
}
}
break;
}
}
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
private void addLastRevisions(Map<TCComponentItem, List<TCComponentItemRevision>> items,
List<TCComponentItemRevision> cParts) throws TCException {
Iterator<Entry<TCComponentItem, List<TCComponentItemRevision>>> iterator = items.entrySet().iterator();
while (iterator.hasNext()) {
Entry<TCComponentItem, List<TCComponentItemRevision>> it = iterator.next();
List<TCComponentItemRevision> revs = it.getValue();
// System.out.println("item["+it.getKey()+"]已发布版本个数:"+revs.size());
if (revs.size() == 1) {
cParts.add(revs.get(0));
continue;
}
if (revs.size() > 1) {
TCComponentItemRevision max_Rev = null;
String s = "";
;
int index = -1;
for (int j = 0, len2 = revs.size(); j < len2; j++) {
String item_id = revs.get(j).getProperty("item_revision_id");
if (s.isEmpty()) {
s = item_id;
max_Rev = revs.get(j);
for (int k = 0; k < s.length(); k++) {
if (s.charAt(k) >= '0' && s.charAt(k) <= '9') {
index = k;
break;
}
}
} else {
String temp = item_id;
if (index != -1) {
if (temp.substring(0, index).compareTo(s.substring(0, index)) > 0) {
s = temp;
max_Rev = revs.get(j);
} else if (temp.substring(0, index).compareTo(s.substring(0, index)) == 0) {
String s1 = s.substring(index);
String temp1 = temp.substring(index);
int min = Math.min(s1.length(), temp1.length());
for (int k = 0; k < min; k++) {
if (temp1.charAt(k) > s1.charAt(k)) {
s = temp;
max_Rev = revs.get(j);
break;
}
}
if (temp1.length() > min) {
s = temp;
max_Rev = revs.get(j);
}
}
} else if (temp.compareTo(s) > 0) {
s = temp;
max_Rev = revs.get(j);
}
}
}
cParts.add(max_Rev);
}
}
}
public Object[] getRowDataZxjc() throws Exception {
String name = part.getStringProperty("object_name");
TCComponent[] facts = part.getRelatedComponents(REL_PART_FACTNO);
int len = facts == null ? 0 : facts.length;
System.out.println("获取出厂编号:" + part);
String factNo = "";
for (int i = 0; i < len; i++) {
String type = facts[i].getType();
System.out.println(">> 找到子对象:" + facts[i] + "|" + type);
factoryNos = facts;
if (TYPE_FACTNO.equals(type)) {
factNo = facts[i].getStringProperty("item_id");
this.factoryNo = (TCComponentItem) facts[i];
break;
}
}
//获取图纸id
String tzid = "";
TCComponent tzRev = part.getRelatedComponent("TC_Is_Represented_By");
if(tzRev != null) {
tzid = tzRev.getStringProperty("item_id");
}
//获取产成品数量
String zt2_Quantity = part.getStringProperty("zt2_Quantity");
String zt2_site = part.getStringProperty("zt2_Site");
String zt2_tankNo = part.getStringProperty("zt2_TankNo");
// return new Object[] {true,index,zt2_site,zt2_tankNo,name,this,factNo};
return new Object[] { true, index, zt2_site, zt2_tankNo, name, this, factNo,tzid,zt2_Quantity};
}
public Object[] getZYKGRowData() throws Exception {
String name = part.getStringProperty("object_name");
String zt2_site = part.getStringProperty("zt2_Site");
String zt2_tankNo = part.getStringProperty("zt2_TankNo");
System.out.println("->" + Arrays.toString(new Object[] { true, index, zt2_site, zt2_tankNo, name, this,
getZt2_SapBomState(), getUserName(), getZDATE() }));
return new Object[] { true, index, zt2_site, zt2_tankNo, name, this, getZt2_SapBomState(), getUserName(),
getZDATE() };
// return new Object[] {true,index,zt2_site,zt2_tankNo,name,this};
}
@Override
public String toString() {
try {
return part == null ? "" : part.getStringProperty("zt2_MaterialNo");
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public TCComponentItemRevision getPart() {
return part;
}
public void setPart(TCComponentItemRevision part) {
this.part = part;
}
}

@ -0,0 +1,154 @@
package com.connor.chint.yunpi.command;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.regex.Pattern;
import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.TableCellEditor;
import javax.swing.text.JTextComponent;
import com.connor.chint.sap2.util.KUtil;
import com.connor.chint.sap2.util.POIUtil;
import com.connor.chint.sap2.util.ProgressBar;
import com.teamcenter.rac.util.MessageBox;
public class ZxjcCellEditor extends AbstractCellEditor implements TableCellEditor {
private static final long serialVersionUID = -5118171189856914639L;
private JTable t_part;
private JTextComponent jtf;
private ZxjcFram dialog;
public ZxjcCellEditor(ZxjcFram dialog) {
this.dialog = dialog;
}
@Override
public Object getCellEditorValue() {
jtf.selectAll();
return jtf.getText();
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
jtf = new JTextField();
t_part = table;
jtf.setText("");
final int selectRow = row;
final int col = column;
final String dh = (String) table.getValueAt(row, 2);
ProgressBar pb = new ProgressBar(dialog, new Dimension(300, 50));
try {
if (value != null) {
jtf.setText(String.valueOf(value));
jtf.selectAll();
if (column == 1) {
jtf.setEditable(false);
}
jtf.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
int i = jtf.getCaretPosition();
final String text = jtf.getText();
if (code == KeyEvent.VK_LEFT) {
System.out.println("触发修改2");
if (KUtil.isEmpty(text) || i == 0) {
switch (col) {
case 2:
if (selectRow > 0) {
setTableEditting(selectRow - 1, 7);
}
break;
case 6:
Pattern pattern = Pattern.compile("[0-9]*");
if (!pattern.matcher(text).matches() || POIUtil.getIntValue(text) < 1) {
MessageBox.post(dialog, "第" + (selectRow + 1) + "行数量请输入正整数", "", 2);
} else {
setTableEditting(selectRow, 3);
}
break;
case 3:
case 7:
setTableEditting(selectRow, col - 1);
break;
}
}
} else if (code == KeyEvent.VK_RIGHT) {
// 没有文本的时候 或者光标在最右边的时候
if (KUtil.isEmpty(text) || i == text.length()) {
switch (col) {
case 3:
setTableEditting(selectRow, 6);
break;
case 7:
if (selectRow != t_part.getRowCount() - 1 && selectRow > 0) {
setTableEditting(selectRow + 1, 2);
}
break;
case 2:
setTableEditting(selectRow, col + 1);
break;
case 6:
// String value = (String) t_part.getValueAt(selectRow, col);
Pattern pattern = Pattern.compile("[0-9]*");
if (!pattern.matcher(text).matches() || POIUtil.getIntValue(text) < 1) {
MessageBox.post(dialog, "第" + (selectRow + 1) + "行数量请输入正整数", "", 2);
} else {
setTableEditting(selectRow, col + 1);
}
break;
}
}
}
}
});
}
} catch (Exception e) {
pb.disposeDialog();
e.printStackTrace();
MessageBox.post(dialog, "异常:" + e.getMessage(), "", 2);
return null;
}
return jtf;
}
public void setTableEditting(int row, int col) {
// t_part.clearSelection();
t_part.changeSelection(row, col, false, false);
t_part.editCellAt(row, col, null);
// System.out.println("第一次:"+edit_row+";"+edit_col);
Component editor = t_part.getEditorComponent();
if (editor != null) {
// editor.requestFocusInWindow();
editor.requestFocus();
Component c = editor.getComponentAt(0, 0);
if (c != null && c instanceof JTextComponent) {
JTextComponent jtc = (JTextComponent) c;
String value = jtc.getText();
if (!KUtil.isEmpty(value)) {
jtc.setCaretPosition(value.length());
}
}
}
}
}

@ -0,0 +1,18 @@
package com.connor.chint.yunpi.command;
import com.connor.chint.yunpi.KCommand;
import com.teamcenter.rac.aif.AbstractAIFApplication;
public class ZxjcCommand extends KCommand {
public ZxjcCommand(AbstractAIFApplication app, String commandId, String actionInfo) {
super(app, commandId, actionInfo);
try {
this.setRunnable(new ZxjcFram(app));
}catch(Exception e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,224 @@
package com.connor.chint.yunpi.command;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
//import com.connor.chint.sap2.sap_zy.SAPZYDialog;
import com.connor.chint.sap2.util.CheckBoxTableHeaderRenderer;
import com.connor.chint.sap2.util.KUtil;
import com.connor.chint.sap2.util.ProgressBar;
import com.connor.chint.sap2.util.SAPUtil;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
/**
* ===============================================================================
* Copyright (c) 2012-2024 CONNOR Unpublished - All Rights Reserved
* ===============================================================================
* File description:
*
* ZxjcFram.java
*
* -
*
* ===============================================================================
* DATE Name Description of Change
*
* 2024-4-18 lijh modify
*
* ===============================================================================
*/
public class ZxjcFram extends AbstractAIFDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private ZxjcController controller;
// private AbstractAIFApplication app;
private TCSession session;
public ZxjcFram(AbstractAIFApplication app) {
super(false);
this.controller = new ZxjcController(this, app);
// this.app = app;
this.session = (TCSession) app.getSession();
}
private JButton b_cel;
private JButton b_qr;
protected DefaultTableModel tm_part;
protected JTable t_part;
public static final String[] HEADER = new String[] { "", "序号", "站点", "柜号", "物料名称", "物料编码", "出厂编号", "图号", "产成品数量" };
public static final int[] HEADERWIDTH = new int[] { 50, 60, 60, 60, 120, 180, 180, 100, 100 };
@Override
public void run() {
try {
// 获取组ID
controller.groupName = SAPUtil.getGroupID(session);
System.out.println("当前组:" + controller.groupName);
// dba用户不允许使用改功能
// if (KUtil.isEmpty(controller.groupName) || controller.groupName.equalsIgnoreCase("dba")) {
// MessageBox.post(this, "当前登录组不可使用该功能", "", MessageBox.INFORMATION);
// KUtil.setByPass(false);
// return;
// }
// 判断目标对象下是否存在产成品
if (!controller.checkTargets()) {
MessageBox.post(this, "没有找到产成品信息", "", MessageBox.INFORMATION);
return;
}
// controller.getSapState();
} catch (Exception e) {
KUtil.setByPass(false);
MessageBox.post(this, "检查选择对象时发生错误:" + e.getMessage(), "", MessageBox.ERROR);
e.printStackTrace();
return;
}
initUI();
try {
controller.dialog = this;
for (int i = 0; i < controller.partList.size(); i++) {
// 获取产成品数据
tm_part.addRow(controller.partList.get(i).getRowDataZxjc());
}
// 设置出厂编号列可编辑
// ZxjcCellEditor editor = new ZxjcCellEditor(ZxjcFram.this);
// t_part.getColumnModel().getColumn(6).setCellEditor(editor);
} catch (Exception e) {
MessageBox.post(this, "读取产成品信息时发生错误:" + e.getMessage(), "", MessageBox.ERROR);
e.printStackTrace();
return;
}
showDialog();
}
private void initUI() {
this.setTitle("拆卸一览表下发");
this.setPreferredSize(new Dimension(800, 400));
this.setMinimumSize(new Dimension(750, 400));
this.setLayout(new BorderLayout());
this.add(BorderLayout.CENTER, getTablePanel());
this.add(BorderLayout.SOUTH, getBtnPanel());
addListeners();
}
private void addListeners() {
b_qr.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new Thread(new Runnable() {
@Override
public void run() {
try {
t_part.revalidate();
t_part.repaint();
// 组织数据传递
ProgressBar pb = new ProgressBar(ZxjcFram.this, new Dimension(300, 50));
pb.startProgress();
pb.setText("正在传递");
controller.sendZxjc();
pb.disposeDialog();
//发送成功弹窗
MessageBox.post("发送成功!","提示",2);
ZxjcFram.this.dispose();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
});
b_cel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
}
});
}
private JPanel getBtnPanel() {
JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 30, 5));
b_cel = new JButton("取消");
b_qr = new JButton("确认");
panel.add(b_qr);
panel.add(b_cel);
return panel;
}
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 || column == 6) {
return true;
}
return false;
}
@Override
public Class<?> getColumnClass(int column) { // 设置选择列(第三列)类型
if (column == 0) {
return Boolean.class;
}
return super.getColumnClass(column);
}
};
tm_part.setDataVector(null, HEADER);
t_part.getTableHeader().setReorderingAllowed(false); // 设置列不可移动,否则会发生类型转换错误(第三列)
this.t_part.setRowHeight(23);
TableColumnModel colModel = this.t_part.getColumnModel();
int colCnt = HEADERWIDTH.length;
colModel.getColumn(0).setMaxWidth(HEADERWIDTH[0]);
for (int i = 0; i < colCnt; i++) {
colModel.getColumn(i).setPreferredWidth(HEADERWIDTH[i]);
}
this.t_part.getTableHeader().setDefaultRenderer(new CheckBoxTableHeaderRenderer(t_part, 0, false));
this.t_part.getTableHeader().setBackground(Color.blue);
// 设置出厂编号可编辑
TableColumn editableColumn = t_part.getColumnModel().getColumn(6); // 获取第3列
editableColumn.setCellEditor(new DefaultCellEditor(new JTextField()));
// ZxjcCellEditor editor = new ZxjcCellEditor(ZxjcFram.this);
// t_part.getColumnModel().getColumn(6).setCellEditor(editor);
JScrollPane scroll = new JScrollPane(t_part);
panel.add(BorderLayout.CENTER, scroll);
panel.setBorder(BorderFactory.createLoweredBevelBorder());
return panel;
}
}

@ -0,0 +1,84 @@
package com.connor.chint.yunpi.command;
public class ZxjcMATERIALBean {
private int SEQ;
private String FACTORY;
private String OBJECTNAME;
private String SPECIFICATIONS;
private int QUANTITY;
private String DRAWINGNO;
private String UNIT;
private String REMARK;
public int getSEQ() {
return SEQ;
}
public void setSEQ(int sEQ) {
SEQ = sEQ;
}
public String getFACTORY() {
return FACTORY;
}
public void setFACTORY(String fACTORY) {
FACTORY = fACTORY;
}
public String getOBJECTNAME() {
return OBJECTNAME;
}
public void setOBJECTNAME(String oBJECTNAME) {
OBJECTNAME = oBJECTNAME;
}
public String getSPECIFICATIONS() {
return SPECIFICATIONS;
}
public void setSPECIFICATIONS(String sPECIFICATIONS) {
SPECIFICATIONS = sPECIFICATIONS;
}
public int getQUANTITY() {
return QUANTITY;
}
public void setQUANTITY(int qUANTITY) {
QUANTITY = qUANTITY;
}
public String getDRAWINGNO() {
return DRAWINGNO;
}
public void setDRAWINGNO(String dRAWINGNO) {
DRAWINGNO = dRAWINGNO;
}
public String getUNIT() {
return UNIT;
}
public void setUNIT(String uNIT) {
UNIT = uNIT;
}
public String getREMARK() {
return REMARK;
}
public void setREMARK(String rEMARK) {
REMARK = rEMARK;
}
public ZxjcMATERIALBean(int sEQ, String fACTORY, String oBJECTNAME, String sPECIFICATIONS, int qUANTITY,
String dRAWINGNO, String uNIT, String rEMARK) {
super();
SEQ = sEQ;
FACTORY = fACTORY;
OBJECTNAME = oBJECTNAME;
SPECIFICATIONS = sPECIFICATIONS;
QUANTITY = qUANTITY;
DRAWINGNO = dRAWINGNO;
UNIT = uNIT;
REMARK = rEMARK;
}
public ZxjcMATERIALBean() {
super();
}
@Override
public String toString() {
return "ZxjcMATERIALBean [SEQ=" + SEQ + ", FACTORY=" + FACTORY + ", OBJECTNAME=" + OBJECTNAME
+ ", SPECIFICATIONS=" + SPECIFICATIONS + ", QUANTITY=" + QUANTITY + ", DRAWINGNO=" + DRAWINGNO
+ ", UNIT=" + UNIT + ", REMARK=" + REMARK + "]";
}
}

@ -1,164 +1,495 @@
package com.connor.plm.CostListManagement.pojo; package com.connor.plm.CostListManagement.pojo;
/**
* ===============================================================================
* Copyright (c) 2012-2024 CONNOR lijh. Unpublished - All Rights Reserved
* ===============================================================================
* File description:
*
* GzxqBean.java bean
*
* ===============================================================================
* DATE Name Description of Change
*
* 2024-06-13 ljh create
* ===============================================================================
*/
import java.awt.Desktop;
import java.net.URI;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCSession;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
public class GzxqBean { public class GzxqBean {
private String instanceId; private TextArea instanceId = new TextArea();
private String factory; private TextArea factory = new TextArea();
private String sfId; private TextArea sfId = new TextArea();
private String head; private TextArea head = new TextArea();
private String scheduledtime; private TextArea scheduledtime = new TextArea();
private String model; private TextArea model = new TextArea();
private String productname; private TextArea productname = new TextArea();
private String toolnumber; private TextArea toolnumber = new TextArea();
private String toolname; private TextArea toolname = new TextArea();
private String toolinglevel; private TextArea toolinglevel = new TextArea();
private String reason;
private String jsgyrequirements; private TextArea reason = new TextArea();
private String link; private TextArea jsgyrequirements = new TextArea();
private String state; private Button link = new Button();
private Button cjgzxq = new Button();
public GzxqBean() { private String linkStr;
super(); private String sfIdStr;
} private String instanceIdStr;
private TCSession session;
public String getInstanceId() { private TextArea state = new TextArea();
return instanceId; private TextArea xh = new TextArea();
} //设置TextArea的值和Button
public GzxqBean(String instanceId, String factory, String sfId, String head, String scheduledtime,
public void setInstanceId(String instanceId) { String model, String productname, String toolnumber, String toolname, String toolinglevel,
this.instanceId = instanceId; String reason, String jsgyrequirements, String link, String state, String xh,TCSession session) {
} super();
this.instanceId.setText(instanceId);
public String getFactory() { this.instanceId.setEditable(false);
return factory; this.instanceId.setPrefSize(200, 40);
}
this.factory.setText(factory);
public void setFactory(String factory) { this.factory.setEditable(false);
this.factory = factory; this.factory.setPrefSize(200, 40);
}
this.sfId.setText(sfId);
public String getSfId() { this.sfId.setEditable(false);
return sfId; this.sfId.setPrefSize(200, 40);
}
this.head.setText(head);
public void setSfId(String sfId) { this.head.setEditable(false);
this.sfId = sfId; this.head.setPrefSize(200, 40);
}
this.scheduledtime.setText(scheduledtime);
public String getHead() { this.scheduledtime.setEditable(false);
return head; this.scheduledtime.setPrefSize(200, 40);
}
public void setHead(String head) { this.model.setText(model);
this.head = head; this.model.setEditable(false);
} this.model.setPrefSize(200, 40);
public String getScheduledtime() { this.productname.setText(productname);
return scheduledtime; this.productname.setEditable(false);
} this.productname.setPrefSize(200, 40);
public void setScheduledtime(String scheduledtime) { this.toolnumber.setText(toolnumber);
this.scheduledtime = scheduledtime; this.toolnumber.setEditable(false);
} this.toolnumber.setPrefSize(200, 40);
public String getModel() { this.toolname.setText(toolname);
return model; this.toolname.setEditable(false);
} this.toolname.setPrefSize(200, 40);
public void setModel(String model) { this.toolinglevel.setText(toolinglevel);
this.model = model; this.toolinglevel.setEditable(false);
} this.toolinglevel.setPrefSize(200, 40);
public String getProductname() {
return productname;
} this.reason.setText(reason);
this.reason.setEditable(false);
public void setProductname(String productname) { this.reason.setPrefSize(200, 40);
this.productname = productname;
} this.jsgyrequirements.setText(jsgyrequirements);
this.jsgyrequirements.setEditable(false);
public String getToolnumber() { this.jsgyrequirements.setPrefSize(200, 40);
return toolnumber;
} this.cjgzxq.setText("设计");;
this.cjgzxq.setPrefSize(200, 40);
public void setToolnumber(String toolnumber) { this.link.setText("打开");
this.toolnumber = toolnumber; this.link.setPrefSize(200, 40);
} this.linkStr = link;
this.sfIdStr = sfId;
public String getToolname() { this.instanceIdStr = instanceId;
return toolname; this.session = session;
}
this.state.setText(state);
public void setToolname(String toolname) { this.state.setEditable(false);
this.toolname = toolname; this.state.setPrefSize(200, 40);
}
this.xh.setText(xh);
public String getToolinglevel() { this.xh.setEditable(false);
return toolinglevel; this.xh.setPrefSize(200, 40);
}
//加按钮监听
public void setToolinglevel(String toolinglevel) { this.link.setOnAction(new EventHandler<ActionEvent>() {
this.toolinglevel = toolinglevel; @Override
} public void handle(ActionEvent event) {
System.out.println("Button was clicked!");
public String getReason() { // 在这里可以添加更多的逻辑
return reason; try {
} browse2(linkStr);
} catch (Exception e1) {
public void setReason(String reason) { // TODO Auto-generated catch block
this.reason = reason; e1.printStackTrace();
} }
}
public String getJsgyrequirements() { });
return jsgyrequirements;
} //加按钮监听 创建对象
this.cjgzxq.setOnAction(new EventHandler<ActionEvent>() {
public void setJsgyrequirements(String jsgyrequirements) { @Override
this.jsgyrequirements = jsgyrequirements; public void handle(ActionEvent event) {
} System.out.println("Button was clicked!");
// 在这里可以添加更多的逻辑
public String getLink() {
return link; String formnumber = instanceIdStr;
} String sfid =sfIdStr;
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
public void setLink(String link) { InterfaceAIFComponent target = app.getTargetComponent();
this.link = link; if(target instanceof TCComponentFolder) {
} TCComponentFolder folder = (TCComponentFolder)target;
try {
public String getState() { TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock");
return state; String newID = typeComponent.getNewID();
} TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null);
TCComponentItemRevision itemRev = item.getLatestItemRevision();
public void setState(String state) { if(itemRev != null && formnumber != null && !formnumber.isEmpty()) {
this.state = state; itemRev.setStringProperty("zt2_formnumber", formnumber);
} }
if(itemRev != null && sfid != null && !sfid.isEmpty()) {
public GzxqBean(String instanceId, String factory, String sfId, String head, String scheduledtime, String model, itemRev.setStringProperty("zt2_sfid", sfid);
String productname, String toolnumber, String toolname, String toolinglevel, String reason, }
String jsgyrequirements, String link, String state) { folder.add("contents", item);
super(); folder.refresh();
this.instanceId = instanceId; } catch (Exception e2) {
this.factory = factory; // TODO: handle exception
this.sfId = sfId; e2.printStackTrace();
this.head = head; }
this.scheduledtime = scheduledtime;
this.model = model; }else {
this.productname = productname; try {
this.toolnumber = toolnumber; TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock");
this.toolname = toolname; String newID = typeComponent.getNewID();
this.toolinglevel = toolinglevel; TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null);
this.reason = reason; TCComponentItemRevision itemRev = item.getLatestItemRevision();
this.jsgyrequirements = jsgyrequirements; if(itemRev != null && formnumber != null && !formnumber.isEmpty()) {
this.link = link; itemRev.setStringProperty("zt2_formnumber", formnumber);
this.state = state;
} }
if(itemRev != null && sfid != null && !sfid.isEmpty()) {
@Override itemRev.setStringProperty("zt2_sfid", sfid);
public String toString() { }
return "GzxqBean [instanceId=" + instanceId + ", factory=" + factory + ", sfId=" + sfId + ", head=" + head session.getUser().getNewStuffFolder().add("contents", item);
+ ", scheduledtime=" + scheduledtime + ", model=" + model + ", productname=" + productname } catch (Exception e2) {
+ ", toolnumber=" + toolnumber + ", toolname=" + toolname + ", toolinglevel=" + toolinglevel // TODO: handle exception
+ ", reason=" + reason + ", jsgyrequirements=" + jsgyrequirements + ", link=" + link + ", state=" e2.printStackTrace();
+ state + "]"; }
}
}
}
});
}
public TextArea getInstanceId() {
return instanceId;
}
public void setInstanceId(TextArea instanceId) {
this.instanceId = instanceId;
}
public TextArea getFactory() {
return factory;
}
public void setFactory(TextArea factory) {
this.factory = factory;
}
public TextArea getSfId() {
return sfId;
}
public void setSfId(TextArea sfId) {
this.sfId = sfId;
}
public TextArea getHead() {
return head;
}
public void setHead(TextArea head) {
this.head = head;
}
public TextArea getScheduledtime() {
return scheduledtime;
}
public void setScheduledtime(TextArea scheduledtime) {
this.scheduledtime = scheduledtime;
}
public TextArea getModel() {
return model;
}
public void setModel(TextArea model) {
this.model = model;
}
public TextArea getProductname() {
return productname;
}
public void setProductname(TextArea productname) {
this.productname = productname;
}
public TextArea getToolnumber() {
return toolnumber;
}
public void setToolnumber(TextArea toolnumber) {
this.toolnumber = toolnumber;
}
public TextArea getToolname() {
return toolname;
}
public void setToolname(TextArea toolname) {
this.toolname = toolname;
}
public TextArea getToolinglevel() {
return toolinglevel;
}
public void setToolinglevel(TextArea toolinglevel) {
this.toolinglevel = toolinglevel;
}
public TextArea getReason() {
return reason;
}
public void setReason(TextArea reason) {
this.reason = reason;
}
public Button getCjgzxq() {
return cjgzxq;
}
public void setCjgzxq(Button cjgzxq) {
this.cjgzxq = cjgzxq;
}
public Button getLink() {
return link;
}
public void setLink(Button link) {
this.link = link;
}
public TextArea getState() {
return state;
}
public void setState(TextArea state) {
this.state = state;
}
public TextArea getXh() {
return xh;
}
public void setXh(TextArea xh) {
this.xh = xh;
}
public TextArea getJsgyrequirements() {
return jsgyrequirements;
}
public void setJsgyrequirements(TextArea jsgyrequirements) {
this.jsgyrequirements = jsgyrequirements;
}
public String getLinkStr() {
return linkStr;
}
public void setLinkStr(String linkStr) {
this.linkStr = linkStr;
}
public String getSfIdStr() {
return sfIdStr;
}
public void setSfIdStr(String sfIdStr) {
this.sfIdStr = sfIdStr;
}
public String getInstanceIdStr() {
return instanceIdStr;
}
public void setInstanceIdStr(String instanceIdStr) {
this.instanceIdStr = instanceIdStr;
}
public TCSession getSession() {
return session;
}
public void setSession(TCSession session) {
this.session = session;
}
/**
*
*/
private void browse2(String url) throws Exception {
Desktop desktop = Desktop.getDesktop();
if (Desktop.isDesktopSupported() && desktop.isSupported(Desktop.Action.BROWSE)) {
URI uri = new URI(url);
desktop.browse(uri);
}
}
// public GzxqBean() {
// super();
// }
//
// public String getInstanceId() {
// return instanceId;
// }
//
// public void setInstanceId(String instanceId) {
// this.instanceId = instanceId;
// }
//
// public String getFactory() {
// return factory;
// }
//
// public void setFactory(String factory) {
// this.factory = factory;
// }
//
// public String getSfId() {
// return sfId;
// }
//
// public void setSfId(String sfId) {
// this.sfId = sfId;
// }
//
// public String getHead() {
// return head;
// }
//
// public void setHead(String head) {
// this.head = head;
// }
//
// public String getScheduledtime() {
// return scheduledtime;
// }
//
// public void setScheduledtime(String scheduledtime) {
// this.scheduledtime = scheduledtime;
// }
//
// public String getModel() {
// return model;
// }
//
// public void setModel(String model) {
// this.model = model;
// }
//
// public String getProductname() {
// return productname;
// }
//
// public void setProductname(String productname) {
// this.productname = productname;
// }
//
// public String getToolnumber() {
// return toolnumber;
// }
//
// public void setToolnumber(String toolnumber) {
// this.toolnumber = toolnumber;
// }
//
// public String getToolname() {
// return toolname;
// }
//
// public void setToolname(String toolname) {
// this.toolname = toolname;
// }
//
// public String getToolinglevel() {
// return toolinglevel;
// }
//
// public void setToolinglevel(String toolinglevel) {
// this.toolinglevel = toolinglevel;
// }
//
// public String getReason() {
// return reason;
// }
//
// public void setReason(String reason) {
// this.reason = reason;
// }
//
// public String getJsgyrequirements() {
// return jsgyrequirements;
// }
//
// public void setJsgyrequirements(String jsgyrequirements) {
// this.jsgyrequirements = jsgyrequirements;
// }
//
// public String getLink() {
// return link;
// }
//
// public void setLink(String link) {
// this.link = link;
// }
//
// public String getState() {
// return state;
// }
//
// public void setState(String state) {
// this.state = state;
// }
//
// public GzxqBean(String instanceId, String factory, String sfId, String head, String scheduledtime, String model,
// String productname, String toolnumber, String toolname, String toolinglevel, String reason,
// String jsgyrequirements, String link, String state) {
// super();
// this.instanceId = instanceId;
// this.factory = factory;
// this.sfId = sfId;
// this.head = head;
// this.scheduledtime = scheduledtime;
// this.model = model;
// this.productname = productname;
// this.toolnumber = toolnumber;
// this.toolname = toolname;
// this.toolinglevel = toolinglevel;
// this.reason = reason;
// this.jsgyrequirements = jsgyrequirements;
// this.link = link;
// this.state = state;
// }
//
// @Override
// public String toString() {
// return "GzxqBean [instanceId=" + instanceId + ", factory=" + factory + ", sfId=" + sfId + ", head=" + head
// + ", scheduledtime=" + scheduledtime + ", model=" + model + ", productname=" + productname
// + ", toolnumber=" + toolnumber + ", toolname=" + toolname + ", toolinglevel=" + toolinglevel
// + ", reason=" + reason + ", jsgyrequirements=" + jsgyrequirements + ", link=" + link + ", state="
// + state + "]";
// }
} }

@ -1,124 +1,124 @@
package com.connor.plm.GZXQ; //package com.connor.plm.GZXQ;
//
import java.awt.Component; //import java.awt.Component;
import java.awt.Desktop; //import java.awt.Desktop;
import java.net.URI; //import java.net.URI;
import java.util.List; //import java.util.List;
//
import javax.swing.AbstractCellEditor; //import javax.swing.AbstractCellEditor;
import javax.swing.JButton; //import javax.swing.JButton;
import javax.swing.JTable; //import javax.swing.JTable;
import javax.swing.table.TableCellEditor; //import javax.swing.table.TableCellEditor;
//
import com.connor.plm.CostListManagement.pojo.Cusquotation; //import com.connor.plm.CostListManagement.pojo.Cusquotation;
import com.connor.plm.CostListManagement.pojo.GzxqBean; //import com.connor.plm.CostListManagement.pojo.GzxqBean;
import com.teamcenter.rac.aif.AbstractAIFApplication; //import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; //import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility; //import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent; //import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentFolder; //import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCComponentItem; //import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision; //import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentItemType; //import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCSession; //import com.teamcenter.rac.kernel.TCSession;
//
public class ButtonCellEditor extends AbstractCellEditor implements TableCellEditor{ //public class ButtonCellEditor extends AbstractCellEditor implements TableCellEditor{
//
//
private JButton button; // private JButton button;
private JTable table; // private JTable table;
private List<GzxqBean> quotations; // private List<GzxqBean> quotations;
private Boolean flag = false; // private Boolean flag = false;
public static GzxqBean quotation; // public static GzxqBean quotation;
public static Cusquotation cusquotation; // public static Cusquotation cusquotation;
public static TCSession session; // public static TCSession session;
//
public ButtonCellEditor(JTable jTable2,List<GzxqBean> quotations,TCSession session, TCComponent f) { // public ButtonCellEditor(JTable jTable2,List<GzxqBean> quotations,TCSession session, TCComponent f) {
button = new JButton(); // button = new JButton();
this.table = jTable2; // this.table = jTable2;
this.quotations = quotations; // this.quotations = quotations;
this.session = session; // this.session = session;
button.addActionListener(e -> { // button.addActionListener(e -> {
// 这里可以添加按钮的点击事件响应逻辑 // // 这里可以添加按钮的点击事件响应逻辑
int selectedRow = table.getSelectedRow(); // int selectedRow = table.getSelectedRow();
System.out.println("点击了第"+selectedRow+"行"); // System.out.println("点击了第"+selectedRow+"行");
String text = button.getText(); // String text = button.getText();
System.out.println("点击按钮名称:"+text); // System.out.println("点击按钮名称:"+text);
if("打开".equals(text)) { // if("打开".equals(text)) {
String url = quotations.get(selectedRow).getLink(); // String url = quotations.get(selectedRow).getLink();
try { // try {
browse2(url); // browse2(url);
} catch (Exception e1) { // } catch (Exception e1) {
// TODO Auto-generated catch block // // TODO Auto-generated catch block
e1.printStackTrace(); // e1.printStackTrace();
} // }
}else if("设计".equals(text)){ // }else if("设计".equals(text)){
String formnumber = quotations.get(selectedRow).getInstanceId(); // String formnumber = quotations.get(selectedRow).getInstanceId();
String sfid = quotations.get(selectedRow).getSfId(); // String sfid = quotations.get(selectedRow).getSfId();
AbstractAIFApplication app = AIFUtility.getCurrentApplication(); // AbstractAIFApplication app = AIFUtility.getCurrentApplication();
InterfaceAIFComponent target = app.getTargetComponent(); // InterfaceAIFComponent target = app.getTargetComponent();
if(target instanceof TCComponentFolder) { // if(target instanceof TCComponentFolder) {
TCComponentFolder folder = (TCComponentFolder)target; // TCComponentFolder folder = (TCComponentFolder)target;
try { // try {
TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock"); // TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock");
String newID = typeComponent.getNewID(); // String newID = typeComponent.getNewID();
TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null); // TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null);
TCComponentItemRevision itemRev = item.getLatestItemRevision(); // TCComponentItemRevision itemRev = item.getLatestItemRevision();
if(itemRev != null && formnumber != null && !formnumber.isEmpty()) { // if(itemRev != null && formnumber != null && !formnumber.isEmpty()) {
itemRev.setStringProperty("zt2_formnumber", formnumber); // itemRev.setStringProperty("zt2_formnumber", formnumber);
} // }
if(itemRev != null && sfid != null && !sfid.isEmpty()) { // if(itemRev != null && sfid != null && !sfid.isEmpty()) {
itemRev.setStringProperty("zt2_sfid", sfid); // itemRev.setStringProperty("zt2_sfid", sfid);
} // }
folder.add("contents", item); // folder.add("contents", item);
folder.refresh(); // folder.refresh();
} catch (Exception e2) { // } catch (Exception e2) {
// TODO: handle exception // // TODO: handle exception
e2.printStackTrace(); // e2.printStackTrace();
} // }
//
}else { // }else {
try { // try {
TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock"); // TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock");
String newID = typeComponent.getNewID(); // String newID = typeComponent.getNewID();
TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null); // TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null);
TCComponentItemRevision itemRev = item.getLatestItemRevision(); // TCComponentItemRevision itemRev = item.getLatestItemRevision();
if(itemRev != null && formnumber != null && !formnumber.isEmpty()) { // if(itemRev != null && formnumber != null && !formnumber.isEmpty()) {
itemRev.setStringProperty("zt2_formnumber", formnumber); // itemRev.setStringProperty("zt2_formnumber", formnumber);
//
} // }
if(itemRev != null && sfid != null && !sfid.isEmpty()) { // if(itemRev != null && sfid != null && !sfid.isEmpty()) {
itemRev.setStringProperty("zt2_sfid", sfid); // itemRev.setStringProperty("zt2_sfid", sfid);
} // }
session.getUser().getNewStuffFolder().add("contents", item); // session.getUser().getNewStuffFolder().add("contents", item);
} catch (Exception e2) { // } catch (Exception e2) {
// TODO: handle exception // // TODO: handle exception
e2.printStackTrace(); // e2.printStackTrace();
} // }
//
} // }
} // }
}); // });
//
} // }
private void browse2(String url) throws Exception { //private void browse2(String url) throws Exception {
Desktop desktop = Desktop.getDesktop(); // Desktop desktop = Desktop.getDesktop();
if (Desktop.isDesktopSupported() && desktop.isSupported(Desktop.Action.BROWSE)) { // if (Desktop.isDesktopSupported() && desktop.isSupported(Desktop.Action.BROWSE)) {
URI uri = new URI(url); // URI uri = new URI(url);
desktop.browse(uri); // desktop.browse(uri);
} // }
} //}
//
@Override //@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, //public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,
int row, int column) { // int row, int column) {
button.setText(value != null ? value.toString() : ""); // button.setText(value != null ? value.toString() : "");
return button; // return button;
} //}
//
@Override //@Override
public Object getCellEditorValue() { //public Object getCellEditorValue() {
return button.getText(); // return button.getText();
} //}
//
} //}

@ -0,0 +1,25 @@
package com.connor.plm.GZXQ;
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import java.awt.*;
public class CenterRenderer extends DefaultTableCellRenderer implements TableCellRenderer {
public CenterRenderer() {
// 设置水平对齐方式为居中
setHorizontalAlignment(SwingConstants.CENTER);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
// 调用父类的实现,然后根据需要做进一步的自定义
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
// 如果需要,可以在这里做更多的自定义,如字体、颜色等
return c;
}
}

@ -0,0 +1,24 @@
package com.connor.plm.GZXQ;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.TableCellRenderer;
import java.awt.*;
public class CustomHeaderRenderer extends JLabel implements TableCellRenderer {
private Border border = new LineBorder(Color.black, 1); // ÉèÖñ߿òÑÕÉ«ºÍ¿í¶È
public CustomHeaderRenderer() {
setOpaque(true);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
setText(value.toString());
setBorder(border);
return this;
}
}

@ -0,0 +1,511 @@
package com.connor.plm.GZXQ;
/**
* ===============================================================================
* 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.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.casic.javafx.control.DateTimePicker;
import com.chint.plm.fxUtil.KFXPanel;
import com.chint.plm.fxUtil.KFXPanelController;
import com.connor.chint.sap2.util.SAPUtil;
import com.connor.chint.sap2.util.SqlUtil;
import com.connor.plm.CostListManagement.pojo.GzxqBean;
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;
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.DatePicker;
import javafx.scene.control.ScrollPane;
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.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
public class GZXQController extends KFXPanelController {
private Connection conn;
private int pageNum;// 分页显示当前第几页
private List<List<GzxqBean>> tableBeans = new ArrayList<List<GzxqBean>>();//存储table分页数据
private String PlanTime;//
@FXML
private TextField jTextField8;
@FXML
private BorderPane tablePane;
@FXML
private DatePicker jTextField7;
@FXML
private Button jButton2;
@FXML
private Button wy;
@FXML
private TextField jTextField9;
@FXML
private TitledPane titlePaneResult;
@FXML
private TextField jTextField4;
@FXML
private TextField jTextField3;
@FXML
private Button sy;
@FXML
private TextField jTextField6;
@FXML
private GridPane gridPaneCondition;
@FXML
private TextField jTextField5;
@FXML
private TableView<GzxqBean> tableView;
@FXML
private TextField jTextField10;
@FXML
private Button syy;
@FXML
private BorderPane bpane;
@FXML
private TitledPane titlePaneCondition;
@FXML
private GridPane gridPaneResult;
@FXML
private Button xyy;
@FXML
private TextField jTextField2;
@FXML
private TextField jTextField1;
@FXML
private Pane pane;
// table的列
private TableColumn<GzxqBean, TextArea> tc_1 = new TableColumn<GzxqBean, TextArea>("序号");
private TableColumn<GzxqBean, TextArea> tc_2 = new TableColumn<GzxqBean, TextArea>("申请人");
private TableColumn<GzxqBean, TextArea> tc_3 = new TableColumn<GzxqBean, TextArea>("流程实例ID");
private TableColumn<GzxqBean, TextArea> tc_4 = new TableColumn<GzxqBean, TextArea>("工艺负责人");
private TableColumn<GzxqBean, TextArea> tc_5 = new TableColumn<GzxqBean, TextArea>("计划时间");
private TableColumn<GzxqBean, TextArea> tc_6 = new TableColumn<GzxqBean, TextArea>("委托理由");
private TableColumn<GzxqBean, TextArea> tc_7 = new TableColumn<GzxqBean, TextArea>("技术工艺要求");
private TableColumn<GzxqBean, Button> tc_8 = new TableColumn<GzxqBean, Button>("OA表单链接");
private TableColumn<GzxqBean, Button> tc_9 = new TableColumn<GzxqBean, Button>("创建工装需求");
private TableColumn<GzxqBean, TextArea> tc_10 = new TableColumn<GzxqBean, TextArea>("状态");
@FXML
private ScrollPane scrollPane;
@FXML
private BorderPane resultBorder;
@FXML
private BorderPane topBorder;
private GZXQFrame frame;
private DateTimePicker dateTimeStart;
private DateTimePicker dateTimeEnd;
protected AbstractAIFApplication app;
private TCSession session;
/**
*
*/
@Override
public void initData(KFXPanel paramKFXPanel) throws Exception {
// TODO Auto-generated method stub
frame = (GZXQFrame) paramKFXPanel.getParentDialog();
addWindListener(frame);
frame.setMaximumSize(frame.getMaximumSize());
System.out.println("frame==>" + frame);
this.app = AIFUtility.getCurrentApplication();
this.session = (TCSession) app.getSession();
dateTimeStart = new DateTimePicker();
dateTimeEnd = new DateTimePicker();
//设置文本框的高度
jTextField1.setPrefHeight(30);
jTextField2.setPrefHeight(30);
jTextField3.setPrefHeight(30);
jTextField4.setPrefHeight(30);
jTextField5.setPrefHeight(30);
jTextField6.setPrefHeight(30);
jTextField7.setPrefHeight(30);
jTextField7.setPrefWidth(244);
jTextField8.setPrefHeight(30);
jTextField9.setPrefHeight(30);
jTextField10.setPrefHeight(30);
// 表格列绑定bean对象
tc_1.setSortable(false);
tc_2.setSortable(false);
tc_3.setSortable(false);
tc_4.setSortable(false);
tc_5.setSortable(false);
tc_6.setSortable(false);
tc_7.setSortable(false);
tc_8.setSortable(false);
tc_9.setSortable(false);
tc_10.setSortable(false);
// 列绑定bean对象
tc_1.setCellValueFactory(new PropertyValueFactory<GzxqBean, TextArea>("xh"));
tc_2.setCellValueFactory(new PropertyValueFactory<GzxqBean, TextArea>("sfId"));// cTaskNum
tc_3.setCellValueFactory(new PropertyValueFactory<GzxqBean, TextArea>("instanceId"));
tc_4.setCellValueFactory(new PropertyValueFactory<GzxqBean, TextArea>("head"));
tc_5.setCellValueFactory(new PropertyValueFactory<GzxqBean, TextArea>("scheduledtime"));
tc_6.setCellValueFactory(new PropertyValueFactory<GzxqBean, TextArea>("reason"));
tc_7.setCellValueFactory(new PropertyValueFactory<GzxqBean, TextArea>("jsgyrequirements"));
tc_8.setCellValueFactory(new PropertyValueFactory<GzxqBean, Button>("link"));
tc_9.setCellValueFactory(new PropertyValueFactory<GzxqBean, Button>("cjgzxq"));
tc_10.setCellValueFactory(new PropertyValueFactory<GzxqBean, TextArea>("state"));
//设置table列宽度
tc_1.prefWidthProperty().bind(tableView.widthProperty().multiply(0.04));
tc_2.prefWidthProperty().bind(tableView.widthProperty().multiply(0.07));
tc_3.prefWidthProperty().bind(tableView.widthProperty().multiply(0.12));
tc_4.prefWidthProperty().bind(tableView.widthProperty().multiply(0.09));
tc_5.prefWidthProperty().bind(tableView.widthProperty().multiply(0.1));
tc_6.prefWidthProperty().bind(tableView.widthProperty().multiply(0.2));
tc_7.prefWidthProperty().bind(tableView.widthProperty().multiply(0.12));
tc_8.prefWidthProperty().bind(tableView.widthProperty().multiply(0.09));
tc_9.prefWidthProperty().bind(tableView.widthProperty().multiply(0.09));
tc_10.prefWidthProperty().bind(tableView.widthProperty().multiply(0.08));
// //设置是否可编辑
// 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
tableView.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);
}
// 跳转首页
@FXML
void firstBtnAction(ActionEvent event) {
pageNum = 0;
ObservableList<GzxqBean> data = FXCollections.observableArrayList(tableBeans.get(0));
tableView.getItems().clear();
tableView.setItems(data);
}
// 跳转上一页
@FXML
void lastBtnAction(ActionEvent event) {
if (pageNum > 0) {
pageNum = pageNum - 1;
}
ObservableList<GzxqBean> data = FXCollections.observableArrayList(tableBeans.get(pageNum));
tableView.getItems().clear();
tableView.setItems(data);
}
// 跳转下一页
@FXML
void nextBtnAction(ActionEvent event) {
if (pageNum < tableBeans.size() - 1) {
pageNum = pageNum + 1;
}
ObservableList<GzxqBean> data = FXCollections.observableArrayList(tableBeans.get(pageNum));
tableView.getItems().clear();
tableView.setItems(data);
}
// 跳转尾页
@FXML
void tailBtnAction(ActionEvent event) {
pageNum = tableBeans.size() - 1;
ObservableList<GzxqBean> data = FXCollections.observableArrayList(tableBeans.get(pageNum));
tableView.getItems().clear();
tableView.setItems(data);
}
/**
* @param frame
* @function
*/
private void addWindListener(GZXQFrame 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 width = primaryStage.getWidth();
System.out.println("width==>" + width);
pane.setPrefWidth(width * 0.98);
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 cxAction(ActionEvent event) throws ParseException {
//连接数据库
String[] prefs = session.getPreferenceService().getStringValues("database_tc");
System.out.println("===============开始连接tc数据库===============");
long time31 = System.nanoTime();
conn = SqlUtil.getTCDataConnection(prefs);
long time32 = System.nanoTime();
System.out.println("===============连接tc数据库用时(ms) " + ((time32 - time31) / 1000000L)+"===============");
System.out.println("======================清除");
tableView.getItems().clear();
tableBeans.clear();
String factory = "";
// 拼接查询语句
String sql = "select * from \"CHINT_ FROCK\" where 1=1 ";
try {
factory = SAPUtil.getGroupID(session);
sql = "select * from \"CHINT_ FROCK\" where FACTORY = '"+factory+"' ";
} catch (TCException e1) {
// TODO Auto-generated catch block
System.out.println("获取组织失败");
e1.printStackTrace();
}
if(jTextField1.getText()!=null && !"".equals(jTextField1.getText().trim())) {
sql += "and instanceId = \'" + jTextField1.getText() +"\'";
}
if(jTextField2.getText()!=null && !"".equals(jTextField2.getText().trim())) {
sql += "and \"HEAD\" = \'" + jTextField2.getText() +"\'";
}
if(jTextField3.getText()!=null && !"".equals(jTextField3.getText().trim())) {
sql += "and \"MODEL\" = \'" + jTextField3.getText() +"\'";
}
if(jTextField4.getText()!=null && !"".equals(jTextField4.getText().trim())) {
sql += "and \"TOOLNUMBER\" = \'" + jTextField4.getText() +"\'";
}
if(jTextField5.getText()!=null && !"".equals(jTextField5.getText().trim())) {
sql += "and \"TOOLNAME\" = \'" + jTextField5.getText() +"\'";
}
if(jTextField8.getText()!=null && !"".equals(jTextField8.getText().trim())) {
sql += "and sfId = \'" + jTextField8.getText() +"\'";
}
PlanTime = jTextField7.getEditor().getText();
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-M-dd");
if (PlanTime.length() > 0) {
if(PlanTime.contains("-")) {
PlanTime = PlanTime.replace("-", "/");
System.out.println("PlanTime==========="+PlanTime);
//Date date = sdf2.parse(PlanTime);
sql += "and \"SCHEDULEDTIME\" like \'%" + PlanTime +"%\'";
}
}
// if(jTextField7.getText()!=null && !"".equals(jTextField7.getText().trim())) {
// sql += "and \"SCHEDULEDTIME\" = \'" + jTextField7.getText() +"\'";
// }
if(jTextField9.getText()!=null && !"".equals(jTextField9.getText().trim())) {
sql += "and \"PRODUCTNAME\" = \'" + jTextField9.getText() +"\'";
}
if(jTextField10.getText()!=null && !"".equals(jTextField10.getText().trim())) {
sql += "and \"TOOLINGLEVEL\" = \'" + jTextField10.getText() +"\'";
}
if(jTextField6.getText()!=null && !"".equals(jTextField6.getText().trim())) {
sql += "and \"REASON\" = \'" + jTextField6.getText() +"\'";
}
System.out.println("sql:"+sql);
PreparedStatement statement;
try {
int z=1;
statement = conn.prepareStatement(sql);
ResultSet res = statement.executeQuery();
List<GzxqBean> quotations = new ArrayList<GzxqBean>();
//处理查询数据结果集
while (res.next()) {
GzxqBean gzxqBean = new GzxqBean(
res.getString("instanceId") != null ? res.getString("instanceId") : "",
res.getString("factory") != null ? res.getString("factory") : "",
res.getString("sfId") != null ? res.getString("sfId") : "",
res.getString("head") != null ? res.getString("head") : "",
res.getString("scheduledtime") != null ? res.getString("scheduledtime") : "",
res.getString("model") != null ? res.getString("model") : "",
res.getString("productname") != null ? res.getString("productname") : "",
res.getString("toolnumber") != null ? res.getString("toolnumber") : "",
res.getString("toolname") != null ? res.getString("toolname") : "",
res.getString("toolinglevel") != null ? res.getString("toolinglevel") : "",
res.getString("reason") != null ? res.getString("reason") : "",
res.getString("jsgyrequirements") != null ? res.getString("jsgyrequirements") : "",
res.getString("link") != null ? res.getString("link") : "",
res.getString("state") != null ? res.getString("state") : "",z+""
,session);
if(z % 10 ==1) {
quotations = new ArrayList<GzxqBean>();
tableBeans.add(quotations);
}
quotations.add(gzxqBean);
z = z+1;
}
pageNum = 0;
if(tableBeans == null || tableBeans.size() <= 0 || tableBeans.get(0).size() <= 0) {
//MessageBox.post("未查询到对应工装需求!","提示",2);
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("提示");
alert.setHeaderText("未查询到对应工装需求");
//alert.setContentText("导入完成");
alert.showAndWait();
}else {
ObservableList<GzxqBean> data = FXCollections.observableArrayList(tableBeans.get(0));
System.out.println("======================清除");
tableView.getItems().clear();
tableView.setItems(data);
}
tableView.setRowFactory(tv -> {
//TODO 设置行高
TableRow<GzxqBean> row = new TableRow<>();
row.setPrefHeight(50);
return row;
});
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

@ -0,0 +1,26 @@
package com.connor.plm.GZXQ;
import java.awt.BorderLayout;
import java.awt.Dimension;
import com.chint.plm.fxUtil.KFrame;
import javafx.embed.swing.JFXPanel;
public class GZXQFrame extends KFrame {
public GZXQFrame() {
super();
}
@Override
protected void initUI() throws Exception {
this.setTitle("¹¤×°ÐèÇó");
this.setLayout(new BorderLayout());
this.setPreferredSize(new Dimension(1490, 900));
JFXPanel panel = new JFXPanel();
panel.setScene(new GZXQPanel(this).getScene());
this.add(BorderLayout.CENTER, panel);
}
}

@ -3,9 +3,11 @@ package com.connor.plm.GZXQ;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Toolkit; import java.awt.Toolkit;
import org.apache.log4j.chainsaw.Main;
import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionEvent;
import com.chint.plm.SearchSapResult.SapResultFrame;
import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.kernel.TCSession;
@ -26,22 +28,26 @@ public class GZXQHandler extends AbstractHandler{
new Thread() { new Thread() {
@Override @Override
public void run() { public void run() {
NewJFrame newJFrame = new NewJFrame(session); // NewJFrame newJFrame = new NewJFrame(session);
int width2 = newJFrame.getWidth(); // int width2 = newJFrame.getWidth();
int height2 = newJFrame.getHeight(); // int height2 = newJFrame.getHeight();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸 // Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸
int screenWidth = screenSize.width; // 获取屏幕宽度 // int screenWidth = screenSize.width; // 获取屏幕宽度
int screenHeight = screenSize.height; // 获取屏幕高度 // int screenHeight = screenSize.height; // 获取屏幕高度
int x = (screenWidth - width2) / 2; // 计算Frame的左上角x坐标 // int x = (screenWidth - width2) / 2; // 计算Frame的左上角x坐标
int y = (screenHeight - height2) / 2; // 计算Frame的左上角y坐标 // int y = (screenHeight - height2) / 2; // 计算Frame的左上角y坐标
newJFrame.setTitle("工装需求查询"); // newJFrame.setTitle("工装需求查询");
// this.getContentPane().setBackground(Color.red); // // this.getContentPane().setBackground(Color.red);
newJFrame.getContentPane().setBackground(new java.awt.Color(255, 255, 255)); // newJFrame.getContentPane().setBackground(new java.awt.Color(255, 255, 255));
newJFrame.setSize(950, height2); // 设置Frame的大小 // newJFrame.setSize(1240, height2); // 设置Frame的大小
newJFrame.setLocation(x, y); // 设置Frame的位置 // newJFrame.setLocation(x, y); // 设置Frame的位置
newJFrame.setResizable(false); // newJFrame.setResizable(false);
newJFrame.setDefaultCloseOperation(2); // 设置窗口关闭时的默认操作 // newJFrame.setDefaultCloseOperation(2); // 设置窗口关闭时的默认操作
newJFrame.setVisible(true); // newJFrame.setVisible(true);
new GZXQFrame();
} }
}.start(); }.start();
} catch (Exception e) { } catch (Exception e) {
@ -50,4 +56,8 @@ public class GZXQHandler extends AbstractHandler{
return null; return null;
} }
public static void main(String[] args) {
new GZXQFrame();
}
} }

@ -0,0 +1,13 @@
package com.connor.plm.GZXQ;
import java.awt.Window;
import com.chint.plm.fxUtil.KFXPanel;
public class GZXQPanel extends KFXPanel {
public GZXQPanel(Window dialog) {
super(dialog, "a.fxml");
// TODO Auto-generated constructor stub
}
}

@ -0,0 +1,129 @@
package com.connor.plm.GZXQ;
//import javax.swing.*;
//import javax.swing.table.*;
//import java.awt.*;
//
//public class MultiLineTableCellRenderer extends JTextArea implements TableCellRenderer {
//
// public MultiLineTableCellRenderer() {
// // 设置JTextArea的属性
// this.setEditable(false);
// this.setLineWrap(true); // 启用自动换行
// this.setWrapStyleWord(true); // 保持单词的完整性,不在单词中间换行
// }
//
// @Override
// public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
// // 清除样式,避免残留样式影响显示
// this.setText(value == null ? "" : value.toString());
//
// // 可以根据需要设置字体、颜色等样式
// if (isSelected) {
// this.setBackground(table.getSelectionBackground());
// this.setForeground(table.getSelectionForeground());
// } else {
// this.setBackground(table.getBackground());
// this.setForeground(table.getForeground());
// }
//
// return this;
// }
//}
//import javax.swing.*;
//import javax.swing.table.DefaultTableCellRenderer;
//import javax.swing.table.TableCellRenderer;
//import java.awt.*;
//
//public class MultiLineTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer {
//
// private JScrollPane scrollPane;
//
// public MultiLineTableCellRenderer() {
// JTextArea textArea = new JTextArea();
// textArea.setEditable(false); // 禁止编辑
// textArea.setLineWrap(true); // 允许换行
// textArea.setWrapStyleWord(true); // 单词整行换行
//
// scrollPane = new JScrollPane(textArea);
// scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
// scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
// scrollPane.setBorder(null); // 移除边框
// }
//
// @Override
// public Component getTableCellRendererComponent(JTable table, Object value,
// boolean isSelected, boolean hasFocus,
// int row, int column) {
// JTextArea textArea = (JTextArea) scrollPane.getViewport().getView();
// textArea.setText(value == null ? "" : value.toString());
//
// // 设置选中状态的颜色
// if (isSelected) {
// textArea.setBackground(table.getSelectionBackground());
// textArea.setForeground(table.getSelectionForeground());
// } else {
// textArea.setBackground(table.getBackground());
// textArea.setForeground(table.getForeground());
// }
//
// return scrollPane;
// }
//}
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import java.awt.*;
public class MultiLineTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer {
private JTextArea textArea;
private JScrollPane scrollPane;
public MultiLineTableCellRenderer() {
textArea = new JTextArea();
textArea.setEditable(false);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
scrollPane = new JScrollPane(textArea);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setBorder(null);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
textArea.setText(value == null ? "" : value.toString());
// 设置选中状态的颜色
if (isSelected) {
textArea.setBackground(table.getSelectionBackground());
textArea.setForeground(table.getSelectionForeground());
} else {
textArea.setBackground(table.getBackground());
textArea.setForeground(table.getForeground());
}
// 获取单元格的首选大小
Dimension preferredSize = table.getColumnModel().getColumn(column).getPreferredWidth() > 0 ?
new Dimension(table.getColumnModel().getColumn(column).getPreferredWidth(), table.getRowHeight(row)) :
new Dimension(table.getColumnModel().getColumn(column).getWidth(), table.getRowHeight(row));
// 设置JScrollPane的大小
scrollPane.setPreferredSize(preferredSize);
scrollPane.setMaximumSize(preferredSize);
scrollPane.setMinimumSize(preferredSize);
scrollPane.setSize(preferredSize);
// 重新计算JScrollPane的布局
scrollPane.revalidate();
scrollPane.repaint();
return scrollPane;
}
}

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<Pane fx:id="pane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="840.0" prefWidth="1270.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.connor.plm.GZXQ.GZXQController">
<children>
<BorderPane fx:id="bpane" layoutX="5.0" layoutY="14.0" prefHeight="840.0" prefWidth="1261.0">
<top>
<TitledPane fx:id="titlePaneCondition" animated="false" prefHeight="182.0" prefWidth="1034.0" text="条件" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="151.0" prefWidth="964.0">
<children>
<GridPane fx:id="gridPaneCondition" layoutX="13.0" layoutY="11.0" prefHeight="114.0" prefWidth="1218.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="109.0" minWidth="10.0" prefWidth="86.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="216.0" minWidth="10.0" prefWidth="164.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="112.0" minWidth="10.0" prefWidth="93.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="233.0" minWidth="10.0" prefWidth="185.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="103.0" minWidth="10.0" prefWidth="95.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="246.0" minWidth="10.0" prefWidth="191.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="189.0" minWidth="10.0" prefWidth="97.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="212.0" minWidth="10.0" prefWidth="212.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<TextField fx:id="jTextField1" GridPane.columnIndex="1" />
<TextField fx:id="jTextField2" prefHeight="30.0" prefWidth="189.0" GridPane.columnIndex="3" />
<TextField fx:id="jTextField5" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField fx:id="jTextField6" prefHeight="30.0" prefWidth="152.0" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<TextField fx:id="jTextField7" GridPane.columnIndex="5" GridPane.rowIndex="1" />
<TextField fx:id="jTextField3" GridPane.columnIndex="5" />
<TextField fx:id="jTextField8" GridPane.columnIndex="7" GridPane.rowIndex="1" />
<TextField fx:id="jTextField4" prefHeight="30.0" prefWidth="168.0" GridPane.columnIndex="7" />
<TextField fx:id="jTextField9" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<TextField fx:id="jTextField10" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<Label text="流程实例ID" GridPane.halignment="CENTER" />
<Label text="工装名称" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label text="产品名称" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
<Label text="工艺负责人" GridPane.columnIndex="2" GridPane.halignment="CENTER" />
<Label text="委托理由" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label text="工装等级" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
<Label text="产品型号" GridPane.columnIndex="4" GridPane.halignment="CENTER" />
<Label text="计划时间" GridPane.columnIndex="4" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label GridPane.columnIndex="4" GridPane.rowIndex="2" />
<Label text="工装编号" GridPane.columnIndex="6" GridPane.halignment="CENTER" />
<Label text="申请人" GridPane.columnIndex="6" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Button fx:id="jButton2" mnemonicParsing="false" onAction="#cxAction" prefHeight="30.0" prefWidth="98.0" text="查 询" GridPane.columnIndex="7" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="BOTTOM">
<GridPane.margin>
<Insets />
</GridPane.margin>
</Button>
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</top>
<center>
<TitledPane fx:id="titlePaneResult" animated="false" prefHeight="620.0" prefWidth="966.0" text="结果" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="570.0" prefWidth="964.0">
<children>
<BorderPane fx:id="tablePane" layoutX="8.0" layoutY="6.0" prefHeight="573.0" prefWidth="1245.0">
<top>
<TableView fx:id="tableView" prefHeight="544.0" prefWidth="1195.0" BorderPane.alignment="CENTER" />
</top>
<bottom>
<GridPane fx:id="gridPaneResult" prefHeight="29.0" prefWidth="948.0" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="sy" mnemonicParsing="false" onAction="#firstBtnAction" text="首页" GridPane.columnIndex="2" />
<Button fx:id="syy" mnemonicParsing="false" onAction="#lastBtnAction" text="上一页" GridPane.columnIndex="3" />
<Button mnemonicParsing="false" onAction="#nextBtnAction" text="下一页" GridPane.columnIndex="4" fx:id="xyy" />
<Button fx:id="wy" mnemonicParsing="false" onAction="#tailBtnAction" text="尾页" GridPane.columnIndex="5" />
</children>
</GridPane>
</bottom>
</BorderPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</center>
</BorderPane>
</children>
</Pane>

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<Pane fx:id="pane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="840.0" prefWidth="1270.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.connor.plm.GZXQ.GZXQController">
<children>
<BorderPane fx:id="bpane" layoutX="5.0" layoutY="14.0" prefHeight="840.0" prefWidth="1261.0">
<top>
<TitledPane fx:id="titlePaneCondition" animated="false" prefHeight="182.0" prefWidth="1034.0" text="条件" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="151.0" prefWidth="964.0">
<children>
<GridPane fx:id="gridPaneCondition" layoutX="13.0" layoutY="11.0" prefHeight="114.0" prefWidth="1218.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="109.0" minWidth="10.0" prefWidth="86.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="216.0" minWidth="10.0" prefWidth="164.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="112.0" minWidth="10.0" prefWidth="93.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="233.0" minWidth="10.0" prefWidth="185.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="103.0" minWidth="10.0" prefWidth="95.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="246.0" minWidth="10.0" prefWidth="191.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="189.0" minWidth="10.0" prefWidth="97.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="212.0" minWidth="10.0" prefWidth="212.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<TextField fx:id="jTextField1" GridPane.columnIndex="1" />
<TextField fx:id="jTextField2" prefHeight="30.0" prefWidth="189.0" GridPane.columnIndex="3" />
<TextField fx:id="jTextField5" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField fx:id="jTextField6" prefHeight="30.0" prefWidth="152.0" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<TextField fx:id="jTextField3" GridPane.columnIndex="5" />
<TextField fx:id="jTextField8" GridPane.columnIndex="7" GridPane.rowIndex="1" />
<TextField fx:id="jTextField4" prefHeight="30.0" prefWidth="168.0" GridPane.columnIndex="7" />
<TextField fx:id="jTextField9" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<TextField fx:id="jTextField10" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<Label text="流程实例ID" GridPane.halignment="CENTER" />
<Label text="工装名称" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label text="产品名称" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
<Label text="工艺负责人" GridPane.columnIndex="2" GridPane.halignment="CENTER" />
<Label text="委托理由" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label text="工装等级" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
<Label text="产品型号" GridPane.columnIndex="4" GridPane.halignment="CENTER" />
<Label text="计划时间" GridPane.columnIndex="4" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Label GridPane.columnIndex="4" GridPane.rowIndex="2" />
<Label text="工装编号" GridPane.columnIndex="6" GridPane.halignment="CENTER" />
<Label text="申请人" GridPane.columnIndex="6" GridPane.halignment="CENTER" GridPane.rowIndex="1" />
<Button fx:id="jButton2" mnemonicParsing="false" onAction="#cxAction" prefHeight="30.0" prefWidth="98.0" text="查 询" GridPane.columnIndex="7" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="BOTTOM">
<GridPane.margin>
<Insets />
</GridPane.margin>
</Button>
<DatePicker GridPane.columnIndex="5" GridPane.rowIndex="1" />
<DatePicker fx:id="jTextField7" GridPane.columnIndex="5" GridPane.rowIndex="1" />
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</top>
<center>
<TitledPane fx:id="titlePaneResult" animated="false" prefHeight="620.0" prefWidth="966.0" text="结果" BorderPane.alignment="CENTER">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="570.0" prefWidth="964.0">
<children>
<BorderPane fx:id="tablePane" layoutX="8.0" layoutY="6.0" prefHeight="573.0" prefWidth="1245.0">
<top>
<TableView fx:id="tableView" prefHeight="544.0" prefWidth="1195.0" BorderPane.alignment="CENTER" />
</top>
<bottom>
<GridPane fx:id="gridPaneResult" prefHeight="29.0" prefWidth="948.0" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="sy" mnemonicParsing="false" onAction="#firstBtnAction" text="首页" GridPane.columnIndex="2" />
<Button fx:id="syy" mnemonicParsing="false" onAction="#lastBtnAction" text="上一页" GridPane.columnIndex="3" />
<Button mnemonicParsing="false" onAction="#nextBtnAction" text="下一页" GridPane.columnIndex="4" fx:id="xyy" />
<Button fx:id="wy" mnemonicParsing="false" onAction="#tailBtnAction" text="尾页" GridPane.columnIndex="5" />
</children>
</GridPane>
</bottom>
</BorderPane>
</children>
</AnchorPane>
</content>
</TitledPane>
</center>
</BorderPane>
</children>
</Pane>

@ -4,6 +4,7 @@ import java.sql.Connection;
import java.sql.DriverManager; import java.sql.DriverManager;
import java.sql.SQLException; import java.sql.SQLException;
import com.connor.chint.sap2.util.SAPUtil;
import com.connor.chint.sap2.util.SqlUtil; import com.connor.chint.sap2.util.SqlUtil;
import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog; import com.teamcenter.rac.aif.AbstractAIFDialog;
@ -12,6 +13,7 @@ import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset; import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentGroup; import com.teamcenter.rac.kernel.TCComponentGroup;
import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.MessageBox;
@ -37,6 +39,7 @@ public class SRMDialog extends AbstractAIFDialog {
public SRMDialog(AbstractAIFApplication app, TCSession session) throws Exception { public SRMDialog(AbstractAIFApplication app, TCSession session) throws Exception {
this.session = session; this.session = session;
System.out.println("222222222222222222222222222222222222");
this.app = app; this.app = app;
initUI(); initUI();
} }
@ -76,13 +79,18 @@ public class SRMDialog extends AbstractAIFDialog {
// »ñÈ¡uid // »ñÈ¡uid
String uid = revision.getUid(); String uid = revision.getUid();
System.out.println("uid===" + uid); System.out.println("uid===" + uid);
// 获取组信息
TCComponentGroup loginGroup = session.getUser().getLoginGroup();
//TCComponentGroup loginGroup = session.getUser().getLoginGroup();
String userName = session.getUserName(); String userName = session.getUserName();
String userId = session.getUser().getUserId(); String userId = session.getUser().getUserId();
System.out.println("userName================"+userName); System.out.println("userName================"+userName);
System.out.println("userId================"+userId); System.out.println("userId================"+userId);
String groupName = loginGroup.getStringProperty("full_name");
TCComponentGroup group = session.getCurrentGroup();
String groupName = group.getTCProperty("name").getStringValue();
//String groupName = loginGroup.getStringProperty("full_name");
System.out.println("groupName===" + groupName); System.out.println("groupName===" + groupName);
// insertÊý¾Ý¿â // insertÊý¾Ý¿â
String[] prefs = session.getPreferenceService().getStringValues("CHINT_SRM_SQL_CONNECT"); String[] prefs = session.getPreferenceService().getStringValues("CHINT_SRM_SQL_CONNECT");

@ -6,6 +6,7 @@ import org.eclipse.core.commands.ExecutionException;
import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.kernel.TCSession;
public class SRMHandler extends AbstractHandler{ public class SRMHandler extends AbstractHandler{
@ -15,6 +16,7 @@ public class SRMHandler extends AbstractHandler{
public Object execute(ExecutionEvent arg0) throws ExecutionException { public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication(); AbstractAIFApplication app = AIFUtility.getCurrentApplication();
TCSession session = (TCSession) app.getSession(); TCSession session = (TCSession) app.getSession();
try { try {
new Thread() { new Thread() {

@ -0,0 +1,378 @@
package com.connor.plm.txdp;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Month;
import java.time.YearMonth;
import java.time.temporal.ChronoUnit;
import java.time.temporal.WeekFields;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import org.apache.poi.ss.formula.eval.ValueEval;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellValue;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.connor.chint.sap2.util.MyProgressBarCompent;
import com.connor.chint.sap2.util.SAPUtil;
import com.connor.chint.sap2.util.SqlUtil;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.DateButton;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
public class BZGSFram extends JFrame implements ActionListener {
private TCSession session;
protected DefaultTableModel tm_part;
private static ArrayList<String> dateConnList = new ArrayList<String>();
private String[] prefs;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
StringBuilder insertSql = new StringBuilder();
private JTextField pathJTextField = new JTextField(30);
private JButton outputButton = new JButton("选择");
private Workbook workbook;
public BZGSFram(TCSession session) {
// TODO Auto-generated constructor stub
this.session = session;
prefs = session.getPreferenceService().getStringValues("CHINT_SRM_SQL_CONNECT");
initUI();
}
private String sqlString = "";
private void initUI() {
// TODO Auto-generated method stub
try {
this.setTitle("工时维护界面");
this.setLayout(new BorderLayout());
JPanel topPanel = getTopPanel();
JPanel btnPanel = getBtnPanel();
this.add(topPanel, BorderLayout.NORTH);
// this.add(pane,BorderLayout.CENTER);
this.add(btnPanel, BorderLayout.SOUTH);
this.setPreferredSize(new Dimension(550, 115));
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸
int screenWidth = screenSize.width; // 获取屏幕宽度
int screenHeight = screenSize.height; // 获取屏幕高度
int x = (screenWidth - 550) / 2; // 计算Frame的左上角x坐标
int y = (screenHeight - 300) / 2; // 计算Frame的左上角y坐标
this.setLocation(x, y); // 设置Frame的位置
// this.setLocationRelativeTo(null);
this.createActionEvent();
this.pack();
// this.validate();
this.setVisible(true);
// this.setAlwaysOnTop(true);
} catch (Exception e) {
e.printStackTrace();
return;
}
}
// 添加监听
public void createActionEvent() {
this.btnIn.addActionListener(this);
}
private List<TCComponent> compList = new ArrayList<TCComponent>();
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object source = e.getSource();
System.out.println("source==>+" + source);
if (this.btnIn.equals(source)) {
//导入的逻辑
String pathJTextFieldStr = pathJTextField.getText();
if(pathJTextFieldStr == null || pathJTextFieldStr.isEmpty()) {
MessageBox.post("请选择需要导入的Excel。", "提示", 2);
return;
}
MyProgressBarCompent comp = null;
FileInputStream input = null;
try {
SqlUtil.SRMGetTCDataConnection(prefs);
if(!pathJTextFieldStr.contains(".xlsx")) {
MessageBox.post("请选择.xlsx格式的Excel。", "提示", 2);
return;
}
File file = new File(pathJTextFieldStr);
input = new FileInputStream(file);
workbook = new XSSFWorkbook(input);
comp = new MyProgressBarCompent("", "正在进行导入...");
//获取sheet页
Sheet sheet0 = workbook.getSheet("工时规则表");
//excel每一列的字段和数据库对比 判断该列是否导入
LinkedHashMap<String, Integer> titleMap = new LinkedHashMap<String, Integer>();
Row row1 = sheet0.getRow(0);
for (int i = 0; i < 100; i++) {
Cell cell = row1.getCell(i);
if(cell == null || getCellValue(cell).isEmpty()) {
System.out.println("i==="+i);
break;
}else {
titleMap.put(getCellValue(cell), cell.getColumnIndex());
}
}
System.out.println("titleMap==="+titleMap.toString());
String selectTitleSql = "SELECT column_name FROM all_tab_columns WHERE owner = 'INFODBA' AND table_name = 'CHINT_WORKHOUR'";
System.out.println("selectTitleSql ========="+selectTitleSql);
ResultSet rs = SqlUtil.read(selectTitleSql.toString());
ArrayList<String> titleArray = new ArrayList<String>();
while (rs.next()) {
titleArray.add(rs.getString(1));
}
System.out.println("titleArray==="+titleArray.toString());
Iterator<Map.Entry<String, Integer>> iterator = titleMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> map = iterator.next();
if(!titleArray.contains(map.getKey())) {
iterator.remove();
System.out.println("被移除的key======================"+map.getKey());
}
}
//备份 将CHINT_WORKHOUR表中的数据全量拷贝至表CHINT_WORKHOUR_BACKUP中
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String newTime = simpleDateFormat.format(new Date());
String user = session.getUser().getStringProperty("object_string");
String saveSql = "INSERT INTO CHINT_WORKHOUR_BACKUP(\"COMPANYCODE\", \"PRODUCTTYPE\", \"PRODUCTXH\", \"JSASK\", \"GYNAME\", \"GYID\", \"GXNAME\", \"GXCODE\", \"ARTIFICIALTIME\", \"MACHINETIME\", \"READINESSTIME\", \"GXMARK\", \"BZTH\", \"ProCycle\", \"VOLTAGELEVEL\", \"USER\", \"CREATETIME\") " +
"SELECT \"COMPANYCODE\", \"PRODUCTTYPE\", \"PRODUCTXH\", \"JSASK\", \"GYNAME\", \"GYID\", \"GXNAME\", \"GXCODE\", \"ARTIFICIALTIME\", \"MACHINETIME\", \"READINESSTIME\", \"GXMARK\", \"BZTH\", \"ProCycle\", \"VOLTAGELEVEL\", '"+user+"', to_date('"+newTime+"','yyyy-mm-ddhh24:mi:ss')"+
"FROM CHINT_WORKHOUR";
System.out.println("saveSql ========="+saveSql);
SqlUtil.update(saveSql);
String groupID = SAPUtil.getGroupID(session);
//将当前用户登录组织的数据从CHINT_WORKHOUR表中删除
String deleteSql = "DELETE FROM CHINT_WORKHOUR WHERE COMPANYCODE ='"+groupID+"'";
SqlUtil.update(deleteSql);
//导入数据
//把导入的字段拼接
StringBuilder fieldStr = new StringBuilder();
//可以使用insert all into table(a) values(a) into table(a) values(a);
fieldStr.append("INSERT INTO CHINT_WORKHOUR(");
for (Map.Entry<String, Integer> map : titleMap.entrySet()) {
fieldStr.append("\"").append(map.getKey()).append("\",");
}
fieldStr.setLength(fieldStr.length() - 1);
fieldStr.append(") VALUES(");
// Integer[] values = (Integer[]) titleMap.values().toArray();
Integer[] values = titleMap.values().toArray(new Integer[0]);
for (int i = 2; i < sheet0.getLastRowNum()+1; i++) {
Row row = sheet0.getRow(i);
Cell cell = row.getCell(0);
if(getCellValue(cell).isEmpty()) {
break;
}else {
String insertSqlStr = getSql(fieldStr.toString(),row,values);
SqlUtil.update(insertSqlStr);
System.out.println("insertSqlStr==="+insertSqlStr);
}
}
// System.out.println("insertSql===="+insertSql.toString());
// SqlUtil.update(insertSql.toString());
} catch (Exception e2) {
e2.printStackTrace();
if (comp != null) {
comp.setVisible(false);
}
MessageBox.post("导入失败,请联系管理员!", "提示", 2);
}
if (comp != null) {
comp.setVisible(false);
}
MessageBox.post("导入成功!", "提示", 2);
}
}
private String getSql(String fieldStr, Row row, Integer[] values) {
// TODO Auto-generated method stub
StringBuilder tempInsertSql = new StringBuilder();
tempInsertSql.append(fieldStr);
for (int i = 0; i < values.length; i++) {
tempInsertSql.append("'").append(getCellValue(row.getCell(values[i]))).append("',");
}
tempInsertSql.setLength(tempInsertSql.length() - 1);
tempInsertSql.append(")");
System.out.println("tempInsertSql===="+tempInsertSql.toString());
insertSql.append(tempInsertSql).append(";");
return tempInsertSql.toString();
}
private JButton btnIn;
private JPanel getBtnPanel() {
JPanel topPanel = new JPanel();
topPanel.setLayout(new PropertyLayout());
btnIn = new JButton("导入");
topPanel.add("1.1.center", new JLabel(""));
topPanel.add("2.1.center", new JLabel(""));
topPanel.add("2.2.center", new JLabel(""));
topPanel.add("2.3.center", btnIn);
return topPanel;
}
// 查询部分
private JPanel getTopPanel() {
// TODO Auto-generated method stub
JPanel topPanel = new JPanel();
topPanel.setLayout(new PropertyLayout());
topPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
topPanel.add("1.1.left.center", new JLabel(""));
topPanel.add("2.1.left.center", new JLabel("文件存放位置:"));
topPanel.add("2.2.left.center", pathJTextField);
topPanel.add("2.3.left.center", outputButton);
// 注册输出按钮的点击事件监听器
outputButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 创建文件选择器
JFileChooser fileChooser = new JFileChooser();
// 设置文件选择器只能选择文件夹
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int result = fileChooser.showOpenDialog(topPanel);
if (result == JFileChooser.APPROVE_OPTION) {
// 获取用户选择的路径
String selectedPath = fileChooser.getSelectedFile().getPath();
// 输出用户选择的路径
System.out.println("用户选择的路径:" + selectedPath);
pathJTextField.setText(selectedPath);
}
}
});
return topPanel;
}
public String getCellValue(Cell cell) {
if(cell == null) {
return "";
}else {
int cellType = cell.getCellType();
System.out.println("cellType="+cellType+"===cell.getRowIndex()="+cell.getRowIndex()+"===cell.getColumnIndex()="+cell.getColumnIndex());
if(cellType == 1) {//string
return cell.getStringCellValue();
}else if(cellType == 3 || cellType == 0) {//num
double numericCellValue = cell.getNumericCellValue();
System.out.println("numericCellValue====================="+numericCellValue);
if(numericCellValue == 0.0) {
return ""; }
if (numericCellValue == Math.floor(numericCellValue) && !Double.isInfinite(numericCellValue)) {
long integerPart = (long) numericCellValue;
return integerPart+"";
}else {
return numericCellValue+"";
}
}else if(cellType == 2) {
// 检查单元格是否是公式类型
// 创建FormulaEvaluator
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
// 评估公式
CellValue valueEval = evaluator.evaluate(cell);
//System.out.println("valueEval.getCellType()============================================"+valueEval.getCellType());
if(valueEval.getCellType() == 1) {
return valueEval.getStringValue();
}else if(valueEval.getCellType() == 0) {//num
double numericCellValue = valueEval.getNumberValue();
// 创建DecimalFormat对象指定格式模式
DecimalFormat df = new DecimalFormat("#.00");
// 格式化数字
String formattedNumber = df.format(numericCellValue);
if(numericCellValue == 0.0) {
return ""; }
return formattedNumber;
}
}
}
return "";
}
}

@ -0,0 +1,69 @@
package com.connor.plm.txdp;
import java.util.HashMap;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.connor.chint.sap2.util.SAPUtil;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
public class BZGSHandler extends AbstractHandler{
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
TCSession session = (TCSession) app.getSession();
try {
//获取首选项判断用户是否可以使用该功能
String[] prefs = session.getPreferenceService().getStringValues("CHINT_WORKHOUR_ACL");
String userId = session.getUser().getUserId();
String groupID = SAPUtil.getGroupID(session);
HashMap<String, String> groupNamesMap = new HashMap<String, String>();
for (int i = 0; i < prefs.length; i++) {
String[] split = prefs[i].split(":");
groupNamesMap.put(split[0], split[1]);
}
System.out.println("groupNamesMap==="+groupNamesMap.toString());
String names = groupNamesMap.get(groupID);
System.out.println("names==="+names);
if(names == null || names.isEmpty()) {
MessageBox.post("您无权使用此功能,请联系管理员处理。", "提示", MessageBox.INFORMATION);
return null;
}else {
if(!names.contains(userId)) {
MessageBox.post("您无权使用此功能,请联系管理员处理。", "提示", MessageBox.INFORMATION);
return null;
}
}
new Thread() {
@Override
public void run() {
try {
new BZGSFram(session);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return null;
}
}

@ -0,0 +1,44 @@
package com.connor.plm.txdp;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.connor.chint.yunpi.command.BomDcSapOp;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCSession;
public class GXTZHandler extends AbstractHandler{
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
TCSession session = (TCSession) app.getSession();
try {
new Thread() {
@Override
public void run() {
try {
new GXTZOp(app).executeOperation();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return null;
}
}

@ -0,0 +1,178 @@
package com.connor.plm.txdp;
import java.sql.ResultSet;
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 java.util.Map.Entry;
import javax.swing.JButton;
import javax.swing.JTextField;
import org.apache.poi.ss.usermodel.Workbook;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import com.connor.chint.sap2.util.BomToSapUtil;
import com.connor.chint.sap2.util.BomUtilWh;
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.AbstractAIFOperation;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
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.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCComponentMEProcessRevision;
import com.teamcenter.rac.kernel.TCComponentUser;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSData;
public class GXTZOp extends AbstractAIFOperation {
private AbstractAIFApplication app;
private TCSession session;
private String groupName;
private String userName;
private String[] prefs;
public GXTZOp(AbstractAIFApplication app) {
// Auto-generated constructor stub
this.app = app;
this.session = (TCSession) app.getSession();
prefs = session.getPreferenceService().getStringValues("CHINT_SRM_SQL_CONNECT");
}
@Override
public void executeOperation() throws Exception {
// Auto-generated method stub
MyProgressBarCompent comp = null;
SqlUtil.SRMGetTCDataConnection(prefs);
try {
KUtil.setByPass(true);
groupName = SAPUtil.getGroupID(session);
userName = getUserName(session);
System.out.println(groupName + "------------------" + userName);
InterfaceAIFComponent target = app.getTargetComponent();
TCComponentItemRevision degignRev = null;
if (target != null && target.getType().equals("ZT2_Design3DRevision")) {
degignRev = (TCComponentItemRevision) target;
} else {
MessageBox.post("请选择图纸版本", "", MessageBox.INFORMATION);
return;
}
// sql查询获取对应组的图纸id
HashMap<String, String> sqlMap = new HashMap<String, String>();
String selectSql = "SELECT \"drawingno\",\"source\" FROM CHINT_DESIGN__SOURCE_RULE WHERE \"factory\" = '"
+ groupName + "'";
System.out.println("selectSql =========" + selectSql);
ResultSet rs = SqlUtil.read(selectSql);
while (rs.next()) {
sqlMap.put(rs.getString(1), rs.getString(2));
}
if (sqlMap.size() == 0) {
MessageBox.post("该组织未在数据库中获取到图纸", "", MessageBox.INFORMATION);
return;
}
System.out.println("sqlMap====" + sqlMap.toString());
comp = new MyProgressBarCompent("", "正在进行更新图纸自制外购....");
String lineSeparator = System.lineSeparator();// 换行符
StringBuffer errMessage = new StringBuffer("");
StringBuffer succMessage = new StringBuffer("");
succMessage.append("成功修改数据如下:").append(lineSeparator);
errMessage.append("无法修改数据如下:").append(lineSeparator);
String current_user_name = getUserName(session);
TCComponentBOMWindowType bomWinType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
TCComponentBOMWindow win = bomWinType.create(null);
TCComponentBOMLine setWindowTopLine = win.setWindowTopLine(degignRev.getItem(), degignRev, null, null);
// soa获取bom子
List<TCComponentItemRevision> childLines = BomToSapUtil.getBomLineTreeNodeSOA2(setWindowTopLine);
System.out.println("childLines.size====" + childLines.size());
// 遍历逻辑
for (int i = 0; i < childLines.size(); i++) {
TCComponentItemRevision tcComponentItemRevision = childLines.get(i);
String[] properties = tcComponentItemRevision
.getProperties(new String[] { "item_id", "item_revision_id" });
String zt2_Source = tcComponentItemRevision.getStringProperty("zt2_Source");
for (Entry<String, String> map : sqlMap.entrySet()) {
String key = map.getKey();
if (properties[0].contains(key)) {
String value = map.getValue();
System.out.println("item_id========" + properties[0]);
if (!zt2_Source.equals(value)) {
// 判断是否发布
if (KUtil.isTCM(tcComponentItemRevision)) {
errMessage.append(properties[0] + "-" + properties[1] + "因发布无法更改,请手工处理");
errMessage.append(lineSeparator);
} else {
// 判断登录人是否owning_user
TCComponent owning_user = tcComponentItemRevision.getReferenceProperty("owning_user");
String user_name = owning_user.getProperty("user_name");
if (current_user_name.equals(user_name)) {
// 修改版本的值
tcComponentItemRevision.setProperty("zt2_Source", value);
succMessage.append(
properties[0] + "-" + properties[1] + "已从" + (zt2_Source.equals("S1")?"自制":"外购") + "改成" + (value.equals("S1")?"自制":"外购"));
succMessage.append(lineSeparator);
} else {
errMessage.append(properties[0] + "-" + properties[1] + "所有者为" + user_name
+ ",无法更改,请联系" + user_name);
errMessage.append(lineSeparator);
}
}
}
}
}
}
win.close();
MessageBox.post(succMessage.toString() + lineSeparator + errMessage.toString(), "项目BOM传递SAP", 2);
} catch (Exception e) {
e.printStackTrace();
if (comp != null) {
comp.setVisible(false);
}
} finally {
KUtil.setByPass(false);
if (comp != null) {
comp.setVisible(false);
}
}
}
public String getUserName(TCSession session) throws TCException {
TCComponentUser user = session.getUser();
session.getUserName();
return user.getTCProperty("user_name").getDisplayValue();
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,58 @@
package com.connor.plm.txdp;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.connor.chint.sap2.util.ChintPreferenceUtil;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
public class TXDPHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
TCSession session = (TCSession) app.getSession();
try {
String type = ChintPreferenceUtil.getPreference("CHINT_IRON_TYPE", session);
if(type == null || type.isEmpty()) {
MessageBox.post("首选项CHINT_IRON_TYPE配置不正确", "提示", MessageBox.WARNING);
return null;
}
TCComponent target = (TCComponent) app.getTargetComponent();
if(target instanceof TCComponentItem && !target.isTypeOf(type)) {
MessageBox.post("请选择文件夹或铁心剪切单进行导入", "提示", MessageBox.WARNING);
return null;
}else if(target instanceof TCComponentItemRevision
&& !((TCComponentItemRevision)target).getItem().isTypeOf(type)) {
MessageBox.post("请选择文件夹或铁心剪切单进行导入", "提示", MessageBox.WARNING);
return null;
}else if(!(target instanceof TCComponentFolder)) {
MessageBox.post("请选择文件夹或铁心剪切单进行导入", "提示", MessageBox.WARNING);
return null;
}
new Thread() {
@Override
public void run() {
try {
new TXDPFram(session, target, type);
} catch (Exception e) {
// Auto-generated catch block
e.printStackTrace();
}
}
}.start();
} catch (Exception e) {
// : handle exception
e.printStackTrace();
}
return null;
}
}
Loading…
Cancel
Save