|
@ -10,32 +10,79 @@ import a8k.constant.FilePathConstant; |
|
|
import a8k.service.dao.type.OptRawScanData; |
|
|
import a8k.service.dao.type.OptRawScanData; |
|
|
import a8k.service.dao.type.a8kidcard.zenum.A8kOptType; |
|
|
import a8k.service.dao.type.a8kidcard.zenum.A8kOptType; |
|
|
import a8k.utils.ZDateUtils; |
|
|
import a8k.utils.ZDateUtils; |
|
|
import cn.hutool.core.io.FileUtil; |
|
|
|
|
|
import jakarta.annotation.PostConstruct; |
|
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.springframework.stereotype.Component; |
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
|
import java.io.File; |
|
|
import java.io.File; |
|
|
import java.io.FileWriter; |
|
|
import java.io.FileWriter; |
|
|
import java.io.IOException; |
|
|
import java.io.IOException; |
|
|
|
|
|
import java.util.Arrays; |
|
|
import java.util.Date; |
|
|
import java.util.Date; |
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
import java.util.Objects; |
|
|
|
|
|
|
|
|
@Slf4j |
|
|
@Slf4j |
|
|
@Component |
|
|
@Component |
|
|
public class FileMgrService { |
|
|
public class FileMgrService { |
|
|
|
|
|
|
|
|
|
|
|
// |
|
|
|
|
|
// EXT |
|
|
|
|
|
// |
|
|
|
|
|
|
|
|
|
|
|
public void clearOptReport() { |
|
|
|
|
|
File dir = new File(FilePathConstant.FILE_OPT_REPORT_PATH); |
|
|
|
|
|
if (dir.exists() && dir.listFiles() != null) { |
|
|
|
|
|
Arrays.stream(Objects.requireNonNull(dir.listFiles())).forEach(File::delete); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<String> getOptReportList() { |
|
|
|
|
|
File dir = new File(FilePathConstant.FILE_OPT_REPORT_PATH); |
|
|
|
|
|
if (!dir.exists()) { |
|
|
|
|
|
dir.mkdir(); |
|
|
|
|
|
} |
|
|
|
|
|
return Arrays.asList(Objects.requireNonNull(dir.list())); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getOptReportFilePath(String fileName) { |
|
|
|
|
|
return String.format("%s/%s", FilePathConstant.FILE_OPT_REPORT_PATH, fileName); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public String storageOptReport(String projName, Integer projId, OptScanResult optScanResult) throws IOException { |
|
|
|
|
|
File dir = new File(FilePathConstant.FILE_OPT_REPORT_PATH); |
|
|
|
|
|
dir.mkdir(); |
|
|
|
|
|
//FileName |
|
|
|
|
|
String fileName = String.format("%s-%s-%s.txt", projName, optScanResult.rawData.optType, ZDateUtils.toID(optScanResult.rawData.scanDate)); |
|
|
|
|
|
String filePath = String.format("%s/%s", FilePathConstant.FILE_OPT_REPORT_PATH, fileName); |
|
|
|
|
|
|
|
|
|
|
|
File file = new File(filePath); |
|
|
|
|
|
|
|
|
|
|
|
FileWriter writer = new FileWriter(file.getAbsolutePath()); |
|
|
|
|
|
String content = createOptReportContent(projName, projId, optScanResult); |
|
|
|
|
|
writer.write(content); |
|
|
|
|
|
writer.close(); |
|
|
|
|
|
return file.getAbsolutePath(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// |
|
|
|
|
|
// PRIVATE |
|
|
|
|
|
// |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String createOptReportContent(String projName, Integer projId, OptScanResult optScanResult) { |
|
|
private String createOptReportContent(String projName, Integer projId, OptScanResult optScanResult) { |
|
|
StringBuilder sb = new StringBuilder(); |
|
|
StringBuilder sb = new StringBuilder(); |
|
|
sb.append("日期").append("\n"); |
|
|
|
|
|
|
|
|
sb.append("Date").append("\n"); |
|
|
sb.append(ZDateUtils.toDateString(optScanResult.rawData.scanDate)).append("\n"); |
|
|
sb.append(ZDateUtils.toDateString(optScanResult.rawData.scanDate)).append("\n"); |
|
|
sb.append("项目名称").append("\n"); |
|
|
|
|
|
|
|
|
sb.append("ProjName").append("\n"); |
|
|
sb.append(projName).append("\n"); |
|
|
sb.append(projName).append("\n"); |
|
|
sb.append("项目ID").append("\n"); |
|
|
|
|
|
|
|
|
sb.append("ProjId").append("\n"); |
|
|
sb.append(projId).append("\n"); |
|
|
sb.append(projId).append("\n"); |
|
|
sb.append("光学类型").append("\n"); |
|
|
|
|
|
|
|
|
sb.append("OptType").append("\n"); |
|
|
sb.append(optScanResult.rawData.optType).append("\n"); |
|
|
sb.append(optScanResult.rawData.optType).append("\n"); |
|
|
sb.append("发射增益").append("\n"); |
|
|
|
|
|
|
|
|
sb.append("lasterGain").append("\n"); |
|
|
sb.append(optScanResult.rawData.lasterGain).append("\n"); |
|
|
sb.append(optScanResult.rawData.lasterGain).append("\n"); |
|
|
sb.append("接收增益").append("\n"); |
|
|
|
|
|
|
|
|
sb.append("scanerGain").append("\n"); |
|
|
sb.append(optScanResult.rawData.scanGain).append("\n"); |
|
|
sb.append(optScanResult.rawData.scanGain).append("\n"); |
|
|
sb.append("\n"); |
|
|
sb.append("\n"); |
|
|
|
|
|
|
|
@ -107,7 +154,7 @@ public class FileMgrService { |
|
|
sb.append("\n"); |
|
|
sb.append("\n"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sb.append("解析后的数据(250个点)").append("\n"); |
|
|
|
|
|
|
|
|
sb.append("AfterAnalysPoint(250)").append("\n"); |
|
|
for (int i = 0; i < 250; i++) { |
|
|
for (int i = 0; i < 250; i++) { |
|
|
if (i < optScanResult.analysResult.resultData.length) { |
|
|
if (i < optScanResult.analysResult.resultData.length) { |
|
|
sb.append(optScanResult.analysResult.resultData[i]).append("\n"); |
|
|
sb.append(optScanResult.analysResult.resultData[i]).append("\n"); |
|
@ -117,7 +164,7 @@ public class FileMgrService { |
|
|
} |
|
|
} |
|
|
sb.append("\n"); |
|
|
sb.append("\n"); |
|
|
|
|
|
|
|
|
sb.append("原始数据(1200个点)").append("\n"); |
|
|
|
|
|
|
|
|
sb.append("RawData(1200)").append("\n"); |
|
|
for (int i = 0; i < 1200; i++) { |
|
|
for (int i = 0; i < 1200; i++) { |
|
|
if (i < optScanResult.rawData.rawData.length) { |
|
|
if (i < optScanResult.rawData.rawData.length) { |
|
|
sb.append(optScanResult.rawData.rawData[i]).append("\n"); |
|
|
sb.append(optScanResult.rawData.rawData[i]).append("\n"); |
|
@ -130,21 +177,6 @@ public class FileMgrService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String createOptReport(String projName, Integer projId, OptScanResult optScanResult) throws IOException { |
|
|
|
|
|
|
|
|
|
|
|
File dir = new File(FilePathConstant.FILE_OPT_REPORT_PATH); |
|
|
|
|
|
dir.mkdir(); |
|
|
|
|
|
|
|
|
|
|
|
String path = String.format("%s/%s.txt", FilePathConstant.FILE_OPT_REPORT_PATH, ZDateUtils.toID(optScanResult.rawData.scanDate)); |
|
|
|
|
|
File file = new File(path); |
|
|
|
|
|
|
|
|
|
|
|
FileWriter writer = new FileWriter(file.getAbsolutePath()); |
|
|
|
|
|
String content = createOptReportContent(projName, projId, optScanResult); |
|
|
|
|
|
writer.write(content); |
|
|
|
|
|
writer.close(); |
|
|
|
|
|
return file.getAbsolutePath(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void createFakeOptReport() throws IOException { |
|
|
public void createFakeOptReport() throws IOException { |
|
|
OptRawScanData data = new OptRawScanData(); |
|
|
OptRawScanData data = new OptRawScanData(); |
|
|
data.id = 1; |
|
|
data.id = 1; |
|
@ -183,18 +215,19 @@ public class FileMgrService { |
|
|
optScanResult.rawData = data; |
|
|
optScanResult.rawData = data; |
|
|
optScanResult.analysResult = optAlgoAnalysResult; |
|
|
optScanResult.analysResult = optAlgoAnalysResult; |
|
|
|
|
|
|
|
|
String path = createOptReport("Fake", 1, optScanResult); |
|
|
|
|
|
|
|
|
String path = storageOptReport("Fake( xxxx)", 1, optScanResult); |
|
|
log.info("createFakeOptReport success {}", path); |
|
|
log.info("createFakeOptReport success {}", path); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// public static void main(String[] args) { |
|
|
|
|
|
// FileMgrService fileMgrService = new FileMgrService(); |
|
|
|
|
|
// try { |
|
|
|
|
|
// fileMgrService.createFakeOptReport(); |
|
|
|
|
|
// } catch (IOException e) { |
|
|
|
|
|
// e.printStackTrace(); |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
public static void main(String[] args) { |
|
|
|
|
|
FileMgrService fileMgrService = new FileMgrService(); |
|
|
|
|
|
try { |
|
|
|
|
|
fileMgrService.createFakeOptReport(); |
|
|
|
|
|
log.info("{}", fileMgrService.getOptReportList()); |
|
|
|
|
|
} catch (IOException e) { |
|
|
|
|
|
e.printStackTrace(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |