diff --git a/.classpath b/.classpath index b519331..10650b4 100644 --- a/.classpath +++ b/.classpath @@ -71,12 +71,8 @@ - - - - @@ -88,6 +84,9 @@ - + + + + diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF index df5c368..77c9e20 100644 --- a/META-INF/MANIFEST.MF +++ b/META-INF/MANIFEST.MF @@ -99,7 +99,6 @@ Bundle-ClassPath: axis2_lib/activation-1.1.jar, json_lib/json-lib-2.2.2-jdk15.jar, json_lib/json-lib-2.2.3-jdk13.jar, poi_lib/aspose-words-17.4.0-jdk16.jar, - poi_lib/poi-3.17.jar, poi_lib/poi-examples-3.17.jar, poi_lib/poi-excelant-3.17.jar, poi_lib/poi-ooxml-3.17.jar, @@ -109,7 +108,7 @@ Bundle-ClassPath: axis2_lib/activation-1.1.jar, poi_lib/commons-collections4-4.1.jar, special_lib/swingx-1.6.1.jar, ., - special_lib/sqljdbc4.jar + poi_lib/poi-3.17.jar Export-Package: com.net.connor.ld.plm.form, com.net.connor.ld.plm.ld01, com.net.connor.ld.plm.ld02, diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..2a97e1c --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,2 @@ +/cn/ +/com/ diff --git a/bin/cn/net/connor/ld/plm/KUtil.class b/bin/cn/net/connor/ld/plm/KUtil.class index c729c8a..3021c05 100644 Binary files a/bin/cn/net/connor/ld/plm/KUtil.class and b/bin/cn/net/connor/ld/plm/KUtil.class differ diff --git a/bin/com/net/connor/ld/plm/bean/FormBean.class b/bin/com/net/connor/ld/plm/bean/FormBean.class index 50fee31..9d08b88 100644 Binary files a/bin/com/net/connor/ld/plm/bean/FormBean.class and b/bin/com/net/connor/ld/plm/bean/FormBean.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$1.class b/bin/com/net/connor/ld/plm/ld05/CIForm$1.class index 088532f..f2c3014 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$1.class and b/bin/com/net/connor/ld/plm/ld05/CIForm$1.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$2$1.class b/bin/com/net/connor/ld/plm/ld05/CIForm$2$1.class deleted file mode 100644 index fa8c7ab..0000000 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$2$1.class and /dev/null differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$2.class b/bin/com/net/connor/ld/plm/ld05/CIForm$2.class index 73e6020..806c133 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$2.class and b/bin/com/net/connor/ld/plm/ld05/CIForm$2.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$3.class b/bin/com/net/connor/ld/plm/ld05/CIForm$3.class index a6fd1e4..503d6ff 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$3.class and b/bin/com/net/connor/ld/plm/ld05/CIForm$3.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$4.class b/bin/com/net/connor/ld/plm/ld05/CIForm$4.class index 5d7f852..bdd0c93 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$4.class and b/bin/com/net/connor/ld/plm/ld05/CIForm$4.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$5.class b/bin/com/net/connor/ld/plm/ld05/CIForm$5.class index c548c6a..6a9ada9 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$5.class and b/bin/com/net/connor/ld/plm/ld05/CIForm$5.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$6.class b/bin/com/net/connor/ld/plm/ld05/CIForm$6.class index e8fef90..e89e95f 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$6.class and b/bin/com/net/connor/ld/plm/ld05/CIForm$6.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$7.class b/bin/com/net/connor/ld/plm/ld05/CIForm$7.class index 460680e..f65cb93 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$7.class and b/bin/com/net/connor/ld/plm/ld05/CIForm$7.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$8.class b/bin/com/net/connor/ld/plm/ld05/CIForm$8.class deleted file mode 100644 index a757b4d..0000000 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$8.class and /dev/null differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$9$1.class b/bin/com/net/connor/ld/plm/ld05/CIForm$9$1.class deleted file mode 100644 index d89bdd8..0000000 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$9$1.class and /dev/null differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm$9.class b/bin/com/net/connor/ld/plm/ld05/CIForm$9.class deleted file mode 100644 index c0a7024..0000000 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm$9.class and /dev/null differ diff --git a/bin/com/net/connor/ld/plm/ld05/CIForm.class b/bin/com/net/connor/ld/plm/ld05/CIForm.class index 967823a..ec31f86 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CIForm.class and b/bin/com/net/connor/ld/plm/ld05/CIForm.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$1.class b/bin/com/net/connor/ld/plm/ld05/CNForm$1.class index 59ba228..ace63cd 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$1.class and b/bin/com/net/connor/ld/plm/ld05/CNForm$1.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$2$1.class b/bin/com/net/connor/ld/plm/ld05/CNForm$2$1.class deleted file mode 100644 index f411ee7..0000000 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$2$1.class and /dev/null differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$2.class b/bin/com/net/connor/ld/plm/ld05/CNForm$2.class index 12d1340..5ab9c95 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$2.class and b/bin/com/net/connor/ld/plm/ld05/CNForm$2.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$3.class b/bin/com/net/connor/ld/plm/ld05/CNForm$3.class index 06776fe..8699a0e 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$3.class and b/bin/com/net/connor/ld/plm/ld05/CNForm$3.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$4.class b/bin/com/net/connor/ld/plm/ld05/CNForm$4.class index 0b389fe..3f64b57 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$4.class and b/bin/com/net/connor/ld/plm/ld05/CNForm$4.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$5.class b/bin/com/net/connor/ld/plm/ld05/CNForm$5.class index b2a4a9f..c4a6fd8 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$5.class and b/bin/com/net/connor/ld/plm/ld05/CNForm$5.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$6.class b/bin/com/net/connor/ld/plm/ld05/CNForm$6.class index bb3f2c8..09e2efe 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$6.class and b/bin/com/net/connor/ld/plm/ld05/CNForm$6.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$7.class b/bin/com/net/connor/ld/plm/ld05/CNForm$7.class index 8377c67..c5cb951 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$7.class and b/bin/com/net/connor/ld/plm/ld05/CNForm$7.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$8.class b/bin/com/net/connor/ld/plm/ld05/CNForm$8.class deleted file mode 100644 index f172312..0000000 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$8.class and /dev/null differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$9$1.class b/bin/com/net/connor/ld/plm/ld05/CNForm$9$1.class deleted file mode 100644 index dfc00cc..0000000 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$9$1.class and /dev/null differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm$9.class b/bin/com/net/connor/ld/plm/ld05/CNForm$9.class deleted file mode 100644 index 7261856..0000000 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm$9.class and /dev/null differ diff --git a/bin/com/net/connor/ld/plm/ld05/CNForm.class b/bin/com/net/connor/ld/plm/ld05/CNForm.class index 1ba928a..0ddae80 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/CNForm.class and b/bin/com/net/connor/ld/plm/ld05/CNForm.class differ diff --git a/bin/com/net/connor/ld/plm/ld05/FormModel.class b/bin/com/net/connor/ld/plm/ld05/FormModel.class index 7de25b0..5904266 100644 Binary files a/bin/com/net/connor/ld/plm/ld05/FormModel.class and b/bin/com/net/connor/ld/plm/ld05/FormModel.class differ diff --git a/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$2.class b/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$2.class index 1871ffa..4e5dbc5 100644 Binary files a/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$2.class and b/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$2.class differ diff --git a/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$3.class b/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$3.class index 4d639e6..12ba93b 100644 Binary files a/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$3.class and b/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$3.class differ diff --git a/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$4.class b/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$4.class index 48f0ba4..b0fcd0c 100644 Binary files a/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$4.class and b/bin/com/net/connor/ld/plm/ld06/ChangePartDialog$4.class differ diff --git a/bin/com/net/connor/ld/plm/ld06/ChangePartDialog.class b/bin/com/net/connor/ld/plm/ld06/ChangePartDialog.class index 0c17640..41dc9e4 100644 Binary files a/bin/com/net/connor/ld/plm/ld06/ChangePartDialog.class and b/bin/com/net/connor/ld/plm/ld06/ChangePartDialog.class differ diff --git a/bin/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog$1.class b/bin/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog$1.class index c5674b5..f23b533 100644 Binary files a/bin/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog$1.class and b/bin/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog$1.class differ diff --git a/bin/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog.class b/bin/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog.class index d0fe539..d2952a7 100644 Binary files a/bin/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog.class and b/bin/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog.class differ diff --git a/build.properties b/build.properties index 6d99887..50fb8e5 100644 --- a/build.properties +++ b/build.properties @@ -2,7 +2,6 @@ output.. = bin/ bin.includes = plugin.xml,\ META-INF/,\ icons/,\ - poi_lib/poi-3.17.jar,\ poi_lib/poi-examples-3.17.jar,\ poi_lib/poi-excelant-3.17.jar,\ poi_lib/poi-ooxml-3.17.jar,\ @@ -94,5 +93,5 @@ bin.includes = plugin.xml,\ .,\ poi_lib/commons-collections4-4.1.jar,\ special_lib/swingx-1.6.1.jar,\ - special_lib/sqljdbc4.jar + poi_lib/poi-3.17.jar source.. = src/ diff --git a/plugin.xml b/plugin.xml index fe15ff4..6fe52f6 100644 --- a/plugin.xml +++ b/plugin.xml @@ -5,6 +5,7 @@ + @@ -18,6 +19,7 @@ + @@ -48,6 +50,7 @@ + diff --git a/poi_lib/poi-5.2.3.jar b/poi_lib/poi-5.2.3.jar new file mode 100644 index 0000000..22b19a3 Binary files /dev/null and b/poi_lib/poi-5.2.3.jar differ diff --git a/poi_lib/poi-ooxml-5.2.3.jar b/poi_lib/poi-ooxml-5.2.3.jar new file mode 100644 index 0000000..2daf4b0 Binary files /dev/null and b/poi_lib/poi-ooxml-5.2.3.jar differ diff --git a/poi_lib/poi-ooxml-schemas-4.1.2.jar b/poi_lib/poi-ooxml-schemas-4.1.2.jar new file mode 100644 index 0000000..74d3cd5 Binary files /dev/null and b/poi_lib/poi-ooxml-schemas-4.1.2.jar differ diff --git a/poi_lib/poi-scratchpad-5.2.3.jar b/poi_lib/poi-scratchpad-5.2.3.jar new file mode 100644 index 0000000..3c4d962 Binary files /dev/null and b/poi_lib/poi-scratchpad-5.2.3.jar differ diff --git a/special_lib/sqljdbc4.jar b/special_lib/sqljdbc4.jar deleted file mode 100644 index d6b7f6d..0000000 Binary files a/special_lib/sqljdbc4.jar and /dev/null differ diff --git a/src/cn/net/connor/ld/plm/KUtil.java b/src/cn/net/connor/ld/plm/KUtil.java index b65cfbb..8a7970d 100644 --- a/src/cn/net/connor/ld/plm/KUtil.java +++ b/src/cn/net/connor/ld/plm/KUtil.java @@ -2026,7 +2026,9 @@ public class KUtil { for (int j = 0; j < tables.length; j++) { String change = tables[j].getStringProperty(prop); + System.out.println("change======================"+change); if (change.equals("")) { + System.out.println("jjj==="+j); specialList.add(j); } } @@ -2131,7 +2133,7 @@ public class KUtil { ArrayList tableValue = new ArrayList(); for (String propName : propNames) { - System.out.println("ǰΪ" + propName); + //System.out.println("ǰΪ" + propName); String prop = tables[j].getTCProperty(propName).getDisplayableValue(); if (propName.equals("ld6_YNChange") && prop.equals("")) { // specialList.add(j); diff --git a/src/com/connor/jk/plm/MESreport/DataBaseControl.java b/src/com/connor/jk/plm/MESreport/DataBaseControl.java new file mode 100644 index 0000000..985be84 --- /dev/null +++ b/src/com/connor/jk/plm/MESreport/DataBaseControl.java @@ -0,0 +1,190 @@ +package com.connor.jk.plm.MESreport; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +import com.teamcenter.rac.util.MessageBox; + +public class DataBaseControl { + + /** ************************ݿ:*********************************** */ + /** + * kelsen .... + */ + Connection conn; + + ResultSet rs; + + PreparedStatement pstmt; + + Statement stmt; + + String strUrl, strUserName, strPassword, strSQLQuery, strDriver; + + public String str_Information = ""; + + /** + * + */ + public DataBaseControl(String strDriver, String strUrl, String strUserName, + String strPassword) { + this.strDriver = strDriver; // "oracle.jdbc.driver.OracleDriver";// + this.strUrl = strUrl; // "jdbc:oracle:thin:@127.0.0.1:1521:tceng";//· + this.strUserName = strUserName; // "infodba";//ݿû + this.strPassword = strPassword; // "infodba";//ݿ + // strSQLQuery="select * from LABELID";//ѯ + + // + try { + Class.forName(strDriver);// ͨڴ + } catch (ClassNotFoundException cnfe) { + cnfe.printStackTrace(); + } + // try { + // Class.forName("org.objectweb.rmijdbc.Driver").newInstance(); + // } catch (InstantiationException e) { + // + // e.printStackTrace(); + // } catch (IllegalAccessException e) { + // + // e.printStackTrace(); + // } catch (ClassNotFoundException e) { + // + // e.printStackTrace(); + // } + } + + /** + * + * + * @param strSQLQuery + */ + public void dbModify(String strSQLQuery) throws Exception{ + + openDataBase(); + +// try { + stmt = conn.createStatement(); + stmt.executeUpdate(strSQLQuery); +// } catch (SQLException sqle2) { +// sqle2.printStackTrace(); +// } + + closeDataBase(); + } + + /** + * ѯ + * + * @param strSQLQuery + * @return + */ + public ResultSet dbQuery(String strSQLQuery) throws Exception{ + ResultSet rs_result = null; +// try { + if (conn == null) { + openDataBase(); + } + stmt = conn.createStatement(); + rs_result = stmt.executeQuery(strSQLQuery); + +// } catch (SQLException sqle2) { +// sqle2.printStackTrace(); +// } + return rs_result; + } + + /** + * list + */ + public List doQuery2(String strSQLQuery,int count) throws Exception{ + List list = new ArrayList(); + openDataBase(); + try { + rs = dbQuery(strSQLQuery); + if(rs!=null) { + while(rs.next()) { + String [] arr = new String[count]; + for(int i = 1;i<=count;i++) { + arr[i-1] = rs.getString(i); + } + list.add(arr); + } + } + + }finally { + closeDataBase(); + } + + return list; + } + + + /** + * + * + */ + public void openDataBase() throws Exception{ +// try { + // this.strUrl="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.29)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=tcprod)))"; + if (conn == null || conn.isClosed()) + conn = DriverManager.getConnection(strUrl, strUserName, + strPassword); +// }catch (SQLException sqle) { +// sqle.printStackTrace(); +//// ByteArrayOutputStream baos = new ByteArrayOutputStream(); +//// sqle.printStackTrace(new PrintStream(baos)); +//// String exception = baos.toString(); +//// MessageBox.post(exception,"",MessageBox.INFORMATION); +// } + } + + /** + * رݿ + * + */ + public void closeDataBase() { + try { + if (rs != null) { + try { + rs.close(); + } catch (SQLException sqlec) { + sqlec.printStackTrace(); + } + } + if (stmt != null) { + try { + stmt.close(); + } catch (SQLException sqlec) { + sqlec.printStackTrace(); + } + } + if (conn != null && !conn.isClosed()) { + try { + conn.close(); + } catch (SQLException sqlecon) { + sqlecon.printStackTrace(); + } + + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + + +} diff --git a/src/com/connor/jk/plm/MESreport/DateChooser.java b/src/com/connor/jk/plm/MESreport/DateChooser.java new file mode 100644 index 0000000..acdd324 --- /dev/null +++ b/src/com/connor/jk/plm/MESreport/DateChooser.java @@ -0,0 +1,1391 @@ +package com.connor.jk.plm.MESreport; + +import java.awt.BasicStroke; + +import java.awt.BorderLayout; + +import java.awt.Color; + +import java.awt.Component; + +import java.awt.Cursor; + +import java.awt.Dimension; + +import java.awt.Font; + +import java.awt.Graphics; + +import java.awt.Graphics2D; + +import java.awt.GridLayout; + +import java.awt.Point; + +import java.awt.Polygon; + +import java.awt.Stroke; + +import java.awt.Toolkit; + +import java.awt.event.FocusEvent; + +import java.awt.event.FocusListener; + +import java.awt.event.MouseAdapter; + +import java.awt.event.MouseEvent; + +import java.awt.event.MouseListener; + +import java.awt.event.MouseMotionListener; + +import java.text.SimpleDateFormat; + +import java.util.ArrayList; + +import java.util.Calendar; + +import java.util.Comparator; + +import java.util.Date; + +import java.util.List; + + + +import javax.swing.BorderFactory; + +import javax.swing.JComponent; + +import javax.swing.JFrame; + +import javax.swing.JLabel; + +import javax.swing.JPanel; + +import javax.swing.JTextField; + +import javax.swing.Popup; + +import javax.swing.PopupFactory; + +import javax.swing.SwingUtilities; + +import javax.swing.event.AncestorEvent; + +import javax.swing.event.AncestorListener; + + + +/** + + * ѡָڵʾʽ + + */ + +public class DateChooser extends JPanel { + + + + private static final long serialVersionUID = 4529266044762990227L; + + + + private Date initDate; + + private Calendar now = Calendar.getInstance(); + + private Calendar select; + + private JPanel monthPanel;// + + private JP1 jp1;//Ŀ, + + private JP2 jp2; + + private JP3 jp3; + + private JP4 jp4; + + private Font font = new Font("", Font.PLAIN, 12); + + private final LabelManager lm = new LabelManager(); + + private SimpleDateFormat sdf; + + private boolean isShow = false; + + private Popup pop; + + + + private JComponent showDate; + + + + public static DateChooser getInstance() { + + return new DateChooser(); + + } + + + + public static DateChooser getInstance(Date date) { + + return new DateChooser(date); + + } + + + + public static DateChooser getInstance(String format) { + + return new DateChooser(format); + + } + + + + public static DateChooser getInstance(Date date, String format) { + + return new DateChooser(date, format); + + } + + + + /** + + * Creates a new instance of DateChooser + + */ + + private DateChooser() { + + this(new Date()); + + } + + + + private DateChooser(Date date) { + + this(date, "yyyyMMdd"); + + } + + + + private DateChooser(String format) { + + this(new Date(), format); + + } + + + + private DateChooser(Date date, String format) { + + initDate = date; + + sdf = new SimpleDateFormat(format); + + select = Calendar.getInstance(); + + select.setTime(initDate); + + initPanel(); + + } + + + + /** + + * Ƿûѡ + + */ + + public void setEnabled(boolean b) { + + super.setEnabled(b); + + showDate.setEnabled(b); + + } + + + + /** + + *õǰѡ + + */ + + public Date getDate() { + + return select.getTime(); + + } + + + + public String getStrDate() { + + return sdf.format(select.getTime()); + + } + + + + public String getStrDate(String format) { + + sdf = new SimpleDateFormat(format); + + return sdf.format(select.getTime()); + + } + + + + //ݳʼ,ʼ + + private void initPanel() { + + monthPanel = new JPanel(new BorderLayout()); + + monthPanel.setBorder(BorderFactory.createLineBorder(Color.BLUE)); + + JPanel up = new JPanel(new BorderLayout()); + + up.add(jp1 = new JP1(), BorderLayout.NORTH); + + up.add(jp2 = new JP2(), BorderLayout.CENTER); + + monthPanel.add(jp3 = new JP3(), BorderLayout.CENTER); + + monthPanel.add(up, BorderLayout.NORTH); + + monthPanel.add(jp4 = new JP4(), BorderLayout.SOUTH); + + this.addAncestorListener(new AncestorListener() { + + public void ancestorAdded(AncestorEvent event) { + + + + } + + + + public void ancestorRemoved(AncestorEvent event) { + + + + } + + + + //ֻҪһƶ,Ͼpopupʧ + + public void ancestorMoved(AncestorEvent event) { + + hidePanel(); + + } + + }); + + } + + + + public void register(final JComponent showDate) { + + this.showDate = showDate; + + + + showDate.setRequestFocusEnabled(true); + + showDate.addMouseListener(new MouseAdapter() { + + public void mousePressed(MouseEvent me) { + + showDate.requestFocusInWindow(); + + } + + }); + + this.setBackground(Color.WHITE); + + this.add(showDate, BorderLayout.CENTER); + + this.setPreferredSize(new Dimension(90, 25)); + + this.setBorder(BorderFactory.createLineBorder(Color.GRAY)); + + showDate.addMouseListener(new MouseAdapter() { + + public void mouseEntered(MouseEvent me) { + + if (showDate.isEnabled()) { + + showDate.setCursor(new Cursor(Cursor.HAND_CURSOR)); + + showDate.setForeground(Color.RED); + + } + + } + + + + public void mouseExited(MouseEvent me) { + + if (showDate.isEnabled()) { + + showDate.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); + + showDate.setForeground(Color.BLACK); + + } + + } + + + + public void mousePressed(MouseEvent me) { + + if (showDate.isEnabled()) { + + showDate.setForeground(Color.CYAN); + + if (isShow) { + + hidePanel(); + + } else { + + showPanel(showDate); + + } + + } + + } + + + + public void mouseReleased(MouseEvent me) { + + if (showDate.isEnabled()) { + + showDate.setForeground(Color.BLACK); + + } + + } + + }); + + showDate.addFocusListener(new FocusListener() { + + public void focusLost(FocusEvent e) { + + hidePanel(); + + } + + + + public void focusGained(FocusEvent e) { + + + + } + + }); + + } + + + + //µˢ + + private void refresh() { + + jp1.updateDate(); + + jp2.updateDate(); + + jp3.updateDate(); + + jp4.updateDate(); + + SwingUtilities.updateComponentTreeUI(this); + + } + + + + //ύ + + private void commit() { + + //TODO add other components here + + if (showDate instanceof JTextField) { + + ((JTextField) showDate).setText(sdf.format(select.getTime())); + + }else if (showDate instanceof JLabel) { + + ((JLabel) showDate).setText(sdf.format(select.getTime())); + + } + + + + hidePanel(); + + } + + + + //ѡ + + private void hidePanel() { + + if (pop != null) { + + isShow = false; + + pop.hide(); + + pop = null; + + } + + } + + + + //ʾѡ + + private void showPanel(Component owner) { + + if (pop != null) { + + pop.hide(); + + } + + Point show = new Point(0, showDate.getHeight()); + + SwingUtilities.convertPointToScreen(show, showDate); + + Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); + + int x = show.x; + + int y = show.y; + + if (x < 0) { + + x = 0; + + } + + if (x > size.width - 295) { + + x = size.width - 295; + + } + + if (y < size.height - 170) { + + } else { + + y -= 188; + + } + + pop = PopupFactory.getSharedInstance().getPopup(owner, monthPanel, x, y); + + pop.show(); + + isShow = true; + + } + + + + /** + + * ʾ·ݵ + + */ + + private class JP1 extends JPanel { + + private static final long serialVersionUID = -5638853772805561174L; + + JLabel yearleft, yearright, monthleft, monthright, center, centercontainer; + + + + public JP1() { + + super(new BorderLayout()); + + this.setBackground(new Color(160, 185, 215)); + + initJP1(); + + } + + + + private void initJP1() { + + yearleft = new JLabel(" <<", JLabel.CENTER); + + yearleft.setToolTipText("һ"); + + yearright = new JLabel(">> ", JLabel.CENTER); + + yearright.setToolTipText("һ"); + + yearleft.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 0)); + + yearright.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 0)); + + + + monthleft = new JLabel(" <", JLabel.RIGHT); + + monthleft.setToolTipText("һ"); + + monthright = new JLabel("> ", JLabel.LEFT); + + monthright.setToolTipText("һ"); + + monthleft.setBorder(BorderFactory.createEmptyBorder(2, 30, 0, 0)); + + monthright.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 30)); + + + + centercontainer = new JLabel("", JLabel.CENTER); + + centercontainer.setLayout(new BorderLayout()); + + center = new JLabel("", JLabel.CENTER); + + + + centercontainer.add(monthleft, BorderLayout.WEST); + + centercontainer.add(center, BorderLayout.CENTER); + + centercontainer.add(monthright, BorderLayout.EAST); + + + + this.add(yearleft, BorderLayout.WEST); + + this.add(centercontainer, BorderLayout.CENTER); + + this.add(yearright, BorderLayout.EAST); + + this.setPreferredSize(new Dimension(295, 25)); + + + + updateDate(); + + + + yearleft.addMouseListener(new MouseAdapter() { + + public void mouseEntered(MouseEvent me) { + + yearleft.setCursor(new Cursor(Cursor.HAND_CURSOR)); + + yearleft.setForeground(Color.RED); + + } + + + + public void mouseExited(MouseEvent me) { + + yearleft.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); + + yearleft.setForeground(Color.BLACK); + + } + + + + public void mousePressed(MouseEvent me) { + + select.add(Calendar.YEAR, -1); + + yearleft.setForeground(Color.WHITE); + + refresh(); + + } + + + + public void mouseReleased(MouseEvent me) { + + yearleft.setForeground(Color.BLACK); + + } + + }); + + yearright.addMouseListener(new MouseAdapter() { + + public void mouseEntered(MouseEvent me) { + + yearright.setCursor(new Cursor(Cursor.HAND_CURSOR)); + + yearright.setForeground(Color.RED); + + } + + + + public void mouseExited(MouseEvent me) { + + yearright.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); + + yearright.setForeground(Color.BLACK); + + } + + + + public void mousePressed(MouseEvent me) { + + select.add(Calendar.YEAR, 1); + + yearright.setForeground(Color.WHITE); + + refresh(); + + } + + + + public void mouseReleased(MouseEvent me) { + + yearright.setForeground(Color.BLACK); + + } + + }); + + monthleft.addMouseListener(new MouseAdapter() { + + public void mouseEntered(MouseEvent me) { + + monthleft.setCursor(new Cursor(Cursor.HAND_CURSOR)); + + monthleft.setForeground(Color.RED); + + } + + + + public void mouseExited(MouseEvent me) { + + monthleft.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); + + monthleft.setForeground(Color.BLACK); + + } + + + + public void mousePressed(MouseEvent me) { + + select.add(Calendar.MONTH, -1); + + monthleft.setForeground(Color.WHITE); + + refresh(); + + } + + + + public void mouseReleased(MouseEvent me) { + + monthleft.setForeground(Color.BLACK); + + } + + }); + + monthright.addMouseListener(new MouseAdapter() { + + public void mouseEntered(MouseEvent me) { + + monthright.setCursor(new Cursor(Cursor.HAND_CURSOR)); + + monthright.setForeground(Color.RED); + + } + + + + public void mouseExited(MouseEvent me) { + + monthright.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); + + monthright.setForeground(Color.BLACK); + + } + + + + public void mousePressed(MouseEvent me) { + + select.add(Calendar.MONTH, 1); + + monthright.setForeground(Color.WHITE); + + refresh(); + + } + + + + public void mouseReleased(MouseEvent me) { + + monthright.setForeground(Color.BLACK); + + } + + }); + + } + + + + private void updateDate() { + + center.setText(select.get(Calendar.YEAR) + "" + (select.get(Calendar.MONTH) + 1) + ""); + + } + + } + + + + private class JP2 extends JPanel { + + private static final long serialVersionUID = -8176264838786175724L; + + + + public JP2() { + + this.setPreferredSize(new Dimension(295, 20)); + + } + + + + protected void paintComponent(Graphics g) { + + g.setFont(font); + + g.drawString(" һ ڶ ", 5, 10); + + g.drawLine(0, 15, getWidth(), 15); + + } + + + + private void updateDate() { + + + + } + + } + + + + private class JP3 extends JPanel { + + private static final long serialVersionUID = 43157272447522985L; + + + + public JP3() { + + super(new GridLayout(6, 7)); + + this.setPreferredSize(new Dimension(295, 100)); + + initJP3(); + + } + + + + private void initJP3() { + + updateDate(); + + } + + + + public void updateDate() { + + this.removeAll(); + + lm.clear(); + + Date temp = select.getTime(); + + Calendar select = Calendar.getInstance(); + + select.setTime(temp); + + select.set(Calendar.DAY_OF_MONTH, 1); + + int index = select.get(Calendar.DAY_OF_WEEK); + + int sum = (index == 1 ? 8 : index); + + select.add(Calendar.DAY_OF_MONTH, 0 - sum); + + for (int i = 0; i < 42; i++) { + + select.add(Calendar.DAY_OF_MONTH, 1); + + lm.addLabel(new MyLabel(select.get(Calendar.YEAR), select.get(Calendar.MONTH), select.get(Calendar.DAY_OF_MONTH))); + + } + + for (MyLabel my : lm.getLabels()) { + + this.add(my); + + } + + select.setTime(temp); + + } + + } + + + + private class MyLabel extends JLabel implements Comparator, MouseListener, MouseMotionListener { + + private static final long serialVersionUID = 3668734399227577214L; + + private int year, month, day; + + private boolean isSelected; + + + + public MyLabel(int year, int month, int day) { + + super("" + day, JLabel.CENTER); + + this.year = year; + + this.day = day; + + this.month = month; + + this.addMouseListener(this); + + this.addMouseMotionListener(this); + + this.setFont(font); + + if (month == select.get(Calendar.MONTH)) { + + this.setForeground(Color.BLACK); + + } else { + + this.setForeground(Color.LIGHT_GRAY); + + } + + if (day == select.get(Calendar.DAY_OF_MONTH)) { + + this.setBackground(new Color(160, 185, 215)); + + } else { + + this.setBackground(Color.WHITE); + + } + + } + + + + public boolean getIsSelected() { + + return isSelected; + + } + + + + public void setSelected(boolean b, boolean isDrag) { + + isSelected = b; + + if (b && !isDrag) { + + int temp = select.get(Calendar.MONTH); + + select.set(year, month, day); + + if (temp == month) { + + SwingUtilities.updateComponentTreeUI(jp3); + + } else { + + refresh(); + + } + + } + + this.repaint(); + + } + + + + protected void paintComponent(Graphics g) { + + if (day == select.get(Calendar.DAY_OF_MONTH) && month == select.get(Calendar.MONTH)) { + + //ǰѡ,ʾ + + g.setColor(new Color(160, 185, 215)); + + g.fillRect(0, 0, getWidth(), getHeight()); + + } + + if (year == now.get(Calendar.YEAR) && month == now.get(Calendar.MONTH) && day == now.get(Calendar.DAY_OF_MONTH)) { + + //ں͵ǰһ,ú + + Graphics2D gd = (Graphics2D) g; + + gd.setColor(Color.RED); + + Polygon p = new Polygon(); + + p.addPoint(0, 0); + + p.addPoint(getWidth() - 1, 0); + + p.addPoint(getWidth() - 1, getHeight() - 1); + + p.addPoint(0, getHeight() - 1); + + gd.drawPolygon(p); + + } + + if (isSelected) {//ѡ˾ͻһ߿ + + Stroke s = new BasicStroke(1.0f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL, 1.0f, new float[] { 2.0f, 2.0f }, 1.0f); + + Graphics2D gd = (Graphics2D) g; + + gd.setStroke(s); + + gd.setColor(Color.BLACK); + + Polygon p = new Polygon(); + + p.addPoint(0, 0); + + p.addPoint(getWidth() - 1, 0); + + p.addPoint(getWidth() - 1, getHeight() - 1); + + p.addPoint(0, getHeight() - 1); + + gd.drawPolygon(p); + + } + + super.paintComponent(g); + + } + + + + public boolean contains(Point p) { + + return this.getBounds().contains(p); + + } + + + + private void update() { + + repaint(); + + } + + + + public void mouseClicked(MouseEvent e) { + + } + + + + public void mousePressed(MouseEvent e) { + + isSelected = true; + + update(); + + } + + + + public void mouseReleased(MouseEvent e) { + + Point p = SwingUtilities.convertPoint(this, e.getPoint(), jp3); + + lm.setSelect(p, false); + + commit(); + + } + + + + public void mouseEntered(MouseEvent e) { + + } + + + + public void mouseExited(MouseEvent e) { + + } + + + + public void mouseDragged(MouseEvent e) { + + Point p = SwingUtilities.convertPoint(this, e.getPoint(), jp3); + + lm.setSelect(p, true); + + } + + + + public void mouseMoved(MouseEvent e) { + + } + + + + public int compare(MyLabel o1, MyLabel o2) { + + Calendar c1 = Calendar.getInstance(); + + c1.set(o1.year, o2.month, o1.day); + + Calendar c2 = Calendar.getInstance(); + + c2.set(o2.year, o2.month, o2.day); + + return c1.compareTo(c2); + + } + + } + + + + private class LabelManager { + + private List list; + + + + public LabelManager() { + + list = new ArrayList(); + + } + + + + public List getLabels() { + + return list; + + } + + + + public void addLabel(MyLabel my) { + + list.add(my); + + } + + + + public void clear() { + + list.clear(); + + } + + + + @SuppressWarnings("unused") + + public void setSelect(MyLabel my, boolean b) { + + for (MyLabel m : list) { + + if (m.equals(my)) { + + m.setSelected(true, b); + + } else { + + m.setSelected(false, b); + + } + + } + + } + + + + public void setSelect(Point p, boolean b) { + + //϶,ҪŻһ,Ч + + if (b) { + + //ʾǷܷ,ñȽеıǩ,ܷصı־ǰһǩ + + //Ҫʾıǩҵ˾Ϳ + + boolean findPrevious = false, findNext = false; + + for (MyLabel m : list) { + + if (m.contains(p)) { + + findNext = true; + + if (m.getIsSelected()) { + + findPrevious = true; + + } else { + + m.setSelected(true, b); + + } + + } else if (m.getIsSelected()) { + + findPrevious = true; + + m.setSelected(false, b); + + } + + if (findPrevious && findNext) { + + return; + + } + + } + + } else { + + MyLabel temp = null; + + for (MyLabel m : list) { + + if (m.contains(p)) { + + temp = m; + + } else if (m.getIsSelected()) { + + m.setSelected(false, b); + + } + + } + + if (temp != null) { + + temp.setSelected(true, b); + + } + + } + + } + + + + } + + + + private class JP4 extends JPanel { + + private static final long serialVersionUID = -6391305687575714469L; + + + + public JP4() { + + super(new BorderLayout()); + + this.setPreferredSize(new Dimension(295, 20)); + + this.setBackground(new Color(160, 185, 215)); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + + final JLabel jl = new JLabel(": " + sdf.format(new Date())); + + jl.setToolTipText("ѡ"); + + this.add(jl, BorderLayout.CENTER); + + jl.addMouseListener(new MouseAdapter() { + + public void mouseEntered(MouseEvent me) { + + jl.setCursor(new Cursor(Cursor.HAND_CURSOR)); + + jl.setForeground(Color.RED); + + } + + + + public void mouseExited(MouseEvent me) { + + jl.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); + + jl.setForeground(Color.BLACK); + + } + + + + public void mousePressed(MouseEvent me) { + + jl.setForeground(Color.WHITE); + + select.setTime(new Date()); + + refresh(); + + commit(); + + } + + + + public void mouseReleased(MouseEvent me) { + + jl.setForeground(Color.BLACK); + + } + + }); + + } + + + + private void updateDate() { + + + + } + + } + + + + public static void main(String[] args) { + + DateChooser dateChooser1 = DateChooser.getInstance("yyyy-MM-dd"); + + DateChooser dateChooser2 = DateChooser.getInstance("yyyy-MM-dd"); + + JTextField showDate1 = new JTextField("ѡ"); + + JLabel showDate2 = new JLabel("ѡ"); + + + + dateChooser1.register(showDate1); + + dateChooser2.register(showDate2); + + + + JFrame jf = new JFrame("ѡ"); + + jf.add(showDate1, BorderLayout.NORTH); + + jf.add(showDate2, BorderLayout.SOUTH); + + jf.pack(); + + jf.setLocationRelativeTo(null); + + jf.setVisible(true); + + jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + } + +} \ No newline at end of file diff --git a/src/com/connor/jk/plm/MESreport/MESreportDialog.java b/src/com/connor/jk/plm/MESreport/MESreportDialog.java new file mode 100644 index 0000000..a29fc81 --- /dev/null +++ b/src/com/connor/jk/plm/MESreport/MESreportDialog.java @@ -0,0 +1,345 @@ +package com.connor.jk.plm.MESreport; + +import java.awt.BorderLayout; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.PrintStream; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +import javax.swing.JButton; +import javax.swing.JFileChooser; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.filechooser.FileSystemView; +import javax.swing.table.DefaultTableModel; + +import org.apache.poi.ss.usermodel.Cell; +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.AbstractAIFDialog; +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.rac.util.PropertyLayout; + +public class MESreportDialog extends AbstractAIFDialog implements ActionListener{ + private AbstractAIFUIApplication app; + private TCSession session; + private JTable table; + private DefaultTableModel model; + private JButton exportButton; + private JButton closeButton; + private final static String PREF = "TX_MESReport"; + private JButton searchButton; + private JTextField from_date; + private JTextField to_date; + private JTextField th_text; + private JTextField jsy_text; + private JTextField dth_text; + private JTextField dxlx_text; + private List colomuns = new ArrayList(); + private Map map = new HashMap(); + private DataBaseControl databaseControl; + private String export_path =""; + private DateChooser dateChooser1 = DateChooser.getInstance("yyyy-MM-dd"); + private DateChooser dateChooser2 = DateChooser.getInstance("yyyy-MM-dd"); + private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + public MESreportDialog(AbstractAIFUIApplication app){ + this.app = app; + session = (TCSession) app.getSession(); + } + + @Override + public void run() { + try { + init(); + String[] stringValues = session.getPreferenceService().getStringValues("TX_DATABASE"); + if(stringValues == null || stringValues.length<1) { + MessageBox.post("δѡTX_DATABASE","",MessageBox.INFORMATION); + throw new Exception("δѡTX_DATABASE"); + } + databaseControl = new DataBaseControl("oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@"+stringValues[0], stringValues[1], stringValues[2]); + + } catch (Exception e) { + e.printStackTrace(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + e.printStackTrace(new PrintStream(baos)); + String exception = baos.toString(); + MessageBox.post(exception,"",MessageBox.INFORMATION); + } + } + + private void init() throws Exception{ + setTitle("MESм"); + JPanel mainPanel = new JPanel(new BorderLayout()); + mainPanel.add(getConditionPanel(),BorderLayout.NORTH); + mainPanel.add(getTablePanel(),BorderLayout.CENTER); + mainPanel.add(getButtonPanel(),BorderLayout.SOUTH); + + add(mainPanel); + pack(); + setAlwaysOnTop(true); + setLocationRelativeTo(null); + setVisible(true); + } + + + private JPanel getConditionPanel() { + JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEADING)); + + from_date = new JTextField(20); + to_date = new JTextField(20); + dateChooser1.register(from_date); + dateChooser2.register(to_date); + JPanel panel1 = new JPanel(); + panel1.add(new JLabel("")); + panel1.add(from_date); + panel1.add(new JLabel("-")); + panel1.add(to_date); + + JPanel panel2 = new JPanel(); + panel2.add(new JLabel("ͼ")); + th_text = new JTextField(10); + panel2.add(th_text); + + JPanel panel3 = new JPanel(); + panel3.add(new JLabel("Ա")); + jsy_text = new JTextField(10); + panel3.add(jsy_text); + + JPanel panel4 = new JPanel(); + panel4.add(new JLabel("ͼ")); + dth_text = new JTextField(10); + panel4.add(dth_text); + + JPanel panel5 = new JPanel(); + panel5.add(new JLabel("")); + dxlx_text = new JTextField(10); + panel5.add(dxlx_text); + + + panel.add(panel1); + panel.add(panel2); + panel.add(panel3); + panel.add(panel4); + panel.add(panel5); + + return panel; + } + + private JScrollPane getTablePanel() throws Exception { + JScrollPane panel = new JScrollPane(); + table = new JTable() { + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + String[] stringValues = session.getPreferenceService().getStringValues(PREF); + if(stringValues == null || stringValues.length<1) { + MessageBox.post("δѡ"+PREF,"",MessageBox.INFORMATION); + throw new Exception("δѡ"+PREF); + } + for(String s:stringValues) { + String[] split = s.split(":"); + colomuns.add(split[0]); + map.put(split[0], split[1]); + } + model = new DefaultTableModel(null,colomuns.toArray(new String[colomuns.size()])); + table.setModel(model); + table.getTableHeader().setReorderingAllowed(false);//ñͷ̶ + model.addRow((Vector)null); + panel.setViewportView(table); + return panel; + } + + private JPanel getButtonPanel() { + JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER)); + exportButton = new JButton(""); + searchButton = new JButton("ѯ"); + closeButton = new JButton("ر"); + exportButton.addActionListener(this); + searchButton.addActionListener(this); + closeButton.addActionListener(this); + panel.add(searchButton); + panel.add(new JLabel(" ")); + panel.add(exportButton); + panel.add(new JLabel(" ")); + panel.add(closeButton); + return panel; + } + + public void search() throws Exception { + System.out.println("ʼѯ"); + System.out.println("ձ"); + updateTable(null); + StringBuffer sb = new StringBuffer(); + System.out.println("ƴsql"); + sb.append("Select "); + for(int i = 0;i0) { + if(isfirst) { + sb.append("WHERE PTYPE1 like '%"); + sb.append(dxlx_text.getText()); + sb.append("%' "); + } + isfirst = false; + } + if(th_text.getText()!=null&&th_text.getText().trim().length()>0) { + if(isfirst) { + sb.append("WHERE PCODE1 like '%"); + sb.append(th_text.getText()); + sb.append("%' "); + }else { + sb.append("AND PCODE1 like '%"); + sb.append(th_text.getText()); + sb.append("%' "); + } + isfirst = false; + } + if(dth_text.getText()!=null&&dth_text.getText().trim().length()>0) { + if(isfirst) { + sb.append("WHERE PITEMID1 like '%"); + sb.append(dth_text.getText()); + sb.append("%' "); + }else { + sb.append("AND PITEMID1 like '%"); + sb.append(dth_text.getText()); + sb.append("%' "); + } + isfirst = false; + } + if(jsy_text.getText()!=null&&jsy_text.getText().trim().length()>0) { + if(isfirst) { + sb.append("WHERE POWNER1 like '%"); + sb.append(jsy_text.getText()); + sb.append("%' "); + }else { + sb.append("AND POWNER1 like '%"); + sb.append(jsy_text.getText()); + sb.append("%' "); + } + isfirst = false; + } + if (from_date.getText() != null && from_date.getText().trim().length() > 0) { + if (isfirst) { + sb.append("WHERE PDATE >= to_date('"); + sb.append(sdf.format(dateChooser1.getDate()).trim()); + sb.append("','yyyy-MM-dd')"); + } else { + sb.append("AND PDATE >= to_date('"); + sb.append(sdf.format(dateChooser1.getDate()).trim()); + sb.append("','yyyy-MM-dd')"); + } + isfirst = false; + } + if (to_date.getText() != null && to_date.getText().trim().length() > 0) { + if (isfirst) { + sb.append("WHERE PDATE <= to_date('"); + sb.append(sdf.format(dateChooser2.getDate()).trim()); + sb.append("','yyyy-MM-dd')"); + } else { + sb.append("AND PDATE <= to_date('"); + sb.append(sdf.format(dateChooser2.getDate()).trim()); + sb.append("','yyyy-MM-dd')"); + } + isfirst = false; + } + String sql = sb.toString(); + System.out.println("sql:"+sql); +// MessageBox.post("sql:"+sql,"",MessageBox.INFORMATION); + List result = databaseControl.doQuery2(sql, colomuns.size()); + System.out.println("ʼ±"); + updateTable(result.toArray(new String[result.size()][colomuns.size()])); + } + + public void export() throws Exception{ + Workbook wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(); + FileOutputStream out = null; + try { + out = new FileOutputStream(export_path); + int rowCount = model.getRowCount(); + Row toprow = sheet.createRow(0); + for(int i = 0;i{ //public String[] header = {"","","","ǷҪ","","״̬","ע"}; //{"ld6_SeqNum","ld6_ChangeTaskName" ,"ld6_Task","ld6_YNChange","ld6_ChangePerson","ld6_Changestate","ld6_ChangeRemarks"}; - /** - String[] propNames = new String[] { "ld6_SeqNum", "ld6_ChangeTaskName", "ld6_Task", "ld6_YNChange", - "ld6_ChangePerson", "ld6_taskRequireDesc", "ld6_handleperson", "ld6_Changestate", "ld6_RequireFinishTime", - "ld6_ActualFinishTime", "ld6_ChangeRemarks" }; - - String[] header = new String[] { "", "", "", "ǷҪ", - "", "Ҫ", "", "״̬", "Ҫʱ", - "ʵʱ", "ע" }; - */ - private String num; - private String changeTaskName; - private String task; - private String ynChange; - private String changePerson; - private String taskRequireDesc; - private String handlePerson; - private String changeState; - private String requireFinishTime; - private String actualFinishTime; - private String changeRemarks; - - - public FormBean(ArrayList arrayList) { - this.setNum(arrayList.get(0)); - this.setChangeTaskName(arrayList.get(1)); - this.setTask(arrayList.get(2)); - this.setYnChange(arrayList.get(3)); - this.setChangePerson(arrayList.get(4)); - this.setTaskRequireDesc(arrayList.get(5)); - this.setHandlePerson(arrayList.get(6)); - this.setChangeState(arrayList.get(7)); - this.setRequireFinishTime(arrayList.get(8)); - this.setActualFinishTime(arrayList.get(9)); - this.setChangeRemarks(arrayList.get(10)); - } - - - public String getTaskRequireDesc() { - return taskRequireDesc; - } + private String ld6_SeqNum; + private String ld6_ChangeTaskName; + private String ld6_Task; + private String ld6_ChangePerson; + private String ld6_RWms; + private String ld6_RWPerson; + private String ld6_RWRole; + private String ld6_SHPerson; + private String ld6_SHRole; + private String ld6_PZPerson; + private String ld6_PZRole; + private String ld6_RWjjcd; + private String ld6_RWworkhour; + private String ld6_RWsjworkhour; + private String ld6_RWfptime; + private String ld6_RWyqtime; + private String ld6_RWsjtime; + private String ld6_YNChange; + private String ld6_Changestate; + private String ld6_ChangeRemarks; + private String ld6_CLRPerson; + private String ld6_RWnycd; + - public void setTaskRequireDesc(String taskRequireDesc) { - this.taskRequireDesc = taskRequireDesc; - } + // ArrayList Ĺ캯 + public FormBean(ArrayList arrayList) { + if (arrayList != null && arrayList.size() >= 19) { + this.setLd6_SeqNum(arrayList.get(0)); + this.setLd6_ChangeTaskName(arrayList.get(1)); + this.setLd6_Task(arrayList.get(2)); + this.setLd6_YNChange(arrayList.get(3)); + this.setLd6_ChangePerson(arrayList.get(4)); + this.setLd6_RWms(arrayList.get(5)); + this.setLd6_RWPerson(arrayList.get(6)); + this.setLd6_CLRPerson(arrayList.get(7)); + this.setLd6_SHPerson(arrayList.get(8)); + this.setLd6_PZPerson(arrayList.get(9)); + this.setLd6_RWnycd(arrayList.get(10)); + this.setLd6_RWjjcd(arrayList.get(11)); + this.setLd6_RWworkhour(arrayList.get(12)); + this.setLd6_RWsjworkhour(arrayList.get(13)); + this.setLd6_RWfptime(arrayList.get(14)); + this.setLd6_RWyqtime(arrayList.get(15)); + this.setLd6_RWsjtime(arrayList.get(16)); + this.setLd6_Changestate(arrayList.get(17)); + this.setLd6_ChangeRemarks(arrayList.get(18)); + } else { + throw new IllegalArgumentException("ArrayList must contain at least 19 elements"); + } + } + public String getLd6_CLRPerson() { + return ld6_CLRPerson; + } - public String getHandlePerson() { - return handlePerson; - } + public void setLd6_CLRPerson(String ld6_CLRPerson) { + this.ld6_CLRPerson = ld6_CLRPerson; + } - public void setHandlePerson(String handlePerson) { - this.handlePerson = handlePerson; - } + public String getLd6_RWnycd() { + return ld6_RWnycd; + } - public String getRequireFinishTime() { - return requireFinishTime; - } + public void setLd6_RWnycd(String ld6_RWnycd) { + this.ld6_RWnycd = ld6_RWnycd; + } + + // Getter and Setter methods for all fields + public String getLd6_SeqNum() { + return ld6_SeqNum; + } - public void setRequireFinishTime(String requireFinishTime) { - this.requireFinishTime = requireFinishTime; - } + public void setLd6_SeqNum(String ld6_SeqNum) { + this.ld6_SeqNum = ld6_SeqNum; + } + public String getLd6_ChangeTaskName() { + return ld6_ChangeTaskName; + } - public String getActualFinishTime() { - return actualFinishTime; - } + public void setLd6_ChangeTaskName(String ld6_ChangeTaskName) { + this.ld6_ChangeTaskName = ld6_ChangeTaskName; + } + public String getLd6_Task() { + return ld6_Task; + } - public void setActualFinishTime(String actualFinishTime) { - this.actualFinishTime = actualFinishTime; - } + public void setLd6_Task(String ld6_Task) { + this.ld6_Task = ld6_Task; + } + public String getLd6_ChangePerson() { + return ld6_ChangePerson; + } - public String getNum() { - return num; - } - public void setNum(String num) { - this.num = num; - } - public String getChangeTaskName() { - return changeTaskName; - } - public void setChangeTaskName(String changeTaskName) { - this.changeTaskName = changeTaskName; - } - public String getTask() { - return task; - } - public void setTask(String task) { - this.task = task; - } - public String getYnChange() { - return ynChange; - } - public void setYnChange(String ynChange) { - this.ynChange = ynChange; - } - public String getChangePerson() { - return changePerson; - } - public void setChangePerson(String changePerson) { - this.changePerson = changePerson; - } - public String getChangeState() { - return changeState; - } - public void setChangeState(String changeState) { - this.changeState = changeState; - } - public String getChangeRemarks() { - return changeRemarks; - } - public void setChangeRemarks(String changeRemarks) { - this.changeRemarks = changeRemarks; - } + public void setLd6_ChangePerson(String ld6_ChangePerson) { + this.ld6_ChangePerson = ld6_ChangePerson; + } + + public String getLd6_RWms() { + return ld6_RWms; + } + + public void setLd6_RWms(String ld6_RWms) { + this.ld6_RWms = ld6_RWms; + } + + public String getLd6_RWPerson() { + return ld6_RWPerson; + } + + public void setLd6_RWPerson(String ld6_RWPerson) { + this.ld6_RWPerson = ld6_RWPerson; + } + + public String getLd6_RWRole() { + return ld6_RWRole; + } + + public void setLd6_RWRole(String ld6_RWRole) { + this.ld6_RWRole = ld6_RWRole; + } + + public String getLd6_SHPerson() { + return ld6_SHPerson; + } + + public void setLd6_SHPerson(String ld6_SHPerson) { + this.ld6_SHPerson = ld6_SHPerson; + } + + public String getLd6_SHRole() { + return ld6_SHRole; + } + + public void setLd6_SHRole(String ld6_SHRole) { + this.ld6_SHRole = ld6_SHRole; + } + + public String getLd6_PZPerson() { + return ld6_PZPerson; + } + + public void setLd6_PZPerson(String ld6_PZPerson) { + this.ld6_PZPerson = ld6_PZPerson; + } + + public String getLd6_PZRole() { + return ld6_PZRole; + } + + public void setLd6_PZRole(String ld6_PZRole) { + this.ld6_PZRole = ld6_PZRole; + } + + public String getLd6_RWjjcd() { + return ld6_RWjjcd; + } + + public void setLd6_RWjjcd(String ld6_RWjjcd) { + this.ld6_RWjjcd = ld6_RWjjcd; + } + + public String getLd6_RWworkhour() { + return ld6_RWworkhour; + } + + public void setLd6_RWworkhour(String ld6_RWworkhour) { + this.ld6_RWworkhour = ld6_RWworkhour; + } + + public String getLd6_RWsjworkhour() { + return ld6_RWsjworkhour; + } + + public void setLd6_RWsjworkhour(String ld6_RWsjworkhour) { + this.ld6_RWsjworkhour = ld6_RWsjworkhour; + } + + public String getLd6_RWfptime() { + return ld6_RWfptime; + } + + public void setLd6_RWfptime(String ld6_RWfptime) { + this.ld6_RWfptime = ld6_RWfptime; + } + + public String getLd6_RWyqtime() { + return ld6_RWyqtime; + } + + public void setLd6_RWyqtime(String ld6_RWyqtime) { + this.ld6_RWyqtime = ld6_RWyqtime; + } + + public String getLd6_RWsjtime() { + return ld6_RWsjtime; + } + + public void setLd6_RWsjtime(String ld6_RWsjtime) { + this.ld6_RWsjtime = ld6_RWsjtime; + } + + public String getLd6_YNChange() { + return ld6_YNChange; + } + + public void setLd6_YNChange(String ld6_YNChange) { + this.ld6_YNChange = ld6_YNChange; + } + + public String getLd6_Changestate() { + return ld6_Changestate; + } + + public void setLd6_Changestate(String ld6_Changestate) { + this.ld6_Changestate = ld6_Changestate; + } + + public String getLd6_ChangeRemarks() { + return ld6_ChangeRemarks; + } + + public void setLd6_ChangeRemarks(String ld6_ChangeRemarks) { + this.ld6_ChangeRemarks = ld6_ChangeRemarks; + } + + + @Override public int compareTo(FormBean o) { - long i = this.getNum().compareTo(o.getNum()); + long i = this.getLd6_SeqNum().compareTo(o.getLd6_SeqNum()); if(i > 0){ return 1; diff --git a/src/com/net/connor/ld/plm/ld05/CIForm.java b/src/com/net/connor/ld/plm/ld05/CIForm.java index 12cdd0f..a3ad43d 100644 --- a/src/com/net/connor/ld/plm/ld05/CIForm.java +++ b/src/com/net/connor/ld/plm/ld05/CIForm.java @@ -19,6 +19,7 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.TimeZone; import java.util.Map.Entry; import javax.mail.Flags.Flag; @@ -71,20 +72,41 @@ import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateResponse; import com.teamcenter.soaictstubs.ICCTAccessControlService; import cn.net.connor.ld.plm.KUtil; +import de.hunsicker.jalopy.language.Recognizer.ParseException; import k.util.KOrgDialog; @SuppressWarnings("serial") public class CIForm extends AbstractRendering implements FormModel{ + private String userId = ""; + private TCSession session; private OpenFormDialog lastDialog; private Map> displayColumn = new HashMap>(); private Map personMap = new HashMap(); private List hideList = new ArrayList(); private Boolean flag = true; + + String[] LD_ChangeForm_RefreshButton_Users_Config; + String[] LD_ChangeForm_HighestPriv_Users_Config; + String[] LD_ChangeForm_HighestPriv_AttrName_Config; + String[] LD_ChangeForm_MiddlePriv_Users_Config; + String[] LD_ChangeForm_MiddlePriv_AttrName_Config; + String[] LD_ChangeForm_LowerstPriv_Users_Config; + String[] LD_ChangeForm_LowerstPriv_AttrName_Config; + + String[] headerDssc = new String[] { "", "", "","ǷҪ", "", + "Ҫ", "", "˺","˺","׼˺","׳̶", + "̶","ҵʱ/Сʱ","ʵҵʱ/Сʱ","ʱ","Ҫʱ", + "ʵʱ","״̬", "ע" }; + + + DefaultTableModel tableModel = null; private TCComponent form; - + private ArrayList sfsjggList = new ArrayList(); + private ArrayList stringList = new ArrayList(); + private ArrayList stringList2 = new ArrayList(); // static String ynChangeLovName = "LD6_TecDoc_Type_TLOV"; // static String changeStateLovName = "LD6_TecDoc_Type_TLOV"; @@ -119,10 +141,58 @@ public class CIForm extends AbstractRendering implements FormModel{ public void getdata() throws Exception { //ȡ AbstractAIFApplication app = AIFUtility.getCurrentApplication(); - TCSession session = (TCSession) app.getSession(); + session = (TCSession) app.getSession(); String prefName = "Connor_FormModel";//ݺ͸ģ String[] prefVals = KUtil.getPrefVals(session, prefName); String puid = prefVals[1]; + userId = session.getUser().getUserId(); + LD_ChangeForm_RefreshButton_Users_Config = KUtil.getPrefVals(session, "LD_ChangeForm_RefreshButton_Users_Config"); + LD_ChangeForm_HighestPriv_Users_Config = KUtil.getPrefVals(session, "LD_ChangeForm_HighestPriv_Users_Config"); + LD_ChangeForm_HighestPriv_AttrName_Config = KUtil.getPrefVals(session, "LD_ChangeForm_HighestPriv_AttrName_Config"); + LD_ChangeForm_MiddlePriv_Users_Config = KUtil.getPrefVals(session, "LD_ChangeForm_MiddlePriv_Users_Config"); + LD_ChangeForm_MiddlePriv_AttrName_Config = KUtil.getPrefVals(session, "LD_ChangeForm_MiddlePriv_AttrName_Config"); + LD_ChangeForm_LowerstPriv_Users_Config = KUtil.getPrefVals(session, "LD_ChangeForm_LowerstPriv_Users_Config"); + LD_ChangeForm_LowerstPriv_AttrName_Config = KUtil.getPrefVals(session, "LD_ChangeForm_LowerstPriv_AttrName_Config"); + + if(LD_ChangeForm_RefreshButton_Users_Config == null || LD_ChangeForm_RefreshButton_Users_Config.length == 0) { + MessageBox.post("LD_ChangeForm_RefreshButton_Users_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_HighestPriv_Users_Config == null || LD_ChangeForm_HighestPriv_Users_Config.length == 0) { + MessageBox.post("LD_ChangeForm_HighestPriv_Users_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_HighestPriv_AttrName_Config == null || LD_ChangeForm_HighestPriv_AttrName_Config.length == 0) { + MessageBox.post("LD_ChangeForm_HighestPriv_AttrName_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_MiddlePriv_Users_Config == null || LD_ChangeForm_MiddlePriv_Users_Config.length == 0) { + MessageBox.post("LD_ChangeForm_MiddlePriv_Users_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_MiddlePriv_AttrName_Config == null || LD_ChangeForm_MiddlePriv_AttrName_Config.length == 0) { + MessageBox.post("LD_ChangeForm_MiddlePriv_AttrName_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_LowerstPriv_Users_Config == null || LD_ChangeForm_LowerstPriv_Users_Config.length == 0) { + MessageBox.post("LD_ChangeForm_LowerstPriv_Users_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_LowerstPriv_AttrName_Config == null || LD_ChangeForm_LowerstPriv_AttrName_Config.length == 0) { + MessageBox.post("LD_ChangeForm_LowerstPriv_AttrName_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + + + + TCComponent component = session.stringToComponent(puid); if(component instanceof TCComponentForm) { @@ -146,15 +216,45 @@ public class CIForm extends AbstractRendering implements FormModel{ KUtil.getModelVale(map,form,null,propNames); KUtil.dealSpecialModelValue(specialList,prefName,"ld6_YNChange",1); + //CG tableModel = new DefaultTableModel() { @Override public boolean isCellEditable(int row, int column) { - if (column == 0 || column == 1 || column == 2) { - return false; - }else if(specialList.contains(row) && column == 3) { - return false; + + if(LD_ChangeForm_HighestPriv_Users_Config[0].contains(userId)) { + ArrayList columns = getColumn(LD_ChangeForm_HighestPriv_AttrName_Config[0]); + String sfsjgg = tableModel.getValueAt(row, YNCHANGE_INDEX).toString(); + if(columns.contains(column) && column == YNCHANGE_INDEX) { + return true; + }else if(columns.contains(column) && column != YNCHANGE_INDEX && sfsjgg != null && sfsjgg.equals("")) { + return true; + }else { + return false; + } } - return true; + + if(LD_ChangeForm_MiddlePriv_Users_Config[0].contains(userId)) { + ArrayList columns = getColumn(LD_ChangeForm_MiddlePriv_AttrName_Config[0]); + String sfsjgg = tableModel.getValueAt(row, YNCHANGE_INDEX).toString(); + if(tableModel.getValueAt(row, CHANGE_PERSON_INDEX).toString().contains(userId) && columns.contains(column) && sfsjgg != null && sfsjgg.equals("")) { + return true; + }else { + return false; + } + } + + if(LD_ChangeForm_LowerstPriv_Users_Config[0].contains(userId)) { + ArrayList columns = getColumn(LD_ChangeForm_LowerstPriv_AttrName_Config[0]); + String sfsjgg = tableModel.getValueAt(row, YNCHANGE_INDEX).toString(); + + if(tableModel.getValueAt(row, CLRZH_PERSON_INDEX).toString().contains(userId) && columns.contains(column) && sfsjgg != null && sfsjgg.equals("")) { + return true; + }else { + return false; + } + } + + return false; } }; tableModel.setDataVector(null, header); @@ -167,25 +267,47 @@ public class CIForm extends AbstractRendering implements FormModel{ KUtil.getLov(changeStateMap,changeStateLovName,changeStateComboBox); table_data.getColumnModel().getColumn(YNCHANGE_INDEX).setCellEditor(new DefaultCellEditor(ynChangeComboBox)); table_data.getColumnModel().getColumn(CHANGE_STATE_INDEX).setCellEditor(new DefaultCellEditor(changeStateComboBox)); + //CG + + JComboBox nycdComboBox = new JComboBox(); + nycdComboBox.addItem(""); + nycdComboBox.addItem("һ"); + nycdComboBox.addItem(""); + nycdComboBox.addItem(""); + table_data.getColumnModel().getColumn(10).setCellEditor(new DefaultCellEditor(nycdComboBox)); + + + + JComboBox jjcdComboBox = new JComboBox(); + jjcdComboBox.addItem("һ"); + jjcdComboBox.addItem(""); + jjcdComboBox.addItem(""); + table_data.getColumnModel().getColumn(11).setCellEditor(new DefaultCellEditor(jjcdComboBox)); //DatePicker StringValue sv = new FormatStringValue(sdf); TableCellRenderer r = new DefaultTableRenderer(sv); + table_data.getColumnModel().getColumn(ld6_RWfptime_index).setCellEditor(new DatePickerCellEditor(sdf)); + table_data.getColumnModel().getColumn(ld6_RWfptime_index).setCellRenderer(r); table_data.getColumnModel().getColumn(REQUIRE_FINISH_TIME_INDEX).setCellEditor(new DatePickerCellEditor(sdf)); table_data.getColumnModel().getColumn(REQUIRE_FINISH_TIME_INDEX).setCellRenderer(r); table_data.getColumnModel().getColumn(ACTUAL_FINISH_TIME_INDEX).setCellEditor(new DatePickerCellEditor(sdf)); table_data.getColumnModel().getColumn(ACTUAL_FINISH_TIME_INDEX).setCellRenderer(r); //п + //CG table_data.getColumnModel().getColumn(0).setPreferredWidth(10); table_data.getColumnModel().getColumn(1).setPreferredWidth(60); - table_data.getColumnModel().getColumn(2).setPreferredWidth(180); + table_data.getColumnModel().getColumn(2).setPreferredWidth(300); table_data.getColumnModel().getColumn(3).setPreferredWidth(40); table_data.getColumnModel().getColumn(4).setPreferredWidth(80); table_data.getColumnModel().getColumn(5).setPreferredWidth(80); table_data.getColumnModel().getColumn(6).setPreferredWidth(80); + //õԭֵ - String[][] values = new String[map.size()][propNames.length]; System.out.println("map ===>"+map.toString()); +// ArrayList> formList = new ArrayList>(); +// getFormValue(formList); + String[][] values = new String[map.size()][propNames.length]; //õҪ ArrayList beanList = new ArrayList(); for (Entry> entry : map.entrySet()) { @@ -199,116 +321,98 @@ public class CIForm extends AbstractRendering implements FormModel{ FormBean formBean = beanList.get(i); for (int j = 0; j < propNames.length; j++) { switch (j) { + //CG case 0: - values[i][j] = formBean.getNum(); - break; - case 1: - values[i][j] = formBean.getChangeTaskName(); - break; - case 2: - values[i][j] = formBean.getTask(); - break; - case 3: - values[i][j] = formBean.getYnChange(); - break; - case 4: - values[i][j] = formBean.getChangePerson(); - break; - case 5: - values[i][j] = formBean.getTaskRequireDesc(); - break; - case 6: - values[i][j] = formBean.getHandlePerson(); - break; - case 7: - values[i][j] = formBean.getChangeState(); - break; - case 8: - values[i][j] = formBean.getRequireFinishTime(); - break; - case 9: - values[i][j] = formBean.getActualFinishTime(); - break; - case 10: - values[i][j] = formBean.getChangeRemarks(); - break; + values[i][j] = formBean.getLd6_SeqNum(); + break; + case 1: + values[i][j] = formBean.getLd6_ChangeTaskName(); + break; + case 2: + values[i][j] = formBean.getLd6_Task(); + break; + case 3: + values[i][j] = formBean.getLd6_YNChange(); + break; + case 4: + values[i][j] = formBean.getLd6_ChangePerson(); + break; + case 5: + values[i][j] = formBean.getLd6_RWms(); + break; + case 6: + values[i][j] = formBean.getLd6_RWPerson(); + break; + case 7: + values[i][j] = formBean.getLd6_CLRPerson(); + break; + case 8: + values[i][j] = formBean.getLd6_SHPerson(); + break; + case 9: + values[i][j] = formBean.getLd6_PZPerson(); + break; + case 10: + values[i][j] = formBean.getLd6_RWnycd(); + break; + case 11: + values[i][j] = formBean.getLd6_RWjjcd(); + break; + case 12: + values[i][j] = formBean.getLd6_RWworkhour(); + break; + case 13: + values[i][j] = formBean.getLd6_RWsjworkhour(); + break; + case 14: + values[i][j] = formBean.getLd6_RWfptime(); + break; + case 15: + values[i][j] = formBean.getLd6_RWyqtime(); + break; + case 16: + values[i][j] = formBean.getLd6_RWsjtime(); + break; + case 17: + values[i][j] = formBean.getLd6_Changestate(); + break; + case 18: + values[i][j] = formBean.getLd6_ChangeRemarks(); + break; default: values[i][j] = ""; break; } } tableModel.addRow(values[i]); - } + } table_data.setSurrendersFocusOnKeystroke(true); - AbstractAIFApplication app1 = AIFUtility.getCurrentApplication(); - TCSession session1 = (TCSession) app1.getSession(); - String[] value1 = session1.getPreferenceService().getStringValues("LD_CNCIFormRemarks_Config"); - - int remarkWidth = Integer.parseInt(value1[0]); - int maxRemarkLength = Integer.parseInt(value1[1]); - //ñעп - table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setPreferredWidth(remarkWidth); - //ӱעеı༭ͼ - table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setCellEditor(new DefaultCellEditor(new JTextField()) { - @Override - public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - final JTextField editor = (JTextField) super.getTableCellEditorComponent(table, value, isSelected, row, column); - editor.setDocument(new PlainDocument() { - public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { - if (editor.getText().length() + str.length() <= maxRemarkLength) { - super.insertString(offs, str, a); - } else { - MessageBox.post("ַ", "ʾ", MessageBox.INFORMATION); - } - } - }); - return editor; - } - }); - //ӱעеȾ - table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setCellRenderer(new DefaultTableCellRenderer() { - @Override - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { - JTextArea renderer = new JTextArea(); - renderer.setText(value == null ? "" : value.toString()); - renderer.setLineWrap(true); - renderer.setWrapStyleWord(true); - return renderer; - } - }); - table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setCellEditor(new DefaultCellEditor(new JTextField()) { - private JTextArea editor; - @Override - public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - editor = new JTextArea(); - editor.setText(value == null ? "" : value.toString()); - editor.setLineWrap(true); - editor.setWrapStyleWord(true); - return editor; - } - @Override - public boolean isCellEditable(EventObject e) { - if (e instanceof MouseEvent) { - return ((MouseEvent)e).getClickCount() >= 2; - } - return super.isCellEditable(e); - } - @Override - public Object getCellEditorValue() { - String text = editor.getText(); - editor.setRows(1); // ༭ĸ߶ȵΪи߶ - return text; - } - // ʡ - }); - + sfsjggList = new ArrayList(); + for (int i = 0; i < tableModel.getRowCount(); i++) { + sfsjggList.add((String)tableModel.getValueAt(i, 3)); + } + System.out.println("sfsjggList================"+sfsjggList.toString()); + + AbstractAIFApplication app1 = AIFUtility.getCurrentApplication(); + TCSession session1 = (TCSession) app1.getSession(); + String[] value1 = session1.getPreferenceService().getStringValues("LD_CNCIFormRemarks_Config"); + + int remarkWidth = Integer.parseInt(value1[0]); + int maxRemarkLength = Integer.parseInt(value1[1]); + + // ñעп + table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setPreferredWidth(remarkWidth); + table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setCellRenderer(new MultiLineCellRenderer()); + table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setCellEditor(new MultiLineCellEditor()); + + //ѡֵӰУȡѡֵõMap<,صб>; AbstractAIFApplication app = AIFUtility.getCurrentApplication(); - TCSession session = (TCSession) app.getSession(); + session = (TCSession) app.getSession(); String[] value = session.getPreferenceService().getStringValues("LD_CNCIFormAttribute_Hide"); if(value!=null && value.length>0) { Map> hideMap = new HashMap>(); @@ -348,7 +452,16 @@ public class CIForm extends AbstractRendering implements FormModel{ List value2 = entry.getValue(); for (int i = 0; i < value2.size(); i++) { String str = value2.get(i); - int index = Arrays.binarySearch(propNames, str); + System.out.println("str==="+str); + //CG + int index = -1; + + for (int j = 0; j < propNames.length; j++) { + if(propNames[j].equals(str)) { + index = j; + } + } + System.out.println("index"+index); hideList.add(index); // @@ -360,57 +473,112 @@ public class CIForm extends AbstractRendering implements FormModel{ }else { System.out.println("ѡΪջ򲻴"); } - table_data.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) {// 굥ʱӦ // õѡееֵ int r = table_data.getSelectedRow(); int c = table_data.getSelectedColumn(); - if(c == CHANGE_PERSON_INDEX) { - String userString = new KOrgDialog("").getUserString(); - String condition = table_data.getValueAt( r, YNCHANGE_INDEX).toString(); - System.err.println("ǰֵΪ" + condition + "======" + userString); - if(condition.equals("") && !userString.isEmpty()) { - table_data.setValueAt(userString, r, c); - } + if(c == CHANGE_PERSON_INDEX || c == CLRZH_PERSON_INDEX || c == SHRZH_PERSON_INDEX || c == PZRZH_PERSON_INDEX) { + + boolean cellEditable = tableModel.isCellEditable(r,c); + System.out.println("cellEditable======================"+cellEditable); + if(cellEditable) { + String userString = new KOrgDialog("").getUserString(); + String condition = table_data.getValueAt( r, YNCHANGE_INDEX).toString(); + System.err.println("ǰֵΪ" + condition + "======" + userString); + if(condition.equals("") && !userString.isEmpty() ) { + table_data.setValueAt(userString, r, c); + } + + }else { + MessageBox.post("ûȨޱ༭˵Ԫ ǷƸIJΪǡ,޷༭", "ʾ", MessageBox.INFORMATION); + } + + } + +// if(c == YNCHANGE_INDEX) { +// try { +// if(userId == null || userId.isEmpty()) { +// userId = session.getUser().getUserId(); +// } +// String fpr = tableModel.getValueAt(r, 4).toString(); +// if(!fpr.contains(userId)) { +// MessageBox.post("DZз޷ǷҪ!", "ʾ", MessageBox.INFORMATION); +// return; +// } +// +// +// } catch (TCException e1) { +// // TODO Auto-generated catch block +// e1.printStackTrace(); +// } +// } } - }); + }); tableModel.addTableModelListener(new TableModelListener(){ @Override public void tableChanged(TableModelEvent e) { - if (e.getType() == TableModelEvent.UPDATE) { - // ҵ߼ - if (e.getColumn() == YNCHANGE_INDEX) { - String newvalue = table_data.getValueAt(e.getLastRow(), e.getColumn()).toString(); - if (newvalue.equals("")) { + //CG + if(e.getType() == TableModelEvent.UPDATE){ + try { + //ҵ߼ + String newvalue = table_data.getValueAt(e.getLastRow(),e.getColumn()).toString(); + + if(e.getColumn() == YNCHANGE_INDEX){ + System.out.println("e.getLastRow()========"+e.getLastRow()); + System.out.println("newvalue========"+newvalue); + if(newvalue.equals("") && !sfsjggList.get(e.getFirstRow()).equals("")) { table_data.setValueAt("", e.getLastRow(), CHANGE_PERSON_INDEX); - }else { - String id = table_data.getValueAt(table_data.getSelectedRow(),0).toString(); - table_data.setValueAt(personMap.get(id), e.getLastRow(), CHANGE_PERSON_INDEX); + table_data.setValueAt("", e.getLastRow(), HANDLE_PERSON_INDEX); + table_data.setValueAt("", e.getLastRow(), CLRZH_PERSON_INDEX); + table_data.setValueAt("", e.getLastRow(), SHRZH_PERSON_INDEX); + table_data.setValueAt("", e.getLastRow(), PZRZH_PERSON_INDEX); + table_data.setValueAt("", e.getLastRow(), NYCD_INDEX); + table_data.setValueAt("", e.getLastRow(), JJCD_INDEX); + sfsjggList.set(e.getFirstRow(), ""); + }else if(newvalue.equals("") && !sfsjggList.get(e.getFirstRow()).equals("")){ + sx(e.getLastRow(),0); + sfsjggList.set(e.getFirstRow(), ""); } } - else if(e.getColumn() == REQUIRE_FINISH_TIME_INDEX) { - String newvalue = table_data.getValueAt(e.getFirstRow(), e.getColumn()).toString(); - System.out.println(newvalue); - //table_data.setValueAt(newvalue, e.getLastRow(), REQUIRE_FINISH_TIME_INDEX); + + + if(e.getColumn() == TASK_INDEX) { + stringList.set(e.getLastRow(), newvalue); + } + + if(e.getColumn() == CHANGE_REMARKS_INDEX) { + int row = e.getLastRow(); + int col = e.getColumn(); + if (row > -1 && col > -1) { + + + if (newvalue.length() > maxRemarkLength) { + MessageBox.post("ַ", "ʾ", MessageBox.INFORMATION); + table_data.setValueAt(newvalue.substring(0, maxRemarkLength - 1), row, col); + } + } } + + } catch (Exception e2) { } - + } + } }); + + table_data.setDefaultRenderer(Object.class, new TableViewRenderer()); JScrollPane scroll = new JScrollPane(table_data); - - saveButton = new JButton(""); - saveButton.addActionListener(new ActionListener() { + saveButton = new JButton(""); + saveButton.addActionListener(new ActionListener() { @Override - public void actionPerformed(ActionEvent arg) { + public void actionPerformed(ActionEvent arg0) { save(); } }); - - displayButton = new JButton("ʾ"); + displayButton = new JButton("ʾ"); displayButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg) { @@ -426,6 +594,12 @@ public class CIForm extends AbstractRendering implements FormModel{ col.setWidth(val.get(2)); // õǰΪ0 col.setPreferredWidth(val.get(3)); // ѡΪ0 } + + //CG + for (int i = 0; i < tableModel.getRowCount(); i++) { + tableModel.setValueAt(stringList.get(i), i, 2); + } + //ı䰴ť displayButton.setText(""); flag = false; @@ -439,18 +613,47 @@ public class CIForm extends AbstractRendering implements FormModel{ flag = true; } - } }); + + //CG + JButton sxButton = new JButton("ˢ"); + sxButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent arg0) { + + int selectedRow = table_data.getSelectedRow(); + if(selectedRow == -1) { + MessageBox.post("ѡУ", "ʾ", MessageBox.INFORMATION); + return; + }else { + String condition = table_data.getValueAt( selectedRow, YNCHANGE_INDEX).toString(); + if(condition.equals("")) { + sx(selectedRow,1); + }else { + MessageBox.post("漰ģ", "ʾ", MessageBox.INFORMATION); + } + + } + + + } + + }); + JPanel panel = new JPanel(); panel.add(saveButton); panel.add(displayButton); + if(!LD_ChangeForm_RefreshButton_Users_Config[0].contains(userId)) { + sxButton.setVisible(false); + } + + panel.add(sxButton); this.add(scroll,BorderLayout.CENTER); this.add(panel,BorderLayout.SOUTH); this.setVisible(true); // new Thread(new Runnable() { - @Override public void run() { // TODO Auto-generated method stub @@ -471,6 +674,7 @@ public class CIForm extends AbstractRendering implements FormModel{ System.out.println("tempstr:"+tempstr); if(tempstr.equals("class com.teamcenter.rac.commands.open.OpenFormDialog")) { lastDialog = (OpenFormDialog) CIForm.this.getParent().getParent().getParent().getParent().getParent(); + Container container = CIForm.this.getParent().getParent().getParent().getParent(); final JFrame frame = new JFrame(); frame.add(container); @@ -478,10 +682,12 @@ public class CIForm extends AbstractRendering implements FormModel{ frame.pack(); // ʾǰ //frame.setAlwaysOnTop(true); - frame.setVisible(true); + frame.setVisible(true); lastDialog.setVisible(false); + + lastDialog.addWindowListener(new WindowListener() { @Override @@ -539,11 +745,6 @@ public class CIForm extends AbstractRendering implements FormModel{ }}).start(); } - - @Override - public void saveRendering() { - save(); - } public void hideColumn (JTable table,int column) { TableColumn col = table.getColumnModel().getColumn(column); // ȡҪص @@ -564,6 +765,23 @@ public class CIForm extends AbstractRendering implements FormModel{ col.setMaxWidth(0); // Ϊ0 col.setWidth(0); // õǰΪ0 col.setPreferredWidth(0); // ѡΪ0 + //CG + if(column == 2) { + stringList = new ArrayList(); + stringList2 = new ArrayList(); + for (int i = 0; i < tableModel.getRowCount(); i++) { + stringList2.add((String)tableModel.getValueAt(i, 2)); + stringList.add((String)tableModel.getValueAt(i, 2)); + tableModel.setValueAt("", i, 2); + } + + stringList = stringList2; + } + } + + @Override + public void saveRendering() { + save(); } public void save() { @@ -579,44 +797,65 @@ public class CIForm extends AbstractRendering implements FormModel{ Map propMap = new HashMap(); Map propDateMap = new HashMap(); for (int j = 0; j < propNames.length; j++) { - if("ld6_YNChange".equals(propNames[j])) { - String val = tableModel.getValueAt(i, j).toString(); - if(val.isEmpty()) { - err++; - if("".equals(sb.toString())) { - sb.append(i+1); - }else { - sb.append(""); - sb.append(i+1); - } - break; - } - if("".equals(val)) { - String user = tableModel.getValueAt(i, j + 1).toString(); - if("".equals(user.trim())) { - err++; - if("".equals(sb.toString())) { - sb.append(i+1); - }else { - sb.append(""); - sb.append(i+1); - } - break; - } - } - } - if(j == REQUIRE_FINISH_TIME_INDEX || j == ACTUAL_FINISH_TIME_INDEX) { +// if("ld6_YNChange".equals(propNames[j])) { +// String val = tableModel.getValueAt(i, j).toString(); +// if(val.isEmpty()) { +// err++; +// if("".equals(sb.toString())) { +// sb.append(i+1); +// }else { +// sb.append(""); +// sb.append(i+1); +// } +// break; +// } +// if("".equals(val)) { +// //CG +// String user = tableModel.getValueAt(i, 2).toString(); +// +// +// +// if("".equals(user.trim())) { +// err++; +// if("".equals(sb.toString())) { +// sb.append(i+1); +// }else { +// sb.append(""); +// sb.append(i+1); +// } +// break; +// } +// } +// } + + //CG + if(j == REQUIRE_FINISH_TIME_INDEX || j == ACTUAL_FINISH_TIME_INDEX || j == ld6_RWfptime_index) { Calendar cal = Calendar.getInstance(); String value = tableModel.getValueAt(i, j) == null ? "" : tableModel.getValueAt(i, j).toString(); if(!value.isEmpty()) { if(value.contains("CST")) { cal.setTime(cst.parse(value)); propDateMap.put(propNames[j],cal); + }else if(value.contains("GMT")){ + TimeZone tz = TimeZone.getTimeZone("GMT+8"); + gmt.setTimeZone(tz); + Date s = null; + try { + s = gmt.parse(value); + System.out.println(s); // Sun Oct 22 00:00:00 CST 2017 + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + cal.setTime(s); + propDateMap.put(propNames[j],cal); }else { cal.setTime(sdf.parse(value)); propDateMap.put(propNames[j],cal); - } + } } + }else if(j == TASK_INDEX){ + propMap.put(propNames[j],stringList.get(i)); }else { propMap.put(propNames[j],tableModel.getValueAt(i, j) == null ? "" : tableModel.getValueAt(i, j).toString()); } @@ -628,9 +867,9 @@ public class CIForm extends AbstractRendering implements FormModel{ in.data.dateProps = propDateMap; newIn[i] = in; } - if(err > 0) { MessageBox.post(""+sb.toString()+"δָ˻ǷҪֵΪ,д󱣴","ʾ",MessageBox.INFORMATION); + return; }else { CreateResponse response = service.createObjects(newIn); System.out.println(response.serviceData.sizeOfCreatedObjects()); @@ -640,14 +879,160 @@ public class CIForm extends AbstractRendering implements FormModel{ for (int i = 0; i < length; i++) { component.add(response.output[i].objects[0]); } - } + } form.getTCProperty("ld6_ChangeTable").setReferenceValueArray(component.toArray(new TCComponent[component.size()])); MessageBox.post("ɹ","ʾ",MessageBox.INFORMATION); } + } catch (Exception e) { + e.printStackTrace(); + // TODO Auto-generated catch block + } + + + } +public void sx(int selectedRow,int change) { + + //жϵǰûǷΪ +// try { +// if(userId == null || userId.isEmpty()) { +// userId = session.getUser().getUserId(); +// } +// String fpr = tableModel.getValueAt(selectedRow, 4).toString(); +// if(!fpr.contains(userId)) { +// MessageBox.post("DZз޷ִˢ¹!", "ʾ", MessageBox.INFORMATION); +// return; +// } +// } catch (TCException e1) { +// // TODO Auto-generated catch block +// e1.printStackTrace(); +// } + + //ȡѡ + HashMap> persionMap = new HashMap>(); + HashMap returnMap = new HashMap(); + String ggrwx = tableModel.getValueAt(selectedRow, 1).toString(); + boolean isOverOne = false; + try { + String[] prefVals = KUtil.getPrefVals(session, "Connor_Personlist"); + if(prefVals == null || prefVals.length == 0 ) { + MessageBox.post("ѡConnor_Personlist", "ʾ", MessageBox.INFORMATION); + return; + } + + if(change == 0) { + tableModel.setValueAt("һ", selectedRow, NYCD_INDEX); + tableModel.setValueAt("һ", selectedRow, JJCD_INDEX); + + + //ץģ + String xh = (String) tableModel.getValueAt(selectedRow, SEQ_NUM_INDEX); + String changePerson = personMap.get(xh); + if(changePerson != null && !changePerson.isEmpty()) { + tableModel.setValueAt(changePerson, selectedRow, CHANGE_PERSON_INDEX); + } + } + + for (int i = 0; i < prefVals.length; i++) { + String pref = prefVals[i]; + String[] split = pref.split(":"); + if(ggrwx.equals(split[0])) { + if(persionMap.containsKey(split[0])) { + ArrayList list = persionMap.get(split[0]); + list.add(split[1]); + persionMap.put(split[0],list); + }else { + ArrayList list =new ArrayList(); + list.add(split[1]); + persionMap.put(split[0],list); + } + + } + + + + + + } + + + ArrayList list = persionMap.get(ggrwx); + + if(list.size() > 1) { + JComboBox jComboBox = new JComboBox(); + for (int i = 0; i < list.size(); i++) { + jComboBox.addItem(list.get(i)); + } + System.out.println("persionMap==="+persionMap.size()); + DialogFrame dialog = new DialogFrame(null,jComboBox,returnMap,ggrwx); + System.out.println("returnMap==="+returnMap.size()); + dialog.setVisible(true); + isOverOne = true; + } + } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); - } + } + //ѭֵ + String persons = ""; + if(isOverOne) { + persons = returnMap.get(ggrwx); + }else { + persons = persionMap.get(ggrwx).get(0); + } + System.out.println("ggrwx==="+ggrwx); + if(persons != null && !persons.isEmpty()) { + String[] split = persons.split("\\\\"); +// System.out.println("split[0]==="+split[0]); +// if(split[0].contains("_")) { +// tableModel.setValueAt("", selectedRow, 4); +// }else { +// String[] split2 = split[0].split("-"); +// System.out.println("split2[1]==="+split2[1]); +// tableModel.setValueAt(split2[1], selectedRow, 4); +// System.out.println("split2[0]==="+split2[0]); +// } + + + if(split[0].contains("_")) { + tableModel.setValueAt("", selectedRow, 7); + }else { + String[] split2 = split[0].split("-"); + tableModel.setValueAt(split2[1], selectedRow, 7); + } + + if(split[1].contains("_")) { + tableModel.setValueAt("", selectedRow, 8); + }else { + String[] split2 = split[1].split("-"); + tableModel.setValueAt(split2[1], selectedRow, 8); + } + + if(split[2].contains("_")) { + tableModel.setValueAt("", selectedRow, 9); + }else { + String[] split2 = split[2].split("-"); + tableModel.setValueAt(split2[1], selectedRow, 9); + } + } + tableModel.fireTableDataChanged(); + + + } + + public ArrayList getColumn(String desc){ + ArrayList integers = new ArrayList(); + String[] split = desc.split(";"); + for (int i = 0; i < split.length; i++) { + for (int j = 0; j < headerDssc.length; j++) { + if(split[i].equals(headerDssc[j])) { + integers.add(j); + } + } + } + return integers; } + + } diff --git a/src/com/net/connor/ld/plm/ld05/CNForm.java b/src/com/net/connor/ld/plm/ld05/CNForm.java index beee447..c63d120 100644 --- a/src/com/net/connor/ld/plm/ld05/CNForm.java +++ b/src/com/net/connor/ld/plm/ld05/CNForm.java @@ -10,16 +10,19 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Collections; +import java.util.Date; import java.util.EventObject; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.TimeZone; import javax.swing.DefaultCellEditor; import javax.swing.JButton; @@ -46,6 +49,7 @@ import org.jdesktop.swingx.renderer.FormatStringValue; import org.jdesktop.swingx.renderer.StringValue; import org.jdesktop.swingx.table.DatePickerCellEditor; + import com.net.connor.ld.plm.bean.FormBean; import com.net.connor.ld.plm.bean.MyButtonRender; import com.teamcenter.rac.aif.AbstractAIFApplication; @@ -58,6 +62,7 @@ import com.teamcenter.rac.common.viewedit.ViewEditHelper; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentForm; import com.teamcenter.rac.kernel.TCComponentFormType; +import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.stylesheet.AbstractRendering; @@ -69,11 +74,14 @@ import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateIn; import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateResponse; import cn.net.connor.ld.plm.KUtil; +import de.hunsicker.jalopy.language.Recognizer.ParseException; import k.util.KOrgDialog; @SuppressWarnings("serial") public class CNForm extends AbstractRendering implements FormModel{ + private String userId = ""; + private TCSession session; private OpenFormDialog lastDialog; private Map> displayColumn = new HashMap>(); private Map personMap = new HashMap(); @@ -82,6 +90,24 @@ public class CNForm extends AbstractRendering implements FormModel{ DefaultTableModel tableModel = null; private TCComponent form; + + String[] LD_ChangeForm_RefreshButton_Users_Config; + String[] LD_ChangeForm_HighestPriv_Users_Config; + String[] LD_ChangeForm_HighestPriv_AttrName_Config; + String[] LD_ChangeForm_MiddlePriv_Users_Config; + String[] LD_ChangeForm_MiddlePriv_AttrName_Config; + String[] LD_ChangeForm_LowerstPriv_Users_Config; + String[] LD_ChangeForm_LowerstPriv_AttrName_Config; + + String[] headerDssc = new String[] { "", "", "","ǷҪ", "", + "Ҫ", "", "˺","˺","׼˺","׳̶", + "̶","ҵʱ/Сʱ","ʵҵʱ/Сʱ","ʱ","Ҫʱ", + "ʵʱ","״̬", "ע" }; + + //CG + private ArrayList sfsjggList = new ArrayList(); + private ArrayList stringList = new ArrayList(); + private ArrayList stringList2 = new ArrayList(); public CNForm(TCComponent form) throws Exception { super(); this.form = form; @@ -102,15 +128,64 @@ public class CNForm extends AbstractRendering implements FormModel{ public void getdata() throws Exception { //ȡ AbstractAIFApplication app = AIFUtility.getCurrentApplication(); - TCSession session = (TCSession) app.getSession(); + session = (TCSession) app.getSession(); String prefName = "Connor_FormModel";//ݺ͸ģ String[] prefVals = KUtil.getPrefVals(session, prefName); String puid = prefVals[0]; TCComponent component = session.stringToComponent(puid); + userId = session.getUser().getUserId(); + + + LD_ChangeForm_RefreshButton_Users_Config = KUtil.getPrefVals(session, "LD_ChangeForm_RefreshButton_Users_Config"); + LD_ChangeForm_HighestPriv_Users_Config = KUtil.getPrefVals(session, "LD_ChangeForm_HighestPriv_Users_Config"); + LD_ChangeForm_HighestPriv_AttrName_Config = KUtil.getPrefVals(session, "LD_ChangeForm_HighestPriv_AttrName_Config"); + LD_ChangeForm_MiddlePriv_Users_Config = KUtil.getPrefVals(session, "LD_ChangeForm_MiddlePriv_Users_Config"); + LD_ChangeForm_MiddlePriv_AttrName_Config = KUtil.getPrefVals(session, "LD_ChangeForm_MiddlePriv_AttrName_Config"); + LD_ChangeForm_LowerstPriv_Users_Config = KUtil.getPrefVals(session, "LD_ChangeForm_LowerstPriv_Users_Config"); + LD_ChangeForm_LowerstPriv_AttrName_Config = KUtil.getPrefVals(session, "LD_ChangeForm_LowerstPriv_AttrName_Config"); + + if(LD_ChangeForm_RefreshButton_Users_Config == null || LD_ChangeForm_RefreshButton_Users_Config.length == 0) { + MessageBox.post("LD_ChangeForm_RefreshButton_Users_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_HighestPriv_Users_Config == null || LD_ChangeForm_HighestPriv_Users_Config.length == 0) { + MessageBox.post("LD_ChangeForm_HighestPriv_Users_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_HighestPriv_AttrName_Config == null || LD_ChangeForm_HighestPriv_AttrName_Config.length == 0) { + MessageBox.post("LD_ChangeForm_HighestPriv_AttrName_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_MiddlePriv_Users_Config == null || LD_ChangeForm_MiddlePriv_Users_Config.length == 0) { + MessageBox.post("LD_ChangeForm_MiddlePriv_Users_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_MiddlePriv_AttrName_Config == null || LD_ChangeForm_MiddlePriv_AttrName_Config.length == 0) { + MessageBox.post("LD_ChangeForm_MiddlePriv_AttrName_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_LowerstPriv_Users_Config == null || LD_ChangeForm_LowerstPriv_Users_Config.length == 0) { + MessageBox.post("LD_ChangeForm_LowerstPriv_Users_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + if(LD_ChangeForm_LowerstPriv_AttrName_Config == null || LD_ChangeForm_LowerstPriv_AttrName_Config.length == 0) { + MessageBox.post("LD_ChangeForm_LowerstPriv_AttrName_ConfigΪգ", "ʾ", MessageBox.INFORMATION); + return; + } + + + //CG if(component instanceof TCComponentForm) { TCComponentForm form = (TCComponentForm) component; //ȡ˵ֵŶӦ + TCComponent[] referenceListProperty = form.getReferenceListProperty("ld6_ChangeTable"); for(TCComponent comp : referenceListProperty) { String key = comp.getProperty("ld6_SeqNum"); @@ -124,21 +199,54 @@ public class CNForm extends AbstractRendering implements FormModel{ LinkedHashMap> map = new LinkedHashMap>(); ArrayList specialList = new ArrayList(); KUtil.getModelVale(map,form,null,propNames); + //CG KUtil.dealSpecialModelValue(specialList,prefName,"ld6_YNChange",0); + //شǷҪġ ΪǡʱõԪܱ༭ĬֵΪ + //CG tableModel = new DefaultTableModel() { @Override public boolean isCellEditable(int row, int column) { - if (column == 0 || column == 1 || column == 2) { - return false; - }else if(specialList.contains(row) && column == 3) { - return false; + + if(LD_ChangeForm_HighestPriv_Users_Config[0].contains(userId)) { + ArrayList columns = getColumn(LD_ChangeForm_HighestPriv_AttrName_Config[0]); + String sfsjgg = tableModel.getValueAt(row, YNCHANGE_INDEX).toString(); + if(columns.contains(column) && column == YNCHANGE_INDEX) { + return true; + }else if(columns.contains(column) && column != YNCHANGE_INDEX && sfsjgg != null && sfsjgg.equals("")) { + return true; + }else { + return false; + } + } + + if(LD_ChangeForm_MiddlePriv_Users_Config[0].contains(userId)) { + ArrayList columns = getColumn(LD_ChangeForm_MiddlePriv_AttrName_Config[0]); + String sfsjgg = tableModel.getValueAt(row, YNCHANGE_INDEX).toString(); + if(tableModel.getValueAt(row, CHANGE_PERSON_INDEX).toString().contains(userId) && columns.contains(column) && sfsjgg != null && sfsjgg.equals("")) { + return true; + }else { + return false; + } + } + + if(LD_ChangeForm_LowerstPriv_Users_Config[0].contains(userId)) { + ArrayList columns = getColumn(LD_ChangeForm_LowerstPriv_AttrName_Config[0]); + String sfsjgg = tableModel.getValueAt(row, YNCHANGE_INDEX).toString(); + + if(tableModel.getValueAt(row, CLRZH_PERSON_INDEX).toString().contains(userId) && columns.contains(column) && sfsjgg != null && sfsjgg.equals("")) { + return true; + }else { + return false; + } } - return true; + + return false; } }; tableModel.setDataVector(null, header); JTable table_data = new JTable(tableModel); + //table_data.setRowHeight(60); JComboBox ynChangeComboBox = new JComboBox(); JComboBox changeStateComboBox = new JComboBox(); HashMap ynChangeMap = new LinkedHashMap(); @@ -147,18 +255,37 @@ public class CNForm extends AbstractRendering implements FormModel{ KUtil.getLov(changeStateMap,changeStateLovName,changeStateComboBox); table_data.getColumnModel().getColumn(YNCHANGE_INDEX).setCellEditor(new DefaultCellEditor(ynChangeComboBox)); table_data.getColumnModel().getColumn(CHANGE_STATE_INDEX).setCellEditor(new DefaultCellEditor(changeStateComboBox)); + //CG + + + + JComboBox nycdComboBox = new JComboBox(); + nycdComboBox.addItem(""); + nycdComboBox.addItem("һ"); + nycdComboBox.addItem(""); + nycdComboBox.addItem(""); + table_data.getColumnModel().getColumn(10).setCellEditor(new DefaultCellEditor(nycdComboBox)); + + + JComboBox jjcdComboBox = new JComboBox(); + jjcdComboBox.addItem("һ"); + jjcdComboBox.addItem(""); + jjcdComboBox.addItem(""); + table_data.getColumnModel().getColumn(11).setCellEditor(new DefaultCellEditor(jjcdComboBox)); //DatePicker - StringValue sv = new FormatStringValue(df); TableCellRenderer r = new DefaultTableRenderer(sv); + table_data.getColumnModel().getColumn(ld6_RWfptime_index).setCellEditor(new DatePickerCellEditor(df)); + table_data.getColumnModel().getColumn(ld6_RWfptime_index).setCellRenderer(r); table_data.getColumnModel().getColumn(REQUIRE_FINISH_TIME_INDEX).setCellEditor(new DatePickerCellEditor(df)); table_data.getColumnModel().getColumn(REQUIRE_FINISH_TIME_INDEX).setCellRenderer(r); table_data.getColumnModel().getColumn(ACTUAL_FINISH_TIME_INDEX).setCellEditor(new DatePickerCellEditor(df)); table_data.getColumnModel().getColumn(ACTUAL_FINISH_TIME_INDEX).setCellRenderer(r); //п + //CG table_data.getColumnModel().getColumn(0).setPreferredWidth(10); table_data.getColumnModel().getColumn(1).setPreferredWidth(60); - table_data.getColumnModel().getColumn(2).setPreferredWidth(180); + table_data.getColumnModel().getColumn(2).setPreferredWidth(300); table_data.getColumnModel().getColumn(3).setPreferredWidth(40); table_data.getColumnModel().getColumn(4).setPreferredWidth(80); table_data.getColumnModel().getColumn(5).setPreferredWidth(80); @@ -182,39 +309,64 @@ public class CNForm extends AbstractRendering implements FormModel{ FormBean formBean = beanList.get(i); for (int j = 0; j < propNames.length; j++) { switch (j) { + //CG case 0: - values[i][j] = formBean.getNum(); - break; - case 1: - values[i][j] = formBean.getChangeTaskName(); - break; - case 2: - values[i][j] = formBean.getTask(); - break; - case 3: - values[i][j] = formBean.getYnChange(); - break; - case 4: - values[i][j] = formBean.getChangePerson(); - break; - case 5: - values[i][j] = formBean.getTaskRequireDesc(); - break; - case 6: - values[i][j] = formBean.getHandlePerson(); - break; - case 7: - values[i][j] = formBean.getChangeState(); - break; - case 8: - values[i][j] = formBean.getRequireFinishTime(); - break; - case 9: - values[i][j] = formBean.getActualFinishTime(); - break; - case 10: - values[i][j] = formBean.getChangeRemarks(); - break; + values[i][j] = formBean.getLd6_SeqNum(); + break; + case 1: + values[i][j] = formBean.getLd6_ChangeTaskName(); + break; + case 2: + values[i][j] = formBean.getLd6_Task(); + break; + case 3: + values[i][j] = formBean.getLd6_YNChange(); + break; + case 4: + values[i][j] = formBean.getLd6_ChangePerson(); + break; + case 5: + values[i][j] = formBean.getLd6_RWms(); + break; + case 6: + values[i][j] = formBean.getLd6_RWPerson(); + break; + case 7: + values[i][j] = formBean.getLd6_CLRPerson(); + break; + case 8: + values[i][j] = formBean.getLd6_SHPerson(); + break; + case 9: + values[i][j] = formBean.getLd6_PZPerson(); + break; + case 10: + values[i][j] = formBean.getLd6_RWnycd(); + break; + case 11: + values[i][j] = formBean.getLd6_RWjjcd(); + break; + case 12: + values[i][j] = formBean.getLd6_RWworkhour(); + break; + case 13: + values[i][j] = formBean.getLd6_RWsjworkhour(); + break; + case 14: + values[i][j] = formBean.getLd6_RWfptime(); + break; + case 15: + values[i][j] = formBean.getLd6_RWyqtime(); + break; + case 16: + values[i][j] = formBean.getLd6_RWsjtime(); + break; + case 17: + values[i][j] = formBean.getLd6_Changestate(); + break; + case 18: + values[i][j] = formBean.getLd6_ChangeRemarks(); + break; default: values[i][j] = ""; break; @@ -224,6 +376,12 @@ public class CNForm extends AbstractRendering implements FormModel{ } table_data.setSurrendersFocusOnKeystroke(true); + + sfsjggList = new ArrayList(); + for (int i = 0; i < tableModel.getRowCount(); i++) { + sfsjggList.add((String)tableModel.getValueAt(i, 3)); + } + System.out.println("sfsjggList================"+sfsjggList.toString()); AbstractAIFApplication app1 = AIFUtility.getCurrentApplication(); TCSession session1 = (TCSession) app1.getSession(); String[] value1 = session1.getPreferenceService().getStringValues("LD_CNCIFormRemarks_Config"); @@ -231,66 +389,16 @@ public class CNForm extends AbstractRendering implements FormModel{ int remarkWidth = Integer.parseInt(value1[0]); int maxRemarkLength = Integer.parseInt(value1[1]); - //ñעп - table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setPreferredWidth(remarkWidth); - //ӱעеı༭ͼ - table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setCellEditor(new DefaultCellEditor(new JTextField()) { - @Override - public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - final JTextField editor = (JTextField) super.getTableCellEditorComponent(table, value, isSelected, row, column); - editor.setDocument(new PlainDocument() { - public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { - if (editor.getText().length() + str.length() <= maxRemarkLength) { - super.insertString(offs, str, a); - } else { - MessageBox.post("ַ", "ʾ", MessageBox.INFORMATION); - } - } - }); - return editor; - } - }); - //ӱעеȾ - table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setCellRenderer(new DefaultTableCellRenderer() { - @Override - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { - JTextArea renderer = new JTextArea(); - renderer.setText(value == null ? "" : value.toString()); - renderer.setLineWrap(true); - renderer.setWrapStyleWord(true); - return renderer; - } - }); - table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setCellEditor(new DefaultCellEditor(new JTextField()) { - private JTextArea editor; - @Override - public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - editor = new JTextArea(); - editor.setText(value == null ? "" : value.toString()); - editor.setLineWrap(true); - editor.setWrapStyleWord(true); - return editor; - } - @Override - public boolean isCellEditable(EventObject e) { - if (e instanceof MouseEvent) { - return ((MouseEvent)e).getClickCount() >= 2; - } - return super.isCellEditable(e); - } - @Override - public Object getCellEditorValue() { - String text = editor.getText(); - editor.setRows(1); // ༭ĸ߶ȵΪи߶ - return text; - } - // ʡ - }); + // ñעп + table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setPreferredWidth(remarkWidth); + table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setCellRenderer(new MultiLineCellRenderer()); + table_data.getColumnModel().getColumn(CHANGE_REMARKS_INDEX).setCellEditor(new MultiLineCellEditor()); + //ѡֵӰУȡѡֵõMap<,صб>; AbstractAIFApplication app = AIFUtility.getCurrentApplication(); - TCSession session = (TCSession) app.getSession(); + session = (TCSession) app.getSession(); String[] value = session.getPreferenceService().getStringValues("LD_CNCIFormAttribute_Hide"); if(value!=null && value.length>0) { Map> hideMap = new HashMap>(); @@ -330,7 +438,16 @@ public class CNForm extends AbstractRendering implements FormModel{ List value2 = entry.getValue(); for (int i = 0; i < value2.size(); i++) { String str = value2.get(i); - int index = Arrays.binarySearch(propNames, str); + System.out.println("str==="+str); + //CG + int index = -1; + + for (int j = 0; j < propNames.length; j++) { + if(propNames[j].equals(str)) { + index = j; + } + } + System.out.println("index"+index); hideList.add(index); // @@ -347,35 +464,94 @@ public class CNForm extends AbstractRendering implements FormModel{ // õѡееֵ int r = table_data.getSelectedRow(); int c = table_data.getSelectedColumn(); - if(c == CHANGE_PERSON_INDEX) { - String userString = new KOrgDialog("").getUserString(); - String condition = table_data.getValueAt( r, YNCHANGE_INDEX).toString(); - System.err.println("ǰֵΪ" + condition + "======" + userString); - if(condition.equals("") && !userString.isEmpty()) { - table_data.setValueAt(userString, r, c); - } + if(c == CHANGE_PERSON_INDEX || c == CLRZH_PERSON_INDEX || c == SHRZH_PERSON_INDEX || c == PZRZH_PERSON_INDEX) { + boolean cellEditable = tableModel.isCellEditable(r,c); + System.out.println("cellEditable======================"+cellEditable); + if(cellEditable) { + String userString = new KOrgDialog("").getUserString(); + String condition = table_data.getValueAt( r, YNCHANGE_INDEX).toString(); + System.err.println("ǰֵΪ" + condition + "======" + userString); + if(condition.equals("") && !userString.isEmpty() ) { + table_data.setValueAt(userString, r, c); + } + + }else { + MessageBox.post("ûȨޱ༭˵Ԫ ǷƸIJΪǡ,޷༭", "ʾ", MessageBox.INFORMATION); + } } + +// if(c == YNCHANGE_INDEX) { +// try { +// if(userId == null || userId.isEmpty()) { +// userId = session.getUser().getUserId(); +// } +// String fpr = tableModel.getValueAt(r, 4).toString(); +// if(!fpr.contains(userId)) { +// MessageBox.post("DZз޷ǷҪ!", "ʾ", MessageBox.INFORMATION); +// return; +// } +// +// +// } catch (TCException e1) { +// // TODO Auto-generated catch block +// e1.printStackTrace(); +// } +// } } }); tableModel.addTableModelListener(new TableModelListener(){ @Override public void tableChanged(TableModelEvent e) { + //CG if(e.getType() == TableModelEvent.UPDATE){ - //ҵ߼ + try { + //ҵ߼ + String newvalue = table_data.getValueAt(e.getLastRow(),e.getColumn()).toString(); + if(e.getColumn() == YNCHANGE_INDEX){ - String newvalue = table_data.getValueAt(e.getLastRow(),e.getColumn()).toString(); - if(newvalue.equals("")) { + System.out.println("e.getLastRow()========"+e.getLastRow()); + System.out.println("newvalue========"+newvalue); + if(newvalue.equals("") && !sfsjggList.get(e.getFirstRow()).equals("")) { table_data.setValueAt("", e.getLastRow(), CHANGE_PERSON_INDEX); - }else { - String id = table_data.getValueAt(table_data.getSelectedRow(),0).toString(); - table_data.setValueAt(personMap.get(id), e.getLastRow(), CHANGE_PERSON_INDEX); + table_data.setValueAt("", e.getLastRow(), HANDLE_PERSON_INDEX); + table_data.setValueAt("", e.getLastRow(), CLRZH_PERSON_INDEX); + table_data.setValueAt("", e.getLastRow(), SHRZH_PERSON_INDEX); + table_data.setValueAt("", e.getLastRow(), PZRZH_PERSON_INDEX); + table_data.setValueAt("", e.getLastRow(), NYCD_INDEX); + table_data.setValueAt("", e.getLastRow(), JJCD_INDEX); + sfsjggList.set(e.getFirstRow(), ""); + }else if(newvalue.equals("") && !sfsjggList.get(e.getFirstRow()).equals("")){ + sx(e.getLastRow(),0); + sfsjggList.set(e.getFirstRow(), ""); } } + + + if(e.getColumn() == TASK_INDEX) { + stringList.set(e.getLastRow(), newvalue); + } + + if(e.getColumn() == CHANGE_REMARKS_INDEX) { + int row = e.getLastRow(); + int col = e.getColumn(); + if (row > -1 && col > -1) { + + + if (newvalue.length() > maxRemarkLength) { + MessageBox.post("ַ", "ʾ", MessageBox.INFORMATION); + table_data.setValueAt(newvalue.substring(0, maxRemarkLength - 1), row, col); + } + } + } + + } catch (Exception e2) { + } } } }); + table_data.setDefaultRenderer(Object.class, new TableViewRenderer()); JScrollPane scroll = new JScrollPane(table_data); JButton saveButton = new JButton(""); @@ -401,6 +577,11 @@ public class CNForm extends AbstractRendering implements FormModel{ col.setWidth(val.get(2)); // õǰΪ0 col.setPreferredWidth(val.get(3)); // ѡΪ0 } + //CG + for (int i = 0; i < tableModel.getRowCount(); i++) { + tableModel.setValueAt(stringList.get(i), i, 2); + } + //ı䰴ť displayButton.setText(""); flag = false; @@ -416,9 +597,41 @@ public class CNForm extends AbstractRendering implements FormModel{ } }); + + //CG + JButton sxButton = new JButton("ˢ"); + sxButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent arg0) { + + int selectedRow = table_data.getSelectedRow(); + if(selectedRow == -1) { + MessageBox.post("ѡУ", "ʾ", MessageBox.INFORMATION); + return; + }else { + + String condition = table_data.getValueAt( selectedRow, YNCHANGE_INDEX).toString(); + if(condition.equals("")) { + sx(selectedRow,1); + }else { + MessageBox.post("漰ģ", "ʾ", MessageBox.INFORMATION); + } + + } + + + } + + }); + JPanel panel = new JPanel(); panel.add(saveButton); panel.add(displayButton); + + if(!LD_ChangeForm_RefreshButton_Users_Config[0].contains(userId)) { + sxButton.setVisible(false); + } + panel.add(sxButton); this.add(scroll,BorderLayout.CENTER); this.add(panel,BorderLayout.SOUTH); this.setVisible(true); @@ -535,6 +748,19 @@ public class CNForm extends AbstractRendering implements FormModel{ col.setMaxWidth(0); // Ϊ0 col.setWidth(0); // õǰΪ0 col.setPreferredWidth(0); // ѡΪ0 + //CG + + if(column == 2) { + stringList = new ArrayList(); + stringList2 = new ArrayList(); + for (int i = 0; i < tableModel.getRowCount(); i++) { + stringList2.add((String)tableModel.getValueAt(i, 2)); + stringList.add((String)tableModel.getValueAt(i, 2)); + tableModel.setValueAt("", i, 2); + } + + stringList = stringList2; + } } @Override @@ -555,44 +781,66 @@ public class CNForm extends AbstractRendering implements FormModel{ Map propMap = new HashMap(); Map propDateMap = new HashMap(); for (int j = 0; j < propNames.length; j++) { - if("ld6_YNChange".equals(propNames[j])) { - String val = tableModel.getValueAt(i, j).toString(); - if(val.isEmpty()) { - err++; - if("".equals(sb.toString())) { - sb.append(i+1); - }else { - sb.append(""); - sb.append(i+1); - } - break; - } - if("".equals(val)) { - String user = tableModel.getValueAt(i, j + 1).toString(); - if("".equals(user.trim())) { - err++; - if("".equals(sb.toString())) { - sb.append(i+1); - }else { - sb.append(""); - sb.append(i+1); - } - break; - } - } - } - if(j == REQUIRE_FINISH_TIME_INDEX || j == ACTUAL_FINISH_TIME_INDEX) { +// if("ld6_YNChange".equals(propNames[j])) { +// String val = tableModel.getValueAt(i, j).toString(); +// if(val.isEmpty()) { +// err++; +// if("".equals(sb.toString())) { +// sb.append(i+1); +// }else { +// sb.append(""); +// sb.append(i+1); +// } +// break; +// } +// if("".equals(val)) { +// //CG +// String user = tableModel.getValueAt(i, 2).toString(); +// +// +// +// if("".equals(user.trim())) { +// err++; +// if("".equals(sb.toString())) { +// sb.append(i+1); +// }else { +// sb.append(""); +// sb.append(i+1); +// } +// break; +// } +// } +// } + + //CG + if(j == REQUIRE_FINISH_TIME_INDEX || j == ACTUAL_FINISH_TIME_INDEX || j == ld6_RWfptime_index) { Calendar cal = Calendar.getInstance(); String value = tableModel.getValueAt(i, j) == null ? "" : tableModel.getValueAt(i, j).toString(); if(!value.isEmpty()) { if(value.contains("CST")) { cal.setTime(cst.parse(value)); propDateMap.put(propNames[j],cal); + }else if(value.contains("GMT")){ + TimeZone tz = TimeZone.getTimeZone("GMT+8"); + gmt.setTimeZone(tz); + Date s = null; + try { + s = gmt.parse(value); + System.out.println(s); // Sun Oct 22 00:00:00 CST 2017 + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + cal.setTime(s); + propDateMap.put(propNames[j],cal); }else { cal.setTime(sdf.parse(value)); propDateMap.put(propNames[j],cal); } } + }else if(j == TASK_INDEX){ + System.out.println("stringList.get(i)=============="+stringList.get(i)); + propMap.put(propNames[j],stringList.get(i)); }else { propMap.put(propNames[j],tableModel.getValueAt(i, j) == null ? "" : tableModel.getValueAt(i, j).toString()); } @@ -621,11 +869,156 @@ public class CNForm extends AbstractRendering implements FormModel{ MessageBox.post("ɹ","ʾ",MessageBox.INFORMATION); } } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); + // TODO Auto-generated catch block } } + public void sx(int selectedRow,int change) { + + //жϵǰûǷΪ +// try { +// if(userId == null || userId.isEmpty()) { +// userId = session.getUser().getUserId(); +// } +// String fpr = tableModel.getValueAt(selectedRow, 4).toString(); +// if(!fpr.contains(userId)) { +// MessageBox.post("DZз޷ִˢ¹!", "ʾ", MessageBox.INFORMATION); +// return; +// } +// } catch (TCException e1) { +// // TODO Auto-generated catch block +// e1.printStackTrace(); +// } + + + + //ȡѡ + HashMap> persionMap = new HashMap>(); + HashMap returnMap = new HashMap(); + String ggrwx = tableModel.getValueAt(selectedRow, 1).toString(); + boolean isOverOne = false; + try { + String[] prefVals = KUtil.getPrefVals(session, "Connor_Personlist"); + if(prefVals == null || prefVals.length == 0 ) { + MessageBox.post("ѡConnor_Personlist", "ʾ", MessageBox.INFORMATION); + return; + } + + if(change == 0) { + tableModel.setValueAt("һ", selectedRow, NYCD_INDEX); + tableModel.setValueAt("һ", selectedRow, JJCD_INDEX); + + + //ץģ + String xh = (String) tableModel.getValueAt(selectedRow, SEQ_NUM_INDEX); + String changePerson = personMap.get(xh); + if(changePerson != null && !changePerson.isEmpty()) { + tableModel.setValueAt(changePerson, selectedRow, CHANGE_PERSON_INDEX); + } + } + + for (int i = 0; i < prefVals.length; i++) { + String pref = prefVals[i]; + String[] split = pref.split(":"); + if(ggrwx.equals(split[0])) { + if(persionMap.containsKey(split[0])) { + ArrayList list = persionMap.get(split[0]); + list.add(split[1]); + persionMap.put(split[0],list); + }else { + ArrayList list =new ArrayList(); + list.add(split[1]); + persionMap.put(split[0],list); + } + + } + + + + + + } + + + + ArrayList list = persionMap.get(ggrwx); + + if(list.size() > 1) { + JComboBox jComboBox = new JComboBox(); + for (int i = 0; i < list.size(); i++) { + jComboBox.addItem(list.get(i)); + } + System.out.println("persionMap==="+persionMap.size()); + DialogFrame dialog = new DialogFrame(null,jComboBox,returnMap,ggrwx); + System.out.println("returnMap==="+returnMap.size()); + dialog.setVisible(true); + isOverOne = true; + } + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + //ѭֵ + String persons = ""; + if(isOverOne) { + persons = returnMap.get(ggrwx); + }else { + persons = persionMap.get(ggrwx).get(0); + } + if(persons != null && !persons.isEmpty()) { + String[] split = persons.split("\\\\"); +// System.out.println("split[0]==="+split[0]); +// if(split[0].contains("_")) { +// tableModel.setValueAt("", selectedRow, 4); +// }else { +// String[] split2 = split[0].split("-"); +// System.out.println("split2[1]==="+split2[1]); +// tableModel.setValueAt(split2[1], selectedRow, 4); +// System.out.println("split2[0]==="+split2[0]); +// } + + + if(split[0].contains("_")) { + tableModel.setValueAt("", selectedRow, 7); + }else { + String[] split2 = split[0].split("-"); + tableModel.setValueAt(split2[1], selectedRow, 7); + } + + if(split[1].contains("_")) { + tableModel.setValueAt("", selectedRow, 8); + }else { + String[] split2 = split[1].split("-"); + tableModel.setValueAt(split2[1], selectedRow, 8); + } + + if(split[2].contains("_")) { + tableModel.setValueAt("", selectedRow, 9); + }else { + String[] split2 = split[2].split("-"); + tableModel.setValueAt(split2[1], selectedRow, 9); + } + } + tableModel.fireTableDataChanged(); + + + } + + public ArrayList getColumn(String desc){ + ArrayList integers = new ArrayList(); + String[] split = desc.split(";"); + for (int i = 0; i < split.length; i++) { + for (int j = 0; j < headerDssc.length; j++) { + if(split[i].equals(headerDssc[j])) { + integers.add(j); + } + } + } + + return integers; + } } diff --git a/src/com/net/connor/ld/plm/ld05/DialogFrame.java b/src/com/net/connor/ld/plm/ld05/DialogFrame.java new file mode 100644 index 0000000..c893fdc --- /dev/null +++ b/src/com/net/connor/ld/plm/ld05/DialogFrame.java @@ -0,0 +1,51 @@ +package com.net.connor.ld.plm.ld05; +import javax.swing.*; + +import com.sun.scenario.effect.impl.hw.d3d.D3DShaderSource; +import com.teamcenter.rac.util.MessageBox; + +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; + +public class DialogFrame extends JDialog { + + private JComboBox comboBox; + private Object syncObject; + public DialogFrame(JFrame owner,JComboBox comboBox,HashMap map,String key) { + super(owner, key, true); // ģ̬Ի + this.comboBox = comboBox; + this.syncObject = syncObject; + JButton button = new JButton("ȷ"); + button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + String selectedItem =(String) comboBox.getSelectedItem(); + if(selectedItem == null || selectedItem.isEmpty()) { + MessageBox.post("ѡݣ", "ʾ ", MessageBox.INFORMATION); + }else { + + System.out.println("Selected Item: " + selectedItem); + map.put(key,selectedItem); + dispose(); // رնԻ + + } + + } + }); + this.setPreferredSize(new Dimension(700,140)); + JPanel panel = new JPanel(); + panel.setLayout(new FlowLayout()); + panel.add(new JLabel("ѡ")); + panel.add(comboBox); + panel.add(button); + + this.add(panel); + this.pack(); + this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); + this.setLocationRelativeTo(owner); // ʾ + } +} \ No newline at end of file diff --git a/src/com/net/connor/ld/plm/ld05/ECSelectDialog.java b/src/com/net/connor/ld/plm/ld05/ECSelectDialog.java new file mode 100644 index 0000000..b64fe31 --- /dev/null +++ b/src/com/net/connor/ld/plm/ld05/ECSelectDialog.java @@ -0,0 +1,948 @@ +package com.net.connor.ld.plm.ld05; + +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.ItemEvent; +import java.awt.event.ItemListener; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.time.temporal.ChronoUnit; +import java.time.temporal.WeekFields; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map.Entry; + +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFileChooser; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.border.EmptyBorder; +import javax.swing.table.DefaultTableModel; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellValue; +import org.apache.poi.ss.usermodel.FormulaEvaluator; +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.net.connor.ld.plm.bean.FormBean; +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.TCComponentDataset; +import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentItem; +import com.teamcenter.rac.kernel.TCComponentItemRevision; +import com.teamcenter.rac.kernel.TCComponentScheduleTask; +import com.teamcenter.rac.kernel.TCException; +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 cn.net.connor.ld.plm.KUtil; + +public class ECSelectDialog extends JFrame implements ActionListener, FormModel { + + private static final DateFormat dateFormat = null; + private TCSession session; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + private JButton okButton = new JButton(""); + private JButton concelButton = new JButton("ȡ"); + + HashMap objectMap = new HashMap(); +// private JButton cleanButton1 = new JButton(""); +// private JButton cleanButton2 = new JButton(""); + private JButton choosetButton = new JButton("ѡ"); + private DateButton startButton; + private DateButton endButton; + private DateButton startButtonSJWC; + private DateButton endButtonSJWC; + private JTextField pathJTextField = new JTextField(30); + private JTextField fprField = new JTextField(10); + private JTextField clrField = new JTextField(10); + AbstractAIFApplication app; + private String[] LD_ECForm_Mapping = null; + private LinkedHashMap cskfPMap = new LinkedHashMap(); + String[] LD6_ECForm_ModelUid = null; + LinkedHashMap ggrwxMap = new LinkedHashMap(); + LinkedHashMap rwxzMap = new LinkedHashMap(); + LinkedHashMap nycdMap = new LinkedHashMap(); + LinkedHashMap jjcdMap = new LinkedHashMap(); + LinkedHashMap cskfMap = new LinkedHashMap(); + + public ECSelectDialog(TCSession session, AbstractAIFApplication app) throws TCException { + // TODO Auto-generated constructor stub + this.session = session; + this.app = app; + initUI(); + } + + private void initUI() { + // TODO Auto-generated method stub + try { + + + String[] ld_overtime = session.getPreferenceService() + .getStringValues("ld_overtime"); + + + + if (ld_overtime == null || ld_overtime.length <= 0) { + MessageBox.post("ѡld_overtime顣", "ʾ", 2); + return; + } + + for (int i = 0; i < ld_overtime.length; i++) { + String[] split = ld_overtime[i].split(":"); + cskfPMap.put(split[0],split[1]); + } + + LD_ECForm_Mapping = session.getPreferenceService() + .getStringValues("LD_ECForm_Mapping"); + + System.out.println("LD_ECForm_Mapping.length======"+LD_ECForm_Mapping.length); + + if (LD_ECForm_Mapping == null || LD_ECForm_Mapping.length < 5) { + MessageBox.post("ѡLD_ECForm_Mapping顣", "ʾ", 2); + return; + }else { + String[] split11 = LD_ECForm_Mapping[0].split(";"); + for (int i = 0; i < split11.length; i++) { + String[] split2 = split11[i].split("="); + ggrwxMap.put(split2[0],Double.parseDouble(split2[1])); + } + + String[] split22 = LD_ECForm_Mapping[1].split(";"); + for (int i = 0; i < split22.length; i++) { + String[] split2 = split22[i].split("="); + rwxzMap.put(split2[0],Double.parseDouble(split2[1])); + } + + String[] split33 = LD_ECForm_Mapping[2].split(";"); + for (int i = 0; i < split33.length; i++) { + String[] split2 = split33[i].split("="); + nycdMap.put(split2[0],Double.parseDouble(split2[1])); + } + + String[] split44 = LD_ECForm_Mapping[3].split(";"); + for (int i = 0; i < split44.length; i++) { + String[] split2 = split44[i].split("="); + jjcdMap.put(split2[0],Double.parseDouble(split2[1])); + } + + String[] split55 = LD_ECForm_Mapping[4].split(";"); + for (int i = 0; i < split55.length; i++) { + String[] split2 = split55[i].split("="); + cskfMap.put(split2[0],Double.parseDouble(split2[1])); + } + } + + + System.out.println("ggrwxMap==========="+ggrwxMap.toString()); + System.out.println("rwxzMap==========="+rwxzMap.toString()); + System.out.println("nycdMap==========="+nycdMap.toString()); + System.out.println("jjcdMap==========="+jjcdMap.toString()); + System.out.println("cskfMap==========="+cskfMap.toString()); + + + LD6_ECForm_ModelUid = session.getPreferenceService() + .getStringValues("LD6_ECForm_ModelUid"); + + if (LD6_ECForm_ModelUid == null || LD6_ECForm_ModelUid.length <= 0) { + MessageBox.post("ѡLD6_ECForm_ModelUid顣", "ʾ", 2); + return; + } + + + + startButton = new DateButton(sdf); + endButton = new DateButton(sdf); + startButton.setDate("δ"); + endButton.setDate("δ"); + + startButtonSJWC = new DateButton(sdf); + endButtonSJWC = new DateButton(sdf); + startButtonSJWC.setDate("δ"); + endButtonSJWC.setDate("δ"); + + this.setTitle("ECѯ"); + 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(650, 230)); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // ȡĻߴ + int screenWidth = screenSize.width; // ȡĻ + int screenHeight = screenSize.height; // ȡĻ߶ + int x = (screenWidth - 650) / 2; // FrameϽx + int y = (screenHeight - 230) / 2; // FrameϽy + this.setLocation(x, y); // Frameλ + + // this.setLocationRelativeTo(null); + this.createActionEvent(); + this.pack(); + + // this.validate(); + this.setVisible(true); + +// this.setAlwaysOnTop(true); + + } catch (Exception e) { + e.printStackTrace(); + return; + } + +// cleanButton1.addActionListener(new ActionListener() { +// +// @Override +// public void actionPerformed(ActionEvent arg0) { +// // TODO Auto-generated method stub +// startButton.setDate("δ"); +// +// } +// }); + +// cleanButton1.addActionListener(new ActionListener() { +// +// @Override +// public void actionPerformed(ActionEvent arg0) { +// // TODO Auto-generated method stub +// endButton.setDate("δ"); +// } +// }); + + } + + // Ӽ + 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)) { + Date startButtondDate = startButton.getDate(); + Date endbDatedaDate = endButton.getDate(); + + Date startButtondDateSJWC = startButtonSJWC.getDate(); + Date endbDatedaDateSJWC = endButtonSJWC.getDate(); + + ArrayList tmList = new ArrayList(); + ArrayList zList = new ArrayList(); + + if (!fprField.getText().isEmpty()) { + tmList.add(""); + zList.add(fprField.getText()); + } + + if (!clrField.getText().isEmpty()) { + tmList.add(""); + zList.add(clrField.getText()); + } + + if (startButtondDate != null) { + tmList.add("ʱ"); + zList.add(sdf.format(startButtondDate).replaceAll("(\\d{4})-0(\\d)-", "$1-$2-") + " 00:00"); + } + + if (endbDatedaDate != null) { + tmList.add("ʱ"); + zList.add(sdf.format(endbDatedaDate).replaceAll("(\\d{4})-0(\\d)-", "$1-$2-") + " 00:00"); + } + + if (startButtondDateSJWC != null) { + tmList.add("ʵʱ"); + zList.add(sdf.format(startButtondDateSJWC).replaceAll("(\\d{4})-0(\\d)-", "$1-$2-") + " 00:00"); + } + + if (endbDatedaDateSJWC != null) { + tmList.add("ʵʱ"); + zList.add(sdf.format(endbDatedaDateSJWC).replaceAll("(\\d{4})-0(\\d)-", "$1-$2-") + " 00:00"); + } + + + if (tmList.size() == 0) { + MessageBox.post("", "ʾ", MessageBox.INFORMATION); + return; + } + + String pathJTextFieldStr = pathJTextField.getText(); + if (pathJTextFieldStr == null || pathJTextFieldStr.isEmpty()) { + MessageBox.post("ѡҪ·", "ʾ", 2); + return; + } + + + System.out.println("tmList==========="+tmList.toString()); + System.out.println("zList==========="+zList.toString()); + TCComponent[] searchCN = null; + TCComponent[] searchCI = null; + LinkedHashMap revFormMap =new LinkedHashMap(); + try { + searchCN = session.search("SearchECForm-CNForm", tmList.toArray(new String[0]), zList.toArray(new String[0])); + searchCI = session.search("SearchECForm-CIForm", tmList.toArray(new String[0]), zList.toArray(new String[0])); + + } catch (Exception e3) { + // TODO Auto-generated catch block + e3.printStackTrace(); + } + + + System.out.println("searchCN============="+searchCN.length); + System.out.println("searchCI============="+searchCI.length); + + for (int i = 0; i < searchCI.length; i++) { + + + TCComponentForm form = (TCComponentForm)searchCI[i]; + AIFComponentContext[] whereReferenced; + try { + whereReferenced = form.whereReferenced(); + for (int j = 0; j < whereReferenced.length; j++) { + String type = whereReferenced[j].getComponent().getType(); + System.out.println("type======================="+type); + if(type.equals("LD6_CNRevision")) { + revFormMap.put((TCComponentItemRevision)whereReferenced[j].getComponent(),form); + } + } + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + + } + + for (int i = 0; i < searchCN.length; i++) { + + + TCComponentForm form = (TCComponentForm)searchCN[i]; + AIFComponentContext[] whereReferenced; + try { + whereReferenced = form.whereReferenced(); + for (int j = 0; j < whereReferenced.length; j++) { + String type = whereReferenced[j].getComponent().getType(); + System.out.println("type======================="+type); + if(type.equals("LD6_CNRevision")) { + revFormMap.put((TCComponentItemRevision)whereReferenced[j].getComponent(),form); + } + } + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + + } + + System.out.println("revFormMap======================"+revFormMap.size()); + + + if (revFormMap.size() <= 0) { + MessageBox.post("δ鵽ݣ޷", "ʾ", 2); + return; + } else { + + // ݵ߼ + File model_file = null; + File output_file = null; + InputStream input; + String targetPath = null; + try { + + + + TCComponentDataset excel = (TCComponentDataset) session + .stringToComponent(LD6_ECForm_ModelUid[0]); + + model_file = ((TCComponentDataset) excel).getTcFiles()[0].getFmsFile(); + String date = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()); + String fileName = "ECЧѯ_" + date + ".xlsx"; + + // Դļ· + Path sourcePath = Paths.get(model_file.getPath()); // 滻ΪԴļ· + // Ŀļ· + targetPath = pathJTextFieldStr + "\\" + fileName; + + ArrayList beanList = new ArrayList(); + // ȡѯ + +// +// TCComponent form = (TCComponent)app.getTargetComponent(); +// ArrayList beanList = new ArrayList(); +// KUtil.getModelVale(map,form,null,propNames); +// for (Entry> entry : map.entrySet()) { +// ArrayList arrayList = entry.getValue(); +// FormBean bean = new FormBean(arrayList); +// beanList.add(bean); +// } +// + + // ȡļе + input = new FileInputStream(model_file); + XSSFWorkbook wb = new XSSFWorkbook(input);// ( + XSSFSheet sheet = wb.getSheetAt(0); + int row = 2; + int count = 1; + for (Entry tempMap : revFormMap.entrySet()) { + TCComponentItemRevision key = tempMap.getKey(); + TCComponentForm value = tempMap.getValue(); + LinkedHashMap> map = new LinkedHashMap>(); + KUtil.getModelVale(map, value, null, propNames); + + + String itemId = key.getStringProperty("item_id"); + System.out.println("itemId====================="+itemId); + String ids = ""; + String prId = ""; + TCComponent[] relatedComponents = key.getRelatedComponents("CMImplements"); + for (int i = 0; i < relatedComponents.length; i++) { + if(relatedComponents[i].getType().equals("LD6_CRRevision")) { + ids += relatedComponents[i].getStringProperty("item_id")+";"; + } + + if(relatedComponents[i].getType().equals("LD6_PRRevision")) { + prId = relatedComponents[i].getStringProperty("item_id"); + } + } + + String ld6_clientPartNum = key.getStringProperty("ld6_clientPartNum"); + String ld6_partName = key.getStringProperty("ld6_partName"); + String ld6_clientName = key.getStringProperty("ld6_clientName"); + + for (Entry> entry : map.entrySet()) { + ArrayList arrayList = entry.getValue(); + FormBean formBean = new FormBean(arrayList); + boolean isOk = true; + for (int i = 0; i < tmList.size(); i++) { + if(tmList.get(i).equals("")) { + String ld6_ChangePerson = formBean.getLd6_ChangePerson(); + String z = zList.get(i); + if(z.contains("*")) { + z = z.replace("*", ""); + } + if(!ld6_ChangePerson.contains(z)) { + isOk = false; + } + } + if(tmList.get(i).equals("")) { + String clrString = formBean.getLd6_RWPerson(); + String z = zList.get(i); + if(z.contains("*")) { + z = z.replace("*", ""); + } + if(!clrString.contains(z)) { + isOk = false; + } + } + + if(tmList.get(i).equals("ʱ")) { + String rwfpString = formBean.getLd6_RWfptime(); + String z = zList.get(i); + System.out.println("rwfpString=================="+rwfpString); + System.out.println("z=========================="+z); + if(rwfpString == null || z == null || rwfpString.isEmpty() || z.isEmpty()) { + isOk = false; + }else { + System.out.println("isDateTimeGreaterThan(rwfpString,z)====="+isDateTimeGreaterThan(rwfpString,z)); + if(!isDateTimeGreaterThan(rwfpString,z)) { + isOk = false; + } + } + + } + + if(tmList.get(i).equals("ʱ")) { + String rwfpString = formBean.getLd6_RWfptime(); + String z = zList.get(i); + if(rwfpString == null || z == null || rwfpString.isEmpty() || z.isEmpty()) { + isOk = false; + }else { + if(isDateTimeGreaterThan(rwfpString,z)) { + isOk = false; + } + } + + } + + if(tmList.get(i).equals("ʵʱ")) { + String rwsjString = formBean.getLd6_RWsjtime(); + String z = zList.get(i); + if(rwsjString == null || z == null || rwsjString.isEmpty() || z.isEmpty()) { + isOk = false; + }else { + if(!isDateTimeGreaterThan(rwsjString,z)) { + isOk = false; + } + } + + } + + if(tmList.get(i).equals("ʵʱ")) { + String rwsjString = formBean.getLd6_RWsjtime(); + String z = zList.get(i); + if(rwsjString == null || z == null || rwsjString.isEmpty() || z.isEmpty()) { + isOk = false; + }else { + if(isDateTimeGreaterThan(rwsjString,z)) { + isOk = false; + } + } + + } + + } + String ld6_YNChange = formBean.getLd6_YNChange(); + if(ld6_YNChange == null || !ld6_YNChange.equals("")) { + isOk = false; + } + + + if(isOk) { + XSSFRow titleRow = sheet.getRow(row); + if (titleRow == null) { + // еһл߸ʾ + titleRow = sheet.createRow(row); + } + setCellValue(titleRow, 0, count+"", sheet, row); + setCellValue(titleRow, 1, itemId, sheet, row); + setCellValue(titleRow, 2, ids, sheet, row); + setCellValue(titleRow, 3, prId, sheet, row); + setCellValue(titleRow, 4, ld6_clientPartNum, sheet, row); + setCellValue(titleRow, 5, ld6_partName, sheet, row); + setCellValue(titleRow, 6, ld6_clientName, sheet, row); + setCellValue(titleRow, 7, formBean.getLd6_ChangeTaskName(), sheet, row); + setCellValue(titleRow, 8, formBean.getLd6_ChangePerson(), sheet, row);// ׳̶ + setCellValue(titleRow, 9, formBean.getLd6_RWms(), sheet, row); + setCellValue(titleRow, 10, formBean.getLd6_RWPerson(), sheet, row); + setCellValue(titleRow, 11, "", sheet, row); + setCellValue(titleRow, 12, "EC", sheet, row); + setCellValue(titleRow, 13, formBean.getLd6_RWnycd(), sheet, row); + setCellValue(titleRow, 14, formBean.getLd6_RWjjcd(), sheet, row); + setCellValue(titleRow, 15, formBean.getLd6_RWworkhour(), sheet, row); + setCellValue(titleRow, 16, formBean.getLd6_RWsjworkhour(), sheet, row);// ʱ۷ + + String ld6_RWfptime = formBean.getLd6_RWfptime(); + LocalDate parseFp = null; + if(ld6_RWfptime != null && !ld6_RWfptime.isEmpty()) { + parseFp = parseToLocalDate(ld6_RWfptime); + // ȡ + int year = parseFp.getYear(); + int month = parseFp.getMonthValue(); + WeekFields weekFields = WeekFields.of(Locale.getDefault()); + int weekOfYear = parseFp.get(weekFields.weekOfWeekBasedYear()); + + setCellValue(titleRow, 17, ld6_RWfptime, sheet, row); + + setCellValue(titleRow, 18, year+"", sheet, row);// + setCellValue(titleRow, 19, month+"", sheet, row); + setCellValue(titleRow, 20, weekOfYear+"", sheet, row); + }else { + setCellValue(titleRow, 17, "", sheet, row); + + setCellValue(titleRow, 18, "", sheet, row);// + setCellValue(titleRow, 19, "", sheet, row); + setCellValue(titleRow, 20, "", sheet, row); + } + + + String ld6_RWyqtime = formBean.getLd6_RWyqtime(); + LocalDate parseYq = null; + if(ld6_RWyqtime != null && !ld6_RWyqtime.isEmpty()) { + parseYq = parseToLocalDate(ld6_RWyqtime); + // ȡ + int year = parseYq.getYear(); + int month = parseYq.getMonthValue(); + WeekFields weekFields = WeekFields.of(Locale.getDefault()); + int weekOfYear = parseYq.get(weekFields.weekOfWeekBasedYear()); + + setCellValue(titleRow, 21, ld6_RWyqtime, sheet, row); + setCellValue(titleRow, 22, year+"", sheet, row); + setCellValue(titleRow, 23, month+"", sheet, row); + setCellValue(titleRow, 24, weekOfYear+"", sheet, row); + }else { + + setCellValue(titleRow, 21, "", sheet, row); + setCellValue(titleRow, 22, "", sheet, row); + setCellValue(titleRow, 23, "", sheet, row); + setCellValue(titleRow, 24, "", sheet, row); + } + + String ld6_RWsjtime = formBean.getLd6_RWsjtime(); + LocalDate parseSj = null; + if(ld6_RWsjtime != null && !ld6_RWsjtime.isEmpty()) { + parseSj = parseToLocalDate(ld6_RWsjtime); + // ȡ + int year = parseSj.getYear(); + int month = parseSj.getMonthValue(); + WeekFields weekFields = WeekFields.of(Locale.getDefault()); + int weekOfYear = parseSj.get(weekFields.weekOfWeekBasedYear()); + + setCellValue(titleRow, 25, ld6_RWsjtime, sheet, row); + setCellValue(titleRow, 26, year+"", sheet, row); + setCellValue(titleRow, 27, month+"", sheet, row); + setCellValue(titleRow, 28, weekOfYear+"", sheet, row); + }else { + + setCellValue(titleRow, 25, "", sheet, row); + setCellValue(titleRow, 26, "", sheet, row); + setCellValue(titleRow, 27, "", sheet, row); + setCellValue(titleRow, 28, "", sheet, row); + } + + setCellValue(titleRow, 29, formBean.getLd6_Changestate(), sheet, row);// ׳̶ + // ֮ + + +// +// if (titleRow == null) { +// // еһл߸ʾ +// titleRow = sheet.createRow(row); +// } +// XSSFCell cell = titleRow.getCell(30); +// if(cell == null) { +// cell = titleRow.createCell(30); +// } + + int rowIndex = 1; + +// cell.setCellFormula( +// "-D" + rowIndex + "-I" + rowIndex + "+M" + rowIndex + "-Q" + rowIndex + "-U" + rowIndex +// + "+Y" + rowIndex); + int a = row+1; +// cell.setCellFormula("IF(Z" + a + "=\"\", \"/\", CHOOSE(MATCH(Z" + a + "-V" + a + ", {-100,1,2,3,100}, 1), \"δʱ\", \"һ\", \"\", \"\"))"); + String formula = "IF(Z" + a + "=\"\", \"/\", " + + "IF(Z" + a + "-V" + a + " < -100, \"δʱ\", " + + "IF(Z" + a + "-V" + a + " < 1, \"һ\", " + + "IF(Z" + a + "-V" + a + " < 2, \"\", " + + "IF(Z" + a + "-V" + a + " < 3, \"\", \"δ֪\")))))"; + //cell.setCellFormula(formula); + +// FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator(); +// CellValue cellValue = evaluator.evaluate(cell); +// +// String cskfStr = getCellValue(cell); +// System.out.println("cskfStr======================="+cskfStr); +// + + // ʽȡ +// FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator(); + // +// // һֱԪ񲢸ֵ +//// evaluator.evaluateFormulaCell(cell); +// String result; +// if (cell.getCellType() == Cell.CELL_TYPE_STRING) { +// result = cell.getStringCellValue(); +// } else { +// // ͻ +// result = "δ֪"; +// } + // +// +// System.out.println("1==================: " + result); +// +// +// // ȡCellValueƼ +// CellValue cellValue = evaluator.evaluate(cell); +// System.out.println("cellValue.getCellType()======"+cellValue.getCellType()); +// switch (cellValue.getCellType()) { +// case Cell.CELL_TYPE_STRING: +// result = cellValue.getStringValue(); +// break; +// case Cell.CELL_TYPE_NUMERIC: +// result = String.valueOf(cellValue.getNumberValue()); +// break; +// case Cell.CELL_TYPE_BOOLEAN: +// result = String.valueOf(cellValue.getBooleanValue()); +// break; +// case Cell.CELL_TYPE_ERROR: +// result = "ʽ"; +// break; +// default: +// result = "δ֪"; +// } + + //System.out.println("2==================: " + result); + + + String result = ""; + if(parseYq == null || parseSj == null) { + setCellValue(titleRow, 30, "/", sheet, row); + }else { + long daysBetween = ChronoUnit.DAYS.between(parseYq, parseSj); + + System.out.println("daysBetween=================="+daysBetween); + + // ÷ + result = checkInterval(cskfPMap, daysBetween); + System.out.println("result==================="+result); + setCellValue(titleRow, 30, result == null ? "" : result, sheet, row); + + } + + setCellValue(titleRow, 31, formBean.getLd6_ChangeRemarks(), sheet, row); + setCellValue(titleRow, 32, formBean.getLd6_CLRPerson(), sheet, row); + setCellValue(titleRow, 33, formBean.getLd6_SHPerson(), sheet, row); + setCellValue(titleRow, 34, formBean.getLd6_PZPerson(), sheet, row); + + + + // ÷ + Double score = null; + String ggrwxStr = formBean.getLd6_ChangeTaskName(); + String nycdStr = formBean.getLd6_RWnycd(); + String jjcdStr = formBean.getLd6_RWjjcd(); + + if (ggrwxStr != null && nycdStr != null && jjcdStr != null && result!= null && !ggrwxStr.isEmpty() && !nycdStr.isEmpty() && !jjcdStr.isEmpty() && !result.isEmpty()) { + + try { + score = ggrwxMap.get(ggrwxStr) * rwxzMap.get("EC") * nycdMap.get(nycdStr) * jjcdMap.get(jjcdStr) * cskfMap.get(result); + setCellValue(titleRow, 35, score == null ? "" : score + "", sheet, row);// ÷ + } catch (Exception e2) { + // TODO: handle exception + setCellValue(titleRow, 35, "", sheet, row);// ÷ + } + + } else{ + setCellValue(titleRow, 35, "", sheet, row);// ÷ + } + + row++; + count++; + } + + + } + } + +// // п +// for (int i = 0; i <= lists.size(); i++) { // A-N +// sheet.autoSizeColumn(i); +// } + + // дļ + try (FileOutputStream outputStream = new FileOutputStream(new File(targetPath))) { + wb.write(outputStream); + } catch (FileNotFoundException e1) { + System.err.println("Ŀļδҵ: " + targetPath); + e1.printStackTrace(); + } catch (IOException e2) { + System.err.println("дļʱ: " + targetPath); + e2.printStackTrace(); + } + + this.dispose(); + MessageBox.post("ɣ", "ʾ", 2); + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + } + + } else if (this.concelButton.equals(source)) { + this.dispose(); + } + + } + + private JPanel getBtnPanel() { + JPanel topPanel = new JPanel(); + topPanel.setLayout(new PropertyLayout()); + topPanel.add("1.1.center", new JLabel("")); + topPanel.add("2.1.center", new JLabel(" ")); + topPanel.add("2.2.center", okButton); + topPanel.add("2.3.center", new JLabel("")); + topPanel.add("2.4.center", concelButton); + + return topPanel; + } + + // ѯ + private JPanel getTopPanel() { + // TODO Auto-generated method stub + JPanel topPanel = new JPanel(); + topPanel.setLayout(new PropertyLayout()); + topPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); + + topPanel.add("1.1.left.center", new JLabel("")); + topPanel.add("2.1.left.center", new JLabel("")); + topPanel.add("3.1.left.center", new JLabel("")); + topPanel.add("4.1.left.center", new JLabel(" ˣ")); + topPanel.add("4.2.left.center", fprField); + topPanel.add("4.3.left.center", new JLabel(" ˣ")); + topPanel.add("4.4.left.center", clrField); + topPanel.add("5.1.left.center", new JLabel(" ʱڣ")); + topPanel.add("5.2.left.center", startButton); + topPanel.add("5.3.left.center", new JLabel(" ʱڣ")); + topPanel.add("5.4.left.center", endButton); + topPanel.add("6.1.left.center", new JLabel(" ʵʱڣ")); + topPanel.add("6.2.left.center", startButtonSJWC); + topPanel.add("6.3.left.center", new JLabel(" ʵʱڣ")); + topPanel.add("6.4.left.center", endButtonSJWC); + topPanel.add("7.1.left.center", new JLabel("")); + topPanel.add("8.1.left.center", new JLabel(" ·")); + topPanel.add("8.2.left.center", pathJTextField); + topPanel.add("8.3.left.center", choosetButton); + + // עťĵ¼ + choosetButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + // ļѡ + JFileChooser fileChooser = new JFileChooser(); + // ļѡֻѡļ + fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + int result = fileChooser.showOpenDialog(topPanel); + if (result == JFileChooser.APPROVE_OPTION) { + // ȡûѡ· + String selectedPath = fileChooser.getSelectedFile().getPath(); + // ûѡ· + System.out.println("ûѡ·" + selectedPath); + pathJTextField.setText(selectedPath); + } + } + }); + return topPanel; + } + + public static void setCellValue(XSSFRow row, int colum, String str, XSSFSheet sheet, int rowNum) { + + XSSFCell cell = row.getCell(colum); + if (cell == null) { + cell = row.createCell(colum); + } + cell.setCellValue(str); + } + + + public static LocalDate parseToLocalDate(String dateString) { + // пܵڸʽ + List formats = new ArrayList<>(); + formats.add("yyyy-M-d"); // e.g., 2024-3-31 + formats.add("yyyy-M-dd"); // e.g., 2024-3-04 + formats.add("yyyy-M-d HH:mm"); // e.g., 2024-3-24 12:11 + formats.add("yyyy-MM-d HH:mm"); // e.g., 2024-11-03 00:00 + + for (String format : formats) { + try { + // ԽַΪ LocalDateTime + LocalDateTime localDateTime = LocalDateTime.parse(dateString, DateTimeFormatter.ofPattern(format)); + // תΪ LocalDate + return localDateTime.toLocalDate(); + } catch (DateTimeParseException e) { + // ʧܣһʽ + } + + try { + // ֱӽΪ LocalDateڲʱIJָʽ + return LocalDate.parse(dateString, DateTimeFormatter.ofPattern(format)); + } catch (DateTimeParseException e) { + // ʧܣһʽ + } + } + + throw new IllegalArgumentException("No valid date format found for: " + dateString); + } + + public String getCellValue(Cell cell) { + if(cell == null) { + return ""; + }else { + int cellType = cell.getCellType(); + System.out.println("cellType========"+cellType); + if(cellType == 1) {//string + return cell.getStringCellValue(); + }else if(cellType == 3 || cellType == 0) {//num + double numericCellValue = cell.getNumericCellValue(); + + if(numericCellValue == 0.0) { + return ""; } + return cell.getNumericCellValue()+""; + } + } + return ""; + } + + + + + public static String checkInterval(LinkedHashMap intervalMap, long number) { + for (Entry entry : intervalMap.entrySet()) { + String interval = entry.getValue(); + if (isNumberInInterval(number, interval)) { + return entry.getKey(); + } + } + return null; // ûƥ䣬 null + } + + + private static boolean isNumberInInterval(long number, String interval) { + // ȥո + interval = interval.replaceAll("\\s", ""); + + // ұ߽Ϳ״̬ + char leftBracket = interval.charAt(0); + char rightBracket = interval.charAt(interval.length() - 1); + String[] parts = interval.substring(1, interval.length() - 1).split(","); + long lowerBound = Long.parseLong(parts[0]); + long upperBound = Long.parseLong(parts[1]); + + // жǷ + boolean isLowerBoundValid = (leftBracket == '[') ? number >= lowerBound : number > lowerBound; + boolean isUpperBoundValid = (rightBracket == ']') ? number <= upperBound : number < upperBound; + + return isLowerBoundValid && isUpperBoundValid; + } + + public static boolean isDateTimeGreaterThan(String dateTime1, String dateTime2) { + // ʱʽ + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-M-d H:mm"); + + // ַΪ LocalDateTime + LocalDateTime parsedDateTime1 = LocalDateTime.parse(dateTime1, formatter); + LocalDateTime parsedDateTime2 = LocalDateTime.parse(dateTime2, formatter); + + // Ƚʱ + return parsedDateTime1.isAfter(parsedDateTime2); + } + +} diff --git a/src/com/net/connor/ld/plm/ld05/ECSelectHandler.java b/src/com/net/connor/ld/plm/ld05/ECSelectHandler.java new file mode 100644 index 0000000..8619dcf --- /dev/null +++ b/src/com/net/connor/ld/plm/ld05/ECSelectHandler.java @@ -0,0 +1,53 @@ +package com.net.connor.ld.plm.ld05; + +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.TCComponentSchedule; +import com.teamcenter.rac.kernel.TCComponentScheduleTask; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.MessageBox; + +public class ECSelectHandler 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() { + InterfaceAIFComponent targetComponent = app.getTargetComponent(); + + + try { + new ECSelectDialog(session,app); + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + }.start(); + + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + } + + return null; + } + + +} diff --git a/src/com/net/connor/ld/plm/ld05/FormModel.java b/src/com/net/connor/ld/plm/ld05/FormModel.java index 4549502..bee2b53 100644 --- a/src/com/net/connor/ld/plm/ld05/FormModel.java +++ b/src/com/net/connor/ld/plm/ld05/FormModel.java @@ -2,19 +2,22 @@ package com.net.connor.ld.plm.ld05; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.HashMap; import java.util.Locale; public interface FormModel { // String[] header = {"","","","ǷҪ","","״̬","ע"}; // String[] propNames = new String[] // {"ld6_SeqNum","ld6_ChangeTaskName" ,"ld6_Task","ld6_YNChange","ld6_ChangePerson","ld6_Changestate","ld6_ChangeRemarks"}; - String[] propNames = new String[] { "ld6_SeqNum", "ld6_ChangeTaskName", "ld6_Task", "ld6_YNChange", - "ld6_ChangePerson", "ld6_taskRequireDesc", "ld6_handlePerson", "ld6_Changestate", "ld6_RequireFinshTime", - "ld6_ActualFinishTime", "ld6_ChangeRemarks" }; + String[] propNames = new String[] { "ld6_SeqNum", "ld6_ChangeTaskName", "ld6_Task","ld6_YNChange", "ld6_ChangePerson","ld6_taskRequireDesc","ld6_handlePerson", + "ld6_CLRPerson","ld6_SHPerson", "ld6_PZPerson","ld6_RWnycd", "ld6_RWjjcd","ld6_RWworkhour","ld6_RWsjworkhour","ld6_AssignDate", + "ld6_RequireFinshTime", "ld6_ActualFinishTime","ld6_Changestate","ld6_ChangeRemarks" }; - String[] header = new String[] { "", "", "", "ǷҪ", - "", "Ҫ", "", "״̬", "Ҫʱ", - "ʵʱ", "ע" }; + + String[] header = new String[] { "", "", "","ǷҪ", "", + "Ҫ", "", "˺","˺","׼˺","׳̶", + "̶","ҵʱ/Сʱ","ʵҵʱ/Сʱ","ʱ","Ҫʱ", + "ʵʱ","״̬", "ע" }; int SEQ_NUM_INDEX = 0; int CHANGE_TASK_NAME_INDEX = 1; @@ -23,10 +26,16 @@ public interface FormModel { int CHANGE_PERSON_INDEX = 4; int TASK_REQUIRE_DESC_INDEX = 5; int HANDLE_PERSON_INDEX = 6; - int CHANGE_STATE_INDEX = 7; - int REQUIRE_FINISH_TIME_INDEX = 8; - int ACTUAL_FINISH_TIME_INDEX = 9; - int CHANGE_REMARKS_INDEX = 10; + int CHANGE_STATE_INDEX = 17; + int ld6_RWfptime_index = 14; + int REQUIRE_FINISH_TIME_INDEX = 15; + int ACTUAL_FINISH_TIME_INDEX = 16; + int CHANGE_REMARKS_INDEX = 18; + int CLRZH_PERSON_INDEX = 7; + int SHRZH_PERSON_INDEX = 8; + int PZRZH_PERSON_INDEX = 9; + int NYCD_INDEX = 10; + int JJCD_INDEX = 11; String ynChangeLovName = "LD6_YN_DLOV"; String changeStateLovName = "LD6_Changestate_DLOV"; @@ -38,4 +47,7 @@ public interface FormModel { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); DateFormat cst = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'CST' yyyy", Locale.US); + + SimpleDateFormat gmt = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",Locale.US); + } diff --git a/src/com/net/connor/ld/plm/ld05/MultiLineCellEditor.java b/src/com/net/connor/ld/plm/ld05/MultiLineCellEditor.java new file mode 100644 index 0000000..dd34148 --- /dev/null +++ b/src/com/net/connor/ld/plm/ld05/MultiLineCellEditor.java @@ -0,0 +1,42 @@ +package com.net.connor.ld.plm.ld05; +import javax.swing.*; +import javax.swing.table.TableCellEditor; +import java.awt.*; +import java.awt.event.*; + +class MultiLineCellEditor extends AbstractCellEditor implements TableCellEditor { + private JTextArea textArea; + private JScrollPane scrollPane; + + public MultiLineCellEditor() { + textArea = new JTextArea(); + textArea.setLineWrap(true); + textArea.setWrapStyleWord(true); + scrollPane = new JScrollPane(textArea); + scrollPane.setBorder(BorderFactory.createEmptyBorder()); + + // Enter ༭Shift+Enter У + textArea.addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_ENTER && !e.isShiftDown()) { + stopCellEditing(); + } + } + }); + } + + @Override + public Component getTableCellEditorComponent( + JTable table, Object value, + boolean isSelected, int row, int column + ) { + textArea.setText(value == null ? "" : value.toString()); + return scrollPane; + } + + @Override + public Object getCellEditorValue() { + return textArea.getText(); // ȷֵ + } +} \ No newline at end of file diff --git a/src/com/net/connor/ld/plm/ld05/MultiLineCellRenderer.java b/src/com/net/connor/ld/plm/ld05/MultiLineCellRenderer.java new file mode 100644 index 0000000..58c44c6 --- /dev/null +++ b/src/com/net/connor/ld/plm/ld05/MultiLineCellRenderer.java @@ -0,0 +1,46 @@ +package com.net.connor.ld.plm.ld05; +import javax.swing.*; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellRenderer; + +import java.awt.*; + +class MultiLineCellRenderer extends JTextArea implements TableCellRenderer { + public MultiLineCellRenderer() { + setLineWrap(true); + setWrapStyleWord(true); + setOpaque(true); // Ϊ͸򱳾ɫЧ + setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); + } + + @Override + public Component getTableCellRendererComponent( + JTable table, Object value, + boolean isSelected, boolean hasFocus, + int row, int column + ) { + // ı + setText(value == null ? "" : value.toString()); + + // ̬и + int width = table.getColumnModel().getColumn(column).getWidth(); + setSize(width, Short.MAX_VALUE); + int preferredHeight = getPreferredSize().height; + + // иߣҪʱ + if (table.getRowHeight(row) < preferredHeight) { + table.setRowHeight(row, preferredHeight); + } + + // ѡʽ + if (isSelected) { + setBackground(table.getSelectionBackground()); + setForeground(table.getSelectionForeground()); + } else { + setBackground(table.getBackground()); + setForeground(table.getForeground()); + } + + return this; // JTextArea + } +} \ No newline at end of file diff --git a/src/com/net/connor/ld/plm/ld05/test1.java b/src/com/net/connor/ld/plm/ld05/test1.java new file mode 100644 index 0000000..f01f850 --- /dev/null +++ b/src/com/net/connor/ld/plm/ld05/test1.java @@ -0,0 +1,45 @@ +/** * @Title: test1.java + * @Package com.net.connor.ld.plm.ld05 + * @Description: TODO(һ仰ļʲô) + * @author admin * @date 2024814 + * @version V1.0 + */ +package com.net.connor.ld.plm.ld05; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; +import java.util.TimeZone; + +/** + * @ClassName: test1 + * @Description: TODO(һ仰) + * @author admin + * @date 2024814 + * + */ +public class test1 { + public static void main(String[] args) { + String dateString = "Sat Aug 03 00:00:00 GMT+08:00 2024"; + + SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",Locale.US); + TimeZone tz = TimeZone.getTimeZone("GMT+8"); + + sdf.setTimeZone(tz); + Date s = null; + String da = null; + Date strToDate = null; + try { + s = sdf.parse(dateString); + System.out.println(s); // Sun Oct 22 00:00:00 CST 2017 + sdf = new SimpleDateFormat("yyyy-MM-dd"); + da = sdf.format(s); + System.out.println(da); // 2017-10-22 + strToDate = sdf.parse(da); + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +} diff --git a/src/com/net/connor/ld/plm/ld06/ChangePartDialog.java b/src/com/net/connor/ld/plm/ld06/ChangePartDialog.java index 579943e..6e4a6e2 100644 --- a/src/com/net/connor/ld/plm/ld06/ChangePartDialog.java +++ b/src/com/net/connor/ld/plm/ld06/ChangePartDialog.java @@ -154,6 +154,7 @@ public class ChangePartDialog extends AbstractAIFDialog { status = 0; } + new DerivedChangeRequestDialog(app, beanList, newType, tarRev, needList, status,""); disposeDialog(); } diff --git a/src/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog.java b/src/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog.java index 160d734..402dacf 100644 --- a/src/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog.java +++ b/src/com/net/connor/ld/plm/ld06/DerivedChangeRequestDialog.java @@ -119,6 +119,11 @@ public class DerivedChangeRequestDialog extends AbstractAIFDialog implements Act ControlBean bean = beanList.get(i); beanMap.put(bean.getPropRelName(), bean); String labelValue = bean.getPropName(); + Boolean filg = false; + System.out.println("ƣ"+labelValue); + if("".equals(labelValue)) { + filg = true; + } if (bean.isIfMust()) { labelValue = bean.getPropName() + "()"; } @@ -145,6 +150,20 @@ public class DerivedChangeRequestDialog extends AbstractAIFDialog implements Act } else { JTextField field = new JTextField(bean.getDefaultValue()); field.setName(bean.getPropRelName()); + if(filg) { + try { + if(partList != null && partList.size()>0) { + field.setText(partList.get(0).getStringProperty("ld6_clientPartNum")); + }else { + field.setText(""); + } + + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + field.setPreferredSize(new Dimension(350, 25)); centerPanel.add(row + ".3.center", field); } @@ -215,6 +234,9 @@ public class DerivedChangeRequestDialog extends AbstractAIFDialog implements Act return; } else { if(flag) { + + + rev.setStringProperty("ld6_clientName", part.getStringProperty("ld6_clientName")); rev.setStringProperty("ld6_partName", part.getStringProperty("object_name")); } @@ -428,6 +450,10 @@ public class DerivedChangeRequestDialog extends AbstractAIFDialog implements Act if (re2 != null && re2.length > 0) { latestItemRevision.add("CMReferences", re2); } + TCComponent[] re5 = tarRev.getRelatedComponents("CMHasSolutionItem"); + if (re5 != null && re5.length > 0) { + latestItemRevision.add("CMHasSolutionItem", re5); + } String type = tarRev.getType(); if (!"LD6_PRRevision".equals(type)) { TCComponent[] re3 = tarRev.getRelatedComponents("LD6_WorkFRelation"); @@ -587,14 +613,20 @@ public class DerivedChangeRequestDialog extends AbstractAIFDialog implements Act } catch (TCException e) { } latestItemRevision.setRelated("LD6_WorkFRelation", newforms); - //618 - String ECRID = tarRev.getStringProperty("item_id"); - String stringProperty2 = newItem.getStringProperty("object_name"); - newItem.setStringProperty("object_name", ECRID+stringProperty2); - latestItemRevision.setStringProperty("object_name", ECRID+stringProperty2); + } + //618 + String ECRID = tarRev.getStringProperty("item_id"); + String stringProperty2 = newItem.getStringProperty("object_name"); + newItem.setStringProperty("object_name", ECRID+stringProperty2); + latestItemRevision.setStringProperty("object_name", ECRID+stringProperty2); return latestItemRevision; } + //618 + String ECRID = tarRev.getStringProperty("item_id"); + String stringProperty2 = newItem.getStringProperty("object_name"); + newItem.setStringProperty("object_name", ECRID+stringProperty2); + latestItemRevision.setStringProperty("object_name", ECRID+stringProperty2); return latestItemRevision; } diff --git a/src/com/net/connor/ld/plm/ld07/NewJFrame.java b/src/com/net/connor/ld/plm/ld07/NewJFrame.java index af7114c..6e5d7de 100644 --- a/src/com/net/connor/ld/plm/ld07/NewJFrame.java +++ b/src/com/net/connor/ld/plm/ld07/NewJFrame.java @@ -482,7 +482,7 @@ public class NewJFrame extends JFrame { return (TCComponentFolder)createdObject; } return null; - } + } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) throws TCException, ServiceException, PartInitException { // TODO add your handling code here: