diff --git a/classes/.gitignore b/classes/.gitignore new file mode 100644 index 0000000..8fe2033 --- /dev/null +++ b/classes/.gitignore @@ -0,0 +1 @@ +/cn/ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/CNClassPropBean.class b/classes/cn/com/origin/autocode/newitem/generatcode/CNClassPropBean.class index 4d10575..d263b60 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/CNClassPropBean.class and b/classes/cn/com/origin/autocode/newitem/generatcode/CNClassPropBean.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$1.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$1.class index 28f470f..0a7835f 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$1.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$1.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$2.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$2.class index b62e54f..56cab03 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$2.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$2.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$3.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$3.class index 98924d7..dd69f39 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$3.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$3.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$4.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$4.class index 6d4a6a7..27b74fa 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$4.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$4.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$5.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$5.class index 2ea5b2d..5cb8e07 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$5.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$5.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$6.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$6.class index 8e305b4..bfe9dd6 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$6.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$6.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$7.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$7.class index 7ef37e2..6acc3a7 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$7.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$7.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$8.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$8.class index d137349..fea9584 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$8.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$8.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$1.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$1.class index 96c703e..febeab1 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$1.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$1.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$2.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$2.class index 251c1ce..a4b013c 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$2.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$2.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$3.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$3.class index dfa7a38..9a52578 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$3.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9$3.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9.class index 73634e4..61589aa 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$9.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$NameValue.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$NameValue.class index 114fd99..1c4fea1 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$NameValue.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog$NameValue.class differ diff --git a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.class b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.class index cb48110..8bec45e 100644 Binary files a/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.class and b/classes/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.class differ diff --git a/src/cn/com/origin/autocode/newitem/generatcode/CNClassPropBean.java b/src/cn/com/origin/autocode/newitem/generatcode/CNClassPropBean.java index ed6baa8..6d80bd9 100644 --- a/src/cn/com/origin/autocode/newitem/generatcode/CNClassPropBean.java +++ b/src/cn/com/origin/autocode/newitem/generatcode/CNClassPropBean.java @@ -3,6 +3,7 @@ package cn.com.origin.autocode.newitem.generatcode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; import com.teamcenter.rac.kernel.ics.ICSAdminClassAttribute; import com.teamcenter.rac.kernel.ics.ICSKeyLov; @@ -51,6 +52,7 @@ public class CNClassPropBean { } else { this.isLov = false; } + } @Override diff --git a/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java b/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java index b6f6c7b..edd2a40 100644 --- a/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java +++ b/src/cn/com/origin/autocode/newitem/generatcode/NewCodeItemDialog.java @@ -11,6 +11,7 @@ import java.awt.datatransfer.StringSelection; import java.io.File; import java.io.IOException; import java.math.BigInteger; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; @@ -103,6 +104,7 @@ import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentItemType; import com.teamcenter.rac.kernel.TCComponentListOfValues; +import com.teamcenter.rac.kernel.TCComponentListOfValuesType; import com.teamcenter.rac.kernel.TCComponentProject; import com.teamcenter.rac.kernel.TCComponentProjectType; import com.teamcenter.rac.kernel.TCComponentPseudoFolder; @@ -316,6 +318,7 @@ public class NewCodeItemDialog extends Dialog { public NewCodeItemDialog(Shell parentShell) { super(parentShell); + System.out.println("NewCodeItemDialog~"); treeViewOperation = new TreeViewOperation(); treeAndListCodeOperation = new TreeAndListCodeOperation(); session = (TCSession) AIFUtility.getCurrentApplication().getSession(); @@ -2715,6 +2718,75 @@ public class NewCodeItemDialog extends Dialog { stringMapping.put("lp2_child", LPSString); } } + + public static TCComponentListOfValues findLOVByName(TCSession tcsession, String lovName) { + TCComponentListOfValues tccomponentlistofvalues = null; + try { + TCComponentListOfValuesType tccomponentlistofvaluestype = (TCComponentListOfValuesType) tcsession.getTypeComponent("ListOfValues"); + TCComponentListOfValues atccomponentlistofvalues[] = tccomponentlistofvaluestype.find(lovName); + if (atccomponentlistofvalues != null && atccomponentlistofvalues.length > 0) + tccomponentlistofvalues = atccomponentlistofvalues[0]; + else + tccomponentlistofvalues = null; + } catch (TCException tcexception) { + tccomponentlistofvalues = null; + } + return tccomponentlistofvalues; + } + + /** + * 获得TC LOV值的显示值-真实值集合 + * @param seesion + * @return + * @throws TCException + */ + public static Map getLOVDisplay_value(TCSession seesion,String lovProp) throws TCException + { + Map Display_values = new HashMap(); + TCComponentListOfValues unitLov = TCLOVUtil.findLOVByName(seesion, lovProp); + if(unitLov !=null) + { + ListOfValuesInfo listOfValues = unitLov.getListOfValues(); + String[] realval = listOfValues.getStringListOfValues(); + String value=""; + boolean flag = false; + for (int i = 0; i < realval.length; i++) { + String disval = listOfValues.getDisplayableValue(realval[i]); + Display_values.put(disval, realval[i]); + } + } + return Display_values; + } + + /** + * 将"yyyy-MM-dd"格式的字符串转换为Calendar对象 + * @param dateStr 日期字符串,格式必须为"yyyy-MM-dd",允许为空字符串 + * @return 转换后的Calendar对象,如果解析失败则返回null + */ + public static Calendar stringToCalendar(String dateStr) { + if (dateStr == null || dateStr.isEmpty()) { + return null; + } + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + try { + Date date = sdf.parse(dateStr); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + + // 将时、分、秒、毫秒设置为0 + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + + System.out.println(">>>stringToCalendar方法 入参:"+dateStr+",转换后的日期="+calendar); + return calendar; + } catch (ParseException e) { + System.err.println("日期解析失败: " + dateStr + ", 错误信息: " + e.getMessage()); + return null; + } + } /** * 设置对象的属性匹配 @@ -2724,6 +2796,7 @@ public class NewCodeItemDialog extends Dialog { */ private void setPropMapping(CreateInput createInput, List cnProperties, Map stringMappingOld) { + System.out.println("setPropMapping方法开始执行~"); if (cnProperties == null) { return; } @@ -2745,8 +2818,14 @@ public class NewCodeItemDialog extends Dialog { if (prop == null) { continue; } - // log.info( - // "PROP MAP >>>>"+prop.getRealName()+"<===>"+prop.value); + Boolean isLov = prop.getIsLov(); + String lovName = prop.getLovName(); + Object inputValue = prop.value; + //20250509 编码器移植功能增强:对xml配置中,所有isLOV=true且输入有效的属性,通过输入or选择的“显示值”获取lov的真实值 + if (isLov && inputValue != null) { + String trueNameString = getLovTrueValue(lovName,inputValue); + prop.value = (trueNameString == null ? prop.value : trueNameString); + } switch (prop.getPropertyType().toUpperCase()) { case "STRING": stringMapping.put(prop.getRealName(), (String) (prop.value == null ? "" : prop.value)); @@ -2755,7 +2834,10 @@ public class NewCodeItemDialog extends Dialog { intMapping.put(prop.getRealName(), (BigInteger) (prop.value == null ? "" : prop.value)); break; case "DATE": - dateMapping.put(prop.getRealName(), (Calendar) (prop.value == null ? "" : prop.value)); + System.out.println(">>>转换前的属性输入值="+prop.value); + String value = (String) (prop.value == null ? "" : prop.value); + System.out.println(">>>转换成string后的value="+value); + dateMapping.put(prop.getRealName(), stringToCalendar(value) ); break; case "BOOLEAN": booleanMapping.put(prop.getRealName(), (Boolean) (prop.value == null ? "" : prop.value)); @@ -2776,12 +2858,16 @@ public class NewCodeItemDialog extends Dialog { doubleMapping.put(prop.getRealName(), mydv); break; default: + System.out.println("意料之外的类型:"+prop.getPropertyType().toUpperCase()); break; } } setBigAndS(createInput.boName, stringMapping); + System.out.println("开始打印string类型的属性:"); + printMap(stringMapping); + createInput.stringProps = stringMapping; createInput.intProps = intMapping; createInput.dateProps = dateMapping; @@ -2790,6 +2876,46 @@ public class NewCodeItemDialog extends Dialog { } + /** + * 根据lov的显示值获取对应的真实值 + * @param lovName lov名称 + * @param inputValue 输入或选中的lov“显示值” + * @return + */ + private String getLovTrueValue(String lovName, Object inputValue) { + if (lovName == null || inputValue == null) { + System.out.println("获取lov真实值传入的参数无效!"); + return null; + } + try { + Map lovDisplay_value = getLOVDisplay_value(session, lovName); + String trueValue = lovDisplay_value.get(inputValue); + if (trueValue == null) { + System.out.println("未在lov中查到对应的显示值,获取真实值失败,请检查输入!"); + return null; + }else { + System.out.println("成功获取到lov的真实值=》"+inputValue+":"+trueValue); + return trueValue; + } + } catch (TCException e) { + // TODO 自动生成的 catch 块 + e.printStackTrace(); + } + + // TODO 自动生成的方法存根 + return null; + } + + public static void printMap(Map map) { + if (map == null || map.isEmpty()) { + System.out.println("The map is empty."); + return; + } + for (Map.Entry entry : map.entrySet()) { + System.out.println("》》》Key: " + entry.getKey() + ", Value: " + entry.getValue()); + } + } + public TCComponent[] queryTCComponent(TCSession session, String[] values, String[] keys, String value) throws TCException { // String[] keys={"零组件 ID","版本"}; @@ -2905,6 +3031,7 @@ public class NewCodeItemDialog extends Dialog { ex3.printStackTrace(); } } + //创建对象的传入参数 com.teamcenter.services.rac.core._2008_06.DataManagement.CreateInput itemInput = new com.teamcenter.services.rac.core._2008_06.DataManagement.CreateInput(); itemInput.boName = itemType; System.out.println("Item Type =>>>>" + itemType); @@ -2913,8 +3040,10 @@ public class NewCodeItemDialog extends Dialog { itemStringMap.put("item_id", itemID); itemStringMap.put("object_desc", itemDesc); if (iComp != null) { + System.out.println("iComp != null"); setPropMapping(itemInput, iComp.getPropertyList(), itemStringMap); } else { + System.out.println("iComp == null"); itemInput.stringProps = itemStringMap; } @@ -2968,8 +3097,10 @@ public class NewCodeItemDialog extends Dialog { DataManagementService datamanagementservice = DataManagementService.getService(session); com.teamcenter.services.rac.core._2008_06.DataManagement.CreateIn createin = new com.teamcenter.services.rac.core._2008_06.DataManagement.CreateIn(); + createin.clientId = "Test"; createin.data = itemInput; + System.out.println("11111111111111"); com.teamcenter.services.rac.core._2008_06.DataManagement.CreateResponse createresponse = datamanagementservice .createObjects( @@ -3049,6 +3180,7 @@ public class NewCodeItemDialog extends Dialog { } } + System.out.println(">>" + cnpropList.get(i).getPropertyType().toUpperCase() + "|cnpropList.get(i).value =>" + cnpropList.get(i).value); if (cnpropList.get(i).getIsMust()) { @@ -3618,9 +3750,9 @@ public class NewCodeItemDialog extends Dialog { //判断是否要读分类的用户1的数据 if (!codeRemark.replace(" ", "").equals("")) { System.out.println("当前对象要发送的分类ID为:==================" + codeRemark); - String[] pres = session.getPreferenceService().getStringValues("Connor_Part_SAPGroupInfo"); - for (String pre : pres) { - if(newComp.getType().equals(pre)) { +// String[] pres = session.getPreferenceService().getStringValues("Connor_Part_SAPGroupInfo"); +// for (String pre : pres) { +// if(newComp.getType().equals(pre)) { //读取要发送的分类库上用户数据1的属性值,设置到创建出的物料对象版本上sap分组(ld6_sapGroupInfo)属性上 TCClassificationService classService = session.getClassificationService(); ICSAdminClass adminClass = classService.newICSAdminClass(); @@ -3628,9 +3760,9 @@ public class NewCodeItemDialog extends Dialog { String user1 = adminClass.getUser1(); TCComponentItemRevision rev = ((TCComponentItem) newComp).getLatestItemRevision(); rev.setStringProperty("ld6_sapGroupInfo", user1); - break; - } - } +// break; +// } +// } } new GetCodeNumber().delete_recycleID(counterID); setClipboard(newID);