package com.example.client.service; import com.example.client.dto.ColumnDto; import com.example.client.dto.JComboBoxItem; import com.example.client.model.TableButton; import com.example.client.utils.CommonTable; import com.example.client.utils.GBC; import com.example.client.utils.MultiSelectComboBox; import com.example.server.cabin.service.CabinService; import com.example.server.progressTrack.Dto.TableNodeDto; import com.example.server.progressTrack.model.DjJdgzNetworkLevel1; import com.example.server.progressTrack.model.DjJdgzNetworkLevel3; import com.example.server.progressTrack.model.DjJdgzShip; import com.example.server.progressTrack.service.*; import com.example.server.teamGroup.service.SysTeamGroupClassService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.swing.*; import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.awt.event.*; import java.util.List; import java.util.*; @Service public class Level3View2Service { @Autowired private DjJdgzNetworkLevel3Service level3Service; @Autowired private DjJdgzShipService djJdgzShipService; @Autowired private SysTeamGroupClassService sysTeamGroupClassService; @Autowired private CabinService cabinService; private JTable table; private List list; private Map shipMap = new HashMap<>(); private List columnDto; public JPanel createTable(Integer width, Integer height) { JPanel panel = new JPanel(); JPanel topJpanel = new JPanel(); GridBagLayout layout = new GridBagLayout(); topJpanel.setLayout(layout); topJpanel.setPreferredSize(new Dimension(width, 100)); topJpanel.setBackground(Color.WHITE); JPanel centerJpanel = new JPanel(); centerJpanel.setPreferredSize(new Dimension(width - 20, height - 100)); centerJpanel.setBackground(Color.WHITE); panel.add(topJpanel, BorderLayout.NORTH); panel.add(centerJpanel, BorderLayout.CENTER); List shipList = djJdgzShipService.getList(); JComboBoxItem[] teamList = sysTeamGroupClassService.getTeamList(null); JComboBoxItem[] cabinList = cabinService.getList(); JComboBoxItem[] deptList = sysTeamGroupClassService.getDeptList(); String[] typeList = new String[]{ "改装", "加装", "换装", "改进性修理","" }; JLabel JLabel0 = new JLabel("工程"); JComboBox comboBox = new JComboBox(); comboBox.setPreferredSize(new Dimension(185, 28)); JLabel JLabel1 = new JLabel("部门"); JComboBox comboBox1 = new JComboBox<>(deptList); comboBox1.setPreferredSize(new Dimension(185, 28)); JComboBoxItem[] teamList1 = sysTeamGroupClassService.getTeamList(deptList[0].getId()); JLabel JLabel2 = new JLabel("专业"); JComboBox comboBox2 = new JComboBox<>(teamList1); comboBox2.setPreferredSize(new Dimension(185, 28)); JLabel JLabel3 = new JLabel("舱室"); JComboBox comboBox3 = new JComboBox<>(cabinList); comboBox3.setPreferredSize(new Dimension(185, 28)); JLabel JLabel4 = new JLabel("类别"); JComboBox comboBox4 = new JComboBox<>(typeList); comboBox4.setPreferredSize(new Dimension(185, 28)); JTextField sb = new JTextField(16); JButton query = new JButton("查询"); topJpanel.add(JLabel0, new GBC(0, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); topJpanel.add(comboBox, new GBC(1, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); topJpanel.add(JLabel1, new GBC(2, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); topJpanel.add(comboBox1, new GBC(3, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); topJpanel.add(JLabel2, new GBC(4, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); topJpanel.add(comboBox2, new GBC(5, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); topJpanel.add(JLabel3, new GBC(6, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); topJpanel.add(comboBox3, new GBC(7, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); topJpanel.add(JLabel4, new GBC(8, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); topJpanel.add(comboBox4, new GBC(9, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); topJpanel.add(sb, new GBC(0, 1, 2, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); topJpanel.add(query, new GBC(2, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); list = level3Service.getNodeList(shipList.get(0).getId(), deptList[0].getId(), teamList[0].getId(), cabinList[0].getId(), typeList[0],null); columnDto = new ArrayList<>(); //columnDto.add(new ColumnDto("ID", "id", -1, null,false)); columnDto.add(new ColumnDto("序号", "", 227, "autoCreate", false, null, null)); //columnDto.add(new ColumnDto("工程", "ProjectName", 150, null, false, null, null)); columnDto.add(new ColumnDto("设备名称", "name", 227, null, true, null, null)); columnDto.add(new ColumnDto("设备拆卸出舱", "time1Color", 227, "Circle", true, null, null)); columnDto.add(new ColumnDto("设备分交", "time2Color", 227, "Circle", true, null, null)); columnDto.add(new ColumnDto("拆检鉴定", "time3Color", 227, "Circle", true, null, null)); columnDto.add(new ColumnDto("设备返厂", "time4Color", 227, "Circle", true, null, null)); columnDto.add(new ColumnDto("回装", "time5Color", 227, "Circle", true, null, null)); table = CommonTable.createCommonTable(list, columnDto); table.setRowHeight(25); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); comboBox.addItemListener(new ItemListener() { public void itemStateChanged(final ItemEvent event) { String content = comboBox.getSelectedItem().toString(); JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem(); JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem(); JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem(); String type = comboBox4.getSelectedItem().toString(); Long shipId = shipMap.get(content); list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type,null); CommonTable.refreshTable(list, columnDto, table); table.setRowHeight(25); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); } }); comboBox1.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { JComboBoxItem selectedItem = (JComboBoxItem) comboBox1.getSelectedItem(); if (selectedItem.getId() != null) { long selectedId = selectedItem.getId(); JComboBoxItem[] teamList = sysTeamGroupClassService.getTeamList(selectedId); comboBox2.setModel(new DefaultComboBoxModel<>(teamList)); comboBox2.setSelectedIndex(0); String content = comboBox.getSelectedItem().toString(); JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem(); JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem(); JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem(); String type = comboBox4.getSelectedItem().toString(); Long shipId = shipMap.get(content); list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type,null); CommonTable.refreshTable(list, columnDto, table); table.setRowHeight(25); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); } } } }); comboBox2.addItemListener(new ItemListener() { public void itemStateChanged(final ItemEvent event) { String content = comboBox.getSelectedItem().toString(); JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem(); JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem(); JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem(); String type = comboBox4.getSelectedItem().toString(); Long shipId = shipMap.get(content); list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type,null); CommonTable.refreshTable(list, columnDto, table); table.setRowHeight(25); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); } }); comboBox3.addItemListener(new ItemListener() { public void itemStateChanged(final ItemEvent event) { String content = comboBox.getSelectedItem().toString(); JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem(); JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem(); JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem(); String type = comboBox4.getSelectedItem().toString(); Long shipId = shipMap.get(content); list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type,null); CommonTable.refreshTable(list, columnDto, table); table.setRowHeight(25); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); } }); comboBox4.addItemListener(new ItemListener() { public void itemStateChanged(final ItemEvent event) { String content = comboBox.getSelectedItem().toString(); JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem(); JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem(); JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem(); String type = comboBox4.getSelectedItem().toString(); Long shipId = shipMap.get(content); list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type,null); CommonTable.refreshTable(list, columnDto, table); table.setRowHeight(25); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); } }); query.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { list = level3Service.getNodeList(null, null, null, null, null,sb.getText()); CommonTable.refreshTable(list, columnDto, table); table.setRowHeight(25); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); } }); for (int i = 0; i < shipList.size(); i++) { shipMap.put(shipList.get(i).getShipNo(), shipList.get(i).getId()); comboBox.addItem(shipList.get(i).getShipNo()); } comboBox.setSelectedItem(shipList.get(0).getShipNo()); JScrollPane scrollPane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); scrollPane.setViewportView(table); scrollPane.getViewport().setBackground(Color.WHITE); scrollPane.setPreferredSize(new Dimension(width - 20, height - 120)); centerJpanel.add(scrollPane); return panel; } }