From 2811ff7d9290c6aa8285ece348b3bc5da79ac538 Mon Sep 17 00:00:00 2001 From: lijh Date: Thu, 25 Jul 2024 15:22:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=85=E7=AE=B1=E9=9B=86=E6=88=90=E5=92=8C?= =?UTF-8?q?=E5=B7=A5=E8=A3=85=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chint/yunpi/command/QueryZxjcFram.java | 474 ++++++++++++++++ .../chint/yunpi/command/QueryZxjcHandler.java | 30 + .../chint/yunpi/command/ZxjcMATERIALBean.java | 84 +++ .../com/connor/plm/GZXQ/CenterRenderer.java | 25 + .../connor/plm/GZXQ/CustomHeaderRenderer.java | 24 + .../com/connor/plm/GZXQ/GZXQController.java | 511 ++++++++++++++++++ .../src/com/connor/plm/GZXQ/GZXQFrame.java | 26 + .../src/com/connor/plm/GZXQ/GZXQPanel.java | 13 + .../plm/GZXQ/MultiLineTableCellRenderer.java | 129 +++++ .../src/com/connor/plm/GZXQ/a - 副本.fxml | 106 ++++ .../src/com/connor/plm/GZXQ/a.fxml | 107 ++++ 11 files changed, 1529 insertions(+) create mode 100644 com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/QueryZxjcFram.java create mode 100644 com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/QueryZxjcHandler.java create mode 100644 com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/ZxjcMATERIALBean.java create mode 100644 com.connor.chint.wuhan/src/com/connor/plm/GZXQ/CenterRenderer.java create mode 100644 com.connor.chint.wuhan/src/com/connor/plm/GZXQ/CustomHeaderRenderer.java create mode 100644 com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQController.java create mode 100644 com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQFrame.java create mode 100644 com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQPanel.java create mode 100644 com.connor.chint.wuhan/src/com/connor/plm/GZXQ/MultiLineTableCellRenderer.java create mode 100644 com.connor.chint.wuhan/src/com/connor/plm/GZXQ/a - 副本.fxml create mode 100644 com.connor.chint.wuhan/src/com/connor/plm/GZXQ/a.fxml diff --git a/com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/QueryZxjcFram.java b/com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/QueryZxjcFram.java new file mode 100644 index 0000000..7015ad2 --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/QueryZxjcFram.java @@ -0,0 +1,474 @@ +package com.connor.chint.yunpi.command; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Toolkit; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.Month; +import java.time.YearMonth; +import java.time.temporal.ChronoUnit; +import java.time.temporal.WeekFields; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JFileChooser; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.border.EmptyBorder; +import javax.swing.table.DefaultTableModel; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import com.connor.chint.sap2.util.SAPUtil; +import com.connor.chint.sap2.util.SqlUtil; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentDataset; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.DateButton; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.rac.util.PropertyLayout; + +public class QueryZxjcFram extends JFrame implements ActionListener { + + + private TCSession session; + protected DefaultTableModel tm_part; + private static ArrayList dateConnList = new ArrayList(); + private String[] prefs; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + private JTextField pathJTextField = new JTextField(30); + private JButton outputButton = new JButton("ѡ"); + + public QueryZxjcFram(TCSession session) { + // TODO Auto-generated constructor stub + this.session = session; + prefs = session.getPreferenceService().getStringValues("CHINT_SRM_SQL_CONNECT"); + initUI(); + } + +// private String sqlString = "delete ML_CREATEORDERBOM where STATUS='2' and PRODUCTID=? and MATERIALNO=? " +// + "and OBJECTNAME=? and PRODPLANO=? and BATCHNO=?" +// + " and FACTORY=? and REPCODE=? and PRODORDERO=?"; + private String sqlString = ""; + + private void initUI() { + // TODO Auto-generated method stub + try { + this.setTitle("WMSĬά"); + this.setLayout(new BorderLayout()); + + JPanel topPanel = getTopPanel(); + + // JScrollPane pane = getTablePanel(); + // pane.setBorder(BorderFactory.createTitledBorder("")); +// JPanel btnPanel = getRightPanel(); + JPanel btnPanel = getBtnPanel(); + + this.add(topPanel, BorderLayout.NORTH); + // this.add(pane,BorderLayout.CENTER); + this.add(btnPanel, BorderLayout.SOUTH); + this.setPreferredSize(new Dimension(550, 110)); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // ȡĻߴ + int screenWidth = screenSize.width; // ȡĻ + int screenHeight = screenSize.height; // ȡĻ߶ + int x = (screenWidth - 550) / 2; // FrameϽx + int y = (screenHeight - 300) / 2; // FrameϽy + this.setLocation(x, y); // Frameλ + + // this.setLocationRelativeTo(null); + this.createActionEvent(); + this.pack(); + + // this.validate(); + this.setVisible(true); + +// this.setAlwaysOnTop(true); + + } catch (Exception e) { + e.printStackTrace(); + return; + } + } + + // Ӽ + public void createActionEvent() { + + this.btnOut.addActionListener(this); + this.btnIn.addActionListener(this); + + } + + private List compList = new ArrayList(); + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + + Object source = e.getSource(); + System.out.println("source==>+" + source); + if (this.btnIn.equals(source)) { + //߼ + String pathJTextFieldStr = pathJTextField.getText(); + if(pathJTextFieldStr == null || pathJTextFieldStr.isEmpty()) { + MessageBox.post("ѡҪExcel", "ʾ", 2); + return; + } + FileInputStream input = null; + try { + SqlUtil.SRMGetTCDataConnection(prefs); + + String factory = ""; + try { + factory = SAPUtil.getGroupID(session); + } catch (TCException e3) { + // TODO Auto-generated catch block + e3.printStackTrace(); + } + + if(!pathJTextFieldStr.contains(".xlsx")) { + MessageBox.post("ѡ.xlsxʽExcel", "ʾ", 2); + return; + } + + File file = new File(pathJTextFieldStr); + input = new FileInputStream(file); + Workbook workbook = new XSSFWorkbook(input); + Sheet sheet = workbook.getSheetAt(0); + for (Row row : sheet) { + System.out.println("row.getRowNum()=================="+row.getRowNum()); + + if(row.getRowNum() != 0) { + + if(getCellValue(row.getCell(4)).isEmpty()) { + String insertSql = "INSERT INTO CHINT_WMS_DEFAULT_MATERIAL_RULE(FACTORY,OBJECTNAME,SPECIFICATIONS,QUANTITY,DRAWINGNO,UNIT,REMARK) VALUES('"+ + getCellValue(row.getCell(0))+"','"+ + getCellValue(row.getCell(1))+"','"+ + getCellValue(row.getCell(2))+"','"+ + getCellValue(row.getCell(3))+"','"+ + getCellValue(row.getCell(4))+"','"+ + getCellValue(row.getCell(5))+"','"+ + getCellValue(row.getCell(6))+"')"; + System.out.println("sql:" + insertSql.toString()); + SqlUtil.update(insertSql); + }else {//ϱ + + String selectSql = "SELECT SEQ FROM CHINT_WMS_DEFAULT_MATERIAL_RULE WHERE DRAWINGNO='"+getCellValue(row.getCell(4))+ + "' AND FACTORY='"+getCellValue(row.getCell(0))+"'"; + ResultSet rs = SqlUtil.read(selectSql); + String seq = ""; + while (rs.next()) { + seq = rs.getString(1); + } + if(seq.isEmpty()) { + String insertSql = "INSERT INTO CHINT_WMS_DEFAULT_MATERIAL_RULE(FACTORY,OBJECTNAME,SPECIFICATIONS,QUANTITY,DRAWINGNO,UNIT,REMARK) VALUES('"+ + getCellValue(row.getCell(0))+"','"+ + getCellValue(row.getCell(1))+"','"+ + getCellValue(row.getCell(2))+"','"+ + getCellValue(row.getCell(3))+"','"+ + getCellValue(row.getCell(4))+"','"+ + getCellValue(row.getCell(5))+"','"+ + getCellValue(row.getCell(6))+"')"; + + System.out.println("sql:" + insertSql.toString()); + SqlUtil.update(insertSql); + }else { + + int cellType = row.getCell(5).getCellType(); + int cellType1 = row.getCell(6).getCellType(); + System.out.println("type5==============================="+cellType); + System.out.println("cellType1==============================="+cellType1); + String updateSql = "UPDATE CHINT_WMS_DEFAULT_MATERIAL_RULE SET FACTORY='"+getCellValue(row.getCell(0))+ + "',OBJECTNAME='"+getCellValue(row.getCell(1))+ + "',SPECIFICATIONS='"+getCellValue(row.getCell(2))+ + "',QUANTITY='"+getCellValue(row.getCell(3))+ + "',DRAWINGNO='"+getCellValue(row.getCell(4))+ + "',UNIT='"+getCellValue(row.getCell(5))+ + "',REMARK='"+getCellValue(row.getCell(6))+"' WHERE DRAWINGNO='"+getCellValue(row.getCell(4))+ + "' AND FACTORY='"+getCellValue(row.getCell(0))+"'"; + System.out.println("sql:" + updateSql.toString()); + SqlUtil.update(updateSql); + } + + } + } + } + + } catch (IOException e2) { + e2.printStackTrace(); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + MessageBox.post("ʧϵԱ", "ʾ", 2); + } + MessageBox.post("ɹ", "ʾ", 2); + } else if (source.equals(this.btnOut)) { + File model_file = null; + File output_file = null; + + + + SqlUtil.SRMGetTCDataConnection(prefs); + + String factory = ""; + try { + factory = SAPUtil.getGroupID(session); + } catch (TCException e3) { + // TODO Auto-generated catch block + e3.printStackTrace(); + } + + sqlString = "SELECT * FROM CHINT_WMS_DEFAULT_MATERIAL_RULE WHERE FACTORY = '"+factory+"'"; + + // 1.ѯ + System.out.println("ѯ:" + sqlString.toString()); + + + List lists = new ArrayList(); + try{ + ResultSet result = SqlUtil.read(sqlString.toString()); + while (result.next()) { + ZxjcMATERIALBean ZxjcMATERIALBean = new ZxjcMATERIALBean(result.getInt(1), + result.getString(2), result.getString(3),result.getString(4) , result.getInt(5), + result.getString(6), result.getString(7),result.getString(8)); + System.out.println(ZxjcMATERIALBean); + // д˵ + lists.add(ZxjcMATERIALBean); + + } + + } catch (SQLException e1) { + e1.printStackTrace(); + } + + if (lists.size() == 0) { + MessageBox.post("δ鵽ݣ޷", "ʾ", 2); + return; + } else { + // ݵ߼ + + InputStream input; + String targetPath = null; + try { + String[] CHINT_WMS_ModelUid = session.getPreferenceService() + .getStringValues("CHINT_WMS_ModelUid"); + + if (CHINT_WMS_ModelUid == null || CHINT_WMS_ModelUid.length == 0) { + MessageBox.post("ѡCHINT_WMS_ModelUid顣", "ʾ", 2); + return; + } else { + String pathJTextFieldStr = pathJTextField.getText(); + if(pathJTextFieldStr == null || pathJTextFieldStr.isEmpty()) { + MessageBox.post("ѡҪ·", "ʾ", 2); + return; + } + + TCComponentDataset excel = (TCComponentDataset) session + .stringToComponent(CHINT_WMS_ModelUid[0]); + + model_file = ((TCComponentDataset) excel).getTcFiles()[0].getFmsFile(); + String date = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()); + String fileName = "WMSĬ_" + date + ".xlsx"; + + // Դļ· + Path sourcePath = Paths.get(model_file.getPath()); // 滻ΪԴļ· + // Ŀļ· + // targetPath = System.getProperty("user.home")+"\\Desktop"+"\\"+fileName; + targetPath = pathJTextFieldStr + "\\" + fileName; + // ʹFiles.copy()ļ + + // Files.copy(sourcePath, targetPath); + // ÿд + // makeFileWritable(System.getProperty("user.home")+"\\Desktop"+"\\"+fileName); + // output_file = new + // File(System.getProperty("user.home")+"\\Desktop"+"\\"+fileName); + + } + input = new FileInputStream(model_file); + XSSFWorkbook wb = new XSSFWorkbook(input);// ( + XSSFSheet sheet = wb.getSheetAt(0); + sheet.getSheetName(); + for (int i = 0; i < lists.size(); i++) { + ZxjcMATERIALBean ZxjcMATERIALBean = lists.get(i); + int row = i + 1; + XSSFRow titleRow = sheet.getRow(row); + // setCellValue(titleRow, 0, i + 1 + "", sheet, row); + // ź߼ + if(titleRow == null) { + titleRow = sheet.createRow(row); + } + setCellValue(titleRow, 0, ZxjcMATERIALBean.getFACTORY()); + setCellValue(titleRow, 1, ZxjcMATERIALBean.getOBJECTNAME()); + setCellValue(titleRow, 2, ZxjcMATERIALBean.getSPECIFICATIONS()); + setCellValue(titleRow, 3, ZxjcMATERIALBean.getQUANTITY()+""); + setCellValue(titleRow, 4, ZxjcMATERIALBean.getDRAWINGNO()); + setCellValue(titleRow, 5, ZxjcMATERIALBean.getUNIT()); + setCellValue(titleRow, 6, ZxjcMATERIALBean.getREMARK()); + + } + + + // дļ + try (FileOutputStream outputStream = new FileOutputStream(new File(targetPath))) { + wb.write(outputStream); + } catch (FileNotFoundException e1) { + System.err.println("Ŀļδҵ: " + targetPath); + e1.printStackTrace(); + } catch (IOException e2) { + System.err.println("дļʱ: " + targetPath); + e2.printStackTrace(); + } + + this.dispose(); + MessageBox.post("ɹ" + lists.size() + "ݣ", "ʾ", 2); + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + } + + } + + } + + /** + * ļд + * + * @param filePath + */ + public static void makeFileWritable(String filePath) { + File file = new File(filePath); + if (!file.exists()) { + System.out.println("File does not exist."); + return; + } + try { + // ļдtrue ʾдfalse ʾдnull ʾʹϵͳĬֵ + boolean success = file.setWritable(true, false); // ڶʾǷֻıļߵȨ + if (success) { + System.out.println("File permissions set to writable."); + } else { + System.out.println("Failed to set file as writable."); + } + } catch (SecurityException se) { + System.err.println("Security exception: " + se.getMessage()); + } + } + + public static void setCellValue(XSSFRow row, int colum, String str) { +// if (row == null) { +// // еһл߸ʾ +// row = sheet.createRow(rowNum); +// } + XSSFCell cell = row.getCell(colum); + if (cell == null) { + cell = row.createCell(colum); + } + cell.setCellValue(str); + } + + private JButton btnOut; + private JButton btnIn; + + private JPanel getBtnPanel() { + JPanel topPanel = new JPanel(); + topPanel.setLayout(new PropertyLayout()); + btnOut = new JButton(""); + btnIn = new JButton(""); + topPanel.add("1.1.center", new JLabel("")); + topPanel.add("2.1.center", new JLabel("")); + topPanel.add("2.3.center", new JLabel("")); + topPanel.add("2.5.center", new JLabel("")); + topPanel.add("2.2.center", btnIn); + + topPanel.add("2.4.center", btnOut); + return topPanel; + } + + // ѯ + private JPanel getTopPanel() { + // TODO Auto-generated method stub + JPanel topPanel = new JPanel(); + topPanel.setLayout(new PropertyLayout()); + topPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); + + topPanel.add("1.1.left.center", new JLabel("")); + + topPanel.add("2.1.left.center", new JLabel("ļλã")); + topPanel.add("2.2.left.center", pathJTextField); + topPanel.add("2.3.left.center", outputButton); + + // עťĵ¼ + outputButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + // ļѡ + JFileChooser fileChooser = new JFileChooser(); + // ļѡֻѡļ + fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); + int result = fileChooser.showOpenDialog(topPanel); + if (result == JFileChooser.APPROVE_OPTION) { + // ȡûѡ· + String selectedPath = fileChooser.getSelectedFile().getPath(); + // ûѡ· + System.out.println("ûѡ·" + selectedPath); + pathJTextField.setText(selectedPath); + } + } + }); + return topPanel; + } + + public String getCellValue(Cell cell) { + if(cell == null) { + return ""; + }else { + int cellType = cell.getCellType(); + if(cellType == 1) {//string + return cell.getStringCellValue(); + }else if(cellType == 3 || cellType == 0) {//num + double numericCellValue = cell.getNumericCellValue(); + System.out.println("================================numericCellValue===="+numericCellValue); + if(numericCellValue == 0.0) { + return ""; } + return cell.getNumericCellValue()+""; + } + } + return ""; + } +} diff --git a/com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/QueryZxjcHandler.java b/com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/QueryZxjcHandler.java new file mode 100644 index 0000000..6500b02 --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/QueryZxjcHandler.java @@ -0,0 +1,30 @@ +package com.connor.chint.yunpi.command; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; + +import com.teamcenter.rac.aif.AbstractAIFApplication; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCSession; + + + +import com.connor.chint.yunpi.KCommand; +import com.teamcenter.rac.aif.AbstractAIFApplication; + +public class QueryZxjcHandler extends KCommand { + + public QueryZxjcHandler(AbstractAIFApplication app, String commandId, String actionInfo) { + super(app, commandId, actionInfo); + TCSession session = (TCSession) app.getSession(); + try { + + new QueryZxjcFram(session); + }catch(Exception e) { + e.printStackTrace(); + } + } +} + + diff --git a/com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/ZxjcMATERIALBean.java b/com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/ZxjcMATERIALBean.java new file mode 100644 index 0000000..f1e531a --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/chint/yunpi/command/ZxjcMATERIALBean.java @@ -0,0 +1,84 @@ +package com.connor.chint.yunpi.command; + +public class ZxjcMATERIALBean { + private int SEQ; + private String FACTORY; + private String OBJECTNAME; + private String SPECIFICATIONS; + private int QUANTITY; + private String DRAWINGNO; + private String UNIT; + private String REMARK; + public int getSEQ() { + return SEQ; + } + public void setSEQ(int sEQ) { + SEQ = sEQ; + } + public String getFACTORY() { + return FACTORY; + } + public void setFACTORY(String fACTORY) { + FACTORY = fACTORY; + } + public String getOBJECTNAME() { + return OBJECTNAME; + } + public void setOBJECTNAME(String oBJECTNAME) { + OBJECTNAME = oBJECTNAME; + } + public String getSPECIFICATIONS() { + return SPECIFICATIONS; + } + public void setSPECIFICATIONS(String sPECIFICATIONS) { + SPECIFICATIONS = sPECIFICATIONS; + } + public int getQUANTITY() { + return QUANTITY; + } + public void setQUANTITY(int qUANTITY) { + QUANTITY = qUANTITY; + } + public String getDRAWINGNO() { + return DRAWINGNO; + } + public void setDRAWINGNO(String dRAWINGNO) { + DRAWINGNO = dRAWINGNO; + } + public String getUNIT() { + return UNIT; + } + public void setUNIT(String uNIT) { + UNIT = uNIT; + } + public String getREMARK() { + return REMARK; + } + public void setREMARK(String rEMARK) { + REMARK = rEMARK; + } + public ZxjcMATERIALBean(int sEQ, String fACTORY, String oBJECTNAME, String sPECIFICATIONS, int qUANTITY, + String dRAWINGNO, String uNIT, String rEMARK) { + super(); + SEQ = sEQ; + FACTORY = fACTORY; + OBJECTNAME = oBJECTNAME; + SPECIFICATIONS = sPECIFICATIONS; + QUANTITY = qUANTITY; + DRAWINGNO = dRAWINGNO; + UNIT = uNIT; + REMARK = rEMARK; + } + public ZxjcMATERIALBean() { + super(); + } + @Override + public String toString() { + return "ZxjcMATERIALBean [SEQ=" + SEQ + ", FACTORY=" + FACTORY + ", OBJECTNAME=" + OBJECTNAME + + ", SPECIFICATIONS=" + SPECIFICATIONS + ", QUANTITY=" + QUANTITY + ", DRAWINGNO=" + DRAWINGNO + + ", UNIT=" + UNIT + ", REMARK=" + REMARK + "]"; + } + + + +} diff --git a/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/CenterRenderer.java b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/CenterRenderer.java new file mode 100644 index 0000000..c072125 --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/CenterRenderer.java @@ -0,0 +1,25 @@ +package com.connor.plm.GZXQ; + +import javax.swing.*; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellRenderer; +import java.awt.*; + +public class CenterRenderer extends DefaultTableCellRenderer implements TableCellRenderer { + + public CenterRenderer() { + // ˮƽ뷽ʽΪ + setHorizontalAlignment(SwingConstants.CENTER); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, + int row, int column) { + // øʵ֣ȻҪһԶ + Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + + // ҪԶ壬塢ɫ + return c; + } +} diff --git a/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/CustomHeaderRenderer.java b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/CustomHeaderRenderer.java new file mode 100644 index 0000000..9adf622 --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/CustomHeaderRenderer.java @@ -0,0 +1,24 @@ +package com.connor.plm.GZXQ; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.table.TableCellRenderer; + +import java.awt.*; + +public class CustomHeaderRenderer extends JLabel implements TableCellRenderer { + + private Border border = new LineBorder(Color.black, 1); // ñ߿ɫͿ + + public CustomHeaderRenderer() { + setOpaque(true); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, + int row, int column) { + setText(value.toString()); + setBorder(border); + return this; + } +} diff --git a/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQController.java b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQController.java new file mode 100644 index 0000000..97eae7c --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQController.java @@ -0,0 +1,511 @@ +package com.connor.plm.GZXQ; + + + +/** + * =============================================================================== + * Copyright (c) 2012-2024 CONNOR lijh. Unpublished - All Rights Reserved + * =============================================================================== + * File description: + * + * GZXQController.java װѯ + * + * =============================================================================== + * DATE Name Description of Change + * + * 2024-06-13 ljh create + * =============================================================================== + */ + + + + + +import java.awt.Component; +import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.casic.javafx.control.DateTimePicker; + +import com.chint.plm.fxUtil.KFXPanel; +import com.chint.plm.fxUtil.KFXPanelController; +import com.connor.chint.sap2.util.SAPUtil; +import com.connor.chint.sap2.util.SqlUtil; +import com.connor.plm.CostListManagement.pojo.GzxqBean; +import com.teamcenter.rac.aif.AbstractAIFApplication; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.MessageBox; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.control.DatePicker; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableRow; +import javafx.scene.control.TableView; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.control.TitledPane; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.Pane; + + +public class GZXQController extends KFXPanelController { + private Connection conn; + private int pageNum;// ҳʾǰڼҳ + private List> tableBeans = new ArrayList>();//洢tableҳ + + private String PlanTime;// + + @FXML + private TextField jTextField8; + + @FXML + private BorderPane tablePane; + + @FXML + private DatePicker jTextField7; + + @FXML + private Button jButton2; + + @FXML + private Button wy; + + @FXML + private TextField jTextField9; + + @FXML + private TitledPane titlePaneResult; + + @FXML + private TextField jTextField4; + + @FXML + private TextField jTextField3; + + @FXML + private Button sy; + + @FXML + private TextField jTextField6; + + @FXML + private GridPane gridPaneCondition; + + @FXML + private TextField jTextField5; + + @FXML + private TableView tableView; + + @FXML + private TextField jTextField10; + + @FXML + private Button syy; + + @FXML + private BorderPane bpane; + + @FXML + private TitledPane titlePaneCondition; + + @FXML + private GridPane gridPaneResult; + + @FXML + private Button xyy; + + @FXML + private TextField jTextField2; + + @FXML + private TextField jTextField1; + + @FXML + private Pane pane; + + // table + private TableColumn tc_1 = new TableColumn(""); + + private TableColumn tc_2 = new TableColumn(""); + + private TableColumn tc_3 = new TableColumn("ʵID"); + + private TableColumn tc_4 = new TableColumn("ո"); + + private TableColumn tc_5 = new TableColumn("ƻʱ"); + + private TableColumn tc_6 = new TableColumn("ί"); + + private TableColumn tc_7 = new TableColumn("Ҫ"); + + private TableColumn tc_8 = new TableColumn("OA"); + + private TableColumn tc_9 = new TableColumn("װ"); + + private TableColumn tc_10 = new TableColumn("״̬"); + + + + + + + + @FXML + private ScrollPane scrollPane; + + @FXML + private BorderPane resultBorder; + @FXML + private BorderPane topBorder; + private GZXQFrame frame; + private DateTimePicker dateTimeStart; + private DateTimePicker dateTimeEnd; + protected AbstractAIFApplication app; + private TCSession session; + + /** + * ʼ + */ + @Override + public void initData(KFXPanel paramKFXPanel) throws Exception { + // TODO Auto-generated method stub + + frame = (GZXQFrame) paramKFXPanel.getParentDialog(); + addWindListener(frame); + frame.setMaximumSize(frame.getMaximumSize()); + System.out.println("frame==>" + frame); + this.app = AIFUtility.getCurrentApplication(); + this.session = (TCSession) app.getSession(); + dateTimeStart = new DateTimePicker(); + dateTimeEnd = new DateTimePicker(); + +//ıĸ߶ + jTextField1.setPrefHeight(30); + jTextField2.setPrefHeight(30); + jTextField3.setPrefHeight(30); + jTextField4.setPrefHeight(30); + jTextField5.setPrefHeight(30); + jTextField6.setPrefHeight(30); + jTextField7.setPrefHeight(30); + jTextField7.setPrefWidth(244); + jTextField8.setPrefHeight(30); + jTextField9.setPrefHeight(30); + jTextField10.setPrefHeight(30); + + + // аbean + tc_1.setSortable(false); + tc_2.setSortable(false); + tc_3.setSortable(false); + tc_4.setSortable(false); + tc_5.setSortable(false); + tc_6.setSortable(false); + tc_7.setSortable(false); + tc_8.setSortable(false); + tc_9.setSortable(false); + tc_10.setSortable(false); + // аbean + tc_1.setCellValueFactory(new PropertyValueFactory("xh")); + tc_2.setCellValueFactory(new PropertyValueFactory("sfId"));// cTaskNum + tc_3.setCellValueFactory(new PropertyValueFactory("instanceId")); + tc_4.setCellValueFactory(new PropertyValueFactory("head")); + tc_5.setCellValueFactory(new PropertyValueFactory("scheduledtime")); + tc_6.setCellValueFactory(new PropertyValueFactory("reason")); + tc_7.setCellValueFactory(new PropertyValueFactory("jsgyrequirements")); + tc_8.setCellValueFactory(new PropertyValueFactory("link")); + tc_9.setCellValueFactory(new PropertyValueFactory("cjgzxq")); + tc_10.setCellValueFactory(new PropertyValueFactory("state")); + + //tableп + tc_1.prefWidthProperty().bind(tableView.widthProperty().multiply(0.04)); + tc_2.prefWidthProperty().bind(tableView.widthProperty().multiply(0.07)); + tc_3.prefWidthProperty().bind(tableView.widthProperty().multiply(0.12)); + tc_4.prefWidthProperty().bind(tableView.widthProperty().multiply(0.09)); + tc_5.prefWidthProperty().bind(tableView.widthProperty().multiply(0.1)); + tc_6.prefWidthProperty().bind(tableView.widthProperty().multiply(0.2)); + tc_7.prefWidthProperty().bind(tableView.widthProperty().multiply(0.12)); + tc_8.prefWidthProperty().bind(tableView.widthProperty().multiply(0.09)); + tc_9.prefWidthProperty().bind(tableView.widthProperty().multiply(0.09)); + tc_10.prefWidthProperty().bind(tableView.widthProperty().multiply(0.08)); + +// //Ƿɱ༭ +// tc_1.setEditable(false); +// tc_2.setEditable(false); +// tc_3.setEditable(false); +// tc_4.setEditable(false); +// tc_5.setEditable(false); +// tc_6.setEditable(false); +// tc_7.setEditable(false); +// tc_8.setEditable(true); +// tc_9.setEditable(true); +// tc_10.setEditable(false); + + + + //ѴжtableмtableView + tableView.getColumns().addAll(tc_1, tc_2, tc_3, tc_4, tc_5, tc_6, tc_7, + tc_8, tc_9, tc_10); + + + +// tableView.setMaxHeight(pageNum); + } + + + // תҳ + @FXML + void firstBtnAction(ActionEvent event) { + pageNum = 0; + ObservableList data = FXCollections.observableArrayList(tableBeans.get(0)); + tableView.getItems().clear(); + tableView.setItems(data); + } + + // תһҳ + @FXML + void lastBtnAction(ActionEvent event) { + if (pageNum > 0) { + pageNum = pageNum - 1; + } + ObservableList data = FXCollections.observableArrayList(tableBeans.get(pageNum)); + tableView.getItems().clear(); + tableView.setItems(data); + } + + // תһҳ + @FXML + void nextBtnAction(ActionEvent event) { + if (pageNum < tableBeans.size() - 1) { + pageNum = pageNum + 1; + } + ObservableList data = FXCollections.observableArrayList(tableBeans.get(pageNum)); + tableView.getItems().clear(); + tableView.setItems(data); + } + + // תβҳ + @FXML + void tailBtnAction(ActionEvent event) { + pageNum = tableBeans.size() - 1; + ObservableList data = FXCollections.observableArrayList(tableBeans.get(pageNum)); + tableView.getItems().clear(); + tableView.setItems(data); + } + + /** + * @param frame + * @function ҳļ + */ + private void addWindListener(GZXQFrame frame) { + // TODO Auto-generated method stub + + frame.addComponentListener(new ComponentListener() { + + @Override + public void componentShown(ComponentEvent e) { + // TODO Auto-generated method stub + + } + + /** + * ʱpaneҲô + */ + @Override + public void componentResized(ComponentEvent e) { + // TODO Auto-generated method stub +// System.out.println("=============="); + Component component = e.getComponent(); + System.out.println("component==>" + component); + double width = component.getSize().getWidth(); +// // double width = primaryStage.getWidth(); + System.out.println("width==>" + width); + pane.setPrefWidth(width * 0.98); + bpane.setPrefWidth(width * 0.98); + titlePaneCondition.setPrefWidth(width * 0.98); + titlePaneResult.setPrefWidth(width * 0.98); + gridPaneCondition.setPrefWidth(width * 0.97); + gridPaneCondition.setPrefWidth(width * 0.97); + tablePane.setPrefWidth(width * 0.98); + tableView.setPrefWidth(width * 0.97); + gridPaneResult.setPrefWidth(width * 0.97); +// refTable.setPrefWidth(width * 0.97); + } + + @Override + public void componentMoved(ComponentEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void componentHidden(ComponentEvent e) { + // TODO Auto-generated method stub + + } + }); + + } + + @FXML + void cxAction(ActionEvent event) throws ParseException { + +//ݿ + String[] prefs = session.getPreferenceService().getStringValues("database_tc"); + System.out.println("===============ʼtcݿ==============="); + long time31 = System.nanoTime(); + conn = SqlUtil.getTCDataConnection(prefs); + long time32 = System.nanoTime(); + System.out.println("===============tcݿʱ(ms) " + ((time32 - time31) / 1000000L)+"==============="); + + + System.out.println("======================"); + tableView.getItems().clear(); + tableBeans.clear(); + String factory = ""; + // ƴӲѯ + String sql = "select * from \"CHINT_ FROCK\" where 1=1 "; + try { + factory = SAPUtil.getGroupID(session); + sql = "select * from \"CHINT_ FROCK\" where FACTORY = '"+factory+"' "; + } catch (TCException e1) { + // TODO Auto-generated catch block + System.out.println("ȡ֯ʧ"); + e1.printStackTrace(); + } + + if(jTextField1.getText()!=null && !"".equals(jTextField1.getText().trim())) { + sql += "and instanceId = \'" + jTextField1.getText() +"\'"; + } + if(jTextField2.getText()!=null && !"".equals(jTextField2.getText().trim())) { + sql += "and \"HEAD\" = \'" + jTextField2.getText() +"\'"; + } + if(jTextField3.getText()!=null && !"".equals(jTextField3.getText().trim())) { + sql += "and \"MODEL\" = \'" + jTextField3.getText() +"\'"; + } + if(jTextField4.getText()!=null && !"".equals(jTextField4.getText().trim())) { + sql += "and \"TOOLNUMBER\" = \'" + jTextField4.getText() +"\'"; + } + if(jTextField5.getText()!=null && !"".equals(jTextField5.getText().trim())) { + sql += "and \"TOOLNAME\" = \'" + jTextField5.getText() +"\'"; + } + if(jTextField8.getText()!=null && !"".equals(jTextField8.getText().trim())) { + sql += "and sfId = \'" + jTextField8.getText() +"\'"; + } + + PlanTime = jTextField7.getEditor().getText(); + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-M-dd"); + + if (PlanTime.length() > 0) { + if(PlanTime.contains("-")) { + PlanTime = PlanTime.replace("-", "/"); + System.out.println("PlanTime==========="+PlanTime); + //Date date = sdf2.parse(PlanTime); + sql += "and \"SCHEDULEDTIME\" like \'%" + PlanTime +"%\'"; + } + } + + +// if(jTextField7.getText()!=null && !"".equals(jTextField7.getText().trim())) { +// sql += "and \"SCHEDULEDTIME\" = \'" + jTextField7.getText() +"\'"; +// } + if(jTextField9.getText()!=null && !"".equals(jTextField9.getText().trim())) { + sql += "and \"PRODUCTNAME\" = \'" + jTextField9.getText() +"\'"; + } + if(jTextField10.getText()!=null && !"".equals(jTextField10.getText().trim())) { + sql += "and \"TOOLINGLEVEL\" = \'" + jTextField10.getText() +"\'"; + } + if(jTextField6.getText()!=null && !"".equals(jTextField6.getText().trim())) { + sql += "and \"REASON\" = \'" + jTextField6.getText() +"\'"; + } + System.out.println("sql:"+sql); + PreparedStatement statement; + + + try { + int z=1; + statement = conn.prepareStatement(sql); + ResultSet res = statement.executeQuery(); + List quotations = new ArrayList(); + //ѯݽ + while (res.next()) { + GzxqBean gzxqBean = new GzxqBean( + res.getString("instanceId") != null ? res.getString("instanceId") : "", + res.getString("factory") != null ? res.getString("factory") : "", + res.getString("sfId") != null ? res.getString("sfId") : "", + res.getString("head") != null ? res.getString("head") : "", + res.getString("scheduledtime") != null ? res.getString("scheduledtime") : "", + res.getString("model") != null ? res.getString("model") : "", + res.getString("productname") != null ? res.getString("productname") : "", + res.getString("toolnumber") != null ? res.getString("toolnumber") : "", + res.getString("toolname") != null ? res.getString("toolname") : "", + res.getString("toolinglevel") != null ? res.getString("toolinglevel") : "", + res.getString("reason") != null ? res.getString("reason") : "", + res.getString("jsgyrequirements") != null ? res.getString("jsgyrequirements") : "", + res.getString("link") != null ? res.getString("link") : "", + res.getString("state") != null ? res.getString("state") : "",z+"" + ,session); + if(z % 10 ==1) { + quotations = new ArrayList(); + tableBeans.add(quotations); + } + quotations.add(gzxqBean); + z = z+1; + } + pageNum = 0; + + + if(tableBeans == null || tableBeans.size() <= 0 || tableBeans.get(0).size() <= 0) { + //MessageBox.post("δѯӦװ","ʾ",2); + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle("ʾ"); + alert.setHeaderText("δѯӦװ"); + //alert.setContentText(""); + alert.showAndWait(); + }else { + ObservableList data = FXCollections.observableArrayList(tableBeans.get(0)); + + System.out.println("======================"); + tableView.getItems().clear(); + tableView.setItems(data); + } + + + + + tableView.setRowFactory(tv -> { + //TODO и + TableRow row = new TableRow<>(); + row.setPrefHeight(50); + return row; + }); + + + }catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + +} diff --git a/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQFrame.java b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQFrame.java new file mode 100644 index 0000000..c62bd42 --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQFrame.java @@ -0,0 +1,26 @@ +package com.connor.plm.GZXQ; + +import java.awt.BorderLayout; +import java.awt.Dimension; + +import com.chint.plm.fxUtil.KFrame; + +import javafx.embed.swing.JFXPanel; + +public class GZXQFrame extends KFrame { + + public GZXQFrame() { + super(); + } + + @Override + protected void initUI() throws Exception { + this.setTitle("װ"); + this.setLayout(new BorderLayout()); + this.setPreferredSize(new Dimension(1490, 900)); + JFXPanel panel = new JFXPanel(); + panel.setScene(new GZXQPanel(this).getScene()); + this.add(BorderLayout.CENTER, panel); + } + +} diff --git a/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQPanel.java b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQPanel.java new file mode 100644 index 0000000..b2cd6d1 --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/GZXQPanel.java @@ -0,0 +1,13 @@ +package com.connor.plm.GZXQ; + +import java.awt.Window; + +import com.chint.plm.fxUtil.KFXPanel; + +public class GZXQPanel extends KFXPanel { + + public GZXQPanel(Window dialog) { + super(dialog, "a.fxml"); + // TODO Auto-generated constructor stub + } +} \ No newline at end of file diff --git a/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/MultiLineTableCellRenderer.java b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/MultiLineTableCellRenderer.java new file mode 100644 index 0000000..7898901 --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/MultiLineTableCellRenderer.java @@ -0,0 +1,129 @@ +package com.connor.plm.GZXQ; +//import javax.swing.*; +//import javax.swing.table.*; +//import java.awt.*; +// +//public class MultiLineTableCellRenderer extends JTextArea implements TableCellRenderer { +// +// public MultiLineTableCellRenderer() { +// // JTextArea +// this.setEditable(false); +// this.setLineWrap(true); // Զ +// this.setWrapStyleWord(true); // ֵʵԣڵм任 +// } +// +// @Override +// public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { +// // ʽʽӰʾ +// this.setText(value == null ? "" : value.toString()); +// +// // ԸҪ塢ɫʽ +// if (isSelected) { +// this.setBackground(table.getSelectionBackground()); +// this.setForeground(table.getSelectionForeground()); +// } else { +// this.setBackground(table.getBackground()); +// this.setForeground(table.getForeground()); +// } +// +// return this; +// } +//} + + +//import javax.swing.*; +//import javax.swing.table.DefaultTableCellRenderer; +//import javax.swing.table.TableCellRenderer; +//import java.awt.*; +// +//public class MultiLineTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer { +// +// private JScrollPane scrollPane; +// +// public MultiLineTableCellRenderer() { +// JTextArea textArea = new JTextArea(); +// textArea.setEditable(false); // ֹ༭ +// textArea.setLineWrap(true); // +// textArea.setWrapStyleWord(true); // л +// +// scrollPane = new JScrollPane(textArea); +// scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); +// scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); +// scrollPane.setBorder(null); // Ƴ߿ +// } +// +// @Override +// public Component getTableCellRendererComponent(JTable table, Object value, +// boolean isSelected, boolean hasFocus, +// int row, int column) { +// JTextArea textArea = (JTextArea) scrollPane.getViewport().getView(); +// textArea.setText(value == null ? "" : value.toString()); +// +// // ѡ״̬ɫ +// if (isSelected) { +// textArea.setBackground(table.getSelectionBackground()); +// textArea.setForeground(table.getSelectionForeground()); +// } else { +// textArea.setBackground(table.getBackground()); +// textArea.setForeground(table.getForeground()); +// } +// +// return scrollPane; +// } +//} + +import javax.swing.*; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellRenderer; +import java.awt.*; + +public class MultiLineTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer { + + private JTextArea textArea; + private JScrollPane scrollPane; + + public MultiLineTableCellRenderer() { + textArea = new JTextArea(); + textArea.setEditable(false); + textArea.setLineWrap(true); + textArea.setWrapStyleWord(true); + + scrollPane = new JScrollPane(textArea); + scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane.setBorder(null); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, + int row, int column) { + textArea.setText(value == null ? "" : value.toString()); + + // ѡ״̬ɫ + if (isSelected) { + textArea.setBackground(table.getSelectionBackground()); + textArea.setForeground(table.getSelectionForeground()); + } else { + textArea.setBackground(table.getBackground()); + textArea.setForeground(table.getForeground()); + } + + // ȡԪѡС + Dimension preferredSize = table.getColumnModel().getColumn(column).getPreferredWidth() > 0 ? + new Dimension(table.getColumnModel().getColumn(column).getPreferredWidth(), table.getRowHeight(row)) : + new Dimension(table.getColumnModel().getColumn(column).getWidth(), table.getRowHeight(row)); + + // JScrollPaneĴС + scrollPane.setPreferredSize(preferredSize); + scrollPane.setMaximumSize(preferredSize); + scrollPane.setMinimumSize(preferredSize); + scrollPane.setSize(preferredSize); + + // ¼JScrollPaneIJ + scrollPane.revalidate(); + scrollPane.repaint(); + + return scrollPane; + } +} \ No newline at end of file diff --git a/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/a - 副本.fxml b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/a - 副本.fxml new file mode 100644 index 0000000..d38317f --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/a - 副本.fxml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
diff --git a/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/a.fxml b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/a.fxml new file mode 100644 index 0000000..2d5bcbd --- /dev/null +++ b/com.connor.chint.wuhan/src/com/connor/plm/GZXQ/a.fxml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+