package com.vci.client.oq.ui.qtimport; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.io.File; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import com.vci.client.LogonApplication; import com.vci.client.common.providers.ServiceProvider; import com.vci.client.oq.QTClient; import com.vci.client.oq.QTDClient; import com.vci.client.portal.UI.dialog.VCIGuideStepPanel; import com.vci.client.ui.swing.VCIOptionPane; import com.vci.client.ui.swing.components.VCIJOptionPane; import com.vci.corba.omd.qtm.QTD; import com.vci.corba.omd.qtm.QTInfo; /** * Action导出第二步界面 * * @Title :ExpActionStep2Panel.java * @Description : * @Copyright :宏博远达科技有限公司 * @Author :平台与规划部/ZhongGY/E-mail:zhonggy@vci-tech.com * @Date :2015-6-5 * @Version :1 * @Other :产生注释:Alt+Shift+J */ public class QTImpQTStep2Panel extends VCIGuideStepPanel { private static final long serialVersionUID = 1L; /** * 导出模型文件全路径显示 */ private JLabel lblModelFileFullPath; /** * 导出日志清单列表 */ private JScrollPane scrollPane = new JScrollPane(); /*private JTable tblExportLog;*/ /** * 导出文件名 */ private String logFileName = "..."; /*private String vciqtmfFileName = "...";*/ private QTImportTree importTree = null; public QTImpQTStep2Panel() { GridBagLayout gridBagLayout = new GridBagLayout(); gridBagLayout.columnWidths = new int[] { 0, 0, 0, 0, 0 }; gridBagLayout.rowHeights = new int[] { 25, 0, 0 }; gridBagLayout.columnWeights = new double[] { 0.0, 0.0, 1.0, 0.0, Double.MIN_VALUE }; gridBagLayout.rowWeights = new double[] { 0.0, 1.0, Double.MIN_VALUE }; setLayout(gridBagLayout); JLabel label = new JLabel(" "); GridBagConstraints gbc_label = new GridBagConstraints(); gbc_label.insets = new Insets(0, 0, 5, 5); gbc_label.gridx = 0; gbc_label.gridy = 0; add(label, gbc_label); JLabel label_1 = new JLabel("导入模型文件:"); GridBagConstraints gbc_label_1 = new GridBagConstraints(); gbc_label_1.insets = new Insets(0, 0, 5, 5); gbc_label_1.gridx = 1; gbc_label_1.gridy = 0; add(label_1, gbc_label_1); lblModelFileFullPath = new JLabel("..."); GridBagConstraints gbc_lblModelFileFullPath = new GridBagConstraints(); gbc_lblModelFileFullPath.anchor = GridBagConstraints.WEST; gbc_lblModelFileFullPath.insets = new Insets(0, 0, 5, 5); gbc_lblModelFileFullPath.gridx = 2; gbc_lblModelFileFullPath.gridy = 0; add(lblModelFileFullPath, gbc_lblModelFileFullPath); JLabel label_2 = new JLabel(" "); GridBagConstraints gbc_label_2 = new GridBagConstraints(); gbc_label_2.insets = new Insets(0, 0, 5, 0); gbc_label_2.gridx = 3; gbc_label_2.gridy = 0; add(label_2, gbc_label_2); GridBagConstraints gbc_scrollPane = new GridBagConstraints(); gbc_scrollPane.gridwidth = 2; gbc_scrollPane.insets = new Insets(0, 0, 0, 5); gbc_scrollPane.fill = GridBagConstraints.BOTH; gbc_scrollPane.gridx = 1; gbc_scrollPane.gridy = 1; add(scrollPane, gbc_scrollPane); table = new JTable(); table.setModel(new DefaultTableModel( new Object[][] { {null, null, null, null}, }, new String[] { "\u5E8F\u53F7", "\u5BFC\u5165\u72B6\u6001", "\u67E5\u8BE2\u65B9\u6848\u540D\u79F0", "\u6240\u5C5E\u7C7B\u578B\u540D\u79F0" } ) { /** * */ private static final long serialVersionUID = 1L; boolean[] columnEditables = new boolean[] { false, false, false, false }; public boolean isCellEditable(int row, int column) { return columnEditables[column]; } }); table.getColumnModel().getColumn(0).setResizable(false); table.getColumnModel().getColumn(0).setPreferredWidth(35); table.getColumnModel().getColumn(1).setPreferredWidth(85); table.getColumnModel().getColumn(2).setPreferredWidth(158); table.getColumnModel().getColumn(3).setPreferredWidth(173); scrollPane.setViewportView(table); /*tblExportLog = new JTable();*/ } public QTImpQTStep1Panel getPreStepUI() { if (super.getPreStepUI() != null) { return (QTImpQTStep1Panel) super.getPreStepUI(); } else { return null; } } @Override public void initUI() { importTree = (QTImportTree) getGuidCommonShareData().get("importTree"); String filePath = ((String) getGuidCommonShareData().get("filePath")).substring(0, ((String) getGuidCommonShareData().get("filePath")).lastIndexOf("\\")); Long currentTimes = System.currentTimeMillis(); // logFileName= importTree.getExportLogFileName(filePath,currentTimes); logFileName = importTree.getExportDataFileName(filePath,currentTimes); lblModelFileFullPath.setText(logFileName); // lblLogFileFullPath.setText(logFileName); initData(); } @SuppressWarnings("unchecked") @Override public void initData() { //1、两个文件路径(共享 )加载显示 //加载table数据 DefaultTableModel tblModel = (DefaultTableModel)table.getModel(); while(tblModel.getRowCount() > 0 ){ tblModel.removeRow(0); } PrintWriter logFileWriter = null; try { List selectedQTs = (List)this.getGuidCommonShareData().get("selectedQTs"); Map norepQTDs = (Map)this.getGuidCommonShareData().get("selectedQTDs"); Map allQTs = (Map) this.getGuidCommonShareData().get("importData"); Map newNorepQTDs = getnewNorepQTDs(norepQTDs,allQTs); Set> pLQts = allQTs.entrySet(); Set> pLActions = newNorepQTDs.entrySet(); System.out.println(allQTs); File logFile = new File(logFileName); logFileWriter = new PrintWriter(logFile); for (int i = 0; i < selectedQTs.size(); i++) { logFileWriter.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ").format(new Date())+" [序号=" + selectedQTs.get(i)[0] + ", 导出状态=" + selectedQTs.get(i)[1] + ", 查询方案名称=" + selectedQTs.get(i)[2] + ", 所属类型名称=" + selectedQTs.get(i)[3] + "]"); tblModel.addRow(selectedQTs.get(i)); } //模板定义持久化 if(newNorepQTDs.size()!=0){ for (Entry entry : pLActions) { QTD[] qtds = entry.getValue(); for (QTD qtd : qtds) { boolean success= ServiceProvider.getOMDService().getQTDService().addQTD(qtd); if(!success){ VCIJOptionPane.showMessage(this, qtd.name+"导入失败!"); } } } } //查询模板持久化 if(allQTs.size()!=0){ for (Entry entry : pLQts) { QTInfo qtWrapper = entry.getValue(); boolean success = ServiceProvider.getOMDService().getQTDService().saveQT(qtWrapper); if(!success){ VCIJOptionPane.showMessage(this, qtWrapper.qtName+"导入失败!"); } } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (logFileWriter != null) { logFileWriter.flush(); logFileWriter.close(); } } catch (Exception e) { VCIOptionPane.showMessage(LogonApplication.frame, "日志写出异常异常!"); e.printStackTrace(); } } } //根据选择的查询模板过滤模板定义 private Map getnewNorepQTDs(Map norepQTDs, Map allQTs) { // TODO Auto-generated method stub Map map = new HashMap(); Set> pLQts = allQTs.entrySet(); Set> pLActions = norepQTDs.entrySet(); for (Entry entrys : pLActions) { for (Entry entry : pLQts) { if(entry.getValue().btmName.equals(entrys.getKey())){ map.put(entrys.getKey(), entrys.getValue()); } } } return map; } @Override public String getStepName() { /* String secondStepName = null; if((secondStepName = (String)this.getCommonMap().get("secondStepName") )!= null){ return secondStepName; }*/ return "第二步:查询模板导入结果"; } @Override public boolean isPreBtnVisible() { return true; } @Override public String getPreBtnText() { return "上一步"; } @Override public boolean doPreBtnAction() { // TODO:上一步操作处理 VCIGuideStepPanel nextStepUI =getPreStepUI(); nextStepUI.initUI(); return true; } @Override public boolean isNextBtnVisible() { // 最后一步不显示“下一步” return false; } @Override public String getNextBtnText() { return null; } @Override public boolean doNextBtnAction() { return true; } @Override public boolean isCancelBtnVisible() { return true; } @Override public String getcancelBtnText() { return "完成"; } String dialogProcess = ""; // [第X步/共X步] private JTable table; public String getDialogProcess() { dialogProcess = "[第2步/共2步]"; return dialogProcess; } }