diff --git a/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnCommond.java b/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnCommond.java index facf414..0234564 100644 --- a/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnCommond.java +++ b/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnCommond.java @@ -1,9 +1,9 @@ package com.chint.plm.createEcn; -import com.chint.plm.SearchSapResult.SapResultFrame; import com.connor.chint.yunpi.KCommand; import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; +import com.teamcenter.rac.kernel.TCComponentFolder; import com.teamcenter.rac.util.MessageBox; public class CreateEcnCommond extends KCommand { @@ -12,7 +12,7 @@ public class CreateEcnCommond extends KCommand { super(app, commandId, actionInfo); try { InterfaceAIFComponent targetComponent = app.getTargetComponent(); - if (targetComponent.getType().equals("ZT2_ProjectItem") || targetComponent.getType().equals("ZT2_Change")) { + if ((targetComponent instanceof TCComponentFolder) || targetComponent.getType().equals("ZT2_ProjectItem") || targetComponent.getType().equals("ZT2_Change")) { new CreateEcnFrame(); } else { MessageBox.post("请选中项目零组件或者更改通知单或文件夹", "", MessageBox.ERROR); diff --git a/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnController.java b/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnController.java index f29b491..529d4f4 100644 --- a/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnController.java +++ b/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnController.java @@ -43,6 +43,7 @@ import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentDataset; +import com.teamcenter.rac.kernel.TCComponentFolder; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemType; import com.teamcenter.rac.kernel.TCException; @@ -206,7 +207,7 @@ public class CreateEcnController extends KFXPanelController { showAlertBox("请先指派变更单ID", "提示", AlertType.INFORMATION); return; } - //TODO lidy20240520检查“影响分析”中的责任人列是否都为空值。如果是则不允许创建 + // lidy20240520检查“影响分析”中的责任人列是否都为空值。如果是则不允许创建 boolean check = true; ObservableList refs = refTable.getItems(); for (int i = 0; i < refs.size(); i++) { @@ -307,6 +308,50 @@ public class CreateEcnController extends KFXPanelController { MessageBox.post("创建完成", "", MessageBox.INFORMATION); } + } else if (target instanceof TCComponentFolder) { + //TODO 选择文件夹直接创建,功能逻辑和选择项目的保持一致,只是取自项目的相关属性,更改为手工填写,其余完全一致 + TCComponentItemType itemType = (TCComponentItemType) session.getTypeComponent("ZT2_Change"); + TCComponentItem item = itemType.create(ecnId.getText(), null, "ZT2_Change", changeName, "", null); + // 设置属性 + boolean flag = true; + try { + setItemProperty(item, changeName); + } catch (Exception e1) { + e1.printStackTrace(); + flag = false; + if (e1.getMessage().contains("无法设置属性 更改前")) { + MessageBox.post( + "更改单生成异常:" + e1.getMessage() + "\n" + + " 【更改前】【更改后】字符总数不能超过256个字符\n (一个中文字=2个字符,1个标点或者英文=1个字符)", + "保存异常", MessageBox.INFORMATION); + } else if (e1.getMessage().contains("无法设置属性 更改后")) { + MessageBox.post( + "更改单生成异常:" + e1.getMessage() + "\n" + + " 【更改前】【更改后】字符总数不能超过256个字符 \n (一个中文字=2个字符,1个标点或者英文=1个字符)", + "保存异常", MessageBox.INFORMATION); + } else { + MessageBox.post("更改单生成异常:" + e1.getMessage(), "保存异常", MessageBox.INFORMATION); + } + item.delete(); + + } + if (flag) { + target.add("contents", new TCComponent[] { item }); + // 新建数据集挂到对象规范关系下,导出相关属性 + // 获取模板的puid + String type = item.getProperty("zt2_Template"); + TCComponentDataset dataset = null; + dataset = getDataset(type, 1); +// item.setProperty("zt2_WBSNo", ""); + + File file = Util.getExcel(dataset); + createOrReplace(dataset, file, changeName); + + item.setRelated("IMAN_reference", new TCComponent[] { dataset }); +// item.unlock(); + MessageBox.post("创建完成", "", MessageBox.INFORMATION); + } + } // 影响分析信息 保存到CHINT_ECN_NOTIFICATION中 @@ -660,7 +705,7 @@ public class CreateEcnController extends KFXPanelController { pages = dlivery + 1; } } - System.out.println("页数pages:" + pages);//TODO + System.out.println("页数pages:" + pages);// for (int i = 0; i < rowCount; i++) { EcnBean ecnBean = items.get(i); changeDrawingNo[i] = ecnBean.getDrawNo().getText(); @@ -736,10 +781,15 @@ public class CreateEcnController extends KFXPanelController { * @function 初始化页面组件 */ private void initText() throws Exception { - List productModelList = new ArrayList<>(); - productModelList = Util.getproductModel(target, productModelList); factoryText.setEditable(false); - pmCombox.getItems().addAll(productModelList); + //TODO 选择文件夹直接创建,取自项目的相关属性,更改为手工填写 + if(target instanceof TCComponentFolder) { + pmCombox.setEditable(true); + }else { + List productModelList = new ArrayList<>(); + productModelList = Util.getproductModel(target, productModelList); + pmCombox.getItems().addAll(productModelList); + } List unitList = new ArrayList<>(); contractText.setText(Util.getProjectNo(target)); contractText.setEditable(false); @@ -747,7 +797,9 @@ public class CreateEcnController extends KFXPanelController { htNameText.setEditable(false); ecnId.setEditable(false); rb_product.setSelected(true); - if (target.getType().equals("ZT2_ProjectItem")) { + if(target instanceof TCComponentFolder) { + prodNameComb.setEditable(true); + }else if (target.getType().equals("ZT2_ProjectItem")) { // 获取产成品的名称 List ccpNameFromProject = KUtil.getCCPNameFromProject(target, session); prodNameComb.getItems().addAll(ccpNameFromProject);