jinlin
2025-03-18 d30e385951ce03335a5023f0775fd144da3c0b88
src/main/java/com/example/client/service/Level2ManageService.java
@@ -4,6 +4,7 @@
import com.example.client.dto.JComboBoxItem;
import com.example.client.model.TableButton;
import com.example.client.utils.CommonTable;
import com.example.client.utils.Compute;
import com.example.client.utils.GBC;
import com.example.server.progressTrack.model.DjJdgzNetworkLevel1;
import com.example.server.progressTrack.model.DjJdgzNetworkLevel2;
@@ -15,6 +16,7 @@
import com.example.server.utils.DownLoadTmpFile;
import org.jdesktop.swingx.JXDatePicker;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.swing.*;
@@ -47,16 +49,18 @@
    private List<DjJdgzNetworkLevel2> list;
    private Map<String, Long> shipMap = new HashMap<>();
    private List<ColumnDto> columnDto;
    @Value("${data.tmp-path}")
    private String tmpPath;
    public JPanel createTable(Integer width, Integer height, JFrame jFrame) {
        JPanel panel = new JPanel();
        JPanel panel = new JPanel(new BorderLayout());
        JPanel topJpanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        topJpanel.setPreferredSize(new Dimension(width, 37));
        topJpanel.setPreferredSize(new Dimension(width, 40));
        topJpanel.setBackground(Color.WHITE);
        JPanel centerJpanel = new JPanel();
        centerJpanel.setPreferredSize(new Dimension(width - 20, height - 100));
        centerJpanel.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeight(40,jFrame)));
        centerJpanel.setBackground(Color.WHITE);
        panel.add(topJpanel, BorderLayout.NORTH);
        panel.add(centerJpanel, BorderLayout.CENTER);
@@ -79,14 +83,14 @@
        columnDto = new ArrayList<>();
        //columnDto.add(new ColumnDto("ID", "id", -1, null,false));
        columnDto.add(new ColumnDto("序号", "", (width - 10) / 4, "autoCreate", false, null,null));
        columnDto.add(new ColumnDto("工程", "ProjectName", (width - 10) / 4, null, false, null,null));
        columnDto.add(new ColumnDto("一级网络图节点名称", "processName", (width - 10) / 4, null, false, null,null));
        columnDto.add(new ColumnDto("操作", "", (width - 10) / 4, "", true, buttonList,null));
        columnDto.add(new ColumnDto("序号", "", (width - 10) / 4, "autoCreate", false, null, null));
        columnDto.add(new ColumnDto("工程", "ProjectName", (width - 10) / 4, null, false, null, null));
        columnDto.add(new ColumnDto("一级网络图节点名称", "processName", (width - 10) / 4, null, false, null, null));
        columnDto.add(new ColumnDto("操作", "", (width - 10) / 4, "", true, buttonList, null));
        table = CommonTable.createCommonTable(list, columnDto);
        table.setRowHeight(25);
        table.setAutoCreateRowSorter(true);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        final Boolean[] isFirstLoadData = {true};
@@ -96,13 +100,13 @@
                Long shipId = shipMap.get(content);
                list = level2Service.getList(shipId);
                if (!isFirstLoadData[0]) {
                    CommonTable.refreshTable(list, columnDto,table);
                    CommonTable.refreshTable(list, columnDto, table);
                    table.setRowHeight(25);
                    table.setAutoCreateRowSorter(true);
                    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                    tableModelListener(table,jFrame);
                }else{
                    tableModelListener(table, jFrame);
                } else {
                    isFirstLoadData[0] = false;
                }
            }
@@ -114,7 +118,7 @@
        }
        comboBox.setSelectedItem(shipList.get(0).getShipNo());
        tableModelListener(table,jFrame);
        tableModelListener(table, jFrame);
        btnInsert.addActionListener(new ActionListener() {
            @Override
@@ -125,15 +129,26 @@
        btnDown.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                DownLoadTmpFile.down("二级网络图导入模板.xlsx",jFrame);
                DownLoadTmpFile.down(tmpPath + "二级网络图导入模板.xlsx", jFrame);
            }
        });
        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 - 100));
        scrollPane.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeightWithScroll(40,jFrame)));
        centerJpanel.add(scrollPane);
        jFrame.addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {
                centerJpanel.setPreferredSize(new Dimension(width  - 20, Compute.ComputeHeight(40,jFrame)));
                scrollPane.setPreferredSize(new Dimension(width  - 20,Compute.ComputeHeightWithScroll(40,jFrame)));
                centerJpanel.revalidate();
                centerJpanel.repaint();
                scrollPane.revalidate();
                scrollPane.repaint();
            }
        });
        return panel;
    }
@@ -185,7 +200,7 @@
        JButton btnSave = new JButton("保存");
        frame1.add(JLabel1, new GBC(0, 0,1,1).setAnchor(GBC.SOUTHEAST).setInsets(5));
        frame1.add(JLabel1, new GBC(0, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
        frame1.add(comboBox0, new GBC(1, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
        frame1.add(JLabel2, new GBC(0, 1, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
@@ -202,17 +217,17 @@
            data.setLevel1NodeId(level1Node.getId());
            level2Service.insert(data);
            list = level2Service.getList(level1Data.getShipId());
            CommonTable.refreshTable(list,columnDto,table);
            CommonTable.refreshTable(list, columnDto, table);
            table.setRowHeight(25);
            table.setAutoCreateRowSorter(true);
            table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            tableModelListener(table,jFrame);
            tableModelListener(table, jFrame);
            frame1.dispose();
            jFrame.setEnabled(true);//将主界面再设置为可操作的
        });
    }
    public void tableModelListener(JTable table,JFrame jFrame){
    public void tableModelListener(JTable table, JFrame jFrame) {
        table.getModel().addTableModelListener(e -> {
            // 检查事件类型
            if (e.getType() == TableModelEvent.UPDATE) {
@@ -223,11 +238,11 @@
                // 获取新的值
                Object newValue = table.getModel().getValueAt(row, column);
                // 输出变化信息
                if (newValue.equals("edit")){
                if (newValue.equals("edit")) {
                    DjJdgzNetworkLevel2 data = list.get(row);
                    addOrUpdate.openDialog(data,jFrame);
                    addOrUpdate.openDialog(data, jFrame);
                    jFrame.setEnabled(false);
                }else if(newValue.equals("del")) {
                } else if (newValue.equals("del")) {
                    int n = JOptionPane.showConfirmDialog(null, "是否删除?", "提示", JOptionPane.YES_NO_OPTION);
                    if (n == 0) {
                        DefaultTableModel model = (DefaultTableModel) table.getModel();