Compare commits

..

No commits in common. 'main' and 'ljh' have entirely different histories.
main ... ljh

1
bin/.gitignore vendored

@ -0,0 +1 @@
/com/

@ -1 +0,0 @@
LD6_NewProdForm.FORMJAVARENDERING=com.langtech.plm.form.LD6_NewProdForm

@ -9,24 +9,6 @@
id="com.langtech.plm.performancemanagement.commands.category" id="com.langtech.plm.performancemanagement.commands.category"
name="Sample Category"> name="Sample Category">
</category> </category>
<command
categoryId="com.langtech.plm.project.CalculateHandler"
name="计算材料定额"
id="com.langtech.plm.project.CalculateHandler">
</command>
<command
categoryId="com.langtech.plm.bg.QDRWHandler"
name="变更任务分配表启动任务"
id="com.langtech.plm.bg.QDRWHandler">
</command>
<command
categoryId="com.langtech.plm.bg.RWFPHandler"
name="查看任务分配表"
id="com.langtech.plm.bg.RWFPHandler">
</command>
<command <command
categoryId="com.langtech.plm.batchRename.BatchRenameHandler" categoryId="com.langtech.plm.batchRename.BatchRenameHandler"
name="批量修改时间表任务名称" name="批量修改时间表任务名称"
@ -50,7 +32,7 @@
</command> </command>
<command <command
categoryId="com.langtech.plm.template.TemplateHandler" categoryId="com.langtech.plm.template.TemplateHandler"
name="生成工序卡" name="插入模板"
id="com.langtech.plm.template.TemplateHandler"> id="com.langtech.plm.template.TemplateHandler">
</command> </command>
@ -59,31 +41,9 @@
name="提取属性到Word、Excel" name="提取属性到Word、Excel"
id="com.langtech.plm.tqsx.PropertyToWordOrExcelCommand"> id="com.langtech.plm.tqsx.PropertyToWordOrExcelCommand">
</command> </command>
<command
categoryId="com.langtech.plm.modifyEffectiveTime.ModifyEffectiveTimeCommand"
name="修改配方生效时间"
id="com.langtech.plm.modifyEffectiveTime.ModifyEffectiveTimeCommand">
</command>
</extension> </extension>
<extension <extension
point="org.eclipse.ui.handlers"> point="org.eclipse.ui.handlers">
<handler
class="com.langtech.plm.bg.QDRWHandler"
commandId="com.langtech.plm.bg.QDRWHandler">
</handler>
<handler
class="com.langtech.plm.bg.RWFPHandler"
commandId="com.langtech.plm.bg.RWFPHandler">
</handler>
<handler
class="com.langtech.plm.project.CalculateHandler"
commandId="com.langtech.plm.project.CalculateHandler">
</handler>
<handler <handler
class="com.langtech.plm.batchRename.BatchRenameHandler" class="com.langtech.plm.batchRename.BatchRenameHandler"
commandId="com.langtech.plm.batchRename.BatchRenameHandler"> commandId="com.langtech.plm.batchRename.BatchRenameHandler">
@ -109,11 +69,6 @@
class="com.langtech.plm.tqsx.KHandler" class="com.langtech.plm.tqsx.KHandler"
commandId="com.langtech.plm.tqsx.PropertyToWordOrExcelCommand"> commandId="com.langtech.plm.tqsx.PropertyToWordOrExcelCommand">
</handler> </handler>
<handler
class="com.langtech.plm.modifyEffectiveTime.ModifyEffectiveTimeHandler"
commandId="com.langtech.plm.modifyEffectiveTime.ModifyEffectiveTimeCommand">
</handler>
</extension> </extension>
<extension <extension
point="org.eclipse.ui.menus"> point="org.eclipse.ui.menus">
@ -121,7 +76,7 @@
locationURI="menu:org.eclipse.ui.main.menu?after=additions"> locationURI="menu:org.eclipse.ui.main.menu?after=additions">
<menu <menu
id="com.langtech.plm.performancemanagement.menus.sampleMenu" id="com.langtech.plm.performancemanagement.menus.sampleMenu"
label="设计管理" label="二开菜单"
mnemonic="M"> mnemonic="M">
<command <command
commandId="com.langtech.plm.synchronize.SynchronizeHandler" commandId="com.langtech.plm.synchronize.SynchronizeHandler"
@ -129,31 +84,13 @@
mnemonic="S"> mnemonic="S">
</command> </command>
<command <command
commandId="com.langtech.plm.modifyEffectiveTime.ModifyEffectiveTimeCommand" commandId="com.langtech.plm.template.TemplateHandler"
id="com.langtech.plm.modifyEffectiveTime.ModifyEffectiveTimeHandler" id="com.langtech.plm.template.TemplateHandler"
mnemonic="S"> mnemonic="S">
</command> </command>
</menu> </menu>
<menu
id="com.langtech.plm.performancemanagement.menus.sampleMenu2"
label="变更管理"
mnemonic="M">
<command
commandId="com.langtech.plm.bg.RWFPHandler"
id="com.langtech.plm.bg.RWFPHandler"
mnemonic="S">
</command>
<command
commandId="com.langtech.plm.bg.QDRWHandler"
id="com.langtech.plm.bg.QDRWHandler"
mnemonic="S">
</command>
</menu>
<menu <menu
id="com.langtech.plm.performancemanagement.menus.sampleMenu1" id="com.langtech.plm.performancemanagement.menus.sampleMenu1"
label="项目管理" label="项目管理"
@ -169,30 +106,16 @@
id="com.langtech.plm.createProjectStruct.CreateProjectStructHandler" id="com.langtech.plm.createProjectStruct.CreateProjectStructHandler"
mnemonic="S"> mnemonic="S">
</command> </command>
</menu>
</menuContribution>
<menuContribution locationURI="menu:cn.net.connor.std.processedit.mainmenu?after=additions">
<command <command
commandId="com.langtech.plm.mpart.MpartHandler" commandId="com.langtech.plm.mpart.MpartHandler"
id="com.langtech.plm.mpart.MpartHandler" id="com.langtech.plm.mpart.MpartHandler"
mnemonic="S"> mnemonic="S">
</command> </command>
<command </menu>
commandId="com.langtech.plm.project.CalculateHandler"
id="com.langtech.plm.project.CalculateHandler"
mnemonic="S">
</command>
<command
commandId="com.langtech.plm.template.TemplateHandler"
id="com.langtech.plm.template.TemplateHandler"
mnemonic="S">
</command>
</menuContribution> </menuContribution>
<menuContribution locationURI="popup:org.eclipse.ui.popup.any?after=additions"> <menuContribution locationURI="popup:org.eclipse.ui.popup.any?after=additions">
<command <command
commandId="com.langtech.plm.tqsx.PropertyToWordOrExcelCommand" commandId="com.langtech.plm.tqsx.PropertyToWordOrExcelCommand"

@ -1,72 +0,0 @@
package com.langtech.plm.bg;
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
public class CheckHeaderCellRenderer implements TableCellRenderer {
DefaultTableModel tableModel;
JTableHeader tableHeader;
final JCheckBox selectBox;
public CheckHeaderCellRenderer(final JTable table) {
this.tableModel = (DefaultTableModel) table.getModel();
this.tableHeader = table.getTableHeader();
selectBox = new JCheckBox(tableModel.getColumnName(0));
selectBox.setSelected(false);
tableHeader.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() > 0) {
// 获得选中列
int selectColumn = tableHeader.columnAtPoint(e.getPoint());
if (selectColumn == 0) {
boolean value = !selectBox.isSelected();
selectBox.setSelected(value);
// tableModel.selectAllOrNull(value);
tableHeader.repaint();
if(value) {
for(int i=0;i<table.getRowCount();i++) {
table.setValueAt("1", i, 0);
}
}else {
for(int i=0;i<table.getRowCount();i++) {
table.setValueAt("0", i, 0);
}
}
}
}
}
});
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
// TODO Auto-generated method stub
String valueStr = (String) value;
JLabel label = new JLabel(valueStr);
label.setHorizontalAlignment(SwingConstants.CENTER); // 表头标签剧中
selectBox.setHorizontalAlignment(SwingConstants.CENTER);// 表头标签剧中
selectBox.setBorderPainted(true);
JComponent component = (column == 0) ? selectBox : label;
component.setForeground(tableHeader.getForeground());
component.setBackground(tableHeader.getBackground());
component.setFont(tableHeader.getFont());
component.setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return component;
}
}

@ -1,250 +0,0 @@
package com.langtech.plm.bg;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DbPool {
public static Connection connection = null;
public static PreparedStatement ps = null;
public static ResultSet rs = null;
private static DbPool instance = null;
public static synchronized Connection getConnection(String url, String name) {
if (instance == null) {
instance = new DbPool();
}
return instance._getConnection(url, name);
}
private Connection _getConnection(String url, String name) {
try {
String sDBDriver = null;
String sConnection = null;
String sUser = null;
String sPassword = null;
Properties p = new Properties();
// InputStream is = getClass().getResourceAsStream(
// "/sqlconn.properties");
// p.load(is);
sDBDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
sConnection = "jdbc:sqlserver://" + url + ":1433; DatabaseName=" + name;// p.getProperty("Connection", "2");
sUser = "infodba";// p.getProperty("User", "");
sPassword = "infodba";// p.getProperty("Password", "");
if (sDBDriver == null || sConnection == null || sUser == null || sPassword == null) {
System.out.println("请检查数据库首选项是否配置正确");
}
Class.forName(sDBDriver);
connection = DriverManager.getConnection(sConnection, sUser, sPassword);
return connection;
} catch (Exception se) {
System.out.println(se);
}
return null;
}
public final static ResultSet read(String sql, Object[] argments) throws SQLException {
return DbPool.rs = DbPool.getPs(argments, sql).executeQuery();
}
/**
* Statement
*/
public final static PreparedStatement getPs(Object[] argments, String sql) throws SQLException {
return getPs(sql, argments);
}
/**
* Statement
*/
public final static PreparedStatement getPs(String sql, Object[] argments) throws SQLException {
DbPool.ps = DbPool.connection.prepareStatement(sql);
if (argments != null) {
for (int i = 0; i < argments.length; i++) {
DbPool.ps.setObject(i + 1, argments[i]);
}
}
return DbPool.ps;
}
/**
*
*/
public final static ResultSet read(String sql) throws SQLException {
return read(sql, null);
}
public static void executeUpdateSql(String sql) throws SQLException {
Statement st = connection.createStatement();
try {
connection.setAutoCommit(false);
// System.out.println("sql===" + sql);
int i = st.executeUpdate(sql);
} catch (SQLException e) {
System.out.println(e.getMessage());
if (st != null)
st.close();
connection.rollback();
connection.close();
} finally {
if (st != null)
st.close();
// connection.close();
}
}
public static void executeDeleteSql(String sql) throws SQLException {
Statement st = connection.createStatement();
try {
connection.setAutoCommit(false);
// System.out.println("sql===" + sql);
st.executeUpdate(sql);
connection.commit();
} catch (SQLException e) {
if (st != null)
st.close();
connection.rollback();
connection.close();
} finally {
if (st != null)
st.close();
connection.close();
}
}
/**
*
*/
public final static int write(String sql, Object[] argments) {
return update(sql, argments);
}
/**
* (Connection)
*/
public final static int update(String sql, Object[] argments) {
int i = -1;
try {
i = DbPool.getPs(argments, sql).executeUpdate();
DbPool.connection.commit();
} catch (SQLException e) {
e.printStackTrace();
} finally {
free(DbPool.rs, DbPool.ps);
}
return i;
}
public static ResultSet executeSelectSql(String sql) throws SQLException {
Statement st = connection.createStatement();
try {
connection.setAutoCommit(false);
// System.out.println("sql===" + sql);
rs = st.executeQuery(sql);
// conn.commit();
} catch (SQLException e) {
if (st != null)
st.close();
connection.rollback();
connection.close();
}
return rs;
}
/**
*
*/
public final static void free(ResultSet resultSet) {
free(resultSet, null, null);
}
/**
*
*/
public final static void free(Statement statement) {
free(null, statement, null);
}
/**
*
*/
public final static void free(Connection connection) {
free(null, null, connection);
}
/**
*
*/
public final static void free(ResultSet resultSet, Statement statement) {
free(resultSet, statement, null);
}
/**
*
*/
public final static void free(Statement statement, Connection connection) {
free(null, statement, connection);
}
/**
* ()
*/
public final static void free() {
free(DbPool.rs, DbPool.ps);
}
/**
* ()
*/
public final static void freeAll() {
free(DbPool.rs, DbPool.ps, DbPool.connection);
}
/**
* ()
*/
public final static void free(ResultSet resultSet, Statement statement, Connection connection) {
try {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} finally {
try {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}

@ -1,153 +0,0 @@
package com.langtech.plm.bg;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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.aif.AbstractAIFUIApplication;
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 QDRWChooseDialog extends JFrame implements ActionListener {
private JComboBox<String> objectComboBox = new JComboBox<String>();
private JButton okButton = new JButton("确定");
private JButton concelButton = new JButton("取消");
private String[] strings;
private AbstractAIFUIApplication app;
private HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
public QDRWChooseDialog(String[] strings,AbstractAIFUIApplication app) {
// TODO Auto-generated constructor stub
this.strings = strings;
this.app = app;
initUI();
}
public 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(350, 150));
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 获取屏幕尺寸
int screenWidth = screenSize.width; // 获取屏幕宽度
int screenHeight = screenSize.height; // 获取屏幕高度
int x = (screenWidth - 350) / 2; // 计算Frame的左上角x坐标
int y = (screenHeight - 150) / 2; // 计算Frame的左上角y坐标
this.setLocation(x, y); // 设置Frame的位置
// this.setLocationRelativeTo(null);
this.createActionEvent();
this.pack();
// this.validate();
this.setVisible(true);
// this.setAlwaysOnTop(true);
//设置下拉值
for (int i = 0; i < strings.length; i++) {
String[] split = strings[i].split("=");
objectComboBox.addItem(split[0]);
ArrayList<String> list = new ArrayList<String>();
list.add(split[1]);
list.add(split[2]);
list.add(split[3]);
map.put(split[0], list);
}
} 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)) {
String selectedItem = (String) objectComboBox.getSelectedItem();
ArrayList<String> arrayList = map.get(selectedItem);
new QDRWDialog((TCSession)app.getSession(),arrayList.get(0),arrayList.get(1),selectedItem,arrayList.get(2));
System.out.println("newnewnwenew");
this.dispose();
} 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);
topPanel.add("3.1.center", new JLabel(""));
topPanel.add("4.1.center", new JLabel(""));
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("5.2.left.center", objectComboBox);
return topPanel;
}
}

