From ae80682690eecd890ccee2b2d70261585df18133 Mon Sep 17 00:00:00 2001 From: xiongcz Date: Mon, 28 Apr 2025 15:34:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(autocode):=20=E6=96=B0=E5=A2=9E=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=88=9B=E5=BB=BA=E5=90=8E=E8=87=AA=E5=8A=A8=E5=B8=A6?= =?UTF-8?q?=E5=87=BA=E6=95=B0=E6=8D=AE=E9=9B=86=E6=A8=A1=E6=9D=BF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增功能:文档创建后,根据 ID(编码规则名称)自动带出数据集模板 - 实现步骤:1. 在文档创建过程中,判断新建对象是否属于“文档”类别 2. 如果是文档,则在创建完成后,根据编码规则名称查询对应的数据集模板 3. 将查询到的数据集模板上传到新建的文档版本对象中 - 相关代码修改: - 在 `addGeneralPropComosite` 方法中修改了文档类别属性的处理逻辑 - 在 `getFinalPattern` 方法中增加了文档类别的判断和处理 - 在 `createItem` 方法中实现了数据集模板的查询和上传功能 --- .../generatcode/NewCodeItemDialog.java | 69 +++++++++++++++---- 1 file changed, 56 insertions(+), 13 deletions(-) diff --git a/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java b/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java index 27800a6..bbcfc72 100644 --- a/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java +++ b/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java @@ -8,6 +8,7 @@ package cn.com.origin.autocode.newitem.generatcode; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.datatransfer.StringSelection; +import java.io.File; import java.io.IOException; import java.math.BigInteger; import java.text.SimpleDateFormat; @@ -107,6 +108,7 @@ import com.teamcenter.rac.kernel.TCComponentPseudoFolder; import com.teamcenter.rac.kernel.TCComponentQuery; import com.teamcenter.rac.kernel.TCComponentQueryType; import com.teamcenter.rac.kernel.TCComponentRole; +import com.teamcenter.rac.kernel.TCComponentTcFile; import com.teamcenter.rac.kernel.TCComponentUser; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCExceptionPartial; @@ -134,7 +136,7 @@ import com.teamcenter.soaictstubs.stringSeq_tHolder; public class NewCodeItemDialog extends Dialog { //ǷΪĵ private boolean isDoc = false; - private String leftMostCodeRuleNameString = ""; + private String leftMostCodeRuleNameString = "";//ѡеı private String docTypeValue = ""; // ӢĶ private SashForm sashFormCodeView; @@ -646,6 +648,7 @@ public class NewCodeItemDialog extends Dialog { * ½ UI -LabelobjPropComposite£ʹ */ public void addGeneralPropComosite() { + System.out.println("addGeneralPropComosite"); boolean isDocType = false;//ǰǷΪĵͣ for (int i = 0; i < generalPropLabelList.size(); i++) { Label label = generalPropLabelList.get(i); @@ -661,7 +664,7 @@ public class NewCodeItemDialog extends Dialog { //20250425 ѡеıд뵽Ҳĵ String currentPropName = cnProp.getDisplayName();//ǰĶor System.out.println("ǰUILabel="+currentPropName); - if(currentPropName != null && currentPropName.equals("ĵ") && docTypeValue != null && !docTypeValue.equals("")){ + if(currentPropName != null && currentPropName.equals("ĵ") && docTypeValue != null && !docTypeValue.equals("")){ System.out.println("ĵƥɹֵΪѡб="+docTypeValue); isDocType = true; } @@ -1660,7 +1663,7 @@ public class NewCodeItemDialog extends Dialog { if(selectedData.getChildrenTreeData() != null && selectedData.getChildrenTreeData().length>0) { System.out.println("ײ"); btFlg = true; - System.out.println("nodeName:"+selectedData.getPackCodeNodeInfo().getNode_name()); + System.out.println("nodeName:"+selectedData.getPackCodeNodeInfo().getNode_name()); return; }else { System.out.println("ײ"); @@ -1671,9 +1674,10 @@ public class NewCodeItemDialog extends Dialog { String name = ""; // õϢ getCodeInfo(selectedData); - //TODO ݵõıϢõΪĵ + //KUMA ݵõıϢõΪĵ if(isDoc){//ĵ //1.ȡѡеĵı + System.out.println("ǰ½Ϊĵ"); AbstractTreeData leftTreeData = selectedData.getParentTreeData(); if (leftTreeData != null) { leftMostCodeRuleNameString = leftTreeData.getPackCodeNodeInfo().getNode_name(); @@ -1692,7 +1696,7 @@ public class NewCodeItemDialog extends Dialog { System.out.println("һ: " + firstPart); System.out.println("ڶ: " + secondPart); if (firstPart.equals(leftMostCodeRuleNameString)) { - //secondPartҲеԡĵ + //secondPartֵȫֱdocTypeValueaddGeneralPropComositeҲеԡĵ docTypeValue = secondPart; break; }else { @@ -1730,12 +1734,13 @@ public class NewCodeItemDialog extends Dialog { if (currentNodeDesc.trim().length() > 0) { codeDesc = codeDesc + currentNodeDesc; } - if (!TCPreferenceUitl.isTrueTCPreferenceValue(session, - origin_isItemNameTextDefaultNull)) { + //ss + if (!TCPreferenceUitl.isTrueTCPreferenceValue(session,origin_isItemNameTextDefaultNull)) { nameText.setText(name); } else { nameText.setText(""); } + getFinalPattern(); // idText.setText(pattern); idText.setText(finalPattern); @@ -1796,8 +1801,7 @@ public class NewCodeItemDialog extends Dialog { icoPropertyMap = listView.getIcoPropertyMap(); revText.setText(tccomponentitemtype.getNewRev(null)); - if (!TCPreferenceUitl.isTrueTCPreferenceValue(session, - origin_isItemNameTextDefaultNull)) { + if (!TCPreferenceUitl.isTrueTCPreferenceValue(session,origin_isItemNameTextDefaultNull)) { nameText.setText(firstListICOName); } else { nameText.setText(""); @@ -1940,6 +1944,16 @@ public class NewCodeItemDialog extends Dialog { String parentName = ""; if (treeData != null) { + //жϵǰ½Ƿڡĵһ + String nodeNameCurrent = treeData.getPackCodeNodeInfo().getNode_name(); + String nodetypeCurrent = treeData.getPackCodeNodeInfo().getNode_type(); + System.out.println("ǰڵ㡾"+nodeNameCurrent+"ڡ"+nodetypeCurrent+""); + if (nodeNameCurrent.contains("ĵ")){ + System.out.println("ǰڵڡĵ"); + isDoc = true; + } + + AbstractTreeData parentData = treeData.getParentTreeData(); if ((parentData != null) && (parentData.getPackCodeNodeInfo().getNodeComponent() != null)) { @@ -1968,7 +1982,10 @@ public class NewCodeItemDialog extends Dialog { originFatherData = treeData; } } - System.out.println("ͼѡжʼ="+originFatherData.getPackCodeNodeInfo().getNode_name()+"\n ="+originFatherData.getPackCodeNodeInfo().getNode_type()); + if (originFatherData != null) { + System.out.println("ͼѡжʼ="+originFatherData.getPackCodeNodeInfo().getNode_name()+"\n ="+originFatherData.getPackCodeNodeInfo().getNode_type()); + } + } private void initTreeOrListMouseClick() { @@ -3221,13 +3238,39 @@ public class NewCodeItemDialog extends Dialog { //20250425 ĵ󣬸 ID= ݼģ if (newComp != null && isDoc){ + //ȡ½İ汾-rev + TCComponentItemRevision rev = null; + if (newComp instanceof TCComponentItemRevision){ + rev = (TCComponentItemRevision) newComp; + } else if (newComp instanceof TCComponentItem) { + rev = ((TCComponentItem) newComp).getLatestItemRevision(); + } + if (leftMostCodeRuleNameString != null && !leftMostCodeRuleNameString.isEmpty()){ - //1.òѯȡ汾ݼ - + //1.KUMA òѯȡ汾ݼ + TCComponent[] searchs = session.search(" ID", + new String[] { " ID"}, + new String[] { leftMostCodeRuleNameString}); + if (searchs.length > 0){ + if (searchs[0] instanceof TCComponentItemRevision){ + TCComponentItemRevision itemRevision = (TCComponentItemRevision) searchs[0]; + //ѯİ汾"淶"ϵµݼ + TCComponent[] referenceListProperty = itemRevision.getReferenceListProperty("IMAN_specification"); + if (referenceListProperty != null && referenceListProperty.length > 0){ + for (TCComponent tcComponent : referenceListProperty){ + if (tcComponent instanceof TCComponentDataset) { + TCComponentDataset dataset_old = (TCComponentDataset) tcComponent; + TCComponentDataset dataset_new = dataset_old.saveAs(null); + //2.ݼϴ½汾 + rev.add("IMAN_specification", dataset_new); + } - //2.ݼϴ½汾 + } + } + } + } } }