package com.example.client.service; import com.example.client.dto.ColumnDto; import com.example.client.utils.ComplexTable; import com.example.server.progressTrack.Dto.StatistDismantDto; import com.example.server.progressTrack.Dto.StatistProductDto; import com.example.server.progressTrack.service.DjJdgzNetworkLevel3Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.swing.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; import java.util.List; @Service public class StatisProductService { @Autowired DjJdgzNetworkLevel3Service djJdgzNetworkLevel3Service; public void createTable(JFrame jFrame, Long level1Id, String type) { JFrame frame1 = new JFrame("设备进度统计总表"); frame1.setSize(1500, 800); frame1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); frame1.setLocationRelativeTo(null); frame1.setVisible(true); frame1.addWindowListener(new WindowAdapter() { //添加第二个界面的关闭事件: public void windowClosing(WindowEvent e) { //添加事件: jFrame.setEnabled(true);//将主界面再设置为可操作的 } }); List list = djJdgzNetworkLevel3Service.getStatist(level1Id, type); if (type.equals("改进性修理") || type.equals("改换装")) { Object[][] headerRows = new Object[2][4]; headerRows[0] = new Object[]{"部门/专业", "各节点的设备个数", ComplexTable.mergeCellX, "节点全部完成个数"}; //此处2-5是不会显示出来的,因为1-4向下合并了一行 + 向右合并了一列 , 而2-5被这个矩形范围包括了 headerRows[1] = new Object[]{ComplexTable.mergeCellY, "设备到厂", "设备安装", ComplexTable.mergeCellY}; String[][] body = new String[list.size()][4]; for (int i = 0; i < list.size(); i++) { StatistProductDto data = list.get(i); body[i][0] = data.getName(); body[i][1] = String.valueOf(data.getDcsl()); body[i][2] = String.valueOf(data.getAzsl()); body[i][3] = String.valueOf(data.getWcsl()); } JScrollPane scrollTable = new JScrollPane(new ComplexTable(headerRows, body, 367)); frame1.add(scrollTable); frame1.setVisible(true); } else if (type.equals("不复装设备")) { Object[][] headerRows = new Object[2][6]; headerRows[0] = new Object[]{"部门/专业", "各节点的设备个数", ComplexTable.mergeCellX, ComplexTable.mergeCellX, ComplexTable.mergeCellX, "节点全部完成个数"}; //此处2-5是不会显示出来的,因为1-4向下合并了一行 + 向右合并了一列 , 而2-5被这个矩形范围包括了 headerRows[1] = new Object[]{ComplexTable.mergeCellY, "拆卸出舱", "入库", "存放位置","移交T队", ComplexTable.mergeCellY}; String[][] body = new String[list.size()][6]; for (int i = 0; i < list.size(); i++) { StatistProductDto data = list.get(i); body[i][0] = data.getName(); body[i][1] = String.valueOf(data.getCcsl()); body[i][2] = String.valueOf(data.getRksl()); body[i][3] = String.valueOf(data.getCfsl()); body[i][4] = String.valueOf(data.getYjsl()); body[i][5] = String.valueOf(data.getWcsl()); } JScrollPane scrollTable = new JScrollPane(new ComplexTable(headerRows, body, 245)); frame1.add(scrollTable); frame1.setVisible(true); } else if (type.equals("修理")) { Object[][] headerRows = new Object[2][7]; headerRows[0] = new Object[]{"部门/专业", "各节点的设备个数", ComplexTable.mergeCellX, ComplexTable.mergeCellX, ComplexTable.mergeCellX, ComplexTable.mergeCellX, "节点全部完成个数"}; //此处2-5是不会显示出来的,因为1-4向下合并了一行 + 向右合并了一列 , 而2-5被这个矩形范围包括了 headerRows[1] = new Object[]{ComplexTable.mergeCellY, "设备拆卸出舱", "设备分交", "拆检鉴定", "设备返厂", "回装", ComplexTable.mergeCellY}; String[][] body = new String[list.size()][7]; for (int i = 0; i < list.size(); i++) { StatistProductDto data = list.get(i); body[i][0] = data.getName(); body[i][1] = String.valueOf(data.getCxsl()); body[i][2] = String.valueOf(data.getFjsl()); body[i][3] = String.valueOf(data.getJdsl()); body[i][4] = String.valueOf(data.getFcsl()); body[i][5] = String.valueOf(data.getHzsl()); body[i][6] = String.valueOf(data.getWcsl()); } JScrollPane scrollTable = new JScrollPane(new ComplexTable(headerRows, body, 210)); frame1.add(scrollTable); frame1.setVisible(true); } } }