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",
org.eclipse.osgi.services;bundle-version="3.3.100",
TcSoaCaeRac;bundle-version="11000.2.0",
com.teamcenter.rac.project;bundle-version="11000.2.0",
org.apache.poi.39;bundle-version="3.9.0"
Automatic-Module-Name: com.connor.chint.yunpi
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">
<!--工具条-->
<!-- <command name="创建RDM研发项目" id="com.connor.plm.rdmCreate.RdmCreateHandler"/>-->
<command name="SRM图纸下发查询" id="com.chint.plm.SearchSapResult9.PlclIDHandler"/>
<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="DBOM转EBOM" id="com.connor.chint.yunpi.command.DbomToECommand"/>
<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.BomSapWhCommand"/>
<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="物料编码批量申请-全部图纸" id="com.chint.plm.applyMatnr.ApplyMatnrCommand#all"/>
<!--正泰定制下 中压开关-->
@ -41,8 +46,12 @@
<extension
point="org.eclipse.ui.handlers">
<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.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.ExtractDiffComd" 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.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.QueryZxjcHandler" 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.connor.chint.yunpi.command.DbomToECommand" class="com.connor.chint.yunpi.KHandler"/>
@ -73,6 +83,34 @@
</extension>
<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">
@ -486,6 +524,29 @@
</visibleWhen>
</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">
<visibleWhen>
<and>
@ -637,6 +698,71 @@
</visibleWhen>
</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">
<visibleWhen>
@ -683,7 +809,29 @@
</visibleWhen>
</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>
</extension>

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

@ -207,7 +207,7 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
// 220103001 CHINT_MadMaterialApply
for(ApplyBean bean:beans) {
if(bean.getIdType().equals("1ZD")) {
if(bean.getIdType().equals("1ZD") || bean.getIdType().equals("6ZD")) {
m_code1 = bean.getmCode();
}else {
m_code2 = bean.getmCode();
@ -388,7 +388,7 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
for(TCComponentItemRevision generalRev:general_maps.keySet()) {
String item_id = generalRev.getStringProperty("item_id");
String stringProperty = generalRev.getStringProperty("object_name");
if(item_id.startsWith("1ZD")) {
if(item_id.startsWith("1ZD") || item_id.startsWith("6ZD")) {
if(!nameList.contains(stringProperty)) {
errBuff.append(generalRev.toString()).append("\n");
}
@ -830,7 +830,7 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
}
String bpNo = properties[0];//rev.getProperty("item_id"); // 非必填
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))
bpNo = zt2_DrawingNo;
}
@ -984,7 +984,7 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
}
String bpNo = properties[0].toString();// rev.getProperty("item_id"); // 非必填
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))
bpNo = zt2_DrawingNo;
}
@ -1094,7 +1094,8 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
String item_id = revProperties[0];
if (item_id.length() >= 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;
// 开始根据通用件规格属性来判断是否需要申请物料
String zt2_TYJSpec = line.getProperty("ZT2_TYSpecifications");
@ -1144,6 +1145,11 @@ public class ApplyMatnrOp extends AbstractAIFOperation {
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 zt2_DrawingNo = rev.getProperty("zt2_DrawingNo");
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))
bpNo = zt2_DrawingNo;
}

