diff --git a/.classpath b/.classpath index bd4f707..ff61cb6 100644 --- a/.classpath +++ b/.classpath @@ -14,5 +14,361 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF index 2095206..530dd8b 100644 --- a/META-INF/MANIFEST.MF +++ b/META-INF/MANIFEST.MF @@ -31,3 +31,4 @@ Bundle-ClassPath: sqlServerLib/sqljdbc4.jar, poi_lib/poi-ooxml-schemas-3.17.jar, poi_lib/poi-scratchpad-3.17.jar, poi_lib/xmlbeans-2.6.0.jar +Import-Package: com.teamcenter.services.loose.core._2011_06 diff --git a/src/com/langtech/plm/mpart/CheckHeaderCellRenderer.java b/src/com/langtech/plm/mpart/CheckHeaderCellRenderer.java index 47d7268..5a77f50 100644 --- a/src/com/langtech/plm/mpart/CheckHeaderCellRenderer.java +++ b/src/com/langtech/plm/mpart/CheckHeaderCellRenderer.java @@ -30,17 +30,24 @@ public class CheckHeaderCellRenderer implements TableCellRenderer { // 获得选中列 int selectColumn = tableHeader.columnAtPoint(e.getPoint()); if (selectColumn == 0) { + System.out.println("selectColumn == 0selectColumn == 0selectColumn == 0"); boolean value = !selectBox.isSelected(); selectBox.setSelected(value); // tableModel.selectAllOrNull(value); tableHeader.repaint(); if(value) { for(int i=0;i+" + source); if (this.createButton.equals(source)) { + + //首选项获取流程模板名称 + String[] workflows = session.getPreferenceService().getStringValues("LY6_EPartToMPartWorkflow"); + String workflowTemplate = ""; + if(workflows != null && workflows.length > 0) { + workflowTemplate = workflows[0]; + }else { + MessageBox.post("请配置首选项LY6_EPartToMPartWorkflow!", "提示 ", MessageBox.INFORMATION); + return; + } //判断是否含有子 //循环 int count = 0; @@ -317,8 +332,15 @@ public class MpartDialog extends JFrame implements ActionListener { item.setProperty("ly6_sequenceNum", incrementNumber(ly6_sequenceNum)); } + //添加流程 + if(workflowTemplate != null || !workflowTemplate.isEmpty()) { + CreateProcess(session,item,workflowTemplate); + } + + //把对象放到管理文件夹下 rev.add("LY6_relatedMPart",item); + item.getLatestItemRevision().refresh(); }else { AIFComponentContext[] children = topLine.getChildren(); //直接创建对象 @@ -335,6 +357,7 @@ public class MpartDialog extends JFrame implements ActionListener { } //把对象放到管理文件夹下 rev.add("LY6_relatedMPart",item); + item.getLatestItemRevision().refresh(); //搭建mBOM TCComponentBOMWindowType viewType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); TCComponentBOMWindow view = viewType.create(null); @@ -421,8 +444,13 @@ public class MpartDialog extends JFrame implements ActionListener { mTopLine.save(); view.save(); view.close(); + //添加流程 + if(workflowTemplate != null || !workflowTemplate.isEmpty()) { + CreateProcess(session,item,workflowTemplate); + } + } - + } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); @@ -535,7 +563,7 @@ public class MpartDialog extends JFrame implements ActionListener { String value = (String) getValueAt(row, 5); System.out.println("value=========="+value); if(value.equals("自制")) { - if (column == 0 || column == 5) {// 可编辑的列 + if (column == 5) {// 可编辑的列 return true; } @@ -543,8 +571,14 @@ public class MpartDialog extends JFrame implements ActionListener { return false; } }else { - - return false; + + if (column == 5) {// 可编辑的列 + + return true; + } + else { + return false; + } } @@ -561,7 +595,6 @@ public class MpartDialog extends JFrame implements ActionListener { t_part.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { - System.out.println("2222222222222222222222222222222222222222222222222222222"); if (e.getClickCount() == 2 || e.getClickCount() == 1) { // TODO Auto-generated method stub int selectColumn = t_part.getTableHeader().columnAtPoint(e.getPoint()); @@ -574,7 +607,7 @@ public class MpartDialog extends JFrame implements ActionListener { table2RevList.clear(); ArrayList arrayList = valueList.get(selectedRow); Object object = arrayList.get(8); - System.out.println("11111111111111111111111111111111"); + if(object != null) { ArrayList tempList = (ArrayList)object; @@ -596,12 +629,16 @@ public class MpartDialog extends JFrame implements ActionListener { } } }else { - Object valueAt = t_part.getValueAt(selectedRow, selectColumn); - if(valueAt.toString().equals("1")) { - t_part.setValueAt("0", selectedRow, selectColumn); - }else { - t_part.setValueAt("1", selectedRow, selectColumn); - } + + if(t_part.getValueAt(selectedRow, 5).equals("自制")) { + Object valueAt = t_part.getValueAt(selectedRow, selectColumn); + if(valueAt.toString().equals("1")) { + t_part.setValueAt("0", selectedRow, selectColumn); + }else { + t_part.setValueAt("1", selectedRow, selectColumn); + } + } + } } } @@ -695,7 +732,10 @@ public class MpartDialog extends JFrame implements ActionListener { } t_part.getTableHeader().setDefaultRenderer(new CheckHeaderCellRenderer(t_part)); t_part.getColumnModel().getColumn(0).setCellRenderer(new TableCellCheckboxRenderer(t_part)); - + JComboBox jComboBox1 = new JComboBox(); + jComboBox1.addItem("外购"); + jComboBox1.addItem("自制"); + t_part.getColumnModel().getColumn(5).setCellEditor(new DefaultCellEditor(jComboBox1)); // 获取首选项值 // String[] ld_taskNature = session.getPreferenceService().getStringValues("ld_taskNature");// 任务性质 // String[] ld_taskDifficulty = session.getPreferenceService().getStringValues("ld_taskDifficulty");// 难易程度 @@ -900,7 +940,12 @@ public class MpartDialog extends JFrame implements ActionListener { public String getGroupID() throws TCException { TCComponentGroup group = session.getCurrentGroup(); - String name = group.getTCProperty("name").getStringValue(); + String name = group.getTCProperty("full_name").getStringValue(); + if(name.contains(".")) { + String[] split = name.split("."); + name = split[split.length]; + System.out.println("name=============="+name); + } return name; } @@ -928,4 +973,19 @@ public class MpartDialog extends JFrame implements ActionListener { return formattedNumber; } + + public static void CreateProcess(TCSession session, TCComponent target, String processName) throws TCException { + try { + TCComponentProcessType processType = (TCComponentProcessType)session.getTypeComponent("Job"); + TCComponentTaskTemplateType taskTemplateType = (TCComponentTaskTemplateType)session.getTypeComponent("EPMTaskTemplate"); + TCComponentTaskTemplate taskTemplate = taskTemplateType.find(processName, 0); + if (taskTemplate != null) { + String name = target.getProperty("object_string"); + processType.create(processName + ":" + name, "", taskTemplate, new TCComponent[]{target}, new int[]{1}); + } + } catch (TCException var7) { + var7.printStackTrace(); + throw var7; + } + } } diff --git a/src/com/langtech/plm/mpart/MpartHandler.java b/src/com/langtech/plm/mpart/MpartHandler.java index 392b846..f047107 100644 --- a/src/com/langtech/plm/mpart/MpartHandler.java +++ b/src/com/langtech/plm/mpart/MpartHandler.java @@ -9,9 +9,11 @@ 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.TCComponent; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentSchedule; import com.teamcenter.rac.kernel.TCComponentScheduleTask; +import com.teamcenter.rac.kernel.TCComponentTask; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.util.MessageBox; @@ -30,23 +32,56 @@ public class MpartHandler extends AbstractHandler{ public void run() { InterfaceAIFComponent[] targetComponent = app.getTargetComponents(); ArrayList arrayList = new ArrayList(); - - for (int i = 0; i < targetComponent.length; i++) { - InterfaceAIFComponent component = targetComponent[i]; - if(component instanceof TCComponentItemRevision) { - arrayList.add((TCComponentItemRevision)component); + String[] types = session.getPreferenceService().getStringValues("LY6_EPartType"); + if(types != null && types.length > 0) { + for (int i = 0; i < targetComponent.length; i++) { + InterfaceAIFComponent component = targetComponent[i]; + if(component instanceof TCComponentItemRevision) { + String type = component.getType(); + System.out.println("type================"+type); + if(types[0].contains(type)) { + arrayList.add((TCComponentItemRevision)component); + } + + }else if(component instanceof TCComponentTask) { + TCComponentTask task = (TCComponentTask)component; + try { + TCComponent[] targets = task.getRelatedComponents("root_target_attachments"); + for(TCComponent attachment:targets) { + + if(attachment instanceof TCComponentItemRevision) { + + String type = attachment.getType(); + System.out.println("type================"+type); + if(types[0].contains(type)) { + arrayList.add((TCComponentItemRevision)attachment); + } + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } } - } - - System.out.println("arrayList.size()==========="+arrayList.size()); - - if(arrayList.size() > 0) { - try { - new MpartDialog(session,arrayList); - } catch (TCException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + + System.out.println("arrayList.size()==========="+arrayList.size()); + + if(arrayList.size() > 0) { + try { + new MpartDialog(session,arrayList); + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + }else { + MessageBox.post("未获取到对象!", "提示 ", MessageBox.INFORMATION); + return; } + + }else { + MessageBox.post("请配置首选项LY6_EPartType!", "提示 ", MessageBox.INFORMATION); + return; }