diff --git a/cn.com.origin.autocode/.classpath b/cn.com.origin.autocode/.classpath
index 6c0ea46..d46c515 100644
--- a/cn.com.origin.autocode/.classpath
+++ b/cn.com.origin.autocode/.classpath
@@ -67,7 +67,7 @@
-
+
@@ -75,6 +75,9 @@
+
+
+
diff --git a/cn.com.origin.autocode/META-INF/MANIFEST.MF b/cn.com.origin.autocode/META-INF/MANIFEST.MF
index 922827c..376f0bd 100644
--- a/cn.com.origin.autocode/META-INF/MANIFEST.MF
+++ b/cn.com.origin.autocode/META-INF/MANIFEST.MF
@@ -58,6 +58,15 @@ Export-Package: .,
cn.com.origin.autocode.views.groupview,
cn.com.origin.autocode.views.itemtypeview,
cn.com.origin.autocode.xmlutil,
+ com.alibaba.fastjson,
+ com.alibaba.fastjson.annotation,
+ com.alibaba.fastjson.asm,
+ com.alibaba.fastjson.parser,
+ com.alibaba.fastjson.parser.deserializer,
+ com.alibaba.fastjson.serializer,
+ com.alibaba.fastjson.support.jaxrs,
+ com.alibaba.fastjson.support.spring,
+ com.alibaba.fastjson.util,
com.ctc.wstx.api,
com.ctc.wstx.cfg,
com.ctc.wstx.compat,
@@ -900,4 +909,16 @@ Bundle-ClassPath: json_lib/commons-beanutils-1.7.0.jar,
axis2_lib/xalan-2.7.0.jar,
axis2_lib/xml-resolver-1.2.jar,
axis2_lib/xmlbeans-2.3.0.jar,
- axis2_lib/XmlSchema-1.4.7.jar
+ axis2_lib/XmlSchema-1.4.7.jar,
+ json_lib/fastjson-1.2.9-javadoc.jar,
+ json_lib/fastjson-1.2.9-sources.jar,
+ json_lib/fastjson-1.2.9.jar
+Import-Package: com.alibaba.fastjson,
+ com.alibaba.fastjson.annotation,
+ com.alibaba.fastjson.asm,
+ com.alibaba.fastjson.parser,
+ com.alibaba.fastjson.parser.deserializer,
+ com.alibaba.fastjson.serializer,
+ com.alibaba.fastjson.support.jaxrs,
+ com.alibaba.fastjson.support.spring,
+ com.alibaba.fastjson.util
diff --git a/cn.com.origin.autocode/build.properties b/cn.com.origin.autocode/build.properties
index 470d41f..5a51b1b 100644
--- a/cn.com.origin.autocode/build.properties
+++ b/cn.com.origin.autocode/build.properties
@@ -77,4 +77,7 @@ bin.includes = META-INF/,\
axis2_lib/xalan-2.7.0.jar,\
axis2_lib/xml-resolver-1.2.jar,\
axis2_lib/xmlbeans-2.3.0.jar,\
- axis2_lib/XmlSchema-1.4.7.jar
+ axis2_lib/XmlSchema-1.4.7.jar,\
+ json_lib/fastjson-1.2.9-javadoc.jar,\
+ json_lib/fastjson-1.2.9-sources.jar,\
+ json_lib/fastjson-1.2.9.jar
diff --git a/cn.com.origin.autocode/classes/.gitignore b/cn.com.origin.autocode/classes/.gitignore
new file mode 100644
index 0000000..28b1e45
--- /dev/null
+++ b/cn.com.origin.autocode/classes/.gitignore
@@ -0,0 +1,2 @@
+/cn/
+/icons/
diff --git a/cn.com.origin.autocode/src/cn/com/origin/autocode/jfom/util/HttpUtil.java b/cn.com.origin.autocode/src/cn/com/origin/autocode/jfom/util/HttpUtil.java
new file mode 100644
index 0000000..34c877d
--- /dev/null
+++ b/cn.com.origin.autocode/src/cn/com/origin/autocode/jfom/util/HttpUtil.java
@@ -0,0 +1,170 @@
+package cn.com.origin.autocode.jfom.util;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.params.HttpMethodParams;
+
+public class HttpUtil {
+
+ public static String doGet(String url) {
+ // 输入流
+ InputStream is = null;
+ BufferedReader br = null;
+ String result = null;
+ // 创建httpClient实例
+ HttpClient httpClient = new HttpClient();
+ // 设置http连接主机服务超时时间:15000毫秒
+ // 先获取连接管理器对象,再获取参数对象,再进行参数的赋值
+ httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
+ // 创建一个Get方法实例对象
+ GetMethod getMethod = new GetMethod(url);
+ // 设置get请求超时为60000毫秒
+ getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
+ // 设置请求重试机制,默认重试次数:3次,参数设置为true,重试机制可用,false相反
+ getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, true));
+ try {
+ // 执行Get方法
+ int statusCode = httpClient.executeMethod(getMethod);
+ // 判断返回码
+ if (statusCode != HttpStatus.SC_OK) {
+ // 如果状态码返回的不是ok,说明失败了,打印错误信息
+ System.err.println("Method faild: " + getMethod.getStatusLine());
+ } else {
+ // 通过getMethod实例,获取远程的一个输入流
+ is = getMethod.getResponseBodyAsStream();
+ // 包装输入流
+ br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+
+ StringBuffer sbf = new StringBuffer();
+ // 读取封装的输入流
+ String temp = null;
+ while ((temp = br.readLine()) != null) {
+ sbf.append(temp).append("\r\n");
+ }
+
+ result = sbf.toString();
+ }
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ // 关闭资源
+ if (null != br) {
+ try {
+ br.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != is) {
+ try {
+ is.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ // 释放连接
+ getMethod.releaseConnection();
+ }
+ return result;
+ }
+
+ public static String doPost(String url, Map paramMap) {
+ // 获取输入流
+ InputStream is = null;
+ BufferedReader br = null;
+ String result = null;
+ // 创建httpClient实例对象
+ HttpClient httpClient = new HttpClient();
+ // 设置httpClient连接主机服务器超时时间:15000毫秒
+ httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
+ // 创建post请求方法实例对象
+ PostMethod postMethod = new PostMethod(url);
+ // 设置post请求超时时间
+ postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
+
+ NameValuePair[] nvp = null;
+ // 判断参数map集合paramMap是否为空
+ if (null != paramMap && paramMap.size() > 0) {// 不为空
+ // 创建键值参数对象数组,大小为参数的个数
+ nvp = new NameValuePair[paramMap.size()];
+ // 循环遍历参数集合map
+ Set> entrySet = paramMap.entrySet();
+ // 获取迭代器
+ Iterator> iterator = entrySet.iterator();
+
+ int index = 0;
+ while (iterator.hasNext()) {
+ Entry mapEntry = iterator.next();
+ // 从mapEntry中获取key和value创建键值对象存放到数组中
+ try {
+ nvp[index] = new NameValuePair(mapEntry.getKey(),
+ new String(mapEntry.getValue().toString().getBytes("UTF-8"), "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ index++;
+ }
+ }
+ // 判断nvp数组是否为空
+ if (null != nvp && nvp.length > 0) {
+ // 将参数存放到requestBody对象中
+ postMethod.setRequestBody(nvp);
+ }
+ // 执行POST方法
+ try {
+ int statusCode = httpClient.executeMethod(postMethod);
+ // 判断是否成功
+ if (statusCode != HttpStatus.SC_OK) {
+ System.err.println("Method faild: " + postMethod.getStatusLine());
+ }
+ // 获取远程返回的数据
+ is = postMethod.getResponseBodyAsStream();
+ // 封装输入流
+ br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+
+ StringBuffer sbf = new StringBuffer();
+ String temp = null;
+ while ((temp = br.readLine()) != null) {
+ sbf.append(temp).append("\r\n");
+ }
+
+ result = sbf.toString();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ // 关闭资源
+ if (null != br) {
+ try {
+ br.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != is) {
+ try {
+ is.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ // 释放连接
+ postMethod.releaseConnection();
+ }
+ return result;
+ }
+}
\ No newline at end of file
diff --git a/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/ClassificationBean.java b/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/ClassificationBean.java
new file mode 100644
index 0000000..253f4f3
--- /dev/null
+++ b/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/ClassificationBean.java
@@ -0,0 +1,27 @@
+package cn.com.origin.autocode.newitem.generatcode;
+
+public class ClassificationBean {
+ int[] ids;
+ String[] values;
+
+ ClassificationBean(int[] ids, String[] values) {
+ this.ids = ids;
+ this.values = values;
+ }
+
+ public int[] getIds() {
+ return ids;
+ }
+
+ public void setIds(int[] ids) {
+ this.ids = ids;
+ }
+
+ public String[] getValues() {
+ return values;
+ }
+
+ public void setValues(String[] values) {
+ this.values = values;
+ }
+}
diff --git a/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java b/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java
index acde571..b3a2142 100644
--- a/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java
+++ b/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java
@@ -11,6 +11,7 @@ import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.io.IOException;
import java.math.BigInteger;
+import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -24,6 +25,7 @@ import java.util.Map;
import javax.swing.JDialog;
import javax.xml.bind.JAXBException;
+import org.apache.james.mime4j.codec.EncoderUtil;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.viewers.TreeViewer;
@@ -101,6 +103,7 @@ import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateInput;
import com.teamcenter.soa.client.model.LovValue;
import cn.com.origin.autocode.jfom.util.ClassProperty;
+import cn.com.origin.autocode.jfom.util.HttpUtil;
import cn.com.origin.autocode.jfom.util.JFomBZJBean;
import cn.com.origin.autocode.jfom.util.JFomBean;
import cn.com.origin.autocode.jfom.util.JFomLovBean;
@@ -132,6 +135,7 @@ import cn.com.origin.autocodemanager.common.tree.AbstractTreeData;
import cn.com.origin.autocodemanager.common.tree.TreeViewOperation;
import cn.com.origin.autocodemanager.views.listcodeview.NewItemListCodeView;
import cn.com.origin.autocodemanager.views.treecodeview.NewItemTreeCodeView;
+import net.sf.json.JSONObject;
public class NewCodeItemDialog extends Dialog {
private Table propTable;
@@ -4059,8 +4063,9 @@ public class NewCodeItemDialog extends Dialog {
if (newComp != null) {
afterCreate();
+ sendToClassification();
// sendObjToClassfication((TCComponentItem) newComp);
- sendObjToClassficationByWebService((TCComponentItem) newComp);
+// sendObjToClassficationByWebService((TCComponentItem) newComp);
newComp.refresh();
new GetCodeNumber().delete_recycleID(counterID);
setClipboard(newID);
@@ -4332,4 +4337,64 @@ public class NewCodeItemDialog extends Dialog {
}
return true;
}
+
+ public boolean sendToClassification() {
+ TCComponentItem item = (TCComponentItem) newComp;
+ try {
+ String uid = item.getLatestItemRevision().getUid();
+ String cid = codeRemark.trim();
+ List idsList = new ArrayList();
+ List valuesList = new ArrayList();
+ for (int i = 0; i < classPropList.size(); i++) {
+ // System.out.println(" CLASS ID = " + integers[i] + " =" +
+ // vals[i]);
+ CNClassPropBean bean = classPropList.get(i);
+ String value = "";
+ if (bean.isLov) {
+ value = ((Combo) classTextList.get(i)).getText();
+ value = bean.lovMapping.get(value);
+ } else {
+ value = ((Text) classTextList.get(i)).getText();
+ }
+ // icspro[i] = new ICSProperty(bean.propID, value);
+ if (!"".equals(value)) {
+ idsList.add(bean.propID);
+ valuesList.add(value);
+ }
+
+ }
+ int[] ids = new int[idsList.size()];
+ String[] values = valuesList.toArray(new String[valuesList.size()]);
+ for (int i = 0; i < idsList.size(); i++) {
+ ids[i] = idsList.get(i);
+ }
+
+ ClassificationBean cfb = new ClassificationBean(ids, values);
+ System.out.println(Arrays.toString(ids));
+ System.out.println(Arrays.toString(values));
+ System.out.println(cfb.getIds()[0]);
+ JSONObject obj = new JSONObject();
+ obj.put("ids", ids);
+ obj.put("values", values);
+ String url = EncoderUtil.encodeAddressDisplayName(obj.toString());
+ url = url.substring(1, url.length() - 1);
+ url = URLEncoder.encode(url);
+ url = "http://localhost:8080/classification?uid=" + uid + "&cid=" + cid + "&prop=" + url;
+ System.out.println(url);
+ final String URL = url;
+
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ HttpUtil.doGet(URL);
+ System.out.println("success");
+ }
+ }).start();
+ } catch (TCException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return true;
+ }
}
diff --git a/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/Test.java b/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/Test.java
index c249281..ea33b89 100644
--- a/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/Test.java
+++ b/cn.com.origin.autocode/src/cn/com/origin/autocode/newitem/generatcode/Test.java
@@ -1,5 +1,14 @@
package cn.com.origin.autocode.newitem.generatcode;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+
+import org.apache.james.mime4j.codec.EncoderUtil;
+
+import com.alibaba.fastjson.JSON;
+
+import net.sf.json.JSONObject;
+
public class Test {
/**
@@ -7,12 +16,46 @@ public class Test {
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
- String s1 = "000";
- System.out.println(Float.parseFloat(s1));
- String str = "true:";
- if (str.length() > 4) {
- System.out.println(str.substring(4 + 1, str.length()));
+ int[] ids = new int[] { 1006 };
+ String[] values = new String[] { "ZF01" };
+ ClassficationBean cfb = new ClassficationBean(ids, values);
+// String str = com.alibaba.fastjson.JSONObject.toJSONString(cfb);
+ JSONObject obj = new JSONObject();
+ obj.put("ids", ids);
+ obj.put("values", values);
+ String url = EncoderUtil.encodeAddressDisplayName(JSON.toJSONString(cfb));
+ url = url.substring(1, url.length() - 1);
+ url = URLEncoder.encode(url);
+ url = "http://localhost:8080/classification?prop=" + url;
+ System.out.println(url);
+ System.out.println(URLDecoder.decode(url));
+ }
+
+ static class ClassficationBean {
+ int[] ids;
+ String[] values;
+
+ ClassficationBean(int[] ids, String[] values) {
+ this.ids = ids;
+ this.values = values;
+ }
+
+ public int[] getIds() {
+ return ids;
+ }
+
+ public void setIds(int[] ids) {
+ this.ids = ids;
+ }
+
+ public String[] getValues() {
+ return values;
+ }
+
+ public void setValues(String[] values) {
+ this.values = values;
}
+
}
}
diff --git a/cn.com.origin.autocodemanager/classes/.gitignore b/cn.com.origin.autocodemanager/classes/.gitignore
new file mode 100644
index 0000000..28b1e45
--- /dev/null
+++ b/cn.com.origin.autocodemanager/classes/.gitignore
@@ -0,0 +1,2 @@
+/cn/
+/icons/
diff --git a/cn.com.origin.autocodemanager/src/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.java b/cn.com.origin.autocodemanager/src/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.java
index 527d9b6..ac7492c 100644
--- a/cn.com.origin.autocodemanager/src/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.java
+++ b/cn.com.origin.autocodemanager/src/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.java
@@ -12,18 +12,20 @@ import org.eclipse.core.expressions.IEvaluationContext;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.ISources;
-import cn.com.origin.autocodemanager.common.AbstractTreeViewPart;
-import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView;
-import cn.com.origin.autocodemanager.common.tree.AbstractTreeData;
-import cn.com.origin.autocodemanager.common.tree.TreeViewOperation;
-import cn.com.origin.autocodemanager.export.ExportNodeOperation;
import com.teamcenter.rac.aif.AbstractAIFUIApplication;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
+import cn.com.origin.autocodemanager.common.AbstractTreeViewPart;
+import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView;
+import cn.com.origin.autocodemanager.common.tree.AbstractTreeData;
+import cn.com.origin.autocodemanager.common.tree.TreeViewOperation;
+import cn.com.origin.autocodemanager.export.ExportNodeOperation;
+
public class ExportNodeHandler extends AbstractHandler {
+ @Override
public Object execute(ExecutionEvent e) throws ExecutionException {
AbstractAIFUIApplication abstractAIFUIApplication = AIFUtility.getCurrentApplication();
TCSession session = (TCSession) abstractAIFUIApplication.getSession();
@@ -38,8 +40,8 @@ public class ExportNodeHandler extends AbstractHandler {
// TreeViewOperation treeViewOperation=new TreeViewOperation();
DirectoryDialog directoryDialog = new DirectoryDialog(Display.getDefault().getActiveShell());
directoryDialog.setText("导出");
- directoryDialog.open();
- String filePath = directoryDialog.getFilterPath();
+
+ String filePath = directoryDialog.open();
System.out.println("所选择的物理文件路径是:" + filePath);
if (filePath != null && !"".equals(filePath)) {
filePath = filePath + "\\" + selectedNode.getPackCodeNodeInfo().getNode_name() + ".xls";