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<TableNodeDto> list; 
 | 
    private Map<String, Long> shipMap = new HashMap<>(); 
 | 
    private List<ColumnDto> 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<DjJdgzShip> 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<JComboBoxItem> comboBox1 = new JComboBox<>(deptList); 
 | 
        comboBox1.setPreferredSize(new Dimension(185, 28)); 
 | 
  
 | 
        JComboBoxItem[] teamList1 = sysTeamGroupClassService.getTeamList(deptList[0].getId()); 
 | 
  
 | 
        JLabel JLabel2 = new JLabel("专业"); 
 | 
        JComboBox<JComboBoxItem> comboBox2 = new JComboBox<>(teamList1); 
 | 
        comboBox2.setPreferredSize(new Dimension(185, 28)); 
 | 
  
 | 
        JLabel JLabel3 = new JLabel("舱室"); 
 | 
        JComboBox<JComboBoxItem> comboBox3 = new JComboBox<>(cabinList); 
 | 
        comboBox3.setPreferredSize(new Dimension(185, 28)); 
 | 
  
 | 
        JLabel JLabel4 = new JLabel("类别"); 
 | 
        JComboBox<String> 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; 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |