创建/编辑更改通知单功能增加选文件夹进行创建的逻辑

pull/23/head
李冬阳 10 months ago
parent 57055d7b83
commit 1914fabab5

@ -1,9 +1,9 @@
package com.chint.plm.createEcn; package com.chint.plm.createEcn;
import com.chint.plm.SearchSapResult.SapResultFrame;
import com.connor.chint.yunpi.KCommand; import com.connor.chint.yunpi.KCommand;
import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.MessageBox;
public class CreateEcnCommond extends KCommand { public class CreateEcnCommond extends KCommand {
@ -12,7 +12,7 @@ public class CreateEcnCommond extends KCommand {
super(app, commandId, actionInfo); super(app, commandId, actionInfo);
try { try {
InterfaceAIFComponent targetComponent = app.getTargetComponent(); 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(); new CreateEcnFrame();
} else { } else {
MessageBox.post("请选中项目零组件或者更改通知单或文件夹", "", MessageBox.ERROR); MessageBox.post("请选中项目零组件或者更改通知单或文件夹", "", MessageBox.ERROR);

@ -43,6 +43,7 @@ import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset; import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemType; import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCException;
@ -206,7 +207,7 @@ public class CreateEcnController extends KFXPanelController {
showAlertBox("请先指派变更单ID", "提示", AlertType.INFORMATION); showAlertBox("请先指派变更单ID", "提示", AlertType.INFORMATION);
return; return;
} }
//TODO lidy20240520检查“影响分析”中的责任人列是否都为空值。如果是则不允许创建 // lidy20240520检查“影响分析”中的责任人列是否都为空值。如果是则不允许创建
boolean check = true; boolean check = true;
ObservableList<RefTableBean> refs = refTable.getItems(); ObservableList<RefTableBean> refs = refTable.getItems();
for (int i = 0; i < refs.size(); i++) { for (int i = 0; i < refs.size(); i++) {
@ -307,6 +308,50 @@ public class CreateEcnController extends KFXPanelController {
MessageBox.post("创建完成", "", MessageBox.INFORMATION); 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中 // 影响分析信息 保存到CHINT_ECN_NOTIFICATION中
@ -660,7 +705,7 @@ public class CreateEcnController extends KFXPanelController {
pages = dlivery + 1; pages = dlivery + 1;
} }
} }
System.out.println("页数pages:" + pages);//TODO System.out.println("页数pages:" + pages);//
for (int i = 0; i < rowCount; i++) { for (int i = 0; i < rowCount; i++) {
EcnBean ecnBean = items.get(i); EcnBean ecnBean = items.get(i);
changeDrawingNo[i] = ecnBean.getDrawNo().getText(); changeDrawingNo[i] = ecnBean.getDrawNo().getText();
@ -736,10 +781,15 @@ public class CreateEcnController extends KFXPanelController {
* @function * @function
*/ */
private void initText() throws Exception { private void initText() throws Exception {
factoryText.setEditable(false);
//TODO 选择文件夹直接创建,取自项目的相关属性,更改为手工填写
if(target instanceof TCComponentFolder) {
pmCombox.setEditable(true);
}else {
List<String> productModelList = new ArrayList<>(); List<String> productModelList = new ArrayList<>();
productModelList = Util.getproductModel(target, productModelList); productModelList = Util.getproductModel(target, productModelList);
factoryText.setEditable(false);
pmCombox.getItems().addAll(productModelList); pmCombox.getItems().addAll(productModelList);
}
List<String> unitList = new ArrayList<>(); List<String> unitList = new ArrayList<>();
contractText.setText(Util.getProjectNo(target)); contractText.setText(Util.getProjectNo(target));
contractText.setEditable(false); contractText.setEditable(false);
@ -747,7 +797,9 @@ public class CreateEcnController extends KFXPanelController {
htNameText.setEditable(false); htNameText.setEditable(false);
ecnId.setEditable(false); ecnId.setEditable(false);
rb_product.setSelected(true); 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<String> ccpNameFromProject = KUtil.getCCPNameFromProject(target, session); List<String> ccpNameFromProject = KUtil.getCCPNameFromProject(target, session);
prodNameComb.getItems().addAll(ccpNameFromProject); prodNameComb.getItems().addAll(ccpNameFromProject);

Loading…
Cancel
Save