package com.langtech.plm.synchronize; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Map.Entry; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableModel; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentForm; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.PropertyLayout; public class SynchronizeDialog extends JFrame implements ActionListener { private TCSession session; protected DefaultTableModel tm_part; private static ArrayList dateConnList = new ArrayList(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); private TCComponentItemRevision rev; private JComboBox objectComboBox = new JComboBox(); private JButton okButton = new JButton("确定"); private JButton concelButton = new JButton("取消"); private HashMap fieldMap = new HashMap(); private String revType = ""; HashMap objectMap = new HashMap(); public SynchronizeDialog(TCSession session, TCComponentItemRevision rev) { // TODO Auto-generated constructor stub this.session = session; this.rev = rev; initUI(); } private void initUI() { // TODO Auto-generated method stub try { this.setTitle("同步属性"); this.setLayout(new BorderLayout()); JPanel topPanel = getTopPanel(); JPanel btnPanel = getBtnPanel(); this.add(topPanel, BorderLayout.NORTH); // this.add(pane,BorderLayout.CENTER); this.add(btnPanel, BorderLayout.SOUTH); this.setPreferredSize(new Dimension(550, 200)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸 int screenWidth = screenSize.width; // 获取屏幕宽度 int screenHeight = screenSize.height; // 获取屏幕高度 int x = (screenWidth - 550) / 2; // 计算Frame的左上角x坐标 int y = (screenHeight - 300) / 2; // 计算Frame的左上角y坐标 this.setLocation(x, y); // 设置Frame的位置 // this.setLocationRelativeTo(null); this.createActionEvent(); this.pack(); // this.validate(); this.setVisible(true); // this.setAlwaysOnTop(true); // 获取首选项 设置下拉框 String[] relations = session.getPreferenceService().getStringValues("LY6_CopyAttributeRelation"); String[] fields = session.getPreferenceService().getStringValues("LY6_CopyAttribute"); if (relations == null || relations.length <= 0) { MessageBox.post("请配置LY6_CopyAttributeRelation!", "提示", 2); return; } if (fields == null || fields.length <= 0) { MessageBox.post("请配置LY6_CopyAttribute!", "提示", 2); return; } for (int i = 0; i < fields.length; i++) { String[] split = fields[i].split("="); fieldMap.put(split[0], split[1]); } HashMap relationsMap = new HashMap(); for (int i = 0; i < relations.length; i++) { String[] split = relations[i].split("="); relationsMap.put(split[0], split[1]); } // 获取版本类型 revType = rev.getStringProperty("object_type"); String relation = relationsMap.get(revType); if (relation == null || relation.isEmpty()) { MessageBox.post("首选项未匹配到关系!", "提示", 2); return; } // 获取关系下的对象 if (relation.contains(",")) { String[] split = relation.split(","); for (int i = 0; i < split.length; i++) { TCComponent[] components = rev.getRelatedComponents(split[i]); for (int j = 0; j < components.length; j++) { if (components[j] instanceof TCComponentItemRevision) { TCComponentItemRevision relationRev = (TCComponentItemRevision) components[j]; String object_string = relationRev.getStringProperty("object_string"); String object_type = relationRev.getStringProperty("object_type"); objectMap.put(object_string + "-" + object_type, relationRev); } } } } else { TCComponent[] components = rev.getRelatedComponents(relation); for (int j = 0; j < components.length; j++) { if (components[j] instanceof TCComponentItemRevision) { TCComponentItemRevision relationRev = (TCComponentItemRevision) components[j]; String object_string = relationRev.getStringProperty("object_string"); String object_type = relationRev.getStringProperty("object_type"); objectMap.put(object_string + "-" + object_type, relationRev); } } } // 设置下拉框的值 for (Entry map : objectMap.entrySet()) { objectComboBox.addItem(map.getKey()); } } catch (Exception e) { e.printStackTrace(); return; } } // 添加监听 public void createActionEvent() { this.okButton.addActionListener(this); this.concelButton.addActionListener(this); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub Object source = e.getSource(); System.out.println("source==>+" + source); if (this.okButton.equals(source)) { // 获取选择的对象 try { String selectedItem = (String) objectComboBox.getSelectedItem(); TCComponentItemRevision selectRev = objectMap.get(selectedItem); String selectRevType = selectRev.getStringProperty("object_type"); String field = fieldMap.get(revType + ":" + selectRevType); // 获取两个对象的 item 和 form TCComponentItem revItem = rev.getItem(); TCComponentForm revForm = (TCComponentForm) rev.getReferenceListProperty("IMAN_master_form_rev")[0]; TCComponentItem selectRevItem = selectRev.getItem(); TCComponentForm selectRevForm = (TCComponentForm) selectRev .getReferenceListProperty("IMAN_master_form_rev")[0]; if (field == null || field.isEmpty()) { field = fieldMap.get("通用"); // 解析属性 System.out.println("field==="+field); if (field.contains(",")) {// 判断是否多个 String[] split = field.split(","); for (int i = 0; i < split.length; i++) { String[] split2 = split[i].split(":"); String[] selectSplit = split2[1].split("\\."); System.out.println("selectSplit[0]==="+selectSplit[0]); System.out.println("--------------------------------"); if (selectSplit[0].equals("item")) { String value = ""; Date dateValue = null; Double doubleValue = 0d; if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRevItem.getStringProperty(selectSplit[1]); System.out.println("value===="+value); } else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); Double tempDoubleValue = selectRevItem.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); }else if (selectSplit[2].equals("date")) { dateValue = selectRevItem.getDateProperty(selectSplit[1]); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } }else if (selectSplit[0].equals("rev")) { System.out.println("0000000000000000000000000"); String value = ""; Date dateValue = null; Double doubleValue = 0d; System.out.println("selectSplit[2]====================="+selectSplit[2]); if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRev.getStringProperty(selectSplit[1]); } else if (selectSplit[2].equals("date")) { dateValue = selectRev.getDateProperty(selectSplit[1]); }else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); System.out.println("1111111111111111111111"); Double tempDoubleValue = selectRev.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } } else if (selectSplit[0].equals("rm")) { String value = ""; Date dateValue = null; Double doubleValue = 0d; if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRevForm.getStringProperty(selectSplit[1]); } else if (selectSplit[2].equals("date")) { dateValue = selectRevForm.getDateProperty(selectSplit[1]); }else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); Double tempDoubleValue = selectRevForm.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } } } } else { String[] split2 = field.split(":"); String[] selectSplit = split2[1].split("\\."); System.out.println("selectSplit[0]==="+selectSplit[0]); System.out.println("--------------------------------"); if (selectSplit[0].equals("item")) { String value = ""; Date dateValue = null; Double doubleValue = 0d; if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRevItem.getStringProperty(selectSplit[1]); System.out.println("value===="+value); } else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); Double tempDoubleValue = selectRevItem.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); }else if (selectSplit[2].equals("date")) { dateValue = selectRevItem.getDateProperty(selectSplit[1]); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } }else if (selectSplit[0].equals("rev")) { System.out.println("0000000000000000000000000"); String value = ""; Date dateValue = null; Double doubleValue = 0d; System.out.println("selectSplit[2]====================="+selectSplit[2]); if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRev.getStringProperty(selectSplit[1]); } else if (selectSplit[2].equals("date")) { dateValue = selectRev.getDateProperty(selectSplit[1]); }else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); System.out.println("1111111111111111111111"); Double tempDoubleValue = selectRev.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } } else if (selectSplit[0].equals("rm")) { String value = ""; Date dateValue = null; Double doubleValue = 0d; if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRevForm.getStringProperty(selectSplit[1]); } else if (selectSplit[2].equals("date")) { dateValue = selectRevForm.getDateProperty(selectSplit[1]); }else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); Double tempDoubleValue = selectRevForm.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } } } } else { // 解析属性 System.out.println("field==="+field); if (field.contains(",")) {// 判断是否多个 String[] split = field.split(","); for (int i = 0; i < split.length; i++) { String[] split2 = split[i].split(":"); String[] selectSplit = split2[1].split("\\."); System.out.println("selectSplit[0]==="+selectSplit[0]); System.out.println("--------------------------------"); if (selectSplit[0].equals("item")) { String value = ""; Date dateValue = null; Double doubleValue = 0d; if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRevItem.getStringProperty(selectSplit[1]); System.out.println("value===="+value); } else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); Double tempDoubleValue = selectRevItem.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); }else if (selectSplit[2].equals("date")) { dateValue = selectRevItem.getDateProperty(selectSplit[1]); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } }else if (selectSplit[0].equals("rev")) { System.out.println("0000000000000000000000000"); String value = ""; Date dateValue = null; Double doubleValue = 0d; System.out.println("selectSplit[2]====================="+selectSplit[2]); if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRev.getStringProperty(selectSplit[1]); } else if (selectSplit[2].equals("date")) { dateValue = selectRev.getDateProperty(selectSplit[1]); }else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); System.out.println("1111111111111111111111"); Double tempDoubleValue = selectRev.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } } else if (selectSplit[0].equals("rm")) { String value = ""; Date dateValue = null; Double doubleValue = 0d; if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRevForm.getStringProperty(selectSplit[1]); } else if (selectSplit[2].equals("date")) { dateValue = selectRevForm.getDateProperty(selectSplit[1]); }else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); Double tempDoubleValue = selectRevForm.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } } } } else { String[] split2 = field.split(":"); String[] selectSplit = split2[1].split("\\."); System.out.println("selectSplit[0]==="+selectSplit[0]); System.out.println("--------------------------------"); if (selectSplit[0].equals("item")) { String value = ""; Date dateValue = null; Double doubleValue = 0d; if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRevItem.getStringProperty(selectSplit[1]); System.out.println("value===="+value); } else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); Double tempDoubleValue = selectRevItem.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); }else if (selectSplit[2].equals("date")) { dateValue = selectRevItem.getDateProperty(selectSplit[1]); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } }else if (selectSplit[0].equals("rev")) { System.out.println("0000000000000000000000000"); String value = ""; Date dateValue = null; Double doubleValue = 0d; System.out.println("selectSplit[2]====================="+selectSplit[2]); if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRev.getStringProperty(selectSplit[1]); } else if (selectSplit[2].equals("date")) { dateValue = selectRev.getDateProperty(selectSplit[1]); }else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); System.out.println("1111111111111111111111"); Double tempDoubleValue = selectRev.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } } else if (selectSplit[0].equals("rm")) { String value = ""; Date dateValue = null; Double doubleValue = 0d; if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { value = selectRevForm.getStringProperty(selectSplit[1]); } else if (selectSplit[2].equals("date")) { dateValue = selectRevForm.getDateProperty(selectSplit[1]); }else if (selectSplit[2].contains("double")) { String[] wsSplit = selectSplit[2].split("#"); Double tempDoubleValue = selectRevForm.getDoubleProperty(selectSplit[1]); doubleValue = truncateDouble(Integer.parseInt(wsSplit[1]),tempDoubleValue); } // 获取目标对象要更新哪个属性 String[] targetSplit = split2[0].split("\\."); if (targetSplit[0].equals("item")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revItem.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revItem.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revItem.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rev")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { rev.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { rev.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { rev.setDoubleProperty(targetSplit[1], doubleValue); } } else if (targetSplit[0].equals("rm")) { if (targetSplit[2].equals("string") || targetSplit[2].equals("lov")) { revForm.setProperty(targetSplit[1], value); } else if (targetSplit[2].equals("date")) { revForm.setDateProperty(targetSplit[1], dateValue); }else if (targetSplit[2].contains("double")) { revForm.setDoubleProperty(targetSplit[1], doubleValue); } } } } } MessageBox.post("修改成功!", "提示", 2); this.dispose(); } catch (TCException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (this.concelButton.equals(source)) { this.dispose(); } } private JPanel getBtnPanel() { JPanel topPanel = new JPanel(); topPanel.setLayout(new PropertyLayout()); topPanel.add("1.1.center", new JLabel("")); topPanel.add("2.1.center", new JLabel(" ")); topPanel.add("2.2.center", okButton); topPanel.add("2.3.center", new JLabel("")); topPanel.add("2.4.center", concelButton); return topPanel; } // 查询部分 private JPanel getTopPanel() { // TODO Auto-generated method stub JPanel topPanel = new JPanel(); topPanel.setLayout(new PropertyLayout()); topPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); topPanel.add("1.1.left.center", new JLabel("")); topPanel.add("2.1.left.center", new JLabel("")); topPanel.add("3.1.left.center", new JLabel("")); topPanel.add("4.1.left.center", new JLabel("")); topPanel.add("5.1.left.center", new JLabel("")); topPanel.add("6.1.left.center", new JLabel("")); topPanel.add("7.1.left.center", new JLabel("选择属性来源对象:")); topPanel.add("7.2.left.center", objectComboBox); return topPanel; } public double truncateDouble(int scale,double value) { // 使用 BigDecimal 进行精确控制 System.out.println("value========"+value); System.out.println("scale=========="+scale); BigDecimal bd = new BigDecimal(Double.toString(value)); // 设置小数位数并使用 RoundingMode.DOWN 进行截断 bd = bd.setScale(scale, RoundingMode.DOWN); // 返回格式化后的 double 值 System.out.println("bd.doubleValue()============"+bd.doubleValue()); return bd.doubleValue(); } }