@ -1,936 +0,0 @@
package com.langtech.plm.bg;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.RowSorter;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.ListOfValuesInfo;
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.TCComponentListOfValues;
import com.teamcenter.rac.kernel.TCComponentListOfValuesType;
import com.teamcenter.rac.kernel.TCComponentProcessType;
import com.teamcenter.rac.kernel.TCComponentProject;
import com.teamcenter.rac.kernel.TCComponentTaskTemplate;
import com.teamcenter.rac.kernel.TCComponentTaskTemplateType;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCProperty;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.DateButton;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
import com.teamcenter.soa.client.model.LovValue;
public class QDRWDialog extends JFrame implements ActionListener {
private Map<String, JTextField> textMap = new HashMap<>();
private TCSession session;
private JTable table;
private String[] header;
private ArrayList<String> gsPrefTopLine;
private LinkedHashMap<Integer, String> colorMap = new LinkedHashMap<Integer, String>();
private LinkedHashMap<String, String> gsPrefMap = new LinkedHashMap<String, String>();
private LinkedHashMap<String, String> fieldsMap = new LinkedHashMap<String, String>();
private LinkedHashMap<String, String> cfdjPref = new LinkedHashMap<String, String>();
private LinkedHashMap<Integer, String> lovPositionMap = new LinkedHashMap<Integer, String>();
private LinkedHashMap<String, Integer> positionFieldMap = new LinkedHashMap<String, Integer>();
private LinkedHashMap<Integer, Integer> widtheMap = new LinkedHashMap<Integer, Integer>();
// public static final int[] HEADERWIDTH = new int[] { 50, 100, 200, 200, 100,
// 100, 80, 80, 100, 150, 150, 150, 150,150, 150, 150, 150, 150, 150 };
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
private DefaultTableModel dtm1;
private JComboBox<String> cfdJComboBox = new JComboBox<String>();
private DateButton jhksB;
private DateButton jhksS;
private DateButton jhwcB;
private DateButton jhwcS;
private JTextField idField = new JTextField(30);
private JButton ssButton = new JButton("搜索");
private JButton ckButton = new JButton("查看任务分配表");
private JButton qrqdButton = new JButton("确认启动");
private JButton gbButton = new JButton("关闭");
private static ArrayList<String> dateConnList = new ArrayList<String>();
private String pref;
private String taskName;
private ArrayList<Integer> canWriteColume = new ArrayList<Integer>();
private ArrayList<String> sqlField;
private QDRWTableColorRender QDRWTableColorRender;
LinkedHashMap<String, LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>> valueMap;
private Connection conn = null;
private String tamplateName;
private String chooseType;
public QDRWDialog(TCSession session, String pref, String taskName,String tamplateName,String chooseType) {
// TODO Auto-generated constructor stub
this.session = session;
this.pref = pref;
this.taskName = taskName;
this.tamplateName = tamplateName;
this.chooseType = chooseType;
initUI();
}
public void initUI() {
// TODO Auto-generated method stub
this.setTitle("任务分配表");
this.setLayout(new BorderLayout());
String[] prefs = session.getPreferenceService().getStringValues(pref);
if (prefs == null || prefs.length <= 0) {
MessageBox.post("首选项“" + pref + "”未配置!", "提示 ", MessageBox.INFORMATION);
return;
}
String[] split2 = prefs[0].split(";");
for (int j = 0; j < split2.length; j++) {
String[] split3 = split2[j].split("=");
positionFieldMap.put(split3[0], j);
if (split3.length == 3) {
if (split3[1].contains("#")) {
String[] split = split3[1].split("#");
fieldsMap.put(split3[0], split[1]);
colorMap.put(j + 1, split3[0]);
} else {
fieldsMap.put(split3[0], split3[1]);
}
if (split3[2].contains("%")) {
String[] split4 = split3[2].split("%");
widtheMap.put(j + 1, Integer.parseInt(split4[0]));
canWriteColume.add(j);
} else {
widtheMap.put(j + 1, Integer.parseInt(split3[2]));
}
}
else if (split3.length == 4) {
fieldsMap.put(split3[0], split3[1]);
// System.out.println("split3[2]========" + split3[2]);
if (split3[2].contains("%")) {
String[] split4 = split3[2].split("%");
widtheMap.put(j, Integer.parseInt(split4[0]));
// System.out.println("split4[0]========" + split4[0]);
canWriteColume.add(j);
} else {
widtheMap.put(j, Integer.parseInt(split3[2]));
}
lovPositionMap.put(j, split3[3]);
}
}
System.out.println("canWriteColume=====" + canWriteColume.size());
System.out.println("fieldsMap=====" + fieldsMap);
System.out.println("positionMap=====" + lovPositionMap);
System.out.println("widtheMap=====" + widtheMap);
Collection<String> valuesCollection = fieldsMap.values();
// 创建一个新的列表来保存所有的值
List<String> valuesList = new ArrayList<>(valuesCollection);
// 在列表的第一个位置插入新的 String 值
valuesList.add(0, "");
// 如果需要,可以将列表转回集合
Collection<String> updatedValuesCollection = valuesList;
// 将集合转换为数组
header = updatedValuesCollection.toArray(new String[0]);
System.out.println("header===============" + header.length);
JPanel topPanel = getTopPanel();
JScrollPane pane = getTablePanel();
pane.setBorder(BorderFactory.createTitledBorder(""));
// JPanel btnPanel = getRightPanel();
JPanel bottomPane = getBottomPanel();
this.add(topPanel, BorderLayout.NORTH);
this.add(pane, BorderLayout.CENTER);
this.add(bottomPane, BorderLayout.SOUTH);
this.createActionEvent();
this.pack();
this.setPreferredSize(new Dimension(1850, 1000));
this.validate();
this.setVisible(true);
// 设置窗口在屏幕中心
// Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
// int x = (int) screensize.getWidth() / 2 - window.getWidth() / 2;
// int y = (int) screensize.getHeight() / 2 - window.getHeight() / 2;
this.setLocationRelativeTo(null);
// 设置列宽
TableColumnModel colModel = table.getColumnModel();
for (Entry<Integer, Integer> map : widtheMap.entrySet()) {
colModel.getColumn(map.getKey()).setPreferredWidth(map.getValue());
}
}
public void createActionEvent() {
this.ssButton.addActionListener(this);
this.ckButton.addActionListener(this);
this.gbButton.addActionListener(this);
this.qrqdButton.addActionListener(this);
}
// 查询部分
private JPanel getTopPanel() {
// TODO Auto-generated method stub
JPanel topPanel = new JPanel();
topPanel.setLayout(new PropertyLayout());
jhksB = new DateButton(null, "yyyy-MM-dd", false, false, false);
jhksB.setDate("未设置日期");
jhksS = new DateButton(null, "yyyy-MM-dd", false, false, false);
jhksS.setDate("未设置日期");
jhwcB = new DateButton(null, "yyyy-MM-dd", false, false, false);
jhwcB.setDate("未设置日期");
jhwcS = new DateButton(null, "yyyy-MM-dd", false, false, false);
jhwcS.setDate("未设置日期");
topPanel.add("1.1.left.center", new JLabel("ID "));
topPanel.add("1.2.left.center", idField);
topPanel.add("1.3.left.center", new JLabel(" 计划开始晚于 "));
topPanel.add("1.4.left.center", jhksB);
topPanel.add("1.5.left.center", new JLabel(" 计划开始早于 "));
topPanel.add("1.6.left.center", jhksS);
topPanel.add("1.7.left.center", new JLabel(" 计划完成晚于 "));
topPanel.add("1.8.left.center", jhwcB);
topPanel.add("1.9.left.center", new JLabel(" 计划完成早于 "));
topPanel.add("1.10.left.center", jhwcS);
topPanel.add("2.1.left.center", new JLabel(" "));
return topPanel;
}
// 查询部分
private JPanel getBottomPanel() {
// TODO Auto-generated method stub
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new PropertyLayout());
bottomPanel.add("1.1.left.center", new JLabel(" "));
bottomPanel.add("1.2.left.center", ssButton);
bottomPanel.add("1.3.left.center", new JLabel(" "));
bottomPanel.add("1.4.left.center", ckButton);
bottomPanel.add("1.5.left.center", new JLabel(" "));
bottomPanel.add("1.6.left.center", qrqdButton);
bottomPanel.add("1.7.left.center", new JLabel(" "));
bottomPanel.add("1.8.left.center", gbButton);
return bottomPanel;
}
private JScrollPane getTablePanel() {
// TODO Auto-generated method stub
table = getjTable(null, null, header, null, false);
table.setRowHeight(30);
// table.setPreferredSize(new Dimension(1500,400));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // 设置表格的自动调整模式为关闭自动调整
// table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//设置JTable的列宽随着列表内容的大小进行调整
// table.setPreferredSize(new Dimension(1200,400));
// 设置自定义渲染器
QDRWTableColorRender = new QDRWTableColorRender();
table.setDefaultRenderer(Object.class, QDRWTableColorRender);
JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
table.getTableHeader().setDefaultRenderer(new CheckHeaderCellRenderer(table));
table.getColumnModel().getColumn(0).setCellRenderer(new TableCellCheckboxRenderer(table));
// for (Entry<Integer, String> map : lovPositionMap.entrySet()) {
// JComboBox<String> jComboBox = new JComboBox<String>();
// String value = map.getValue();
// if(value.contains(",")) {
// String[] split = value.split(",");
// for (int i = 0; i < split.length; i++) {
// jComboBox.addItem(split[i]);
// }
// }else {
// jComboBox.addItem(value);
// }
// table.getColumnModel().getColumn(map.getKey()).setCellEditor(new DefaultCellEditor(jComboBox));
// }
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// 添加鼠标监听器
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 || e.getClickCount() == 1) {
// TODO Auto-generated method stub
int selectColumn = table.getTableHeader().columnAtPoint(e.getPoint());
int selectedRow = table.rowAtPoint(e.getPoint());
if (selectColumn == 0) {
Object valueAt = table.getValueAt(selectedRow, selectColumn);
if (valueAt.toString().equals("1")) {
table.setValueAt("0", selectedRow, selectColumn);
} else {
table.setValueAt("1", selectedRow, selectColumn);
}
}
}
}
});
}
});
pane.setPreferredSize(new Dimension(1800, 850));
pane.setViewportView(table);// 为scrollPane指定显示对象为table
return pane;
}
/***
* Jtable
*
* @param partsTable
* @param dtm
* @param titleNames
* @param values
* @return
*/
public JTable getjTable(JTable partsTable, DefaultTableModel dtm, Object[] titleNames, Object[][] values,
Boolean isTable2) {
// int simpleLen = 100;
// int totleLen = 1000;
if (partsTable == null) {
partsTable = new JTable(this.getTableModel(dtm, titleNames, values));
partsTable.setRowHeight(20);
partsTable.getTableHeader().setReorderingAllowed(false);
partsTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(partsTable.getModel());
partsTable.setRowSorter(sorter);
// for (int i = 0; i < titleNames.length; i++) {
// if(i==2) {
// partsTable.getColumnModel().getColumn(i).setPreferredWidth(200);
// }else {
// partsTable.getColumnModel().getColumn(i).setPreferredWidth(120);
// }
//
// }
}
return partsTable;
}
public DefaultTableModel getTableModel(DefaultTableModel dtm, Object[] titleNames, Object[][] values) {
dtm1 = null;
if (dtm == null) {
dtm1 = new DefaultTableModel(values, titleNames) {
@Override
public boolean isCellEditable(int row, int column) {
if (column == 0) {
return true;
} else {
return false;
}
}
};
}
return dtm1;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object source = e.getSource();
System.out.println("source==>+" + source);
if (source.equals(this.gbButton)) {
dispose();
} else if (source.equals(this.ckButton)) {
int selectedRow = table.getSelectedRow();
if (selectedRow < 0) {
MessageBox.post("请选择某一行!", "提示", 2);
}
String selectId = (String) table.getValueAt(selectedRow, 1);
String selectType = (String) table.getValueAt(selectedRow, 2);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
new QDRWRWFPDialog(session, selectType, selectId);
// d.setModal(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} else if (source.equals(this.qrqdButton)) {
String[] value = session.getPreferenceService().getStringValues("LD_dbinfo2");
if (value == null || value.length == 0) {
MessageBox.post("首选项LD_dbinfo2配置有误请检查。", "提示", 2);
return;
} else {
Collections.addAll(dateConnList, value);
}
conn = getConn();
int count = 0;
for (int i = 0; i < table.getRowCount(); i++) {
if (table.getValueAt(i, 0).toString().equals("1")) {
String id = table.getValueAt(i, 1).toString();
TCComponentItemRevision rev = null;
try {
System.out.println("id============="+id);
TCComponent[] tcComponentsById = getTCComponentsById(session,id);
if(tcComponentsById != null && tcComponentsById.length > 0) {
System.out.println("tcComponentsById.length============="+tcComponentsById.length);
TCComponentItem item = (TCComponentItem)tcComponentsById[0];
rev = item.getLatestItemRevision();
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>> linkedHashMap = valueMap.get(id);
for (Entry<Integer, String> map : colorMap.entrySet()) {
boolean isProsess = false;
String prefValue = map.getValue();
String[] split = prefValue.split("\\.");
ArrayList<LinkedHashMap<String, String>> arrayList = linkedHashMap.get(split[0]);
String RWXDSJ = "";
String QQRW = "";
String SFSJGG = "";
String GGPSNR = "";
for (int j = 0; j < arrayList.size(); j++) {
if (arrayList.get(j).containsKey("RWXDSJ")) {
RWXDSJ = arrayList.get(j).get("RWXDSJ");
}
if (arrayList.get(j).containsKey("QQRW")) {
QQRW = arrayList.get(j).get("QQRW");
}
if (arrayList.get(j).containsKey("SFSJGG")) {
SFSJGG = arrayList.get(j).get("SFSJGG");
}
if (arrayList.get(j).containsKey("GGPSNR")) {
GGPSNR = arrayList.get(j).get("GGPSNR");
}
}
System.out.println("RWXDSJ======="+RWXDSJ);
System.out.println("QQRW======="+QQRW);
System.out.println("SFSJGG======="+SFSJGG);
if (RWXDSJ == null || RWXDSJ.isEmpty()) {
if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("否")) {
isProsess = true;
} else if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("是")
&& (QQRW == null || QQRW.isEmpty())) {
isProsess = true;
} else if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("是")
&& (QQRW != null && !QQRW.isEmpty())) {
// 找前驱任务
ArrayList<Integer> judgeList = new ArrayList<Integer>();
dgRW(linkedHashMap, QQRW,judgeList);
if(judgeList.size() == 0) {
isProsess = true;
}
}
}
System.out.println("taskName========="+taskName);
System.out.println("isProsess========"+isProsess);
if(isProsess && taskName != null && !taskName.isEmpty() && rev != null) {
try {
CreateProcess(session,rev,taskName,GGPSNR,split[0],id);
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
count++;
}
}
if (count == 0) {
MessageBox.post("请勾选数据!", "提示 ", MessageBox.INFORMATION);
if(conn != null) {
try {
conn.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
return;
}
if(conn != null) {
try {
conn.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
MessageBox.post("启动完成!", "提示 ", MessageBox.INFORMATION);
} else if (source.equals(this.ssButton)) {
table.removeAll();
dtm1.setRowCount(0);
String condition = "";
String ids = idField.getText();
String jhksBStr = jhksB.getText();
String jhksSStr = jhksS.getText();
String jhwcBStr = jhwcB.getText();
String jhwcSStr = jhwcS.getText();
System.out.println("jhksBStr=======" + jhksBStr);
if (!jhksBStr.contains("未设置")) {
condition += "and JHKS >= '" + jhksBStr + "' ";
}
if (!jhksSStr.contains("未设置")) {
condition += "and JHKS <= '" + jhksSStr + "' ";
}
if (!jhwcBStr.contains("未设置")) {
condition += "and JHJS >= '" + jhwcBStr + "' ";
}
if (!jhwcSStr.contains("未设置")) {
condition += "and JHJS <= '" + jhwcSStr + "' ";
}
if (ids != null && !ids.isEmpty()) {
if (ids.contains(";")) {
String[] split = ids.split(";");
StringBuilder sqlIn = new StringBuilder();
sqlIn.append("(");
for (int i = 0; i < split.length; i++) {
sqlIn.append("'" + split[i] + "',");
}
// 去掉最后一个,
sqlIn.setLength(sqlIn.length() - 1);
sqlIn.append(")");
System.out.println("sqlIn======================" + sqlIn.toString());
condition += "and ID IN " + sqlIn.toString();
} else {
condition += "and ID='" + ids + "' ";
}
}
String[] value = session.getPreferenceService().getStringValues("LD_dbinfo2");
if (value == null || value.length == 0) {
MessageBox.post("首选项LD_dbinfo2配置有误请检查。", "提示", 2);
return;
} else {
Collections.addAll(dateConnList, value);
}
sqlField = new ArrayList<String>();
Set<String> keySet = fieldsMap.keySet();
String fieldsSql = "";
for (String string : keySet) {
String[] split = string.split("\\.");
fieldsSql += split[1] + ",";
sqlField.add(split[1]);
}
fieldsSql = fieldsSql.substring(0, fieldsSql.length() - 1);
System.out.println("fieldsSql==========" + fieldsSql);
//System.out.println("condition===================" + condition);
if (condition == null || condition.isEmpty()) {
MessageBox.post("请填写条件!", "提示", 2);
return;
}
String sqlIdString = "SELECT ID FROM LY_CHANGETASSKFORM_DETAILS where TEMPLATENAME = '"+tamplateName+ "' and OBJECTTYPE = '"+ chooseType + "' " + condition;
System.out.println("sqlIdString=========" + sqlIdString);
conn = getConn();
PreparedStatement stmt = null;
String selectIds = "";
String lastCondition = "";
// 查ID
try {
stmt = conn.prepareStatement(sqlIdString);
ResultSet result = stmt.executeQuery();
while (result.next()) {
String id = result.getString("ID");
if (!selectIds.contains(id)) {
selectIds += id + ";";
}
}
if (selectIds != null && !selectIds.isEmpty()) {
if (selectIds.contains(";")) {
String[] split = selectIds.split(";");
StringBuilder sqlIn = new StringBuilder();
sqlIn.append("(");
for (int i = 0; i < split.length; i++) {
sqlIn.append("'" + split[i] + "',");
}
// 去掉最后一个,
sqlIn.setLength(sqlIn.length() - 1);
sqlIn.append(")");
//System.out.println("sqlIn======================" + sqlIn.toString());
lastCondition += "and ID IN " + sqlIn.toString();
} else {
lastCondition += "and ID='" + ids + "' ";
}
}
} catch (SQLException e1) {
e1.printStackTrace();
}
// 存数据的map
valueMap = new LinkedHashMap<String, LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>>();
// String sqlString = "SELECT " + fieldsSql + " FROM LY_CHANGETASSKFORM_DETAILS
// where 1=1 "+lastCondition;
String sqlString = "SELECT * FROM LY_CHANGETASSKFORM_DETAILS where 1=1 " + lastCondition;
System.out.println("sqlString======" + sqlString);
if(lastCondition.isEmpty()) {
MessageBox.post("未查到数据!", "提示", 2);
return;
}else {
try {
stmt = conn.prepareStatement(sqlString);
ResultSet result = stmt.executeQuery();
ResultSetMetaData metaData = result.getMetaData();
int columnCount = metaData.getColumnCount();
while (result.next()) {
String id = result.getString("ID");
String xh = result.getString("XH");
LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>> tempMap1 = null;
if (valueMap.containsKey(id)) {
tempMap1 = valueMap.get(id);
} else {
tempMap1 = new LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>();
}
ArrayList<LinkedHashMap<String, String>> tempList = new ArrayList<LinkedHashMap<String, String>>();
for (int i = 1; i <= columnCount; i++) {
// 获取列名
String columnName = metaData.getColumnName(i); // 获取实际的列名
// 获取列的值
String columnValue = result.getString(i); // 使用 getObject() 获取列的值
LinkedHashMap<String, String> fieldMap = new LinkedHashMap<String, String>();
fieldMap.put(columnName,
columnValue == null ? columnValue : validateAndFormatDate(columnValue));
tempList.add(fieldMap);
}
tempMap1.put(xh, tempList);
valueMap.put(id, tempMap1);
}
//System.out.println(valueMap.toString());
QDRWTableColorRender.valueMap = valueMap;
QDRWTableColorRender.colorMap = colorMap;
for (Entry<String, LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>> map : valueMap
.entrySet()) {
ArrayList<String> tableList = new ArrayList<String>();
tableList.add("0");
for (Entry<String, String> tempMap : fieldsMap.entrySet()) {
String pref = tempMap.getKey();
String[] split = pref.split("\\.");
LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>> value2 = map.getValue();
ArrayList<LinkedHashMap<String, String>> arrayList = value2.get(split[0]);
if (arrayList != null) {
for (int i = 0; i < arrayList.size(); i++) {
LinkedHashMap<String, String> linkedHashMap = arrayList.get(i);
if (linkedHashMap.containsKey(split[1])) {
tableList.add(linkedHashMap.get(split[1]));
}
}
}
}
dtm1.addRow(tableList.toArray(new Object[0]));
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
// 获取数据库连接
public static Connection getConn() {
Connection conn = null;
try {
conn = DbPool.getConnection(dateConnList.get(0), dateConnList.get(1));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public String validateAndFormatDate(String input) {
// 定义输入和输出的日期格式
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try {
// 尝试解析输入的日期时间字符串
LocalDateTime dateTime = LocalDateTime.parse(input, inputFormatter);
// 转换为只包含日期的LocalDate对象
LocalDate date = dateTime.toLocalDate();
// 格式化结果日期为字符串
return date.format(outputFormatter);
} catch (DateTimeParseException e) {
// 如果解析失败,说明输入不符合指定格式,返回原始字符串
return input;
}
}
// // 自定义渲染器
// static class CustomColorRenderer extends DefaultTableCellRenderer {
// public LinkedHashMap<String,LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>> valueMap;
// public LinkedHashMap<Integer, String> colorMap;
//
//
// @Override
// public Component getTableCellRendererComponent(JTable table, Object value,
// boolean isSelected, boolean hasFocus,
// int row, int column) {
// // 调用父类方法获取默认渲染组件
// Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
//
// String id = (String)table.getValueAt(row, 1);
// LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>> linkedHashMap = valueMap.get(id);
// System.out.println("colorMap======"+colorMap.toString());
// for (Entry<Integer, String> map : colorMap.entrySet()) {
// Integer columnColor = map.getKey();
// if(column == 4 && row == 1) {
// System.out.println("columnColor========"+columnColor);
// String prefValue = map.getValue();
// String[] split = prefValue.split("\\.");
// ArrayList<LinkedHashMap<String, String>> arrayList = linkedHashMap.get(split[0]);
// String sjwcsj = "";
// String jhks = "";
// String jhjs = "";
//
// for (int i = 0; i < arrayList.size(); i++) {
//
// if(arrayList.get(i).containsKey("SJWCSJ")) {
// sjwcsj = arrayList.get(i).get("SJWCSJ");
// }
// if(arrayList.get(i).containsKey("JHKS")) {
// jhks = arrayList.get(i).get("JHKS");
// }
// if(arrayList.get(i).containsKey("JHJS")) {
// jhjs = arrayList.get(i).get("JHJS");
// }
// }
// System.out.println("sjwcsj========"+sjwcsj);
// System.out.println("jhks========"+jhks);
// System.out.println("jhjs========"+jhjs);
// if(sjwcsj != null && !sjwcsj.isEmpty()) {
// c.setBackground(Color.GREEN);
// }else {
// if(jhjs != null && !jhjs.isEmpty() && jhks != null && !jhks.isEmpty()) {
// if(isNotAfterCurrentDate(jhjs)) {
// c.setBackground(Color.RED);
//
//
// System.out.println("row==="+row+"===column==="+column);
// }else {
// //setBackground(Color.YELLOW);
// c.setBackground(Color.YELLOW);
// }
// }
// }
// }
//
// }
//
//
// return c;
// }
// }
//
public void dgRW(LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>> linkedHashMap, String xhs,
ArrayList<Integer> judgeList) {
if (xhs.contains(",")) {
String[] split = xhs.split(",");
for (int z = 0; z < split.length; z++) {
ArrayList<LinkedHashMap<String, String>> arrayList = linkedHashMap.get(split[z]);
String SJWCSJ = "";
String SFSJGG = "";
String QQRW = "";
for (int i = 0; i < arrayList.size(); i++) {
if (arrayList.get(i).containsKey("SFSJGG")) {
SFSJGG = arrayList.get(i).get("SFSJGG");
}
if (arrayList.get(i).containsKey("SJWCSJ")) {
SJWCSJ = arrayList.get(i).get("SJWCSJ");
}
if (arrayList.get(i).containsKey("QQRW")) {
QQRW = arrayList.get(i).get("QQRW");
}
}
System.out.println("---SJWCSJ=======" + SFSJGG);
System.out.println("---SFSJGG=======" + SFSJGG);
System.out.println("---QQRW=======" + SFSJGG);
if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("是")) {
if (SJWCSJ == null || SJWCSJ.isEmpty()) {
judgeList.add(0);
}
} else if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("否") && QQRW != null
&& !QQRW.isEmpty()) {
dgRW(linkedHashMap, QQRW, judgeList);
}
}
} else {
ArrayList<LinkedHashMap<String, String>> arrayList = linkedHashMap.get(xhs);
String SJWCSJ = "";
String SFSJGG = "";
String QQRW = "";
for (int i = 0; i < arrayList.size(); i++) {
if (arrayList.get(i).containsKey("SFSJGG")) {
SFSJGG = arrayList.get(i).get("SFSJGG");
}
if (arrayList.get(i).containsKey("SJWCSJ")) {
SJWCSJ = arrayList.get(i).get("SJWCSJ");
}
if (arrayList.get(i).containsKey("QQRW")) {
QQRW = arrayList.get(i).get("QQRW");
}
}
System.out.println("---SJWCSJ=======" + SJWCSJ);
System.out.println("---SFSJGG=======" + SFSJGG);
System.out.println("---QQRW=======" + QQRW);
if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("是")) {
if (SJWCSJ == null || SJWCSJ.isEmpty()) {
judgeList.add(0);
}
} else if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("否") && QQRW != null && !QQRW.isEmpty()) {
dgRW(linkedHashMap, QQRW, judgeList);
}
}
}
public void CreateProcess(TCSession session, TCComponent target, String processName, String rwmc,String xh,String id)
throws TCException {
try {
TCComponentProcessType processType = (TCComponentProcessType) session.getTypeComponent("Job");
TCComponentTaskTemplateType taskTemplateType = (TCComponentTaskTemplateType) session
.getTypeComponent("EPMTaskTemplate");
TCComponentTaskTemplate taskTemplate = taskTemplateType.find(processName, 0);
if (taskTemplate != null) {
String name = target.getProperty("object_string");
TCComponent create = processType.create(processName + "" + name + "_" + rwmc, "", taskTemplate,
new TCComponent[] { target }, new int[] { 1 });
//System.out.println("uid===================" + create.getUid());
//System.out.println("type==" + create.getType());
//System.out.println("type==" + create.getStringProperty("object_type"));
String updateSql = "update LY_CHANGETASSKFORM_DETAILS set WFUID = '"+create.getUid()+"' where ID = '"+id+"' and XH = '"+xh+"'";
try {
PreparedStatement prepareStatement = conn.prepareStatement(updateSql);
boolean execute = prepareStatement.execute();
System.out.println("execute=="+execute+"|updateSql===="+updateSql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (TCException var7) {
var7.printStackTrace();
throw var7;
}
}
public static TCComponent[] getTCComponentsById(TCSession session, String id) throws Exception {
return session.search("零组件...", new String[] { "零组件 ID" }, new String[] { id });
}
}

@ -1,50 +0,0 @@
package com.langtech.plm.bg;
import javax.swing.SwingUtilities;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.teamcenter.rac.aif.AbstractAIFUIApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
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;
public class QDRWHandler extends AbstractHandler {
private AbstractAIFUIApplication app;
private TCSession session;
// private InterfaceAIFComponent target;
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
app = AIFUtility.getCurrentApplication();
session = (TCSession) app.getSession();
String[] templates = session.getPreferenceService().getStringValues("Connor_TaskFormSummary_Config");
if(templates != null && templates.length > 0) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
new QDRWChooseDialog(templates,app);
//d.setModal(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}else {
MessageBox.post("请配置首选项“Connor_TaskFormSummary_Config”", "提示 ", MessageBox.INFORMATION);
}
return null;
}
}

@ -1,639 +0,0 @@
package com.langtech.plm.bg;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.RowSorter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.ListOfValuesInfo;
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.TCComponentListOfValues;
import com.teamcenter.rac.kernel.TCComponentListOfValuesType;
import com.teamcenter.rac.kernel.TCComponentProject;
import com.teamcenter.rac.kernel.TCComponentUser;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCProperty;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.DateButton;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
import com.teamcenter.soa.client.model.LovValue;
import k.util.KOrgDialog;
public class QDRWRWFPDialog extends JFrame implements ActionListener {
private Map<String, JTextField> textMap = new HashMap<>();
private TCSession session;
private JTable table;
private String[] header;
private ArrayList<String> gsPrefTopLine;
private LinkedHashMap<String, String> gsPrefMap = new LinkedHashMap<String, String>();
private LinkedHashMap<String, String> fieldsMap = new LinkedHashMap<String, String>();
private LinkedHashMap<String, String> cfdjPref = new LinkedHashMap<String, String>();
private LinkedHashMap<Integer, String> lovPositionMap = new LinkedHashMap<Integer, String>();
private LinkedHashMap<String, Integer> positionFieldMap = new LinkedHashMap<String, Integer>();
private LinkedHashMap<Integer, Integer> widtheMap = new LinkedHashMap<Integer, Integer>();
// public static final int[] HEADERWIDTH = new int[] { 50, 100, 200, 200, 100,
// 100, 80, 80, 100, 150, 150, 150, 150,150, 150, 150, 150, 150, 150 };
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
private DefaultTableModel dtm1;
private JButton yyButton = new JButton("应用");
private JButton gbButton = new JButton("关闭");
private JComboBox<String> cfdJComboBox = new JComboBox<String>();
private DateButton cfsjButton;
private JButton tzsjButton = new JButton("调整时间");
private static ArrayList<String> dateConnList = new ArrayList<String>();
private String type;
private String id;
private String objectString;
private boolean readOnly;
private ArrayList<Integer> canWriteColume = new ArrayList<Integer>();
private ArrayList<Integer> choosePersonColume = new ArrayList<Integer>();
public QDRWRWFPDialog(TCSession session, String type, String id) {
// TODO Auto-generated constructor stub
this.session = session;
this.type = type;
this.id = id;
//this.objectString = objectString;
//this.readOnly = readOnly;
initUI();
}
public void initUI() {
// TODO Auto-generated method stub
yyButton.setEnabled(false);
tzsjButton.setEnabled(false);
this.setTitle(objectString+"变更任务分配表");
this.setLayout(new BorderLayout());
String[] cfdj = session.getPreferenceService().getStringValues("Connor_ChangeTaskForm_TriggerLevelMapping");
if (cfdj == null || cfdj.length <= 0) {
MessageBox.post("请配置首选项“Connor_ChangeTaskForm_TriggerLevelMapping”", "提示 ", MessageBox.INFORMATION);
return;
}
for (int i = 0; i < cfdj.length; i++) {
String[] split = cfdj[i].split("=");
if(split[0].equals(type)) {
String[] split2 = split[1].split(";");
for (int j = 0; j < split2.length; j++) {
String[] split3 = split2[j].split("\\|");
cfdjPref.put(split3[0],split3[1]);
cfdJComboBox.addItem(split3[0]);
}
break;
}
}
//获取首选项匹配的类型
String[] fields = session.getPreferenceService().getStringValues("Connor_ECRECNForm_Datbase_Config");
if (fields == null || fields.length <= 0) {
MessageBox.post("请配置首选项“Connor_ECRECNForm_Datbase_Config”", "提示 ", MessageBox.INFORMATION);
return;
}
for (int i = 0; i < fields.length; i++) {
if(fields[i].contains(type)) {
String[] split = fields[i].split("\\|");
if(split.length == 2) {
String[] split2 = split[1].split(";");
for (int j = 0; j < split2.length; j++) {
String[] split3 = split2[j].split("=");
positionFieldMap.put(split3[0],j);
if(split3.length == 3) {
fieldsMap.put(split3[0],split3[1]);
if(split3[2].contains("%")) {
String[] split4 = split3[2].split("%");
widtheMap.put(j, Integer.parseInt(split4[0]));
canWriteColume.add(j);
}else if(split3[2].contains("#")) {
String[] split4 = split3[2].split("#");
widtheMap.put(j, Integer.parseInt(split4[0]));
choosePersonColume.add(j);
canWriteColume.add(j);
}else {
widtheMap.put(j, Integer.parseInt(split3[2]));
}
}else if(split3.length == 4) {
fieldsMap.put(split3[0],split3[1]);
System.out.println("split3[2]========"+split3[2]);
if(split3[2].contains("%")) {
String[] split4 = split3[2].split("%");
widtheMap.put(j, Integer.parseInt(split4[0]));
System.out.println("split4[0]========"+split4[0]);
canWriteColume.add(j);
}else if(split3[2].contains("#")) {
String[] split4 = split3[2].split("#");
widtheMap.put(j, Integer.parseInt(split4[0]));
choosePersonColume.add(j);
canWriteColume.add(j);
}else {
widtheMap.put(j, Integer.parseInt(split3[2]));
}
lovPositionMap.put(j,split3[3]);
}
}
}
}
}
System.out.println("choosePersonColume====="+choosePersonColume.size());
System.out.println("canWriteColume====="+canWriteColume.size());
System.out.println("fieldsMap====="+fieldsMap);
System.out.println("positionMap====="+lovPositionMap);
System.out.println("widtheMap====="+widtheMap);
if(fieldsMap.size() == 0) {
MessageBox.post("该类型未匹配到首选项!", "提示 ", MessageBox.INFORMATION);
return;
}
Collection<String> valuesCollection = fieldsMap.values();
// 将集合转换为数组
header = valuesCollection.toArray(new String[0]);
JPanel topPanel = getTopPanel();
JScrollPane pane = getTablePanel();
pane.setBorder(BorderFactory.createTitledBorder(""));
// JPanel btnPanel = getRightPanel();
JPanel bottomPane = getBottomPanel();
this.add(topPanel, BorderLayout.NORTH);
this.add(pane, BorderLayout.CENTER);
this.add(bottomPane, BorderLayout.SOUTH);
this.createActionEvent();
this.pack();
this.setPreferredSize(new Dimension(1850, 1000));
this.validate();
this.setVisible(true);
// 设置窗口在屏幕中心
// Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
// int x = (int) screensize.getWidth() / 2 - window.getWidth() / 2;
// int y = (int) screensize.getHeight() / 2 - window.getHeight() / 2;
this.setLocationRelativeTo(null);
//设置列宽
TableColumnModel colModel = table.getColumnModel();
for (Entry<Integer, Integer> map : widtheMap.entrySet()) {
colModel.getColumn(map.getKey()).setPreferredWidth(map.getValue());
}
String[] value = session.getPreferenceService().getStringValues("LD_dbinfo2");
if (value == null || value.length == 0) {
MessageBox.post("首选项LD_dbinfo2配置有误请检查。", "提示", 2);
return;
} else {
Collections.addAll(dateConnList, value);
}
Set<String> keySet = fieldsMap.keySet();
String fieldsSql = "";
for (String string : keySet) {
fieldsSql += string + ",";
}
fieldsSql = fieldsSql.substring(0, fieldsSql.length() - 1);
System.out.println("fieldsSql=========="+fieldsSql);
String sqlString = "SELECT " + fieldsSql + " FROM LY_CHANGETASSKFORM_DETAILS where ID='" + id + "'";
System.out.println(sqlString);
Connection conn = getConn();
PreparedStatement stmt = null;
try{
stmt = conn.prepareStatement(sqlString);
ResultSet result = stmt.executeQuery();
while (result.next()) {
ArrayList<String> arList = new ArrayList<String>();
for (int i = 0; i < fieldsMap.size(); i++) {
//System.out.println("result.getString(i+1)==========="+result.getString(i+1));
arList.add(result.getString(i+1) == null? result.getString(i+1) : validateAndFormatDate(result.getString(i+1)));
}
dtm1.addRow(arList.toArray(new Object[0]));
}
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
if(stmt != null) {
stmt.close();
}
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void createActionEvent() {
this.yyButton.addActionListener(this);
this.gbButton.addActionListener(this);
this.tzsjButton.addActionListener(this);
}
// 查询部分
private JPanel getTopPanel() {
// TODO Auto-generated method stub
JPanel topPanel = new JPanel();
topPanel.setLayout(new PropertyLayout());
topPanel.add("1.1.left.center", new JLabel("触发等级 "));
topPanel.add("1.2.left.center", cfdJComboBox);
topPanel.add("1.3.left.center", new JLabel(" 触发时间 "));
cfsjButton = new DateButton(null, "yyyy-MM-dd", false, false, false);
cfsjButton.setDate("未设置日期");
topPanel.add("1.4.left.center", cfsjButton);
topPanel.add("1.5.left.center", new JLabel(" "));
topPanel.add("1.6.left.center", tzsjButton);
topPanel.add("2.1.left.center", new JLabel(" "));
return topPanel;
}
// 查询部分
private JPanel getBottomPanel() {
// TODO Auto-generated method stub
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new PropertyLayout());
bottomPanel.add("1.1.left.center", new JLabel(" "));
bottomPanel.add("1.2.left.center", yyButton);
bottomPanel.add("1.3.left.center", new JLabel(" "));
bottomPanel.add("1.4.left.center", gbButton);
return bottomPanel;
}
private JScrollPane getTablePanel() {
// TODO Auto-generated method stub
table = getjTable(null, null, header, null, false);
table.setRowHeight(30);
// table.setPreferredSize(new Dimension(1500,400));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // 设置表格的自动调整模式为关闭自动调整
// table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//设置JTable的列宽随着列表内容的大小进行调整
// table.setPreferredSize(new Dimension(1200,400));
JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
for (Entry<Integer, String> map : lovPositionMap.entrySet()) {
JComboBox<String> jComboBox = new JComboBox<String>();
String value = map.getValue();
if (value.contains(",")) {
String[] split = value.split(",");
for (int i = 0; i < split.length; i++) {
jComboBox.addItem(split[i]);
}
} else {
jComboBox.addItem(value);
}
table.getColumnModel().getColumn(map.getKey()).setCellEditor(new DefaultCellEditor(jComboBox));
}
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 || e.getClickCount() == 1) { // 判断是否双击并且是在第二列
int row = table.rowAtPoint(e.getPoint());
int column = table.columnAtPoint(e.getPoint());
System.out.println("column========"+column);
if (choosePersonColume.contains(column)) {
System.out.println("1111111111111111111111111111111");
try {
TCComponentUser user = new KOrgDialog("").getUser();
System.out.println("user============"+user.getUserName());
table.setValueAt(user.getUserName()+"("+user.getUserId()+")", row, column);
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
});
pane.setPreferredSize(new Dimension(1800, 850));
pane.setViewportView(table);// 为scrollPane指定显示对象为table
return pane;
}
/***
* Jtable
*
* @param partsTable
* @param dtm
* @param titleNames
* @param values
* @return
*/
public JTable getjTable(JTable partsTable, DefaultTableModel dtm, Object[] titleNames, Object[][] values,
Boolean isTable2) {
// int simpleLen = 100;
// int totleLen = 1000;
if (partsTable == null) {
partsTable = new JTable(this.getTableModel(dtm, titleNames, values));
partsTable.setRowHeight(20);
partsTable.getTableHeader().setReorderingAllowed(false);
partsTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(partsTable.getModel());
partsTable.setRowSorter(sorter);
// for (int i = 0; i < titleNames.length; i++) {
// if(i==2) {
// partsTable.getColumnModel().getColumn(i).setPreferredWidth(200);
// }else {
// partsTable.getColumnModel().getColumn(i).setPreferredWidth(120);
// }
//
// }
}
return partsTable;
}
public DefaultTableModel getTableModel(DefaultTableModel dtm, Object[] titleNames, Object[][] values) {
dtm1 = null;
if (dtm == null) {
dtm1 = new DefaultTableModel(values, titleNames) {
@Override
public boolean isCellEditable(int row, int column) {
if (canWriteColume.size() > 0) {
for (int i = 0; i < canWriteColume.size(); i++) {
if (canWriteColume.get(i) == column) {
return true;
}
}
}
return false;
}
};
}
return dtm1;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object source = e.getSource();
System.out.println("source==>+" + source);
if (source.equals(this.gbButton)) {
dispose();
} else if (source.equals(this.yyButton)) {
// 保存数据
Connection conn = getConn();
PreparedStatement stmt = null;
//遍历一遍判断是否涉及更改
Integer sfsjgg = positionFieldMap.get("SFSJGG");
for (int i = 0; i < table.getRowCount(); i++) {
String valueAt = (String)table.getValueAt(i, sfsjgg);
System.out.println("valueAt============="+valueAt);
if(valueAt == null || valueAt.isEmpty()) {
int row = i+1;
MessageBox.post("第"+row+"行的是否涉及变更未填写!", "提示", 2);
return;
}
}
for (int i = 0; i < table.getRowCount(); i++) {
StringBuilder updateSql = new StringBuilder();
updateSql.append("update LY_CHANGETASSKFORM_DETAILS set ");
for (Entry<String, Integer> map : positionFieldMap.entrySet()) {
updateSql.append(map.getKey());
String valueAt = (String) table.getValueAt(i, map.getValue());
if (valueAt == null || valueAt.isEmpty()) {
updateSql.append("=");
updateSql.append("null,");
} else {
updateSql.append("='");
updateSql.append(table.getValueAt(i, map.getValue()));
updateSql.append("',");
}
}
// 去掉最后一个,
updateSql.deleteCharAt(updateSql.length() - 1);
updateSql.append(" where ID='" + id + "' and XH='" + table.getValueAt(i, 0) + "'");
try {
stmt = conn.prepareStatement(updateSql.toString());
System.out.println("updateSql=========" + updateSql.toString());
stmt.execute();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
MessageBox.post("应用完成!", "提示", 2);
} else if (source.equals(this.tzsjButton)) {
gsPrefTopLine = new ArrayList<String>();
String selectedItem = (String) cfdJComboBox.getSelectedItem();
if (selectedItem == null || selectedItem.isEmpty()) {
MessageBox.post("请选择触发等级!", "提示", 2);
return;
}
Date date = cfsjButton.getDate();
if (date == null) {
MessageBox.post("请选择触发时间!", "提示", 2);
return;
}
String cfsjDate = dateFormat.format(date);
String pref = cfdjPref.get(selectedItem);
if (pref == null || pref.isEmpty()) {
MessageBox.post("未配置触发等级相关的首选项!", "提示", 2);
return;
}
String[] calculateTime = session.getPreferenceService().getStringValues(pref);
if (calculateTime == null || calculateTime.length <= 0) {
MessageBox.post("请配置首选项“" + pref + "”", "提示 ", MessageBox.INFORMATION);
return;
}
for (int i = 0; i < calculateTime.length; i++) {
String[] split = calculateTime[i].split("\\|");
if (i == 0) {
for (int j = 0; j < split.length; j++) {
gsPrefTopLine.add(split[j]);
}
} else {
gsPrefMap.put(split[0], calculateTime[i]);
}
}
System.out.println(positionFieldMap + "==================positionFieldMap");
System.out.println("gsPrefTopLine----------------" + gsPrefTopLine.size());
Integer xh = positionFieldMap.get(gsPrefTopLine.get(0));
// 表里table 开始计算
for (int i = 0; i < table.getRowCount(); i++) {
String xhStr = table.getValueAt(i, xh).toString();
String gsStr = gsPrefMap.get(xhStr);
if (gsStr != null && !gsStr.isEmpty()) {
String[] split = gsStr.split("\\|");
for (int j = 1; j < gsPrefTopLine.size(); j++) {
// 如果有值
System.out.println("gsPrefTopLine.get(j)========" + gsPrefTopLine.get(j));
Integer colume = positionFieldMap.get(gsPrefTopLine.get(j));
if (colume != null) {
System.out.println(positionFieldMap.get(gsPrefTopLine.get(j))
+ "=================positionFieldMap.get(gsPrefTopLine.get(j))");
// 处理公式
String gs = split[j];
System.out.println("gs========" + gs);
if (gs.equals("N")) {
table.setValueAt(cfsjDate, i, colume);
} else {
String[] split2 = gs.split("N");
String time = calculateDate(cfsjDate, Integer.parseInt(split2[1]));
System.out.println("time============" + time);
table.setValueAt(time, i, colume);
}
}
}
}
}
// 调用应用按钮
yyButton.doClick();
MessageBox.post("调整时间完成!", "提示", 2);
}
}
// 获取数据库连接
public static Connection getConn() {
Connection conn = null;
try {
conn = DbPool.getConnection(dateConnList.get(0), dateConnList.get(1));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static String calculateDate(String dateString, int daysToAdd) {
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 解析输入的日期字符串
LocalDate date;
try {
date = LocalDate.parse(dateString, formatter);
} catch (DateTimeParseException e) {
throw new IllegalArgumentException("Invalid date format. Please use yyyy-MM-dd.", e);
}
// 增加或减少天数
LocalDate resultDate = date.plusDays(daysToAdd);
// 格式化结果日期为字符串
return resultDate.format(formatter);
}
public String validateAndFormatDate(String input) {
// 定义输入和输出的日期格式
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try {
// 尝试解析输入的日期时间字符串
LocalDateTime dateTime = LocalDateTime.parse(input, inputFormatter);
// 转换为只包含日期的LocalDate对象
LocalDate date = dateTime.toLocalDate();
// 格式化结果日期为字符串
return date.format(outputFormatter);
} catch (DateTimeParseException e) {
// 如果解析失败,说明输入不符合指定格式,返回原始字符串
return input;
}
}
}

@ -1,93 +0,0 @@
package com.langtech.plm.bg;
import java.awt.Color;
import java.awt.Component;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
import javax.swing.JTable;
public class QDRWTableColorRender extends TableColorRender {
public LinkedHashMap<String,LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>> valueMap;
public LinkedHashMap<Integer, String> colorMap;
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component renderer = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
String id = (String)table.getValueAt(row, 1);
LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>> linkedHashMap = valueMap.get(id);
//System.out.println("colorMap======"+colorMap.toString());
for (Entry<Integer, String> map : colorMap.entrySet()) {
Integer columnColor = map.getKey();
if(column == columnColor) {
//System.out.println("columnColor========"+columnColor);
String prefValue = map.getValue();
String[] split = prefValue.split("\\.");
ArrayList<LinkedHashMap<String, String>> arrayList = linkedHashMap.get(split[0]);
String sjwcsj = "";
String RWXDSJ = "";
String jhjs = "";
for (int i = 0; i < arrayList.size(); i++) {
if(arrayList.get(i).containsKey("SJWCSJ")) {
sjwcsj = arrayList.get(i).get("SJWCSJ");
}
if(arrayList.get(i).containsKey("RWXDSJ")) {
RWXDSJ = arrayList.get(i).get("RWXDSJ");
}
if(arrayList.get(i).containsKey("JHJS")) {
jhjs = arrayList.get(i).get("JHJS");
}
}
//System.out.println("sjwcsj========"+sjwcsj);
//System.out.println("jhks========"+jhks);
//System.out.println("jhjs========"+jhjs);
if(sjwcsj != null && !sjwcsj.isEmpty()) {
renderer.setBackground(Color.GREEN);
}else {
if(jhjs != null && !jhjs.isEmpty() && RWXDSJ != null && !RWXDSJ.isEmpty()) {
if(isNotAfterCurrentDate(jhjs)) {
renderer.setBackground(Color.RED);
// System.out.println("row==="+row+"===column==="+column);
}else {
//setBackground(Color.YELLOW);
renderer.setBackground(Color.GRAY);
}
}
}
}
}
return renderer;
}
public static boolean isNotAfterCurrentDate(String dateStr) {
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try {
// 解析字符串为 LocalDate 对象
LocalDate inputDate = LocalDate.parse(dateStr, formatter);
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 比较两个日期
return !inputDate.isAfter(currentDate); // 返回 true 如果输入日期 <= 当前日期
} catch (DateTimeParseException e) {
// 处理解析异常
System.out.println("Invalid date format: " + e.getMessage());
return false; // 或者你也可以选择抛出异常,或者根据需求做其他处理
}
}
}

@ -1,642 +0,0 @@
package com.langtech.plm.bg;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.RowSorter;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.ListOfValuesInfo;
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.TCComponentListOfValues;
import com.teamcenter.rac.kernel.TCComponentListOfValuesType;
import com.teamcenter.rac.kernel.TCComponentProject;
import com.teamcenter.rac.kernel.TCComponentUser;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCProperty;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.DateButton;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
import com.teamcenter.soa.client.model.LovValue;
import k.util.KOrgDialog;
public class RWFPDialog extends JFrame implements ActionListener {
private Map<String, JTextField> textMap = new HashMap<>();
private TCSession session;
private JTable table;
private String[] header;
private ArrayList<String> gsPrefTopLine;
private LinkedHashMap<String, String> gsPrefMap = new LinkedHashMap<String, String>();
private LinkedHashMap<String, String> fieldsMap = new LinkedHashMap<String, String>();
private LinkedHashMap<String, String> cfdjPref = new LinkedHashMap<String, String>();
private LinkedHashMap<Integer, String> lovPositionMap = new LinkedHashMap<Integer, String>();
private LinkedHashMap<String, Integer> positionFieldMap = new LinkedHashMap<String, Integer>();
private LinkedHashMap<Integer, Integer> widtheMap = new LinkedHashMap<Integer, Integer>();
// public static final int[] HEADERWIDTH = new int[] { 50, 100, 200, 200, 100,
// 100, 80, 80, 100, 150, 150, 150, 150,150, 150, 150, 150, 150, 150 };
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
private DefaultTableModel dtm1;
private JButton yyButton = new JButton("应用");
private JButton gbButton = new JButton("关闭");
private JComboBox<String> cfdJComboBox = new JComboBox<String>();
private DateButton cfsjButton;
private JButton tzsjButton = new JButton("调整时间");
private static ArrayList<String> dateConnList = new ArrayList<String>();
private String type;
private String id;
private String objectString;
private boolean readOnly;
private ArrayList<Integer> canWriteColume = new ArrayList<Integer>();
private ArrayList<Integer> choosePersonColume = new ArrayList<Integer>();
public RWFPDialog(TCSession session, String type, String id, String objectString, boolean readOnly) {
// TODO Auto-generated constructor stub
this.session = session;
this.type = type;
this.id = id;
this.objectString = objectString;
this.readOnly = readOnly;
initUI();
}
public void initUI() {
// TODO Auto-generated method stub
if(readOnly) {
yyButton.setEnabled(false);
tzsjButton.setEnabled(false);
}
this.setTitle(objectString+"变更任务分配表");
this.setLayout(new BorderLayout());
String[] cfdj = session.getPreferenceService().getStringValues("Connor_ChangeTaskForm_TriggerLevelMapping");
if (cfdj == null || cfdj.length <= 0) {
MessageBox.post("请配置首选项“Connor_ChangeTaskForm_TriggerLevelMapping”", "提示 ", MessageBox.INFORMATION);
return;
}
for (int i = 0; i < cfdj.length; i++) {
String[] split = cfdj[i].split("=");
if(split[0].equals(type)) {
String[] split2 = split[1].split(";");
for (int j = 0; j < split2.length; j++) {
String[] split3 = split2[j].split("\\|");
cfdjPref.put(split3[0],split3[1]);
cfdJComboBox.addItem(split3[0]);
}
break;
}
}
//获取首选项匹配的类型
String[] fields = session.getPreferenceService().getStringValues("Connor_ECRECNForm_Datbase_Config");
if (fields == null || fields.length <= 0) {
MessageBox.post("请配置首选项“Connor_ECRECNForm_Datbase_Config”", "提示 ", MessageBox.INFORMATION);
return;
}
for (int i = 0; i < fields.length; i++) {
if(fields[i].contains(type)) {
String[] split = fields[i].split("\\|");
if(split.length == 2) {
String[] split2 = split[1].split(";");
for (int j = 0; j < split2.length; j++) {
String[] split3 = split2[j].split("=");
positionFieldMap.put(split3[0],j);
if(split3.length == 3) {
fieldsMap.put(split3[0],split3[1]);
if(split3[2].contains("%")) {
String[] split4 = split3[2].split("%");
widtheMap.put(j, Integer.parseInt(split4[0]));
canWriteColume.add(j);
}else if(split3[2].contains("#")) {
String[] split4 = split3[2].split("#");
widtheMap.put(j, Integer.parseInt(split4[0]));
choosePersonColume.add(j);
canWriteColume.add(j);
}else {
widtheMap.put(j, Integer.parseInt(split3[2]));
}
}else if(split3.length == 4) {
fieldsMap.put(split3[0],split3[1]);
System.out.println("split3[2]========"+split3[2]);
if(split3[2].contains("%")) {
String[] split4 = split3[2].split("%");
widtheMap.put(j, Integer.parseInt(split4[0]));
System.out.println("split4[0]========"+split4[0]);
canWriteColume.add(j);
}else if(split3[2].contains("#")) {
String[] split4 = split3[2].split("#");
widtheMap.put(j, Integer.parseInt(split4[0]));
choosePersonColume.add(j);
canWriteColume.add(j);
}else {
widtheMap.put(j, Integer.parseInt(split3[2]));
}
lovPositionMap.put(j,split3[3]);
}
}
}
}
}
System.out.println("choosePersonColume====="+choosePersonColume.size());
System.out.println("canWriteColume====="+canWriteColume.size());
System.out.println("fieldsMap====="+fieldsMap);
System.out.println("positionMap====="+lovPositionMap);
System.out.println("widtheMap====="+widtheMap);
if(fieldsMap.size() == 0) {
MessageBox.post("该类型未匹配到首选项!", "提示 ", MessageBox.INFORMATION);
return;
}
Collection<String> valuesCollection = fieldsMap.values();
// 将集合转换为数组
header = valuesCollection.toArray(new String[0]);
JPanel topPanel = getTopPanel();
JScrollPane pane = getTablePanel();
pane.setBorder(BorderFactory.createTitledBorder(""));
// JPanel btnPanel = getRightPanel();
JPanel bottomPane = getBottomPanel();
this.add(topPanel, BorderLayout.NORTH);
this.add(pane, BorderLayout.CENTER);
this.add(bottomPane, BorderLayout.SOUTH);
this.createActionEvent();
this.pack();
this.setPreferredSize(new Dimension(1850, 1000));
this.validate();
this.setVisible(true);
// 设置窗口在屏幕中心
// Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
// int x = (int) screensize.getWidth() / 2 - window.getWidth() / 2;
// int y = (int) screensize.getHeight() / 2 - window.getHeight() / 2;
this.setLocationRelativeTo(null);
//设置列宽
TableColumnModel colModel = table.getColumnModel();
for (Entry<Integer, Integer> map : widtheMap.entrySet()) {
colModel.getColumn(map.getKey()).setPreferredWidth(map.getValue());
}
String[] value = session.getPreferenceService().getStringValues("LD_dbinfo2");
if (value == null || value.length == 0) {
MessageBox.post("首选项LD_dbinfo2配置有误请检查。", "提示", 2);
return;
} else {
Collections.addAll(dateConnList, value);
}
Set<String> keySet = fieldsMap.keySet();
String fieldsSql = "";
for (String string : keySet) {
fieldsSql += string + ",";
}
fieldsSql = fieldsSql.substring(0, fieldsSql.length() - 1);
System.out.println("fieldsSql=========="+fieldsSql);
String sqlString = "SELECT " + fieldsSql + " FROM LY_CHANGETASSKFORM_DETAILS where ID='" + id + "'";
System.out.println(sqlString);
Connection conn = getConn();
PreparedStatement stmt = null;
try{
stmt = conn.prepareStatement(sqlString);
ResultSet result = stmt.executeQuery();
while (result.next()) {
ArrayList<String> arList = new ArrayList<String>();
for (int i = 0; i < fieldsMap.size(); i++) {
//System.out.println("result.getString(i+1)==========="+result.getString(i+1));
arList.add(result.getString(i+1) == null? result.getString(i+1) : validateAndFormatDate(result.getString(i+1)));
}
dtm1.addRow(arList.toArray(new Object[0]));
}
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
if(stmt != null) {
stmt.close();
}
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void createActionEvent() {
this.yyButton.addActionListener(this);
this.gbButton.addActionListener(this);
this.tzsjButton.addActionListener(this);
}
// 查询部分
private JPanel getTopPanel() {
// TODO Auto-generated method stub
JPanel topPanel = new JPanel();
topPanel.setLayout(new PropertyLayout());
topPanel.add("1.1.left.center", new JLabel("触发等级 "));
topPanel.add("1.2.left.center", cfdJComboBox);
topPanel.add("1.3.left.center", new JLabel(" 触发时间 "));
cfsjButton = new DateButton(null, "yyyy-MM-dd", false, false, false);
cfsjButton.setDate("未设置日期");
topPanel.add("1.4.left.center", cfsjButton);
topPanel.add("1.5.left.center", new JLabel(" "));
topPanel.add("1.6.left.center", tzsjButton);
topPanel.add("2.1.left.center", new JLabel(" "));
return topPanel;
}
// 查询部分
private JPanel getBottomPanel() {
// TODO Auto-generated method stub
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new PropertyLayout());
bottomPanel.add("1.1.left.center", new JLabel(" "));
bottomPanel.add("1.2.left.center", yyButton);
bottomPanel.add("1.3.left.center", new JLabel(" "));
bottomPanel.add("1.4.left.center", gbButton);
return bottomPanel;
}
private JScrollPane getTablePanel() {
// TODO Auto-generated method stub
table = getjTable(null, null, header, null, false);
table.setRowHeight(30);
// table.setPreferredSize(new Dimension(1500,400));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // 设置表格的自动调整模式为关闭自动调整
// table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//设置JTable的列宽随着列表内容的大小进行调整
// table.setPreferredSize(new Dimension(1200,400));
JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
for (Entry<Integer, String> map : lovPositionMap.entrySet()) {
JComboBox<String> jComboBox = new JComboBox<String>();
String value = map.getValue();
if (value.contains(",")) {
String[] split = value.split(",");
for (int i = 0; i < split.length; i++) {
jComboBox.addItem(split[i]);
}
} else {
jComboBox.addItem(value);
}
table.getColumnModel().getColumn(map.getKey()).setCellEditor(new DefaultCellEditor(jComboBox));
}
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 || e.getClickCount() == 1) { // 判断是否双击并且是在第二列
int row = table.rowAtPoint(e.getPoint());
int column = table.columnAtPoint(e.getPoint());
System.out.println("column========"+column);
if (choosePersonColume.contains(column)) {
System.out.println("1111111111111111111111111111111");
try {
TCComponentUser user = new KOrgDialog("").getUser();
System.out.println("user============"+user.getUserName());
table.setValueAt(user.getUserName()+"("+user.getUserId()+")", row, column);
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
});
pane.setPreferredSize(new Dimension(1800, 850));
pane.setViewportView(table);// 为scrollPane指定显示对象为table
return pane;
}
/***
* Jtable
*
* @param partsTable
* @param dtm
* @param titleNames
* @param values
* @return
*/
public JTable getjTable(JTable partsTable, DefaultTableModel dtm, Object[] titleNames, Object[][] values,
Boolean isTable2) {
// int simpleLen = 100;
// int totleLen = 1000;
if (partsTable == null) {
partsTable = new JTable(this.getTableModel(dtm, titleNames, values));
partsTable.setRowHeight(20);
partsTable.getTableHeader().setReorderingAllowed(false);
partsTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(partsTable.getModel());
partsTable.setRowSorter(sorter);
// for (int i = 0; i < titleNames.length; i++) {
// if(i==2) {
// partsTable.getColumnModel().getColumn(i).setPreferredWidth(200);
// }else {
// partsTable.getColumnModel().getColumn(i).setPreferredWidth(120);
// }
//
// }
}
return partsTable;
}
public DefaultTableModel getTableModel(DefaultTableModel dtm, Object[] titleNames, Object[][] values) {
dtm1 = null;
if (dtm == null) {
dtm1 = new DefaultTableModel(values, titleNames) {
@Override
public boolean isCellEditable(int row, int column) {
if (canWriteColume.size() > 0) {
for (int i = 0; i < canWriteColume.size(); i++) {
if (canWriteColume.get(i) == column) {
return true;
}
}
}
return false;
}
};
}
return dtm1;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object source = e.getSource();
System.out.println("source==>+" + source);
if (source.equals(this.gbButton)) {
dispose();
} else if (source.equals(this.yyButton)) {
// 保存数据
Connection conn = getConn();
PreparedStatement stmt = null;
//遍历一遍判断是否涉及更改
Integer sfsjgg = positionFieldMap.get("SFSJGG");
for (int i = 0; i < table.getRowCount(); i++) {
String valueAt = (String)table.getValueAt(i, sfsjgg);
System.out.println("valueAt============="+valueAt);
if(valueAt == null || valueAt.isEmpty()) {
int row = i+1;
MessageBox.post("第"+row+"行的是否涉及变更未填写!", "提示", 2);
return;
}
}
for (int i = 0; i < table.getRowCount(); i++) {
StringBuilder updateSql = new StringBuilder();
updateSql.append("update LY_CHANGETASSKFORM_DETAILS set ");
for (Entry<String, Integer> map : positionFieldMap.entrySet()) {
updateSql.append(map.getKey());
String valueAt = (String) table.getValueAt(i, map.getValue());
if (valueAt == null || valueAt.isEmpty()) {
updateSql.append("=");
updateSql.append("null,");
} else {
updateSql.append("='");
updateSql.append(table.getValueAt(i, map.getValue()));
updateSql.append("',");
}
}
// 去掉最后一个,
updateSql.deleteCharAt(updateSql.length() - 1);
updateSql.append(" where ID='" + id + "' and XH='" + table.getValueAt(i, 0) + "'");
try {
stmt = conn.prepareStatement(updateSql.toString());
System.out.println("updateSql=========" + updateSql.toString());
stmt.execute();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
MessageBox.post("应用完成!", "提示", 2);
} else if (source.equals(this.tzsjButton)) {
gsPrefTopLine = new ArrayList<String>();
String selectedItem = (String) cfdJComboBox.getSelectedItem();
if (selectedItem == null || selectedItem.isEmpty()) {
MessageBox.post("请选择触发等级!", "提示", 2);
return;
}
Date date = cfsjButton.getDate();
if (date == null) {
MessageBox.post("请选择触发时间!", "提示", 2);
return;
}
String cfsjDate = dateFormat.format(date);
String pref = cfdjPref.get(selectedItem);
if (pref == null || pref.isEmpty()) {
MessageBox.post("未配置触发等级相关的首选项!", "提示", 2);
return;
}
String[] calculateTime = session.getPreferenceService().getStringValues(pref);
if (calculateTime == null || calculateTime.length <= 0) {
MessageBox.post("请配置首选项“" + pref + "”", "提示 ", MessageBox.INFORMATION);
return;
}
for (int i = 0; i < calculateTime.length; i++) {
String[] split = calculateTime[i].split("\\|");
if (i == 0) {
for (int j = 0; j < split.length; j++) {
gsPrefTopLine.add(split[j]);
}
} else {
gsPrefMap.put(split[0], calculateTime[i]);
}
}
System.out.println(positionFieldMap + "==================positionFieldMap");
System.out.println("gsPrefTopLine----------------" + gsPrefTopLine.size());
Integer xh = positionFieldMap.get(gsPrefTopLine.get(0));
// 表里table 开始计算
for (int i = 0; i < table.getRowCount(); i++) {
String xhStr = table.getValueAt(i, xh).toString();
String gsStr = gsPrefMap.get(xhStr);
if (gsStr != null && !gsStr.isEmpty()) {
String[] split = gsStr.split("\\|");
for (int j = 1; j < gsPrefTopLine.size(); j++) {
// 如果有值
System.out.println("gsPrefTopLine.get(j)========" + gsPrefTopLine.get(j));
Integer colume = positionFieldMap.get(gsPrefTopLine.get(j));
if (colume != null) {
System.out.println(positionFieldMap.get(gsPrefTopLine.get(j))
+ "=================positionFieldMap.get(gsPrefTopLine.get(j))");
// 处理公式
String gs = split[j];
System.out.println("gs========" + gs);
if (gs.equals("N")) {
table.setValueAt(cfsjDate, i, colume);
} else {
String[] split2 = gs.split("N");
String time = calculateDate(cfsjDate, Integer.parseInt(split2[1]));
System.out.println("time============" + time);
table.setValueAt(time, i, colume);
}
}
}
}
}
// 调用应用按钮
yyButton.doClick();
MessageBox.post("调整时间完成!", "提示", 2);
}
}
// 获取数据库连接
public static Connection getConn() {
Connection conn = null;
try {
conn = DbPool.getConnection(dateConnList.get(0), dateConnList.get(1));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static String calculateDate(String dateString, int daysToAdd) {
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 解析输入的日期字符串
LocalDate date;
try {
date = LocalDate.parse(dateString, formatter);
} catch (DateTimeParseException e) {
throw new IllegalArgumentException("Invalid date format. Please use yyyy-MM-dd.", e);
}
// 增加或减少天数
LocalDate resultDate = date.plusDays(daysToAdd);
// 格式化结果日期为字符串
return resultDate.format(formatter);
}
public String validateAndFormatDate(String input) {
// 定义输入和输出的日期格式
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try {
// 尝试解析输入的日期时间字符串
LocalDateTime dateTime = LocalDateTime.parse(input, inputFormatter);
// 转换为只包含日期的LocalDate对象
LocalDate date = dateTime.toLocalDate();
// 格式化结果日期为字符串
return date.format(outputFormatter);
} catch (DateTimeParseException e) {
// 如果解析失败,说明输入不符合指定格式,返回原始字符串
return input;
}
}
}

@ -1,114 +0,0 @@
package com.langtech.plm.bg;
import javax.swing.SwingUtilities;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.teamcenter.rac.aif.AbstractAIFUIApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
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;
public class RWFPHandler extends AbstractHandler {
private AbstractAIFUIApplication app;
private TCSession session;
// private InterfaceAIFComponent target;
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
app = AIFUtility.getCurrentApplication();
session = (TCSession) app.getSession();
// target = app.getTargetComponent();
// if (target == null || !(target instanceof TCComponentFolder)) {
// MessageBox.post(app.getDesktop(), "请选择系统总目录文件夹进行导入!", "导入位置选择", MessageBox.WARNING);
// return null;
// }
//判断是否可编辑
boolean readOnly = true;
String userId = "";
try {
userId = session.getUser().getUserId();
} catch (TCException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
String[] templates = session.getPreferenceService().getStringValues("Connor_TaskForm_ChangeDateButton_User");
if(templates != null && templates.length > 0 && userId != null && !userId.isEmpty()) {
if(templates[0].contains(userId)) {
readOnly = false;
}
}
final boolean readOnlyFinal = readOnly;
InterfaceAIFComponent target = app.getTargetComponent();
if(target instanceof TCComponentItem) {
TCComponentItem item = (TCComponentItem)target;
String type = item.getType();
try {
String id = item.getStringProperty("item_id");
String objectString = item.getStringProperty("object_string");
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
new RWFPDialog(session,type,id,objectString,readOnlyFinal);
//d.setModal(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}else if(target instanceof TCComponentItemRevision){
TCComponentItemRevision rev = (TCComponentItemRevision)target;
TCComponentItem item = null;
try {
item = rev.getItem();
} catch (TCException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
String type = item.getType();
try {
String id = item.getStringProperty("item_id");
String objectString = item.getStringProperty("object_string");
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
new RWFPDialog(session,type,id,objectString,readOnlyFinal);
//d.setModal(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}else {
MessageBox.post(app.getDesktop(), "请选择正确对象!", "提示", MessageBox.WARNING);
return null;
}
return null;
}
}

@ -1,54 +0,0 @@
package com.langtech.plm.bg;
import java.awt.Component;
import java.util.List;
import javax.swing.JCheckBox;
import javax.swing.JRadioButton;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.EventListenerList;
import javax.swing.table.TableCellRenderer;
import com.teamcenter.rac.treetable.JTreeTable;
public class TableCellCheckboxRenderer extends JCheckBox implements
TableCellRenderer {
private List<Integer> processRows;
protected EventListenerList listenerList = new EventListenerList();
protected ChangeEvent changeEvent = new ChangeEvent(this);
//private TestTreeTableModel tableModel;
public List<Integer> getProcessRows() {
return processRows;
}
public void setProcessRows(List<Integer> processRows) {
this.processRows = processRows;
}
public TableCellCheckboxRenderer(final JTable table) {
}
public TableCellCheckboxRenderer(final JTreeTable table) {
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
// TODO Auto-generated method stub
this.setHorizontalAlignment(SwingConstants.CENTER);// ±íÍ·±êÇ©¾çÖÐ
// this.setBorderPainted(true);
if(value != null)
{
this.setSelected(value.toString().equals("1"));
}
else
{
this.setSelected(false);
}
return this;
}
}

@ -1,71 +0,0 @@
package com.langtech.plm.bg;
import java.awt.Color;
import java.awt.Component;
import java.util.HashMap;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
public class TableColorRender implements TableCellRenderer {
//
public static final DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer();
//IntegerÁÐ String±êʶ ColorÑÕÉ«
public HashMap<Integer, HashMap<String, Color>> allForegroundInfos = new HashMap<Integer, HashMap<String, Color>>();
public HashMap<Integer, Integer> allFColorColumn = new HashMap<Integer, Integer>();
//IntegerÁÐ String±êʶ ColorÑÕÉ«
public HashMap<Integer, HashMap<String, Color>> allBackgroundInfos = new HashMap<Integer, HashMap<String, Color>>();
public HashMap<Integer, Integer> allBColorColumn = new HashMap<Integer, Integer>();
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component renderer = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (value != null && value instanceof String) {
Color foreground = table.getForeground();
Color background = table.getBackground();
if (isSelected) {
background = new Color(10, 36, 106);
}
Boolean bSetFG = false;
Integer infoCol = allFColorColumn.get(column);
if (infoCol != null) {
HashMap<String, Color> fgc = allForegroundInfos.get(infoCol);
if (fgc != null) {
String infoValue = table.getValueAt(row, infoCol).toString();
Color color = fgc.get(infoValue);
if (color != null) {
foreground = color;
bSetFG = true;
}
}
}
Boolean bSetBG = false;
infoCol = allBColorColumn.get(column);
if (infoCol != null) {
HashMap<String, Color> bgc = allBackgroundInfos.get(infoCol);
if (bgc != null) {
String infoValue = table.getValueAt(row, infoCol).toString();
Color color = bgc.get(infoValue);
if (color != null) {
background = color;
bSetBG = true;
}
}
}
if (!bSetFG && !bSetBG && isSelected) {
foreground = Color.WHITE;
}
renderer.setForeground(foreground);
renderer.setBackground(background);
}
return renderer;
}
}

@ -17,14 +17,11 @@ public class CheckBoxTreeNodeSelectionListener extends MouseAdapter
int y = event.getY(); int y = event.getY();
int row = tree.getRowForLocation(x, y); int row = tree.getRowForLocation(x, y);
TreePath path = tree.getPathForRow(row); TreePath path = tree.getPathForRow(row);
System.out.println(path);
if(path != null) if(path != null)
{ {
CheckBoxTreeNode node = (CheckBoxTreeNode)path.getLastPathComponent(); CheckBoxTreeNode node = (CheckBoxTreeNode)path.getLastPathComponent();
System.out.println(node);
if(node != null) if(node != null)
{ {
boolean isSelected = !node.isSelected(); boolean isSelected = !node.isSelected();
node.setSelected(isSelected); node.setSelected(isSelected);
((DefaultTreeModel)tree.getModel()).nodeStructureChanged(node); ((DefaultTreeModel)tree.getModel()).nodeStructureChanged(node);

@ -7,8 +7,6 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.ItemEvent; import java.awt.event.ItemEvent;
import java.awt.event.ItemListener; import java.awt.event.ItemListener;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import javax.swing.JButton; import javax.swing.JButton;
@ -46,7 +44,7 @@ public class CreateProjectStructDialog extends AbstractAIFDialog{
private JTree jtree; private JTree jtree;
private JButton okButton; private JButton okButton;
private JButton celButton; private JButton celButton;
private HashMap<String, ArrayList<String>> preMap = new HashMap<String, ArrayList<String>>(); private HashMap<String, String> preMap = new HashMap<String, String>();
public static final String preName = "connor_LY6_FolderTemp"; public static final String preName = "connor_LY6_FolderTemp";
@ -92,15 +90,11 @@ public class CreateProjectStructDialog extends AbstractAIFDialog{
if(prefVal.contains("=")) { if(prefVal.contains("=")) {
String[] split = prefVal.split("="); String[] split = prefVal.split("=");
modelBox.addItem(split[0]); modelBox.addItem(split[0]);
ArrayList<String> arrayList = new ArrayList<String>(); preMap.put(split[0], split[1]);
arrayList.add(split[1]);
arrayList.add(split[2]);
arrayList.add(split[3]);
preMap.put(split[0], arrayList);
} }
} }
} }
nameLabel = new JLabel("项目名称"); nameLabel = new JLabel("成品图号:");
nameField = new JTextField(); nameField = new JTextField();
nameField.setPreferredSize(new Dimension(200,30)); nameField.setPreferredSize(new Dimension(200,30));
JPanel topPanel = new JPanel(); JPanel topPanel = new JPanel();
@ -137,8 +131,7 @@ public class CreateProjectStructDialog extends AbstractAIFDialog{
* @param tree * @param tree
*/ */
private void initTree(JTree tree){ private void initTree(JTree tree){
ArrayList<String> list = preMap.get(modelBox.getSelectedItem()); String puid = preMap.get(modelBox.getSelectedItem());
String puid = list.get(0);
TCComponent component; TCComponent component;
try { try {
component = session.stringToComponent(puid); component = session.stringToComponent(puid);
@ -221,19 +214,18 @@ public class CreateProjectStructDialog extends AbstractAIFDialog{
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
String name = nameField.getText(); String name = nameField.getText();
ArrayList<String> list = preMap.get(modelBox.getSelectedItem());
if (name.isEmpty()) { if (name.isEmpty()) {
MessageBox.post("请填写项目名称", "提示 ", MessageBox.INFORMATION); MessageBox.post("请填写成品图号", "提示 ", MessageBox.INFORMATION);
} else { } else {
TCComponentFolderType folderType; TCComponentFolderType folderType;
try { try {
KUtil.setByPass(true); KUtil.setByPass(true);
folderType = (TCComponentFolderType) session.getTypeComponent(list.get(1)); folderType = (TCComponentFolderType) session.getTypeComponent("LD6_CusProdFolder");
TCComponentFolder folder = KUtil.createFolderBySOA(folderType.getTypeName(), name); TCComponentFolder folder = KUtil.createFolderBySOA(folderType.getTypeName(), name);
//TCComponentFolder folder = folderType.create(name, "", "LD6_CusProdFolder"); //TCComponentFolder folder = folderType.create(name, "", "LD6_CusProdFolder");
target.add("contents", folder); target.add("contents", folder);
CheckBoxTreeNode root = (CheckBoxTreeNode) jtree.getModel().getRoot(); CheckBoxTreeNode root = (CheckBoxTreeNode) jtree.getModel().getRoot();
createFolderStruct(root,folder,(TCComponentFolderType) session.getTypeComponent(list.get(2)),true); createFolderStruct(root,folder,(TCComponentFolderType) session.getTypeComponent("LD6_ProjMaFolder"),true);
KUtil.setByPass(false); KUtil.setByPass(false);
disposeDialog(); disposeDialog();
} catch (Exception e1) { } catch (Exception e1) {
@ -247,15 +239,6 @@ public class CreateProjectStructDialog extends AbstractAIFDialog{
if(event.getStateChange() == ItemEvent.SELECTED) { if(event.getStateChange() == ItemEvent.SELECTED) {
//ÖØÐÂË¢ÐÂÊ÷ //ÖØÐÂË¢ÐÂÊ÷
jtree.setModel(null); jtree.setModel(null);
// 获取并移除所有的 MouseListener
MouseListener[] mouseListeners = jtree.getMouseListeners();
for (MouseListener listener : mouseListeners) {
jtree.removeMouseListener(listener);
}
// 重新验证和重绘
jtree.revalidate();
jtree.repaint();
initTree(jtree); initTree(jtree);
}else if(event.getStateChange() == ItemEvent.DESELECTED){ }else if(event.getStateChange() == ItemEvent.DESELECTED){

@ -1,94 +0,0 @@
package com.langtech.plm.modifyEffectiveTime;
import org.jdesktop.swingx.JXDatePicker;
import javax.swing.*;
import javax.swing.table.TableCellEditor;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.EventObject;
public class DatePickerEditor extends AbstractCellEditor implements TableCellEditor {
private JXDatePicker datePicker;
private JTable table;
private int row;
private int column;
public DatePickerEditor() {
datePicker = new JXDatePicker();
// 设置日期格式
datePicker.setFormats(new SimpleDateFormat("yyyy-MM-dd"));
datePicker.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
fireEditingStopped();
}
});
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
this.table = table;
this.row = row;
this.column = column;
System.out.println("getTableCellEditorComponent: "+value);
if (value instanceof Date) {
datePicker.setDate((Date) value);
} else {
datePicker.setDate(null);
}
return datePicker;
}
@Override
public Object getCellEditorValue() {
try {
// 获取用户输入的文本
String text = datePicker.getEditor().getText();
if (text.trim().isEmpty()) {
return null;
}
// 尝试将输入解析为日期
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
format.setLenient(false); // 严格解析日期格式
return format.parse(text);
} catch (Exception e) {
// 如果解析失败,打印错误信息并返回当前日期选择器的值
System.err.println("Invalid date format: " + e.getMessage());
}
// 返回日期选择器当前的值
return datePicker.getDate();
}
@Override
public boolean isCellEditable(EventObject anEvent) {
return true;
}
@Override
public boolean stopCellEditing() {
System.out.println("stopCellEditing: " + datePicker.getDate());
fireEditingStopped();
return true;
}
@Override
public boolean shouldSelectCell(EventObject anEvent) {
return true;
}
@Override
public void cancelCellEditing() {
super.cancelCellEditing();
}
}

@ -1,265 +0,0 @@
package com.langtech.plm.modifyEffectiveTime;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
import org.jdesktop.swingx.JXDatePicker;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.kernel.TCUserService;
import com.teamcenter.rac.util.MessageBox;
public class ModifyEffectiveTimeDialog extends JFrame implements Runnable {
private JTable table;
private JButton okButton;
private boolean flag;
private final String title;
private final String[] columnNames;
private Object[][] data;
private int[] dateIndex;
private boolean pass;
public static void main(String[] args) {
}
public ModifyEffectiveTimeDialog(String title, Object... args) {
this.title = title;
this.columnNames = (String[]) args[0];
this.data = (Object[][]) args[1];
this.dateIndex = (int[]) args[2];
this.pass = (boolean) args[3];
}
@Override
public void run() {
// TODO Auto-generated method stub
initUI();
}
public void setWithHeight(int with, int height) {
this.setSize(with, height);
}
public void initUI() {
this.setTitle(title);
// 初始化所有信息
initializationComponent();
// 添加内容到JFrame 并设置它的位置
JPanel bottomPanel = getBottomPanel();
// 创建表格和滚动条
JPanel tableScrollPane = createTable();
tableScrollPane.setPreferredSize(new Dimension(700, 200)); // 设置滚动条的大小
this.getContentPane().add(tableScrollPane, BorderLayout.CENTER);
this.getContentPane().add(bottomPanel, BorderLayout.SOUTH);
// 设置窗口居中
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// 设置可见性
this.setVisible(true);
}
public void initializationComponent() {
okButton = new JButton("应用");
okButton.setEnabled(pass);
}
public JPanel createTable() {
JPanel panel = new JPanel(new BorderLayout(10, 10));
panel.setBorder(new EmptyBorder(20, 20, 10, 20));
// 创建 DefaultTableModel 实例
DefaultTableModel model = new DefaultTableModel(data, columnNames) {
@Override
public boolean isCellEditable(int row, int column) {
if (column == 0) {
return false;
}
return true;
}
@Override
public Class<?> getColumnClass(int columnIndex) {
if (columnIndex == 1) {
return Date.class;
}
return super.getColumnClass(columnIndex);
}
};
table = new JTable(model);
// 设置行高
table.setRowHeight(25); // 设置行高为30像素
table.setFont(new Font("微软雅黑", Font.PLAIN, 12));
// 禁用列重排序
table.getTableHeader().setReorderingAllowed(false);
// 禁用自动调整列宽
// table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
// 设置表格填满视口高度
// table.setFillsViewportHeight(true);
// 设置列宽
TableColumnModel columnModel = table.getColumnModel();
columnModel.getColumn(0).setPreferredWidth(300);
columnModel.getColumn(1).setPreferredWidth(143);
table.removeColumn(columnModel.getColumn(columnModel.getColumnCount() - 1));
// 自定义渲染器,使所有列居中对齐
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
((JLabel) c).setHorizontalAlignment(SwingConstants.CENTER); // 设置文本居中对齐
return c;
}
};
// 应用居中对齐渲染器
for (int i = 0; i < columnModel.getColumnCount(); i++) {
columnModel.getColumn(i).setCellRenderer(centerRenderer);
}
// 自定义渲染器
TableCellRenderer dateRenderer = (JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
int column) -> {
JXDatePicker datePicker = new JXDatePicker();
if (value instanceof Date) {
datePicker.setFormats(new SimpleDateFormat("yyyy-MM-dd"));
datePicker.setDate((Date) value);
}
return datePicker;
};
// 自定义编辑器
TableCellEditor dateEditor = new DatePickerEditor();
// 为 IssueDate 和 MaterialDeliveryTime 列设置日期选择器
for (int index : dateIndex) {
// 设置渲染器和编辑器
table.getColumnModel().getColumn(index).setCellRenderer(dateRenderer);
table.getColumnModel().getColumn(index).setCellEditor(dateEditor);
}
// 创建 JScrollPane 并设置水平滚动条始终可见
JScrollPane scrollPane = new JScrollPane(table);
// scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
// 添加表格到中心区域
panel.add(scrollPane, BorderLayout.CENTER);
return panel;
}
public JPanel getBottomPanel() {
// TODO Auto-generated method stub
JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 70, 10));
bottomPanel.setBorder(BorderFactory.createEmptyBorder(-10, 0, 10, 0));
bottomPanel.add(this.okButton);
// 添加监听
okButton.addActionListener(e -> {
flag = true;
List<String[]> tableData = getTableData();
if (tableData != null) {
tableData.forEach(rowData -> {
System.out.println(Arrays.toString(rowData));
});
}
if (flag) {
MessageBox.post("修改成功! ", "Info", MessageBox.INFORMATION);
this.dispose(); // 关闭窗口
} else {
MessageBox.post("生效时间不允许超出两行", "Error", MessageBox.ERROR);
}
});
return bottomPanel;
}
public List<String[]> getTableData() {
DefaultTableModel model = (DefaultTableModel) table.getModel();
int rowCount = model.getRowCount();
int columnCount = model.getColumnCount();
List<String[]> tableData = new ArrayList<>();
int count = 0;
for (int row = 0; row < rowCount; row++) {
Object obj = model.getValueAt(row, 1);
if (obj instanceof Date && obj != null) {
count++;
if (count == 3) {
flag = false;
return null;
}
}
}
setByPass(true);
try {
for (int row = 0; row < rowCount; row++) {
String name = (String) model.getValueAt(row, 0);
Object obj = model.getValueAt(row, 1);
System.out.println("name: " + name + " || date: " + obj);
TCComponentItemRevision rev = (TCComponentItemRevision) model.getValueAt(row, 2);
rev.setDateProperty("ly6_deadline", (Date) obj);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
MessageBox.post(e.getMessage(), "Error", MessageBox.ERROR);
}
setByPass(false);
return tableData;
}
@SuppressWarnings("deprecation")
public void setByPass(boolean pass) {
TCUserService userservice = null;
if (userservice == null) {
userservice = ((TCSession) AIFUtility.getCurrentApplication().getSession()).getUserService();
}
Object[] obj = new Object[1];
obj[0] = "origin";
try {
if (pass) {
userservice.call("CONNOR_open_bypass", obj);
System.out.println("旁路已开启");
} else {
userservice.call("CONNOR_close_bypass", obj);
System.out.println("旁路已关闭");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -1,165 +0,0 @@
package com.langtech.plm.modifyEffectiveTime;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentBOMWindow;
import com.teamcenter.rac.kernel.TCComponentBOMWindowType;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCPreferenceService;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
public class ModifyEffectiveTimeHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
TCSession session = (TCSession) app.getSession();
TCPreferenceService preferenceService = session.getPreferenceService();
String[] preValues = preferenceService.getStringValues("LY__FormulaDeadLine_Config");
if ((preValues != null && preValues.length < 3) || preValues == null) {
MessageBox.post("LY__FormulaDeadLine_Config配置错误", "Error", MessageBox.ERROR);
return null;
}
String[] types = preValues[0].split(";");
String[] childTypes = preValues[1].split(";");
String[] permissionPeo = preValues[2].split(";");
TCComponent targetComponent = (TCComponent)app.getTargetComponent();
String targetType = "";
try {
if(targetComponent instanceof TCComponentItemRevision) {
targetType = targetComponent.getType();
}else if(targetComponent instanceof TCComponentBOMLine) {
targetType = ((TCComponentBOMLine) targetComponent).getItemRevision().getType();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
boolean isExist = false;
System.out.println("当前类型:" + targetType);
for (String type : types) {
System.out.println("当前配置类型:" + type);
if (type.equals(targetType)) {
isExist = true;
break;
}
}
if (!isExist) {
MessageBox.post("请选择指定类型的牌号版本执行修改配方生效日期功能", "Error", MessageBox.ERROR);
return null;
}
boolean pass = false;
String userName = session.getUserName();
System.out.println("当前用户:" + userName);
for (String name : permissionPeo) {
System.out.println("当前配置用户:" + name);
if (userName.equals(name)) {
pass = true;
break;
}
}
Object[][] data = null;
try {
List<TCComponentItemRevision> revList = getChildBom(session, targetComponent, childTypes);
data = new Object[revList.size()][];
for (int i = 0; i < revList.size(); i++) {
TCComponentItemRevision tempRev = revList.get(i);
Object[] tempData = new Object[3];
tempData[0] = tempRev.getProperty("object_string");
tempData[1] = parseDate(tempRev.getProperty("ly6_deadline"));
tempData[2] = tempRev;
data[i] = tempData;
}
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 表格列标题
String[] columnNames = new String[] { "对象", "生效时间", "TCComponent" };
int[] dateIndex = new int[] { 1 };
ModifyEffectiveTimeDialog dialog = new ModifyEffectiveTimeDialog("修改配方生效时间", columnNames, data, dateIndex,
pass);
dialog.setWithHeight(500, 300);
new Thread(dialog).start();
return null;
}
public List<TCComponentItemRevision> getChildBom(TCSession session, TCComponent targetComponent,
String[] childTypes) throws TCException {
// TODO Auto-generated method stub
TCComponentBOMLine topLine = null;
if (targetComponent instanceof TCComponentItemRevision) {
TCComponentItemRevision rev = (TCComponentItemRevision) targetComponent;
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
topLine = view.setWindowTopLine(rev.getItem(), rev, null, null);
} else if (targetComponent instanceof TCComponentBOMLine) {
topLine = ((TCComponentBOMLine) targetComponent);
}
boolean hasChildren = topLine.hasChildren();
List<TCComponentItemRevision> revList = new ArrayList<TCComponentItemRevision>();
if (!hasChildren) {
return revList;
}
String revType = "";
AIFComponentContext[] childrena = topLine.getChildren();
for (AIFComponentContext children : childrena) {
TCComponentBOMLine component = (TCComponentBOMLine) children.getComponent();
TCComponentItemRevision itemRevision = component.getItemRevision();
// revType = itemRevision.getProperty("object_type");
revType = itemRevision.getType();
System.out.println("子类对象类型getType()获取的值:" + revType);
for (String type : childTypes) {
System.out.println("子类配置对象类型:" + type);
if (revType.equals(type)) {
revList.add(itemRevision);
break;
}
}
}
return revList;
}
public Date parseDate(String dateString) {
if (dateString == null || dateString.isEmpty()) {
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
return sdf.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
}

@ -15,7 +15,7 @@ public class DialogFrame extends JDialog {
private JComboBox<String> comboBox; private JComboBox<String> comboBox;
private Object syncObject; private Object syncObject;
public DialogFrame(JFrame owner,JComboBox<String> comboBox,ArrayList<String> list) { public DialogFrame(JFrame owner,JComboBox<String> comboBox,ArrayList<String> list) {
super(owner, "选择已有M", true); // 模态对话框 super(owner, "Dialog Window", true); // 模态对话框
this.comboBox = comboBox; this.comboBox = comboBox;
this.syncObject = syncObject; this.syncObject = syncObject;
JButton button = new JButton("È·¶¨"); JButton button = new JButton("È·¶¨");

@ -1,18 +1,5 @@
package com.langtech.plm.mpart; package com.langtech.plm.mpart;
/**
* ===============================================================================
* Copyright (c) 2012-2024 CONNOR lijh. Unpublished - All Rights Reserved
* ===============================================================================
* File description: Mpart
*
* ===============================================================================
* DATE Name Description of Change
*
* ===============================================================================
*/
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
@ -28,7 +15,6 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map.Entry; import java.util.Map.Entry;
@ -51,7 +37,6 @@ import javax.swing.table.TableColumnModel;
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode;
import com.langtech.plm.createProjectStruct.KUtil;
import com.teamcenter.rac.aif.AIFDesktop; import com.teamcenter.rac.aif.AIFDesktop;
import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
@ -77,6 +62,8 @@ import com.teamcenter.rac.util.PropertyLayout;
import k.util.KOrgDialog; import k.util.KOrgDialog;
public class MpartDialog extends JFrame implements ActionListener { public class MpartDialog extends JFrame implements ActionListener {
private TCSession session; private TCSession session;
@ -91,12 +78,12 @@ public class MpartDialog extends JFrame implements ActionListener {
private JTable t_part; private JTable t_part;
private JComboBox<String> gsdwComboBox = new JComboBox<String>(); private JComboBox<String> gsdwComboBox = new JComboBox<String>();
protected DefaultTableModel tm_part; protected DefaultTableModel tm_part;
public static final String[] HEADER = new String[] { "", "序号", "ID", "名称", "件号", "是否自制", "是否存在M", "归属单位","责任人" }; public static final String[] HEADER = new String[] { "","序号", "ID", "名称", "件号", "是否自制", "是否存在M", "归属单位", "工艺小组", "责任人"};
public static final int[] HEADERWIDTH = new int[] { 30, 40, 60, 120, 100, 60, 60, 60, 100 }; public static final int[] HEADERWIDTH = new int[] { 30,40, 60, 120, 100, 60, 60, 60, 60, 100};
private JTable t_part2; private JTable t_part2;
protected DefaultTableModel tm_part2; protected DefaultTableModel tm_part2;
public static final String[] HEADER2 = new String[] {"序号", "对象"}; public static final String[] HEADER2 = new String[] {"序号", "对象"};
public static final int[] HEADERWIDTH2 = new int[] { 10, 100 }; public static final int[] HEADERWIDTH2 = new int[] {10, 60};
private ArrayList<ArrayList<Object>> valueList = new ArrayList<ArrayList<Object>>(); private ArrayList<ArrayList<Object>> valueList = new ArrayList<ArrayList<Object>>();
private HashMap<String, TCComponentItemRevision> objectMap = new HashMap<String, TCComponentItemRevision>(); private HashMap<String, TCComponentItemRevision> objectMap = new HashMap<String, TCComponentItemRevision>();
private ArrayList<TCComponentItemRevision> table2RevList = new ArrayList<TCComponentItemRevision>(); private ArrayList<TCComponentItemRevision> table2RevList = new ArrayList<TCComponentItemRevision>();
@ -104,11 +91,6 @@ public class MpartDialog extends JFrame implements ActionListener {
TCComponentBOMWindow view; TCComponentBOMWindow view;
TCComponentItemType type; TCComponentItemType type;
private String[] groupSplit; private String[] groupSplit;
private HashMap<String, String> fieldsMap = new HashMap<String, String>();
private HashMap<String, String> typesMap = new HashMap<String, String>();
private boolean isInitialized = false;
//static TCComponentGroup group;
//static TCComponentUser user;
public MpartDialog(TCSession session, ArrayList<TCComponentItemRevision> list) throws TCException { public MpartDialog(TCSession session, ArrayList<TCComponentItemRevision> list) throws TCException {
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
@ -116,47 +98,33 @@ public class MpartDialog extends JFrame implements ActionListener {
this.list = list; this.list = list;
viewType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); viewType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
view = viewType.create(null); view = viewType.create(null);
type = (TCComponentItemType) session.getTypeComponent("LY6_ProductM");
initUI(); initUI();
} }
private void initUI() { private void initUI() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
try { try {
String[] fields = session.getPreferenceService().getStringValues("LY6_EPartToMPartType");
for (int i = 0; i < fields.length; i++) {
String[] split = fields[i].split("=");
fieldsMap.put(split[0], split[1]);
String[] split2 = split[0].split(":");
typesMap.put(split2[0], split2[1]);
}
gsdwComboBox.addItemListener(new ItemListener() { gsdwComboBox.addItemListener(new ItemListener() {
@Override @Override
public void itemStateChanged(ItemEvent e) { public void itemStateChanged(ItemEvent e) {
if (!isInitialized) {
// 如果还没有初始化完成,则直接返回,不执行后续代码
return;
}
if (e.getStateChange() == ItemEvent.SELECTED) { if (e.getStateChange() == ItemEvent.SELECTED) {
String selectedItem = (String) gsdwComboBox.getSelectedItem(); String selectedItem = (String) gsdwComboBox.getSelectedItem();
System.out.println("Selected Item: " + selectedItem); System.out.println("Selected Item: " + selectedItem);
// 在这里可以执行其他操作 // 在这里可以执行其他操作
int count = 0; int count = 0;
System.out.println("==========tm_part.getRowCount()=========="+tm_part.getRowCount());
for(int i=0;i<tm_part.getRowCount();i++) { for(int i=0;i<tm_part.getRowCount();i++) {
System.out.println("tm_part.getValueAt(i, 0).toString()========"+tm_part.getValueAt(i, 0).toString());
if(tm_part.getValueAt(i, 0).toString().equals("1")) { if(tm_part.getValueAt(i, 0).toString().equals("1")) {
tm_part.setValueAt(selectedItem, i, 7); tm_part.setValueAt(selectedItem, i, 7);
count++; count++;
} }
}
if(count == 0) { if(count == 0) {
MessageBox.post("请勾选数据!", "提示 ", MessageBox.INFORMATION); MessageBox.post("请勾选数据!", "提示 ", MessageBox.INFORMATION);
return; return;
} }
} }
} }
}
}); });
find.setPreferredSize(new Dimension(200,30)); find.setPreferredSize(new Dimension(200,30));
replace.setPreferredSize(new Dimension(200,30)); replace.setPreferredSize(new Dimension(200,30));
@ -195,6 +163,7 @@ public class MpartDialog extends JFrame implements ActionListener {
factory = split[1]; factory = split[1];
} }
} }
gsdwComboBox.addItem(""); gsdwComboBox.addItem("");
if(factory != null && !factory.isEmpty()) { if(factory != null && !factory.isEmpty()) {
@ -205,11 +174,13 @@ public class MpartDialog extends JFrame implements ActionListener {
} }
// this.setAlwaysOnTop(true); // this.setAlwaysOnTop(true);
//塞值 //塞值
//获取当前组 //获取当前组
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
ArrayList<Object> tempList = new ArrayList<Object>(); ArrayList<Object> tempList = new ArrayList<Object>();
tempList.add(0); tempList.add(0);
@ -230,8 +201,7 @@ public class MpartDialog extends JFrame implements ActionListener {
for (int j = 0; j < split.length; j++) { for (int j = 0; j < split.length; j++) {
TCComponent[] search = session.search("_SearchMFKProperties", new String[] { "ID", "工厂" }, TCComponent[] search = session.search("_SearchMFKProperties", new String[] { "ID","工厂" }, new String[] { revId,split[j] });
new String[] { revId, split[j] });
if(search.length > 0) { if(search.length > 0) {
for (int k = 0; k < search.length; k++) { for (int k = 0; k < search.length; k++) {
@ -265,10 +235,15 @@ public class MpartDialog extends JFrame implements ActionListener {
for (int j = 0; j < valueList.size(); j++) { for (int j = 0; j < valueList.size(); j++) {
ArrayList<Object> arrayList = valueList.get(j); ArrayList<Object> arrayList = valueList.get(j);
tm_part.addRow(new Object[] { arrayList.get(0), arrayList.get(1), arrayList.get(2), arrayList.get(3), tm_part.addRow(new Object[] {arrayList.get(0),arrayList.get(1),arrayList.get(2),
arrayList.get(4), arrayList.get(5), arrayList.get(6), arrayList.get(7), "", "" }); arrayList.get(3),arrayList.get(4),arrayList.get(5),arrayList.get(6),
arrayList.get(7),"",""});
} }
isInitialized = true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return; return;
@ -312,7 +287,7 @@ public class MpartDialog extends JFrame implements ActionListener {
return; return;
} }
if (tm_part.getValueAt(i, 8) == null || tm_part.getValueAt(i, 8).toString().isEmpty()) { if(tm_part.getValueAt(i, 9) == null || tm_part.getValueAt(i, 9).toString().isEmpty()) {
MessageBox.post("请填写第"+(i+1)+"行责任人!", "提示 ", MessageBox.INFORMATION); MessageBox.post("请填写第"+(i+1)+"行责任人!", "提示 ", MessageBox.INFORMATION);
return; return;
} }
@ -323,38 +298,24 @@ public class MpartDialog extends JFrame implements ActionListener {
MessageBox.post("请勾选数据!", "提示 ", MessageBox.INFORMATION); MessageBox.post("请勾选数据!", "提示 ", MessageBox.INFORMATION);
return; return;
} }
KUtil.setByPass(true);
for(int i=0;i<tm_part.getRowCount();i++) { for(int i=0;i<tm_part.getRowCount();i++) {
if(tm_part.getValueAt(i, 0).toString().equals("1")) { if(tm_part.getValueAt(i, 0).toString().equals("1")) {
try { try {
ArrayList<Object> arrayList = valueList.get(i); ArrayList<Object> arrayList = valueList.get(i);
TCComponentItemRevision rev = (TCComponentItemRevision)arrayList.get(9); TCComponentItemRevision rev = (TCComponentItemRevision)arrayList.get(9);
TCComponentItem eItem = rev.getItem();
String eType = eItem.getType();
System.out.println("etype=============" + eType);
type = (TCComponentItemType) session.getTypeComponent(typesMap.get(eType));
TCComponentBOMLine topLine = view.setWindowTopLine(rev.getItem(), rev, null, null); TCComponentBOMLine topLine = view.setWindowTopLine(rev.getItem(), rev, null, null);
int childrenCount = topLine.getChildrenCount(); int childrenCount = topLine.getChildrenCount();
System.out.println("childrenCount========"+childrenCount); System.out.println("childrenCount========"+childrenCount);
TCComponent[] searchLs = session.search("_SearchMFKProperties", new String[] { "ID", "工厂" }, TCComponent[] searchLs = session.search("_SearchMFKProperties", new String[] { "ID","工厂" }, new String[] { (String) arrayList.get(2),(String) tm_part.getValueAt(i, 7) });
new String[] { (String) arrayList.get(2), (String) tm_part.getValueAt(i, 7) });
String ly6_sequenceNum = "0"; String ly6_sequenceNum = "";
//去调用查询查看该工厂最大流水 //去调用查询查看该工厂最大流水
// if(searchLs != null && searchLs.length > 0) { if(searchLs != null && searchLs.length > 0) {
// TCComponentItem mItem = (TCComponentItem)searchLs[0]; TCComponentItem mItem = (TCComponentItem)searchLs[0];
// ly6_sequenceNum = mItem.getStringProperty("ly6_sequenceNum"); ly6_sequenceNum = mItem.getStringProperty("ly6_sequenceNum");
// System.out.println("ly6_sequenceNum==="+ly6_sequenceNum);
// System.out.println("pxuid==========="+mItem.getUid());
// }
//
for (int j = 0; j < searchLs.length; j++) {
TCComponentItem mItem = (TCComponentItem) searchLs[j];
System.out.println(mItem.getUid() + "===========mItem.uid");
String num = mItem.getStringProperty("ly6_sequenceNum");
System.out.println("num===" + num);
System.out.println("ly6_sequenceNum==="+ly6_sequenceNum); System.out.println("ly6_sequenceNum==="+ly6_sequenceNum);
ly6_sequenceNum = getLargerNumber(num, ly6_sequenceNum);
} }
if(childrenCount == 0) { if(childrenCount == 0) {
@ -362,215 +323,62 @@ public class MpartDialog extends JFrame implements ActionListener {
String newID = (String) arrayList.get(2); String newID = (String) arrayList.get(2);
String newRev = type.getNewRev(null); String newRev = type.getNewRev(null);
TCComponentItem item = type.create(newID, newRev, typesMap.get(eType), "", "", null);
TCComponentItemRevision mRev = item.getLatestItemRevision(); TCComponentItem item = type.create(newID, newRev, "LY6_ProductM", "", "", null);
item.setProperty("ly6_company", tm_part.getValueAt(i, 7).toString()); item.setProperty("ly6_company", tm_part.getValueAt(i, 7).toString());
System.out.println("itemUid2============" + item.getUid()); if(ly6_sequenceNum.isEmpty()) {
if (ly6_sequenceNum.isEmpty() || ly6_sequenceNum.equals("0")) {
item.setProperty("ly6_sequenceNum", "01"); item.setProperty("ly6_sequenceNum", "01");
}else { }else {
item.setProperty("ly6_sequenceNum", incrementNumber(ly6_sequenceNum)); item.setProperty("ly6_sequenceNum", incrementNumber(ly6_sequenceNum));
System.out.println("itemUid3============" + item.getUid());
}
// 删除前两个对象
TCComponent delItem1 = session.stringToComponent((String) arrayList.get(2));
if (delItem1 != null) {
System.out.println("delItem1.getUid()====" + delItem1.getUid());
delItem1.delete();
}
TCComponent delItem2 = session
.stringToComponent((String) arrayList.get(2) + (String) tm_part.getValueAt(i, 7));
if (delItem1 != null) {
System.out.println("delItem2.getUid()====" + delItem2.getUid());
delItem2.delete();
}
// 给属性赋值
String fiedsStr = fieldsMap.get(eType + ":" + typesMap.get(eType));
System.out.println("fiedsStr===================" + fiedsStr);
if (fiedsStr != null && !fiedsStr.isEmpty()) {
if (fiedsStr.contains(",")) {
String[] split = fiedsStr.split(",");
System.out.println("split.length===========" + split.length);
for (int j = 0; j < split.length; j++) {
// :分割
String[] split2 = split[j].split(":");
System.out.println("split2.length=================" + split2.length);
if (split2.length == 2) {
// .分割
String[] split3 = split2[0].split("\\.");
System.out.println("split3.length=================" + split3.length);
if (split3.length == 2) {
if (split3[0].equals("item")) {
String[] split4 = split2[1].split("\\.");
if (split4.length == 2) {
if (split4[0].equals("item")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
item.setProperty(split4[1], eItem.getProperty(split3[1]));
} else if (split4[0].equals("rev")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
mRev.setProperty(split4[1], eItem.getProperty(split3[1]));
}
} }
} else if (split3[0].equals("rev")) {
String[] split4 = split2[1].split("\\.");
if (split4.length == 2) {
if (split4[0].equals("item")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
item.setProperty(split4[1], rev.getProperty(split3[1]));
} else if (split4[0].equals("rev")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
System.out.println("value==========================="+rev.getProperty(split3[1]));
mRev.setProperty(split4[1], rev.getProperty(split3[1]));
}
}
}
}
}
}
} else {
// :分割
String[] split2 = fiedsStr.split(":");
if (split2.length == 2) {
// .分割
String[] split3 = split2[0].split("\\.");
System.out.println("split3.length=================" + split3.length);
if (split3.length == 2) {
if (split3[0].equals("item")) {
String[] split4 = split2[1].split("\\.");
if (split4.length == 2) {
if (split4[0].equals("item")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
item.setProperty(split4[1], eItem.getProperty(split3[1]));
} else if (split4[0].equals("rev")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
mRev.setProperty(split4[1], eItem.getProperty(split3[1]));
}
}
} else if (split3[0].equals("rev")) {
String[] split4 = split2[1].split("\\.");
if (split4.length == 2) {
if (split4[0].equals("item")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
item.setProperty(split4[1], rev.getProperty(split3[1]));
} else if (split4[0].equals("rev")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
mRev.setProperty(split4[1], rev.getProperty(split3[1]));
}
}
}
}
}
}
}
//设置 ly6_homemadeStatus
mRev.setProperty("ly6_homemadeStatus", "自制");
String personId = tm_part.getValueAt(i, 8).toString();
String[] split = personId.split("_");
System.out.println("personId========"+split[1]);
mRev.setProperty("ly6_assignUser", split[1] == null || split[1].isEmpty() ? "" : split[1]);
//添加流程 //添加流程
if(workflowTemplate != null || !workflowTemplate.isEmpty()) { if(workflowTemplate != null || !workflowTemplate.isEmpty()) {
CreateProcess(session, mRev, workflowTemplate); CreateProcess(session,item,workflowTemplate);
} }
//把对象放到管理文件夹下 //把对象放到管理文件夹下
rev.add("LY6_relatedMPart",item); rev.add("LY6_relatedMPart",item);
TCComponent[] relatedComponents = rev.getRelatedComponents("TC_Is_Represented_By");
for (int j = 0; j < relatedComponents.length; j++) {
relatedComponents[j].add("representation_for",mRev);
}
item.getLatestItemRevision().refresh(); item.getLatestItemRevision().refresh();
}else { }else {
AIFComponentContext[] children = topLine.getChildren(); AIFComponentContext[] children = topLine.getChildren();
//直接创建对象
String newID = (String) arrayList.get(2);
String newRev = type.getNewRev(null);
//ArrayList<TCComponentItemRevision> addList = new ArrayList<TCComponentItemRevision>();// mbom的子
LinkedHashMap<TCComponentItemRevision, String> addList = new LinkedHashMap<TCComponentItemRevision, String>();
ArrayList<String> childrenList = new ArrayList<String>();// 下拉框选中的值
HashMap<String, ArrayList<Object>> revMap = new HashMap<String, ArrayList<Object>>();// object_String
StringBuilder errMsg = new StringBuilder();
for (int j = 0; j < children.length; j++) {
TCComponentBOMLine eLine = (TCComponentBOMLine) children[j].getComponent();
// 判断是否自制
TCComponentItemRevision eRev = eLine.getItemRevision();
String tcProperty = eRev.getTCProperty("ly6_homemadeStatus").toString();
System.out.println("ly6_homemadeStatus=======" + tcProperty);
String eId = eRev.getStringProperty("item_id");
if (tcProperty.equals("自制")) {
// 判断e下面的m是否唯一
//先循环一遍判断有没有 mpart
ArrayList<TCComponentItemRevision> list = new ArrayList<TCComponentItemRevision>();
for (int k = 0; k < groupSplit.length; k++) {
TCComponent[] search = session.search("_SearchMFKProperties",
new String[] { "ID", "工厂" }, new String[] { eId, groupSplit[k] });
for (int l = 0; l < search.length; l++) {
TCComponentItem tempItem = (TCComponentItem) search[l];
list.add(tempItem.getLatestItemRevision());
}
}
if (list.size() == 0) {
errMsg.append(eId + "对象未创建MPart"+System.lineSeparator());
}
}
TCComponentItem item = type.create(newID, newRev, "LY6_ProductM", "", "", null);
item.setProperty("ly6_company", tm_part.getValueAt(i, 7).toString());
if(ly6_sequenceNum.isEmpty()) {
item.setProperty("ly6_sequenceNum", "01");
}else {
item.setProperty("ly6_sequenceNum", incrementNumber(ly6_sequenceNum));
} }
if(errMsg.length() > 0) { //把对象放到管理文件夹下
MessageBox.post(errMsg.toString(), "提示 ", MessageBox.INFORMATION); rev.add("LY6_relatedMPart",item);
KUtil.setByPass(false); item.getLatestItemRevision().refresh();
return; //搭建mBOM
} TCComponentBOMWindowType viewType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = viewType.create(null);
TCComponentBOMLine mTopLine = view.setWindowTopLine(item, item.getLatestItemRevision(), null, null);
// 和对应版本 ArrayList<TCComponentItemRevision> addList = new ArrayList<TCComponentItemRevision>();//mbom的子
ArrayList<String> childrenList = new ArrayList<String>();//下拉框选中的值
HashMap<String, TCComponentItemRevision> revMap = new HashMap<String, TCComponentItemRevision>();//object_String 和对应版本
for (int j = 0; j < children.length; j++) { for (int j = 0; j < children.length; j++) {
TCComponentBOMLine eLine = (TCComponentBOMLine) children[j].getComponent(); TCComponentBOMLine eLine = (TCComponentBOMLine) children[j].getComponent();
//获取数量
String sl = eLine.getProperty("bl_quantity");
//判断是否自制 //判断是否自制
TCComponentItemRevision eRev = eLine.getItemRevision(); TCComponentItemRevision eRev = eLine.getItemRevision();
String tcProperty = eRev.getTCProperty("ly6_homemadeStatus").toString(); String tcProperty = eRev.getTCProperty("ly6_homemadeStatus").toString();
System.out.println("ly6_homemadeStatus======="+tcProperty); System.out.println("ly6_homemadeStatus======="+tcProperty);
String eId = eRev.getStringProperty("item_id"); String eId = eRev.getStringProperty("item_id");
if(tcProperty.equals("自制")) { if(tcProperty.equals("自制")) {
//判断e下面的m是否唯一
//循环 选择mpart
ArrayList<TCComponentItemRevision> tempMrevList = new ArrayList<TCComponentItemRevision>(); ArrayList<TCComponentItemRevision> tempMrevList = new ArrayList<TCComponentItemRevision>();
for (int k = 0; k < groupSplit.length; k++) { for (int k = 0; k < groupSplit.length; k++) {
TCComponent[] search = session.search("_SearchMFKProperties", TCComponent[] search = session.search("_SearchMFKProperties", new String[] { "ID","工厂" }, new String[] { eId,groupSplit[k] });
new String[] { "ID", "工厂" }, new String[] { eId, groupSplit[k] });
for (int l = 0; l < search.length; l++) { for (int l = 0; l < search.length; l++) {
TCComponentItem tempItem = (TCComponentItem)search[l]; TCComponentItem tempItem = (TCComponentItem)search[l];
@ -578,28 +386,25 @@ public class MpartDialog extends JFrame implements ActionListener {
} }
} }
// if (tempMrevList.size() == 0) { if(tempMrevList.size() == 0) {
// MessageBox.post(eId + "对象未创建MPart", "提示 ", MessageBox.INFORMATION); MessageBox.post(eId+"对象未创建MPart", "提示 ", MessageBox.INFORMATION);
// return; return;
// } else }else if(tempMrevList.size() == 1) {
if (tempMrevList.size() == 1) {
//把M放bom下 //把M放bom下
addList.put(tempMrevList.get(0),sl); addList.add(tempMrevList.get(0));
}else if(tempMrevList.size() > 1) { }else if(tempMrevList.size() > 1) {
//让用户选一个M放bom下 //让用户选一个M放bom下
JComboBox<String> jComboBox = new JComboBox<String>(); JComboBox<String> jComboBox = new JComboBox<String>();
for (int k = 0; k < tempMrevList.size(); k++) { for (int k = 0; k < tempMrevList.size(); k++) {
String stringProperty = tempMrevList.get(k) String stringProperty = tempMrevList.get(k).getStringProperty("object_string");
.getStringProperty("object_string"); revMap.put(stringProperty, tempMrevList.get(k));
ArrayList<Object> tempList = new ArrayList<Object>();
tempList.add(tempMrevList.get(k));
tempList.add(sl);
//tempList.add("1");
revMap.put(stringProperty, tempList);
jComboBox.addItem(stringProperty); jComboBox.addItem(stringProperty);
} }
// 创建并显示模态对话框 // 创建并显示模态对话框
DialogFrame dialog = new DialogFrame(MpartDialog.this,jComboBox,childrenList); DialogFrame dialog = new DialogFrame(MpartDialog.this,jComboBox,childrenList);
dialog.setVisible(true); dialog.setVisible(true);
@ -612,195 +417,36 @@ public class MpartDialog extends JFrame implements ActionListener {
} }
}); });
}
} else {
// 不为自制则直接将EPart搭建进入MBOM中
addList.put(eRev,sl);
}
}
// 直接创建对象
String newID = (String) arrayList.get(2);
String newRev = type.getNewRev(null);
TCComponentItem item = type.create(newID, newRev, typesMap.get(eType), "", "", null);
TCComponentItemRevision mRev = item.getLatestItemRevision();
item.setProperty("ly6_company", tm_part.getValueAt(i, 7).toString());
if (ly6_sequenceNum.isEmpty() || ly6_sequenceNum.equals("0")) {
item.setProperty("ly6_sequenceNum", "01");
} else {
item.setProperty("ly6_sequenceNum", incrementNumber(ly6_sequenceNum));
}
// 删除前两个对象
TCComponent delItem1 = session.stringToComponent((String) arrayList.get(2));
if (delItem1 != null) {
System.out.println("delItem1.getUid()====" + delItem1.getUid());
delItem1.delete();
}
TCComponent delItem2 = session
.stringToComponent((String) arrayList.get(2) + (String) tm_part.getValueAt(i, 7));
if (delItem1 != null) {
System.out.println("delItem2.getUid()====" + delItem2.getUid());
delItem2.delete();
} }
// 给属性赋值
String fiedsStr = fieldsMap.get(eType + ":" + typesMap.get(eType));
System.out.println("fiedsStr===================" + fiedsStr);
if (fiedsStr != null && !fiedsStr.isEmpty()) {
if (fiedsStr.contains(",")) {
String[] split = fiedsStr.split(",");
System.out.println("split.length===========" + split.length);
for (int j = 0; j < split.length; j++) {
// :分割
String[] split2 = split[j].split(":");
System.out.println("split2.length=================" + split2.length);
if (split2.length == 2) {
// .分割
String[] split3 = split2[0].split("\\.");
System.out.println("split3.length=================" + split3.length);
if (split3.length == 2) {
if (split3[0].equals("item")) {
String[] split4 = split2[1].split("\\.");
if (split4.length == 2) {
if (split4[0].equals("item")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
item.setProperty(split4[1], eItem.getProperty(split3[1]));
} else if (split4[0].equals("rev")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
mRev.setProperty(split4[1], eItem.getProperty(split3[1]));
}
}
} else if (split3[0].equals("rev")) {
String[] split4 = split2[1].split("\\.");
if (split4.length == 2) {
if (split4[0].equals("item")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
item.setProperty(split4[1], rev.getProperty(split3[1]));
} else if (split4[0].equals("rev")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
System.out.println("value==========================="+rev.getProperty(split3[1]));
mRev.setProperty(split4[1], rev.getProperty(split3[1]));
}
}
}
}
}
}
}else { }else {
//不为自制则直接将EPart搭建进入MBOM中
addList.add(eRev);
// :分割
String[] split2 = fiedsStr.split(":");
if (split2.length == 2) {
// .分割
String[] split3 = split2[0].split("\\.");
System.out.println("split3.length=================" + split3.length);
if (split3.length == 2) {
if (split3[0].equals("item")) {
String[] split4 = split2[1].split("\\.");
if (split4.length == 2) {
if (split4[0].equals("item")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
item.setProperty(split4[1], eItem.getProperty(split3[1]));
} else if (split4[0].equals("rev")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
mRev.setProperty(split4[1], eItem.getProperty(split3[1]));
}
}
} else if (split3[0].equals("rev")) {
String[] split4 = split2[1].split("\\.");
if (split4.length == 2) {
if (split4[0].equals("item")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
item.setProperty(split4[1], rev.getProperty(split3[1]));
} else if (split4[0].equals("rev")) {
System.out.println("split4[1]========" + split4[1]
+ "split3[1]======" + split3[1]);
mRev.setProperty(split4[1], rev.getProperty(split3[1]));
} }
} }
}
}
}
}
}
//设置 ly6_homemadeStatus
mRev.setProperty("ly6_homemadeStatus", "自制");
String personId = tm_part.getValueAt(i, 8).toString();
String[] split = personId.split("_");
System.out.println("personId========"+split[1]);
mRev.setProperty("ly6_assignUser", split[1] == null || split[1].isEmpty() ? "" : split[1]);
// 把对象放到管理文件夹下
rev.add("LY6_relatedMPart", item);
TCComponent[] relatedComponents = rev.getRelatedComponents("TC_Is_Represented_By");
for (int j = 0; j < relatedComponents.length; j++) {
relatedComponents[j].add("representation_for",mRev);
}
item.getLatestItemRevision().refresh();
// 搭建mBOM
TCComponentBOMWindowType viewType = (TCComponentBOMWindowType) session
.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = viewType.create(null);
TCComponentBOMLine mTopLine = view.setWindowTopLine(item, item.getLatestItemRevision(),
null, null);
System.out.println("childrenList.size()======="+childrenList.size()); System.out.println("childrenList.size()======="+childrenList.size());
for (int j = 0; j < childrenList.size(); j++) { for (int j = 0; j < childrenList.size(); j++) {
ArrayList<Object> temp = revMap.get(childrenList.get(j)); addList.add(revMap.get(childrenList.get(j)));
TCComponentItemRevision object = (TCComponentItemRevision)temp.get(0);
String tempSl = (String)temp.get(1);
addList.put(object,tempSl);
} }
System.out.println("addList.size()============"+addList.size()); System.out.println("addList.size()============"+addList.size());
for (int j = 0; j < addList.size(); j++) {
mTopLine.add(addList.get(j).getItem(), addList.get(j), null, false, "");
for (Entry<TCComponentItemRevision, String> tempAddList : addList.entrySet()) {
TCComponentItemRevision key = tempAddList.getKey();
String value = tempAddList.getValue();
if(value != null && value.equals("1")) {
mTopLine.add(key.getItem(), key, null, false, "");
}else {
TCComponentBOMLine add = mTopLine.add(key.getItem(), key, null, false, "");
System.out.println("add=================="+add.getUid());
add.setProperty("bl_quantity", value);
} }
}
mTopLine.save(); mTopLine.save();
view.save(); view.save();
view.close(); view.close();
//添加流程 //添加流程
if(workflowTemplate != null || !workflowTemplate.isEmpty()) { if(workflowTemplate != null || !workflowTemplate.isEmpty()) {
CreateProcess(session, mRev, workflowTemplate); CreateProcess(session,item,workflowTemplate);
} }
} }
@ -814,7 +460,10 @@ public class MpartDialog extends JFrame implements ActionListener {
} }
MessageBox.post("创建成功!", "提示 ", MessageBox.INFORMATION); MessageBox.post("创建成功!", "提示 ", MessageBox.INFORMATION);
KUtil.setByPass(false);
} else if (this.viewlButton.equals(source)) { } else if (this.viewlButton.equals(source)) {
//打开对象到结构管理器 //打开对象到结构管理器
@ -839,16 +488,14 @@ public class MpartDialog extends JFrame implements ActionListener {
} }
} }
}else if(this.xrButton.equals(source)) { }else if(this.xrButton.equals(source)) {
//KOrgDialog kOrgDialog = new KOrgDialog("");
TCComponentUser user = new KOrgDialog("").getUser(); TCComponentUser user = new KOrgDialog("").getUser();
// TCComponentGroup group = kOrgDialog.getGroup(); System.out.println("Select User: " + user);
//user = kOrgDialog.getUser();
//group = kOrgDialog.getGroup();
//System.out.println("Select User: " + user + "group===" + group);
String userName = ""; String userName = "";
try { try {
userName = user.getUserName()+"_"+user.getUserId(); userName = user.getUserName();
} catch (TCException e1) { } catch (TCException e1) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
MessageBox.post("请选择用户!", "提示 ", MessageBox.INFORMATION); MessageBox.post("请选择用户!", "提示 ", MessageBox.INFORMATION);
@ -857,16 +504,17 @@ public class MpartDialog extends JFrame implements ActionListener {
int count = 0; int count = 0;
for(int i=0;i<tm_part.getRowCount();i++) { for(int i=0;i<tm_part.getRowCount();i++) {
if(tm_part.getValueAt(i, 0).toString().equals("1")) { if(tm_part.getValueAt(i, 0).toString().equals("1")) {
tm_part.setValueAt(userName, i, 8); tm_part.setValueAt(userName, i, 9);
count++; count++;
} }
}
if(count == 0) { if(count == 0) {
MessageBox.post("请勾选数据!", "提示 ", MessageBox.INFORMATION); MessageBox.post("请勾选数据!", "提示 ", MessageBox.INFORMATION);
return; return;
} }
} }
}
} }
@ -898,6 +546,7 @@ public class MpartDialog extends JFrame implements ActionListener {
return topPanel; return topPanel;
} }
private JPanel getTablePanel() { private JPanel getTablePanel() {
JPanel panel = new JPanel(new BorderLayout()); JPanel panel = new JPanel(new BorderLayout());
panel.setPreferredSize(new Dimension(1100, 600)); panel.setPreferredSize(new Dimension(1100, 600));
@ -917,7 +566,8 @@ public class MpartDialog extends JFrame implements ActionListener {
if (column == 5) {// 可编辑的列 if (column == 5) {// 可编辑的列
return true; return true;
} else { }
else {
return false; return false;
} }
}else { }else {
@ -925,15 +575,20 @@ public class MpartDialog extends JFrame implements ActionListener {
if (column == 5) {// 可编辑的列 if (column == 5) {// 可编辑的列
return true; return true;
} else { }
else {
return false; return false;
} }
} }
} }
}; };
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
public void run() { public void run() {
// 添加鼠标监听器 // 添加鼠标监听器
@ -945,7 +600,8 @@ public class MpartDialog extends JFrame implements ActionListener {
int selectColumn = t_part.getTableHeader().columnAtPoint(e.getPoint()); int selectColumn = t_part.getTableHeader().columnAtPoint(e.getPoint());
int selectedRow = t_part.rowAtPoint(e.getPoint()); int selectedRow = t_part.rowAtPoint(e.getPoint());
if (selectColumn != 0) { if(selectColumn != 0)
{
t_part2.removeAll(); t_part2.removeAll();
tm_part2.setRowCount(0); tm_part2.setRowCount(0);
table2RevList.clear(); table2RevList.clear();
@ -962,10 +618,9 @@ public class MpartDialog extends JFrame implements ActionListener {
for (int i = 0; i < tempList.size(); i++) { for (int i = 0; i < tempList.size(); i++) {
TCComponentItemRevision tcComponentItemRevision = tempList.get(i); TCComponentItemRevision tcComponentItemRevision = tempList.get(i);
try { try {
// String id = tcComponentItemRevision.getStringProperty("item_id"); String id = tcComponentItemRevision.getStringProperty("item_id");
// System.out.println("item_id======" + id); System.out.println("item_id======"+id);
String objectName = tcComponentItemRevision String objectName = tcComponentItemRevision.getStringProperty("object_string");
.getStringProperty("object_string");
tm_part2.addRow(new Object[] {i+1,objectName}); tm_part2.addRow(new Object[] {i+1,objectName});
} catch (TCException e1) { } catch (TCException e1) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
@ -991,6 +646,10 @@ public class MpartDialog extends JFrame implements ActionListener {
} }
}); });
// t_part.addMouseListener(new MouseListener() { // t_part.addMouseListener(new MouseListener() {
// //
// @Override // @Override
@ -1106,6 +765,14 @@ public class MpartDialog extends JFrame implements ActionListener {
// jComboBox3.addItem(split[0]); // jComboBox3.addItem(split[0]);
// } // }
// //
// // 添加鼠标监听器 // // 添加鼠标监听器
// t_part.addMouseListener(new MouseAdapter() { // t_part.addMouseListener(new MouseAdapter() {
@ -1127,16 +794,27 @@ public class MpartDialog extends JFrame implements ActionListener {
// } // }
// }); // });
//this.t_part.getTableHeader().setBackground(Color.blue); //this.t_part.getTableHeader().setBackground(Color.blue);
JScrollPane scroll = new JScrollPane(t_part); JScrollPane scroll = new JScrollPane(t_part);
panel.add(BorderLayout.CENTER, scroll); panel.add(BorderLayout.CENTER, scroll);
panel.setBorder(BorderFactory.createLoweredBevelBorder()); panel.setBorder(BorderFactory.createLoweredBevelBorder());
return panel; return panel;
} }
//获取右边的panel
private JPanel getTablePanel2() { private JPanel getTablePanel2() {
JPanel panel = new JPanel(new BorderLayout()); JPanel panel = new JPanel(new BorderLayout());
panel.setPreferredSize(new Dimension(200, 600)); panel.setPreferredSize(new Dimension(200, 600));
@ -1146,29 +824,34 @@ public class MpartDialog extends JFrame implements ActionListener {
* *
*/ */
@Override @Override
public boolean isCellEditable(int row, int column) { public boolean isCellEditable(int row, int column) {
if (column == 0) {// 可编辑的列 if (column == 0) {// 可编辑的列
return true; return true;
} else { }
else {
return false; return false;
} }
} }
}; };
tm_part2.setDataVector(null, HEADER2); tm_part2.setDataVector(null, HEADER2);
t_part2.getTableHeader().setReorderingAllowed(false); // 设置列不可移动,否则会发生类型转换错误(第三列) t_part2.getTableHeader().setReorderingAllowed(false); // 设置列不可移动,否则会发生类型转换错误(第三列)
this.t_part2.setRowHeight(23); this.t_part2.setRowHeight(23);
TableColumnModel colModel = this.t_part2.getColumnModel(); TableColumnModel colModel = this.t_part2.getColumnModel();
int colCnt = HEADERWIDTH2.length; int colCnt = HEADERWIDTH2.length;
for (int i = 0; i < colCnt; i++) { for (int i = 0; i < colCnt; i++) {
colModel.getColumn(i).setPreferredWidth(HEADERWIDTH2[i]); colModel.getColumn(i).setPreferredWidth(HEADERWIDTH2[i]);
} }
// t_part2.getTableHeader().setDefaultRenderer(new //t_part2.getTableHeader().setDefaultRenderer(new CheckHeaderCellRenderer(t_part2));
// CheckHeaderCellRenderer(t_part2)); //t_part2.getColumnModel().getColumn(0).setCellRenderer(new TableCellCheckboxRenderer(t_part2));
// t_part2.getColumnModel().getColumn(0).setCellRenderer(new
// TableCellCheckboxRenderer(t_part2));
// t_part2.addMouseListener(new MouseListener() { // t_part2.addMouseListener(new MouseListener() {
// //
// @Override // @Override
@ -1237,11 +920,20 @@ public class MpartDialog extends JFrame implements ActionListener {
// } // }
// }); // });
// this.t_part2.getTableHeader().setBackground(Color.blue); // this.t_part2.getTableHeader().setBackground(Color.blue);
JScrollPane scroll = new JScrollPane(t_part2); JScrollPane scroll = new JScrollPane(t_part2);
panel.add(BorderLayout.CENTER, scroll); panel.add(BorderLayout.CENTER, scroll);
panel.setBorder(BorderFactory.createLoweredBevelBorder()); panel.setBorder(BorderFactory.createLoweredBevelBorder());
return panel; return panel;
} }
@ -1250,13 +942,14 @@ public class MpartDialog extends JFrame implements ActionListener {
TCComponentGroup group = session.getCurrentGroup(); TCComponentGroup group = session.getCurrentGroup();
String name = group.getTCProperty("full_name").getStringValue(); String name = group.getTCProperty("full_name").getStringValue();
if(name.contains(".")) { if(name.contains(".")) {
String[] split = name.split("\\."); String[] split = name.split(".");
name = split[split.length - 1]; name = split[split.length];
System.out.println("name=============="+name); System.out.println("name=============="+name);
} }
return name; return name;
} }
/** /**
* 1011 * 1011
* *
@ -1281,40 +974,18 @@ public class MpartDialog extends JFrame implements ActionListener {
return formattedNumber; return formattedNumber;
} }
//创建流程
public static void CreateProcess(TCSession session, TCComponent target, String processName) throws TCException { public static void CreateProcess(TCSession session, TCComponent target, String processName) throws TCException {
try { try {
TCComponentProcessType processType = (TCComponentProcessType)session.getTypeComponent("Job"); TCComponentProcessType processType = (TCComponentProcessType)session.getTypeComponent("Job");
TCComponentTaskTemplateType taskTemplateType = (TCComponentTaskTemplateType) session TCComponentTaskTemplateType taskTemplateType = (TCComponentTaskTemplateType)session.getTypeComponent("EPMTaskTemplate");
.getTypeComponent("EPMTaskTemplate");
TCComponentTaskTemplate taskTemplate = taskTemplateType.find(processName, 0); TCComponentTaskTemplate taskTemplate = taskTemplateType.find(processName, 0);
if (taskTemplate != null) { if (taskTemplate != null) {
String name = target.getProperty("object_string"); String name = target.getProperty("object_string");
TCComponent create = processType.create(processName + "" + name, "", taskTemplate, processType.create(processName + "" + name, "", taskTemplate, new TCComponent[]{target}, new int[]{1});
new TCComponent[] { target }, new int[] { 1 });
System.out.println("uid===================" + create.getUid());
System.out.println("type==" + create.getType());
System.out.println("type==" + create.getStringProperty("object_type"));
} }
} catch (TCException var7) { } catch (TCException var7) {
var7.printStackTrace(); var7.printStackTrace();
throw var7; throw var7;
} }
} }
public String getLargerNumber(String num1, String num2) {
if (num1 == null || num1.isEmpty()) {
return num2;
}
// 将字符串转换为整数
int n1 = Integer.parseInt(num1);
int n2 = Integer.parseInt(num2);
// 比较两个整数,返回较大的一个的字符串形式
if (n1 > n2) {
return num1;
} else {
return num2;
}
}
} }

@ -10,7 +10,6 @@ import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
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.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentSchedule; import com.teamcenter.rac.kernel.TCComponentSchedule;
import com.teamcenter.rac.kernel.TCComponentScheduleTask; import com.teamcenter.rac.kernel.TCComponentScheduleTask;
@ -63,19 +62,6 @@ public class MpartHandler extends AbstractHandler{
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
}else if(component instanceof TCComponentBOMLine) {
TCComponentBOMLine bomLine = (TCComponentBOMLine)component;
try {
TCComponentItemRevision itemRevision = bomLine.getItemRevision();
String type = itemRevision.getType();
System.out.println("type2================"+type);
if(types[0].contains(type)) {
arrayList.add((TCComponentItemRevision)itemRevision);
}
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
} }

@ -40,7 +40,7 @@ public class TableCellCheckboxRenderer extends JCheckBox implements
// TODO Auto-generated method stub // TODO Auto-generated method stub
this.setHorizontalAlignment(SwingConstants.CENTER);// 表头标签剧中 this.setHorizontalAlignment(SwingConstants.CENTER);// 表头标签剧中
// this.setBorderPainted(true); // this.setBorderPainted(true);
System.out.println("valuevaluevalue==="+value);
if(value != null) if(value != null)
{ {
this.setSelected(value.toString().equals("1")); this.setSelected(value.toString().equals("1"));

@ -1,743 +0,0 @@
package com.langtech.plm.project;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentBOMWindow;
import com.teamcenter.rac.kernel.TCComponentBOMWindowType;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentMEOP;
import com.teamcenter.rac.kernel.TCComponentMEOPRevision;
import com.teamcenter.rac.kernel.TCComponentTcFile;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCPreferenceService;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
import com.teamcenter.rac.util.UIUtilities;
public class CalculateDialog extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private AbstractAIFApplication application;
private TCComponentMEOPRevision meop;
private TCSession session;
TCComponentItemRevision rawMaterialRevision;
//打印界面控件
//图纸零件轮廓直径D
private JLabel zjdLabel;
private JTextField zjdTextField;
//图纸零件轮廓长
private JLabel lkcLabel;
private JTextField lkcTextField;
//切断用长度
private JLabel qdycdLabel;
private JTextField qdycdTextField;
//车端面用长度
private JLabel cdmycdLabel;
private JTextField cdmycdTextField;
//夹头用长度
private JLabel jtycdLabel;
private JTextField jtycdTextField;
//可制零件数
private JLabel kzljsLabel;
private JTextField kzljsTextField;
//规格
private JLabel ggLabel;
private JTextField ggTextField;
//材料牌号
private JLabel clphLabel;
private JTextField clphTextField;
//计算结果控件
//总长
private JLabel zcLabel;
private JTextField zcTextField;
//单件长度
private JLabel djcdLabel;
private JTextField djcdTextField;
//单件重量
private JLabel djzlLabel;
private JTextField djzlTextField;
//标准工时
private JLabel bzgsLabel;
private JTextField bzgsTextField;
//辅助工时
private JLabel fzgsLabel;
private JTextField fzgsTextField;
//计算按钮
private JButton calculateButton;
//同步按钮
private JButton syncButton;
//取消按钮
private JButton celButton;
//密度
private String density;
//横截面
private String crossSection;
//辅助时间
private String auxiliaryTime;
//固定时间
private String fixedTime;
//切割时间
private String cuttingTime;
public CalculateDialog(AbstractAIFApplication application,TCComponentMEOPRevision meop) throws TCException {
this.application = application;
this.meop = meop;
this.session = (TCSession) application.getSession();
initUI();
getProperties(this.meop);
}
private JPanel getTopPanel() {
JPanel centerPanel = new JPanel(new PropertyLayout());
centerPanel.add("1.1.left.top",this.zjdLabel);
centerPanel.add("1.2.left.top",this.zjdTextField);
centerPanel.add("2.1.left.top",this.lkcLabel);
centerPanel.add("2.2.left.top",this.lkcTextField);
centerPanel.add("3.1.left.top",this.qdycdLabel);
centerPanel.add("3.2.left.top",this.qdycdTextField);
centerPanel.add("4.1.left.top",this.cdmycdLabel);
centerPanel.add("4.2.left.top",this.cdmycdTextField);
centerPanel.add("5.1.left.top",this.jtycdLabel);
centerPanel.add("5.2.left.top",this.jtycdTextField);
centerPanel.add("6.1.left.top",this.kzljsLabel);
centerPanel.add("6.2.left.top",this.kzljsTextField);
centerPanel.add("7.1.left.top",this.ggLabel);
centerPanel.add("7.2.left.top",this.ggTextField);
centerPanel.add("8.1.left.top",this.clphLabel);
centerPanel.add("8.2.left.top",this.clphTextField);
centerPanel.add("1.3.left.top",this.zcLabel);
centerPanel.add("1.4.left.top",this.zcTextField);
centerPanel.add("2.3.left.top",this.djcdLabel);
centerPanel.add("2.4.left.top",this.djcdTextField);
centerPanel.add("3.3.left.top",this.djzlLabel);
centerPanel.add("3.4.left.top",this.djzlTextField);
centerPanel.add("4.3.left.top",this.bzgsLabel);
centerPanel.add("4.4.left.top",this.bzgsTextField);
centerPanel.add("5.3.left.top",this.fzgsLabel);
centerPanel.add("5.4.left.top",this.fzgsTextField);
centerPanel.add("6.3.left.top",this.calculateButton);
return centerPanel;
}
/**
*
*/
private void setPanelProperties() {
this.zjdLabel = new JLabel("图纸零件轮廓直径D");
this.lkcLabel = new JLabel("图纸零件轮廓长");
this.qdycdLabel = new JLabel("切断用长度");
this.cdmycdLabel = new JLabel("车端面用长度");
this.jtycdLabel = new JLabel("夹头用长度");
this.kzljsLabel = new JLabel("可制零件数");
this.ggLabel = new JLabel("规格");
this.clphLabel = new JLabel("材料牌号");
this.zcLabel = new JLabel("总长");
this.djcdLabel = new JLabel("单件长度");
this.djzlLabel = new JLabel("单件重量");
this.bzgsLabel = new JLabel("标准工时");
this.fzgsLabel = new JLabel("辅助工时");
this.zjdTextField = new JTextField(32);
this.lkcTextField = new JTextField(32);
this.qdycdTextField = new JTextField(32);
this.cdmycdTextField = new JTextField(32);
this.jtycdTextField = new JTextField(32);
this.kzljsTextField = new JTextField(32);
this.ggTextField = new JTextField(32);
this.ggTextField.setEditable(false);
this.ggTextField.setBackground(new Color(200, 200, 200));
this.clphTextField = new JTextField(32);
this.clphTextField.setEditable(false);
this.ggTextField.setBackground(new Color(200, 200, 200));
this.zcTextField = new JTextField(32);
this.djcdTextField = new JTextField(32);
this.djzlTextField = new JTextField(32);
this.bzgsTextField = new JTextField(32);
this.fzgsTextField = new JTextField(32);
this.calculateButton = new JButton("计算");
this.syncButton = new JButton("同步");
this.celButton = new JButton("取消");
}
/**
*
* @return
*/
private JPanel getButtomPanel() {
JPanel bottomPanel = new JPanel(new FlowLayout(1));
// bottomPanel.add(this.calculateButton);
bottomPanel.add(this.syncButton);
bottomPanel.add(this.celButton);
return bottomPanel;
}
/**
*
*/
private void initUI() {
this.setTitle("材料定额及工时计算");
this.setSize(500, 500);
this.setLayout(new BorderLayout());
setPanelProperties();
JPanel centerPanel = getTopPanel();
JPanel bottomPanel = getButtomPanel();
this.add(centerPanel,BorderLayout.CENTER);
this.add(bottomPanel,BorderLayout.SOUTH);
//添加事件
this.calculateButton.addActionListener(this);
this.syncButton.addActionListener(this);
this.celButton.addActionListener(this);
//放到屏幕中央
UIUtilities.centerToScreen(this);
this.setVisible(true);
}
/**
* MEOP
* @param meop
* @throws TCException
*/
private void getProperties(TCComponentMEOPRevision meop) throws TCException {
String outlineDiameter = meop.getStringProperty("ly6_outlineDiameter");
String outlineLength = meop.getStringProperty("ly6_outlineLength");
String cuttingLength = meop.getStringProperty("ly6_cuttingLength");
String transverseLength = meop.getStringProperty("ly6_transverseLength");
String colletLength = meop.getStringProperty("ly6_colletLength");
String manufacturingQuantity =meop.getStringProperty("ly6_manufacturableQuantity");
//规格和牌号单独从bomline下的子项中取得
String specifications = null;
String brandNum = null;
// String specifications = meop.getStringProperty("ly6_specifications");
// String brandNum = meop.getStringProperty("ly6_material");
TCComponentItem item = meop.getItem();
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
// 创建视图:传入参数-版本规则(精确、具有状态···),不给则获取默认规则
TCComponentBOMWindow view = winType.create(null);
// 发送BOM创建BOM。将item对象发送到BOM即为创建了一个BOM行 args:item对象 版本对象 ...
TCComponentBOMLine topBomLine = view.setWindowTopLine(item, meop, null, null);
topBomLine.lock();
if (topBomLine.hasChildren()) {
System.out.println("dialog当前对象存在bom子行");
AIFComponentContext[] childrens = topBomLine.getChildren();
int tag = 0;
for (AIFComponentContext children : childrens) {
TCComponentBOMLine bomLine = (TCComponentBOMLine)children.getComponent();
TCComponentItemRevision itemRevision = bomLine.getItemRevision();
String childType = itemRevision.getType();
System.out.println("当前通过bomline子项获取到子项类型"+childType);
if (childType.equals("LY6_RawMaterial") || childType.equals("LY6_RawMaterialRevision")) {
System.out.println("成功获取到当前对象关联的“原材料”对象!");
specifications = itemRevision.getStringProperty("ly6_specifications");
brandNum = itemRevision.getStringProperty("ly6_material");
System.out.println("获取到规格:"+specifications);
System.out.println("获取到牌号:"+brandNum);
tag ++;
break;
}
}
if (tag == 0) {//bomline的子项中没有类型为LY6_RawMaterialRevision的对象
MessageBox.post("未绑定原材料对象","提示",MessageBox.INFORMATION);
//todo burangjisuan
topBomLine.unlock();
view.close();
//关闭
this.setVisible(false);
//释放
this.dispose();
return;
}
}else {
MessageBox.post("未绑定原材料对象","提示",MessageBox.INFORMATION);
//todo burangjisuan
topBomLine.unlock();
view.close();
//关闭
this.setVisible(false);
//释放
this.dispose();
return;
}
topBomLine.unlock();
view.close();
this.zjdTextField.setText(outlineDiameter != null ? outlineDiameter : "");
this.lkcTextField.setText(outlineLength != null ? outlineLength : "");
this.qdycdTextField.setText(cuttingLength != null ? cuttingLength : "");
this.cdmycdTextField.setText(transverseLength != null ? transverseLength : "");
this.jtycdTextField.setText(colletLength != null ? colletLength : "");
this.kzljsTextField.setText(manufacturingQuantity != null ? manufacturingQuantity : "");
this.ggTextField.setText(specifications != null ? specifications : "");
this.clphTextField.setText(brandNum != null ? brandNum : "");
}
/**
*
* @return
*/
private String calculateTotalLength() {
// 获取各个 TextField 的内容
String lkcText = this.lkcTextField.getText();
String qdycdText = this.qdycdTextField.getText();
String cdmycdText = this.cdmycdTextField.getText();
String kzljsText = this.kzljsTextField.getText();
String jtycdText = this.jtycdTextField.getText();
// 将字符串转换为数值
double lkcValue = Double.parseDouble(lkcText);
double qdycdValue = Double.parseDouble(qdycdText);
double cdmycdValue = Double.parseDouble(cdmycdText);
double kzljsValue = Double.parseDouble(kzljsText);
double jtycdValue = Double.parseDouble(jtycdText);
// 计算结果
double result = (lkcValue + qdycdValue + cdmycdValue) * kzljsValue + jtycdValue;
System.out.println("图纸轮廓长:"+lkcValue+"切断用长度:"+qdycdValue+"车端面用长度:"+cdmycdValue+"可制零件数:"+kzljsValue+"夹头用长度:"+jtycdValue);
// double cm = result / 10.0;
String formattedCm = String.format("%.2f", result);
return formattedCm;
}
/**
*
* @return
*/
private String calculateSingleLength(){
String zcText = this.zcTextField.getText();
String kzljsText = this.kzljsTextField.getText();
double zcValue = Double.parseDouble(zcText);
double kzljsValue = Double.parseDouble(kzljsText);
if (kzljsValue == 0){
System.out.println("可制零件数 is 0");
}
double result = zcValue / kzljsValue;
System.out.println("总长:"+zcValue+"可制零件数:"+kzljsValue);
// double cm = result / 10.0;
String format = String.format("%.2f", result);
return format;
}
private void downLoadFile(File file) throws Exception {
FileInputStream inputStream = new FileInputStream(file);
// 指定文件保存的本地路径
String localFilePath = "C:\\"+file.getName();
try {
// 创建目标路径
Path path = Paths.get(localFilePath);
// 将输入流写入到本地文件
Files.copy(inputStream, path);
System.out.println("文件已成功保存: "+localFilePath);
} catch (Exception e) {
e.printStackTrace();
System.out.println("保存文件时发生错误!");
} finally {
// 关闭输入流以释放资源
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* uidEXCEL
* uiditem
* EXCEL
* @throws Exception
*/
private void getDataset(){
System.out.println("getDataset");
TCPreferenceService preferenceService = session.getPreferenceService();
String itemId = preferenceService.getStringValue("LY6_MEOPTypeTime");
InterfaceAIFComponent[] resultComponents;
try {
resultComponents = session.search("零组件...", new String[] {"零组件 ID"}, new String[] {itemId});
InterfaceAIFComponent component = resultComponents[0];
if (component instanceof TCComponentItem){
TCComponentItem item = (TCComponentItem) component;
//读取item下已发布最新版本规范关系下的MSEXCEL数据集
TCComponentItemRevision[] releasedItemRevisions = item.getReleasedItemRevisions();
int releaseRevNum = releasedItemRevisions.length;
if (releaseRevNum == 0) {
System.out.println("错误:当前对象下不存在发布版本");
}
TCComponentItemRevision tcComponentItemRevision = releasedItemRevisions[releaseRevNum - 1];
//获取当前版本的规范关系下的数据集
TCComponent[] referenceListProperty = tcComponentItemRevision.getReferenceListProperty("IMAN_specification");
if(referenceListProperty.length>0) {
System.out.println("规范关系下的数据集数量:"+referenceListProperty.length);
//获取第一个数据集下具体的引用文件
TCComponentTcFile[] tcFiles = ((TCComponentDataset)referenceListProperty[0]).getTcFiles();
if (tcFiles.length > 0) {
// System.out.println("数据集下引用文件的数量" + tcFiles.length);
File file = tcFiles[0].getFmsFile();
// if (file.exists()) {
// System.out.println("开始下载!");
// downLoadFile(file);
// }
System.out.println("获取到数据集文件:"+file.getName());
// 根据横截面积获取数据集-excel表中对应的条目数据辅助时间、固定时间、切割时间
FileInputStream fis = new FileInputStream(file);
Workbook workbook = new HSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0);
//从第3条开始逐行数据(前两条是标题和首行栏)
for (int i = 2; i < sheet.getPhysicalNumberOfRows(); i++) {
Row row = sheet.getRow(i);
//获取表中每行的第一个值,即:直径
// double diam = row.getCell(0).getNumericCellValue();
String diam = row.getCell(0).getStringCellValue();
// 根据规格匹配数据集表中的直径
if (diam.equals(this.ggTextField.getText())){
// if (diam == Double.parseDouble(this.ggTextField.getText())){
System.out.println("=========》直径匹配成功!开始获取辅助工时和标准工时"+"=========》当前行号:"+(i+1)+",当前行的直径:"+diam);
//获取第11列的值标准工时
this.bzgsTextField.setText(row.getCell(10).getStringCellValue());
//获取第12列的值辅助工时
this.fzgsTextField.setText(row.getCell(11).getStringCellValue());
break;
}
}
workbook.close();
}else {
System.out.println("获取数据集文件失败!");
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* @return
*/
private String calculateAssistTime() {
String result = null;
double kzljsNum = Double.parseDouble(this.kzljsTextField.getText());
if (kzljsNum > 0){
double auxiliaryTimeNum = Double.parseDouble(this.auxiliaryTime);
double fixedTimeNum = Double.parseDouble(this.fixedTime);
double resultNum = Math.round((auxiliaryTimeNum + fixedTimeNum) / kzljsNum / 60 * 100.0) / 100.0;
System.out.println("辅助时间:"+auxiliaryTimeNum+",固定时间:"+fixedTimeNum+",可制零件数:"+kzljsNum);
result = String.valueOf(resultNum);
}
return result;
}
/**
*
* @return
*/
private String calculateStandardTime() {
String result = null;
double kzljsNum = Double.parseDouble(this.kzljsTextField.getText());
if (kzljsNum > 0){
System.out.println("=========>获取到的切割时间:"+this.cuttingTime);
double cuttingTimeNum = Double.parseDouble(this.cuttingTime);
double resultNum = Math.round((cuttingTimeNum / kzljsNum / 60) * 100.0) / 100.0;
System.out.println("切割时间:"+cuttingTimeNum+",可制零件数:"+kzljsNum);
result = String.valueOf(resultNum);
}
return result;
}
/**
*
* @throws TCException
*/
private void getDensityAndCrossSection() throws TCException {
System.out.println("=========>开始获取密度和横截面getDensityAndCrossSection");
// 1.获取当前选中MEOP对象的BOM行
TCComponentMEOP meopItem = (TCComponentMEOP) meop.getItem();
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) this.session.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
TCComponentBOMLine bomLine = view.setWindowTopLine(meopItem, meop, null, null);
// 2.遍历BOM行根据“规格”和“材料”检索符合要求的唯一原材料对象
throughBomline(bomLine);
view.close();
}
/**
* bomlinebom
* @param topBomLine BOM
*/
private void throughBomline(TCComponentBOMLine topBomLine) throws TCException{
// 3.获取原材料对象的密度和横截面
boolean hasChildren = topBomLine.hasChildren();
if (hasChildren) {
AIFComponentContext[] childrens = topBomLine.getChildren();
for (AIFComponentContext children : childrens) {
TCComponentBOMLine bomLine = (TCComponentBOMLine) children.getComponent();
//获取当前bom的事例类型若是投料则到当前bom对应的是原材料对象
String propertyValue = bomLine.getProperty("bl_occ_type");
if ("投料".equals(propertyValue)) {
//通过原材料对象获取密度和横截面
this.rawMaterialRevision = bomLine.getItemRevision();
String densityString = rawMaterialRevision.getProperty("ly6_density");
String crossSectionString = rawMaterialRevision.getProperty("ly6_crossSection");
System.out.println("==========》成功取得当前原材料对象对应的密度:"+densityString+",横截面:"+crossSectionString);
this.density = densityString != null ? densityString : "";
this.crossSection = crossSectionString != null ? crossSectionString : "";
System.out.println("000");
break;
}
throughBomline(bomLine);
}
}
}
/**
*
* @return
* @throws TCException
*/
private String calculateWeight(){
System.out.println("calculateWeight");
//通过获取当前选中对象的bom下关联的原材料对象获取其密度和横截面
try {
getDensityAndCrossSection();
} catch (TCException e) {
e.printStackTrace();
}
//获取横截面和密度、单件长度,计算单件重量
double crossSectionNum = Double.parseDouble(this.crossSection);
double densityNum = 0;
if (this.density.contentEquals("")) {
densityNum = 0;
}else {
densityNum = Double.parseDouble(this.density);
}
double siglengthNum = Double.parseDouble(this.djcdTextField.getText());
double result = crossSectionNum * densityNum * siglengthNum;
System.out.println("横截面:"+crossSectionNum+",密度:"+densityNum+",单件长度:"+siglengthNum);
double kg = result / 10000.0;
String formattedKg = String.format("%.2f", kg);
return formattedKg;
}
/**
*
* @throws TCException
*/
private void saveProperty() throws TCException {
try {
meop.setProperty("ly6_specifications", this.ggTextField.getText() == null ? "" : this.ggTextField.getText());
// rawMaterialRevision.setProperty("ly6_specifications", this.ggTextField.getText() == null ? "" : this.ggTextField.getText());
meop.setProperty("ly6_totalLenght", this.zcTextField.getText() == null ? "" : this.zcTextField.getText());
meop.setProperty("ly6_singleLength", this.djcdTextField.getText() == null ? "" : this.djcdTextField.getText());
meop.setProperty("ly6_weight", this.djzlTextField.getText() == null ? "" : this.djzlTextField.getText());
meop.setProperty("ly6_standardTime", this.bzgsTextField.getText() == null ? "" : this.bzgsTextField.getText());
meop.setProperty("ly6_auxiliaryTime", this.fzgsTextField.getText() == null ? "" : this.fzgsTextField.getText());
// rawMaterialRevision.setProperty("ly6_material", this.clphTextField.getText() == null ? "" : this.clphTextField.getText());
meop.setProperty("ly6_brandNum", this.clphTextField.getText() == null ? "" : this.clphTextField.getText());
meop.setProperty("ly6_outlineDiameter", this.zjdTextField.getText() == null ? "" : this.zjdTextField.getText());
meop.setProperty("ly6_outlineLength", this.lkcTextField.getText() == null ? "" : this.lkcTextField.getText());
meop.setProperty("ly6_cuttingLength", this.qdycdTextField.getText() == null ? "" : this.qdycdTextField.getText());
meop.setProperty("ly6_transverseLength", this.cdmycdTextField.getText()== null ? "" : this.cdmycdTextField.getText());
meop.setProperty("ly6_colletLength", this.jtycdTextField.getText() == null ? "" : this.jtycdTextField.getText());
meop.setProperty("ly6_manufacturableQuantity", this.kzljsTextField.getText() == null ? "" : this.kzljsTextField.getText());
}catch (Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
}
}
/**
* M
* @throws TCException
*/
private void checkMaterial() throws TCException {
try {
System.out.println("开始检查M物料下的挂载情况·········");
boolean isGZ=false;
TCComponent[] whereUsed = meop.whereUsed((short) 0);
for (TCComponent tcComponent : whereUsed) {
//获取到当前工序对象的父级对象-tcComponent
String mepRevisionType = tcComponent.getStringProperty("object_type");
//获取首选项中的工艺对象类型,进行匹配
TCSession session = (TCSession) this.application.getSession();
TCPreferenceService preferenceService = session.getPreferenceService();
//根据首选项的名称-C8MyPreference,获取首选项值
String value = preferenceService.getStringValue("LY6_MEPType");
String[] strings = value.split(",");
for (int i = 0; i < whereUsed.length; i++) {
//工艺对象类型匹配,进行:原材料对象比对
if (strings[i].equals(mepRevisionType)) {
System.out.println("========>工艺类型匹配成功");
if (tcComponent instanceof TCComponentItemRevision) {
System.out.println("====>获取到的工艺对象:"+tcComponent.getObjectString());
TCComponentItemRevision mepRevision = (TCComponentItemRevision) tcComponent;
//获取工艺对象下的物料/制造对象:relatedRevision\\relatedItem
TCComponent relatedComponent = mepRevision.getRelatedComponent("IMAN_METarget");
TCComponentItemRevision relatedRevision = (TCComponentItemRevision) relatedComponent;
TCComponentItem relatedItem = relatedRevision.getItem();
//检查当前物料对象下是否挂在了原材料对象
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
//获取物料对象/制造对象对应的bomline
TCComponentBOMLine bomLine = view.setWindowTopLine(relatedItem, relatedRevision, null, null);
//遍历该物料制造对象的bomline下是否挂在了原材料对象
if (bomLine.hasChildren()) {
AIFComponentContext[] childrens = bomLine.getChildren();
for(AIFComponentContext children:childrens) {
TCComponentBOMLine childrenBomLine = (TCComponentBOMLine) children.getComponent();
TCComponentItemRevision itemRevision = childrenBomLine.getItemRevision();
String uidTag = itemRevision.getUid();
String materialRevUid = this.rawMaterialRevision.getUid();
if (uidTag.equals(materialRevUid)) {
System.out.println("M物料对象下已经挂载原材料对象············");
//M物料对象下挂载了原材料对象
isGZ = true;
break;
}
}
}
//M物料对象下没有挂载原材料对象
if (!isGZ) {
System.out.println("M物料对象下没有挂载原材料对象开始挂载······");
view.lock();
TCComponentItem materialItem = this.rawMaterialRevision.getItem();
bomLine.add(materialItem,this.rawMaterialRevision,null,false,"");
bomLine.save();
view.unlock();
}
// BOMWindow用完后必须关闭
view.close();
}else {
System.out.println("非版本对象异常");
}
break;
}
}
}
}catch (Exception e){
e.printStackTrace();
System.out.println(e.getMessage());
}
}
/**
*
*/
@Override
public void actionPerformed(ActionEvent e) {
Object sourceObject = e.getSource();
//如果点击“计算”按钮
if(sourceObject.equals(this.calculateButton)) {
try {
//长度计算
this.zcTextField.setText(calculateTotalLength());
this.djcdTextField.setText(calculateSingleLength());
// 单件重量计算
this.djzlTextField.setText(calculateWeight());
// 工时计算
getDataset();
// this.bzgsTextField.setText(calculateStandardTime());
// this.fzgsTextField.setText(calculateAssistTime());
}catch (Exception e1){
MessageBox.post("计算失败,请检查属性或手动维护", "提示", MessageBox.ERROR);
e1.printStackTrace();
}
} else if (sourceObject.equals(this.syncButton)) {
//如果点击“同步”按钮,属性反写
try {
saveProperty();
//检查M物料
checkMaterial();
MessageBox.post("同步成功", "结果", MessageBox.INFORMATION);
this.setVisible(false);
this.dispose();
} catch (TCException e1) {
e1.printStackTrace();
}
}else {
//如果点击“取消”按钮
//关闭
this.setVisible(false);
//释放
this.dispose();
}
}
}

@ -1,121 +0,0 @@
package com.langtech.plm.project;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentMEOP;
import com.teamcenter.rac.kernel.TCComponentMEOPRevision;
import com.teamcenter.rac.kernel.TCPreferenceService;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.List;
public class CalculateHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
TCSession session = (TCSession) app.getSession();
try {
new Thread(){
@Override
public void run() {
// TODO 1.获取选中对象类型和工序名称
//获取选中对象的拼接字符串
InterfaceAIFComponent selectComponent = app.getTargetContext().getComponent();
// 获取选中对象的类型和名称
String type = selectComponent.getType();
String name;
boolean existTag = false;
InterfaceAIFComponent[] resultComponents = null;
System.out.println("当前选中对象类型type"+type);
try {
//TODO 获取选中对象的type如果是Mfg0BvrOperation则说明是工艺构建器下的对象可通过真实名称bl_item_item_id获取选中对象的零组件ID以此获得该零组件的类型
if (type.equals("Mfg0BvrOperation")) {
List<String> entryNames = new ArrayList<String>();
List<String> entryValues = new ArrayList<String>();
String lzj_id = selectComponent.getProperty("bl_item_item_id");
String lzj_rev = selectComponent.getProperty("bl_rev_item_revision_id");
System.out.println("工艺构建器下选中对象的零组件ID="+lzj_id);
entryNames.add("零组件 ID");
entryNames.add("版本");
entryValues.add(lzj_id);
entryValues.add(lzj_rev);
resultComponents = session.search(
"零组件版本...",
entryNames.toArray(new String[entryNames.size()]),
entryValues.toArray(new String[entryNames.size()]));
if(resultComponents != null) {
type = resultComponents[0].getType();
System.out.println("获取到制造工艺规划器下对象的类型="+type);
}else {
MessageBox.post("没有查询到制造工艺规划器下对象对应的零组件","查询结果",MessageBox.INFORMATION);
}
}
name = selectComponent.getProperty("object_name");
// 2.获取首选项字符串数组,并遍历比较(当前选中对象的类型+工序名称拼接字符串)
TCPreferenceService preferenceService = session.getPreferenceService();
//根据首选项的名称-C8MyPreference,获取首选项值
String[] preferenceValues = preferenceService.getStringValues("LY6_MEOPType");
if (preferenceValues == null) {
MessageBox.post("首选项为空,请先设置首选项!","提示",MessageBox.INFORMATION);
}
for (String string : preferenceValues){
System.out.println("首选项LY6_MEOPType配置的信息string"+string);
if (type.equals(string)){
System.out.println("当前选中对象的类型与首选项配置类型匹配:"+type+"==>"+string);
existTag = true;
break;
}
}
if (!existTag){
//3.如果和首选项中的值不匹配,则弹出提示框,提示“对象类型不正确”,并返回
System.out.println("对象类型不正确当前选中对象type="+type);
MessageBox.post("对象类型不正确","提示",MessageBox.INFORMATION);
}else {
System.out.println("选中对象类型匹配!");
TCComponentMEOPRevision rev = null;
if(selectComponent.getType().equals("Mfg0BvrOperation")) {
rev = (TCComponentMEOPRevision)resultComponents[0];
}else {
//判断选中对象的是item还是版本item则获取最新版本
if (selectComponent instanceof TCComponentMEOP) {
// System.out.println("当前选中对象为TCComponentMEOP");
TCComponentMEOP meopType = (TCComponentMEOP) selectComponent;
rev = (TCComponentMEOPRevision) meopType.getLatestItemRevision();
}else if (selectComponent instanceof TCComponentMEOPRevision) {
// System.out.println("当前选中对象为TCComponentMEOPRevision");
rev = (TCComponentMEOPRevision) selectComponent;
}
}
// System.out.println("========》选中的对象类型:"+type);
new CalculateDialog(app,rev);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

@ -5,8 +5,6 @@ import java.awt.Dimension;
import java.awt.Toolkit; import java.awt.Toolkit;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -187,18 +185,16 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
String[] split2 = split[i].split(":"); String[] split2 = split[i].split(":");
String[] selectSplit = split2[1].split("\\."); String[] selectSplit = split2[1].split("\\.");
System.out.println("selectSplit[0]==="+selectSplit[0]); System.out.println("selectSplit[0]==="+selectSplit[0]);
System.out.println("--------------------------------");
if (selectSplit[0].equals("item")) { if (selectSplit[0].equals("item")) {
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRevItem.getStringProperty(selectSplit[1]); value = selectRevItem.getStringProperty(selectSplit[1]);
System.out.println("value===="+value); 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")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRevItem.getDateProperty(selectSplit[1]); dateValue = selectRevItem.getDateProperty(selectSplit[1]);
} }
@ -210,8 +206,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -219,8 +213,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -229,25 +221,19 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
} else if (selectSplit[0].equals("rev")) { } else if (selectSplit[0].equals("rev")) {
System.out.println("0000000000000000000000000");
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
System.out.println("selectSplit[2]====================="+selectSplit[2]); value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRev.getStringProperty(selectSplit[1]); value = selectRev.getStringProperty(selectSplit[1]);
} else if (selectSplit[2].equals("date")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRev.getDateProperty(selectSplit[1]); 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);
} }
// 获取目标对象要更新哪个属性 // 获取目标对象要更新哪个属性
@ -257,8 +243,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -266,8 +250,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -276,8 +258,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
@ -285,15 +265,13 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRevForm.getStringProperty(selectSplit[1]); value = selectRevForm.getStringProperty(selectSplit[1]);
} else if (selectSplit[2].equals("date")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRevForm.getDateProperty(selectSplit[1]); 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);
} }
// 获取目标对象要更新哪个属性 // 获取目标对象要更新哪个属性
@ -303,8 +281,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -312,8 +288,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -322,8 +296,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
@ -334,18 +306,16 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
String[] split2 = field.split(":"); String[] split2 = field.split(":");
String[] selectSplit = split2[1].split("\\."); String[] selectSplit = split2[1].split("\\.");
System.out.println("selectSplit[0]==="+selectSplit[0]); System.out.println("selectSplit[0]==="+selectSplit[0]);
System.out.println("--------------------------------");
if (selectSplit[0].equals("item")) { if (selectSplit[0].equals("item")) {
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRevItem.getStringProperty(selectSplit[1]); value = selectRevItem.getStringProperty(selectSplit[1]);
System.out.println("value===="+value); 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")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRevItem.getDateProperty(selectSplit[1]); dateValue = selectRevItem.getDateProperty(selectSplit[1]);
} }
@ -357,8 +327,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -366,8 +334,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -376,25 +342,19 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
} else if (selectSplit[0].equals("rev")) { } else if (selectSplit[0].equals("rev")) {
System.out.println("0000000000000000000000000");
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
System.out.println("selectSplit[2]====================="+selectSplit[2]); value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRev.getStringProperty(selectSplit[1]); value = selectRev.getStringProperty(selectSplit[1]);
} else if (selectSplit[2].equals("date")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRev.getDateProperty(selectSplit[1]); 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);
} }
// 获取目标对象要更新哪个属性 // 获取目标对象要更新哪个属性
@ -404,8 +364,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -413,8 +371,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -423,8 +379,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
@ -432,15 +386,13 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRevForm.getStringProperty(selectSplit[1]); value = selectRevForm.getStringProperty(selectSplit[1]);
} else if (selectSplit[2].equals("date")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRevForm.getDateProperty(selectSplit[1]); 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);
} }
// 获取目标对象要更新哪个属性 // 获取目标对象要更新哪个属性
@ -450,8 +402,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -459,8 +409,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -469,16 +417,14 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
} }
} }
} else { } else {
// 解析属性 // 解析属性
System.out.println("field==="+field); System.out.println("field==="+field);
if (field.contains(",")) {// 判断是否多个 if (field.contains(",")) {// 判断是否多个
@ -487,18 +433,16 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
String[] split2 = split[i].split(":"); String[] split2 = split[i].split(":");
String[] selectSplit = split2[1].split("\\."); String[] selectSplit = split2[1].split("\\.");
System.out.println("selectSplit[0]==="+selectSplit[0]); System.out.println("selectSplit[0]==="+selectSplit[0]);
System.out.println("--------------------------------");
if (selectSplit[0].equals("item")) { if (selectSplit[0].equals("item")) {
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRevItem.getStringProperty(selectSplit[1]); value = selectRevItem.getStringProperty(selectSplit[1]);
System.out.println("value===="+value); 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")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRevItem.getDateProperty(selectSplit[1]); dateValue = selectRevItem.getDateProperty(selectSplit[1]);
} }
@ -510,8 +454,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -519,8 +461,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -529,25 +469,19 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
} else if (selectSplit[0].equals("rev")) { } else if (selectSplit[0].equals("rev")) {
System.out.println("0000000000000000000000000");
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
System.out.println("selectSplit[2]====================="+selectSplit[2]); value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRev.getStringProperty(selectSplit[1]); value = selectRev.getStringProperty(selectSplit[1]);
} else if (selectSplit[2].equals("date")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRev.getDateProperty(selectSplit[1]); 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);
} }
// 获取目标对象要更新哪个属性 // 获取目标对象要更新哪个属性
@ -557,8 +491,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -566,8 +498,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -576,8 +506,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
@ -585,15 +513,13 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRevForm.getStringProperty(selectSplit[1]); value = selectRevForm.getStringProperty(selectSplit[1]);
} else if (selectSplit[2].equals("date")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRevForm.getDateProperty(selectSplit[1]); 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);
} }
// 获取目标对象要更新哪个属性 // 获取目标对象要更新哪个属性
@ -603,8 +529,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -612,8 +536,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -622,8 +544,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
@ -634,18 +554,16 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
String[] split2 = field.split(":"); String[] split2 = field.split(":");
String[] selectSplit = split2[1].split("\\."); String[] selectSplit = split2[1].split("\\.");
System.out.println("selectSplit[0]==="+selectSplit[0]); System.out.println("selectSplit[0]==="+selectSplit[0]);
System.out.println("--------------------------------");
if (selectSplit[0].equals("item")) { if (selectSplit[0].equals("item")) {
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRevItem.getStringProperty(selectSplit[1]); value = selectRevItem.getStringProperty(selectSplit[1]);
System.out.println("value===="+value); 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")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRevItem.getDateProperty(selectSplit[1]); dateValue = selectRevItem.getDateProperty(selectSplit[1]);
} }
@ -657,8 +575,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -666,8 +582,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -676,25 +590,19 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
} else if (selectSplit[0].equals("rev")) { } else if (selectSplit[0].equals("rev")) {
System.out.println("0000000000000000000000000");
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
System.out.println("selectSplit[2]====================="+selectSplit[2]); value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRev.getStringProperty(selectSplit[1]); value = selectRev.getStringProperty(selectSplit[1]);
} else if (selectSplit[2].equals("date")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRev.getDateProperty(selectSplit[1]); 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);
} }
// 获取目标对象要更新哪个属性 // 获取目标对象要更新哪个属性
@ -704,8 +612,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -713,8 +619,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -723,8 +627,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
@ -732,15 +634,13 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
String value = ""; String value = "";
Date dateValue = null; Date dateValue = null;
Double doubleValue = 0d; if(dateValue != null && value.isEmpty()) {
value = sdf.format(dateValue);
}
if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) { if (selectSplit[2].equals("string") || selectSplit[2].equals("lov")) {
value = selectRevForm.getStringProperty(selectSplit[1]); value = selectRevForm.getStringProperty(selectSplit[1]);
} else if (selectSplit[2].equals("date")) { } else if (selectSplit[2].equals("date")) {
dateValue = selectRevForm.getDateProperty(selectSplit[1]); 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);
} }
// 获取目标对象要更新哪个属性 // 获取目标对象要更新哪个属性
@ -750,8 +650,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revItem.setProperty(targetSplit[1], value); revItem.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revItem.setDateProperty(targetSplit[1], dateValue); revItem.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revItem.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rev")) { } else if (targetSplit[0].equals("rev")) {
@ -759,8 +657,6 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
rev.setProperty(targetSplit[1], value); rev.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
rev.setDateProperty(targetSplit[1], dateValue); rev.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
rev.setDoubleProperty(targetSplit[1], doubleValue);
} }
} else if (targetSplit[0].equals("rm")) { } else if (targetSplit[0].equals("rm")) {
@ -769,15 +665,13 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
revForm.setProperty(targetSplit[1], value); revForm.setProperty(targetSplit[1], value);
} else if (targetSplit[2].equals("date")) { } else if (targetSplit[2].equals("date")) {
revForm.setDateProperty(targetSplit[1], dateValue); revForm.setDateProperty(targetSplit[1], dateValue);
}else if (targetSplit[2].contains("double")) {
revForm.setDoubleProperty(targetSplit[1], doubleValue);
} }
} }
} }
} }
} }
MessageBox.post("修改成功!", "提示", 2); MessageBox.post("修改成功!", "提示", 2);
this.dispose(); this.dispose();
@ -823,18 +717,4 @@ public class SynchronizeDialog extends JFrame implements ActionListener {
return topPanel; 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();
}
} }

@ -7,7 +7,6 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.ItemEvent; import java.awt.event.ItemEvent;
import java.awt.event.ItemListener; import java.awt.event.ItemListener;
import java.io.File;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -26,8 +25,6 @@ import javax.swing.table.DefaultTableModel;
import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentDatasetType;
import com.teamcenter.rac.kernel.TCComponentForm; import com.teamcenter.rac.kernel.TCComponentForm;
import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentItemRevision;
@ -50,13 +47,12 @@ public class TemplateDialog extends JFrame implements ActionListener {
private JButton concelButton = new JButton("取消"); private JButton concelButton = new JButton("取消");
private HashMap<String, String> map = new HashMap<String, String>(); private HashMap<String, String> map = new HashMap<String, String>();
HashMap<String, TCComponentItemRevision> objectMap = new HashMap<String, TCComponentItemRevision>(); HashMap<String, TCComponentItemRevision> objectMap = new HashMap<String, TCComponentItemRevision>();
private String type;
public TemplateDialog(TCSession session, TCComponentItemRevision rev, String type) throws TCException { public TemplateDialog(TCSession session, TCComponentItemRevision rev) throws TCException {
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
this.session = session; this.session = session;
this.rev = rev; this.rev = rev;
this.type = type;
initUI(); initUI();
} }
@ -92,26 +88,14 @@ public class TemplateDialog extends JFrame implements ActionListener {
// this.setAlwaysOnTop(true); // this.setAlwaysOnTop(true);
String[] pref = session.getPreferenceService().getStringValues("LY6_MEOP_TemplateType"); String[] pref = session.getPreferenceService().getStringValues("LY6_MEOP_TemplateType");
for (int i = 0; i < pref.length; i++) { for (int i = 0; i < pref.length; i++) {
String[] split = pref[i].split(":");
if (pref[i].contains(type)) {
System.out.println("pref[i]======="+pref[i]+"type========="+type);
String[] split10 = pref[i].split("\\|");
System.out.println("split10========"+split10.length);
if (split10.length == 2) {
String[] split11 = split10[1].split(";");
System.out.println("split11==============="+split11.length);
for (int j = 0; j < split11.length; j++) {
String[] split = split11[j].split(":");
System.out.println("split=============="+split.length);
company.addItem(split[0]); company.addItem(split[0]);
map.put(split[0], split[1]); map.put(split[0], split[1]);
} }
}
}
}
String mrselectitem = (String)company.getSelectedItem(); String mrselectitem = (String)company.getSelectedItem();
String mrValue = map.get(mrselectitem); String mrValue = map.get(mrselectitem);
@ -174,39 +158,17 @@ public class TemplateDialog extends JFrame implements ActionListener {
//调用查询获取模板的dwg数据集 //调用查询获取模板的dwg数据集
try { try {
TCComponent[] items = session.search("Áã×é¼þ...", new String[] { "Áã×é¼þ ID" }, TCComponent[] items = session.search("零组件...", new String[] { "零组件 ID" }, new String[] {templateString});
new String[] { templateString });
System.out.println("items.length===="+items.length); System.out.println("items.length===="+items.length);
TCComponentItem item = null; TCComponentItem item = null;
if(items.length > 0) { if(items.length > 0) {
item = (TCComponentItem)items[0]; item = (TCComponentItem)items[0];
} }
TCComponentItemRevision latestItemRevision = item.getLatestItemRevision(); TCComponentItemRevision latestItemRevision = item.getLatestItemRevision();
TCComponent[] relatedComponent = latestItemRevision.getRelatedComponents("IMAN_specification"); TCComponent[] relatedComponent = latestItemRevision.getRelatedComponents("IMAN_specification");
System.out.println("relatedComponent========"+relatedComponent.length); System.out.println("relatedComponent========"+relatedComponent.length);
String name = rev.getStringProperty("item_id")+"_"+rev.getStringProperty("object_name")+"_¹¤Ðò¿¨.dwg";
System.out.println("name================"+name);
for (int i = 0; i < relatedComponent.length; i++) { for (int i = 0; i < relatedComponent.length; i++) {
if(relatedComponent[i] instanceof TCComponentDataset) { rev.add("IMAN_specification",relatedComponent[i]);
TCComponentDataset dataset = (TCComponentDataset)relatedComponent[i];
// TCComponentDataset saveAs = dataset.saveAs(name);
//
// TCComponent datasetref_c = dataset.getRelatedComponent("ref_list");
// System.out.println("datasetref_c==============="+datasetref_c.getUid());
TCComponent ref_c = dataset.getRelatedComponent("ref_list");
// System.out.println("ref_c====="+ref_c.getUid());
File fmsFile = dataset.getTcFiles()[0].getFmsFile();
System.out.println("fmsFile================"+fmsFile.getAbsolutePath());
TCComponentDataset createDataset = createDataset(name,fmsFile.getAbsolutePath(),session,"LD6_CAD2","LD6_cad2");
//String original_file_name = ref_c.getStringProperty("original_file_name");
//String[] split = original_file_name.split("\\.");
createDataset.getRelatedComponent("ref_list").setProperty("original_file_name", name);
rev.add("IMAN_specification", createDataset);
}
} }
MessageBox.post("模板插入成功!", "提示 ", MessageBox.INFORMATION); MessageBox.post("模板插入成功!", "提示 ", MessageBox.INFORMATION);
this.dispose(); this.dispose();
@ -257,14 +219,4 @@ public class TemplateDialog extends JFrame implements ActionListener {
return topPanel; return topPanel;
} }
public static TCComponentDataset createDataset(String datasetName, String path, TCSession session, String type,
String ref) throws TCException {
TCComponentDatasetType tccomponentDatasetType = (TCComponentDatasetType) session.getTypeComponent("Dataset");
TCComponentDataset tccomponentDataset = tccomponentDatasetType.create(datasetName, "", type);
tccomponentDataset.lock();
tccomponentDataset.setFiles(new String[] { path }, new String[] { ref });
tccomponentDataset.save();
tccomponentDataset.unlock();
return tccomponentDataset;
}
} }

@ -7,11 +7,9 @@ import org.eclipse.core.commands.ExecutionException;
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.aifrcp.AIFUtility; import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentSchedule; import com.teamcenter.rac.kernel.TCComponentSchedule;
import com.teamcenter.rac.kernel.TCComponentScheduleTask; import com.teamcenter.rac.kernel.TCComponentScheduleTask;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.MessageBox;
@ -31,8 +29,6 @@ public class TemplateHandler extends AbstractHandler{
public void run() { public void run() {
InterfaceAIFComponent targetComponent = app.getTargetComponent(); InterfaceAIFComponent targetComponent = app.getTargetComponent();
String type = targetComponent.getType();
System.out.println("type==========="+type);
if(targetComponent instanceof TCComponentItemRevision) { if(targetComponent instanceof TCComponentItemRevision) {
try { try {
String[] pref = session.getPreferenceService().getStringValues("LY6_MEOP_TemplateObject"); String[] pref = session.getPreferenceService().getStringValues("LY6_MEOP_TemplateObject");
@ -47,36 +43,7 @@ public class TemplateHandler extends AbstractHandler{
TCComponentItemRevision rev = (TCComponentItemRevision)targetComponent; TCComponentItemRevision rev = (TCComponentItemRevision)targetComponent;
String object_type = rev.getStringProperty("object_type"); String object_type = rev.getStringProperty("object_type");
if(types.contains(object_type)) { if(types.contains(object_type)) {
new TemplateDialog(session,rev,object_type); new TemplateDialog(session,rev);
}else {
MessageBox.post("请选择首选项LY6_MEOP_TemplateObject中匹配的对象","提示",2);
return;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else if(type.equals("Mfg0BvrOperation")){
TCComponent com = (TCComponent) targetComponent;
try {
TCComponent rev = com.getRelatedComponent("bl_line_object");
if(rev instanceof TCComponentItemRevision) {
try {
String[] pref = session.getPreferenceService().getStringValues("LY6_MEOP_TemplateObject");
String types = "";
if(pref.length > 0) {
types = pref[0];
}else {
MessageBox.post("请配置首选项LY6_MEOP_TemplateObject","提示",2);
return;
}
TCComponentItemRevision revision = (TCComponentItemRevision)rev;
String object_type = rev.getStringProperty("object_type");
if(types.contains(object_type)) {
new TemplateDialog(session,revision,object_type);
}else { }else {
MessageBox.post("请选择首选项LY6_MEOP_TemplateObject中匹配的对象","提示",2); MessageBox.post("请选择首选项LY6_MEOP_TemplateObject中匹配的对象","提示",2);
return; return;
@ -89,11 +56,6 @@ public class TemplateHandler extends AbstractHandler{
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
}
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else { }else {
MessageBox.post("请选择版本对象!","提示",2); MessageBox.post("请选择版本对象!","提示",2);
return; return;

@ -27,7 +27,6 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.aspose.words.Bookmark; import com.aspose.words.Bookmark;
import com.aspose.words.Document; import com.aspose.words.Document;
import com.aspose.words.Field;
import com.aspose.words.SaveFormat; import com.aspose.words.SaveFormat;
import com.teamcenter.rac.aif.AIFDesktop; import com.teamcenter.rac.aif.AIFDesktop;
import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFApplication;
@ -57,16 +56,12 @@ public class PropertyToWordOrExcelOperation extends KOperation {
new Thread().sleep(1000); new Thread().sleep(1000);
InterfaceAIFComponent targetComponent = app.getTargetComponent(); InterfaceAIFComponent targetComponent = app.getTargetComponent();
TCComponentItemRevision revision = (TCComponentItemRevision) targetComponent; TCComponentItemRevision revision = (TCComponentItemRevision) targetComponent;
// 获取首选项里的值
String[] prefVals = KUtil.getPrefVals(session, preName); String[] prefVals = KUtil.getPrefVals(session, preName);
if(prefVals == null || prefVals.length == 0) { if(prefVals == null || prefVals.length == 0) {
KUtil.info(AIFDesktop.getActiveDesktop(), preName + "该首选项未配置,请联系管理员!"); KUtil.info(AIFDesktop.getActiveDesktop(), preName + "该首选项未配置,请联系管理员!");
return false; return false;
} }
String relatioin = prefVals[0]; String relatioin = prefVals[0];
// 获取版本对象下的数据集对象
TCComponent[] relatedComponents = revision.getRelatedComponents(relatioin); TCComponent[] relatedComponents = revision.getRelatedComponents(relatioin);
if(relatedComponents == null || relatedComponents.length == 0) { if(relatedComponents == null || relatedComponents.length == 0) {
KUtil.info(AIFDesktop.getActiveDesktop(), "选中对象的 " + relatioin + " 关系下没有数据集"); KUtil.info(AIFDesktop.getActiveDesktop(), "选中对象的 " + relatioin + " 关系下没有数据集");
@ -81,12 +76,9 @@ public class PropertyToWordOrExcelOperation extends KOperation {
nameMap.put(split[1],split[0]); nameMap.put(split[1],split[0]);
} }
} }
// 遍历数据集
for (TCComponent tcComponent : relatedComponents) { for (TCComponent tcComponent : relatedComponents) {
if (tcComponent instanceof TCComponentDataset) { if (tcComponent instanceof TCComponentDataset) {
TCComponentDataset dataset = (TCComponentDataset) tcComponent; TCComponentDataset dataset = (TCComponentDataset) tcComponent;
// 工具包中获取系统临时变量的路径
File datasetFile = KUtil.getDatasetFile(dataset); File datasetFile = KUtil.getDatasetFile(dataset);
String type = tcComponent.getType(); String type = tcComponent.getType();
String datasetType = ""; String datasetType = "";
@ -206,20 +198,15 @@ public class PropertyToWordOrExcelOperation extends KOperation {
private String dealWord2(File datasetFile, TCComponentItemRevision revision, HashMap<String, String> nameMap,String type) throws FileNotFoundException, Exception { private String dealWord2(File datasetFile, TCComponentItemRevision revision, HashMap<String, String> nameMap,String type) throws FileNotFoundException, Exception {
String path = datasetFile.getAbsolutePath(); String path = datasetFile.getAbsolutePath();
Document document2 = new Document(new FileInputStream(path)); Document document2 = new Document(new FileInputStream(path));
OutputStream outputStream = null; OutputStream outputStream = null;
String newPath = path.replace(".doc", "temp.doc"); String newPath = path.replace(".doc", "temp.doc");
outputStream = new FileOutputStream(newPath); outputStream = new FileOutputStream(newPath);
Map<String, String> dataMap = new HashMap<>(); Map<String, String> dataMap = new HashMap<>();
for(String key : nameMap.keySet()) { for(String key : nameMap.keySet()) {
String preConfigValue = getPreConfigValue(revision,nameMap,nameMap.get(key)); String preConfigValue = getPreConfigValue(revision,nameMap,nameMap.get(key));
System.out.println("dataMap("+key+","+preConfigValue+")");
dataMap.put(key, preConfigValue); dataMap.put(key, preConfigValue);
} }
// 遍历文档中所有的书签
for (Bookmark bookmark : document2.getRange().getBookmarks()) { for (Bookmark bookmark : document2.getRange().getBookmarks()) {
String bookmarkName = bookmark.getName(); String bookmarkName = bookmark.getName();
System.out.println("书签名:"+bookmarkName); System.out.println("书签名:"+bookmarkName);
@ -228,21 +215,6 @@ public class PropertyToWordOrExcelOperation extends KOperation {
System.out.println("添加内容"); System.out.println("添加内容");
bookmark.setText(dataMap.get(bookmarkName)); bookmark.setText(dataMap.get(bookmarkName));
} }
}
// 遍历文档中的所有域
for (Field field : document2.getRange().getFields()) {
// 获取域的名称
String fieldName = field.getFieldCode();
System.out.println("域名:" + fieldName);
for(String key : dataMap.keySet()) {
// 根据字段类型或其他条件设置值
if(fieldName.contains(key)) {// 假设您想处理表单输入域
System.out.println("添加内容");
field.setResult(dataMap.get(key)); // 设置域的值
}
}
} }
if(type.equals("doc")) { if(type.equals("doc")) {
document2.save(outputStream, SaveFormat.DOC); document2.save(outputStream, SaveFormat.DOC);

Loading…
Cancel
Save