From 66f0597bf6a1e79540c6bc51dedf561c22f3bdb5 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 13 五月 2025 17:49:26 +0800
Subject: [PATCH] 修改

---
 src/main/java/com/example/client/service/SubunitAddOrUpdate.java |   94 +++++++++++++++++++++++++++++++----------------
 1 files changed, 62 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/example/client/service/SubunitAddOrUpdate.java b/src/main/java/com/example/client/service/SubunitAddOrUpdate.java
index 88e566d..6b23d93 100644
--- a/src/main/java/com/example/client/service/SubunitAddOrUpdate.java
+++ b/src/main/java/com/example/client/service/SubunitAddOrUpdate.java
@@ -5,15 +5,17 @@
 import com.example.client.model.TableButton;
 import com.example.client.utils.BoxIteUtils;
 import com.example.client.utils.CommonTable;
+import com.example.client.utils.Compute;
 import com.example.client.utils.GBC;
 import com.example.server.cabin.service.CabinService;
 import com.example.server.progressTrack.model.DjJdgzDismantTrack;
 import com.example.server.progressTrack.model.DjJdgzNetworkLevel3;
+import com.example.server.progressTrack.model.DjJdgzTrackRecord;
 import com.example.server.progressTrack.service.DjJdgzDismantTrackService;
 import com.example.server.progressTrack.service.DjJdgzNetworkLevel3Service;
 import com.example.server.teamGroup.service.SysTeamGroupClassService;
 import com.example.server.user.model.SysUser;
-import com.example.server.utils.CacheUtils;
+import com.example.server.utils.UserAndSiteUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -41,15 +43,19 @@
     private CabinService cabinService;
     private List<ColumnDto> columnDto;
     private JTable trackTable;
+    private DjJdgzNetworkLevel3 nowLevel3;
+    private JFrame nowFrame;
 
-    public JPanel createTrack(Integer width, Integer height, DjJdgzNetworkLevel3 djJdgzNetworkLevel3,JFrame frame) {
-        JPanel panel = new JPanel();
+    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, 37));
+        topJpanel.setPreferredSize(new Dimension(width - 10, 40));
 
         JPanel centerJpanel = new JPanel();
-        centerJpanel.setPreferredSize(new Dimension(width - 20, height - 100));
+        centerJpanel.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeight(40, nowFrame)));
         panel.add(topJpanel, BorderLayout.NORTH);
         panel.add(centerJpanel, BorderLayout.CENTER);
 
@@ -59,7 +65,7 @@
         topJpanel.add(btnInsert);
 
         JComboBoxItem[] cabinList = cabinService.getList();
-        List<DjJdgzDismantTrack> list = djJdgzDismantTrackService.getList(djJdgzNetworkLevel3.getId(), null);
+        List<DjJdgzDismantTrack> list = djJdgzDismantTrackService.getList(nowLevel3.getId(), null);
         List<TableButton> buttonList = new ArrayList<>();
         buttonList.add(new TableButton("edit", "缂栬緫"));
         buttonList.add(new TableButton("del", "鍒犻櫎"));
@@ -74,40 +80,55 @@
         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.setAutoCreateRowSorter(true);
+
         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) {
-                SysUser user = (SysUser) CacheUtils.get("user", "user");
-                if (user.getTeamgroup()==null||user.getTeamgroup().equals(djJdgzNetworkLevel3.getTeamgroupId())) {
-                    DjJdgzDismantTrack djJdgzDismantTrack = new DjJdgzDismantTrack();
-                    djJdgzDismantTrack.setLevel3NetworkId(djJdgzNetworkLevel3.getId());
-                    insert(frame,djJdgzDismantTrack);
-                }else{
-                    JOptionPane.showMessageDialog(null, "涓嶅彲鎿嶄綔鍏朵粬涓撲笟鏁版嵁", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
+                nowFrame.setEnabled(false);
+                SysUser user = (SysUser) UserAndSiteUtils.get("user", "user");
+                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(nowFrame, djJdgzDismantTrack);
+                } else {
+                    nowFrame.setEnabled(true);
+                    JOptionPane.showMessageDialog(null, "褰撳墠鐢ㄦ埛涓嶅彲鎿嶄綔鍏朵粬涓撲笟鏁版嵁", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
+                }
             }
         });
 
 
         JScrollPane scrollPane = new JScrollPane(trackTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
         scrollPane.setViewportView(trackTable);
-        scrollPane.setPreferredSize(new Dimension(width - 20, height - 130));
+        scrollPane.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeightWithScroll(40, nowFrame)));
         centerJpanel.add(scrollPane);
-
+        nowFrame.addComponentListener(new ComponentAdapter() {
+            @Override
+            public void componentResized(ComponentEvent e) {
+                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();
+                scrollPane.repaint();
+            }
+        });
         return panel;
     }
 
     private void insert(JFrame jFrame, DjJdgzDismantTrack data) {
-        if (data.getLevel3NetworkId()==null){
+        if (data.getLevel3NetworkId() == null) {
             JOptionPane.showMessageDialog(null, "娌℃湁閫夋嫨璁惧", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
             return;
         }
@@ -133,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()));
         }
 
@@ -155,6 +176,11 @@
         frame1.add(btnSave, new GBC(0, 2, 2, 1).setWeight(1, 0));
 
         btnSave.addActionListener((e) -> {
+            SysUser user = (SysUser) UserAndSiteUtils.get("user","user");
+            if (user==null){
+                JOptionPane.showMessageDialog(null, "鐢ㄦ埛澶辨晥璇烽��鍑哄苟閲嶆柊鐧诲綍", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
+                return;
+            }
             JComboBoxItem cabin = (JComboBoxItem) comboBox0.getSelectedItem();
 
             String name = subunitName.getText();
@@ -163,21 +189,25 @@
             List<DjJdgzDismantTrack> list = new ArrayList<>();
             list.add(data);
             djJdgzDismantTrackService.save(list);
-
+            //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.setAutoCreateRowSorter(true);
+
         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) {
@@ -188,16 +218,16 @@
                 // 鑾峰彇鏂扮殑鍊�
                 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();
                         DjJdgzDismantTrack data = list.get(row);
-                        djJdgzDismantTrackService.deleteLogic(data.getId());
+                        djJdgzDismantTrackService.delete(data.getId());
                         list.remove(row);
                         model.removeRow(row);
                     }

--
Gitblit v1.9.1