From 97cd964085b0a78b94cd26859e88639117d70252 Mon Sep 17 00:00:00 2001 From: liyf Date: Tue, 24 Mar 2020 14:42:49 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4BOM?= =?UTF-8?q?=E8=A7=86=E5=9B=BEBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dialogs/TransformDesignToPartDialog.java | 147 ++++++++++-------- 1 file changed, 85 insertions(+), 62 deletions(-) diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java index 4c825c2..580eea3 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java @@ -1,7 +1,11 @@ -package com.connor.jd.plm.dialogs; +package com.connor.plm.test.handlers; import java.awt.BorderLayout; +import java.awt.Checkbox; import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.HeadlessException; +import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.AdjustmentEvent; @@ -12,32 +16,44 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; +import java.awt.event.WindowEvent; +import java.awt.event.WindowListener; import java.util.ArrayList; -import java.util.Arrays; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import javax.swing.BorderFactory; +import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; +import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; +import javax.swing.JPopupMenu; import javax.swing.JScrollBar; import javax.swing.JScrollPane; +import javax.swing.JTextField; import javax.swing.JTree; import javax.swing.ScrollPaneConstants; +import javax.swing.event.MenuKeyEvent; +import javax.swing.event.MenuKeyListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeModel; +import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; -import com.connor.jd.plm.beans.TransformBomBean; + import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFDialog; +import com.teamcenter.rac.aif.AbstractAIFUIApplication; import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentBOMLine; @@ -52,7 +68,14 @@ import com.teamcenter.rac.kernel.TCTypeService; import com.teamcenter.rac.util.ButtonLayout; import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.PropertyLayout; - +import com.teamcenter.soaictstubs.transientTicketInfo_s; + +/** + * 设计bom转化为物料bom + * + * @author conner.mcc + * + */ public class TransformDesignToPartDialog extends AbstractAIFDialog implements ActionListener { private AbstractAIFApplication app; private TCSession session; @@ -69,20 +92,18 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac private int index = 1; private String[] types; TCComponentBOMWindow win; - - public TransformDesignToPartDialog(AbstractAIFApplication app, TCComponentBOMLine topBomline, String[] types) { + public TransformDesignToPartDialog(AbstractAIFApplication app, TCComponentBOMLine topBomline,String[] types) { // TODO Auto-generated constructor stub System.out.println("step:-3------------------"); comboxList = new ArrayList<>(); this.app = app; this.session = (TCSession) app.getSession(); this.topBomline = topBomline; - this.types = types; + this.types=types; createWindow(); - + initUI(); } - private void createWindow() { try { TCTypeService service = session.getTypeService(); @@ -152,7 +173,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } } - }); + }); rightpane.getVerticalScrollBar().setUnitIncrement(10); rightpane.addMouseWheelListener(new MouseWheelListener() { @@ -191,7 +212,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } /** - * @param line 所有BOM添加到树结构 + * @param line + * 所有BOM添加到树结构 * @param node * @throws TCException */ @@ -247,28 +269,28 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac if (e.getSource().equals(okButton)) { try { System.out.println("进行转换"); - if (win == null) + if(win==null) createWindow(); createMaterialBom(topTree); MessageBox.post("转换bom成功", "提示", MessageBox.INFORMATION); this.dispose(); } catch (TCException e1) { - + // TODO Auto-generated catch block - MessageBox.post(e1.getMessage(), "转换bom失败", MessageBox.INFORMATION); + MessageBox.post(e1.getMessage(),"转换bom失败" , MessageBox.INFORMATION); e1.printStackTrace(); - } finally { + }finally { try { - + win.close(); - win = null; + win=null; } catch (TCException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } else if (e.getSource().equals(celButton)) { - + dispose(); } @@ -279,15 +301,17 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac * * @param wl *//* - * private void checkSelected(String wl) { for (TransformBomBean bean : bomlist) - * { if (bean.map.containsKey(wl)) { bean.selectCount++; if (bean.selectCount > - * 1) { MessageBox.post("只能为当前图纸选择一个物料进行设计BOM的转换!", "警告", MessageBox.WARNING); - * return; } System.out.println(bean.displayName + "选中显示名"); - * System.out.println(checkBoxTreeNodelMap.containsKey(bean.displayName) ); - * checkBoxTreeNodelMap.get(bean.displayName).setSelected(true); - * findInTree(bean.displayName); TransformBomBean bean1 = (TransformBomBean) - * checkBoxTreeNodelMap.get(bean.displayName).getUserObject(); bean1.selectRev = - * (TCComponentItemRevision) bean.map.get(wl); } } } + * private void checkSelected(String wl) { for (TransformBomBean bean : + * bomlist) { if (bean.map.containsKey(wl)) { bean.selectCount++; if + * (bean.selectCount > 1) { MessageBox.post("只能为当前图纸选择一个物料进行设计BOM的转换!", + * "警告", MessageBox.WARNING); return; } + * System.out.println(bean.displayName + "选中显示名"); + * System.out.println(checkBoxTreeNodelMap.containsKey(bean.displayName) + * ); checkBoxTreeNodelMap.get(bean.displayName).setSelected(true); + * findInTree(bean.displayName); TransformBomBean bean1 = + * (TransformBomBean) + * checkBoxTreeNodelMap.get(bean.displayName).getUserObject(); + * bean1.selectRev = (TCComponentItemRevision) bean.map.get(wl); } } } */ /** @@ -295,8 +319,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac * * @param wl *//* - * private void checkDisSelected(String wl) { for (TransformBomBean bean : - * bomlist) { if (bean.map.containsKey(wl)) { bean.selectCount--; + * private void checkDisSelected(String wl) { for (TransformBomBean bean + * : bomlist) { if (bean.map.containsKey(wl)) { bean.selectCount--; * checkBoxTreeNodelMap.get(bean.displayName).setSelected(false); } } } */ @@ -312,8 +336,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac TCComponentItemRevision materialRev = bean.selectRev; // 存在已经发布的物料的bom /* - * if (WXMethodUtil.isRevBomReleased(materialRev)) { System.out.println("发布"); - * return; } + * if (WXMethodUtil.isRevBomReleased(materialRev)) { + * System.out.println("发布"); return; } */ if (isLoopBom(node)) { @@ -342,9 +366,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } } } - createBom(materialRev, childrenList, null, quantityList); - } private TreePath findInPath(TreePath treePath, String str) { @@ -392,8 +414,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac if (line == null) { return null; } - AIFComponentContext[] aifContext = line.getItemRevision().whereReferencedByTypeRelation(types, - new String[] { "TC_Is_Represented_By" }); + AIFComponentContext[] aifContext = line.getItemRevision().whereReferencedByTypeRelation( + types, new String[] { "TC_Is_Represented_By" }); if (aifContext == null || aifContext.length == 0) { return new String[] { "" }; } else { @@ -440,9 +462,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac childbox.setSelectedIndex(-1); childbox.setEditable(true); - System.out.println("bomRef====>" + Arrays.toString(bomRef)); - - if (childbox.getItemCount() <= 2 && !(childbox.getItemAt(1) == null || "".equals(childbox.getItemAt(1)))) { + if (childbox.getItemCount() <= 2 && childbox.getItemAt(1)!=null&&!childbox.getItemAt(1).equals("")) { childbox.setSelectedIndex(1); childbox.setEditable(false); childNode.setSelected(true); @@ -536,7 +556,6 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac System.out.println("执行判断" + rev.getProperty("object_name")); if (rev != null && isRevBomReleased(rev)) { setUnable(childNode); - System.out.println(rev.getProperty("object_name") + "已发布"); return true; } else { restoreSelect(childNode); @@ -631,7 +650,6 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac /** * 判断循环 - * * @param node * @return */ @@ -649,7 +667,6 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac /** * 向上找父类,判断是否有相同的物料 - * * @param node * @param loopSet * @return @@ -670,8 +687,11 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } } } + + - public void getAllBomItemByBomline(TCComponentBOMLine line, List itemList) throws TCException { + public void getAllBomItemByBomline(TCComponentBOMLine line, List itemList) + throws TCException { if (line == null) { return; } @@ -683,13 +703,17 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } } + + + + /** * 搭建bom * * @param selectIndex * @throws TCException */ - public void createBom(TCComponentItemRevision parentRev, List childRevList, + public void createBom(TCComponentItemRevision parentRev, List childRevList, List queryNoList, List countNoList) throws TCException { if (childRevList == null || childRevList.size() == 0) { return; @@ -714,15 +738,11 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } for (int i = 0; i < childRevList.size(); i++) { TCComponentItemRevision rev = childRevList.get(i); - System.out.println("object_string====>" + rev.getProperty("object_string")); line.lock(); - System.out.println("line object_string=====>" + line.getItemRevision().getProperty("object_string")); - session.getUserService().call("bs_bypass", new Object[] { true }); TCComponentBOMLine childBomLine = line.add(rev.getItem(), rev, null, false, ""); - session.getUserService().call("bs_bypass", new Object[] { false }); line.save(); line.unlock(); - + if (countNoList.get(i) != null && !countNoList.get(i).equals("")) { childBomLine.lock(); childBomLine.setProperties(setProps, new String[] { countNoList.get(i) }); @@ -730,27 +750,30 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac childBomLine.unlock(); } + + } try { win.save(); - } catch (Exception e) { - TCComponent[] comps = parentRev.getTCProperty("structure_revisions").getReferenceValueArray(); - if (comps.length > 0) { + win.unlock(); + }catch(Exception e) { + win.unlock(); + win.close(); + win=null; + System.out.println("windows close"); + TCComponent[] comps=parentRev.getTCProperty("structure_revisions").getReferenceValueArray(); + if(comps.length>0) { parentRev.remove("structure_revisions", comps[0]); - comps[0].lock(); - comps[0].delete(); - ; + comps[0].delete();; } - e.printStackTrace(); throw e; - } finally { - win.unlock(); - win.close(); } } + + /** * 检查对象是否已经发布 * @@ -758,7 +781,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac * @return * @throws TCException */ - public boolean isCompReleased(TCComponent comp) throws TCException { + public boolean isCompReleased(TCComponent comp) throws TCException { TCComponent[] comps = comp.getRelatedComponents("release_status_list"); if (comps != null && comps.length > 0) { return true; @@ -772,7 +795,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac * @param rev * @return */ - public boolean isRevHadBom(TCComponentItemRevision rev) { + public boolean isRevHadBom(TCComponentItemRevision rev) { boolean isHad = false; if (rev != null) { try { @@ -795,7 +818,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac * @param rev * @return */ - public boolean isRevBomReleased(TCComponentItemRevision rev) { + public boolean isRevBomReleased(TCComponentItemRevision rev) { boolean isReleased = false; try { if (isCompReleased(rev)) { @@ -804,7 +827,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac // if(line.getChildren().length!=0){ // isReleased = true; // } - if (isRevHadBom(rev)) { + if ( isRevHadBom(rev)) { TCComponentBOMViewRevision bvr = win.askBvr(); if (bvr != null) { TCComponent[] status = bvr.getReferenceListProperty("release_status_list"); From aefcb6ab3a500f0367b988bb0e8a36e38b7dd825 Mon Sep 17 00:00:00 2001 From: liyf Date: Tue, 24 Mar 2020 14:52:26 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java index 580eea3..f664bd8 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java @@ -1,5 +1,4 @@ -package com.connor.plm.test.handlers; - +package com.connor.jd.plm.dialogs; import java.awt.BorderLayout; import java.awt.Checkbox; import java.awt.Dimension; From 20efe8c6c47ecb8940632afad937b84e6c91e6be Mon Sep 17 00:00:00 2001 From: liyf Date: Tue, 24 Mar 2020 14:55:00 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java index f664bd8..71f11de 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java @@ -25,7 +25,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; - +import com.connor.jd.plm.beans.TransformBomBean; import javax.swing.BorderFactory; import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel;