jinlin
2025-04-01 a80b4a7eb099390bb53c967126fa97b30568e1a3
src/main/java/com/example/client/service/SubunitAddOrUpdate.java
@@ -44,16 +44,18 @@
    private List<ColumnDto> columnDto;
    private JTable trackTable;
    private DjJdgzNetworkLevel3 nowLevel3;
    private JFrame nowFrame;
    public JPanel createTrack(Integer width, Integer height, DjJdgzNetworkLevel3 djJdgzNetworkLevel3,JFrame frame) {
    public JPanel createTrack(Integer width, Integer height, DjJdgzNetworkLevel3 djJdgzNetworkLevel3, JFrame frame) {
        nowLevel3 = djJdgzNetworkLevel3;
        nowFrame = frame;
        JPanel panel = new JPanel(new BorderLayout());
        panel.setPreferredSize(new Dimension(width, height));
        JPanel topJpanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        topJpanel.setPreferredSize(new Dimension(width - 10, 40));
        JPanel centerJpanel = new JPanel();
        centerJpanel.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeight(40,frame)));
        centerJpanel.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeight(40, nowFrame)));
        panel.add(topJpanel, BorderLayout.NORTH);
        panel.add(centerJpanel, BorderLayout.CENTER);
@@ -78,22 +80,29 @@
        columnDto.add(new ColumnDto("操作", "", 200, "", true, buttonList, null));
        trackTable = CommonTable.createCommonTable(list, columnDto);
        trackTable.setPreferredSize(new Dimension(width , height));
        trackTable.setPreferredSize(new Dimension(width, height));
        trackTable.setRowHeight(25);
        trackTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        tableModelListener(trackTable, frame,list,columnDto);
        tableModelListener(trackTable, list, columnDto);
        btnInsert.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                nowFrame.setEnabled(false);
                SysUser user = (SysUser) CacheUtils.get("user", "user");
                if (user.getTeamgroup()==null||user.getTeamgroup().equals(nowLevel3.getTeamgroupId().toString())) {
                if (user == null) {
                    nowFrame.setEnabled(true);
                    JOptionPane.showMessageDialog(null, "当前用户已失效请重新登录", "提示", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                if (user.getTeamgroup() == null || user.getTeamgroup().equals(nowLevel3.getTeamgroupId().toString())) {
                    DjJdgzDismantTrack djJdgzDismantTrack = new DjJdgzDismantTrack();
                    djJdgzDismantTrack.setLevel3NetworkId(nowLevel3.getId());
                    insert(frame,djJdgzDismantTrack);
                }else{
                    insert(nowFrame, djJdgzDismantTrack);
                } else {
                    nowFrame.setEnabled(true);
                    JOptionPane.showMessageDialog(null, "当前用户不可操作其他专业数据", "提示", JOptionPane.WARNING_MESSAGE);
                }
            }
@@ -102,13 +111,13 @@
        JScrollPane scrollPane = new JScrollPane(trackTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        scrollPane.setViewportView(trackTable);
        scrollPane.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeightWithScroll(40,frame)));
        scrollPane.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeightWithScroll(40, nowFrame)));
        centerJpanel.add(scrollPane);
        frame.addComponentListener(new ComponentAdapter() {
        nowFrame.addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {
                centerJpanel.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeightWithScroll(40,frame)));
                scrollPane.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeightWithScroll(40,frame)));
                centerJpanel.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeightWithScroll(40, nowFrame)));
                scrollPane.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeightWithScroll(40, nowFrame)));
                centerJpanel.revalidate();
                centerJpanel.repaint();
                scrollPane.revalidate();
@@ -119,7 +128,7 @@
    }
    private void insert(JFrame jFrame, DjJdgzDismantTrack data) {
        if (data.getLevel3NetworkId()==null){
        if (data.getLevel3NetworkId() == null) {
            JOptionPane.showMessageDialog(null, "没有选择设备", "提示", JOptionPane.WARNING_MESSAGE);
            return;
        }
@@ -145,7 +154,7 @@
        JComboBox<JComboBoxItem> comboBox0 = new JComboBox<>(cabinList);
        comboBox0.setPreferredSize(new Dimension(185, 28));
        comboBox0.setSelectedIndex(-1);
        if(data.getCabinId()!=null){
        if (data.getCabinId() != null) {
            comboBox0.setSelectedItem(BoxIteUtils.GetSelectItemById(cabinList, data.getCabinId()));
        }
@@ -167,6 +176,11 @@
        frame1.add(btnSave, new GBC(0, 2, 2, 1).setWeight(1, 0));
        btnSave.addActionListener((e) -> {
            SysUser user = (SysUser) CacheUtils.get("user","user");
            if (user==null){
                JOptionPane.showMessageDialog(null, "用户失效请退出并重新登录", "提示", JOptionPane.WARNING_MESSAGE);
                return;
            }
            JComboBoxItem cabin = (JComboBoxItem) comboBox0.getSelectedItem();
            String name = subunitName.getText();
@@ -175,23 +189,25 @@
            List<DjJdgzDismantTrack> list = new ArrayList<>();
            list.add(data);
            djJdgzDismantTrackService.save(list);
            this.refreshTable(data.getLevel3NetworkId(),null);
            //tableModelListener(trackTable, jFrame,list,columnDto);
            this.refreshTable(data.getLevel3NetworkId(), null);
            frame1.dispose();
            jFrame.setEnabled(true);//将主界面再设置为可操作的
            JOptionPane.showMessageDialog(null, "保存成功", "提示", JOptionPane.WARNING_MESSAGE);
        });
    }
    public void refreshTable(Long level3Id,JFrame jFrame){
    public void refreshTable(Long level3Id, JFrame jFrame) {
        nowLevel3 = level3Service.get(level3Id);
        List<DjJdgzDismantTrack> list = djJdgzDismantTrackService.getList(level3Id, null);
        CommonTable.refreshTable(list, columnDto, trackTable);
        trackTable.setRowHeight(25);
        trackTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        tableModelListener(trackTable, jFrame,list,columnDto);
        tableModelListener(trackTable, list, columnDto);
    }
    public void tableModelListener(JTable table,JFrame jFrame,List<DjJdgzDismantTrack> list,List<ColumnDto> columnDto){
    public void tableModelListener(JTable table, List<DjJdgzDismantTrack> list, List<ColumnDto> columnDto) {
        table.getModel().addTableModelListener(e -> {
            // 检查事件类型
            if (e.getType() == TableModelEvent.UPDATE) {
@@ -202,11 +218,11 @@
                // 获取新的值
                Object newValue = table.getModel().getValueAt(row, column);
                // 输出变化信息
                if (newValue.equals("edit")){
                if (newValue.equals("edit")) {
                    nowFrame.setEnabled(false);
                    DjJdgzDismantTrack data = list.get(row);
                    insert(jFrame,data);
                    jFrame.setEnabled(false);
                }else if(newValue.equals("del")) {
                    insert(nowFrame, data);
                } else if (newValue.equals("del")) {
                    int n = JOptionPane.showConfirmDialog(null, "是否删除?", "提示", JOptionPane.YES_NO_OPTION);
                    if (n == 0) {
                        DefaultTableModel model = (DefaultTableModel) table.getModel();