jinlin
2025-03-21 77d58298d00c11ade8862ca8acb0fdef5a45322e
src/main/java/com/example/client/service/Level3View2Service.java
@@ -3,9 +3,7 @@
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.client.utils.*;
import com.example.server.cabin.service.CabinService;
import com.example.server.progressTrack.Dto.TableNodeDto;
import com.example.server.progressTrack.model.DjJdgzNetworkLevel1;
@@ -18,6 +16,7 @@
import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
@@ -35,6 +34,8 @@
    private SysTeamGroupClassService sysTeamGroupClassService;
    @Autowired
    private CabinService cabinService;
    @Autowired
    private StatisProductService statisProductService;
    private JTable table;
    private List<TableNodeDto> list;
@@ -42,8 +43,8 @@
    private List<ColumnDto> columnDto;
    public JPanel createTable(Integer width, Integer height) {
        JPanel panel = new JPanel();
    public JPanel createTable(Integer width, Integer height,JFrame frame) {
        JPanel panel = new JPanel(new BorderLayout());
        JPanel topJpanel = new JPanel();
        GridBagLayout layout = new GridBagLayout();
@@ -52,7 +53,7 @@
        topJpanel.setBackground(Color.WHITE);
        JPanel centerJpanel = new JPanel();
        centerJpanel.setPreferredSize(new Dimension(width - 20, height - 100));
        centerJpanel.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeight(95,frame)));
        centerJpanel.setBackground(Color.WHITE);
        panel.add(topJpanel, BorderLayout.NORTH);
        panel.add(centerJpanel, BorderLayout.CENTER);
@@ -62,7 +63,7 @@
        JComboBoxItem[] cabinList = cabinService.getList();
        JComboBoxItem[] deptList = sysTeamGroupClassService.getDeptList();
        String[] typeList = new String[]{
                "改装", "加装", "换装", "改进性修理",""
                "","改装", "加装", "换装", "改进性修理"
        };
        JLabel JLabel0 = new JLabel("工程");
@@ -90,6 +91,17 @@
        JTextField sb = new JTextField(16);
        JButton query = new JButton("查询");
        List<ColorDescription> colorDescriptions = new ArrayList<>();
        colorDescriptions.add(new ColorDescription("#3498DB", "进行中"));
        colorDescriptions.add(new ColorDescription("#F1C40F", "临期"));
        colorDescriptions.add(new ColorDescription("#E74C3C", "逾期"));
        colorDescriptions.add(new ColorDescription("#2ECC71", "正常完成"));
        colorDescriptions.add(new ColorDescription("#006400", "超期完成"));
        // 创建下拉框
        ColorDescriptionComboBox comboBox5 = new ColorDescriptionComboBox(colorDescriptions);
        JButton btnTjz = 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));
@@ -103,8 +115,10 @@
        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));
        topJpanel.add(comboBox5, new GBC(3, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
        topJpanel.add(btnTjz, new GBC(5, 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);
        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));
@@ -122,6 +136,30 @@
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        MouseMotionListener mouseMotionListener = new MouseMotionListener() {
            @Override
            public void mouseDragged(MouseEvent e) {
                // 不需要处理鼠标拖动事件
            }
            @Override
            public void mouseMoved(MouseEvent e) {
                Point point = e.getPoint();
                int row = table.rowAtPoint(point);
                int column = table.columnAtPoint(point);
                if (row <= list.size() && column > 1) {
                    String hexColor = (String) table.getValueAt(row, column);
                    String tooltip = getTooltipText(hexColor);
                    table.setToolTipText(tooltip);
                } else {
                    table.setToolTipText(null);
                }
            }
        };
        table.addMouseMotionListener(mouseMotionListener);
        comboBox.addItemListener(new ItemListener() {
            public void itemStateChanged(final ItemEvent event) {
                String content = comboBox.getSelectedItem().toString();
@@ -131,7 +169,7 @@
                String type = comboBox4.getSelectedItem().toString();
                Long shipId = shipMap.get(content);
                list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type,null);
                list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type, null);
                CommonTable.refreshTable(list, columnDto, table);
                table.setRowHeight(25);
@@ -145,12 +183,11 @@
            public void itemStateChanged(ItemEvent e) {
                if (e.getStateChange() == ItemEvent.SELECTED) {
                    JComboBoxItem selectedItem = (JComboBoxItem) comboBox1.getSelectedItem();
                    if (selectedItem.getId() != null) {
                        long selectedId = selectedItem.getId();
                    if (selectedItem != 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();
@@ -159,7 +196,7 @@
                        String type = comboBox4.getSelectedItem().toString();
                        Long shipId = shipMap.get(content);
                        list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type,null);
                        list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type, null);
                        CommonTable.refreshTable(list, columnDto, table);
                        table.setRowHeight(25);
@@ -180,7 +217,7 @@
                String type = comboBox4.getSelectedItem().toString();
                Long shipId = shipMap.get(content);
                list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type,null);
                list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type, null);
                CommonTable.refreshTable(list, columnDto, table);
                table.setRowHeight(25);
@@ -198,7 +235,7 @@
                String type = comboBox4.getSelectedItem().toString();
                Long shipId = shipMap.get(content);
                list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type,null);
                list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type, null);
                CommonTable.refreshTable(list, columnDto, table);
                table.setRowHeight(25);
@@ -216,7 +253,7 @@
                String type = comboBox4.getSelectedItem().toString();
                Long shipId = shipMap.get(content);
                list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type,null);
                list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type, null);
                CommonTable.refreshTable(list, columnDto, table);
                table.setRowHeight(25);
@@ -229,7 +266,7 @@
        query.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                list = level3Service.getNodeList(null, null, null, null, null,sb.getText());
                list = level3Service.getNodeList(null, null, null, null, null, sb.getText());
                CommonTable.refreshTable(list, columnDto, table);
                table.setRowHeight(25);
@@ -245,19 +282,55 @@
        }
        comboBox.setSelectedItem(shipList.get(0).getShipNo());
        btnTjz.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String content = comboBox.getSelectedItem().toString();
                Long shipId = shipMap.get(content);
                statisProductService.createTable(frame,shipId);
            }
        });
        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));
        scrollPane.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeightWithScroll(95,frame)));
        centerJpanel.add(scrollPane);
        frame.addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {
                centerJpanel.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeight(95,frame)));
                scrollPane.setPreferredSize(new Dimension(width - 20,Compute.ComputeHeightWithScroll(95,frame)));
                centerJpanel.revalidate();
                centerJpanel.repaint();
                scrollPane.revalidate();
                scrollPane.repaint();
            }
        });
        return panel;
    }
    private static String getTooltipText(String hexColor) {
        switch (hexColor) {
            case "#3498DB":
                return "进行中";
            case "#F1C40F":
                return "临期";
            case "#E74C3C":
                return "逾期";
            case "#2ECC71":
                return "正常完成";
            case "#006400":
                return "超期完成";
            default:
                return "未开始";
        }
    }
}