熊朝柱 2 weeks ago
commit 4fd4bae3a3

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/hutool-all-5.8.33.jar"/>
<classpathentry exported="true" kind="lib" path="lib/ojdbc8.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>

8
.idea/.gitignore vendored

@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="@192.168.3.125" uuid="e6327c42-5924-48f4-93fe-37aa6df592e0">
<driver-ref>oracle</driver-ref>
<synchronize>true</synchronize>
<auto-commit>false</auto-commit>
<jdbc-driver>oracle.jdbc.OracleDriver</jdbc-driver>
<jdbc-url>jdbc:oracle:thin:@192.168.3.125:1521:TC12</jdbc-url>
<jdbc-additional-properties>
<property name="com.intellij.clouds.kubernetes.db.host.port" />
<property name="com.intellij.clouds.kubernetes.db.enabled" value="false" />
<property name="com.intellij.clouds.kubernetes.db.container.port" />
</jdbc-additional-properties>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" defaultCharsetForPropertiesFiles="GBK">
<file url="file://$PROJECT_DIR$/src/com/connor/bhdz/pdm/drawingToCapp/SendDrawingToCappAction.java" charset="GBK" />
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GitToolBoxBlameSettings">
<option name="version" value="2" />
</component>
</project>

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ASMSmaliIdeaPluginConfiguration">
<asm skipDebug="true" skipFrames="true" skipCode="false" expandFrames="false" />
<groovy codeStyle="LEGACY" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/classes" />
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/com.connor.bhdz.stoCapp.iml" filepath="$PROJECT_DIR$/.idea/com.connor.bhdz.stoCapp.iml" />
</modules>
</component>
</project>

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.connor.bhdz.stoCapp</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8

@ -0,0 +1,22 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: StoCapp
Bundle-SymbolicName: com.connor.bhdz.stoCapp;singleton:=true
Bundle-Version: 1.0.0
Bundle-Vendor: CONNOR
Require-Bundle: org.eclipse.ui,
com.teamcenter.rac.aifrcp;bundle-version="12000.1.0",
com.teamcenter.rac.common;bundle-version="12000.1.0",
com.teamcenter.rac.kernel;bundle-version="12000.1.0",
com.teamcenter.rac.tcapps;bundle-version="12000.1.0",
com.teamcenter.rac.util;bundle-version="12000.1.0",
org.eclipse.core.runtime;bundle-version="3.12.0",
TcSoaWorkflowRac;bundle-version="12000.1.0"
Automatic-Module-Name: com.connor.bhdz.stoCapp
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: .,
lib/ojdbc8.jar,
lib/hutool-all-5.8.33.jar
Export-Package: cn.hutool.core.collection,
com.connor.bhdz.pdm.drawingToCapp,
com.connor.bhdz.pdm.partToCapp

@ -0,0 +1,8 @@
source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
META-INF/,\
.,\
icons/,\
lib/ojdbc8.jar,\
lib/hutool-all-5.8.33.jar

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

Binary file not shown.

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension point="org.eclipse.ui.commands">
<command name="图纸手动下发至CAPP" id="sendDrawingToCapp"></command>
<command name="物料手动下发至CAPP" id="sendPartToCapp"></command>
</extension>
<extension point="org.eclipse.ui.handlers">
<handler class="com.connor.bhdz.pdm.drawingToCapp.SendDrawingToCappHandler" commandId="sendDrawingToCapp"></handler>
<handler class="com.connor.bhdz.pdm.partToCapp.SendPartToCappHandler" commandId="sendPartToCapp"></handler>
</extension>
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=additions">
<menu id="com.connor.bhdz.derive.menus.sendToCappMenu" label="CAPP集成" mnemonic="M">
<command commandId="sendDrawingToCapp" id="sendDrawingToCapp" mnemonic="S"/>
<command commandId="sendPartToCapp" id="sendPartToCapp" mnemonic="S"/>
</menu>
</menuContribution>
</extension>
</plugin>

@ -0,0 +1,14 @@
package com.connor.bhdz.pdm.assets;
public final class Constants {
/**
* springip
*/
public static final String SPRING_ADDRESS = "10.41.72.70:8080";
/**
* ip192.168.3.125
*/
// public static final String SPRING_ADDRESS = "192.168.3.125:8080";
}

