From a857feef16fdd2ea9295f0be82a8fdaa34f13595 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期四, 24 四月 2025 18:10:30 +0800
Subject: [PATCH] 修改

---
 src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java |   19 ++-
 src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml                   |    2 
 src/main/java/com/example/client/service/Level3ManageService.java                    |   64 +++++++++++-
 src/main/java/com/example/client/service/ProgressPromptService.java                  |  110 ++++++++++++++++++++-
 src/main/java/com/example/client/service/TrackRecordAddOrUpdate.java                 |    6 
 src/main/java/com/example/client/service/Level3AddOrUpdate.java                      |   21 +++-
 src/main/java/com/example/server/progressTrack/model/DjJdgzTrackRecord.java          |    2 
 src/main/resources/db/csiczb1.db                                                     |    0 
 src/main/java/com/example/client/service/HandoverAddOrUpdate.java                    |    3 
 src/main/java/com/example/server/progressTrack/dao/DjJdgzTrackRecordDao.java         |    4 
 src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml                     |   27 +++++
 src/main/java/com/example/client/service/TrackRecordManageService.java               |   31 +++--
 12 files changed, 242 insertions(+), 47 deletions(-)

diff --git a/src/main/java/com/example/client/service/HandoverAddOrUpdate.java b/src/main/java/com/example/client/service/HandoverAddOrUpdate.java
index 7bddad5..e5155c7 100644
--- a/src/main/java/com/example/client/service/HandoverAddOrUpdate.java
+++ b/src/main/java/com/example/client/service/HandoverAddOrUpdate.java
@@ -2,6 +2,7 @@
 
 import com.example.client.dto.ColumnDto;
 import com.example.client.dto.JComboBoxItem;
+import com.example.client.utils.BoxIteUtils;
 import com.example.client.utils.CommonTable;
 import com.example.client.utils.GBC;
 import com.example.client.utils.UploadFile;
@@ -64,7 +65,7 @@
         JLabel JLabel0 = new JLabel("宸ョ▼");
         JComboBox<JComboBoxItem> comboBox = new JComboBox<>(projectList);
         if(data.getLevel1NetworkId()!=null){
-            comboBox.setSelectedItem(new JComboBoxItem(data.getLevel1NetworkId(),data.getProjectName()));
+            comboBox.setSelectedItem(BoxIteUtils.GetSelectItemById(projectList, data.getLevel1NetworkId()));
         }
 
         JLabel JLabel1 = new JLabel("浜ゆ柟T闃�");
diff --git a/src/main/java/com/example/client/service/Level3AddOrUpdate.java b/src/main/java/com/example/client/service/Level3AddOrUpdate.java
index 301e001..85bb745 100644
--- a/src/main/java/com/example/client/service/Level3AddOrUpdate.java
+++ b/src/main/java/com/example/client/service/Level3AddOrUpdate.java
@@ -36,7 +36,7 @@
     @Autowired
     private DjJdgzNetworkLevel3ListService level3ListService;
     @Autowired
-    private SysTeamGroupClassService sysTeamGroupClassService;
+    private Level3ManageService level3ManageService;
 
     public void openDialog(DjJdgzNetworkLevel3 data, JFrame jFrame) {
         JFrame frame1 = new JFrame("涓夌骇缃戠粶鍥剧紪杈�");
@@ -60,9 +60,9 @@
         JSpinner.DateEditor timeEditor = new JSpinner.DateEditor(timeSpinner, "yyyy-MM-dd");
         timeSpinner.setEditor(timeEditor);
 
-        //JButton btnInsert = new JButton("鏂板");
+        JButton btnUpdate = new JButton("淇敼璁惧淇℃伅");
         JButton btnSave = new JButton("淇濆瓨鏁版嵁");
-        //topJpanel.add(btnInsert);
+        topJpanel.add(btnUpdate);
         topJpanel.add(btnSave);
 
         // 鍒涘缓瀛愯〃鏍�
@@ -163,8 +163,8 @@
         btnSave.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
-                SysUser user = (SysUser) UserAndSiteUtils.get("user","user");
-                if (user==null){
+                SysUser user = (SysUser) UserAndSiteUtils.get("user", "user");
+                if (user == null) {
                     JOptionPane.showMessageDialog(null, "鐢ㄦ埛澶辨晥璇烽��鍑哄苟閲嶆柊鐧诲綍", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
                     return;
                 }
@@ -176,6 +176,17 @@
                 JOptionPane.showMessageDialog(null, "淇濆瓨鎴愬姛", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
             }
         });
+        btnUpdate.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                SysUser user = (SysUser) UserAndSiteUtils.get("user", "user");
+                if (user == null) {
+                    JOptionPane.showMessageDialog(null, "鐢ㄦ埛澶辨晥璇烽��鍑哄苟閲嶆柊鐧诲綍", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
+                    return;
+                }
+                level3ManageService.insert(jFrame,data);
+            }
+        });
 
     }
 }
