修复删除BOM视图BUG

main
李岩峰 5 years ago
parent 3aefb82dd6
commit 97cd964085

@ -1,7 +1,11 @@
package com.connor.jd.plm.dialogs; package com.connor.plm.test.handlers;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Checkbox;
import java.awt.Dimension; 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.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentEvent;
@ -12,32 +16,44 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener; import java.awt.event.MouseWheelListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel; import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox; import javax.swing.JComboBox;
import javax.swing.JLabel; import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollBar; import javax.swing.JScrollBar;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTree; import javax.swing.JTree;
import javax.swing.ScrollPaneConstants; import javax.swing.ScrollPaneConstants;
import javax.swing.event.MenuKeyEvent;
import javax.swing.event.MenuKeyListener;
import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeModel; import javax.swing.tree.TreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath; import javax.swing.tree.TreePath;
import com.connor.jd.plm.beans.TransformBomBean;
import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog; import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.aif.AbstractAIFUIApplication;
import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentBOMLine; 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.ButtonLayout;
import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout; import com.teamcenter.rac.util.PropertyLayout;
import com.teamcenter.soaictstubs.transientTicketInfo_s;
/**
* bombom
*
* @author conner.mcc
*
*/
public class TransformDesignToPartDialog extends AbstractAIFDialog implements ActionListener { public class TransformDesignToPartDialog extends AbstractAIFDialog implements ActionListener {
private AbstractAIFApplication app; private AbstractAIFApplication app;
private TCSession session; private TCSession session;
@ -69,20 +92,18 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
private int index = 1; private int index = 1;
private String[] types; private String[] types;
TCComponentBOMWindow win; TCComponentBOMWindow win;
public TransformDesignToPartDialog(AbstractAIFApplication app, TCComponentBOMLine topBomline,String[] types) {
public TransformDesignToPartDialog(AbstractAIFApplication app, TCComponentBOMLine topBomline, String[] types) {
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
System.out.println("step:-3------------------"); System.out.println("step:-3------------------");
comboxList = new ArrayList<>(); comboxList = new ArrayList<>();
this.app = app; this.app = app;
this.session = (TCSession) app.getSession(); this.session = (TCSession) app.getSession();
this.topBomline = topBomline; this.topBomline = topBomline;
this.types = types; this.types=types;
createWindow(); createWindow();
initUI(); initUI();
} }
private void createWindow() { private void createWindow() {
try { try {
TCTypeService service = session.getTypeService(); TCTypeService service = session.getTypeService();
@ -152,7 +173,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
} }
} }
}); });
rightpane.getVerticalScrollBar().setUnitIncrement(10); rightpane.getVerticalScrollBar().setUnitIncrement(10);
rightpane.addMouseWheelListener(new MouseWheelListener() { rightpane.addMouseWheelListener(new MouseWheelListener() {
@ -191,7 +212,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
} }
/** /**
* @param line BOM * @param line
* BOM
* @param node * @param node
* @throws TCException * @throws TCException
*/ */
@ -247,28 +269,28 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
if (e.getSource().equals(okButton)) { if (e.getSource().equals(okButton)) {
try { try {
System.out.println("进行转换"); System.out.println("进行转换");
if (win == null) if(win==null)
createWindow(); createWindow();
createMaterialBom(topTree); createMaterialBom(topTree);
MessageBox.post("转换bom成功", "提示", MessageBox.INFORMATION); MessageBox.post("转换bom成功", "提示", MessageBox.INFORMATION);
this.dispose(); this.dispose();
} catch (TCException e1) { } catch (TCException e1) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
MessageBox.post(e1.getMessage(), "转换bom失败", MessageBox.INFORMATION); MessageBox.post(e1.getMessage(),"转换bom失败" , MessageBox.INFORMATION);
e1.printStackTrace(); e1.printStackTrace();
} finally { }finally {
try { try {
win.close(); win.close();
win = null; win=null;
} catch (TCException e1) { } catch (TCException e1) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e1.printStackTrace(); e1.printStackTrace();
} }
} }
} else if (e.getSource().equals(celButton)) { } else if (e.getSource().equals(celButton)) {
dispose(); dispose();
} }
@ -279,15 +301,17 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
* *
* @param wl * @param wl
*//* *//*
* private void checkSelected(String wl) { for (TransformBomBean bean : bomlist) * private void checkSelected(String wl) { for (TransformBomBean bean :
* { if (bean.map.containsKey(wl)) { bean.selectCount++; if (bean.selectCount > * bomlist) { if (bean.map.containsKey(wl)) { bean.selectCount++; if
* 1) { MessageBox.post("只能为当前图纸选择一个物料进行设计BOM的转换", "警告", MessageBox.WARNING); * (bean.selectCount > 1) { MessageBox.post("只能为当前图纸选择一个物料进行设计BOM的转换",
* return; } System.out.println(bean.displayName + "选中显示名"); * "警告", MessageBox.WARNING); return; }
* System.out.println(checkBoxTreeNodelMap.containsKey(bean.displayName) ); * System.out.println(bean.displayName + "选中显示名");
* checkBoxTreeNodelMap.get(bean.displayName).setSelected(true); * System.out.println(checkBoxTreeNodelMap.containsKey(bean.displayName)
* findInTree(bean.displayName); TransformBomBean bean1 = (TransformBomBean) * ); checkBoxTreeNodelMap.get(bean.displayName).setSelected(true);
* checkBoxTreeNodelMap.get(bean.displayName).getUserObject(); bean1.selectRev = * findInTree(bean.displayName); TransformBomBean bean1 =
* (TCComponentItemRevision) bean.map.get(wl); } } } * (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 * @param wl
*//* *//*
* private void checkDisSelected(String wl) { for (TransformBomBean bean : * private void checkDisSelected(String wl) { for (TransformBomBean bean
* bomlist) { if (bean.map.containsKey(wl)) { bean.selectCount--; * : bomlist) { if (bean.map.containsKey(wl)) { bean.selectCount--;
* checkBoxTreeNodelMap.get(bean.displayName).setSelected(false); } } } * checkBoxTreeNodelMap.get(bean.displayName).setSelected(false); } } }
*/ */
@ -312,8 +336,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
TCComponentItemRevision materialRev = bean.selectRev; TCComponentItemRevision materialRev = bean.selectRev;
// 存在已经发布的物料的bom // 存在已经发布的物料的bom
/* /*
* if (WXMethodUtil.isRevBomReleased(materialRev)) { System.out.println("发布"); * if (WXMethodUtil.isRevBomReleased(materialRev)) {
* return; } * System.out.println("发布"); return; }
*/ */
if (isLoopBom(node)) { if (isLoopBom(node)) {
@ -342,9 +366,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
} }
} }
} }
createBom(materialRev, childrenList, null, quantityList); createBom(materialRev, childrenList, null, quantityList);
} }
private TreePath findInPath(TreePath treePath, String str) { private TreePath findInPath(TreePath treePath, String str) {
@ -392,8 +414,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
if (line == null) { if (line == null) {
return null; return null;
} }
AIFComponentContext[] aifContext = line.getItemRevision().whereReferencedByTypeRelation(types, AIFComponentContext[] aifContext = line.getItemRevision().whereReferencedByTypeRelation(
new String[] { "TC_Is_Represented_By" }); types, new String[] { "TC_Is_Represented_By" });
if (aifContext == null || aifContext.length == 0) { if (aifContext == null || aifContext.length == 0) {
return new String[] { "" }; return new String[] { "" };
} else { } else {
@ -440,9 +462,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
childbox.setSelectedIndex(-1); childbox.setSelectedIndex(-1);
childbox.setEditable(true); childbox.setEditable(true);
System.out.println("bomRef====>" + Arrays.toString(bomRef)); if (childbox.getItemCount() <= 2 && childbox.getItemAt(1)!=null&&!childbox.getItemAt(1).equals("")) {
if (childbox.getItemCount() <= 2 && !(childbox.getItemAt(1) == null || "".equals(childbox.getItemAt(1)))) {
childbox.setSelectedIndex(1); childbox.setSelectedIndex(1);
childbox.setEditable(false); childbox.setEditable(false);
childNode.setSelected(true); childNode.setSelected(true);
@ -536,7 +556,6 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
System.out.println("执行判断" + rev.getProperty("object_name")); System.out.println("执行判断" + rev.getProperty("object_name"));
if (rev != null && isRevBomReleased(rev)) { if (rev != null && isRevBomReleased(rev)) {
setUnable(childNode); setUnable(childNode);
System.out.println(rev.getProperty("object_name") + "已发布");
return true; return true;
} else { } else {
restoreSelect(childNode); restoreSelect(childNode);
@ -631,7 +650,6 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
/** /**
* *
*
* @param node * @param node
* @return * @return
*/ */
@ -649,7 +667,6 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
/** /**
* , * ,
*
* @param node * @param node
* @param loopSet * @param loopSet
* @return * @return
@ -670,8 +687,11 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
} }
} }
} }
public void getAllBomItemByBomline(TCComponentBOMLine line, List<TCComponentItem> itemList) throws TCException { public void getAllBomItemByBomline(TCComponentBOMLine line, List<TCComponentItem> itemList)
throws TCException {
if (line == null) { if (line == null) {
return; return;
} }
@ -683,13 +703,17 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
} }
} }
/** /**
* bom * bom
* *
* @param selectIndex * @param selectIndex
* @throws TCException * @throws TCException
*/ */
public void createBom(TCComponentItemRevision parentRev, List<TCComponentItemRevision> childRevList, public void createBom(TCComponentItemRevision parentRev, List<TCComponentItemRevision> childRevList,
List<String> queryNoList, List<String> countNoList) throws TCException { List<String> queryNoList, List<String> countNoList) throws TCException {
if (childRevList == null || childRevList.size() == 0) { if (childRevList == null || childRevList.size() == 0) {
return; return;
@ -714,15 +738,11 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
} }
for (int i = 0; i < childRevList.size(); i++) { for (int i = 0; i < childRevList.size(); i++) {
TCComponentItemRevision rev = childRevList.get(i); TCComponentItemRevision rev = childRevList.get(i);
System.out.println("object_string====>" + rev.getProperty("object_string"));
line.lock(); 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, ""); TCComponentBOMLine childBomLine = line.add(rev.getItem(), rev, null, false, "");
session.getUserService().call("bs_bypass", new Object[] { false });
line.save(); line.save();
line.unlock(); line.unlock();
if (countNoList.get(i) != null && !countNoList.get(i).equals("")) { if (countNoList.get(i) != null && !countNoList.get(i).equals("")) {
childBomLine.lock(); childBomLine.lock();
childBomLine.setProperties(setProps, new String[] { countNoList.get(i) }); childBomLine.setProperties(setProps, new String[] { countNoList.get(i) });
@ -730,27 +750,30 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
childBomLine.unlock(); childBomLine.unlock();
} }
} }
try { try {
win.save(); win.save();
} catch (Exception e) { win.unlock();
TCComponent[] comps = parentRev.getTCProperty("structure_revisions").getReferenceValueArray(); }catch(Exception e) {
if (comps.length > 0) { 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]); parentRev.remove("structure_revisions", comps[0]);
comps[0].lock(); comps[0].delete();;
comps[0].delete();
;
} }
e.printStackTrace(); e.printStackTrace();
throw e; throw e;
} finally {
win.unlock();
win.close();
} }
} }
/** /**
* *
* *
@ -758,7 +781,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
* @return * @return
* @throws TCException * @throws TCException
*/ */
public boolean isCompReleased(TCComponent comp) throws TCException { public boolean isCompReleased(TCComponent comp) throws TCException {
TCComponent[] comps = comp.getRelatedComponents("release_status_list"); TCComponent[] comps = comp.getRelatedComponents("release_status_list");
if (comps != null && comps.length > 0) { if (comps != null && comps.length > 0) {
return true; return true;
@ -772,7 +795,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
* @param rev * @param rev
* @return * @return
*/ */
public boolean isRevHadBom(TCComponentItemRevision rev) { public boolean isRevHadBom(TCComponentItemRevision rev) {
boolean isHad = false; boolean isHad = false;
if (rev != null) { if (rev != null) {
try { try {
@ -795,7 +818,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
* @param rev * @param rev
* @return * @return
*/ */
public boolean isRevBomReleased(TCComponentItemRevision rev) { public boolean isRevBomReleased(TCComponentItemRevision rev) {
boolean isReleased = false; boolean isReleased = false;
try { try {
if (isCompReleased(rev)) { if (isCompReleased(rev)) {
@ -804,7 +827,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac
// if(line.getChildren().length!=0){ // if(line.getChildren().length!=0){
// isReleased = true; // isReleased = true;
// } // }
if (isRevHadBom(rev)) { if ( isRevHadBom(rev)) {
TCComponentBOMViewRevision bvr = win.askBvr(); TCComponentBOMViewRevision bvr = win.askBvr();
if (bvr != null) { if (bvr != null) {
TCComponent[] status = bvr.getReferenceListProperty("release_status_list"); TCComponent[] status = bvr.getReferenceListProperty("release_status_list");

Loading…
Cancel
Save