From 66926b393cee33cc156728ea194cd8e79318b684 Mon Sep 17 00:00:00 2001 From: guoyh Date: Tue, 23 Nov 2021 11:19:44 +0800 Subject: [PATCH] =?UTF-8?q?11.23=E9=98=B6=E6=AE=B5=E6=80=A7=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dfl/plm/dfl044/DataBaseControl2.java | 734 ++++++++ .../connor/dfl/plm/dfl044/Dfl044Action.java | 24 + .../connor/dfl/plm/dfl044/Dfl044Command.java | 20 + .../connor/dfl/plm/dfl044/Dfl044Dialog.java | 296 ++++ .../connor/dfl/plm/dfl044/Dfl044Handler.java | 19 + .../dfl/plm/dfl044/ERPStockandPrice.java | 46 + .../connor/dfl/plm/dfl045/Dfl045Action.java | 24 + .../connor/dfl/plm/dfl045/Dfl045Command.java | 20 + .../connor/dfl/plm/dfl045/Dfl045Dialog.java | 229 +++ .../connor/dfl/plm/dfl045/Dfl045Handler.java | 19 + .../dfl/plm/dfl045/Dfl045Operation.java | 1489 +++++++++++++++++ .../connor/dfl/plm/dfl046/AutoCreateBean.java | 77 + .../dfl/plm/dfl046/BOMExportHandler.java | 52 + .../connor/dfl/plm/dfl046/ChangeDbomUtil.java | 56 + src/com/connor/dfl/plm/dfl046/test.java | 1045 ++++++++++++ .../{BOMExportOperation.java => test.java} | 332 ++-- .../dfl/plm/forms/变更单导出模板.xlsx | Bin 0 -> 12001 bytes 17 files changed, 4364 insertions(+), 118 deletions(-) create mode 100644 src/com/connor/dfl/plm/dfl044/DataBaseControl2.java create mode 100644 src/com/connor/dfl/plm/dfl044/Dfl044Action.java create mode 100644 src/com/connor/dfl/plm/dfl044/Dfl044Command.java create mode 100644 src/com/connor/dfl/plm/dfl044/Dfl044Dialog.java create mode 100644 src/com/connor/dfl/plm/dfl044/Dfl044Handler.java create mode 100644 src/com/connor/dfl/plm/dfl044/ERPStockandPrice.java create mode 100644 src/com/connor/dfl/plm/dfl045/Dfl045Action.java create mode 100644 src/com/connor/dfl/plm/dfl045/Dfl045Command.java create mode 100644 src/com/connor/dfl/plm/dfl045/Dfl045Dialog.java create mode 100644 src/com/connor/dfl/plm/dfl045/Dfl045Handler.java create mode 100644 src/com/connor/dfl/plm/dfl045/Dfl045Operation.java create mode 100644 src/com/connor/dfl/plm/dfl046/AutoCreateBean.java create mode 100644 src/com/connor/dfl/plm/dfl046/BOMExportHandler.java create mode 100644 src/com/connor/dfl/plm/dfl046/ChangeDbomUtil.java create mode 100644 src/com/connor/dfl/plm/dfl046/test.java rename src/com/connor/dfl/plm/exportBOM/{BOMExportOperation.java => test.java} (75%) create mode 100644 src/com/connor/dfl/plm/forms/变更单导出模板.xlsx diff --git a/src/com/connor/dfl/plm/dfl044/DataBaseControl2.java b/src/com/connor/dfl/plm/dfl044/DataBaseControl2.java new file mode 100644 index 0000000..022bebf --- /dev/null +++ b/src/com/connor/dfl/plm/dfl044/DataBaseControl2.java @@ -0,0 +1,734 @@ +package com.connor.dfl.plm.dfl044; + +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.text.DecimalFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Vector; + +import com.connor.dfl.plm.dfl027.ChangeOwnerbean; +import com.connor.dfl.plm.dfl038.ChangeBean; +import com.connor.dfl.plm.forms.ChangeOrderBean; +import com.connor.dfl.plm.util.CodeBean; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.MessageBox; + +public class DataBaseControl2 { + + /** ************************ݿ:*********************************** */ + /** + * kelsen .... + */ + Connection conn; + + ResultSet rs; + + PreparedStatement pstmt; + + Statement stmt; + + String strSQLQuery; + + public String str_Information = ""; + + private String strDriver = "oracle.jdbc.driver.OracleDriver"; + private String strUrl = ""; + private String strUserName = ""; + private String strPassword = ""; + + /** + * + */ + public DataBaseControl2(String strDriver, String strUrl, String strUserName, + String strPassword) { + // this.strDriver ="oracle.jdbc.driver.OracleDriver";// + // this.strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:tc";//· + // this.strUserName = "infodba";//ݿû + // this.strPassword = "infodba";//ݿ + + + 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";//ݿ + + // + try { + Class.forName(strDriver);// ͨڴ + } catch (ClassNotFoundException cnfe) { + cnfe.printStackTrace(); + } + // try { + // Class.forName("org.objectweb.rmijdbc.Driver").newInstance(); + // } catch (InstantiationException e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } catch (IllegalAccessException e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } catch (ClassNotFoundException e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + } + + /** + * + */ + public DataBaseControl2(TCSession session) { + + String[] stringArray = session.getPreferenceService().getStringArray(4, + "DFL2_ERP_SQL_Connect2"); + if (stringArray != null && stringArray.length == 3) { + strUrl = "jdbc:oracle:thin:@" + stringArray[0]; + strUserName = stringArray[1]; + strPassword = stringArray[2]; + } else { + MessageBox.post("δDFL2_ERP_SQL_Connect2ѡ޷Ϣ!", "", + MessageBox.ERROR); + } + + // + try { + Class.forName(strDriver);// ͨڴ + } catch (ClassNotFoundException cnfe) { + cnfe.printStackTrace(); + } + + } + /** + * + */ + public DataBaseControl2(TCSession session,String connect) { + + String[] stringArray = session.getPreferenceService().getStringArray(4, + connect); + if (stringArray != null && stringArray.length == 3) { + strUrl = "jdbc:oracle:thin:@" + stringArray[0]; + strUserName = stringArray[1]; + strPassword = stringArray[2]; + } else { + MessageBox.post("δ"+connect+"ѡ޷Ϣ!", "", + MessageBox.ERROR); + } + + // + try { + Class.forName(strDriver);// ͨڴ + } catch (ClassNotFoundException cnfe) { + cnfe.printStackTrace(); + } + + } + + /** + * + * + * @param strSQLQuery + */ + public void dbModify(String strSQLQuery) { + + openDataBase(); + + try { + stmt = conn.createStatement(); + stmt.executeUpdate(strSQLQuery); + } catch (SQLException sqle2) { + sqle2.printStackTrace(); + } + + closeDataBase(); + } + + /** + * ѯ + * + * @param strSQLQuery + * @return + */ + public ResultSet dbQuery(String strSQLQuery) { + ResultSet rs_result = null; + if (conn == null) + openDataBase(); + try { + stmt = conn.createStatement(); + rs_result = stmt.executeQuery(strSQLQuery); + + } catch (SQLException sqle2) { + sqle2.printStackTrace(); + } + return rs_result; + } + + /** + * ѯ2 + * + * @param strSQLQuery + * @return + */ + public ResultSet dbQuery2(String strSQLQuery, Object[] strs) { + ResultSet rs_result = null; + if (conn == null) + openDataBase(); + try { + // stmt = conn.createStatement(); + PreparedStatement ps = conn.prepareStatement(strSQLQuery); + for (int i = 0; i < strs.length; i++) { + ps.setObject(i + 1, strs[i]); + } + rs_result = ps.executeQuery(); + + } catch (SQLException sqle2) { + sqle2.printStackTrace(); + } + return rs_result; + } + /** + * ѯ3 + * + * @param strSQLQuery + * @return + */ + public ResultSet dbQuery3(String strSQLQuery) { + ResultSet rs_result = null; + if (conn == null) + openDataBase(); + try { + stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); + rs_result = stmt.executeQuery(strSQLQuery); + + } catch (SQLException sqle2) { + sqle2.printStackTrace(); + } + return rs_result; + } + + + /** + * 2 + * + * @param strSQLQuery + */ + public void dbModify2(String strSQLQuery, Object[] strs) { + + openDataBase(); + + try { + // stmt = conn.createStatement(); + PreparedStatement ps = conn.prepareStatement(strSQLQuery); + for (int i = 0; i < strs.length; i++) { + ps.setObject(i + 1, strs[i]); + } + ps.executeUpdate(); + } catch (SQLException sqle2) { + sqle2.printStackTrace(); + } + + closeDataBase(); + } + + /** + * + * + */ + public void openDataBase() { + 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(); + MessageBox.post("ݿӴ" + sqle.getMessage(), "", 1); + } + } + + /** + * رݿ + * + */ + 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(); + } + } + + /** + * 䴫ݿвѯ ѯõĽÿһ¼װһHashMap,keyԱֶ + * ѯ¼VectorжٸHasnMapԪ + * + * @param strSQLQuery + * @return + * @author xuk + */ + public Vector orgQuery(String strSQLQuery) { + openDataBase(); + Vector v_result = new Vector(); + try { + ResultSet rs_get = dbQuery(strSQLQuery); + // System.out.println("RS_GET:"+rs_get); + if (rs_get != null) { + ResultSetMetaData metaData = rs_get.getMetaData(); + + int i_ColumnCount = metaData.getColumnCount(); + // System.out.println("i_ColumnCount:"+i_ColumnCount); + while (rs_get.next()) { + // System.out.println("BJZJ2"+rs_get.getString("BJZJ2"));; + HashMap hm_unit = new HashMap(); + for (int i = 1; i <= i_ColumnCount; i++) { + hm_unit.put(metaData.getColumnName(i), + rs_get.getString(i)); + // System.out.println("metaData.getColumnName(i):"+metaData.getColumnName(i)); + // System.out.println("rs_get.getString(i):"+rs_get.getString(i)); + } + v_result.add(hm_unit); + } + } else { + str_Information = "" + strSQLQuery + "" + "ѯĽΪ\n"; + } + } catch (Exception e) { + e.printStackTrace(); + } + return v_result; + } + + + public String getTaskIdea(String uid) + throws Exception { + openDataBase(); + String query = "select IDEA from PLM_Perform_Task where PUID= ?"; + // ѯidݿе + ResultSet rs = dbQuery2(query, new Object[] { uid}); + String taskIdea = ""; + if (rs.next()) { + taskIdea = rs.getString(1); + System.out.println("taskIdea=" + taskIdea); + } + + closeDataBase(); + + return taskIdea; + + } + public void setTaskIdea(String uid,String idea) + throws Exception { + openDataBase(); + String query = "select IDEA from PLM_Perform_Task where PUID= ?"; + // ѯidݿе + ResultSet rs = dbQuery2(query, new Object[] { uid}); + if(rs.next()) { + String upin = "update PLM_Perform_Task set IDEA= ? where PUID= ?"; + dbModify2(upin, new Object[] { idea, uid }); + }else { + String upin = "insert into PLM_Perform_Task(PUID,IDEA) values ( ? , ? )"; + dbModify2(upin, new Object[] { uid, idea }); + } + closeDataBase(); + + } + + /** + * ˮ + * + * @param type + * ˮ + * @param prefix + * ǰ׺ + * @param col + * ˮλ 4λ"0000" + * @return + * @throws Exception + */ + public String getNewCode(String type, String prefix, String col) + throws Exception { + openDataBase(); + String query = "select PREFIX,LSH from PLM_LSH where PLMTYPE= ? and PREFIX= ?"; + // ѯidݿе + ResultSet rs = dbQuery2(query, new Object[] { type, prefix }); + String lshstr = col; + String pre = ""; + String lsh = ""; + if (rs.next()) { + pre = rs.getString(1); + lsh = rs.getString(2); + System.out.println("sspre=" + pre); + System.out.println("sslsh=" + lsh); + if ("".equals(lsh)) { + throw new Exception("ˮΪգ"); + } + int ls = Integer.parseInt(lsh) + 1;// µˮ + lshstr = ls + ""; + if (col != null) { + DecimalFormat df = new DecimalFormat(col); + lshstr = df.format(ls); + } + String upin = "update PLM_LSH set LSH= ? where PLMTYPE= ? and PREFIX= ? "; + dbModify2(upin, new Object[] { lshstr, type, prefix }); + } else { + String upin = "insert into PLM_LSH(PLMTYPE,PREFIX,LSH) values ( ? , ? , ? )"; + dbModify2(upin, new Object[] { type, prefix, lshstr }); + + } + + closeDataBase(); + String newId = prefix + lshstr; + + return newId; + + } + + //ȡϢ + + public List getChangeMesg(String product,String time1,String time2) throws SQLException { + List list = new ArrayList(); + if("ȫ".equals(product)) { + product = ""; + } + String sql = "select * from DFL_CHANGEFORM where PRODUCTDEPARTMENT like '%"+product+"%'";// + SimpleDateFormat df = new SimpleDateFormat("yyyy-M-d HH:mm"); + openDataBase(); + System.out.println("sql============"+sql); + ResultSet rs = dbQuery(sql); + while(rs.next()){ + try { + String dateStr = rs.getString(3); + System.out.println("date========"+rs.getString(3)); + if(dateStr == null) { + continue; + } + Date date = df.parse(rs.getString(3)); + Date date1 = df.parse(time1); + Date date2 = df.parse(time2); + if(date.after(date2) && date.before(date1)) { + System.out.println("date2========"+rs.getString(3)); + } + if(date.after(date1) && date.before(date2)) { + ChangeBean bn = new ChangeBean(); + bn.setApplyName(rs.getString(2)); + bn.setApplyDate(rs.getString(3)); + bn.setProjectCode(rs.getString(4)); + bn.setClientNae(rs.getString(5)); + bn.setProductName(rs.getString(7)); + bn.setProjectModel(rs.getString(8)); + bn.setChangeType(rs.getString(10)); + bn.setProductType(rs.getString(11)); + bn.setErrorType(rs.getString(12)); + bn.setDutyDepartment(rs.getString(13)); + bn.setDutyMan(rs.getString(14)); + bn.setChangeReason(rs.getString(15)); + bn.setSalseClassify(rs.getString(16)); + bn.setPriceBooking(rs.getString(17)); + bn.setIsNotProductLoss(rs.getString(18)); + bn.setReceiveClassify(rs.getString(19)); + bn.setWarehouseCode(rs.getString(20)); + bn.setAccountSet(rs.getString(21)); + bn.setNotifyEmergencyProcedures(rs.getString(22)); + bn.setDrawingTo(rs.getString(23)); + bn.setChangeListCode(rs.getString(24)); + bn.setTZChangeType(rs.getString(25)); + bn.setSUOSU_ProductDepartment(rs.getString(26)); + bn.setProjectState(rs.getString(27)); + list.add(bn); + } + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + closeDataBase(); + return list; + } + /** + * ˮ + * + * @param type + * ˮ + * @param prefix + * ǰ׺ + * @param col + * ˮλ 4λ"0000" + * @return + * @throws Exception + */ + public String getNewCode(String type,CodeBean selCodeBean) + throws Exception { + String prefix = selCodeBean.getCode(); + String col = selCodeBean.getNum(); + String min = selCodeBean.getMin(); + String max = selCodeBean.getMax(); + openDataBase(); + String query = "select PREFIX,LSH from PLM_LSH where PLMTYPE= ? and PREFIX= ?"; + // ѯidݿе + ResultSet rs = dbQuery2(query, new Object[] { type, prefix }); + String lshstr = col; + String pre = ""; + String lsh = ""; + if (rs.next()) { + pre = rs.getString(1); + lsh = rs.getString(2); + System.out.println("sspre=" + pre); + System.out.println("sslsh=" + lsh); + if ("".equals(lsh)) { + throw new Exception("ˮΪգ"); + } + int ls = Integer.parseInt(lsh) + 1;// µˮ + int minls = Integer.parseInt(min); + int maxls = Integer.parseInt(max); + if (minls>ls) { + ls=minls; + } + if (ls>maxls) { + System.out.println(":ˮѳֵ"); + return "MAXERR"; + } + lshstr = ls + ""; + if (col != null) { + DecimalFormat df = new DecimalFormat(col); + lshstr = df.format(ls); + } + String upin = "update PLM_LSH set LSH= ? where PLMTYPE= ? and PREFIX= ? "; + dbModify2(upin, new Object[] { lshstr, type, prefix }); + } else { + if (col != null) { + int minls = Integer.parseInt(min); + DecimalFormat df = new DecimalFormat(col); + lshstr = df.format(minls); + } + String upin = "insert into PLM_LSH(PLMTYPE,PREFIX,LSH) values ( ? , ? , ? )"; + dbModify2(upin, new Object[] { type, prefix, lshstr }); + } + + closeDataBase(); + String newId = prefix + lshstr; + + return newId; + + } + + /** + * ȡˮ + * + */ + public String getMaxCode(String type,CodeBean selCodeBean)throws Exception { + String prefix = selCodeBean.getCode(); + String col = selCodeBean.getNum(); + String min = selCodeBean.getMin(); + String max = selCodeBean.getMax(); + + openDataBase(); + String query = "select * from (select * from pitem where pitem_id like '"+prefix+"%' order by pitem_id desc) where rownum<=1"; + // ѯidݿе + ResultSet rs = dbQuery(query); + String lshstr = col; + String lsh = ""; + if (rs.next()) { + lsh = rs.getString(2); + System.out.println("sslsh=" + lsh); + if ("".equals(lsh)) { + throw new Exception("ˮΪգ"); + } + lsh = lsh.substring(6); + int ls = Integer.parseInt(lsh) + 1;// µˮ + lshstr = ls + ""; + System.out.println("lshstr=" + lshstr); + if (col != null) { + DecimalFormat df = new DecimalFormat(col); + lshstr = df.format(ls); + } + } + String upin = "update PLM_LSH set LSH= ? where PLMTYPE= ? and PREFIX= ? "; + dbModify2(upin, new Object[] { lshstr, type, prefix }); + closeDataBase(); + String newId = prefix + lshstr; + return newId; + } + + + /** + * ģ» + * @param v3 + * @param v16 + * @param time + * @param user + * @throws Exception + */ + public void setSqlConn(String v3, String v16, String time, String user) + throws Exception { + openDataBase(); + // WF_MJID varchar2(200),-- + // WF_YXJ varchar2(200),--» + // WF_DATE varchar2(200),--ϴ + // WF_USER varchar2(200),--ϴԱ + String query = "select WF_MJID from WF_MJ_XJ_T where WF_MJID = ? "; + // ѯidݿе + ResultSet rs = dbQuery2(query, new Object[] {v3}); + String wfmjid = ""; + if (rs.next()) { + System.out.println(""); + wfmjid = rs.getString(1); + System.out.println("wfmjid=" + wfmjid); + String upup = "UPDATE WF_MJ_XJ_T set WF_YXJ = ? ,WF_DATE= ?, WF_USER = ? WHERE WF_MJID = ? "; + dbModify2(upup, new Object[] {v16, time, user ,v3}); + + } else { + System.out.println(""); + System.out.println("wfmjid=" + v3); + String upin = "insert into WF_MJ_XJ_T(WF_MJID,WF_YXJ,WF_DATE,WF_USER) values ( ?,? , ? , ? )"; + dbModify2(upin, new Object[] {v3, v16, time, user}); + + } + + closeDataBase(); + + return ; + + } + + /** + * ERP + * + * @param value + * ѯ + * @param sql + * ѯ + * @return + * @throws Exception + */ + public String getRecord(String sql) + throws Exception { + String result=null; + openDataBase(); + // ѯidݿе + ResultSet rs = dbQuery(sql); + while (rs.next()) { +// ERPStockandPrice bean = new ERPStockandPrice(); +// bean.setID(rs.getInt(1)); +// bean.setfun(rs.getString(2)); +// bean.setitem_id(rs.getString(3)); +// bean.setzhangtao(rs.getString(4)); +// bean.setUser_id(rs.getString(5)); +// list.add(bean); + result = rs.getString(1); + } + closeDataBase(); + return result; + } + + // public List getRecord2(String value,String zhangT,String cangK,String sql) + // throws Exception { + // List list=new ArrayList<>(); + // openDataBase(); + // // ѯidݿе + // ResultSet rs = dbQuery2(sql, new Object[] {value,zhangT,cangK}); + // while (rs.next()) { + // ChangeOwnerbean bean = new ChangeOwnerbean(); + // bean.setId(rs.getString(1)); + // bean.setCustomerName(rs.getString(2)); + // bean.setSpec(rs.getString(3)); + // bean.setZhangt(rs.getString(4)); + // bean.setCangk(rs.getString(5)); + // bean.setNum(rs.getString(6)); + // bean.setUnit(rs.getString(7)); + // list.add(bean); + // } + // closeDataBase(); + // return list; + // } + + public String getNum(Object[] values) + throws Exception { + openDataBase(); + // ѯidݿе + String sql = "select NUM from DFL_OLD_ITEM where ITEM_ID= ? and ZHANGTAO= ? and WAREHOUSE= ?"; + String num = ""; + ResultSet rs = dbQuery2(sql, values); + if (rs.next()) { + num = rs.getString(1); + } + closeDataBase(); + return num; + } + + public double getNums(String sql) + throws Exception { + openDataBase(); + // ѯidݿе + double nums = 0; + ResultSet rs = dbQuery(sql); + if (rs.next()) { + nums = rs.getInt(1); + } + closeDataBase(); + return nums; + } + /** + * + * + * @param args + */ + public static void main(String args[]) { + try { + + String str_DataBaseDriver = "oracle.jdbc.driver.OracleDriver"; + String str_URL = "jdbc:oracle:thin:@localhost:1521:tc12"; + String str_UserName = "infodba"; + String str_Password = "infodba"; + DataBaseControl2 dbc = new DataBaseControl2(str_DataBaseDriver, + str_URL, str_UserName, str_Password); + // dbc.openDataBase(); + System.out.println("ӳɹ"); + // dbc.stmt = dbc.conn.createStatement(); + // String sql = "select * from PLM_LSH"; + // Vector rs_result = dbc.orgQuery(sql); + // for (int i = 0; i < rs_result.size(); i++) { + // HashMap map = (HashMap) + // rs_result.get(i); + // + // for (Map.Entry entry: map.entrySet()) { + // System.out.println(entry.getKey()+"---"+entry.getValue()); + // } + // } + String newid = dbc.getNewCode("PLMITEMID", "pz", "0000"); + System.out.println(newid); + // dbc.closeDataBase(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/src/com/connor/dfl/plm/dfl044/Dfl044Action.java b/src/com/connor/dfl/plm/dfl044/Dfl044Action.java new file mode 100644 index 0000000..83399c7 --- /dev/null +++ b/src/com/connor/dfl/plm/dfl044/Dfl044Action.java @@ -0,0 +1,24 @@ +package com.connor.dfl.plm.dfl044; + +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.aif.common.actions.AbstractAIFAction; + +public class Dfl044Action extends AbstractAIFAction { + + private AbstractAIFUIApplication app; + + public Dfl044Action(AbstractAIFUIApplication app, String string) { + super(app,string); + this.app=app; + } + + @Override + public void run() { + try { + new Dfl044Command(app).executeModal(); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/src/com/connor/dfl/plm/dfl044/Dfl044Command.java b/src/com/connor/dfl/plm/dfl044/Dfl044Command.java new file mode 100644 index 0000000..b16e333 --- /dev/null +++ b/src/com/connor/dfl/plm/dfl044/Dfl044Command.java @@ -0,0 +1,20 @@ +package com.connor.dfl.plm.dfl044; + +import com.teamcenter.rac.aif.AbstractAIFCommand; +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.kernel.TCSession; + +public class Dfl044Command extends AbstractAIFCommand { + + private TCSession session; + + public Dfl044Command(AbstractAIFUIApplication app) { + this.session=(TCSession)app.getSession(); + } + + @Override + public void executeModal() throws Exception { + new Thread(new Dfl044Dialog(session)).start(); + } + +} diff --git a/src/com/connor/dfl/plm/dfl044/Dfl044Dialog.java b/src/com/connor/dfl/plm/dfl044/Dfl044Dialog.java new file mode 100644 index 0000000..e13efff --- /dev/null +++ b/src/com/connor/dfl/plm/dfl044/Dfl044Dialog.java @@ -0,0 +1,296 @@ +package com.connor.dfl.plm.dfl044; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.lang.reflect.InvocationTargetException; +import java.time.Year; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.MissingResourceException; + +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableRowSorter; + +import org.jacorb.idl.runtime.int_token; + +import com.connor.dfl.plm.dfl042.ERPTransferStatusbean; +import com.connor.dfl.plm.util.DataBaseControl; +import com.teamcenter.rac.aif.AbstractAIFDialog; +import com.teamcenter.rac.aif.commands.open.OpenCommand; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentGroup; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCPreferenceService; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.ButtonLayout; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.rac.util.PropertyLayout; +import com.teamcenter.rac.util.Registry; +import com.teamcenter.soaictstubs.stringSeq_tHolder; + +import sun.awt.www.content.audio.x_aiff; + +public class Dfl044Dialog extends AbstractAIFDialog { + + private static final long serialVersionUID = 6130114042631785757L; + private static final int width=800; + DefaultTableModel model; + private TCSession session; + private JButton qryBtn2; + private JTextField idField; + private JTextField useridField; + private JComboBox zt_combobox; //ѡ + private JLabel StockwriteLabel=new JLabel("");//ʾı + private JLabel PricewriteLabel=new JLabel("");//۸ʾı + private HashMap account_set = new HashMap(); + private StringBuilder sb = new StringBuilder("select sum(img10) from "); + private StringBuilder numsSb = new StringBuilder("select ccc23a from "); + private String sql2 = ""; + private String zhangtao = ""; //SQLе + private String zhangtao1 = ""; //SQLе + private String cangku = "";//SQLеIJֿ + private String cangku1 = ""; + private String group = ""; + private JComboBox zhangTBox; + private DataBaseControl2 data; + public Dfl044Dialog(TCSession session) { + super(false); + this.session=session; + //this.service = session.getPreferenceService(); + this.data = new DataBaseControl2(session,"DFL2_ERP_SQL_Connect"); + String[] BOMZT = session.getPreferenceService().getStringValues("DFL2_ZHANGTAO_WAREHOUSE"); + + if (BOMZT == null || BOMZT.length <= 0 ) { + MessageBox.post("ѡDFL2_ZHANGTAO_WAREHOUSEδ,ϵԱ!!", + "", MessageBox.ERROR); + return; + } + TCComponentGroup group = session.getCurrentGroup(); + try { + String group_name = group.getStringProperty("display_name"); + System.out.println("11.04group_name=============="+group_name); + if(group_name.contains(".")) { + String[] names = group_name.split("\\."); + if(names != null && names.length >=2) { + for (int i = 0; i < BOMZT.length; i++) { + if(BOMZT[i].contains(";")) { + String[] zts = BOMZT[i].split(";"); + if(names[names.length-2].equals(zts[0])) { + this.zhangtao = zts[1]; + System.out.println("11.04======"+zhangtao); + this.cangku = zts[2]; + System.out.println("11.04ֿ======"+cangku); + break; + } + } + } + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @Override + public void run() { + //ʾ + initUI(); + } + + @SuppressWarnings("serial") + private void initUI() { + this.setTitle("ֿͼ۸ѯ"); + this.setLayout(new FlowLayout(FlowLayout.CENTER,2,3)); + this.setPreferredSize(new Dimension(width, 150)); + this.setLocation(2, 5); + model = new DefaultTableModel() { + private static final long serialVersionUID = 6905817304437097181L; + public boolean isCellEditable(int row, int column) { + return true; + } + }; + + + + JPanel qryPanel=new JPanel(new PropertyLayout()); + + JLabel idLabel=new JLabel("ұ߿"); + JLabel ztLabel=new JLabel("ѡ"); + zhangTBox = new JComboBox(); + JLabel useridLabel=new JLabel(" ţ"); + JLabel StockLabel=new JLabel(""); + JLabel PriceLabel=new JLabel(" ۣ"); + useridField = new JTextField(10); + //new + zt_combobox = new JComboBox(); + zt_combobox.addItem(" "); + String[] BOMZT = session.getPreferenceService().getStringValues("DFL2_ZHANGTAO_WAREHOUSE"); + + for(int i = 0 ;i'Z1'"); + } + }else { + sb.append(zhangtao1+".img_file where img01='"); + //ŲΪգƴ + if(!("".equals(userid.trim()))) { + sb.append(userid+"' and img02='"+cangku1+"' and img02<>'Z1'"); + } + } + + + sql2 = sb.toString(); + System.out.println("sql===================="+sql2); + Stock = getRecords(sql2); + System.out.println("11.04Stock==================="+Stock); + return Stock; + } + //ص + public String PriceResult(String userid) { + String Price = null; + String Select = null; //ѡֵ + + //ŲΪգƴ + Select = (String) zt_combobox.getSelectedItem(); + System.out.println("11.05ѡֵ======="+Select); + if(!("".equals(userid.trim()))) { + if("".equals(Select) || " ".equals(Select) || "null".equals(Select)) { + numsSb.append(zhangtao + ".ccc_file inner join "+zhangtao+".ccz_file on ccz01=ccc02 and ccz02=ccc03 where ccc01='"+userid+"'"); + }else { + numsSb.append(zhangtao1 + ".ccc_file inner join "+zhangtao1+".ccz_file on ccz01=ccc02 and ccz02=ccc03 where ccc01='"+userid+"'"); + } + } + String numsSql = numsSb.toString(); + System.out.println("numsSql===================="+numsSql); + Price = getRecords(numsSql); + System.out.println("11.04Price==================="+Price); + return Price; + } + + /** + * ѯϢȡݿ¼ + * @return tabledataVector + */ + private String getRecords(String sql){ + String result =null; + + try { + result = data.getRecord(sql); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println("11.04õĽ======"+result); + if(result == null ) { + MessageBox.post("ݿδҵӦݣ ûп򵥼ۣ", + "", MessageBox.ERROR); + } + return result; + } + private void getdropdown () { + String[] BOMZT = session.getPreferenceService().getStringValues("DFL2_ZHANGTAO_WAREHOUSE"); + String combobox = (String) zt_combobox.getSelectedItem(); + boolean flag = true; + for (int i = 0; i < BOMZT.length; i++) { + String s2 = BOMZT[i].split(";")[2]; + String s1 = BOMZT[i].split(";")[1]; + String s0 = BOMZT[i].split(";")[0]; + + cangku1 = s2; + System.out.println("11.05-cangku1====="+cangku1); + zhangtao1 = s1; + System.out.println("11.05-zhangtao1====="+zhangtao1); + group = s0; + System.out.println("11.05-group====="+group); + //жѡеǷѡеһ£Ǿѭٸֵ + if(combobox.equals(s0+":"+s1)) { + flag = false; + break; + } + } + } + +} diff --git a/src/com/connor/dfl/plm/dfl044/Dfl044Handler.java b/src/com/connor/dfl/plm/dfl044/Dfl044Handler.java new file mode 100644 index 0000000..83b9ff5 --- /dev/null +++ b/src/com/connor/dfl/plm/dfl044/Dfl044Handler.java @@ -0,0 +1,19 @@ +package com.connor.dfl.plm.dfl044; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; + +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.aifrcp.AIFUtility; + +public class Dfl044Handler extends AbstractHandler { + + @Override + public Object execute(ExecutionEvent arg0) throws ExecutionException { + AbstractAIFUIApplication app = AIFUtility.getCurrentApplication(); + new Thread(new Dfl044Action(app,"")).start(); + return null; + } + +} diff --git a/src/com/connor/dfl/plm/dfl044/ERPStockandPrice.java b/src/com/connor/dfl/plm/dfl044/ERPStockandPrice.java new file mode 100644 index 0000000..5339537 --- /dev/null +++ b/src/com/connor/dfl/plm/dfl044/ERPStockandPrice.java @@ -0,0 +1,46 @@ +package com.connor.dfl.plm.dfl044; + +import javax.swing.JTextField; + +public class ERPStockandPrice { + private Integer ID; //ID + private String fun; // + private String item_id;//Ʒ + private String zhangtao;// + private String User_id;//ûid + + public Integer getID() { + return ID; + } + public void setID(Integer ID) { + this.ID = ID; + } + public String getfun() { + return fun; + } + public void setfun(String fun) { + this.fun = fun; + } + public String getitem_id() { + return item_id; + } + public void setitem_id(String item_id) { + this.item_id = item_id; + } + public String getzhangtao() { + return zhangtao; + } + public void setzhangtao(String zhangtao) { + this.zhangtao = zhangtao; + } + public String getUser_id() { + return User_id; + } + public void setUser_id(String User_id) { + this.User_id = User_id; + } + + + + +} diff --git a/src/com/connor/dfl/plm/dfl045/Dfl045Action.java b/src/com/connor/dfl/plm/dfl045/Dfl045Action.java new file mode 100644 index 0000000..5f621e5 --- /dev/null +++ b/src/com/connor/dfl/plm/dfl045/Dfl045Action.java @@ -0,0 +1,24 @@ +package com.connor.dfl.plm.dfl045; + +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.aif.common.actions.AbstractAIFAction; + +public class Dfl045Action extends AbstractAIFAction { + + private AbstractAIFUIApplication app; + + public Dfl045Action(AbstractAIFUIApplication app, String string) { + super(app,string); + this.app=app; + } + + @Override + public void run() { + try { + new Dfl045Command(app).executeModal(); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/src/com/connor/dfl/plm/dfl045/Dfl045Command.java b/src/com/connor/dfl/plm/dfl045/Dfl045Command.java new file mode 100644 index 0000000..aa7942a --- /dev/null +++ b/src/com/connor/dfl/plm/dfl045/Dfl045Command.java @@ -0,0 +1,20 @@ +package com.connor.dfl.plm.dfl045; + +import com.teamcenter.rac.aif.AbstractAIFCommand; +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.kernel.TCSession; + +public class Dfl045Command extends AbstractAIFCommand { + + private TCSession session; + + public Dfl045Command(AbstractAIFUIApplication app) { + this.session=(TCSession)app.getSession(); + } + + @Override + public void executeModal() throws Exception { + new Thread(new Dfl045Dialog(session)).start(); + } + +} diff --git a/src/com/connor/dfl/plm/dfl045/Dfl045Dialog.java b/src/com/connor/dfl/plm/dfl045/Dfl045Dialog.java new file mode 100644 index 0000000..a321588 --- /dev/null +++ b/src/com/connor/dfl/plm/dfl045/Dfl045Dialog.java @@ -0,0 +1,229 @@ +package com.connor.dfl.plm.dfl045; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.File; +import java.lang.reflect.InvocationTargetException; +import java.text.SimpleDateFormat; +import java.time.Year; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.MissingResourceException; + +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFileChooser; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.filechooser.FileSystemView; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableRowSorter; + +import org.jacorb.idl.runtime.int_token; + +import com.connor.dfl.plm.dfl025.Dfl025Operation; +import com.connor.dfl.plm.dfl028.Dfl028AIFDialog; +import com.connor.dfl.plm.dfl040.DateChooser; +import com.connor.dfl.plm.dfl042.ERPTransferStatusbean; +import com.connor.dfl.plm.util.DataBaseControl; +import com.teamcenter.rac.aif.AbstractAIFDialog; +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.aif.commands.open.OpenCommand; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentGroup; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCPreferenceService; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.ButtonLayout; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.rac.util.PropertyLayout; +import com.teamcenter.rac.util.Registry; +import com.teamcenter.soaictstubs.stringSeq_tHolder; + +import sun.awt.www.content.audio.x_aiff; + +public class Dfl045Dialog extends AbstractAIFDialog { + + private static final long serialVersionUID = 6130114042631785757L; + private static final int width=800; + DefaultTableModel model; + private AbstractAIFUIApplication app; + private TCSession session; + private JFileChooser jFileChooser; + private JButton bowBtn = new JButton(""); + private JButton qryBtn = new JButton(""); + private JButton celBtn = new JButton("ȡ"); + private JLabel StarttimeLabel = new JLabel("ͳƿʼʱ䣺");//ı + private JLabel endtimeLabel=new JLabel("ͳƽʱ䣺"); //ı + private JLabel exportLabel=new JLabel("Ŀ¼"); //ı + private JTextField starttimeField; //ʼʱ + private JTextField endtimeField; //ʱ + private JTextField jtf = new JTextField(15); //ļ· + + private HashMap account_set = new HashMap(); + private String starttime = ""; //SQLе + private String endtime = "";//SQLеIJֿ + //private DataBaseControl2 data; + public Dfl045Dialog(TCSession session) { + super(false); + this.app = app; + this.session=session; + //this.service = session.getPreferenceService(); + //this.data = new DataBaseControl2(session,"DFL2_ERP_SQL_Connect"); + String[] BOMZT = session.getPreferenceService().getStringValues("DFL2_ZHANGTAO_WAREHOUSE"); + +} + + @Override + public void run() { + //ʾ + initUI(); + } + + + + @SuppressWarnings("serial") + private void initUI() { + // + this.setTitle("̱"); + this.setLayout(new FlowLayout(FlowLayout.CENTER,2,3)); + this.setPreferredSize(new Dimension(width, 150)); + this.setLocation(2, 5); + model = new DefaultTableModel() { + private static final long serialVersionUID = 6905817304437097181L; + public boolean isCellEditable(int row, int column) { + return true; + } + }; + // + JPanel qryPanel=new JPanel(new PropertyLayout()); + //ÿؼ + FileSystemView fsv = FileSystemView.getFileSystemView(); + String deskPath = fsv.getHomeDirectory().getPath(); + this.jtf.setText(deskPath); + + // ʼڿؼ + Date date = new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String time = df.format(date); + + //ʱѡ + starttimeField = new JTextField(15); + starttimeField.setText(time); + + endtimeField = new JTextField(15); + endtimeField.setText(time); + //ʼֵ + jFileChooser = new JFileChooser(); + this.jFileChooser.setCurrentDirectory(new File(deskPath));// ļѡijʼĿ¼Ϊǰû + this.jFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + // ע + DateChooser dateChooser1 = DateChooser.getInstance("yyyy-M-d"); + + DateChooser dateChooser2 = DateChooser.getInstance("yyyy-M-d"); + + dateChooser1.register(starttimeField); + dateChooser2.register(endtimeField); + + + qryPanel.add("1.1.center.top",StarttimeLabel);//ӿʼʱı + qryPanel.add("1.2.center.top",starttimeField);//ӿʼʱ + qryPanel.add("2.1.center.top",endtimeLabel);//ӽʱı + qryPanel.add("2.2.center.top",endtimeField);//ӽʱ + qryPanel.add("3.1.center.top",exportLabel);//Ŀ¼ı + qryPanel.add("3.2.center.top",jtf);//Ŀ¼ѡ + qryPanel.add("3.3.center.top",bowBtn);//ť + qryPanel.add("3.4.center.top",qryBtn);//ť + qryPanel.add("3.5.center.top",celBtn);//ȡť + //JPanel southPanel = new JPanel(new FlowLayout()); + //ť¼ + bowBtn.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent arg0) { + selectFileButtonEvent(); + } + }); + //ť¼ + qryBtn.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + //ֵԱ + okEvent(); + + } + }); + //ȡť¼ + celBtn.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + disposeDialog(); + } + }); + + //southPanel.add(celBtn); + JPanel rootPanel=new JPanel(new ButtonLayout()); + + this.add(qryPanel); + this.add(rootPanel); + this.setResizable(false); + this.setAlwaysOnTop(false); + this.showDialog(); + } + + public void okEvent() { + try { + String path = jtf.getText(); + if("".equals(path) || " ".equals(path)) { + MessageBox.post("ѡҪ·!!", + "ʾ", MessageBox.INFORMATION); + return; + } + System.out.println("ok"); + starttime = starttimeField.getText()+" 00:00"; + endtime = endtimeField.getText()+" 00:00"; + Dfl045Operation operation = new Dfl045Operation(session,starttime,endtime,path); + session.queueOperation(operation); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + this.disposeDialog(); + this.dispose(); + } + + + //ȡļѡ· + public void selectFileButtonEvent() { + int state = jFileChooser.showOpenDialog(null);// ˾ǴļѡĴ + if (state == 1) { + return; + } else { + File f = jFileChooser.getSelectedFile();// fΪѡ񵽵Ŀ¼ + jtf.setText(f.getAbsolutePath()); + } + } + + + /** + * ѯϢȡݿ¼ + * @return tabledataVector + */ + +} diff --git a/src/com/connor/dfl/plm/dfl045/Dfl045Handler.java b/src/com/connor/dfl/plm/dfl045/Dfl045Handler.java new file mode 100644 index 0000000..bdc8884 --- /dev/null +++ b/src/com/connor/dfl/plm/dfl045/Dfl045Handler.java @@ -0,0 +1,19 @@ +package com.connor.dfl.plm.dfl045; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; + +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.aifrcp.AIFUtility; + +public class Dfl045Handler extends AbstractHandler { + + @Override + public Object execute(ExecutionEvent arg0) throws ExecutionException { + AbstractAIFUIApplication app = AIFUtility.getCurrentApplication(); + new Thread(new Dfl045Action(app,"")).start(); + return null; + } + +} diff --git a/src/com/connor/dfl/plm/dfl045/Dfl045Operation.java b/src/com/connor/dfl/plm/dfl045/Dfl045Operation.java new file mode 100644 index 0000000..b823ab2 --- /dev/null +++ b/src/com/connor/dfl/plm/dfl045/Dfl045Operation.java @@ -0,0 +1,1489 @@ +package com.connor.dfl.plm.dfl045; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.swing.JComboBox; + +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.jacorb.idl.runtime.int_token; + +import com.connor.dfl.plm.util.ProgressBarThread; +import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException; +import com.teamcenter.rac.aif.AbstractAIFOperation; +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.aif.kernel.AIFComponentContext; +import com.teamcenter.rac.common.lov.MultiColumnLOVDialog; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentDataset; +import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentFormType; +import com.teamcenter.rac.kernel.TCComponentItem; +import com.teamcenter.rac.kernel.TCComponentItemRevision; +import com.teamcenter.rac.kernel.TCComponentItemRevisionType; +import com.teamcenter.rac.kernel.TCComponentListOfValues; +import com.teamcenter.rac.kernel.TCComponentQuery; +import com.teamcenter.rac.kernel.TCComponentQueryType; +import com.teamcenter.rac.kernel.TCComponentTask; +import com.teamcenter.rac.kernel.TCComponentWorkContext; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCProperty; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.soa.client.model.Property; + +import antlr.collections.impl.Vector; + +public class Dfl045Operation extends AbstractAIFOperation{ + //private AbstractAIFUIApplication app; + private TCSession session; + private ProgressBarThread wait; + private String pathRoute; + private String Starttime; + private String Endtime; + private List oneList = new ArrayList();//ҵļ + private List list = new ArrayList(); + //private List OverdueRate = new ArrayList(); + /** + * + * @param app + * @param lattetTime + * @param EarlyTime + * @param pathRoute + */ + public Dfl045Operation(TCSession session,String starttime,String endtime,String pathRoute) { + super(); + //this.app = app; + this.Starttime = starttime; + this.Endtime = endtime; + //this.wait = null; + this.session = session; + this.pathRoute = pathRoute; + } + + @Override + public void executeOperation() throws Exception { + System.out.println("ʼȡϵͳģ"); + String puid = session.getPreferenceService().getStringValue("DFL2_export_014"); + System.out.println("puid======================"+puid); + if (puid == null||"".equals(puid)) { + MessageBox.post("ѡDFL2_export_014δ,ϵԱ!!", + "", MessageBox.ERROR); + return; + } + TCComponentDataset excel = (TCComponentDataset) session.stringToComponent(puid); + File file = ((TCComponentDataset)excel).getTcFiles()[0].getFmsFile(); + SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");// ڸʽ + Date startDate = df.parse(Starttime); + Date endDate = df.parse(Endtime); + String starttime = df.format(startDate); + String endtime = df.format(endDate); + System.out.println("11.12start====="+Starttime+"======end======"+Endtime); + String[] keys = new String[] {"",""}; + String[] values = new String[] {Starttime,Endtime}; + List compList = queryObject("-ѷ", keys, values); + + pathRoute = pathRoute + File.separator + "̱"+starttime+"-"+endtime+".xlsx"; + wait = new ProgressBarThread("ܱ", "ִУԵ..."); + wait.start();// + //System.out.println("11.16-compList====="+compList.size()); + try { + writeToExcel(compList,file,pathRoute); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + wait.setBool(true);// رս + wait.interrupt(); + MessageBox.post("ɱʧ"+e.getMessage(),"",MessageBox.ERROR); + return; + } + wait.setBool(true);// رս + wait.interrupt(); + MessageBox.post("ɱ,鿴","",MessageBox.INFORMATION); + Runtime.getRuntime().exec("cmd /c \"" + pathRoute + "\""); + } + /** + * д뵽excel + * @throws Exception + */ + + private void writeToExcel(List compList,File file,String path) throws Exception{ + FileInputStream fis = new FileInputStream(file); //ȡļ + XSSFWorkbook workbook = new XSSFWorkbook(fis); //ʵֶexcelĶд + System.out.println("workBook:"+workbook); + + getBomProcedure(compList,workbook); //014bom + getOutSourceProcedure(compList,workbook); //030Э + getOutBuyPartProcedure(compList,workbook);//⹺ + getOverdueRate(workbook);// +// o++; + + FileOutputStream output = new FileOutputStream(new File(path)); + workbook.write(output); + output.close(); + fis.close(); + + } + + /** + * ͨѯѯĿ + * + * @param queryName ѯ + * @param keys ѯ + * @param values ѯֵ + * @return + */ + public List queryObject(String queryName, String[] keys, String[] values) { + TCComponent[] components = null; + try { + TCComponentQueryType queryType = (TCComponentQueryType) session.getTypeComponent("ImanQuery"); + TCComponentQuery query = (TCComponentQuery) queryType.find(queryName); + if (query == null) { + MessageBox.post("ûҵѯ:" + queryName, "", MessageBox.ERROR); + return null; + } + components = query.execute(keys, values); + } catch (TCException e) { + e.printStackTrace(); + } + if (components != null && components.length > 0) { + List compList = Arrays.asList(components); + return compList; + } else { + return null; + } + } + private String getLovValue(String attrType,String realValue) { + String value = ""; + System.out.println("attrType================="+attrType); + System.out.println("realValue================="+realValue); + if(realValue != null) { + try { + TCComponentFormType tccFormType = (TCComponentFormType)session.getTypeComponent("T2_SystemSchemeRevisionMaster"); + TCComponentListOfValues lov1 = tccFormType.getFormPropertyDescriptor(attrType).getLOV(); + if(lov1!=null){ + String[] strs1=lov1.getListOfValues().getStringListOfValues();//ʵֵ + for(String s1:strs1){ + if(realValue.equals(s1)) { + value = lov1.getListOfValues().getDisplayableValue(s1);//ʵֵӦʾֵ + break; + } + } + } + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + }else { + return value; + } + + return value; + } + /*bom̻ȡ + * + */ + public void getBomProcedure(List compList,XSSFWorkbook workbook) throws TCException, java.text.ParseException { + List makeList = new ArrayList();//ڵļ + List examineList = new ArrayList();//ڵļ + List approvalList = new ArrayList();//׼ڵļ + XSSFSheet sheet = workbook.getSheetAt(0); //sheetҳĶд + XSSFRow targetRow = sheet.getRow(0); //еĶд + XSSFCell targetCell = targetRow.getCell(0); //еĶд + XSSFCellStyle cellStyle = targetCell.getCellStyle();//ʽ + int o = 1; + for(int c= 0 ;c valueList = new ArrayList(); + // + String object_name = job.getStringProperty("object_name"); + + valueList.add(object_name); + + // + String owning_user = job.getProperty("owning_user"); + + valueList.add(owning_user); + + //ʱ + String creation_date = job.getProperty("creation_date"); + valueList.add(creation_date); + + // + String owning_group = job.getProperty("owning_group"); + valueList.add(owning_group); + //System.out.println("11.16--valuelist====="+valueList); + + AIFComponentContext[] refs = job.whereReferenced(); + + for (int i = 0 ; i<=refs.length-1;i++) { + TCComponent comp; + AIFComponentContext parent= refs[i]; + comp = (TCComponent) parent.getComponent(); + + String task_name = comp.getProperty("object_name"); + //System.out.println("ϵ"+task_name);// + String task_type = comp.getProperty("task_type"); + //жDzEPMDoTask + if("EPMReviewTask".equals(task_type)||"EPMDoTask".equals(task_type)) { + //ж3ڵ + if("".equals(task_name)) + { + List taskList = new ArrayList(); + + // + //String task_type = comp.getStringProperty("task_type"); + taskList.add(task_name); + // + String resp_party = comp.getProperty("fnd0Performer"); + // System.out.println("11.12resp_party======"+resp_party); + taskList.add(resp_party); + + //β + String group = comp.getProperty("owning_group"); + + taskList.add(group); + + //ʼʱ + String fnd0StartDate = comp.getProperty("fnd0StartDate"); + taskList.add(fnd0StartDate); + //ִн + String task_state = comp.getProperty("task_state"); + taskList.add(task_state); + //ʱ + String fnd0EndDate = comp.getProperty("fnd0EndDate"); + taskList.add(fnd0EndDate); + //忪ʼͽʱʱ + SimpleDateFormat start = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʼʱʽ + Date date1 = null; + date1 = start.parse(fnd0StartDate); + + SimpleDateFormat finish = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʱʽ + Date date2 = new Date(); + //ʱΪ + if("".equals(fnd0EndDate) || " ".equals(fnd0EndDate) || "null".equals(fnd0EndDate)) { + String date = finish.format(date2); + date2 = finish.parse(date); + }else //Ϊ + { + date2 = finish.parse(fnd0EndDate); + } + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + int days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + String day = days+""; + taskList.add(day); + String overdue =null; + if(days>=1) { + overdue = ""; + }else { + overdue = ""; + } + taskList.add(overdue); + makeList.add(taskList); + List OverdueRate = new ArrayList(); + OverdueRate.add(resp_party);//ݼӵϢ + OverdueRate.add(group); //ݼӵϢ + OverdueRate.add(overdue); //ݼӵϢ + //oneList.add(OverdueRate); //Ϣϵڴ + }else if("".equals(task_name)) + { + List taskList = new ArrayList(); + + // + //String task_type = comp.getStringProperty("task_type"); + taskList.add(task_name); + // + String resp_party = comp.getProperty("fnd0Performer"); + // System.out.println("11.12resp_party======"+resp_party); + taskList.add(resp_party); + //β + String group = comp.getProperty("awp0Reviewers"); + if("".equals(group)) { + taskList.add(group); + }else { + String[] ss = group.split("/"); + group = ss[0]; + taskList.add(group); + } + //ʼʱ + String fnd0StartDate = comp.getProperty("fnd0StartDate"); + taskList.add(fnd0StartDate); + //ִн + String task_state = comp.getProperty("task_state"); + taskList.add(task_state); + //ʱ + String fnd0EndDate = comp.getProperty("fnd0EndDate"); + taskList.add(fnd0EndDate); + //忪ʼͽʱʱ + SimpleDateFormat start = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʼʱʽ + Date date1 = new Date(); + SimpleDateFormat finish = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʱʽ + Date date2 = new Date(); + + String day = null;// + int days = 0; + //ʼʱޣ򲻼ʱ + if("".equals(fnd0StartDate) || " ".equals(fnd0StartDate) || "null".equals(fnd0StartDate)) { + taskList.add(day); + }else { + //ʼʱУ + date1 = start.parse(fnd0StartDate); + //ʱ + if("".equals(fnd0EndDate) || " ".equals(fnd0EndDate) || "null".equals(fnd0EndDate)) { + String date = finish.format(date2); + date2 = finish.parse(date); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + }else //ʱ + { + date2 = finish.parse(fnd0EndDate); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + } + } + //Ƿ + String overdue =null; + if(days>=1) { + overdue = ""; + }else { + overdue = ""; + } + taskList.add(overdue); + examineList.add(taskList); + //sheetҳ + List OverdueRate = new ArrayList(); + OverdueRate.add(resp_party);//ݼӵϢ + OverdueRate.add(group); //ݼӵϢ + OverdueRate.add(overdue); //ݼӵϢ + oneList.add(OverdueRate); //Ϣϵڴ + }else if("׼".equals(task_name)) + { + List taskList = new ArrayList(); + + // + //String task_type = comp.getStringProperty("task_type"); + taskList.add(task_name); + + // + String resp_party = comp.getProperty("fnd0Performer"); + // System.out.println("11.12resp_party======"+resp_party); + taskList.add(resp_party); + //βvalid_signoffs + String group = comp.getProperty("awp0Reviewers"); + //System.out.println("11.19ǰ========="+group); + if("".equals(group)) { + taskList.add(group); + }else { + String[] ss = group.split("/"); + group = ss[0]; + taskList.add(group); + } + //ʼʱ + String fnd0StartDate = comp.getProperty("fnd0StartDate"); + taskList.add(fnd0StartDate); + //ִн + String task_state = comp.getProperty("task_state"); + taskList.add(task_state); + //ʱ + String fnd0EndDate = comp.getProperty("fnd0EndDate"); + taskList.add(fnd0EndDate); + + //忪ʼͽʱʱ + SimpleDateFormat start = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʼʱʽ + Date date1 = new Date(); + SimpleDateFormat finish = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʱʽ + Date date2 = new Date(); + + String day = null;// + int days = 0; + //ʼʱޣ򲻼ʱ + if("".equals(fnd0StartDate) || " ".equals(fnd0StartDate) || "null".equals(fnd0StartDate)) { + taskList.add(day); + }else { + //ʼʱУ + date1 = start.parse(fnd0StartDate); + //ʱ + if("".equals(fnd0EndDate) || " ".equals(fnd0EndDate) || "null".equals(fnd0EndDate)) { + String date = finish.format(date2); + date2 = finish.parse(date); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + }else //ʱ + { + date2 = finish.parse(fnd0EndDate); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + } + } + //Ƿ + String overdue =null; + if(days>=1) { + overdue = ""; + }else { + overdue = ""; + } + taskList.add(overdue); + approvalList.add(taskList); + //sheetҳ + List OverdueRate = new ArrayList(); + OverdueRate.add(resp_party);//ݼӵϢ + OverdueRate.add(group); //ݼӵϢ + OverdueRate.add(overdue); //ݼӵϢ + oneList.add(OverdueRate); //Ϣϵڴ + } + } + } + + for (int j = 0; j < valueList.size(); j++) { + XSSFRow row1 = sheet.getRow(o); + if(row1 == null){ + row1 = sheet.createRow(o); + } + //System.out.println("11.17-j-========"+j); + XSSFCell excelCell = row1.getCell(j); + if(excelCell == null){ + excelCell = row1.createCell(j); + } + excelCell.setCellStyle(cellStyle); + //дֵ + excelCell.setCellValue(valueList.get(j)); + //ٱڵļ + } + //System.out.println("threeListϸ====="+threeList.size()); + //Ƽдֵ + for (int k=0 ;k beanList1 = makeList.get(k); + //System.out.println("11.16--beanList1.size====="+beanList1.size()); + for(int l = 5 , m = 0 ; l beanList1 = examineList.get(k); + //System.out.println("11.16--beanList1.size====="+beanList1.size()); + for(int l = 5 , m = 0 ; l beanList1 = approvalList.get(k); + //System.out.println("11.16--beanList1.size====="+beanList1.size()); + for(int l = 5 , m = 0 ; l compList,XSSFWorkbook workbook) throws TCException, java.text.ParseException { + List makeList = new ArrayList();//ڵļ + List examineList = new ArrayList();//ڵļ + List approvalList = new ArrayList();//׼ڵļ + // TODO Auto-generated method stub + XSSFSheet sheet = workbook.getSheetAt(1); //sheetҳĶд + XSSFRow targetRow = sheet.getRow(0); //еĶд + XSSFCell targetCell = targetRow.getCell(0); //еĶд + XSSFCellStyle cellStyle = targetCell.getCellStyle();//ʽ + int o = 1; + for(int c= 0 ;c valueList = new ArrayList(); + // + String object_name = job.getStringProperty("object_name"); + valueList.add(object_name); + // + String owning_user = job.getProperty("owning_user"); + valueList.add(owning_user); + //ʱ + String creation_date = job.getProperty("creation_date"); + valueList.add(creation_date); + + // + String owning_group = job.getProperty("owning_group"); + valueList.add(owning_group); + //System.out.println("11.16--valuelist====="+valueList); +// oneList.add(valueList); + AIFComponentContext[] refs = job.whereReferenced(); + + for (int i = 0 ; i<=refs.length-1;i++) { + TCComponent comp; + AIFComponentContext parent= refs[i]; + comp = (TCComponent) parent.getComponent(); + + String task_name = comp.getProperty("object_name"); + //System.out.println("ϵ"+task_name);// + String task_type = comp.getProperty("task_type"); + //жDzEPMDoTask + if("EPMReviewTask".equals(task_type)||"EPMDoTask".equals(task_type)) { + //ж3ڵ + if("".equals(task_name)) + { + List taskList = new ArrayList(); + // + //String task_type = comp.getStringProperty("task_type"); + taskList.add(task_name); + // + String resp_party = comp.getProperty("fnd0Performer"); + // System.out.println("11.12resp_party======"+resp_party); + taskList.add(resp_party); + //β + String group = comp.getProperty("owning_group"); + taskList.add(group); + //ʼʱ + String fnd0StartDate = comp.getProperty("fnd0StartDate"); + taskList.add(fnd0StartDate); + //ִн + String task_state = comp.getProperty("task_state"); + taskList.add(task_state); + //ʱ + String fnd0EndDate = comp.getProperty("fnd0EndDate"); + taskList.add(fnd0EndDate); + //忪ʼͽʱʱ + SimpleDateFormat start = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʼʱʽ + Date date1 = null; + date1 = start.parse(fnd0StartDate); + + SimpleDateFormat finish = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʱʽ + Date date2 = new Date(); + //ʱΪ + if("".equals(fnd0EndDate) || " ".equals(fnd0EndDate) || "null".equals(fnd0EndDate)) { + String date = finish.format(date2); + date2 = finish.parse(date); + }else //Ϊ + { + date2 = finish.parse(fnd0EndDate); + } + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + int days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + String day = days+""; + taskList.add(day); + String overdue =null; + if(days>=1) { + overdue = ""; + }else { + overdue = ""; + } + taskList.add(overdue); + makeList.add(taskList); + //sheetҳ + List OverdueRate = new ArrayList(); + OverdueRate.add(resp_party);//ݼӵϢ + OverdueRate.add(group); //ݼӵϢ + OverdueRate.add(overdue); //ݼӵϢ + //oneList.add(OverdueRate); //Ϣϵڴ + }else if("".equals(task_name)) + { + List taskList = new ArrayList(); + + // + //String task_type = comp.getStringProperty("task_type"); + taskList.add(task_name); + // + String resp_party = comp.getProperty("fnd0Performer"); + // System.out.println("11.12resp_party======"+resp_party); + taskList.add(resp_party); + //β + String group = comp.getProperty("awp0Reviewers"); + if("".equals(group)) { + taskList.add(group); + }else { + String[] ss = group.split("/"); + group = ss[0]; + taskList.add(group); + } + //ʼʱ + String fnd0StartDate = comp.getProperty("fnd0StartDate"); + taskList.add(fnd0StartDate); + //ִн + String task_state = comp.getProperty("task_state"); + taskList.add(task_state); + //ʱ + String fnd0EndDate = comp.getProperty("fnd0EndDate"); + taskList.add(fnd0EndDate); + //忪ʼͽʱʱ + SimpleDateFormat start = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʼʱʽ + Date date1 = new Date(); + SimpleDateFormat finish = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʱʽ + Date date2 = new Date(); + + String day = null;// + int days = 0; + //ʼʱޣ򲻼ʱ + if("".equals(fnd0StartDate) || " ".equals(fnd0StartDate) || "null".equals(fnd0StartDate)) { + taskList.add(day); + }else { + //ʼʱУ + date1 = start.parse(fnd0StartDate); + //ʱ + if("".equals(fnd0EndDate) || " ".equals(fnd0EndDate) || "null".equals(fnd0EndDate)) { + String date = finish.format(date2); + date2 = finish.parse(date); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + }else //ʱ + { + date2 = finish.parse(fnd0EndDate); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + } + } + //Ƿ + String overdue =null; + if(days>=1) { + overdue = ""; + }else { + overdue = ""; + } + taskList.add(overdue); + examineList.add(taskList); + //sheetҳ + List OverdueRate = new ArrayList(); + OverdueRate.add(resp_party);//ݼӵϢ + OverdueRate.add(group); //ݼӵϢ + OverdueRate.add(overdue); //ݼӵϢ + oneList.add(OverdueRate); //Ϣϵڴ + }else if("׼".equals(task_name)) + { + List taskList = new ArrayList(); + + // + //String task_type = comp.getStringProperty("task_type"); + taskList.add(task_name); + // + String resp_party = comp.getProperty("fnd0Performer"); + // System.out.println("11.12resp_party======"+resp_party); + taskList.add(resp_party); + //β + String group = comp.getProperty("awp0Reviewers"); + if("".equals(group)) { + taskList.add(group); + }else { + String[] ss = group.split("/"); + group = ss[0]; + taskList.add(group); + } + //ʼʱ + String fnd0StartDate = comp.getProperty("fnd0StartDate"); + taskList.add(fnd0StartDate); + //ִн + String task_state = comp.getProperty("task_state"); + taskList.add(task_state); + //ʱ + String fnd0EndDate = comp.getProperty("fnd0EndDate"); + taskList.add(fnd0EndDate); + + //忪ʼͽʱʱ + SimpleDateFormat start = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʼʱʽ + Date date1 = new Date(); + SimpleDateFormat finish = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʱʽ + Date date2 = new Date(); + + String day = null;// + int days = 0; + //ʼʱޣ򲻼ʱ + if("".equals(fnd0StartDate) || " ".equals(fnd0StartDate) || "null".equals(fnd0StartDate)) { + taskList.add(day); + }else { + //ʼʱУ + date1 = start.parse(fnd0StartDate); + //ʱ + if("".equals(fnd0EndDate) || " ".equals(fnd0EndDate) || "null".equals(fnd0EndDate)) { + String date = finish.format(date2); + date2 = finish.parse(date); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + }else //ʱ + { + date2 = finish.parse(fnd0EndDate); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + } + } + String overdue =null; + if(days>=1) { + overdue = ""; + }else { + overdue = ""; + } + taskList.add(overdue); + approvalList.add(taskList); + List OverdueRate = new ArrayList(); + OverdueRate.add(resp_party);//ݼӵϢ + OverdueRate.add(group); //ݼӵϢ + OverdueRate.add(overdue); //ݼӵϢ + oneList.add(OverdueRate); //Ϣϵڴ + } + } + } + + for (int j = 0; j < valueList.size(); j++) { + XSSFRow row1 = sheet.getRow(o); + if(row1 == null){ + row1 = sheet.createRow(o); + } + XSSFCell excelCell = row1.getCell(j); + if(excelCell == null){ + excelCell = row1.createCell(j); + } + excelCell.setCellStyle(cellStyle); + excelCell.setCellValue(valueList.get(j)); + } + + for (int k=0 ;k beanList1 = makeList.get(k); + for(int l = 5 , m = 0 ; l beanList1 = examineList.get(k); + for(int l = 5 , m = 0 ; l beanList1 = approvalList.get(k); + //System.out.println("11.16--beanList1.size====="+beanList1.size()); + for(int l = 5 , m = 0 ; l compList,XSSFWorkbook workbook) throws TCException, java.text.ParseException { + List makeList = new ArrayList();//ڵļ + List examineList = new ArrayList();//žڵļ + List approvalList = new ArrayList();//׼ίԱڵļ + List wukonglList = new ArrayList();//ڵļ + // TODO Auto-generated method stub + XSSFSheet sheet = workbook.getSheetAt(2); //sheetҳĶд + XSSFRow targetRow = sheet.getRow(0); //еĶд + XSSFCell targetCell = targetRow.getCell(0); //еĶд + XSSFCellStyle cellStyle = targetCell.getCellStyle();//ʽ + int o = 1; + for(int c= 0 ;c valueList = new ArrayList(); + // + String object_name = job.getStringProperty("object_name"); + valueList.add(object_name); + // + String owning_user = job.getProperty("owning_user"); + valueList.add(owning_user); + //ʱ + String creation_date = job.getProperty("creation_date"); + valueList.add(creation_date); + // + String owning_group = job.getProperty("owning_group"); + valueList.add(owning_group); + //System.out.println("11.16--valuelist====="+valueList); +// oneList.add(valueList); + AIFComponentContext[] refs = job.whereReferenced(); + for (int i = 0 ; i<=refs.length-1;i++) { + TCComponent comp; + AIFComponentContext parent= refs[i]; + comp = (TCComponent) parent.getComponent(); + String task_name = comp.getProperty("object_name"); + //System.out.println("ϵ"+task_name);// + String task_type = comp.getProperty("task_type"); + //жDzEPMDoTask + if("EPMReviewTask".equals(task_type)||"EPMDoTask".equals(task_type)) { + //ж3ڵ + if("".equals(task_name)) + { + List taskList = new ArrayList(); + // + //String task_type = comp.getStringProperty("task_type"); + taskList.add(task_name); + // + String resp_party = comp.getProperty("fnd0Performer"); + // System.out.println("11.12resp_party======"+resp_party); + taskList.add(resp_party); + //β + String group = comp.getProperty("owning_group"); + taskList.add(group); + //ʼʱ + String fnd0StartDate = comp.getProperty("fnd0StartDate"); + taskList.add(fnd0StartDate); + //ִн + String task_state = comp.getProperty("task_state"); + taskList.add(task_state); + //ʱ + String fnd0EndDate = comp.getProperty("fnd0EndDate"); + taskList.add(fnd0EndDate); + //忪ʼͽʱʱ + SimpleDateFormat start = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʼʱʽ + Date date1 = null; + date1 = start.parse(fnd0StartDate); + + SimpleDateFormat finish = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʱʽ + Date date2 = new Date(); + //ʱΪ + if("".equals(fnd0EndDate) || " ".equals(fnd0EndDate) || "null".equals(fnd0EndDate)) { + String date = finish.format(date2); + date2 = finish.parse(date); + }else //Ϊ + { + date2 = finish.parse(fnd0EndDate); + } + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + int days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + String day = days+""; + taskList.add(day); + String overdue =null; + if(days>=1) { + overdue = ""; + }else { + overdue = ""; + } + taskList.add(overdue); + makeList.add(taskList); + //sheetҳ + List OverdueRate = new ArrayList(); + OverdueRate.add(resp_party);//ݼӵϢ + OverdueRate.add(group); //ݼӵϢ + OverdueRate.add(overdue); //ݼӵϢ + //oneList.add(OverdueRate); //Ϣϵڴ + }else if("ž".equals(task_name)) + { + List taskList = new ArrayList(); + + // + //String task_type = comp.getStringProperty("task_type"); + taskList.add(task_name); + // + String resp_party = comp.getProperty("fnd0Performer"); + // System.out.println("11.12resp_party======"+resp_party); + taskList.add(resp_party); + //β + String group = comp.getProperty("awp0Reviewers"); + if("".equals(group)) { + taskList.add(group); + }else { + String[] ss = group.split("/"); + group = ss[0]; + taskList.add(group); + } + //ʼʱ + String fnd0StartDate = comp.getProperty("fnd0StartDate"); + taskList.add(fnd0StartDate); + //ִн + String task_state = comp.getProperty("task_state"); + taskList.add(task_state); + //ʱ + String fnd0EndDate = comp.getProperty("fnd0EndDate"); + taskList.add(fnd0EndDate); + //忪ʼͽʱʱ + SimpleDateFormat start = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʼʱʽ + Date date1 = new Date(); + SimpleDateFormat finish = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʱʽ + Date date2 = new Date(); + + String day = null;// + int days = 0; + //ʼʱޣ򲻼ʱ + if("".equals(fnd0StartDate) || " ".equals(fnd0StartDate) || "null".equals(fnd0StartDate)) { + taskList.add(day); + }else { + //ʼʱУ + date1 = start.parse(fnd0StartDate); + //ʱ + if("".equals(fnd0EndDate) || " ".equals(fnd0EndDate) || "null".equals(fnd0EndDate)) { + String date = finish.format(date2); + date2 = finish.parse(date); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + }else //ʱ + { + date2 = finish.parse(fnd0EndDate); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + } + } + //Ƿ + String overdue =null; + if(days>1) { + overdue = ""; + }else { + overdue = ""; + } + taskList.add(overdue); + examineList.add(taskList); + //sheetҳ + List OverdueRate = new ArrayList(); + OverdueRate.add(resp_party);//ݼӵϢ + OverdueRate.add(group); //ݼӵϢ + OverdueRate.add(overdue); //ݼӵϢ + oneList.add(OverdueRate); //Ϣϵڴ + }else if("ڱ׼ίԱ".equals(task_name)) + { + List taskList = new ArrayList(); + + // + //String task_type = comp.getStringProperty("task_type"); + taskList.add(task_name); + // + String resp_party = comp.getProperty("fnd0Performer"); + // System.out.println("11.12resp_party======"+resp_party); + taskList.add(resp_party); + //β + String group = comp.getProperty("awp0Reviewers"); + if("".equals(group)) { + taskList.add(group); + }else { + String[] ss = group.split("/"); + group = ss[0]; + taskList.add(group); + } + + //ʼʱ + String fnd0StartDate = comp.getProperty("fnd0StartDate"); + taskList.add(fnd0StartDate); + //ִн + String task_state = comp.getProperty("task_state"); + taskList.add(task_state); + //ʱ + String fnd0EndDate = comp.getProperty("fnd0EndDate"); + taskList.add(fnd0EndDate); + + //忪ʼͽʱʱ + SimpleDateFormat start = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʼʱʽ + Date date1 = new Date(); + SimpleDateFormat finish = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʱʽ + Date date2 = new Date(); + + String day = null;// + int days = 0; + //ʼʱޣ򲻼ʱ + if("".equals(fnd0StartDate) || " ".equals(fnd0StartDate) || "null".equals(fnd0StartDate)) { + taskList.add(day); + }else { + //ʼʱУ + date1 = start.parse(fnd0StartDate); + //ʱ + if("".equals(fnd0EndDate) || " ".equals(fnd0EndDate) || "null".equals(fnd0EndDate)) { + String date = finish.format(date2); + date2 = finish.parse(date); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + }else //ʱ + { + date2 = finish.parse(fnd0EndDate); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + } + } + //Ƿ + String overdue =null; + if(days>=1) { + overdue = ""; + }else { + overdue = ""; + } + taskList.add(overdue); + approvalList.add(taskList); + //sheetҳ + List OverdueRate = new ArrayList(); + OverdueRate.add(resp_party);//ݼӵϢ + OverdueRate.add(group); //ݼӵϢ + OverdueRate.add(overdue); //ݼӵϢ + oneList.add(OverdueRate); //Ϣϵڴ + }else if ("".equals(task_name)) { + List taskList = new ArrayList(); + + // + //String task_type = comp.getStringProperty("task_type"); + taskList.add(task_name); + // + String resp_party = comp.getProperty("fnd0Performer"); + // System.out.println("11.12resp_party======"+resp_party); + taskList.add(resp_party); + //β + String group = comp.getProperty("awp0Reviewers"); + if("".equals(group)) { + taskList.add(group); + }else { + String[] ss = group.split("/"); + group = ss[0]; + taskList.add(group); + } + //ʼʱ + String fnd0StartDate = comp.getProperty("fnd0StartDate"); + taskList.add(fnd0StartDate); + //ִн + String task_state = comp.getProperty("task_state"); + taskList.add(task_state); + //ʱ + String fnd0EndDate = comp.getProperty("fnd0EndDate"); + taskList.add(fnd0EndDate); + + //忪ʼͽʱʱ + SimpleDateFormat start = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʼʱʽ + Date date1 = new Date(); + SimpleDateFormat finish = new SimpleDateFormat("yyyy-MM-dd hh:mm");//ʱʽ + Date date2 = new Date(); + + String day = null;// + int days = 0; + //ʼʱޣ򲻼ʱ + if("".equals(fnd0StartDate) || " ".equals(fnd0StartDate) || "null".equals(fnd0StartDate)) { + taskList.add(day); + }else { + //ʼʱУ + date1 = start.parse(fnd0StartDate); + //ʱ + if("".equals(fnd0EndDate) || " ".equals(fnd0EndDate) || "null".equals(fnd0EndDate)) { + String date = finish.format(date2); + date2 = finish.parse(date); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + }else //ʱ + { + date2 = finish.parse(fnd0EndDate); + //ת + long from1 = date1.getTime(); + long to1 = date2.getTime(); + days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24)); + day = days+""; + taskList.add(day); + } + } + //Ƿ + String overdue =null; + if(days>=1) { + overdue = ""; + }else { + overdue = ""; + } + taskList.add(overdue); + wukonglList.add(taskList); + //sheetҳ + List OverdueRate = new ArrayList(); + OverdueRate.add(resp_party);//ݼӵϢ + OverdueRate.add(group); //ݼӵϢ + OverdueRate.add(overdue); //ݼӵϢ + oneList.add(OverdueRate); //Ϣϵڴ + } + } + } + for (int j = 0; j < valueList.size(); j++) { + XSSFRow row1 = sheet.getRow(o); + if(row1 == null){ + row1 = sheet.createRow(o); + } + //System.out.println("11.17-j-========"+j); + XSSFCell excelCell = row1.getCell(j); + if(excelCell == null){ + excelCell = row1.createCell(j); + } + excelCell.setCellStyle(cellStyle); + //дֵ + excelCell.setCellValue(valueList.get(j)); + //ٱڵļ + } + //System.out.println("threeListϸ====="+threeList.size()); + //Ƽдֵ + for (int k=0 ;k beanList1 = makeList.get(k); + //System.out.println("11.16--beanList1.size====="+beanList1.size()); + for(int l = 5 , m = 0 ; l beanList1 = examineList.get(k); + //System.out.println("11.16--beanList1.size====="+beanList1.size()); + for(int l = 5 , m = 0 ; l beanList1 = approvalList.get(k); + //System.out.println("11.16--beanList1.size====="+beanList1.size()); + for(int l = 5 , m = 0 ; l beanList1 = wukonglList.get(k); + //System.out.println("11.16--beanList1.size====="+beanList1.size()); + for(int l = 5 , m = 0 ; l userList = new ArrayList(); + List newList = new ArrayList(); + double zongshu = 1; + double yuqishu = 0; + double yuqilv = 0; + + for(int i=0;i array = new ArrayList(); + List Overdue = new ArrayList(); + array = oneList.get(i); + String user = array.get(0); + + System.out.println("11.22user==========="+user); + //͸ֵеԪ + String group = array.get(1); + String rate = array.get(2); + String zongString = String.valueOf(zongshu); + if("".equals(rate)) { + yuqishu++; + //yuqiString =String.valueOf(yuqishu); + } + String yuqiString = String.valueOf(yuqishu); + yuqilv = yuqishu/zongshu*100; + String yuqilvString = String.valueOf(yuqilv); + + //ݵ + Overdue.add(user); + Overdue.add(group); + Overdue.add(zongString); + Overdue.add(yuqiString); + Overdue.add(yuqilvString+"%"); + + boolean a = userList.contains(user); + //System.out.println("11.22===a========="+a); + if(a==true) { + //list + for (int j=0;j beanList2 = new ArrayList(); + beanList2 = list.get(j); + boolean b=beanList2.contains(user);//true + //жǷbeanlistǷuser + if(b==true) { + double yuanzongshu = Double.valueOf(beanList2.get(2)); + yuanzongshu++; + zongString =String.valueOf(yuanzongshu); + System.out.println("11.22=====zongshu======"+zongString); + beanList2.set(2, zongString);//ԭȵbeanlist2µֵ + list.set(j, beanList2); + //жǷڣȻ޸ + if("".equals(rate)){ + double yuanyuqishu = Double.valueOf(beanList2.get(3)); + yuanyuqishu++; + yuqiString = String.valueOf(yuanyuqishu); + System.out.println("11.22=====yuqiString======"+yuqiString); + beanList2.set(3, zongString); + list.set(j, beanList2); + } + // + zongshu = Double.valueOf(beanList2.get(2)); + yuqishu = Double.valueOf(beanList2.get(3)); + yuqilv = yuqishu/zongshu*100; + yuqilvString = String.valueOf(yuqilv)+"%"; + beanList2.set(4, yuqilvString); + System.out.println("11.22===beanlist2========"+beanList2); + list.set(j, beanList2); + } + } + + }else //Ǿ + { + userList.add(user); + //System.out.println("11.22====list======="+list); + list.add(Overdue); + } + + } + System.out.println("11.22userlist==========="+userList); + System.out.println("11.22====list====="+list); + for(int k=0;k Overdue1 = new ArrayList(); + Overdue1 = list.get(k); + for (int j = 0; j < Overdue1.size(); j++) { + XSSFRow row1 = sheet.getRow(o); + if(row1 == null){ + row1 = sheet.createRow(o); + } + //System.out.println("11.19-j-========"+j); + XSSFCell excelCell = row1.getCell(j); + if(excelCell == null){ + excelCell = row1.createCell(j); + } + excelCell.setCellStyle(cellStyle); + //дֵ + excelCell.setCellValue(Overdue1.get(j)); + } + o++; + } + } +} diff --git a/src/com/connor/dfl/plm/dfl046/AutoCreateBean.java b/src/com/connor/dfl/plm/dfl046/AutoCreateBean.java new file mode 100644 index 0000000..74ca4b1 --- /dev/null +++ b/src/com/connor/dfl/plm/dfl046/AutoCreateBean.java @@ -0,0 +1,77 @@ +package com.connor.dfl.plm.dfl046; + +public class AutoCreateBean { + + private String item_id;//Ʒ + private String name;// + private String spec;// + private String unit;//λ + private String design_num;// + private String brand;//Ʒ + private String weihao;// + private String importance;//Ҫ + private String num;// + private int level;//ȼ + public String getItem_id() { + return item_id; + } + public void setItem_id(String item_id) { + this.item_id = item_id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getSpec() { + return spec; + } + public void setSpec(String spec) { + this.spec = spec; + } + public String getUnit() { + return unit; + } + public void setUnit(String unit) { + this.unit = unit; + } + public String getDesign_num() { + return design_num; + } + public void setDesign_num(String design_num) { + this.design_num = design_num; + } + public String getBrand() { + return brand; + } + public void setBrand(String brand) { + this.brand = brand; + } + public int getLevel() { + return level; + } + public void setLevel(int level) { + this.level = level; + } + public String getWeihao() { + return weihao; + } + public void setWeihao(String weihao) { + this.weihao = weihao; + } + public String getImportance() { + return importance; + } + public void setImportance(String importance) { + this.importance = importance; + } + public String getNum() { + return num; + } + public void setNum(String num) { + this.num = num; + } + + +} \ No newline at end of file diff --git a/src/com/connor/dfl/plm/dfl046/BOMExportHandler.java b/src/com/connor/dfl/plm/dfl046/BOMExportHandler.java new file mode 100644 index 0000000..82b964b --- /dev/null +++ b/src/com/connor/dfl/plm/dfl046/BOMExportHandler.java @@ -0,0 +1,52 @@ +package com.connor.dfl.plm.dfl046; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.handlers.HandlerUtil; + +import com.teamcenter.rac.aif.AbstractAIFApplication; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCComponentBOMLine; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.pse.common.BOMLineNode; +import com.teamcenter.rac.pse.common.BOMTreeTableModel; +import com.teamcenter.rac.pse.operations.ExpandBelowOperation; +import com.teamcenter.rac.psebase.AbstractBOMLineViewerApplication; +import com.teamcenter.rac.psebase.common.AbstractViewableTreeTable; +import com.teamcenter.rac.util.AdapterUtil; +import com.teamcenter.rac.util.MessageBox; + +/** + * Our sample handler extends AbstractHandler, an IHandler base class. + * @see org.eclipse.core.commands.IHandler + * @see org.eclipse.core.commands.AbstractHandler + */ +public class BOMExportHandler extends AbstractHandler { + /** + * The constructor. + */ + public BOMExportHandler() { + } + + /** + * the command has been executed, so extract extract the needed information + * from the application context. + */ + + public Object execute(ExecutionEvent event) throws ExecutionException { + + AbstractAIFApplication app=AIFUtility.getCurrentApplication(); + //DL2_VehicleRevision DL2_EBOM + if(app.getTargetComponent() instanceof TCComponentBOMLine){ + TCSession session=(TCSession) app.getSession(); + test operation=new test(app, session); + session.queueOperation(operation); + }else{ + MessageBox.post("ѡBOMLine","",2); + } + return null; + } +} diff --git a/src/com/connor/dfl/plm/dfl046/ChangeDbomUtil.java b/src/com/connor/dfl/plm/dfl046/ChangeDbomUtil.java new file mode 100644 index 0000000..25dfa1a --- /dev/null +++ b/src/com/connor/dfl/plm/dfl046/ChangeDbomUtil.java @@ -0,0 +1,56 @@ +package com.connor.dfl.plm.dfl046; +import java.util.List; + +import com.teamcenter.rac.aif.kernel.AIFComponentContext; +import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentBOMLine; +import com.teamcenter.rac.kernel.TCComponentBOMViewRevision; +import com.teamcenter.rac.kernel.TCComponentBOMWindow; +import com.teamcenter.rac.kernel.TCComponentBOMWindowType; +import com.teamcenter.rac.kernel.TCComponentContextList; +import com.teamcenter.rac.kernel.TCComponentItemRevision; +import com.teamcenter.rac.kernel.TCComponentQuery; +import com.teamcenter.rac.kernel.TCComponentQueryType; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCPreferenceService; +import com.teamcenter.rac.kernel.TCQueryClause; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.kernel.TCTextService; +import com.teamcenter.rac.kernel.TCTypeService; +import com.teamcenter.rac.kernel.TCUserService; +import com.teamcenter.rac.util.MessageBox; + +public class ChangeDbomUtil { + public static TCPreferenceService service; + public static TCSession session; + public static TCUserService userservice;; + + static { + if (session == null) { + session = (TCSession) (AIFUtility.getCurrentApplication() + .getSession()); + } + if (service == null) + service = session.getPreferenceService(); + } + + public static void setByPass(boolean val) throws TCException { + if (userservice == null) { + userservice = session.getUserService(); + } + Object[] obj = new Object[1]; + obj[0] = "origin"; + if (val) { +// userservice.call("ORIGIN_set_bypass", obj); + userservice.call("Connor_set_bypass", obj); + } else { +// userservice.call("ORIGIN_close_bypass", obj); + userservice.call("Connor_close_bypass", obj); + } + } + + + +} \ No newline at end of file diff --git a/src/com/connor/dfl/plm/dfl046/test.java b/src/com/connor/dfl/plm/dfl046/test.java new file mode 100644 index 0000000..83b394b --- /dev/null +++ b/src/com/connor/dfl/plm/dfl046/test.java @@ -0,0 +1,1045 @@ +package com.connor.dfl.plm.dfl046; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.swing.filechooser.FileSystemView; + +import org.apache.commons.lang.ObjectUtils.Null; +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.jacorb.idl.runtime.int_token; + +import com.connor.dfl.plm.dfl019.ClassPropBean; +import com.connor.dfl.plm.dfl019.ItemBean; +import com.connor.dfl.plm.dfl019.ParseXMLUtil; +import com.connor.dfl.plm.dfl044.DataBaseControl2; +import com.connor.dfl.plm.util.ClassValueBean; +import com.connor.dfl.plm.util.ClassValueUtil; +import com.connor.dfl.plm.util.ProgressBarThread; +import com.teamcenter.rac.aif.AbstractAIFApplication; +import com.teamcenter.rac.aif.AbstractAIFOperation; +import com.teamcenter.rac.aif.kernel.AIFComponentContext; +import com.teamcenter.rac.aif.kernel.IPreferenceService; +import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.*; +import com.teamcenter.rac.kernel.ics.ICSAdminClass; +import com.teamcenter.rac.kernel.ics.ICSAdminClassAttribute; +import com.teamcenter.rac.kernel.ics.ICSProperty; +import com.teamcenter.rac.pse.common.BOMLineNode; +import com.teamcenter.rac.psebase.AbstractBOMLineViewerApplication; +import com.teamcenter.rac.psebase.common.AbstractViewableTreeTable; +import com.teamcenter.rac.treetable.TreeTableNode; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.soaictstubs.stringSeq_tHolder; + +public class test extends AbstractAIFOperation { + private AbstractAIFApplication app; + private TCSession session; + private ProgressBarThread wait; + private List attrList; + private List list = new ArrayList(); + private List idlist = new ArrayList(); + private List errList = new ArrayList(); + + private String xuninum = "1"; + private String xuanzhongid = null; + private DataBaseControl2 data; + private String item_id1 = "";//Ʒ item_id + private String rev_id1 = ""; //汾 item_revision_id + private String name1 = "";// object_name + private String oldid1 = "";//Ʒ + private String spec1 = "";// + private String unit1 = "";//λ t2_unit + private String design_num1;// bl_quantity + private String brand1 = "";//Ʒ + private String group1 = "";//Ⱥ + private String source1 = "";//Դ + private String weihao1 = "";// T2_weihao + private String importance1 = "";//Ҫ t2_BOMImportance + private String price1 = "";// + private String total1 = "";//ܼ + private int xuhao1 ; + private String zhangtao = ""; + public test(AbstractAIFApplication app, TCSession session) { + this.app = app; + this.session = session; + this.data = new DataBaseControl2(session,"DFL2_ERP_SQL_Connect"); + String[] BOMZT = session.getPreferenceService().getStringValues("DFL2_ZHANGTAO_WAREHOUSE"); + + if (BOMZT == null || BOMZT.length <= 0 ) { + MessageBox.post("ѡDFL2_ZHANGTAO_WAREHOUSEδ,ϵԱ!!", + "", MessageBox.ERROR); + return; + } + TCComponentGroup group = session.getCurrentGroup(); + try { + String group_name = group.getStringProperty("display_name"); + System.out.println("11.04group_name=============="+group_name); + if(group_name.contains(".")) { + String[] names = group_name.split("\\."); + if(names != null && names.length >=2) { + for (int i = 0; i < BOMZT.length; i++) { + if(BOMZT[i].contains(";")) { + String[] zts = BOMZT[i].split(";"); + if(names[names.length-2].equals(zts[0])) { + this.zhangtao = zts[1]; + System.out.println("11.04======"+zhangtao); + + break; + } + } + } + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + @Override + public void executeOperation() throws Exception { + // TCUserService service = session.getUserService(); +// ParseXMLUtil xml=new ParseXMLUtil(); +// File classfile=xml.getSXX("DFL_CLASS_Xml", session); +// attrList =xml.parseXMLCode(classfile); + try { + System.out.println("·"); + ChangeDbomUtil.setByPass(true); + } catch (TCException e2) { + e2.printStackTrace(); + } + try { + System.out.println("ʼȡBOMģ"); + String puid = session.getPreferenceService().getStringValue("DFL_BOM_UID2"); + System.out.println("puid======================"+puid); + if (puid == null||"".equals(puid)) { + MessageBox.post("ѡDFL_BOM_UID2δ,ϵԱ!!", + "", MessageBox.ERROR); + return; + } + TCComponentDataset excel = (TCComponentDataset) session.stringToComponent(puid); + File file = ((TCComponentDataset)excel).getTcFiles()[0].getFmsFile(); + SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");// ڸʽ + String time = df.format(new Date()); + FileSystemView fsv = FileSystemView.getFileSystemView(); + String pathRoute = fsv.getHomeDirectory().getPath() + File.separator + "BOMܱ" + time + ".xlsx"; + String pathRoute1 = fsv.getHomeDirectory().getPath() + File.separator + "BOMձ" + time + ".xlsx"; + wait = new ProgressBarThread("ձ", "ִУԵ..."); + wait.start();// + TCComponentBOMLine line = (TCComponentBOMLine) app.getTargetComponent(); + xuanzhongid = line.getStringProperty("awb0BomLineItemId"); + try { + int level = 0; + int num = 0; + //getAndSetValue(line,level,num); + //writeToExcel(file,pathRoute); + //System.out.println("8.10(1)====="+list); + list.clear(); + //System.out.println("8.10(2)====="+list); + getAndSetValue1(line,level,num); + + writeToExcel(file,pathRoute1); + //System.out.println("9.15(3)====="+list); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + wait.setBool(true);// رս + wait.interrupt(); + MessageBox.post("ɱʧ"+e.getMessage(),"",MessageBox.ERROR); + return; + } + wait.setBool(true);// رս + wait.interrupt(); + MessageBox.post("ɱ,鿴","",MessageBox.INFORMATION); + Runtime.getRuntime().exec("cmd /c \"" + pathRoute + "\""); + Runtime.getRuntime().exec("cmd /c \"" + pathRoute1 + "\""); + } catch (Exception e) { + e.printStackTrace(); + } + try { + ChangeDbomUtil.setByPass(false); + } catch (TCException e2) { + e2.printStackTrace(); + } + + } + + + //ձĻȡ + private void getAndSetValue1(TCComponentBOMLine bomLine,int level,int num) { + + //һϣ⹺Эһ + List wai = new ArrayList(); + //һϣһ + List xu = new ArrayList(); + // TODO Auto-generated method stub + try { + //ͨ + Unpack(bomLine); + //System.out.println("level================"+level); + String firstnum = ""; + //TCComponentItemRevision eqrev = bomLine.getItemRevision(); + String firstid = bomLine.getStringProperty("awb0BomLineItemId"); + + //жDzǵһ㼶 + if(xuanzhongid.equals(firstid)) { + firstnum = "1"; + }else { + getItemValue1(bomLine,level,num); + firstnum =design_num1; + System.out.println("9.22.19.32һ㼶====="+firstnum); + } + //Ӽ + AIFComponentContext[] childs = bomLine.getChildren(); + //жǷӼ + if(childs != null && childs.length > 0 ) { + //㼶+1 + //level++; + //Ӽ + for (int i = 0; i < childs.length; i++) { + //ѡеĶ + InterfaceAIFComponent comp = childs[i].getComponent(); + //ѡеĶİ汾 + TCComponentItemRevision rev = ((TCComponentBOMLine) comp).getItemRevision(); + String type = rev.getStringProperty("object_type"); + String occType = bomLine.getStringProperty("TCAI_OCC_TYPE"); + //жǷΪ0 + if("0".equals(firstnum)) { + break; + } + //жǷbomline + if(comp instanceof TCComponentBOMLine) { + //жǷΪ贫ݵ + if (!"Reference".equals(occType)) + { + //汾⹺汾Э汾ȡ + if("T2_outsourceRevision".equals(type) || "T2_OutBuyPartRevision".equals(type)) { + //ĶǿתΪbomline + TCComponentBOMLine ziLine = (TCComponentBOMLine) comp; + wai.add(ziLine); + } + //⹺Э + else { + TCComponentBOMLine ziLine = (TCComponentBOMLine) comp; + xu.add(ziLine); + } + } + } + } + //⹺Э + if(wai.size()>0) { + + + for (int i = 0;i beanList1 = new ArrayList(); + + double a = Double.valueOf(xuninum).doubleValue(); + System.out.println("a--915======"+a); + double b = Double.valueOf(design_num1).doubleValue(); + System.out.println("b--915======"+b); +// double c = Double.valueOf(firstnum).doubleValue(); +// System.out.println("c--915======"+c); + double d = a*b; + design_num1 = ""+d; + System.out.println("design_num9.15======"+design_num1); + String xuhao2 = xuhao1+""; + //Եַ + beanList1.add(xuhao2); + beanList1.add(item_id1); + beanList1.add(rev_id1); + beanList1.add(name1); + beanList1.add(oldid1); + //beanList1.add(lev1); //Ҫ㼶 + beanList1.add(spec1); + beanList1.add(unit1); + beanList1.add(design_num1); + beanList1.add(brand1); + beanList1.add(group1); + beanList1.add(source1); + beanList1.add(weihao1); + beanList1.add(importance1); + beanList1.add(price1); + beanList1.add(total1); + System.out.println("beanList19.15====="+beanList1); + //߼ж + boolean include=idlist.contains(item_id1);//true + //System.out.println("Ƿ9.18====="+include); + boolean panduan = true; + //ٽididlist + idlist.add(item_id1); + //System.out.println("idlist9.18====="+idlist); + //ַϵ + if (include == panduan) { + //list + + for (int j = 0; j < list.size(); j++) { + int m = list.size(); + //System.out.println("9.18listij"+m); + List beanList2 = new ArrayList(); + beanList2 = list.get(j); + //System.out.println("9.18beanList2====="+beanList2); + boolean include1=beanList2.contains(item_id1);//true + //Ϊ棬޸ + if(include1 == panduan) { + String numString = null; + for(int k = 0 ; k<=beanList2.size() ; k++) { + numString = beanList2.get(7); + System.out.println("9.18====="+numString); + } + double before = Double.valueOf(numString).doubleValue(); + double add = Double.valueOf(design_num1).doubleValue(); + double sum = before+add; + //String sum = ""+before+add; + System.out.println("9.18sum====="+sum); + beanList2.set(7, ""+sum); + list.set(j, beanList2); + } + } + }else if(include!=panduan){ + list.add(beanList1); + System.out.println("list9.15====="+list); + } + } + } + // + if(xu.size()>0) { + + + for (int i = 0;i 0 ) { + level++; + for (int i = 0; i < childs.length; i++) { + num++; + InterfaceAIFComponent comp = childs[i].getComponent(); + TCComponentItemRevision rev = ((TCComponentBOMLine) comp).getItemRevision(); + String type = rev.getStringProperty("object_type"); + + if(comp instanceof TCComponentBOMLine) { + TCComponentBOMLine ziLine = (TCComponentBOMLine) comp; + getAndSetValue(ziLine,level,num); + + + } + } + level--; + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + /** + * д뵽excel + * @throws Exception + */ + + private void writeToExcel(File file,String path) throws Exception{ + FileInputStream fis = new FileInputStream(file); + XSSFWorkbook workbook = new XSSFWorkbook(fis); + System.out.println("workBook:"+workbook); + XSSFSheet sheet = workbook.getSheetAt(0); + XSSFRow targetRow = sheet.getRow(0); + XSSFCell targetCell = targetRow.getCell(0); + XSSFCellStyle cellStyle = targetCell.getCellStyle(); + int startRow = 1; + + if(list != null && list.size() > 0) { + for (int i = 0; i < list.size(); i++) { + XSSFRow row = sheet.getRow(startRow); + if(row == null) { + row = sheet.createRow(startRow); + } + List beanList = list.get(i); + for (int j = 0; j < beanList.size(); j++) { + XSSFCell cell = row.getCell(j); + if(cell == null) { + cell = row.createCell(j); + } + cell.setCellStyle(cellStyle); + cell.setCellValue(beanList.get(j)); + } + startRow++; + } + } + FileOutputStream output = new FileOutputStream(new File(path)); + workbook.write(output); + output.close(); + fis.close(); + } + + public List getOutBuyPartValue(TCComponentItemRevision rev) { + // TODO Auto-generated method stub + List vals = new ArrayList(); + StringBuilder sb = new StringBuilder(); + List classPropList = new ArrayList(); + TCClassificationService classificationService = session.getClassificationService(); + try { + String className = rev.getClassificationClass(); + TCComponentICO[] icos = rev.getClassificationObjects(); + ICSAdminClass c = classificationService.newICSAdminClass(); + c.load(className); + //String icoPUID = icos[0].getUid(); + Map claMap = new HashMap(); + if(icos != null && icos.length>0){ + ICSProperty[] icss = icos[0].getICSProperties(true); + for (ICSProperty ics : icss) { + claMap.put(ics.getId(), ics.getValue()); + } + } + for(Map.Entry entry : claMap.entrySet()){ + System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); + } + ICSAdminClassAttribute[] icsAttrS = c.getAttributes(); + if (icsAttrS != null) { + for (ICSAdminClassAttribute attr : icsAttrS) { + if (attr.isReferenceAttribute()) { + continue; + } + if (attr.isReference()) { + continue; + } + ClassPropBean bean = new ClassPropBean(attr); + classPropList.add(bean); + } + } + for (int j = 0; j < attrList.size(); j++) { + String classValue = attrList.get(j); + System.out.println("classValue=================="+classValue); + if(classValue.contains(";")) { + String[] classValues = classValue.split(";"); + if(className.equals(classValues[0])) { + for (int k = 1; k < classValues.length; k++) { + String attrName = classValues[k]; + System.out.println("attrName=================="+attrName); + for (int i = 0; i < classPropList.size(); i++) { + ClassPropBean bean = classPropList.get(i); + System.out.println("bean.propDisName=================="+bean.propDisName); + if(attrName.equals(bean.propDisName)) { + String value = claMap.get(bean.propID); + System.out.println("bean.propID=================="+bean.propID); + if(bean.isLov) { + String lovValue = bean.lovMapping.get(value); + System.out.println("lovValue===================="+lovValue); + if("Ʒ".equals(attrName) || "λ".equals(attrName)) { + StringBuilder sb1 = new StringBuilder(attrName); + sb1.append("="); + sb1.append(lovValue); + vals.add(sb1.toString()); + if("/".equals(lovValue)) { + System.out.println("ƴ"); + break; + } + sb.append(lovValue); + if(k < classValues.length-1) { + sb.append(";"); + } + }else { + if("/".equals(lovValue)) { + System.out.println("ƴ"); + break; + } + sb.append(lovValue); + if(k < classValues.length-1) { + sb.append(";"); + } + } + }else { + if("Ʒ".equals(attrName) || "λ".equals(attrName)) { + StringBuilder sb1 = new StringBuilder(attrName); + sb1.append("="); + sb1.append(value); + vals.add(sb1.toString()); + if("/".equals(value)) { + System.out.println("ƴ"); + break; + } + sb.append(value); + if(k < classValues.length-1) { + sb.append(";"); + } + }else { + System.out.println("value===================="+value); + if("/".equals(value)) { + System.out.println("ƴ"); + break; + } + sb.append(value); + if(k < classValues.length-1) { + sb.append(";"); + } + } + } + break; + } + } + } + break; + } + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + String spec = sb.toString(); + vals.add(spec); + return vals; + } + private String getOutsourceValue(TCComponentItemRevision rev) { + // TODO Auto-generated method stub + StringBuilder sb = new StringBuilder(); + try { + String importance = rev.getStringProperty("t2_Importance"); + if(!("".equals(importance.trim()))) { + sb.append(importance); + sb.append(";"); + } + String material = rev.getStringProperty("t2_material"); + if(!("".equals(material.trim()))) { + sb.append(material); + sb.append(";"); + } + String mass = rev.getStringProperty("t2_MASS"); + if(!("".equals(mass.trim()))) { + sb.append(mass); + sb.append(";"); + } + String specifications = rev.getStringProperty("t2_Specifications"); + if(!("".equals(specifications.trim()))) { + sb.append(specifications); + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + String spec = sb.toString(); + return spec; + } + + public void getItemValue(TCComponentBOMLine comp,int level,int num) throws TCException { + + List beanList = new ArrayList(); + String item_id = "";//Ʒ item_id + String name = "";// object_name + String spec = "";// + String unit = "";//λ t2_unit + String design_num = "";// bl_quantity + String brand = "";//Ʒ + String group = "";//Ⱥ + String source = "";//Դ + String weihao = "";// T2_weihao + String importance = "";//Ҫ t2_BOMImportance + String xuhao = num + ""; + String lev = level + ""; + TCComponentItemRevision rev = comp.getItemRevision(); + try { + design_num = comp.getStringProperty("T2_ActualConsumption"); + if(design_num == null || "".equals(design_num) || " ".equals(design_num)) { + design_num = comp.getStringProperty("T2_DesignQuantity"); + if(design_num == null || "".equals(design_num) || " ".equals(design_num)) { + design_num = comp.getStringProperty("bl_quantity"); + if(design_num == null || "".equals(design_num) || " ".equals(design_num)) { + design_num = "1"; + } + } + } + String type = rev.getStringProperty("object_type"); + group = rev.getStringProperty("t2_groupCode"); + source = rev.getStringProperty("t2_sourceCode"); + weihao = comp.getStringProperty("T2_weihao"); + importance = comp.getStringProperty("t2_BOMImportance"); + item_id = rev.getStringProperty("item_id"); + name = rev.getStringProperty("object_name"); + if("T2_outsourceRevision".equals(type)) { + + String classID = item_id.substring(0, 2); + System.out.println("classID==============="+classID); + if("51".equals(classID) || "72".equals(classID) || "76".equals(classID)) { +// List vals= getOutBuyPartValue(rev); +// if(vals == null) { +// return ; +// } +// for (int j = 0; j < vals.size(); j++) { +// String value = vals.get(j); +// if(value.contains("=")) { +// if(value.contains("λ")) { +// String[] units = value.split("="); +// if(units.length >= 2) { +// unit = units[1]; +// } +// }else if(value.contains("Ʒ")) { +// String[] brands = value.split("="); +// if(brands.length >= 2) { +// brand = brands[1]; +// } +// }else { +// spec = value; +// } +// }else { +// spec = value; +// } +// } + ClassValueBean valueBean = ClassValueUtil.getOutBuyPartValue(rev,errList); + if(valueBean != null) { + spec = valueBean.getSpecs(); + }else { + return; + } + }else { + spec = getOutsourceValue(rev); + } + unit = rev.getStringProperty("t2_unit"); + + }else if("T2_OutBuyPartRevision".equals(type)) { +// List vals= getOutBuyPartValue(rev); +// for (int j = 0; j < vals.size(); j++) { +// String value = vals.get(j); +// if(value.contains("=")) { +// if(value.contains("λ")) { +// String[] units = value.split("="); +// if(units.length >= 2) { +// unit = units[1]; +// } +// }else if(value.contains("Ʒ")) { +// String[] brands = value.split("="); +// if(brands.length >= 2) { +// brand = brands[1]; +// } +// }else { +// spec = value; +// } +// }else { +// spec = value; +// } +// } + ClassValueBean valueBean = ClassValueUtil.getOutBuyPartValue(rev,errList); + if(valueBean != null) { + spec = valueBean.getSpecs(); + unit = valueBean.getUnit(); + brand = valueBean.getBrand(); + if(spec == null) { + spec = ""; + } + if(unit == null) { + unit = ""; + } + if(brand == null) { + brand = ""; + } + }else { + return; + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println(item_id+"spec=================="+spec); + + beanList.add(xuhao); + beanList.add(item_id); + beanList.add(name); + //beanList.add(lev); + beanList.add(spec); + beanList.add(unit); + beanList.add(design_num); + beanList.add(brand); + beanList.add(group); + beanList.add(source); + beanList.add(weihao); + beanList.add(importance); + list.add(beanList); + } + public void getItemValue1(TCComponentBOMLine comp,int level,int num) throws TCException { + + + + //lev1 = level + ""; + TCComponentItemRevision rev = comp.getItemRevision(); + + try { + design_num1 = comp.getStringProperty("T2_ActualConsumption"); + //ʵǴģж + if("Ѵע".equals(design_num1)) { + comp.unpack(); + comp.refresh(); + design_num1 = comp.getStringProperty("T2_ActualConsumption"); + } + //жǷΪ + else if(design_num1 == null || "".equals(design_num1) || " ".equals(design_num1)) { + design_num1 = comp.getStringProperty("T2_DesignQuantity"); + //Ǵģж + if("Ѵע".equals(design_num1)) { + comp.unpack(); + comp.refresh(); + design_num1 = comp.getStringProperty("T2_DesignQuantity"); + } + //жǷΪ + else if(design_num1 == null || "".equals(design_num1) || " ".equals(design_num1)) { + design_num1 = comp.getStringProperty("bl_quantity"); + if(design_num1 == null || "".equals(design_num1) || " ".equals(design_num1)) { + design_num1 = "1"; + } + } + } + + String type = rev.getStringProperty("object_type"); + group1 = rev.getStringProperty("t2_groupCode"); + getgroup(); + source1 = rev.getStringProperty("t2_sourceCode"); + getsource(); + weihao1 = comp.getStringProperty("T2_weihao"); + importance1 = comp.getStringProperty("t2_BOMImportance"); + item_id1 = rev.getStringProperty("item_id"); + rev_id1 = rev.getStringProperty("item_revision_id"); + name1 = rev.getStringProperty("object_name"); + price1 = getPrice(); + total1 = getTotal(design_num1,price1); + if("T2_outsourceRevision".equals(type)) { + xuhao1 = num ; + String classID = item_id1.substring(0, 2); + item_id1 = item_id1+rev_id1; + oldid1 = rev.getStringProperty("t2_OldId"); + System.out.println("classID==============="+classID); + if("51".equals(classID) || "72".equals(classID) || "76".equals(classID)) { + + ClassValueBean valueBean = ClassValueUtil.getOutBuyPartValue(rev,errList); + if(valueBean != null) { + spec1 = valueBean.getSpecs(); + }else { + return; + } + }else { + spec1 = getOutsourceValue(rev); + } + unit1 = rev.getStringProperty("t2_unit"); + brand1 = ""; + + + }else if("T2_OutBuyPartRevision".equals(type)) { + xuhao1 = num; + ClassValueBean valueBean = ClassValueUtil.getOutBuyPartValue(rev,errList); + oldid1 = rev.getStringProperty("t2_OldID"); + if(valueBean != null) { + spec1 = valueBean.getSpecs(); + unit1 = valueBean.getUnit(); + brand1 = valueBean.getBrand(); + if(spec1 == null) { + spec1 = ""; + } + if(unit1 == null) { + unit1 = ""; + } + if(brand1 == null) { + brand1 = ""; + } + }else { + return; + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println(item_id1+"spec=================="+spec1); + } + + //bomѴע + private void Unpack(TCComponentBOMLine unpackLine) { + try { + //Ӽ + AIFComponentContext[] childs = unpackLine.getChildren(); + if(childs != null && childs.length > 0 ) { + //Ӽ + for (int i = 0; i < childs.length; i++) { + //ѡеĶ + InterfaceAIFComponent comp = childs[i].getComponent(); + //ѡеĶİ汾 + TCComponentItemRevision rev = ((TCComponentBOMLine) comp).getItemRevision(); + String type = rev.getStringProperty("object_type"); + + String occType = unpackLine.getStringProperty("TCAI_OCC_TYPE"); + //жǷbomline + if(comp instanceof TCComponentBOMLine) { + if("T2_outsourceRevision".equals(type) || "T2_OutBuyPartRevision".equals(type)) { + if (!"Reference".equals(occType)) + { + List beanList1 = new ArrayList(); + //ĶǿתΪbomline + TCComponentBOMLine ziLine = (TCComponentBOMLine) comp; + //жǷѴעͣȻ + String Judgmentnote = null; + Judgmentnote=ziLine.getStringProperty("T2_ActualConsumption"); + if("Ѵע".equals(Judgmentnote)) { + ziLine.unpack(); + ziLine.refresh(); + unpackLine.refresh(); + }else if (Judgmentnote == null || "".equals(Judgmentnote) || " ".equals(Judgmentnote)) { + Judgmentnote=ziLine.getStringProperty("T2_DesignQuantity"); + }if("Ѵע".equals(Judgmentnote)) { + ziLine.unpack(); + ziLine.refresh(); + unpackLine.refresh(); + } + } + } + } + } + } + }catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private String getPrice () { + String price = null; + String sql = null; + sql = "select ccc23a from " +zhangtao + ".ccc_file inner join "+zhangtao+".ccz_file on ccz01=ccc02 and ccz02=ccc03 where ccc01='"+item_id1+"'"; + System.out.println("sql======"+sql); + try { + price = data.getRecord(sql); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println("11.08==price=="+price); + if(price == null ) { + price =""; + } + return price; + } + + private String getTotal(String quantity,String price) { + // TODO Auto-generated method stub + if("".equals(price)||" ".equals(price)||"null".equals(price)) { + price = "0"; + } + String total; + double amount = Double.valueOf(quantity).doubleValue(); + double tariff = Double.valueOf(price).doubleValue(); + double product = amount * tariff ; + + total = ""+product; + System.out.println("11.08==ܼ====="+total); + return total; + } + //ƥȺ + private void getgroup() { + if("F10".equals(group1)) { + group1 = "豸"; + } + if("F11".equals(group1)) { + group1 = "ȷ豸"; + } + if("F12".equals(group1)) { + group1 = ""; + } + if("F13".equals(group1)) { + group1 = ""; + } + if("F14".equals(group1)) { + group1 = "ܷ"; + } + if("F15".equals(group1)) { + group1 = ""; + } + if("F16".equals(group1)) { + group1 = "Ӿ"; + } + if("F17".equals(group1)) { + group1 = ""; + } + if("F18".equals(group1)) { + group1 = "DZ"; + } + if("F19".equals(group1)) { + group1 = "ԭ"; + } + if("F20".equals(group1)) { + group1 = "ѧƷ/Ʒ"; + } + if("F21".equals(group1)) { + group1 = ""; + } + if("F22".equals(group1)) { + group1 = ""; + } + if("F23".equals(group1)) { + group1 = "ҩð"; + } + if("F24".equals(group1)) { + group1 = "ҽúIJ"; + } + if("F99".equals(group1)) { + group1 = ""; + } + if("F50".equals(group1)) { + group1 = ""; + } + if("F51".equals(group1)) { + group1 = "ɻ"; + } + if("F52".equals(group1)) { + group1 = ""; + } + if("F53".equals(group1)) { + group1 = ""; + } + if("F54".equals(group1)) { + group1 = "Һ"; + } + if("F55".equals(group1)) { + group1 = "ϴƿ"; + } + if("F56".equals(group1)) { + group1 = ""; + } + if("F57".equals(group1)) { + group1 = "װ"; + } + if("F58".equals(group1)) { + group1 = "ǻ"; + } + if("F60".equals(group1)) { + group1 = ""; + } + if("F61".equals(group1)) { + group1 = "Ƽ"; + } + if("F62".equals(group1)) { + group1 = "װ"; + } + if("F63".equals(group1)) { + group1 = "ҽװ"; + } + if("F64".equals(group1)) { + group1 = "ˮ"; + } + if("F65".equals(group1)) { + group1 = "BFS"; + } + if("F66".equals(group1)) { + group1 = "ԭҩ ɰĿ"; + } + if("F67".equals(group1)) { + group1 = "ԭҩ Ŀ"; + } + if("F68".equals(group1)) { + group1 = "Ƽ"; + } + if("F69".equals(group1)) { + group1 = ""; + } + if("F70".equals(group1)) { + group1 = "﹤"; + } + if("F71".equals(group1)) { + group1 = "Ԥ"; + } + if("F72".equals(group1)) { + group1 = "ϴ"; + } + if("F73".equals(group1)) { + group1 = "ʳƷװ"; + } + if("F74".equals(group1)) { + group1 = "ҽð"; + } + if("F75".equals(group1)) { + group1 = "ܿЭ"; + } + if("F76".equals(group1)) { + group1 = "ڻ"; + } + } +//ƥԴ + private void getsource() { + //M Ƽ + + if("M".equals(source1)){ + source1 = "Ƽ"; + } + //P ɹ + if("P".equals(source1)){ + source1 = "ɹ"; + } + //X + if("X".equals(source1)) { + source1 = ""; + } + System.out.println("÷source1==9.22====="+source1); + } +} diff --git a/src/com/connor/dfl/plm/exportBOM/BOMExportOperation.java b/src/com/connor/dfl/plm/exportBOM/test.java similarity index 75% rename from src/com/connor/dfl/plm/exportBOM/BOMExportOperation.java rename to src/com/connor/dfl/plm/exportBOM/test.java index 461f5e6..d08ac6b 100644 --- a/src/com/connor/dfl/plm/exportBOM/BOMExportOperation.java +++ b/src/com/connor/dfl/plm/exportBOM/test.java @@ -24,6 +24,7 @@ import org.jacorb.idl.runtime.int_token; import com.connor.dfl.plm.dfl019.ClassPropBean; import com.connor.dfl.plm.dfl019.ItemBean; import com.connor.dfl.plm.dfl019.ParseXMLUtil; +import com.connor.dfl.plm.dfl044.DataBaseControl2; import com.connor.dfl.plm.util.ClassValueBean; import com.connor.dfl.plm.util.ClassValueUtil; import com.connor.dfl.plm.util.ProgressBarThread; @@ -44,7 +45,7 @@ import com.teamcenter.rac.treetable.TreeTableNode; import com.teamcenter.rac.util.MessageBox; import com.teamcenter.soaictstubs.stringSeq_tHolder; -public class BOMExportOperation extends AbstractAIFOperation { +public class test extends AbstractAIFOperation { private AbstractAIFApplication app; private TCSession session; private ProgressBarThread wait; @@ -55,10 +56,11 @@ public class BOMExportOperation extends AbstractAIFOperation { private String xuninum = "1"; private String xuanzhongid = null; - + private DataBaseControl2 data; private String item_id1 = "";//Ʒ item_id private String rev_id1 = ""; //汾 item_revision_id private String name1 = "";// object_name + private String oldid1 = "";//Ʒ private String spec1 = "";// private String unit1 = "";//λ t2_unit private String design_num1;// bl_quantity @@ -67,11 +69,45 @@ public class BOMExportOperation extends AbstractAIFOperation { private String source1 = "";//Դ private String weihao1 = "";// T2_weihao private String importance1 = "";//Ҫ t2_BOMImportance + private String price1 = "";// + private String total1 = "";//ܼ private int xuhao1 ; - private String lev1 = ""; - public BOMExportOperation(AbstractAIFApplication app, TCSession session) { + private String zhangtao = ""; + public test(AbstractAIFApplication app, TCSession session) { this.app = app; this.session = session; + this.data = new DataBaseControl2(session,"DFL2_ERP_SQL_Connect"); + String[] BOMZT = session.getPreferenceService().getStringValues("DFL2_ZHANGTAO_WAREHOUSE"); + + if (BOMZT == null || BOMZT.length <= 0 ) { + MessageBox.post("ѡDFL2_ZHANGTAO_WAREHOUSEδ,ϵԱ!!", + "", MessageBox.ERROR); + return; + } + TCComponentGroup group = session.getCurrentGroup(); + try { + String group_name = group.getStringProperty("display_name"); + System.out.println("11.04group_name=============="+group_name); + if(group_name.contains(".")) { + String[] names = group_name.split("\\."); + if(names != null && names.length >=2) { + for (int i = 0; i < BOMZT.length; i++) { + if(BOMZT[i].contains(";")) { + String[] zts = BOMZT[i].split(";"); + if(names[names.length-2].equals(zts[0])) { + this.zhangtao = zts[1]; + System.out.println("11.04======"+zhangtao); + + break; + } + } + } + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } @Override public void executeOperation() throws Exception { @@ -87,10 +123,10 @@ public class BOMExportOperation extends AbstractAIFOperation { } try { System.out.println("ʼȡBOMģ"); - String puid = session.getPreferenceService().getStringValue("DFL_BOM_UID"); + String puid = session.getPreferenceService().getStringValue("DFL3_BOM_UID"); System.out.println("puid======================"+puid); if (puid == null||"".equals(puid)) { - MessageBox.post("ѡDFL_BOM_UIDδ,ϵԱ!!", + MessageBox.post("ѡDFL3_BOM_UIDδ,ϵԱ!!", "", MessageBox.ERROR); return; } @@ -144,6 +180,11 @@ public class BOMExportOperation extends AbstractAIFOperation { //ձĻȡ private void getAndSetValue1(TCComponentBOMLine bomLine,int level,int num) { + + //һϣ⹺Эһ + List wai = new ArrayList(); + //һϣһ + List xu = new ArrayList(); // TODO Auto-generated method stub try { //ͨ @@ -186,126 +227,142 @@ public class BOMExportOperation extends AbstractAIFOperation { { //汾⹺汾Э汾ȡ if("T2_outsourceRevision".equals(type) || "T2_OutBuyPartRevision".equals(type)) { - //+1 - num++; - //ĶǿתΪbomline TCComponentBOMLine ziLine = (TCComponentBOMLine) comp; - - getItemValue1(ziLine,level,num); - - List beanList1 = new ArrayList(); - - double a = Double.valueOf(xuninum).doubleValue(); - System.out.println("a--915======"+a); - double b = Double.valueOf(design_num1).doubleValue(); - System.out.println("b--915======"+b); -// double c = Double.valueOf(firstnum).doubleValue(); -// System.out.println("c--915======"+c); - double d = a*b; - design_num1 = ""+d; - System.out.println("design_num9.15======"+design_num1); - String xuhao2 = xuhao1+""; - //Եַ - beanList1.add(xuhao2); - beanList1.add(item_id1); - beanList1.add(rev_id1); - beanList1.add(name1); - //beanList1.add(lev1); //Ҫ㼶 - beanList1.add(spec1); - beanList1.add(unit1); - beanList1.add(design_num1); - beanList1.add(brand1); - beanList1.add(group1); - beanList1.add(source1); - beanList1.add(weihao1); - beanList1.add(importance1); - System.out.println("beanList19.15====="+beanList1); - //߼ж - boolean include=idlist.contains(item_id1);//true - //System.out.println("Ƿ9.18====="+include); - boolean panduan = true; - //ٽididlist - idlist.add(item_id1); - //System.out.println("idlist9.18====="+idlist); - //ַϵ - if (include == panduan) { - //list - - for (int j = 0; j < list.size(); j++) { - int m = list.size(); - //System.out.println("9.18listij"+m); - List beanList2 = new ArrayList(); - beanList2 = list.get(j); - //System.out.println("9.18beanList2====="+beanList2); - boolean include1=beanList2.contains(item_id1);//true - //Ϊ棬޸ - if(include1 == panduan) { - String numString = null; - for(int k = 0 ; k<=beanList2.size() ; k++) { - numString = beanList2.get(6); - System.out.println("9.18====="+numString); - } - double before = Double.valueOf(numString).doubleValue(); - double add = Double.valueOf(design_num1).doubleValue(); - double sum = before+add; - //String sum = ""+before+add; - System.out.println("9.18sum====="+sum); - beanList2.set(6, ""+sum); - list.set(j, beanList2); - } - } - }else if(include!=panduan){ - list.add(beanList1); - System.out.println("list9.15====="+list); - } + wai.add(ziLine); } - - //⹺Эݹ˷ - else { + //⹺Э + else { TCComponentBOMLine ziLine = (TCComponentBOMLine) comp; - String xuniid = ziLine.getStringProperty("awb0BomLineItemId"); - - //жûиûϣѭ - AIFComponentContext[] childs23 = ziLine.getChildren(); - int geshu = childs23.length; - System.out.println("Ϊ9.22====="+geshu+"====="+xuniid); - if (childs23.length <= 0 ) { - System.out.println("9.22ִ"); - continue; + xu.add(ziLine); } - - //System.out.println("9.22id === ==="+xuniid); - design_num1 = "1"; - //Ƚ(xuninum)ֵΪȡֵ - xuninum = design_num1; - System.out.println("8.12"+xuninum+"===9.22id==="+xuniid); - //Ϊdoublea - double a = Double.valueOf(xuninum).doubleValue(); - System.out.println("8.12doublea"+a+"===9.22id==="+xuniid); - getItemValue1(ziLine,level,xuhao1); - //ûȡΪdoubleb - System.out.println("9.22зdesign_num1ֵ====="+design_num1); - double b = Double.valueOf(design_num1).doubleValue(); - System.out.println("8.12doubleb"+b+"===9.22id==="+xuniid); - - //double c = a*b; - double c = Double.valueOf(firstnum).doubleValue(); - System.out.println("c--915======"+c); - //õ˵ - double d = a*b*c; - System.out.println("8.12doublec"+d+"===9.22id==="+xuniid); - design_num1 = ""+d; - //һ˻ֵxuninum - xuninum = design_num1; - System.out.println("8.12һ"+xuninum+"===9.22id==="+xuniid); + } + } + } + //⹺Э + if(wai.size()>0) { + - //ݹ - getAndSetValue1(ziLine,level,xuhao1); + for (int i = 0;i beanList1 = new ArrayList(); + + double a = Double.valueOf(xuninum).doubleValue(); + System.out.println("a--915======"+a); + double b = Double.valueOf(design_num1).doubleValue(); + System.out.println("b--915======"+b); +// double c = Double.valueOf(firstnum).doubleValue(); +// System.out.println("c--915======"+c); + double d = a*b; + design_num1 = ""+d; + System.out.println("design_num9.15======"+design_num1); + String xuhao2 = xuhao1+""; + //Եַ + beanList1.add(xuhao2); + beanList1.add(item_id1); + beanList1.add(rev_id1); + beanList1.add(name1); + beanList1.add(oldid1); + //beanList1.add(lev1); //Ҫ㼶 + beanList1.add(spec1); + beanList1.add(unit1); + beanList1.add(design_num1); + beanList1.add(brand1); + beanList1.add(group1); + beanList1.add(source1); + beanList1.add(weihao1); + beanList1.add(importance1); +// beanList1.add(price1); +// beanList1.add(total1); + System.out.println("beanList19.15====="+beanList1); + //߼ж + boolean include=idlist.contains(item_id1);//true + //System.out.println("Ƿ9.18====="+include); + boolean panduan = true; + //ٽididlist + idlist.add(item_id1); + //System.out.println("idlist9.18====="+idlist); + //ַϵ + if (include == panduan) { + //list + + for (int j = 0; j < list.size(); j++) { + int m = list.size(); + //System.out.println("9.18listij"+m); + List beanList2 = new ArrayList(); + beanList2 = list.get(j); + //System.out.println("9.18beanList2====="+beanList2); + boolean include1=beanList2.contains(item_id1);//true + //Ϊ棬޸ + if(include1 == panduan) { + String numString = null; + for(int k = 0 ; k<=beanList2.size() ; k++) { + numString = beanList2.get(7); + System.out.println("9.18====="+numString); + } + double before = Double.valueOf(numString).doubleValue(); + double add = Double.valueOf(design_num1).doubleValue(); + double sum = before+add; + //String sum = ""+before+add; + System.out.println("9.18sum====="+sum); + beanList2.set(7, ""+sum); + list.set(j, beanList2); } } - } + }else if(include!=panduan){ + list.add(beanList1); + System.out.println("list9.15====="+list); + } + } + } + // + if(xu.size()>0) { + + for (int i = 0;izgvOc&w!GpWI2X}W%2zqdL4;I|r-GaMAaCZp~2^!qp-pQSrcjspA`vq_M ztku0*>RYGx{;K-hRiz{g0f`BK2EYOU01|*Om;a;<7ytkX1pr_GV8P#u+S)h)ZJhMf z-0gslx{PktR>XOb;M6$)aM1Jr-TohsK)KqmO%F3_hvtExSf@s4Zg6QSEI}*5d-9(! zDQJxgVa z`xlgJMApTGbL8M4ot{F^Ho(X=FB>vikiL>qU~$yLv+Z?XDC~=rg$RmLbkOdWg5NJ5 zz8mh*2A8FA#xdk}3s7OelUdhnZ&zkz(;%-(cYLePm~b0OgIS~0QvX0CeK0bEnWI}{ zhRZ8TBxGI=R$|Rcgvb^Ihg!pec|mOI3(Z8f);iM63g5fz=B0lqiPM_7RoUpQ_r&Kv z9TTCRqc~sd+G4RCjc}RjczMJ=R9F$pFrouIQn-bCal-+6UE9(ZTw?o8{v^&~i8*)g z2!wSELN#9lthXMcT@g4|fd7O$ztZ5sKEr-YK#rQ@=8n!-1|+*0V8>SSUL!*KAs&f3 zm@VE!5ZsroAg^WS2@`!!I!DHT0r}bMD+EC4FK*hP&P;X%;+`DnE&|9+^&Eg!j!cZd z_WyOy|HnT0Z?9e+C$HGcj2Lt(^%OjGJHHl#DkAGDEY(J$=Hn~9iqa67PmaI#m5KmW z4KDyf@>7S;)5yvif8@as$;~Evc{n;IA6cVoMNsmCy)z6gr9+a0eff_*G?)47`I}Tp z8Fy-zj%eDl=8|05;SDm0*>kZP)JaB7JUEO(f*`DSseU>G^4jZ$ca>oCBC5v~LDfxM zIS28R>7N#oiuRENLwMwlW>Vh_IU1TSReB9skzC*7sjHgtm{%KSIq;IY>ls^hU5cfD z#d!8&P{hOa^Qtiu#aYK4u zHkTy8z`{UFp&tgtT~!6QBal8hUngk`Wsa<$2r`{?-|MFlDp|1dd2Mfv#h9Zt@)QYO`6zNDfB zV0J6@ASZbKL1aBJhcCMOF{Y%fKcJq6zh>qrpnMT7yu%;uG_=#N zv`Ksgecy47)7y^=8}8<8>cqw0Bc)l*#W=;uv`PcqE`^(}^Ae%7yk#IzTIy7J^vtO+ z-mhcrLc_cJ2FG_VE}|SyC=7~LS4Ft!cWQe>1ur~-tp*Go74mZV5P}Y@ zWG4zfNq5pb<~s&$^ccH$gI2g`a^6Yb?NjKPW%;q(V+C)`rt0ipb7q@hbLOKJ=8LbF z8=*$#%@LzTAa0003zK{Ij+z2D zIKPNg?5brZh}~j>*_qYCaq8^|DD;iiZ~Hz3svcGN*Ecm0r_q?~ytat0+(2jhyAw@c z;=)PuBe?^nf6kH6-F1uKz+SXJnaI0OSa#<>Anp*9$r6@wyz>fjA`TvsB>F@X=eU!X z+NOT`!%5_Egy!qY1^wvNsmb>6;QR(?rvEeYxt~nMsDK1LDFpz41A5}0kDn$cV|s%^AnJW4xq=96h*CqLS>jFCHy2ONCo}z^ zvmvx#x0|bu6VDF2nv%-yOmgOohXe+KVuWR1=-oQTr)Re;5=a#BRj>=NBwMo2is%m zWSH`WgrJt52Pi9j>p#CMmZv3-xLxJiKK(X5NAxG8^5mn5SfQD(VK1G{$G0>WkeO?? zmS2X7{9B{BN#^)y@5Ig``EXrd6r}A+3z7=Y{dl-{o;sh*nUP?RQ`Z*+L!hbr44GDu z&*a{C(^K%DwB)gAKMB{?Q`H@-)V*VJxbno6*Jv8nWo;dv*`ZF|v~qg8{#`k(V2ghE zB#AELML4`=CB8vt48InLGRDtgxs$lcKf*!KRhg&Hg7Q$}-z&06=@ypA(>hRR%iTc2 zxCvtl^E_~ixWr!_rrb+R6~RxIURBQCR9*_mAf7zAl^8J%Zx2qHD%wWX5Pjt>%ebtr z(N(a0qj`cZ^Z-RS+{wDJ^8;aPC39FAa@naW5_1iXpt&&ZO_gjBjTKMGb?zEE>7)QDhM!~upyY>Ms=HcKg4dfU0+>uOIki7_( z>=1T31vs$*11wspx(?fjg}+7*A<>UBhJ}ST~Vsk!lH4vPEJkR4cRsSXM|Le{kW@ z91$flGlG<*XhCM$_Gsm-IzQB0TeQ|*sE_qD*T z1%|u0kc*v=3ktLy*^nD&m`<<0$DYf!~I zGe1Z7snc~OQyBtA^w*gv@)LOS5~RgwFlLmYdpU1#s}K>W(3M9(|Ck?vBRDie^%6Wi zd9IXH1;hMm$0;Ed>J+bdEJ+y1e32ZdJVKy6LY|iZw@)45j{g{;8T1(=lo}|eVv+SZ ztygK{i@V>rtc5z-mr(Wx2i}pB%KSepum5G~aBs38W=M)p3Kz=|n;<1YPNjlM6RP%W zbYd=>dxyNjj8koQ`g8L>yM&eC= zn({2EfO@RA(f~H5p4Q@|vl7~o%qVBUn-&=7iXpUkYn0*E=N5!8Tx%SPh{gyN3Ecb) z2WofLBUDEnDtb|H;WSItY-Y_)I8n;Wk)B`bAqjS%6hJ|9iNnU^9owmPS%ybGIC0w0k3qxNybBKBXt@mQG;xZ-952{3{1%7I7Eu;P7J zIO1bhkm4d&jN+3PmEdy`#qi2(S+pYKZlyRJTVK#Y7i2&e7=vNvcWi0mX5baqT49={6XV%<+`D4`x7PUf3!YM${k;Rgd-{`5&Yx5X;W4r)H4uehh>*pE&lpPBd{ zJ=I&Z>gPrkfhTnz34;wX87)%AfFDoRXTt}LL(DcJYJ5)r#%=Ku8wb6w8U#W zhP=d|xgOMVUpOB9s7~W~_eVVcJx!5U{fhDt1^^f*{*_JqLx(t-0j+^df9(H|AV=Eo z!|}N=eVDEU5id{fIJZX8ZO=JYjJe>nsS2ZY-rrD{;o?fKN5c8V2_%Z-#w4|4%IG~P z$sjPW*P}c$t;J1^M*oa8Ig0(}P?;W=w5E#{{gj!X?-(VJ$v z4Ux>=Z`=-iLmnqOHc(Q4A&Q3=x`Ty5L#9xNMS}di1F}EoX4zOoV)5~Ln(33*^;r{& zK#<@kPaeta9^mKt*A&figXn71oMfi1FB%Ng5(WE3l!jtr7 z1byru4biNDB5F1<9NW+jRPm#b1Ho_JQDqaBQzH2@mo#WTaQKcmfB3pyb!|!Kjpr*t zre$ssUQzdP9~$=?ppfWotLOE{2CE-P&+{DVE4dF1XLtz*DBsQkgt6PresECt2V34% z&mLV_J>w;8T3X(Dd|5*{Nb*4nqn1Wqm@2H+IA+vr^OwU}v+qeaU@p;Q-Qj_+HAvL8 z2!oT|F8UBYZ9M=3P!b9wm*#It`2mL~%<76p0h8g@W{fAiIj+22d za6crEAp+4Hh^+f|=2eWPlo7rBE)A8A#ywg0i>`%f5vp>CV51tYUK5a+a z5^~o!@$fSL5Jfloq1!*Wj)c_<{`O`I;>8fX7ZyzxTs&tbx0Q(u!OhvP1Yx1O5y948 z9~b*<=BW{Q=+n0s$8FMy-j8J$&9ZE;y6;P8!Pwi|>(1(|II%~00xcq0+0sT`1HPI) z>H9HM7Rc3;l)6A8L!Pz?DXZu`h|JgeFd)E3y{yV8+b05EhIjqu@2zezxLq@=&>> zwoOzOO!tLUr|#R74$(QbJ}?UWUhi;yy46Wa|8$|sB58O365HKXv{BiVrAK>VD%duy zqH&{e-IWaPx_q{5oi82XEaHP^5jC!ty1`IyIqST#@V$A!HI}+7`&uK8KB!N^VJ*%& zkMoM3pc@n(31rnG-5fC}piP2PuxzHY>wPYH{{^8qBVMLzdO8=bT_y)U(9528Ck^mc z!r_+7yn~SB@JMB{C$kE{rvKFa2IpvWg{hTE82W29BI={#qe(~!hj13NC?r%+xQ%ch z{3ph|33Uce*Ae+6`Sf5gc(StfQ0a@Y%{{dxj2Av&bek_vfd62{ow`h>d_t{bY1dNV zBT5p-J9foNBW~$$JcsS2JXID?uiol)=1kcOta}Y(?hIQVj~)ySavwW|fbp*GPLovY zix;V=GPgVao4UDe0^sXr0}wcK$JA@_9~uCrXkKG@a#%Jau}SCL@uz6G$C75y6}h!G z`U>Jj9<=Sa7*i}Wy{-9Siu>QZi{0A?2h5A>K4|EU&wU0T_G-th9LSZWP<5)vay`{J za29kbZ7Y|BNH_||F_1ICS9Zox)JwiU^|FhK(iDlEpGOsq*R^ib?Z zB=%{7JZm~lU(|K2tu!Gz+cbMrC%z#!)^0NMpfw!jECnLJAF7phK4txSgyrN*1U(%@ zkD6yyckW#e^heAV+QVje5~9d>!gtqN>e=XF5f$e+@2s6AxZj=E zQV9-aPUtub(I3iW-aYKDw$GcuH2Lv+*nQ$IR{5#algS~ebXCX|Lu1{A)k0Q>hbG|e zsG#$*rm~3Knppjwnxn^uqy)N9gv?44;h4ER>CvEN?ojQdyPGt>nV_iY2BNtqC;aH- zV|3Np#^C7tGz2m%?9|R|CX3$dXYZEH)~`gR>Fyh3LcFe)iNbZuM|1Gw7M@D59+?uk zOBK%W9Xd_x_*bn4`8>^go|1S3^<`^0-)u20c5IqZ=VV5nB0Z7AT~((T;=!0G{6f0H9RUue5-ple-nr@mDTjOl#C;ixYDV z`==o6GM$H(gH`WER~VVTFO3p0Zq9q1JS#)$nVg?x%W4$jUGkHQhh37 zJiWOs1E23LuAW_cMJj1JQ;g`5P`ksXGGtqD7F}Y;?4!akI=c|pjX!KliD-@;8Imx| zAT&@HH|}xk@<|4!76uAu5s;EgZmu~PQ1I&!OBV&Aw|uLWBU6N~GL1lBF9bO6JW#V} z*l4;9$jqhxoX+%ih=cujCYR;=A>9;L`iyb4bFE2vMhblRHhvqramzZ>o8p9KxCyG0 zG)%yeeT+N)bL<&Ke6BmZP$E3^Db8zZ|G^vP594@9;kN^C@|ZW%Zp>2bMn04H@lItB z8c+}JL{xq9d3v}f;-C}d$vt$Kn;qSi!qf*ZEQqQas0UM%bp&@R5q>XB2gdpSc0QeI zaqomIi$tc#f7NXOKX-%SVpQ+z^W*L50)@+s`SA<m{f+@<-_y7#_`v*vaWV5S)ku_6Uk zTcUuA(cI~nO*wxCSl0Bi;%$VxYzG<=yr>`=VYUfWb)OGaW>tZRV8g`hI|TmjZ)GdV zRNt%d5wPnSO)DX%A;(zu!HhGZxIWb-E_-SWt%!BPQZr?qkCb;yqs#4oX5GuKjVyN4 zpDP>FALXCev9#kXiBl6OOaBg3ue%DXWy2FuNv$DZ8;aJFiYswS7s5`au}?h4KI}&3 z3RhQHgw__Z$#qsdg<8-8N_JJStNsWgV?VIV#rd+0Z&s6I`9?*(Q2B=RZCct(^S2M$ zHSA#-j>78!2k%RtTy|Vez_oi-#8n{#t5` z-%NEPT>!f-vavN>Q3~4#AHiwX!0uV8*X)C#zXjCx2#j|22ND9mzUSZ9db9>cubo|- z9pxSU~c0x9ZcB9qy$C40c1Y{@oN-jO?dmu0CV(Tk8G>r6D7}~35;~uz>v48b? zxY{84+PL}TBwa#YPTxFtEvxHn!@x|umV_&-Oa(0q-mu5ix#0Y;HB{4XkE#9AcUf*f zg;36Y(_!X?H@KJiGvH-zRSGI+zx0dgHFkkolX2_Jnh?y2f_+eu+DDs@K_;^=V8zC% z0c;v|KIEDoEYNb7>NiTFrJBl6zbAUBc4-pvM-~zTUif*B6(@`)4|tR(FZj5tAB5R! zz+dUpnAPM=shipGFLlSA}anHa9M ziJ+%4wL0B%W%?f(q2HGg8&y16ZlLV?fadvG{v@`U8luwW5+qggK` zwypbc1$(vJxe}G&!o35+Y|qmc6!TYI(uodrmDW-}RH8*RcLgvshEo50)YpgkODaWo z1ul?(MOg~LoezdhoQ_5lNw?bA&0+r}5ir3SHucYuG?XDNKQ)tvQX0)ok_kk5NaaPp zGM0gpyiUo(32m;X3lkvQfGf7tfJ2 z3|#1c5Gt6jj>?W)3_Swkd*ckth{I8eWSCg9gPFqI7GulDuzRY8JgG3D$k{ zKPG9)6VJrIyx3H1SqTI+s$*EU6~LV~~|p(fr)1#?aQHr&CQ$P?f4bK8rK%@zt2 z?RGHqhpan%v*)S(z->AK!WU@U(5fXbMtF~mr^`H{imGb;Y3@e2#ERyC_^-7yd9~G? zVp~gI&p)+tdJRN9_|vO492(rXo~qLO=Ls(M%r$W|8y4bE+$4avpVBaXCeprw`1qfR zcRp)Y*=`U+ML;zevVSo3SC!_UiT8h$ZT?KZ|53CFjP4HWVa61{g?JHl^Nj!Y8BtV~ zi?msN55n+a8G0o-<`(nWvyK4RwXvCfD#*_ACJqD^z2T~(<`l`Hq>zur#TDLV=z~e! zq1Sx?)VWXy_~JirERs%O(rij_b7go6oV4uizBCgc2q2@9h($Yu;AH=pxEjVj zUF*u&CVKdTgURK}@V;!ZJY{&ibOqOwI?Z(yEaJvI_gAlB@&${dl2x9k0XU87Zq1Lm z6ON3e!K~ku^ywv8Y9^QlGr+fiI&@b^5AFx(9pD-mr&M&`Mk}?;a&hls7gUpG4?JQI zU(b}-^(8y8`zjVuAh=yRl$kW}OFTQOXB7?Ek1K00s6S^i*Y-5tnmvE2+d-^0P5E|q zf?c9=TnU*&pXd(R}3dNMqffr>+U!Am;sNROZ#aLQ4bPK?SXfQ2(8i z26lG;r6h=p|J*X-x@}f|wG2T$AP1d9X4p^%327)7(0MFY1Ef7PfxK9>vi^N|!&$)O zx6nsOF3T%UU4;4dkwpqCs3R$m_+Y-5a~ z(`wQlzQweH3C$ecBC81z5E6r+Awx)p*B}eR-IHFJDq$yCidDH^q%L5$X|AHp|1op; z2u*M?%P+W9EpA7VKxJS%1U;x7e#*hnadI~^Zh;M}6&8+KJ`Ha!b3gy{XM7d&WBa^5 z6j8YU&!n8w{O-&#D57G+FNvRda7Sg9ApHfg`#4H$%n^Wwae4jP2zcIOarX+Ae88m& znW-O`MKKZ4FLle z97q>{HPd8~OWFy>{}$pF5#q$Rt{lwH&2el&QI4qtvJE*NqHZfF~M63_wtmu^Gieg zgU?{#3?S|M_ieiWn!kS?|E6hIN%pS*e{CTAm*KBtF~~{&t)1|9!{3{#{xltf{@+G} zf3;ZsZv59)mOo7afOwFY_`e%le#iN}zu`}$0Z<*{|LS)59p(4x#Gfb%pj8G4<@Z{} z?*PB&Q~m^4!~X-|&+N+YroS&~{xnS_{)g%B3!L8(ewUhmA_#(5^Vc!>TjBXT;P1-q zPe5VvKLCHzZGWrdeh2-l9QYFw01&1G0RBT9{BHi&$o=o;^VI)l{?9nBBnt)NAOL^} O`cZ;tTuArp?0*0m#UI81 literal 0 HcmV?d00001