From c99141b909c0c1f557d0baafc402502e6a7d4731 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6ARNG1Q\\dlsgk" Date: Thu, 13 Mar 2025 09:37:56 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B0=9C=EC=A0=84=EC=8B=9C=EB=AE=AC=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20=EC=97=91=EC=85=80/PDF=20=EB=8B=A4?= =?UTF-8?q?=EC=9A=B4=EB=A1=9C=EB=93=9C=20API=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pwrGnrSimulation/PwrGnrSimService.java | 33 +++++++++--------- ...l_download_simulation_detail_template.xlsx | Bin 19574 -> 19819 bytes 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/PwrGnrSimService.java b/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/PwrGnrSimService.java index 23f89998..e4910649 100644 --- a/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/PwrGnrSimService.java +++ b/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/PwrGnrSimService.java @@ -78,19 +78,19 @@ public class PwrGnrSimService { // 태양 적위 double[] taiyousekii = readValuesFromFile("template/pwrGnrSimulation/taiyousekii.txt"); - static double[][] peakcut_by_pcs_data = + double[][] peakcut_by_pcs_data = readValuesFromFile2("template/pwrGnrSimulation/peakcut_by_pcs_data.txt"); - static double[][] tashounen_data_deg0 = + double[][] tashounen_data_deg0 = readValuesFromFile2("template/pwrGnrSimulation/tashounen_data_deg0.txt"); - static double[][] tashounen_data_deg90 = + double[][] tashounen_data_deg90 = readValuesFromFile2("template/pwrGnrSimulation/tashounen_data_deg90.txt"); - static double[][] amp_peakcut_data_deg0 = + double[][] amp_peakcut_data_deg0 = readValuesFromFile2("template/pwrGnrSimulation/amp_peakcut_data_deg0.txt"); - static double[][] amp_peakcut_data_deg90 = + double[][] amp_peakcut_data_deg90 = readValuesFromFile2("template/pwrGnrSimulation/amp_peakcut_data_deg90.txt"); /** @@ -515,7 +515,7 @@ public class PwrGnrSimService { } // 배열 변환 및 포맷 처리 메서드 - private static String[] formatAndPrintArray(double[] doubleArray) { + private String[] formatAndPrintArray(double[] doubleArray) { return Arrays.stream(doubleArray) .mapToInt(d -> (int) d) // double -> int 변환 .mapToObj(i -> String.format("%,d", i)) @@ -523,7 +523,7 @@ public class PwrGnrSimService { } // 설치면의 사면 일사량 계산 - public static double[] peakcut( + public double[] peakcut( int simulationPointNumber, double koubai, double houi, @@ -620,7 +620,7 @@ public class PwrGnrSimService { } /** 0도 방위 전력 피크 컷을 계산하는 방법 */ - private static double computePowerPeakCutDeg0( + private double computePowerPeakCutDeg0( int simulationPointNumber, double sekisairitsu, double koubai) { // 0度近似曲線係数 double[] x = {1, 5, 15, 20, 30, 40}; @@ -715,7 +715,7 @@ public class PwrGnrSimService { } /** 전류 피크 컷(5차) 90도 근사 곡선 계수 */ - private static double computeAmpPeakCutDeg90( + private double computeAmpPeakCutDeg90( int simulationPointNumber, double koubai, double amp_delta) { // 초기 설정 @@ -816,8 +816,7 @@ public class PwrGnrSimService { } /** 전류 피크 컷(5차) 0도 근사 곡선 계수 */ - private static double computeAmpPeakCutDeg0( - int simulationPointNumber, double koubai, double amp_delta) { + private double computeAmpPeakCutDeg0(int simulationPointNumber, double koubai, double amp_delta) { double[] x = {5, 15, 20, 30, 40, 50}; double[] z2 = new double[6]; @@ -907,7 +906,7 @@ public class PwrGnrSimService { } /** 0도 방위 전력 피크 컷을 계산하는 방법 */ - private static double computePowerPeakCutDeg90( + private double computePowerPeakCutDeg90( int simulationPointNumber, double sekisairitsu, double koubai) { // 데이터 초기화 double[] x = {1, 5, 15, 20, 30, 40}; @@ -1194,7 +1193,7 @@ public class PwrGnrSimService { return shamenNissha; } - public static double[] readValuesFromFile(String fileName) { + public double[] readValuesFromFile(String fileName) { List values = new ArrayList<>(); try (InputStream inputStream = @@ -1217,7 +1216,7 @@ public class PwrGnrSimService { return values.stream().mapToDouble(Double::doubleValue).toArray(); } - public static String[][] readValuesFromFileString2(String fileName) { + public String[][] readValuesFromFileString2(String fileName) { List values = new ArrayList<>(); StringBuilder sb = new StringBuilder(); @@ -1255,7 +1254,7 @@ public class PwrGnrSimService { return values.toArray(new String[0][]); } - public static double[][] readValuesFromFile2(String fileName) { + public double[][] readValuesFromFile2(String fileName) { List values = new ArrayList<>(); StringBuilder sb = new StringBuilder(); @@ -1313,7 +1312,7 @@ public class PwrGnrSimService { return guideResponse; } - public static Document pwrGnrSimPdfHtml(Document doc, PwrGnrSimResponse data) + public Document pwrGnrSimPdfHtml(Document doc, PwrGnrSimResponse data) throws IOException, QcastException { String[] pwrGnrSimList = data.getFrcPwrGnrList(); @@ -1485,7 +1484,7 @@ public class PwrGnrSimService { return doc; } - public static int roundUpAuto(double value) { + public int roundUpAuto(double value) { int length = (int) Math.log10(value) + 1; // 숫자의 자리수를 계산 int place = (int) Math.pow(10, length - 1); // 자리수에 따른 올림 기준(10, 100, 1000 등) diff --git a/src/main/resources/template/excel/excel_download_simulation_detail_template.xlsx b/src/main/resources/template/excel/excel_download_simulation_detail_template.xlsx index bd9240708a031b0f36e7540e2e390178e9e2e647..18fe90eec4f310e8ecb9dc82312dead71506ab6d 100644 GIT binary patch delta 9153 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 F{|ldQ8?FEV delta 8936 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