jar
jinlin
2025-03-10 f0aae4b39afbcbb18fb5a0b32e3ca689662c5ca7
src/main/java/com/example/server/utils/DownLoadTmpFile.java
@@ -1,15 +1,28 @@
package com.example.server.utils;
import com.example.Application;
import com.example.server.progressTrack.model.DjJdgzTrackRecord;
import com.example.server.progressTrack.service.DjJdgzDismantTrackService;
import com.example.server.progressTrack.service.DjJdgzTrackRecordService;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import javax.swing.*;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
public class DownLoadTmpFile {
    public static void down(String name,JFrame frame1){
        name = "templateFile/" + name;
    public static void down(String name, JFrame frame1) {
        InputStream inputStream = Application.class.getClassLoader().getResourceAsStream(name);
        if (inputStream == null) {
@@ -50,4 +63,135 @@
            tempFile.delete(); // 删除临时文件
        }
    }
    public static void buildTrack(List<DjJdgzTrackRecord> list, String path, JFrame frame1) {
        LocalDate currentDate = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        // 将当前日期格式化为字符串
        String date = currentDate.format(formatter);
        InputStream inputStream = Application.class.getClassLoader().getResourceAsStream(path);
        if (inputStream == null) {
            try {
                inputStream = new FileInputStream(path);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
        try {
            Workbook workbook = new XSSFWorkbook(inputStream);
            // 获取第一个工作表
            Sheet sheet = workbook.getSheetAt(0);
            int num = 1;
            for (int i = 0; i < list.size(); i++) {
                num = num + 1;
                Row row = sheet.createRow(num);
                Cell cell = row.createCell(0);
                cell.setCellValue(list.get(i).getId());
                cell = row.createCell(1);
                cell.setCellValue(date);
                cell = row.createCell(2);
                cell.setCellValue(list.get(i).getLevel3NetworkName());
                cell = row.createCell(12);
                if (StringUtils.isNotBlank(list.get(i).getTrackPerson())) {
                    cell.setCellValue(list.get(i).getTrackPerson());
                }
                cell = row.createCell(13);
                if (StringUtils.isNotBlank(list.get(i).getTrackPersonContact())) {
                    cell.setCellValue(list.get(i).getTrackPersonContact());
                }
                cell = row.createCell(14);
                if (StringUtils.isNotBlank(list.get(i).getTrackPersonUnit())) {
                    cell.setCellValue(list.get(i).getTrackPersonUnit());
                }
                cell = row.createCell(15);
                if (StringUtils.isNotBlank(list.get(i).getTrackedPerson())) {
                    cell.setCellValue(list.get(i).getTrackPerson());
                }
                cell = row.createCell(16);
                if (StringUtils.isNotBlank(list.get(i).getTrackedPersonContact())) {
                    cell.setCellValue(list.get(i).getTrackPersonContact());
                }
                cell = row.createCell(17);
                if (StringUtils.isNotBlank(list.get(i).getTrackedPersonUnit())) {
                    cell.setCellValue(list.get(i).getTrackPersonUnit());
                }
                cell = row.createCell(18);
                if (StringUtils.isNotBlank(list.get(i).getGeneralRepairUnit())) {
                    cell.setCellValue(list.get(i).getGeneralRepairUnit());
                }
                cell = row.createCell(19);
                if (StringUtils.isNotBlank(list.get(i).getGeneralRepairUnitDirector())) {
                    cell.setCellValue(list.get(i).getGeneralRepairUnitDirector());
                }
                cell = row.createCell(20);
                if (StringUtils.isNotBlank(list.get(i).getGeneralRepairUnitContact())) {
                    cell.setCellValue(list.get(i).getGeneralRepairUnitDirector());
                }
                cell = row.createCell(21);
                if (StringUtils.isNotBlank(list.get(i).getRepairUnit())) {
                    cell.setCellValue(list.get(i).getRepairUnit());
                }
                cell = row.createCell(22);
                if (StringUtils.isNotBlank(list.get(i).getRepairUnitDirector())) {
                    cell.setCellValue(list.get(i).getRepairUnitDirector());
                }
                cell = row.createCell(23);
                if (StringUtils.isNotBlank(list.get(i).getRepairUnitContact())) {
                    cell.setCellValue(list.get(i).getRepairUnitContact());
                }
                if (i >= list.size() - 1) {
                    row = sheet.createRow(sheet.getLastRowNum() + 3);
                    cell = row.createCell(1);
                    cell.setCellValue("注:");
                    row = sheet.createRow(sheet.getLastRowNum() + 1);
                    cell = row.createCell(2);
                    cell.setCellValue("1. 设备名称:导出模板时,系统自动生成该专业的所有设备,用户不要修改");
                    row = sheet.createRow(sheet.getLastRowNum() + 1);
                    cell = row.createCell(2);
                    cell.setCellValue("2. 黄色栏目为主要填写信息,其中,预计完成时间不填时,导入时系统将当前节点的要求完成时间作为预计完成时间");
                    row = sheet.createRow(sheet.getLastRowNum() + 1);
                    cell = row.createCell(2);
                    cell.setCellValue("3. 绿色栏目为导出模板时带有数据,可根据需要修改");
                    row = sheet.createRow(sheet.getLastRowNum() + 1);
                    cell = row.createCell(2);
                    cell.setCellValue("4. 数据录入时间为跟踪的时间,导入后系统自动换算成周");
                    row = sheet.createRow(sheet.getLastRowNum() + 1);
                    cell = row.createCell(2);
                    cell.setCellValue("5. 数据录入时间或者当前节点栏目未录数据时,导入时系统判断该行为空");
                    row = sheet.createRow(sheet.getLastRowNum() + 1);
                    cell = row.createCell(2);
                    cell.setCellValue("6. 以下栏目为下拉选:当前节点、跟踪方式、节点进展、有无脱期风险");
                }
            }
            // 弹出文件选择对话框
            JFileChooser fileChooser = new JFileChooser();
            fileChooser.setSelectedFile(new File(path)); // 默认文件名
            int result = fileChooser.showSaveDialog(frame1);
            if (result == JFileChooser.APPROVE_OPTION) {
                File selectedFile = fileChooser.getSelectedFile();
                try (FileOutputStream outputStream = new FileOutputStream(selectedFile)) {
                    workbook.write(outputStream);
                    JOptionPane.showMessageDialog(frame1, "文件保存成功", "成功", JOptionPane.INFORMATION_MESSAGE);
                } catch (IOException e) {
                    JOptionPane.showMessageDialog(frame1, "文件保存失败: " + e.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
                }
            }
        } catch (
                IOException e) {
            e.printStackTrace();
        }
    }
}