From d30e385951ce03335a5023f0775fd144da3c0b88 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 18 三月 2025 11:18:31 +0800
Subject: [PATCH] 修改

---
 src/main/java/com/example/client/service/ExportTrackRecordService.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 47 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/example/client/service/ExportTrackRecordService.java b/src/main/java/com/example/client/service/ExportTrackRecordService.java
index 6383426..86cb788 100644
--- a/src/main/java/com/example/client/service/ExportTrackRecordService.java
+++ b/src/main/java/com/example/client/service/ExportTrackRecordService.java
@@ -5,7 +5,9 @@
 import com.example.client.dto.JComboBoxItem;
 import com.example.client.utils.CommonTable;
 import com.example.client.utils.GBC;
+import com.example.client.utils.MultiSelectComboBox2;
 import com.example.client.utils.RequiredLabel;
+import com.example.server.ExportExcel.dto.ExcelColumnDto;
 import com.example.server.progressTrack.model.DjJdgzTrackRecord;
 import com.example.server.progressTrack.service.DjJdgzNetworkLevel1Service;
 import com.example.server.progressTrack.service.DjJdgzNetworkLevel3ListService;
@@ -13,6 +15,7 @@
 import com.example.server.progressTrack.service.DjJdgzTrackRecordService;
 import com.example.server.teamGroup.service.SysTeamGroupClassService;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
 import org.jdesktop.swingx.JXDatePicker;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -23,10 +26,8 @@
 import java.io.File;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
+import java.util.*;
 import java.util.List;
-import java.util.Map;
 
 @Service
 public class ExportTrackRecordService {
@@ -58,6 +59,28 @@
 
         GridBagLayout layout = new GridBagLayout();
         frame1.setLayout(layout);
+
+        List<ExcelColumnDto> columnDto = new ArrayList<>();
+
+        columnDto.add(new ExcelColumnDto("涓�绾ц妭鐐�", "Level1NodeName", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("浜岀骇鑺傜偣", "Level2NodeName", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("椤圭洰鍚嶇О", "Level3NetworkName", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("褰撳墠鑺傜偣", "Level3NodeName", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("涓撲笟", "teamgroupName", 20, HorizontalAlignment.CENTER));
+        columnDto.add(new ExcelColumnDto("鎬绘壙淇崟浣嶅強璐熻矗浜�", "GeneralRepair", 25, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鍒嗘壙淇崟浣嶅強璐熻矗浜�", "Repair", 25, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("璺熻釜鏂瑰紡", "trackMethodStr", 10, HorizontalAlignment.CENTER));
+        columnDto.add(new ExcelColumnDto("鍔╀慨浜�", "TrackPerson", 25, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鍘傛柟", "TrackedPerson", 25, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("璺熻釜鍦扮偣", "TrackLocation", 10, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鑺傜偣杩涘睍", "status", 10, HorizontalAlignment.CENTER));
+        columnDto.add(new ExcelColumnDto("鑴辨湡椋庨櫓", "hasDelayRiskStr", 10, HorizontalAlignment.CENTER));
+        columnDto.add(new ExcelColumnDto("棰勮瀹屾垚鏃堕棿", "EstimatedCompletionTime", 15, HorizontalAlignment.CENTER));
+        columnDto.add(new ExcelColumnDto("瀛樺湪闂", "Problem", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鍚庣画璁″垝", "FollowupPlan", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("澶囨敞", "Remark", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("濉啓鏃堕棿", "UpdateDate", 15, HorizontalAlignment.CENTER));
+
 
         JComboBoxItem[] statusList = {
                 new JComboBoxItem(0L, "杩涜涓�"),
@@ -108,6 +131,14 @@
         JLabel JLabel7 = new JLabel("缁撴潫鏃ユ湡");
         JXDatePicker endDate = new JXDatePicker();
         endDate.setPreferredSize(new Dimension(300, 28));
+
+        List<String> itemList = new ArrayList<>();
+        for (ExcelColumnDto dto : columnDto) {
+            itemList.add(dto.getColumnDesc()); // 灏� dto.getColumnDesc() 娣诲姞鍒� List 涓�
+        }
+
+        String[] items = itemList.toArray(new String[0]);
+        MultiSelectComboBox2 mulcomboBox = new MultiSelectComboBox2(items, null, null);
 
         comboBox.addItemListener(new ItemListener() {
             @Override
@@ -167,8 +198,9 @@
 
         frame1.add(JLabel7, new GBC(0, 7, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
         frame1.add(endDate, new GBC(1, 7, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
+        frame1.add(mulcomboBox, new GBC(1, 8, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
 
-        frame1.add(exportButton, new GBC(0, 8, 2, 1).setWeight(0, 0));
+        frame1.add(exportButton, new GBC(0, 11, 2, 1).setWeight(0, 0));
 
         exportButton.addActionListener(new ActionListener() {
             @Override
@@ -192,7 +224,7 @@
 
                 if (projectItem != null) {
                     level1NetworkId = projectItem.getId();
-                }else {
+                } else {
                     JOptionPane.showMessageDialog(null, "娌℃湁閫夋嫨宸ョ▼", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
                     return;
                 }
@@ -212,17 +244,21 @@
                     istq = Math.toIntExact(tq.getId());
                 }
 
-                String filePath = "璺熻釜璁板綍鎶ヨ〃.xlsx";
-                djJdgzTrackRecordService.exportExcel(filePath, teamGroupId, level1NetworkId, level3NetworkId, level3NodeId, status, beginDate2, endDate2, istq);
+                List<ExcelColumnDto> columnDto2 = new ArrayList<>();
+                Set<Integer> selectedIndices = mulcomboBox.getSelectedIndices();
+
+                for (Integer index : selectedIndices) {
+                    columnDto2.add(columnDto.get(index));
+                }
+
+                String fileName = "璺熻釜璁板綍鎶ヨ〃.xlsx";
                 JFileChooser fileChooser = new JFileChooser();
-                fileChooser.setSelectedFile(new File(filePath));
+                fileChooser.setSelectedFile(new File(fileName));
                 int result = fileChooser.showSaveDialog(frame1);
 
                 if (result == JFileChooser.APPROVE_OPTION) {
                     File selectedFile = fileChooser.getSelectedFile();
-                    // 灏嗘枃浠剁Щ鍔ㄥ埌鐢ㄦ埛閫夋嫨鐨勪綅缃�
-                    File originalFile = new File(filePath);
-                    originalFile.renameTo(selectedFile);
+                    djJdgzTrackRecordService.exportExcel(selectedFile.getPath(), teamGroupId, level1NetworkId, level3NetworkId, level3NodeId, status, beginDate2, endDate2, istq, columnDto2);
                     JOptionPane.showMessageDialog(frame1, "鏂囦欢瀵煎嚭鎴愬姛");
                 } else {
                     JOptionPane.showMessageDialog(frame1, "鏂囦欢瀵煎嚭鍙栨秷");

--
Gitblit v1.9.1