@ -0,0 +1,111 @@
package com.connor.bhdz.pdm.drawingToCapp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCPreferenceService;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.soaictstubs.booleanSeq_tHolder;
public class ConnOra {
static String driverClass = "oracle.jdbc.driver.OracleDriver"; // 更新驱动类名
private String url ;//= "jdbc:oracle:thin:@10.41.71.60:1521:orcl"; // port sid
private String user ;//= "system"; // 用户是数据库的用户名
private String password ;//= "Aa12345678"; // 用户登录密码
Connection conn=null;
ResultSet resultSet = null;
Statement statement;
public ConnOra(TCSession session) throws TCException {
// TODO Auto-generated constructor stub
TCPreferenceService preferenceService = session.getPreferenceService();
String[] values = preferenceService.getStringValues("BH_CAPP_Oracle");
if (values.length != 4) {
System.out.println("未正确获取到首选项信息!");
}else {
// this.url = "jdbc:oracle:thin:@"+values[0]+":"+values[1];//10.41.71.60 orcl
this.url = "jdbc:oracle:thin:@"+values[0]+":1521/"+values[1];
this.user = values[2];
this.password = values[3];
System.out.println("获取连接Oracle数据库信息成功\n url = "+this.url+"\n user = "+this.user+"\n pw = "+this.password);
}
}
public Connection getconn() throws SQLException {
System.out.println("...连接Oracle工具开始执行");
try {
//首先建立驱动
Class.forName(driverClass);//反射
//驱动成功后进行连接
conn=DriverManager.getConnection(url, user, password);
System.out.println("连接成功");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
return conn; //返回一个连接
}
/**
*
* @param sql
* @return
* @throws SQLException
*/
public ResultSet query(String sql) throws SQLException {
System.out.println("开始执行query方法");
conn = getconn();
try {
System.out.println("开始组织并执行具体的sql语句···");
statement = conn.createStatement();
resultSet = statement.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return resultSet;
}
public void closeConn() {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* or or
* @param sql
* @return
* @throws SQLException
*/
public boolean delOrUp(String sql) throws SQLException {
conn = getconn();
boolean actResult = false;
try {
Statement statement = conn.createStatement();
int i = statement.executeUpdate(sql);
if (i>0) {
actResult = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return actResult;
}
}

@ -0,0 +1,658 @@
package com.connor.bhdz.pdm.drawingToCapp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Vector;
//import com.connor.dfl.plm.dfl027.ChangeOwnerbean;
//import com.connor.dfl.plm.dfl038.ChangeBean;
//import com.connor.dfl.plm.forms.ChangeOrderBean;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
public class DataBaseControl {
/** ************************数据库类调用:声明部分*********************************** */
/**
* kelsen ....
*/
Connection conn;
ResultSet rs;
PreparedStatement pstmt;
Statement stmt;
String strSQLQuery;
public String str_Information = "";
private String strDriver = "oracle.jdbc.driver.OracleDriver";
private String strUrl = "";
private String strUserName = "";
private String strPassword = "";
/**
*
*/
public DataBaseControl(String strDriver, String strUrl, String strUserName,
String strPassword) {
// this.strDriver ="oracle.jdbc.driver.OracleDriver";//驱动
// this.strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:tc";//连接路径
// this.strUserName = "infodba";//数据库用户
// this.strPassword = "infodba";//数据库密码
this.strDriver = strDriver; // "oracle.jdbc.driver.OracleDriver";//驱动
this.strUrl = strUrl; // "jdbc:oracle:thin:@127.0.0.1:1521:tceng";//连接路径
this.strUserName = strUserName; // "infodba";//数据库用户
this.strPassword = strPassword; // "infodba";//数据库密码
// 加载驱动
try {
Class.forName(strDriver);// 通过反射加载驱动到内存
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
// try {
// Class.forName("org.objectweb.rmijdbc.Driver").newInstance();
// } catch (InstantiationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (IllegalAccessException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (ClassNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
/**
*
*/
public DataBaseControl(TCSession session) {
String[] stringArray = session.getPreferenceService().getStringArray(4,
"DFL2_SQL_Connect");
if (stringArray != null && stringArray.length == 3) {
strUrl = "jdbc:oracle:thin:@" + stringArray[0];
strUserName = stringArray[1];
strPassword = stringArray[2];
} else {
MessageBox.post("未配置DFL2_SQL_Connect首选项无法获得连接信息!", "错误",
MessageBox.ERROR);
}
// 加载驱动
try {
Class.forName(strDriver);// 通过反射加载驱动到内存
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
}
/**
*
*/
public DataBaseControl(TCSession session,String connect) {
String[] stringArray = session.getPreferenceService().getStringArray(4,
connect);
if (stringArray != null && stringArray.length == 3) {
strUrl = "jdbc:oracle:thin:@" + stringArray[0];
strUserName = stringArray[1];
strPassword = stringArray[2];
} else {
MessageBox.post("未配置"+connect+"首选项,无法获得连接信息!", "错误",
MessageBox.ERROR);
}
// 加载驱动
try {
Class.forName(strDriver);// 通过反射加载驱动到内存
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
}
/**
*
*
* @param strSQLQuery
*/
public void dbModify(String strSQLQuery) {
openDataBase();
try {
stmt = conn.createStatement();
stmt.executeUpdate(strSQLQuery);
} catch (SQLException sqle2) {
sqle2.printStackTrace();
}
closeDataBase();
}
/**
*
*
* @param strSQLQuery
* @return
*/
public ResultSet dbQuery(String strSQLQuery) {
ResultSet rs_result = null;
if (conn == null)
openDataBase();
try {
stmt = conn.createStatement();
rs_result = stmt.executeQuery(strSQLQuery);
} catch (SQLException sqle2) {
sqle2.printStackTrace();
}
return rs_result;
}
/**
* 2
*
* @param strSQLQuery
* @return
*/
public ResultSet dbQuery2(String strSQLQuery, Object[] strs) {
ResultSet rs_result = null;
if (conn == null)
openDataBase();
try {
// stmt = conn.createStatement();
PreparedStatement ps = conn.prepareStatement(strSQLQuery);
for (int i = 0; i < strs.length; i++) {
ps.setObject(i + 1, strs[i]);
}
rs_result = ps.executeQuery();
} catch (SQLException sqle2) {
sqle2.printStackTrace();
}
return rs_result;
}
/**
* 3
*
* @param strSQLQuery
* @return
*/
public ResultSet dbQuery3(String strSQLQuery) {
ResultSet rs_result = null;
if (conn == null)
openDataBase();
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs_result = stmt.executeQuery(strSQLQuery);
} catch (SQLException sqle2) {
sqle2.printStackTrace();
}
return rs_result;
}
/**
* 2
*
* @param strSQLQuery
*/
public void dbModify2(String strSQLQuery, Object[] strs) {
openDataBase();
try {
// stmt = conn.createStatement();
PreparedStatement ps = conn.prepareStatement(strSQLQuery);
for (int i = 0; i < strs.length; i++) {
ps.setObject(i + 1, strs[i]);
}
ps.executeUpdate();
} catch (SQLException sqle2) {
sqle2.printStackTrace();
}
closeDataBase();
}
/**
*
*
*/
public void openDataBase() {
try {
// this.strUrl="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.29)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=tcprod)))";
if (conn == null || conn.isClosed())
conn = DriverManager.getConnection(strUrl, strUserName,
strPassword);
} catch (SQLException sqle) {
sqle.printStackTrace();
MessageBox.post("数据库连接错误" + sqle.getMessage(), "错误", 1);
}
}
/**
*
*
*/
public void closeDataBase() {
try {
if (rs != null) {
try {
rs.close();
} catch (SQLException sqlec) {
sqlec.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException sqlec) {
sqlec.printStackTrace();
}
}
if (conn != null && !conn.isClosed()) {
try {
conn.close();
} catch (SQLException sqlecon) {
sqlecon.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* HashMap,key
* VectorHasnMap
*
* @param strSQLQuery
* @return
* @author xuk
*/
public Vector orgQuery(String strSQLQuery) {
openDataBase();
Vector v_result = new Vector();
try {
ResultSet rs_get = dbQuery(strSQLQuery);
// System.out.println("RS_GET:"+rs_get);
if (rs_get != null) {
ResultSetMetaData metaData = rs_get.getMetaData();
int i_ColumnCount = metaData.getColumnCount();
// System.out.println("i_ColumnCount:"+i_ColumnCount);
while (rs_get.next()) {
// System.out.println("【BJZJ2】"+rs_get.getString("BJZJ2"));;
HashMap<String, String> hm_unit = new HashMap<String, String>();
for (int i = 1; i <= i_ColumnCount; i++) {
hm_unit.put(metaData.getColumnName(i),
rs_get.getString(i));
// System.out.println("metaData.getColumnName(i):"+metaData.getColumnName(i));
// System.out.println("rs_get.getString(i):"+rs_get.getString(i));
}
v_result.add(hm_unit);
}
} else {
str_Information = "【" + strSQLQuery + "】" + "查询的结果集为空\n";
}
} catch (Exception e) {
e.printStackTrace();
}
return v_result;
}
public String getTaskIdea(String uid)
throws Exception {
openDataBase();
String query = "select IDEA from PLM_Perform_Task where PUID= ?";
// 查询该id在数据库中的内容
ResultSet rs = dbQuery2(query, new Object[] { uid});
String taskIdea = "";
if (rs.next()) {
taskIdea = rs.getString(1);
System.out.println("taskIdea=" + taskIdea);
}
closeDataBase();
return taskIdea;
}
public void setTaskIdea(String uid,String idea)
throws Exception {
openDataBase();
String query = "select IDEA from PLM_Perform_Task where PUID= ?";
// 查询该id在数据库中的内容
ResultSet rs = dbQuery2(query, new Object[] { uid});
if(rs.next()) {
String upin = "update PLM_Perform_Task set IDEA= ? where PUID= ?";
dbModify2(upin, new Object[] { idea, uid });
}else {
String upin = "insert into PLM_Perform_Task(PUID,IDEA) values ( ? , ? )";
dbModify2(upin, new Object[] { uid, idea });
}
closeDataBase();
}
/**
*
*
* @param type
*
* @param prefix
*
* @param col
* 4"0000"
* @return
* @throws Exception
*/
public String getNewCode(String type, String prefix, String col)
throws Exception {
openDataBase();
String query = "select PREFIX,LSH from PLM_LSH where PLMTYPE= ? and PREFIX= ?";
// 查询该id在数据库中的内容
ResultSet rs = dbQuery2(query, new Object[] { type, prefix });
String lshstr = col;
String pre = "";
String lsh = "";
if (rs.next()) {
pre = rs.getString(1);
lsh = rs.getString(2);
System.out.println("sspre=" + pre);
System.out.println("sslsh=" + lsh);
if ("".equals(lsh)) {
throw new Exception("流水码为空!");
}
int ls = Integer.parseInt(lsh) + 1;// 新的流水码数
lshstr = ls + "";
if (col != null) {
DecimalFormat df = new DecimalFormat(col);
lshstr = df.format(ls);
}
String upin = "update PLM_LSH set LSH= ? where PLMTYPE= ? and PREFIX= ? ";
dbModify2(upin, new Object[] { lshstr, type, prefix });
} else {
String upin = "insert into PLM_LSH(PLMTYPE,PREFIX,LSH) values ( ? , ? , ? )";
dbModify2(upin, new Object[] { type, prefix, lshstr });
}
closeDataBase();
String newId = prefix + lshstr;
return newId;
}
/*
* //获取变更单信息 public List<ChangeBean> getChangeMesg(String product,String
* time1,String time2) throws SQLException { List<ChangeBean> list = new
* ArrayList<ChangeBean>(); if("全部".equals(product)) { product = ""; } String
* sql =
* "select APPLYNAME,OBJECTCODE,APPLYDATE,PRODUCTNAME,PROJECTMODEL,CLIENTNAME,WAREHOUSECODE,NOTIFYEMERGENCYPROCEDURES,TZGGLX,PRODUCTDEPARTMENT,DUTYDEPARTMENT,DUTYMAN,CHANGETYPE,PRODUCTTYPE,ERRORTYPE,PRICEBOOKING,SALSECLASSIFY,ISNOTPRODUCTLOSS,XMJD,RECEIVECLASSIFY,DRAWINGTO,PROJECTCODE,CHANGEREASON,ACCOUNTSET,case when REASONDETAIL is null then changereason else REASONDETAIL end as REASONDETAIL from DFL_CHANGEFORM where PRODUCTDEPARTMENT like '%"
* +product+"%'";// SimpleDateFormat df = new
* SimpleDateFormat("yyyy-M-d HH:mm"); openDataBase();
* System.out.println("sql============"+sql); ResultSet rs = dbQuery(sql);
* while(rs.next()){ try { String dateStr = rs.getString(3);
* System.out.println("date========"+rs.getString(3)); if(dateStr == null) {
* continue; } Date date = df.parse(rs.getString(3)); Date date1 =
* df.parse(time1); Date date2 = df.parse(time2); if(date.after(date2) &&
* date.before(date1)) { System.out.println("date2========"+rs.getString(3)); }
* if(date.after(date1) && date.before(date2)) { ChangeBean bn = new
* ChangeBean(); bn.setApplyName(rs.getString(1));
* bn.setApplyDate(rs.getString(3)); bn.setProjectCode(rs.getString(22));
* bn.setClientNae(rs.getString(6)); bn.setProductName(rs.getString(4));
* bn.setProjectModel(rs.getString(5)); bn.setChangeType(rs.getString(13));
* bn.setProductType(rs.getString(14)); bn.setErrorType(rs.getString(15));
* bn.setDutyDepartment(rs.getString(11)); bn.setDutyMan(rs.getString(12));
* bn.setChangeReason(rs.getString(23)); bn.setSalseClassify(rs.getString(17));
* bn.setPriceBooking(rs.getString(16));
* bn.setIsNotProductLoss(rs.getString(18));
* bn.setReceiveClassify(rs.getString(20));
* bn.setWarehouseCode(rs.getString(7)); bn.setAccountSet(rs.getString(24));
* bn.setNotifyEmergencyProcedures(rs.getString(8));
* bn.setDrawingTo(rs.getString(21)); bn.setChangeListCode(rs.getString(2));
* bn.setTZChangeType(rs.getString(9));
* bn.setSUOSU_ProductDepartment(rs.getString(10));
* bn.setProjectState(rs.getString(19)); bn.setReasonDetail(rs.getString(25));
* list.add(bn); } } catch (ParseException e) { // TODO Auto-generated catch
* block e.printStackTrace(); }
*
* } closeDataBase(); return list; }
*/
/**
*
*
* @param type
*
* @param prefix
*
* @param col
* 4"0000"
* @return
* @throws Exception
*/
/*
* public String getNewCode(String type,CodeBean selCodeBean) throws Exception {
* String prefix = selCodeBean.getCode(); String col = selCodeBean.getNum();
* String min = selCodeBean.getMin(); String max = selCodeBean.getMax();
* openDataBase(); String query =
* "select PREFIX,LSH from PLM_LSH where PLMTYPE= ? and PREFIX= ?"; //
* id ResultSet rs = dbQuery2(query, new Object[] { type, prefix });
* String lshstr = col; String pre = ""; String lsh = ""; if (rs.next()) { pre =
* rs.getString(1); lsh = rs.getString(2); System.out.println("sspre=" + pre);
* System.out.println("sslsh=" + lsh); if ("".equals(lsh)) { throw new
* Exception("流水码为空!"); } int ls = Integer.parseInt(lsh) + 1;// 新的流水码数 int minls
* = Integer.parseInt(min); int maxls = Integer.parseInt(max); if (minls>ls) {
* ls=minls; } if (ls>maxls) { System.out.println("错误:流水码最已超过最大值"); return
* "MAXERR"; } lshstr = ls + ""; if (col != null) { DecimalFormat df = new
* DecimalFormat(col); lshstr = df.format(ls); } String upin =
* "update PLM_LSH set LSH= ? where PLMTYPE= ? and PREFIX= ? ";
* dbModify2(upin, new Object[] { lshstr, type, prefix }); } else { if (col !=
* null) { int minls = Integer.parseInt(min); DecimalFormat df = new
* DecimalFormat(col); lshstr = df.format(minls); } String upin =
* "insert into PLM_LSH(PLMTYPE,PREFIX,LSH) values ( ? , ? , ? )";
* dbModify2(upin, new Object[] { type, prefix, lshstr }); }
*
* closeDataBase(); String newId = prefix + lshstr;
*
* return newId;
*
* }
*/
/**
*
*
*/
/*
* public String getMaxCode(String type,CodeBean selCodeBean)throws Exception {
* String prefix = selCodeBean.getCode(); String col = selCodeBean.getNum();
* String min = selCodeBean.getMin(); String max = selCodeBean.getMax();
*
* openDataBase(); //String query =
* "select * from (select * from pitem where pitem_id like '"
* +prefix+"%' order by pitem_id desc) where rownum<=1"; String query =
* "select LSH from PLM_LSH where PREFIX = prefix"; // 查询该id在数据库中的内容 ResultSet
* rs = dbQuery(query); String lshstr = col; String lsh = ""; if (rs.next()) {
* lsh = rs.getString(0); System.out.println("sslsh=" + lsh); if
* ("".equals(lsh)) { throw new Exception("流水码为空!"); } lsh = lsh.substring(6);
* int ls = Integer.parseInt(lsh) + 1;// 新的流水码数 lshstr = ls + "";
* System.out.println("lshstr=" + lshstr); if (col != null) { DecimalFormat df =
* new DecimalFormat(col); lshstr = df.format(ls); } } String upin =
* "update PLM_LSH set LSH= ? where PLMTYPE= ? and PREFIX= ? ";
* dbModify2(upin, new Object[] { lshstr, type, prefix }); closeDataBase();
* String newId = prefix + lshstr; return newId; }
*/
/**
*
* @param v3
* @param v16
* @param time
* @param user
* @throws Exception
*/
public void setSqlConn(String v3, String v16, String time, String user)
throws Exception {
openDataBase();
// WF_MJID varchar2(200),--编码
// WF_YXJ varchar2(200),--已下机数
// WF_DATE varchar2(200),--上传日期
// WF_USER varchar2(200),--上传人员
String query = "select WF_MJID from WF_MJ_XJ_T where WF_MJID = ? ";
// 查询该id在数据库中的内容
ResultSet rs = dbQuery2(query, new Object[] {v3});
String wfmjid = "";
if (rs.next()) {
System.out.println("更新");
wfmjid = rs.getString(1);
System.out.println("wfmjid=" + wfmjid);
String upup = "UPDATE WF_MJ_XJ_T set WF_YXJ = ? ,WF_DATE= ?, WF_USER = ? WHERE WF_MJID = ? ";
dbModify2(upup, new Object[] {v16, time, user ,v3});
} else {
System.out.println("插入");
System.out.println("wfmjid=" + v3);
String upin = "insert into WF_MJ_XJ_T(WF_MJID,WF_YXJ,WF_DATE,WF_USER) values ( ?,? , ? , ? )";
dbModify2(upin, new Object[] {v3, v16, time, user});
}
closeDataBase();
return ;
}
/**
*
*
* @param value
*
* @param sql
*
* @return
* @throws Exception
*/
/*
* public List<ChangeOwnerbean> getRecord(String sql) throws Exception {
* List<ChangeOwnerbean> list=new ArrayList<>(); openDataBase(); //
* id ResultSet rs = dbQuery(sql); while (rs.next()) {
* ChangeOwnerbean bean = new ChangeOwnerbean();
* bean.setZhangt(rs.getString(1)); bean.setId(rs.getString(2));
* bean.setCustomerName(rs.getString(3)); bean.setSpec(rs.getString(4));
* bean.setUnit(rs.getString(5)); bean.setCangk(rs.getString(6));
* bean.setCangkName(rs.getString(7)); bean.setNum(rs.getString(8));
* bean.setLocation(rs.getString(9)); list.add(bean); } closeDataBase(); return
* list; }
*/
// public List<ChangeOwnerbean> getRecord2(String value,String zhangT,String cangK,String sql)
// throws Exception {
// List<ChangeOwnerbean> list=new ArrayList<>();
// openDataBase();
// // 查询该id在数据库中的内容
// ResultSet rs = dbQuery2(sql, new Object[] {value,zhangT,cangK});
// while (rs.next()) {
// ChangeOwnerbean bean = new ChangeOwnerbean();
// bean.setId(rs.getString(1));
// bean.setCustomerName(rs.getString(2));
// bean.setSpec(rs.getString(3));
// bean.setZhangt(rs.getString(4));
// bean.setCangk(rs.getString(5));
// bean.setNum(rs.getString(6));
// bean.setUnit(rs.getString(7));
// list.add(bean);
// }
// closeDataBase();
// return list;
// }
public String getNum(Object[] values)
throws Exception {
openDataBase();
// 查询该id在数据库中的内容
String sql = "select NUM from DFL_OLD_ITEM where ITEM_ID= ? and ZHANGTAO= ? and WAREHOUSE= ?";
String num = "";
ResultSet rs = dbQuery2(sql, values);
if (rs.next()) {
num = rs.getString(1);
}
closeDataBase();
return num;
}
public double getNums(String sql)
throws Exception {
openDataBase();
// 查询该id在数据库中的内容
double nums = 0;
ResultSet rs = dbQuery(sql);
if (rs.next()) {
nums = rs.getInt(1);
}
closeDataBase();
return nums;
}
/**
*
*
* @param args
*/
public static void main(String args[]) {
try {
String str_DataBaseDriver = "oracle.jdbc.driver.OracleDriver";
String str_URL = "jdbc:oracle:thin:@localhost:1521:tc12";
String str_UserName = "infodba";
String str_Password = "infodba";
DataBaseControl dbc = new DataBaseControl(str_DataBaseDriver,
str_URL, str_UserName, str_Password);
// dbc.openDataBase();
System.out.println("连接成功");
// dbc.stmt = dbc.conn.createStatement();
// String sql = "select * from PLM_LSH";
// Vector rs_result = dbc.orgQuery(sql);
// for (int i = 0; i < rs_result.size(); i++) {
// HashMap<String, String> map = (HashMap<String, String>)
// rs_result.get(i);
//
// for (Map.Entry<String, String> entry: map.entrySet()) {
// System.out.println(entry.getKey()+"---"+entry.getValue());
// }
// }
String newid = dbc.getNewCode("PLMITEMID", "pz", "0000");
System.out.println(newid);
// dbc.closeDataBase();
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,171 @@
/**
* @file ProgressBar.java
*
* @brief Create progress bar
*
* @author Yanghui
*
* @history
* ================================================================
* Date Name Description of Change
* 25-July-2008 Yanghui this class is used to create
* progress bar.
*/
package com.connor.bhdz.pdm.drawingToCapp;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.Timer;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.util.PropertyLayout;
import com.teamcenter.rac.util.Registry;
/**
* @class ProgressBar
* @brief Create progress bar
* @author Yanghui
*/
public class ProgressBar extends AbstractAIFDialog implements ActionListener {
/**
* @var ProgressBar.progressbar
* @brief JProgressBar
*/
private JProgressBar progressbar;
/**
* @var ProgressBar.label
* @brief label used to tips
*/
private JLabel label;
/**
* @var ProgressBar.timer
* @brief timer used to timing operation
*/
private Timer timer;
/**
* @var ProgressBar.bool
* @brief bool used to flag thread return
*/
private boolean bool = false;
/**
* @var Progressbar.registry
* @brief Registry
*/
private Registry registry;
/**
* @fn public ProgressBar()
* @brief constructor
* @param[in] null
*/
private String showLable = null ;
public ProgressBar(String showlable) {
super(true);
showLable = showlable;
this.setAlwaysOnTop(true);
}
/**
* @fn public void setBool(boolean bool)
* @brief set bool value
* @param[in] bool
* @param[out] null
*/
public void setBool(boolean bool) {
this.bool = bool;
}
/**
* @fn private void initUI()
* @brief createDialog method
* @param[in] null
* @param[out] null
*/
public void initUI() {
Container container = getContentPane();
JPanel mainPanel = new JPanel(new PropertyLayout());
this.label = new JLabel(showLable, JLabel.CENTER);
this.progressbar = new JProgressBar();
this.progressbar.setOrientation(JProgressBar.HORIZONTAL);
this.progressbar.setMinimum(0);
this.progressbar.setMaximum(100);
this.progressbar.setValue(0);
this.progressbar.setPreferredSize(new Dimension(200, 15));
this.progressbar.setBorderPainted(true);
this.timer = new Timer(50, (ActionListener) this);
this.timer.setRepeats(false);
mainPanel.add("1.1.center", new JLabel(" "));
mainPanel.add("2.1.center", label);
mainPanel.add("3.1.center", progressbar);
mainPanel.add("4.1.center", new JLabel(" "));
container.add(mainPanel);
pack();
setLocation(500, 200);
TaskThread thread = new TaskThread(this);
thread.start();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
bool = true;
}
});
this.setVisible(true);
}
/**
* @class TaskThread
* @brief Create progressbar
*
*/
class TaskThread extends Thread {
private ProgressBar bar;
public TaskThread(ProgressBar bar) {
this.bar = bar;
}
public void run() {
if (bool == false) {
// Set Status is running.
// session.setStatus(registry.getString("export Running"));
}
for (int i = 0; i < i + 1; i++) {
timer.start();
int value = progressbar.getValue();
if (value < 100) {
value = value + 5;
progressbar.setValue(value);
} else {
timer.stop();
progressbar.setValue(0);
}
try {
sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (bool == true) {
bar.setVisible(false);
bar.dispose();
return;
}
}
}
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
}

@ -0,0 +1,41 @@
/**
* @file ProgressBarThread.java
*
* @brief control progressBar.
*
* @author Yanghui
*
* @history
* ================================================================
* Date Name Description of Change
* 08-Auguest-2008 Yanghui this class is used to control
* progress bar.
*/
package com.connor.bhdz.pdm.drawingToCapp;
/**
* @class ProgressBarThread
* @brief Create progress bar thread
* @author Yanghui
*/
public class ProgressBarThread extends Thread {
private ProgressBar bar;
private String title;
public ProgressBarThread(String title,String showLable) {
this.title = title;
bar = new ProgressBar(showLable);
}
public void run() {
bar.setTitle(title);
bar.initUI();
}
public void setBool(boolean bool) {
bar.setBool(true);
bar.setAlwaysOnTop(false);
}
}

@ -0,0 +1,126 @@
package com.connor.bhdz.pdm.drawingToCapp;
import java.awt.BorderLayout;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import com.teamcenter.rac.aif.AbstractAIFDialog;
@SuppressWarnings("serial")
public class ProgressReporterDialog extends AbstractAIFDialog
{
private JLabel messageLabel;
private JProgressBar progressBar;
private boolean requestCanceling;
private int percent;
public ProgressReporterDialog()
{
super(false);
setLayout(new BorderLayout());
setAlwaysOnTop(true);
initializeComponents();
setTextPropertyForComponents();
registerComponentsListeners();
addComponents();
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
private void initializeComponents()
{
messageLabel = new JLabel(" ", JLabel.LEFT);
progressBar = new JProgressBar();
}
private void setTextPropertyForComponents()
{
setTitle("½ø¶È");
}
private void registerComponentsListeners()
{
}
private void addComponents()
{
add(messageLabel, BorderLayout.NORTH);
add(progressBar, BorderLayout.SOUTH);
}
private void centerToClientScreen()
{
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
int x = screen.width - getWidth();
int y = screen.height - getHeight();
setLocation(x / 2, y / 2);
}
public void reportProgressMessage(String message)
{
messageLabel.setText(message);
}
public void setProgressPercent(int percent)
{
this.percent = percent;
}
public void requestCanceling()
{
requestCanceling = true;
}
public void run()
{
pack();
setSize(400, getHeight());
centerToClientScreen();
setVisible(true);
while (!requestCanceling)
{
if(percent > progressBar.getMaximum())
{
percent = 0;
}
progressBar.setValue(percent);
percent += 5;
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
continue;
}
}
dispose();
}
public int getProgess()
{
return progressBar.getValue();
}
public boolean isRequestCanceling()
{
return requestCanceling;
}
}

@ -0,0 +1,325 @@
package com.connor.bhdz.pdm.drawingToCapp;
import java.awt.Frame;
import java.io.File;
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.StandardCopyOption;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.connor.bhdz.pdm.assets.Constants;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.common.actions.AbstractAIFAction;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
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.TCComponentForm;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentTcFile;
import com.teamcenter.rac.kernel.TCComponentUser;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCPreferenceService;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpException;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
public class SendDrawingToCappAction extends AbstractAIFAction {
private AbstractAIFApplication application;
private TCSession session;
public SendDrawingToCappAction(AbstractAIFApplication application, Frame frame, String paramString) {
super(application, frame, paramString);
this.application = application;
this.session = (TCSession) application.getSession();
}
public static boolean isReleased(TCComponent comp) throws Exception {
TCComponent[] status = comp.getReferenceListProperty("release_status_list");
if (status == null || status.length == 0) {
return false;
}
return true;
}
public static TCComponentItemRevision getLastReleaseRevison(TCComponentItem targetComp) throws Exception {
System.out.println("Get Last Released Revision: " + targetComp);
if (targetComp == null) {
return null;
}
List<TCComponentItemRevision> releaseRevisionList = new ArrayList<>();
TCComponent[] comps = targetComp.getReferenceListProperty("revision_list");
System.out.println(">> Revisions: " + Arrays.toString(comps));
for (TCComponent comp : comps) {
if (isReleased(comp)) {
releaseRevisionList.add((TCComponentItemRevision) comp);
}
}
System.out.println(">> Released Revisions: " + releaseRevisionList);
return releaseRevisionList.size() == 0 ? null : releaseRevisionList.get(releaseRevisionList.size() - 1);
}
/**
* springboot
* url
* @return
*/
public Map<String, Object> readyParamMap() {
Map<String, Object> paramMap = new HashMap<String, Object>();
TCPreferenceService preferenceService = session.getPreferenceService();
String[] values = preferenceService.getStringValues("BH_CAPP_Oracle");
if (values.length != 4) {
System.out.println("未正确获取到首选项信息!");
}else {
paramMap.put("url", "jdbc:oracle:thin:@"+values[0]+":1521/"+values[1]);
paramMap.put("user", values[2]);
paramMap.put("password", values[3]);
}
return paramMap;
}
@Override
public void run() {//TODO
ProgressBarThread thread = new ProgressBarThread("下发中", "下发中...");
thread.start();
InterfaceAIFComponent[] components = application.getTargetComponents();
try {
for (InterfaceAIFComponent selectComponent : components) {
String itemID = "";//零组件ID
String revID = "";//版本
String sql = "";
String toTaskRevId = "";//msg存放版本信息C语言中调用查询构建器根据toTaskRevId"000022-A")获取具体版本
if (selectComponent instanceof TCComponentItem) {
//如果选中对象是图纸对象H8_drawing获取"最新已发布版本"对象
System.out.println("当前选中对象是 H8_drawing");
TCComponentItem item = (TCComponentItem) selectComponent;
//获取最新已发布版本对象
TCComponentItemRevision latestItemRevision = getLastReleaseRevison(item);
if (latestItemRevision == null) {
System.out.println("当前选中对象不存在已发布版本!无法下发···");
MessageBox.post("当前选中对象不存在已发布版本!无法下发···","提示",MessageBox.INFORMATION);
thread.setBool(true);
return;
}
revID = latestItemRevision.getProperty("item_revision_id");//C语言中调用查询构建器根据获取具体版本
itemID = latestItemRevision.getProperty("item_id");
toTaskRevId = itemID + "-" + revID;
}else if (selectComponent instanceof TCComponentItemRevision) {
//TODO 如果选中对象是图纸版本对象H8_drawingRevision
System.out.println("当前选中对象是 H8_drawingRevision");
TCComponentItemRevision revision = (TCComponentItemRevision)selectComponent;
String releaseDate = revision.getProperty("date_released");
System.out.println("===>获取到当前版本对象的发布状态:"+releaseDate);
if (releaseDate == null) {
System.out.println("当前版本未发布");
MessageBox.post("当前版本未发布!无法下发···","提示",MessageBox.INFORMATION);
thread.setBool(true);
return;
}
revID = revision.getProperty("item_revision_id");
itemID = revision.getProperty("item_id");
toTaskRevId = itemID + "-" + revID;
}else {
MessageBox.post("erro select!","tip",MessageBox.INFORMATION);
thread.setBool(true);
return;
}
//组织除msg外的Task表数据
String tasksource = "手动下发";
String userName = session.getUser().getUserName();
String userId = session.getUser().getUserId();
String status = "未开始";
String starttime = getCurrentTime();
//判断task表中是否已经存在相同数据
Map<String, Object> paramMap = new HashMap<String, Object>();
//匹配springboot中的查询方法
paramMap.put("MSG", toTaskRevId);
Integer result = sendRequest("getByMSG",paramMap);
if (result > 0) {//存在重复数据,更新
System.out.println("TASK表存在重复数据更新···");
Map<String, Object> paramMapU = new HashMap<String, Object>();
paramMapU.put("TASKSOURCE",tasksource);
paramMapU.put("USERNAME",userName);
paramMapU.put("USERID",userId);
paramMapU.put("STATUS",status);
paramMapU.put("STARTTIME",starttime);
paramMapU.put("MSG",toTaskRevId);
Integer resultU = sendRequest("updateTask",paramMapU);
if (resultU == -1){
System.out.println("向springboot发送请求失败updateTask");
}
}else {//不存在重复数据,插入
System.out.println("TASK表不存在重复数据插入···");
Map<String, Object> paramMapI = new HashMap<String, Object>();
paramMapI.put("TASKSOURCE",tasksource);
paramMapI.put("USERNAME",userName);
paramMapI.put("USERID",userId);
paramMapI.put("STATUS",status);
paramMapI.put("MSG",toTaskRevId);
paramMapI.put("STARTTIME",starttime);
Integer resultI = sendRequest("insertTask",paramMapI);
if (resultI == -1){
System.out.println("向springboot发送请求失败insertTask");
}
System.out.println("1");
}
System.out.println("2");
}
System.out.println("deal end!");
} catch (Exception e) {
// TODO: handle exception
System.out.println("===>下发失败");
MessageBox.post("下发失败","提示",MessageBox.INFORMATION);
e.printStackTrace();
}
MessageBox.post("下发成功","提示",MessageBox.INFORMATION);
thread.setBool(true);
}
/**
*
* @return -1
*/
private Integer sendRequest(String way,Map<String, Object> param){
System.out.println("开始调用方法向SpringBoot程序发送请求···");
Integer resultInteger = 0;
String urlString = "http://"+Constants.SPRING_ADDRESS+"/drawing/"+way;
try {//正式环境中spring和curl的ip地址10.41.72.70。我的测试机ip192.168.3.125
String url = StrUtil.format(urlString);//springboot服务所在服务器的ip地址
System.out.println("发送请求:"+urlString);
// 发送POST请求
HttpResponse response = HttpRequest.post(url)
.header("Content-Type", "application/json") // 设置内容类型为JSON
.body(JSONUtil.toJsonStr(param)) // 设置请求体为JSON字符串
.timeout(20*1000) // 设置超时时间
.execute();
System.out.println("调用SpringBoot执行数据库操作后的结果为"+response.body()+"\n 请求携带信息为:"+param.toString());
resultInteger = Integer.parseInt(response.body());
int statusCode = response.getStatus();
if (statusCode < 200 && statusCode > 300) {
System.out.println("响应异常: 获取信息为空!");
return -1;
}
} catch (HttpException e) {
// 检查是否是超时异常
if (e.getMessage().contains("Read timed out") || e.getMessage().contains("Connect timed out")) {
System.out.println("请求超时: " + e.getMessage());
return -2; // 使用不同的返回值标识超时情况
} else {
// 其他类型的HttpException
System.out.println("请求过程中发生HttpException: " + e.getMessage());
return -1;
}
} catch (Exception e) {
// 捕获其他所有异常
System.out.println("请求过程中发生异常: " + e.getMessage());
e.printStackTrace(); // 打印堆栈跟踪信息以便调试
return -1;
}
return resultInteger;
}
/**
* FileString
* @param file
* @param savePath
*/
public static void saveFileToFileFolder(File file, String savePath) {
System.out.println("开始执行saveFileToFileFolder方法");
// 将字符串路径转换为 Path 对象
Path saveFolderPath = Paths.get(savePath);
try {
// 检查并创建目标文件夹
Files.createDirectories(saveFolderPath);
// 清空目标文件夹
clearDirectory(saveFolderPath);
// 构建目标文件路径
Path targetFilePath = saveFolderPath.resolve(file.getName());
// 将文件复制到目标文件夹
Files.copy(file.toPath(), targetFilePath);
System.out.println("文件已成功保存到: " + targetFilePath);
} catch (IOException e) {
e.printStackTrace();
System.err.println("保存文件时发生错误: " + e.getMessage());
}
}
/**
*
* @param directory
* @throws IOException
*/
private static void clearDirectory(Path directory) throws IOException {
if (Files.exists(directory)) {
File[] files = directory.toFile().listFiles();
if (files != null) {
for (File file : files) {
Files.delete(file.toPath());
}
}
}
}
/**
* "yyyy-MM-dd HH-mm-ss"
* @return String
*/
private String getCurrentTime() {
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 定义自定义日期时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH-mm-ss");
// 格式化当前时间
String formattedDate = now.format(formatter);
return formattedDate;
}
}

@ -0,0 +1,72 @@
package com.connor.bhdz.pdm.drawingToCapp;
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.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.util.MessageBox;
public class SendDrawingToCappHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
// 判断选中多个对象中是否有非H8_drawing类型的图纸对象
InterfaceAIFComponent[] components = app.getTargetComponents();
try {
if (components != null && components.length > 0) {
//遍历每一个选中对象
for (InterfaceAIFComponent component : components) {
TCComponentItem item;//存放选中对象的item对象
String componentType = "";//存放选中对象的类型
if (component instanceof TCComponentItemRevision) {
TCComponentItemRevision rev = (TCComponentItemRevision) component;
item = rev.getItem();
componentType = "rev";
}else if (component instanceof TCComponentItem) {
item = (TCComponentItem) component;
componentType = "item";
}else {
MessageBox.post("请选择图纸对象","提示",MessageBox.INFORMATION);
return null;
}
//判断选中对象是否是H8_drawing
String typeString = item.getStringProperty("object_type");
System.out.println("当前选中对象的item类型=="+typeString);
//判断选中的对象中是否全是是H8_drawing如果不是返回null
if (!typeString.equals("H8_drawing") && !typeString.equals("H8_frockItem") && !typeString.equals("H8_standardParts") && !typeString.equals("H8_Component")) {
MessageBox.post("请选择图纸对象","提示",MessageBox.INFORMATION);
return null;
}
}
}
//进度条弹窗
System.out.println("进度条弹窗即将打开");
System.out.println("》》》即将开始下发");
// 全是H8_drawing类型的对象才能转发给action
SendDrawingToCappAction ac = new SendDrawingToCappAction(app, null, null);
Thread thread = new Thread(ac);
thread.start();
System.out.println("》》》下发完成,开始关闭进度条弹窗");
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
}
// TODO Auto-generated method stub
return null;
}
}

@ -0,0 +1,111 @@
package com.connor.bhdz.pdm.partToCapp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCPreferenceService;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.soaictstubs.booleanSeq_tHolder;
public class ConnOra {
static String driverClass = "oracle.jdbc.driver.OracleDriver"; // 更新驱动类名
private String url ;//= "jdbc:oracle:thin:@10.41.71.60:1521:orcl"; // port sid
private String user ;//= "system"; // 用户是数据库的用户名
private String password ;//= "Aa12345678"; // 用户登录密码
Connection conn=null;
ResultSet resultSet = null;
Statement statement;
public ConnOra(TCSession session) throws TCException {
// TODO Auto-generated constructor stub
TCPreferenceService preferenceService = session.getPreferenceService();
String[] values = preferenceService.getStringValues("BH_CAPP_Oracle");
if (values.length != 4) {
System.out.println("未正确获取到首选项信息!");
}else {
this.url = "jdbc:oracle:thin:@"+values[0]+":1521/"+values[1];//10.41.71.60 orcl
this.user = values[2];
this.password = values[3];
System.out.println("获取连接Oracle数据库信息成功\n url = "+this.url+"\n user = "+this.user+"\n pw = "+this.password);
}
}
public Connection getconn() throws SQLException {
System.out.println("...连接Oracle工具开始执行");
try {
//首先建立驱动
Class.forName(driverClass);//反射
//驱动成功后进行连接
conn=DriverManager.getConnection(url, user, password);
System.out.println("连接成功");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
return conn; //返回一个连接
}
/**
*
* @param sql
* @return
* @throws SQLException
*/
public ResultSet query(String sql) throws SQLException {
System.out.println("开始执行query方法");
conn = getconn();
try {
System.out.println("开始组织并执行具体的sql语句···");
statement = conn.createStatement();
resultSet = statement.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return resultSet;
}
public void closeConn() {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* or or
* @param sql
* @return
* @throws SQLException
*/
public boolean delOrUp(String sql) throws SQLException {
conn = getconn();
boolean actResult = false;
try {
Statement statement = conn.createStatement();
int i = statement.executeUpdate(sql);
if (i>0) {
actResult = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return actResult;
}
}

@ -0,0 +1,171 @@
/**
* @file ProgressBar.java
*
* @brief Create progress bar
*
* @author Yanghui
*
* @history
* ================================================================
* Date Name Description of Change
* 25-July-2008 Yanghui this class is used to create
* progress bar.
*/
package com.connor.bhdz.pdm.partToCapp;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.Timer;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.util.PropertyLayout;
import com.teamcenter.rac.util.Registry;
/**
* @class ProgressBar
* @brief Create progress bar
* @author Yanghui
*/
public class ProgressBar extends AbstractAIFDialog implements ActionListener {
/**
* @var ProgressBar.progressbar
* @brief JProgressBar
*/
private JProgressBar progressbar;
/**
* @var ProgressBar.label
* @brief label used to tips
*/
private JLabel label;
/**
* @var ProgressBar.timer
* @brief timer used to timing operation
*/
private Timer timer;
/**
* @var ProgressBar.bool
* @brief bool used to flag thread return
*/
private boolean bool = false;
/**
* @var Progressbar.registry
* @brief Registry
*/
private Registry registry;
/**
* @fn public ProgressBar()
* @brief constructor
* @param[in] null
*/
private String showLable = null ;
public ProgressBar(String showlable) {
super(true);
showLable = showlable;
this.setAlwaysOnTop(true);
}
/**
* @fn public void setBool(boolean bool)
* @brief set bool value
* @param[in] bool
* @param[out] null
*/
public void setBool(boolean bool) {
this.bool = bool;
}
/**
* @fn private void initUI()
* @brief createDialog method
* @param[in] null
* @param[out] null
*/
public void initUI() {
Container container = getContentPane();
JPanel mainPanel = new JPanel(new PropertyLayout());
this.label = new JLabel(showLable, JLabel.CENTER);
this.progressbar = new JProgressBar();
this.progressbar.setOrientation(JProgressBar.HORIZONTAL);
this.progressbar.setMinimum(0);
this.progressbar.setMaximum(100);
this.progressbar.setValue(0);
this.progressbar.setPreferredSize(new Dimension(200, 15));
this.progressbar.setBorderPainted(true);
this.timer = new Timer(50, (ActionListener) this);
this.timer.setRepeats(false);
mainPanel.add("1.1.center", new JLabel(" "));
mainPanel.add("2.1.center", label);
mainPanel.add("3.1.center", progressbar);
mainPanel.add("4.1.center", new JLabel(" "));
container.add(mainPanel);
pack();
setLocation(500, 200);
TaskThread thread = new TaskThread(this);
thread.start();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
bool = true;
}
});
this.setVisible(true);
}
/**
* @class TaskThread
* @brief Create progressbar
*
*/
class TaskThread extends Thread {
private ProgressBar bar;
public TaskThread(ProgressBar bar) {
this.bar = bar;
}
public void run() {
if (bool == false) {
// Set Status is running.
// session.setStatus(registry.getString("export Running"));
}
for (int i = 0; i < i + 1; i++) {
timer.start();
int value = progressbar.getValue();
if (value < 100) {
value = value + 5;
progressbar.setValue(value);
} else {
timer.stop();
progressbar.setValue(0);
}
try {
sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (bool == true) {
bar.setVisible(false);
bar.dispose();
return;
}
}
}
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
}

@ -0,0 +1,41 @@
/**
* @file ProgressBarThread.java
*
* @brief control progressBar.
*
* @author Yanghui
*
* @history
* ================================================================
* Date Name Description of Change
* 08-Auguest-2008 Yanghui this class is used to control
* progress bar.
*/
package com.connor.bhdz.pdm.partToCapp;
/**
* @class ProgressBarThread
* @brief Create progress bar thread
* @author Yanghui
*/
public class ProgressBarThread extends Thread {
private ProgressBar bar;
private String title;
public ProgressBarThread(String title,String showLable) {
this.title = title;
bar = new ProgressBar(showLable);
}
public void run() {
bar.setTitle(title);
bar.initUI();
}
public void setBool(boolean bool) {
bar.setBool(true);
bar.setAlwaysOnTop(false);
}
}

@ -0,0 +1,294 @@
package com.connor.bhdz.pdm.partToCapp;
import java.awt.Frame;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.connor.bhdz.pdm.assets.Constants;
import com.connor.bhdz.pdm.drawingToCapp.ConnOra;
import com.connor.bhdz.pdm.drawingToCapp.ProgressBarThread;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.common.actions.AbstractAIFAction;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
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.TCComponentForm;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
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 cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpException;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
public class SendPartToCappAction extends AbstractAIFAction {
private AbstractAIFApplication application;
private TCSession session;
protected SendPartToCappAction(AbstractAIFApplication application, Frame frame, String param) {
super(application, frame, param);
this.application = application;
this.session = (TCSession) application.getSession();
}
/**
* "yyyy-MM-dd HH-mm-ss"
* @return String
*/
private String getCurrentTime() {
System.out.println("getCurrentTime方法开始执行");
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 定义自定义日期时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH-mm-ss");
// 格式化当前时间
String formattedDate = now.format(formatter);
return formattedDate;
}
/**
* BOMBOMBOM
* @param bomLine bom
* @throws TCException
* @throws SQLException
*/
// private void throwBom(TCComponentBOMLine bomLine) throws TCException, SQLException {
// // TODO Auto-generated method stub
// //获取父项BOM信息
// TCComponentItem item = bomLine.getItem();
// TCComponentItemRevision itemRevision = bomLine.getItemRevision();
// String parent = item.getProperty("item_id");//父项物料图号
// String parentversion = itemRevision.getProperty("item_revision_id");//父项物料版本
// String parentname = item.getProperty("object_name");//父项物料名称
//
// //遍历子项BOM获取子项信息并保存
// if (bomLine.hasChildren()) {
// AIFComponentContext[] childrens = bomLine.getChildren();
// for (AIFComponentContext children : childrens) {
// TCComponentBOMLine bomLineChild = (TCComponentBOMLine) children.getComponent();
// TCComponentItem childItem = bomLineChild.getItem();
// TCComponentItemRevision childItemRevision = bomLineChild.getItemRevision();
// //保存子项的物料信息到数据库表中
//// savePart(childItemRevision);
// //组织子项属性信息,并和父项信息一起保存为一条数据
// String sub = childItem.getProperty("item_id");//子项物料编码
// String subversion = childItemRevision.getProperty("item_revision_id");//子项版本号
// String subname = childItem.getProperty("object_name");//子项名称
// bomLineChild.lock();
// String lineno = bomLineChild.getProperty("bl_sequence_no");//子项行号
// String quantity = bomLineChild.getProperty("bl_quantity");//子项数量
// bomLineChild.unlock();
// String user = session.getUser().getUserName();//下发人员
// //TODO 根据父子项版本和物料ID确定唯一性查询是否已经存在该条BOM数据若已存在则只保存”更新时间”为当前时间若不存在则保存“下发时间”和“更新时间”为当前时间
// if (true/*不存在*/) {
// String issuedtime = getCurrentTime();
// String updatetime = getCurrentTime();
// //TODO 插入数据到BOM数据库表中
//
// }else {
// String updatetime = getCurrentTime();
// //TODO 更新数据到BOM数据库表中
//
// }
// throwBom(bomLineChild);
// }
// }
// }
public static boolean isReleased(TCComponent comp) throws Exception {
TCComponent[] status = comp.getReferenceListProperty("release_status_list");
if (status == null || status.length == 0) {
return false;
}
return true;
}
public static TCComponentItemRevision getLastReleaseRevison(TCComponentItem targetComp) throws Exception {
System.out.println("Get Last Released Revision: " + targetComp);
if (targetComp == null) {
return null;
}
List<TCComponentItemRevision> releaseRevisionList = new ArrayList<>();
TCComponent[] comps = targetComp.getReferenceListProperty("revision_list");
System.out.println(">> Revisions: " + Arrays.toString(comps));
for (TCComponent comp : comps) {
if (isReleased(comp)) {
releaseRevisionList.add((TCComponentItemRevision) comp);
}
}
System.out.println(">> Released Revisions: " + releaseRevisionList);
return releaseRevisionList.size() == 0 ? null : releaseRevisionList.get(releaseRevisionList.size() - 1);
}
@Override
public void run() {
ProgressBarThread thread = new ProgressBarThread("下发中", "下发中...");
thread.start();
InterfaceAIFComponent[] components = application.getTargetComponents();
try {
for (InterfaceAIFComponent selectComponent : components) {
String itemID = "";//零组件ID
String revID = "";//版本
String sql = "";
String toTaskRevId = "";//msg
if (selectComponent instanceof TCComponentItem) {
//如果选中对象是物料对象H8_wuliao
TCComponentItem item = (TCComponentItem) selectComponent;
//获取最新已发布版本对象-latestReleasedRev
TCComponentItemRevision latestItemRevision = getLastReleaseRevison(item);
if (latestItemRevision == null) {
System.out.println("当前选中对象不存在已发布版本!无法下发···");
MessageBox.post("当前选中对象不存在已发布版本!无法下发···","提示",MessageBox.INFORMATION);
thread.setBool(true);
return;
}
revID = latestItemRevision.getProperty("item_revision_id");//C语言中调用查询构建器根据获取具体版本
itemID = latestItemRevision.getProperty("item_id");
toTaskRevId = itemID + "-" + revID;
}else if (selectComponent instanceof TCComponentItemRevision) {
//TODO 如果选中对象是物料版本对象H8_PartRevision
System.out.println("当前选中对象是 H8_drawingRevision");
TCComponentItemRevision revision = (TCComponentItemRevision)selectComponent;
String releaseDate = revision.getProperty("date_released");
System.out.println("===>获取到当前版本对象的发布状态:"+releaseDate);
if (releaseDate == null) {
System.out.println("当前版本未发布");
MessageBox.post("当前版本未发布!无法下发···","提示",MessageBox.INFORMATION);
thread.setBool(true);
return;
}
revID = revision.getProperty("item_revision_id");
itemID = revision.getProperty("item_id");
toTaskRevId = itemID + "-" + revID;
}else {
MessageBox.post("erro select!","tip",MessageBox.INFORMATION);
return;
}
//组织除msg外的Task表数据
String tasksource = "手动下发";
String userName = session.getUser().getUserName();
String userId = session.getUser().getUserId();
String status = "未开始";
String starttime = getCurrentTime();
//判断task表中是否已经存在相同数据
Map<String, Object> paramMap = new HashMap<String, Object>();
//匹配springboot中的查询方法
paramMap.put("MSG", toTaskRevId);
Integer result = sendRequest("getByMSG",paramMap);
if (result > 0) {//存在重复数据,更新
System.out.println("TASK表存在重复数据更新···");
Map<String, Object> paramMapU = new HashMap<String, Object>();
paramMapU.put("TASKSOURCE",tasksource);
paramMapU.put("USERNAME",userName);
paramMapU.put("USERID",userId);
paramMapU.put("STATUS",status);
paramMapU.put("STARTTIME",starttime);
paramMapU.put("MSG",toTaskRevId);
Integer resultU = sendRequest("updateTask",paramMapU);
if (resultU == -1){
System.out.println("向springboot发送请求失败updateTask");
}
}else {//不存在重复数据,插入
System.out.println("TASK表不存在重复数据插入···");
Map<String, Object> paramMapI = new HashMap<String, Object>();
paramMapI.put("TASKSOURCE",tasksource);
paramMapI.put("USERNAME",userName);
paramMapI.put("USERID",userId);
paramMapI.put("STATUS",status);
paramMapI.put("MSG",toTaskRevId);
paramMapI.put("STARTTIME",starttime);
Integer resultI = sendRequest("insertTask",paramMapI);
if (resultI == -1){
System.out.println("向springboot发送请求失败insertTask");
}
System.out.println("1");
}
System.out.println("2");
}
System.out.println("deal end!");
} catch (Exception e) {
// TODO: handle exception
System.out.println("===>下发失败");
MessageBox.post("下发失败","提示",MessageBox.INFORMATION);
e.printStackTrace();
}
MessageBox.post("下发成功","提示",MessageBox.INFORMATION);
thread.setBool(true);
}
/**
*
* @return -1
*/
private Integer sendRequest(String way,Map<String, Object> param){
System.out.println("开始调用方法向SpringBoot程序发送请求···");
Integer resultInteger = 0;
String urlString = "http://"+Constants.SPRING_ADDRESS+"/part/"+way;
try {//测试机ip192.168.3.125
String url = StrUtil.format(urlString);//springboot服务所在服务器的ip地址
System.out.println(urlString);
// 发送POST请求
HttpResponse response = HttpRequest.post(url)
.header("Content-Type", "application/json") // 设置内容类型为JSON
.body(JSONUtil.toJsonStr(param)) // 设置请求体为JSON字符串
.timeout(20*1000) // 设置超时时间
.execute();
System.out.println("调用SpringBoot执行数据库操作后的结果为"+response.body()+"\n 请求携带信息为:"+param.toString());
resultInteger = Integer.parseInt(response.body());
int statusCode = response.getStatus();
if (statusCode < 200 && statusCode > 300) {
System.out.println("响应异常: 获取信息为空!");
return -1;
}
} catch (HttpException e) {
// 检查是否是超时异常
if (e.getMessage().contains("Read timed out") || e.getMessage().contains("Connect timed out")) {
System.out.println("请求超时: " + e.getMessage());
return -2; // 使用不同的返回值标识超时情况
} else {
// 其他类型的HttpException
System.out.println("请求过程中发生HttpException: " + e.getMessage());
return -1;
}
} catch (Exception e) {
// 捕获其他所有异常
System.out.println("请求过程中发生异常: " + e.getMessage());
e.printStackTrace(); // 打印堆栈跟踪信息以便调试
return -1;
}
return resultInteger;
}
}

@ -0,0 +1,65 @@
package com.connor.bhdz.pdm.partToCapp;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.connor.bhdz.pdm.drawingToCapp.ProgressReporterDialog;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.util.MessageBox;
public class SendPartToCappHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
// 判断选中多个对象中是否有非H8_wuliao类型的物料对象
InterfaceAIFComponent[] components = app.getTargetComponents();
try {
if (components != null && components.length > 0) {
//遍历每一个选中对象
for (InterfaceAIFComponent component : components) {
TCComponentItem item;
String componentType = "";
if (component instanceof TCComponentItemRevision) {
TCComponentItemRevision rev = (TCComponentItemRevision) component;
item = rev.getItem();
componentType = "rev";
}else if (component instanceof TCComponentItem) {
item = (TCComponentItem) component;
componentType = "item";
}else {
MessageBox.post("请选择物料对象","提示",MessageBox.INFORMATION);
return null;
}
//判断选中对象是否是H8_drawing
String typeString = item.getStringProperty("object_type");
System.out.println("当前选中对象的item类型=="+typeString);
if (!typeString.equals("H8_wuliao")) {
MessageBox.post("请选择物料对象","提示",MessageBox.INFORMATION); return null; }
}
}
System.out.println("》》》调用进度弹窗");
System.out.println("》》》即将开始下发");
//全是H8_drawing类型的对象才能转发给action
SendPartToCappAction ac = new SendPartToCappAction(app, null, null);
new Thread(ac).start();
System.out.println("》》》下发完成,即将关闭进度弹窗");
} catch (TCException e) {
e.printStackTrace();
}
return null;
}
}
Loading…
Cancel
Save