diff --git a/src/main/java/com/example/client/service/Level3ManageService.java b/src/main/java/com/example/client/service/Level3ManageService.java
index ae02749..fdf9ad3 100644
--- a/src/main/java/com/example/client/service/Level3ManageService.java
+++ b/src/main/java/com/example/client/service/Level3ManageService.java
@@ -3,10 +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.Compute;
-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.model.DjJdgzNetworkLevel1;
 import com.example.server.progressTrack.model.DjJdgzNetworkLevel3;
@@ -314,7 +311,8 @@
             @Override
             public void actionPerformed(ActionEvent e) {
                 jFrame.setEnabled(false);
-                insert(jFrame);
+                DjJdgzNetworkLevel3 data = new DjJdgzNetworkLevel3();
+                insert(jFrame,data);
             }
         });
 
@@ -346,7 +344,7 @@
         return panel;
     }
 
-    private void insert(JFrame jFrame) {
+    public void insert(JFrame jFrame,DjJdgzNetworkLevel3 data) {
         JFrame frame1 = new JFrame("鏂板涓夌骇缃戠粶鍥�");
         frame1.setSize(500, 460);
         frame1.setResizable(true);
@@ -379,38 +377,84 @@
         JComboBox<JComboBoxItem> comboBox0 = new JComboBox<>(projectList);
         comboBox0.setPreferredSize(new Dimension(185, 28));
         comboBox0.setSelectedIndex(-1);
+        if (data.getLevel1NetworkId()!=null){
+            comboBox0.setSelectedItem(BoxIteUtils.GetSelectItemById(projectList, data.getLevel1NetworkId()));
+        }
 
         JLabel JLabel2 = new JLabel("浜岀骇缃戠粶鍥�");
         JComboBox<JComboBoxItem> comboBox1 = new JComboBox<>();
         comboBox1.setPreferredSize(new Dimension(185, 28));
+        if (data.getLevel2NetworkId()!=null){
+            JComboBoxItem[] level2List = level2Service.getLevel2List(data.getLevel1NetworkId());
+            comboBox1.setModel(new DefaultComboBoxModel<>(level2List));
+            comboBox1.setSelectedItem(BoxIteUtils.GetSelectItemById(level2List, data.getLevel2NetworkId()));
+        }
 
         JLabel JLabel3 = new JLabel("浜岀骇缃戠粶鍥捐妭鐐�");
         JComboBox<JComboBoxItem> comboBox2 = new JComboBox<>();
         comboBox2.setPreferredSize(new Dimension(185, 28));
+        if (data.getLevel2NodeId()!=null){
+            JComboBoxItem[] level2NodeList = level2ListService.getNode(data.getLevel2NetworkId());
+            comboBox2.setModel(new DefaultComboBoxModel<>(level2NodeList));
+            comboBox2.setSelectedItem(BoxIteUtils.GetSelectItemById(level2NodeList, data.getLevel2NodeId()));
+        }
 
         JLabel JLabel4 = new JLabel("閮ㄩ棬");
         JComboBox<JComboBoxItem> comboBox3 = new JComboBox<>(deptList);
         comboBox3.setPreferredSize(new Dimension(185, 28));
+        if (data.getDeptId()!=null){
+            comboBox3.setSelectedItem(BoxIteUtils.GetSelectItemById(deptList, data.getDeptId()));
+        }
 
         JComboBoxItem[] teamList1 = sysTeamGroupClassService.getTeamList(deptList[0].getId());
 
         JLabel JLabel5 = new JLabel("涓撲笟");
         JComboBox<JComboBoxItem> comboBox4 = new JComboBox<>(teamList1);
         comboBox4.setPreferredSize(new Dimension(185, 28));
+        if (data.getTeamgroupId()!=null){
+            JComboBoxItem[] teamList3 = sysTeamGroupClassService.getTeamList(data.getDeptId());
+            comboBox4.setModel(new DefaultComboBoxModel<>(teamList3));
+            comboBox4.setSelectedItem(BoxIteUtils.GetSelectItemById(teamList3, data.getTeamgroupId()));
+        }
 
         JLabel JLabel6 = new JLabel("鑸卞");
         MultiSelectComboBox comboBox5 = new MultiSelectComboBox(cabinList);
         comboBox5.setPreferredSize(new Dimension(200, 25));
+        if (data.getCabinId()!=null){
+            Set<Long> selectedIds = new HashSet<>();
+            String[] idParts = data.getCabinId().split(",");
+            for (String idPart : idParts) {
+                selectedIds.add(Long.parseLong(idPart.trim())); // 灏嗗瓧绗︿覆杞崲涓� Long 绫诲瀷骞舵坊鍔犲埌闆嗗悎涓�
+            }
+
+            // 灏� ID 杞崲涓哄搴旂殑 JComboBoxItem 瀵硅薄
+            Set<JComboBoxItem> selectedItems = new HashSet<>();
+            for (JComboBoxItem item : cabinList) {
+                if (selectedIds.contains(item.getId())) { // 妫�鏌� Long 绫诲瀷鐨� ID 鏄惁鍖归厤
+                    selectedItems.add(item); // 娣诲姞鍒伴�変腑椤归泦鍚�
+                }
+            }
+            comboBox5.setSelectedItems(selectedItems);
+        }
 
         JLabel JLabel7 = new JLabel("绫诲埆");
         JComboBox<String> comboBox6 = new JComboBox<>(typeList);
+        if (data.getType()!=null){
+            comboBox6.setSelectedItem(data.getType());
+        }
 
         JLabel JLabel78 = new JLabel("鏄惁褰卞搷灏佽埍");
         JComboBox<JComboBoxItem> comboBox7 = new JComboBox<>(isealCabin);
         comboBox7.setPreferredSize(new Dimension(185, 28));
+        if (data.getIsealCabin()!=null){
+            comboBox7.setSelectedItem(BoxIteUtils.GetSelectItemById(isealCabin, Long.valueOf(data.getIsealCabin())));
+        }
 
         JLabel JLabel8 = new JLabel("涓夌骇缃戠粶鍥惧悕绉�");
         JTextField level3Name = new JTextField(16);
+        if (StringUtils.isNotBlank(data.getName())){
+            level3Name.setText(data.getName());
+        }
 
         comboBox0.addItemListener(new ItemListener() {
             @Override
@@ -501,7 +545,6 @@
                 selectedIds.append(item.getId()).append(",");
             }
             String name = level3Name.getText();
-            DjJdgzNetworkLevel3 data = new DjJdgzNetworkLevel3();
             DjJdgzNetworkLevel1 level1Data = level1Service.get(level1.getId());
             data.setLevel1NetworkId(level1.getId());
             data.setLevel2NetworkId(level2.getId());
@@ -513,7 +556,12 @@
             data.setTeamgroupName(team.getName());
             data.setCabinId(String.valueOf(selectedIds));
             data.setType(comboBox6.getSelectedItem().toString());
-            level3Service.insert(data);
+            if (data.getId()!=null){
+                level3Service.update(data);
+            }else{
+                level3Service.insert(data);
+            }
+
             list = level3Service.getList(level1Data.getShipId(), deptList[0].getId(), teamList[0].getId(), cabinList[0].getId(), typeList[0], Math.toIntExact(isealCabin[0].getId()), null);
             CommonTable.refreshTable(list, columnDto, table);
             table.setRowHeight(25);
diff --git a/src/main/java/com/example/client/service/ProgressPromptService.java b/src/main/java/com/example/client/service/ProgressPromptService.java
index 95c764e..cd71895 100644
--- a/src/main/java/com/example/client/service/ProgressPromptService.java
+++ b/src/main/java/com/example/client/service/ProgressPromptService.java
@@ -1,16 +1,19 @@
 package com.example.client.service;
 
 import com.example.client.dto.ColumnDto;
+import com.example.client.dto.JComboBoxItem;
 import com.example.client.utils.CommonTable;
-import com.example.server.progressTrack.Dto.StatistReportsDto;
+import com.example.client.utils.Compute;
+import com.example.client.utils.GBC;
 import com.example.server.progressTrack.model.DjJdgzTrackRecord;
 import com.example.server.progressTrack.service.DjJdgzTrackRecordService;
+import com.example.server.teamGroup.service.SysTeamGroupClassService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.swing.*;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
+import java.awt.*;
+import java.awt.event.*;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -21,6 +24,9 @@
     private DjJdgzTrackRecordService djJdgzTrackRecordService;
 
     private JTable table;
+    private List<DjJdgzTrackRecord> list;
+    @Autowired
+    private SysTeamGroupClassService sysTeamGroupClassService;
 
     public void createTable(JFrame jFrame,Long level1NetworkId) {
         JFrame frame1 = new JFrame("杩涘害妫�鏌�");
@@ -37,8 +43,53 @@
             }
         });
 
+        JPanel topJpanel = new JPanel();
+        GridBagLayout layout = new GridBagLayout();
+        topJpanel.setLayout(layout);
+        topJpanel.setPreferredSize(new Dimension(1200 - 20, 40));
+        topJpanel.setBackground(Color.WHITE);
+
+        JPanel centerJpanel = new JPanel();
+        centerJpanel.setPreferredSize(new Dimension(1200 - 20,700-40));
+        centerJpanel.setBackground(Color.WHITE);
+        frame1.add(topJpanel, BorderLayout.NORTH);
+        frame1.add(centerJpanel, BorderLayout.CENTER);
+
+        JComboBoxItem[] deptList = sysTeamGroupClassService.getDeptList();
+
+        JComboBoxItem[] teamList = sysTeamGroupClassService.getTeamList(null);
+
+        JLabel JLabel1 = new JLabel("閮ㄩ棬");
+        JComboBox<JComboBoxItem> comboBox1 = new JComboBox<>(deptList);
+        comboBox1.setPreferredSize(new Dimension(140, 28));
+        comboBox1.setMaximumSize(new Dimension(140, 28));
+
+        JComboBoxItem[] teamList1 = sysTeamGroupClassService.getTeamList(deptList[0].getId());
+
+        JLabel JLabel2 = new JLabel("涓撲笟");
+        JComboBox<JComboBoxItem> comboBox2 = new JComboBox<>(teamList1);
+        comboBox2.setPreferredSize(new Dimension(140, 28));
+        comboBox2.setMaximumSize(new Dimension(140, 28));
+
+        JTextField sb = new JTextField(16);
+        sb.setPreferredSize(new Dimension(140, 28));
+        sb.setMaximumSize(new Dimension(140, 28));
+
+        JButton query = new JButton("鏌ヨ");
+        query.setPreferredSize(new Dimension(90, 28));
+
+        topJpanel.add(JLabel1, new GBC(0, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
+        topJpanel.add(comboBox1, new GBC(1, 0, 2, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
+
+        topJpanel.add(JLabel2, new GBC(3, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
+        topJpanel.add(comboBox2, new GBC(4, 0, 2, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
+
+        topJpanel.add(sb, new GBC(8, 0, 3, 1).setInsets(5));
+        topJpanel.add(query, new GBC(15, 0, 1, 1).setInsets(5));
+
+
         List<ColumnDto> columnDto = new ArrayList<>();
-        List<DjJdgzTrackRecord> list = djJdgzTrackRecordService.prompt(level1NetworkId);
+        list = djJdgzTrackRecordService.prompt(level1NetworkId, null, null, null);
 
         //columnDto.add(new ColumnDto("ID", "id", -1, null,false));
         columnDto.add(new ColumnDto("宸ョ▼鍚嶇О", "ProjectName", 280, null, false, null,null));
@@ -48,14 +99,59 @@
         columnDto.add(new ColumnDto("椤圭洰鍚嶇О", "level3NetworkName", 150, null, false, null,null));
         columnDto.add(new ColumnDto("褰撳墠鑺傜偣", "level3NodeName", 150, null, false, null,null));
         columnDto.add(new ColumnDto("鐘舵��", "status", 150, null, false, null,null));
-
-
         table = CommonTable.createCommonTable(list, columnDto);
         table.setRowHeight(25);
 
+
+        comboBox1.addItemListener(new ItemListener() {
+            public void itemStateChanged(final ItemEvent event) {
+                JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem();
+                Long deptId = dept.getId();
+                JComboBoxItem[] teamList = sysTeamGroupClassService.getTeamList(deptId);
+                comboBox2.setModel(new DefaultComboBoxModel<>(teamList));
+
+                JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem();
+
+                list = djJdgzTrackRecordService.prompt(level1NetworkId,deptId,team.getId(),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) {
+                JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem();
+                JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem();
+
+                list = djJdgzTrackRecordService.prompt(level1NetworkId,dept.getId(),team.getId(),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 = djJdgzTrackRecordService.prompt(level1NetworkId, null, null,sb.getText());
+
+                CommonTable.refreshTable(list, columnDto, table);
+                table.setRowHeight(25);
+
+                table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+            }
+        });
+
         table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
         JScrollPane scrollTable = new JScrollPane(table);
-        frame1.add(scrollTable);
+        scrollTable.setPreferredSize(new Dimension(1200 - 20,700-40));
+
+        centerJpanel.add(scrollTable);
         frame1.setVisible(true);
     }
 
diff --git a/src/main/java/com/example/client/service/TrackRecordAddOrUpdate.java b/src/main/java/com/example/client/service/TrackRecordAddOrUpdate.java
index 471b063..71a6b97 100644
--- a/src/main/java/com/example/client/service/TrackRecordAddOrUpdate.java
+++ b/src/main/java/com/example/client/service/TrackRecordAddOrUpdate.java
@@ -176,7 +176,7 @@
         JComboBox<JComboBoxItem> comboBox1 = new JComboBox<>(statusList);
         comboBox1.setPreferredSize(new Dimension(185, 28));
         if (data.getCurrentStatus() != null) {
-            comboBox0.setSelectedItem(new JComboBoxItem(data.getCurrentStatus().longValue(), statusMap.get(data.getCurrentStatus())));
+            comboBox1.setSelectedItem(statusList[data.getCurrentStatus()]);
         }
 
 
@@ -184,7 +184,7 @@
         JComboBox<JComboBoxItem> comboBox2 = new JComboBox<>(hasDelayRiskList);
         comboBox2.setPreferredSize(new Dimension(185, 28));
         if (data.getHasDelayRisk() != null) {
-            comboBox0.setSelectedItem(new JComboBoxItem(data.getHasDelayRisk().longValue(), hasDelayRiskMap.get(data.getHasDelayRisk())));
+            comboBox2.setSelectedItem(hasDelayRiskList[data.getHasDelayRisk()]);
         }
 
 
@@ -341,7 +341,7 @@
                 data.setProblem(problem.getText());
                 data.setFollowupPlan(plan.getText());
                 data.setRemark(remark.getText());
-                Long id = djJdgzTrackRecordService.save(data);
+                Long id = djJdgzTrackRecordService.save(data,"save");
                 uploadFile.save(id);
                 List<DjJdgzTrackRecord> list = djJdgzTrackRecordService.getList(level1Id, level3.getDeptId(), null, null, level3.getType(), 0,0, null);
                 CommonTable.refreshTable(list, columnDto, table);
diff --git a/src/main/java/com/example/client/service/TrackRecordManageService.java b/src/main/java/com/example/client/service/TrackRecordManageService.java
index 817593e..6c1f7a9 100644
--- a/src/main/java/com/example/client/service/TrackRecordManageService.java
+++ b/src/main/java/com/example/client/service/TrackRecordManageService.java
@@ -284,7 +284,14 @@
             @Override
             public void actionPerformed(ActionEvent e) {
                 JComboBoxItem project = (JComboBoxItem) comboBox.getSelectedItem();
-                list = djJdgzTrackRecordService.getList(project.getId(), null, null, null, null, 0, 0,sb.getText());
+                JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem();
+                JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem();
+                JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem();
+                String type = comboBox4.getSelectedItem().toString();
+                JComboBoxItem status = (JComboBoxItem) comboBox5.getSelectedItem();
+                JComboBoxItem isealCabinItem = (JComboBoxItem) comboBox7.getSelectedItem();
+
+                list = djJdgzTrackRecordService.getList(project.getId(), dept.getId(), team.getId(), cabin.getId(), type, Math.toIntExact(status.getId()),Math.toIntExact(isealCabinItem.getId()),sb.getText());
 
                 CommonTable.refreshTable(list, columnDto, table);
                 table.setRowHeight(25);
@@ -400,7 +407,7 @@
 
                 // 妫�鏌ユ槸鍚︾偣鍑讳簡鏈夋晥鍗曞厓鏍�
                 if (row >= 0 && column >= 0) {
-                    if (column == 13) { // 鍒楃储寮曚粠0寮�濮�
+                    if (column == 14) { // 鍒楃储寮曚粠0寮�濮�
                         // 鑾峰彇璇ュ崟鍏冩牸鐨勫��
                         Object cellValue = table.getValueAt(row, column);
                         Integer value = Integer.parseInt(cellValue.toString());
@@ -466,7 +473,7 @@
     public void history(JFrame jFrame, Long level3NodeId) {
         jFrame.setEnabled(false);
         JFrame frame1 = new JFrame("鍘嗗彶璺熻釜璁板綍");
-        frame1.setSize(1500, 800);
+        frame1.setSize(2000, 800);
         frame1.setResizable(true);
         frame1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
         frame1.setLocationRelativeTo(null);
@@ -496,17 +503,17 @@
 
         columnDto.add(new ColumnDto("搴忓彿", "", 50, "autoCreate", false, null, null));
         columnDto.add(new ColumnDto("璺熻釜鏂瑰紡", "trackMethod", 80, "dict", false, null, trackList));
-        columnDto.add(new ColumnDto("璺熻釜鍦扮偣", "trackLocation", 160, null, false, null, null));
-        columnDto.add(new ColumnDto("鍔╀慨浜哄強鍏惰仈绯绘柟寮�", "trackPerson", 160, null, false, null, null));
-        columnDto.add(new ColumnDto("鍘傛柟鍙婂叾鑱旂郴鏂瑰紡", "trackedPerson", 160, null, false, null, null));
+        columnDto.add(new ColumnDto("璺熻釜鍦扮偣", "trackLocation", 180, null, false, null, null));
+        columnDto.add(new ColumnDto("鍔╀慨浜哄強鍏惰仈绯绘柟寮�", "trackPerson", 200, null, false, null, null));
+        columnDto.add(new ColumnDto("鍘傛柟鍙婂叾鑱旂郴鏂瑰紡", "trackedPerson", 200, null, false, null, null));
         columnDto.add(new ColumnDto("鎬绘壙淇崟浣�", "generalRepair", 160, null, false, null, null));
         columnDto.add(new ColumnDto("鍒嗘壙淇崟浣�", "repair", 160, null, false, null, null));
-        columnDto.add(new ColumnDto("鑺傜偣杩涘睍", "currentStatus", 100, "dict", false, null, statusList));
-        columnDto.add(new ColumnDto("鏈夋棤鑴辨湡椋庨櫓", "hasDelayRisk", 50, "dict", false, null, hasDelayRiskList));
-        columnDto.add(new ColumnDto("棰勮瀹屾垚鏃堕棿", "estimatedCompletionTime", 120, "selectDate", false, null, null));
-        columnDto.add(new ColumnDto("瀛樺湪闂", "problem", 120, null, false, null, null));
-        columnDto.add(new ColumnDto("鍚庣画璁″垝", "followupPlan", 120, null, false, null, null));
-        columnDto.add(new ColumnDto("澶囨敞", "remark", 120, null, false, null, null));
+        columnDto.add(new ColumnDto("鑺傜偣杩涘睍", "currentStatus", 120, "dict", false, null, statusList));
+        columnDto.add(new ColumnDto("鏈夋棤鑴辨湡椋庨櫓", "hasDelayRisk", 70, "dict", false, null, hasDelayRiskList));
+        columnDto.add(new ColumnDto("棰勮瀹屾垚鏃堕棿", "estimatedCompletionTime", 220, "selectDate", false, null, null));
+        columnDto.add(new ColumnDto("瀛樺湪闂", "problem", 200, null, false, null, null));
+        columnDto.add(new ColumnDto("鍚庣画璁″垝", "followupPlan", 200, null, false, null, null));
+        columnDto.add(new ColumnDto("澶囨敞", "remark", 200, null, false, null, null));
 
         JTable subTable = CommonTable.createCommonTable(list, columnDto);
         subTable.setRowHeight(25);
diff --git a/src/main/java/com/example/server/progressTrack/dao/DjJdgzTrackRecordDao.java b/src/main/java/com/example/server/progressTrack/dao/DjJdgzTrackRecordDao.java
index 5cb0260..90c2ee6 100644
--- a/src/main/java/com/example/server/progressTrack/dao/DjJdgzTrackRecordDao.java
+++ b/src/main/java/com/example/server/progressTrack/dao/DjJdgzTrackRecordDao.java
@@ -26,7 +26,7 @@
 
     List<StatistReportsDto> getReport(Long level1NetworkId);
 
-    List<DjJdgzTrackRecord> prompt(Long level1NetworkId, int weekNo, Long userId);
+    List<DjJdgzTrackRecord> prompt(Long level1NetworkId, int weekNo, Long userId,Long deptId,Long teamId,String name);
 
     List<DjJdgzTrackRecord> getdata(String teamgroupId, Long level1NetworkId, Long level3NetworkId, Long level3NodeId, Integer status, Date beginDate, Date endDate, Integer istq);
 
@@ -39,4 +39,6 @@
     void retract(Long id);
 
     List<ReportRecordDto> getReportRecord(Long level1NetworkId, int column, Long teamgroupId);
+
+    Long getIsExit(Long level3NetworkId, String processName);
 }
diff --git a/src/main/java/com/example/server/progressTrack/model/DjJdgzTrackRecord.java b/src/main/java/com/example/server/progressTrack/model/DjJdgzTrackRecord.java
index cb40cc3..cc421a7 100644
--- a/src/main/java/com/example/server/progressTrack/model/DjJdgzTrackRecord.java
+++ b/src/main/java/com/example/server/progressTrack/model/DjJdgzTrackRecord.java
@@ -181,7 +181,7 @@
 	private String fileName;
 
 	@TableField(exist = false)
-	private Long cabinId;
+	private String cabinId;
 
 	@TableField(exist = false)
 	private String type;
diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
index a731789..26d6fd0 100644
--- a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
+++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
@@ -102,7 +102,7 @@
         super.deleteLogic(ids);
     }
 
-    public Long save(DjJdgzTrackRecord djJdgzTrackRecord) {
+    public Long save(DjJdgzTrackRecord djJdgzTrackRecord,String type) {
         Long id = null;
         int weekNo = this.getWeekNo(djJdgzTrackRecord.getLevel1NetworkId());
         LocalDate currentDate = LocalDate.now();
@@ -111,7 +111,7 @@
         // 灏嗗綋鍓嶆棩鏈熸牸寮忓寲涓哄瓧绗︿覆
         String formattedDate = currentDate.format(formatter);
         djJdgzTrackRecord.setUpdateDate(formattedDate);
-        if (djJdgzTrackRecord.getCurrentStatus() == 1) {
+        if (djJdgzTrackRecord.getCurrentStatus() == 1 && type.equals("save")) {
             //鏃堕棿姣旇緝
             djJdgzTrackRecord.setEstimatedCompletionTime(formattedDate);
         }
@@ -198,7 +198,7 @@
         return baseDao.getReport(level1NetworkId);
     }
 
-    public List<DjJdgzTrackRecord> prompt(Long level1NetworkId) {
+    public List<DjJdgzTrackRecord> prompt(Long level1NetworkId, Long deptId, Long teamId, String name) {
         Long userId = null;
        /* Map adminRole = sysUserService.adminRole();
         Object isTyRole = adminRole.get("isTyRole");
@@ -207,7 +207,7 @@
             userId = UserContext.getUser().getId();
         }*/
         int weekNo = this.getWeekNo(level1NetworkId);
-        List<DjJdgzTrackRecord> data = baseDao.prompt(level1NetworkId, weekNo, userId);
+        List<DjJdgzTrackRecord> data = baseDao.prompt(level1NetworkId, weekNo, userId,deptId,teamId,name);
         for (DjJdgzTrackRecord record : data) {
             int i = weekNo - record.getWeekNo();
             record.setStatus(i + "鍛ㄦ湭瀹屾垚");
@@ -511,8 +511,15 @@
                 }
 
                 if (!isErr) {
-                    data.setIsUpdate(false);
-                    this.save(data);
+                    Long oldId = baseDao.getIsExit(data.getLevel3NetworkId(),data.getProcessName());
+                    if (oldId!=null) {
+                        data.setId(oldId);
+                        data.setIsUpdate(true);
+                    }else{
+                        data.setIsUpdate(false);
+                    }
+
+                    this.save(data,"import");
                 }
                 if (isErr) {
                     err++;
diff --git a/src/main/resources/db/csiczb1.db b/src/main/resources/db/csiczb1.db
index 3d540e6..98fbf5d 100644
--- a/src/main/resources/db/csiczb1.db
+++ b/src/main/resources/db/csiczb1.db
Binary files differ
diff --git a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml
index ee9be25..47735e6 100644
--- a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml
+++ b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml
@@ -47,7 +47,7 @@
             and a.TEAMGROUP_ID = ${teamId}
         </if>
         <if test="cabinId!=null">
-            and a.cabin_id = ${cabinId}
+            and ',' || a.cabin_id || ',' LIKE '%,${cabinId},%';
         </if>
         <if test="isealCabin!=10000 and isealCabin!=null">
             and a.iseal_cabin = ${isealCabin}
diff --git a/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml b/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml
index 34d8dcf..7206048 100644
--- a/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml
+++ b/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml
@@ -96,10 +96,10 @@
             and c.TEAMGROUP_ID = ${teamId}
         </if>
         <if test="cabinId!=null">
-            and c.cabin_id = ${cabinId}
+            and ',' || c.cabin_id || ',' LIKE '%,${cabinId},%'
         </if>
         <if test="type!=null and type!=''">
-            and c.type = #{type}
+            and c.type = '${type}'
         </if>
         <if test="name!=null and name!=''">
             and c.name LIKE '%${name}%'
@@ -205,6 +205,15 @@
         and a.is_delete = 0
         <if test="userId!=null">
             AND a.TEAMGROUP_ID in (select teamgroup from sys_user where is_delete=0 and id=#{userId})
+        </if>
+        <if test="deptId!=null">
+            AND b.DEPT_ID  = ${deptId}
+        </if>
+        <if test="teamId!=null">
+            AND b.TEAMGROUP_ID  = ${teamId}
+        </if>
+        <if test="name!=null">
+            AND b.name LIKE '%${name}%'
         </if>
         AND b.IS_DELETE = 0
         AND c.IS_DELETE = 0
@@ -492,5 +501,19 @@
             AND b.REQUIRED_COMPLETION_TIME &gt; b.ACTUAL_COMPLETION
         </if>
     </select>
+    <select id="getIsExit" resultType="java.lang.Long">
+        SELECT id
+        FROM dj_jdgz_track_record
+        WHERE LEVEL3_NETWORK_ID = ${level3NetworkId}
+          AND process_name = #{processName}
+          AND is_delete = 0
+          AND update_date = (
+            SELECT MAX(update_date)
+            FROM dj_jdgz_track_record
+            WHERE LEVEL3_NETWORK_ID = ${level3NetworkId}
+              AND process_name = #{processName}
+              AND is_delete = 0
+        )
+    </select>
 
 </mapper>

--
Gitblit v1.9.1