@ -1118,28 +1118,72 @@ public class ApplyMatnrOp2 extends AbstractAIFOperation {
general_maps.put(rev, specs);
}
}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;
//20240426 增加查询的代码
Map<String, String> field = new HashMap<String, String>();
String value = "* " + spec;
System.out.println("查询值:" + value+"item_id==>"+item_id);
field.put("描述", value);
field.put("关联的图号", item_id);
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 (general_maps.containsKey(rev)) {
if (!general_maps.get(rev).contains(spec)) {
general_maps.get(rev).add(spec);
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 {
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>();
String value = "* " + zt2_TYJSpec;

@ -4,7 +4,6 @@ import java.util.Map;
import com.teamcenter.rac.kernel.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCProperty;
import com.teamcenter.rac.kernel.TCSession;
public class RemarkUtil {
@ -14,11 +13,31 @@ public class RemarkUtil {
int len =0;
try {
String[] split = itemId.split("-");
String topId = "1ZDB300000P-"+split[1];
System.out.println("topId:" + topId);
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 partType = (TCComponentItemType) session.getTypeComponent("ZT2_Design3D");
TCComponentItem find = partType.findItems(topId)[0];
Map<String, String> classificationAttributes = find.getClassificationAttributes();
TCComponentItem[] find = null;
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());
for(String key : classificationAttributes.keySet()) {

@ -1,6 +1,7 @@
package com.chint.plm.createKjBom;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -627,6 +628,8 @@ public class KjController {
//ÅúÁ¿¸´ÖÆ
private void cloneOrUpdate(TCSession session, TCComponentBOMLine parentLine,
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.getService(session);
// idMapAdd.clear();
@ -656,6 +659,10 @@ public class KjController {
// for(int i = 0; i < bomLines.size(); i++) {
// TCComponentBOMLine subLine = bomLines.get(i);
TCComponentItem item = subLine.getItem();
// String name = item.getProperty("object_name");
// if(name.equals("Ïäµ×º¸×°") || name.equals("ÏäÑØº¸×°")) {//TODO
// continue;
// }
CloneStructureSaveAsIn dataMap = null;
if(item.getType().equals("ZT2_Design3D")) {
// subLine.replace
@ -665,10 +672,10 @@ public class KjController {
}
saveList.add(dataMap);
}
for(TCComponentBOMLine subLine : useLines) {
CloneStructureSaveAsIn dataMap = getDataMap(subLine, 1, session);
saveList.add(dataMap);
}
// for(TCComponentBOMLine subLine : useLines) {
// CloneStructureSaveAsIn dataMap = getDataMap(subLine, 1, session);
// saveList.add(dataMap);
// }
com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureDefaultNaming naming =
new com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureDefaultNaming();
CloneStructureSaveAsIn[] array = saveList.toArray(new CloneStructureSaveAsIn[saveList.size()]);
@ -687,8 +694,8 @@ public class KjController {
// cloneStructureExpandOrUpdate.serviceData;
if (cloneStructure.serviceData.sizeOfPartialErrors() > 0) {
for (int i = 0; i < cloneStructure.serviceData.sizeOfPartialErrors(); i++) {
System.out.println("Save class Partial Error -- " + cloneStructure.serviceData
.getPartialError(i).getMessages()[0]);
System.out.println(i + "Save class Partial Error -- " + Arrays.toString(cloneStructure.serviceData
.getPartialError(i).getMessages()));
}
}
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 addMsgString = "INSERT INTO CHINT_CHECK_DETAILS (no,imcheckproject,ipcheckdetials,designresult,proofreadresult,design,proofread,"
+ "\"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 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"
@ -260,7 +262,20 @@ public class MySceneController extends KFXPanelController {
shType = "2";
}
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 {
//update
String text = cb_jccs.getValue();
@ -1259,6 +1274,7 @@ public class MySceneController extends KFXPanelController {
// String testTh = "TestTh00001";
if(checkno!=null) {
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);
while(read2.next()) {
isFirst = false;

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

@ -65,30 +65,50 @@ public class BomSapWhBjOp extends AbstractAIFOperation {
List<TCComponentItem> itemList = 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")) {
String desc = rev2.getStringProperty("object_desc");
String[] split = desc.split(" ");
if (split.length >= 2) {
String[] split2 = split[1].split("-");
if (split2.length == 2) {
id = id + split2[1];
idl = split2[1];
} else if (split2.length == 3) {
id = id + split2[2];
idl = split2[2];
}
}
} else if (rev2.getType().equals("ZT2_Design3DRevision")) {
String desc = rev2.getStringProperty("item_id");
String[] split2 = desc.split("-");
if (split2.length == 2) {
id = id + split2[1];
idl = split2[1];
} 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);
TCComponentItem find = ccomponentitemtype.findItems(id)[0];
TCComponentItemRevision zztRev = find.getLatestItemRevision();
// TCComponentItem find = ccomponentitemtype.findItems(id)[0];
TCComponentItemRevision zztRev = find[0].getLatestItemRevision();
TCComponent[] matnrs = zztRev.getRelatedComponents("representation_for");
for (TCComponent matnr : matnrs) {
String[] properties = matnr.getProperties(new String[] { "zt2_ifpbom" });

@ -64,12 +64,35 @@ public class DbomToECommand extends KCommand {
String itemId = rev.getProperty("item_id");
String[] split = itemId.split("-");
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");
TCComponentItem find = itemType.find(topId);
if(find!=null) {
TCComponentItem[] 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.getProperty("zt2_kjbomstate").equals("ÒÑ´«");
boolean equals = find[0].getProperty("zt2_kjbomstate").equals("ÒÑ´«");
if(!equals) {
MessageBox.post("请联系主设传递框架BOM.", "", MessageBox.ERROR);
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;
/**
* ===============================================================================
* 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 {
private String instanceId;
private String factory;
private String sfId;
private String head;
private String scheduledtime;
private String model;
private String productname;
private String toolnumber;
private String toolname;
private String toolinglevel;
private String reason;
private String jsgyrequirements;
private String link;
private String state;
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 + "]";
}
private TextArea instanceId = new TextArea();
private TextArea factory = new TextArea();
private TextArea sfId = new TextArea();
private TextArea head = new TextArea();
private TextArea scheduledtime = new TextArea();
private TextArea model = new TextArea();
private TextArea productname = new TextArea();
private TextArea toolnumber = new TextArea();
private TextArea toolname = new TextArea();
private TextArea toolinglevel = new TextArea();
private TextArea reason = new TextArea();
private TextArea jsgyrequirements = new TextArea();
private Button link = new Button();
private Button cjgzxq = new Button();
private String linkStr;
private String sfIdStr;
private String instanceIdStr;
private TCSession session;
private TextArea state = new TextArea();
private TextArea xh = new TextArea();
//设置TextArea的值和Button
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, String xh,TCSession session) {
super();
this.instanceId.setText(instanceId);
this.instanceId.setEditable(false);
this.instanceId.setPrefSize(200, 40);
this.factory.setText(factory);
this.factory.setEditable(false);
this.factory.setPrefSize(200, 40);
this.sfId.setText(sfId);
this.sfId.setEditable(false);
this.sfId.setPrefSize(200, 40);
this.head.setText(head);
this.head.setEditable(false);
this.head.setPrefSize(200, 40);
this.scheduledtime.setText(scheduledtime);
this.scheduledtime.setEditable(false);
this.scheduledtime.setPrefSize(200, 40);
this.model.setText(model);
this.model.setEditable(false);
this.model.setPrefSize(200, 40);
this.productname.setText(productname);
this.productname.setEditable(false);
this.productname.setPrefSize(200, 40);
this.toolnumber.setText(toolnumber);
this.toolnumber.setEditable(false);
this.toolnumber.setPrefSize(200, 40);
this.toolname.setText(toolname);
this.toolname.setEditable(false);
this.toolname.setPrefSize(200, 40);
this.toolinglevel.setText(toolinglevel);
this.toolinglevel.setEditable(false);
this.toolinglevel.setPrefSize(200, 40);
this.reason.setText(reason);
this.reason.setEditable(false);
this.reason.setPrefSize(200, 40);
this.jsgyrequirements.setText(jsgyrequirements);
this.jsgyrequirements.setEditable(false);
this.jsgyrequirements.setPrefSize(200, 40);
this.cjgzxq.setText("设计");;
this.cjgzxq.setPrefSize(200, 40);
this.link.setText("打开");
this.link.setPrefSize(200, 40);
this.linkStr = link;
this.sfIdStr = sfId;
this.instanceIdStr = instanceId;
this.session = session;
this.state.setText(state);
this.state.setEditable(false);
this.state.setPrefSize(200, 40);
this.xh.setText(xh);
this.xh.setEditable(false);
this.xh.setPrefSize(200, 40);
//加按钮监听
this.link.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Button was clicked!");
// 在这里可以添加更多的逻辑
try {
browse2(linkStr);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
//加按钮监听 创建对象
this.cjgzxq.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Button was clicked!");
// 在这里可以添加更多的逻辑
String formnumber = instanceIdStr;
String sfid =sfIdStr;
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
InterfaceAIFComponent target = app.getTargetComponent();
if(target instanceof TCComponentFolder) {
TCComponentFolder folder = (TCComponentFolder)target;
try {
TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock");
String newID = typeComponent.getNewID();
TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null);
TCComponentItemRevision itemRev = item.getLatestItemRevision();
if(itemRev != null && formnumber != null && !formnumber.isEmpty()) {
itemRev.setStringProperty("zt2_formnumber", formnumber);
}
if(itemRev != null && sfid != null && !sfid.isEmpty()) {
itemRev.setStringProperty("zt2_sfid", sfid);
}
folder.add("contents", item);
folder.refresh();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}else {
try {
TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock");
String newID = typeComponent.getNewID();
TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null);
TCComponentItemRevision itemRev = item.getLatestItemRevision();
if(itemRev != null && formnumber != null && !formnumber.isEmpty()) {
itemRev.setStringProperty("zt2_formnumber", formnumber);
}
if(itemRev != null && sfid != null && !sfid.isEmpty()) {
itemRev.setStringProperty("zt2_sfid", sfid);
}
session.getUser().getNewStuffFolder().add("contents", item);
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
});
}
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;
import java.awt.Component;
import java.awt.Desktop;
import java.net.URI;
import java.util.List;
import javax.swing.AbstractCellEditor;
import javax.swing.JButton;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;
import com.connor.plm.CostListManagement.pojo.Cusquotation;
import com.connor.plm.CostListManagement.pojo.GzxqBean;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
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.TCComponentItemType;
import com.teamcenter.rac.kernel.TCSession;
public class ButtonCellEditor extends AbstractCellEditor implements TableCellEditor{
private JButton button;
private JTable table;
private List<GzxqBean> quotations;
private Boolean flag = false;
public static GzxqBean quotation;
public static Cusquotation cusquotation;
public static TCSession session;
public ButtonCellEditor(JTable jTable2,List<GzxqBean> quotations,TCSession session, TCComponent f) {
button = new JButton();
this.table = jTable2;
this.quotations = quotations;
this.session = session;
button.addActionListener(e -> {
// 这里可以添加按钮的点击事件响应逻辑
int selectedRow = table.getSelectedRow();
System.out.println("点击了第"+selectedRow+"行");
String text = button.getText();
System.out.println("点击按钮名称:"+text);
if("打开".equals(text)) {
String url = quotations.get(selectedRow).getLink();
try {
browse2(url);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}else if("设计".equals(text)){
String formnumber = quotations.get(selectedRow).getInstanceId();
String sfid = quotations.get(selectedRow).getSfId();
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
InterfaceAIFComponent target = app.getTargetComponent();
if(target instanceof TCComponentFolder) {
TCComponentFolder folder = (TCComponentFolder)target;
try {
TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock");
String newID = typeComponent.getNewID();
TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null);
TCComponentItemRevision itemRev = item.getLatestItemRevision();
if(itemRev != null && formnumber != null && !formnumber.isEmpty()) {
itemRev.setStringProperty("zt2_formnumber", formnumber);
}
if(itemRev != null && sfid != null && !sfid.isEmpty()) {
itemRev.setStringProperty("zt2_sfid", sfid);
}
folder.add("contents", item);
folder.refresh();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}else {
try {
TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock");
String newID = typeComponent.getNewID();
TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null);
TCComponentItemRevision itemRev = item.getLatestItemRevision();
if(itemRev != null && formnumber != null && !formnumber.isEmpty()) {
itemRev.setStringProperty("zt2_formnumber", formnumber);
}
if(itemRev != null && sfid != null && !sfid.isEmpty()) {
itemRev.setStringProperty("zt2_sfid", sfid);
}
session.getUser().getNewStuffFolder().add("contents", item);
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
});
}
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);
}
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,
int row, int column) {
button.setText(value != null ? value.toString() : "");
return button;
}
@Override
public Object getCellEditorValue() {
return button.getText();
}
}
//package com.connor.plm.GZXQ;
//
//import java.awt.Component;
//import java.awt.Desktop;
//import java.net.URI;
//import java.util.List;
//
//import javax.swing.AbstractCellEditor;
//import javax.swing.JButton;
//import javax.swing.JTable;
//import javax.swing.table.TableCellEditor;
//
//import com.connor.plm.CostListManagement.pojo.Cusquotation;
//import com.connor.plm.CostListManagement.pojo.GzxqBean;
//import com.teamcenter.rac.aif.AbstractAIFApplication;
//import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
//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.TCComponentItemType;
//import com.teamcenter.rac.kernel.TCSession;
//
//public class ButtonCellEditor extends AbstractCellEditor implements TableCellEditor{
//
//
// private JButton button;
// private JTable table;
// private List<GzxqBean> quotations;
// private Boolean flag = false;
// public static GzxqBean quotation;
// public static Cusquotation cusquotation;
// public static TCSession session;
//
// public ButtonCellEditor(JTable jTable2,List<GzxqBean> quotations,TCSession session, TCComponent f) {
// button = new JButton();
// this.table = jTable2;
// this.quotations = quotations;
// this.session = session;
// button.addActionListener(e -> {
// // 这里可以添加按钮的点击事件响应逻辑
// int selectedRow = table.getSelectedRow();
// System.out.println("点击了第"+selectedRow+"行");
// String text = button.getText();
// System.out.println("点击按钮名称:"+text);
// if("打开".equals(text)) {
// String url = quotations.get(selectedRow).getLink();
// try {
// browse2(url);
// } catch (Exception e1) {
// // TODO Auto-generated catch block
// e1.printStackTrace();
// }
// }else if("设计".equals(text)){
// String formnumber = quotations.get(selectedRow).getInstanceId();
// String sfid = quotations.get(selectedRow).getSfId();
// AbstractAIFApplication app = AIFUtility.getCurrentApplication();
// InterfaceAIFComponent target = app.getTargetComponent();
// if(target instanceof TCComponentFolder) {
// TCComponentFolder folder = (TCComponentFolder)target;
// try {
// TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock");
// String newID = typeComponent.getNewID();
// TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null);
// TCComponentItemRevision itemRev = item.getLatestItemRevision();
// if(itemRev != null && formnumber != null && !formnumber.isEmpty()) {
// itemRev.setStringProperty("zt2_formnumber", formnumber);
// }
// if(itemRev != null && sfid != null && !sfid.isEmpty()) {
// itemRev.setStringProperty("zt2_sfid", sfid);
// }
// folder.add("contents", item);
// folder.refresh();
// } catch (Exception e2) {
// // TODO: handle exception
// e2.printStackTrace();
// }
//
// }else {
// try {
// TCComponentItemType typeComponent = (TCComponentItemType) session.getTypeComponent("ZT2_Frock");
// String newID = typeComponent.getNewID();
// TCComponentItem item = typeComponent.create(newID, "A", "ZT2_Frock", "", "", null);
// TCComponentItemRevision itemRev = item.getLatestItemRevision();
// if(itemRev != null && formnumber != null && !formnumber.isEmpty()) {
// itemRev.setStringProperty("zt2_formnumber", formnumber);
//
// }
// if(itemRev != null && sfid != null && !sfid.isEmpty()) {
// itemRev.setStringProperty("zt2_sfid", sfid);
// }
// session.getUser().getNewStuffFolder().add("contents", item);
// } catch (Exception e2) {
// // TODO: handle exception
// e2.printStackTrace();
// }
//
// }
// }
// });
//
// }
//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);
// }
//}
//
//@Override
//public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,
// int row, int column) {
// button.setText(value != null ? value.toString() : "");
// return button;
//}
//
//@Override
//public Object getCellEditorValue() {
// 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.Toolkit;
import org.apache.log4j.chainsaw.Main;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import com.chint.plm.SearchSapResult.SapResultFrame;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCSession;
@ -26,22 +28,26 @@ public class GZXQHandler extends AbstractHandler{
new Thread() {
@Override
public void run() {
NewJFrame newJFrame = new NewJFrame(session);
int width2 = newJFrame.getWidth();
int height2 = newJFrame.getHeight();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸
int screenWidth = screenSize.width; // 获取屏幕宽度
int screenHeight = screenSize.height; // 获取屏幕高度
int x = (screenWidth - width2) / 2; // 计算Frame的左上角x坐标
int y = (screenHeight - height2) / 2; // 计算Frame的左上角y坐标
newJFrame.setTitle("工装需求查询");
// this.getContentPane().setBackground(Color.red);
newJFrame.getContentPane().setBackground(new java.awt.Color(255, 255, 255));
newJFrame.setSize(950, height2); // 设置Frame的大小
newJFrame.setLocation(x, y); // 设置Frame的位置
newJFrame.setResizable(false);
newJFrame.setDefaultCloseOperation(2); // 设置窗口关闭时的默认操作
newJFrame.setVisible(true);
// NewJFrame newJFrame = new NewJFrame(session);
// int width2 = newJFrame.getWidth();
// int height2 = newJFrame.getHeight();
// Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸
// int screenWidth = screenSize.width; // 获取屏幕宽度
// int screenHeight = screenSize.height; // 获取屏幕高度
// int x = (screenWidth - width2) / 2; // 计算Frame的左上角x坐标
// int y = (screenHeight - height2) / 2; // 计算Frame的左上角y坐标
// newJFrame.setTitle("工装需求查询");
// // this.getContentPane().setBackground(Color.red);
// newJFrame.getContentPane().setBackground(new java.awt.Color(255, 255, 255));
// newJFrame.setSize(1240, height2); // 设置Frame的大小
// newJFrame.setLocation(x, y); // 设置Frame的位置
// newJFrame.setResizable(false);
// newJFrame.setDefaultCloseOperation(2); // 设置窗口关闭时的默认操作
// newJFrame.setVisible(true);
new GZXQFrame();
}
}.start();
} catch (Exception e) {
@ -50,4 +56,8 @@ public class GZXQHandler extends AbstractHandler{
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.SQLException;
import com.connor.chint.sap2.util.SAPUtil;
import com.connor.chint.sap2.util.SqlUtil;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
@ -12,6 +13,7 @@ import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentGroup;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
@ -37,6 +39,7 @@ public class SRMDialog extends AbstractAIFDialog {
public SRMDialog(AbstractAIFApplication app, TCSession session) throws Exception {
this.session = session;
System.out.println("222222222222222222222222222222222222");
this.app = app;
initUI();
}
@ -76,13 +79,18 @@ public class SRMDialog extends AbstractAIFDialog {
// »ñÈ¡uid
String uid = revision.getUid();
System.out.println("uid===" + uid);
// 获取组信息
TCComponentGroup loginGroup = session.getUser().getLoginGroup();
//TCComponentGroup loginGroup = session.getUser().getLoginGroup();
String userName = session.getUserName();
String userId = session.getUser().getUserId();
System.out.println("userName================"+userName);
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);
// insertÊý¾Ý¿â
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.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
public class SRMHandler extends AbstractHandler{
@ -15,6 +16,7 @@ public class SRMHandler extends AbstractHandler{
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
TCSession session = (TCSession) app.getSession();
try {
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