feature/jp-0331 #526
@ -1447,7 +1447,12 @@ public class EstimateService {
|
||||
roofInfoResponse.setRoofVolList(roofVolList);
|
||||
|
||||
// 인증용량 구하기 (지붕면마다 모듈과 각각의 PCS의 총 용량을 서로 비교해 낮은쪽 용량으로 합산)
|
||||
roofInfoResponse.setCertVolKw(estimateMapper.selectEstimateRoofCertVolKw(estimateRequest));
|
||||
// 2026-06-05: SQL 은 W 합만 반환. kW 변환·3자리 절사(FLOOR)는 모듈용량(totVolKw)과 동일하게 처리 — FLOAT 나눗셈 잔여 방지
|
||||
String certVolW = estimateMapper.selectEstimateRoofCertVolKw(estimateRequest);
|
||||
roofInfoResponse.setCertVolKw(String.valueOf(
|
||||
new BigDecimal(StringUtils.isEmpty(certVolW) ? "0" : certVolW)
|
||||
.multiply(new BigDecimal("0.001"))
|
||||
.setScale(3, RoundingMode.FLOOR)));
|
||||
|
||||
//방위값
|
||||
CanvasPopupStatus cps = canvasPopupStatusService.selectCanvasPopupStatus(estimateResponse.getObjectNo(), Integer.parseInt(estimateResponse.getPlanNo()), "1");
|
||||
|
||||
@ -467,9 +467,8 @@
|
||||
GROUP BY CIRCUIT_NO, CIRCUIT_ITEM_ID, CIRCUIT_CFG, CIRCUIT_SUM, PNOW_W
|
||||
)
|
||||
|
||||
-- 2026-05-22: FLOAT ROUND 결과의 IEEE754 잔여(예: 5.5600000000000005) 차단 위해 DECIMAL 캐스팅
|
||||
-- 2026-06-02: モジュール容量(totVolKw, setScale(3,FLOOR))과 동일 표시 위해 3자리 절사 + DECIMAL(18,3) 마감 (ROUND 3번째 인자=1 → 절사)
|
||||
SELECT CAST(ROUND((SUM(MIN_VALUE) / 1000), 3, 1) AS DECIMAL(18,3)) AS CERT_VOL_KW
|
||||
-- 2026-06-05: SQL 은 W 합만 DECIMAL 로 정확히 반환. kW 변환·3자리 절사(FLOOR)는 모듈용량(totVolKw)과 동일하게 Java BigDecimal 에서 수행 → FLOAT 나눗셈 잔여(5.6899999999999995 / 5.339) 원천 차단
|
||||
SELECT CAST(SUM(MIN_VALUE) AS DECIMAL(18,3)) AS CERT_VOL_W
|
||||
FROM CIRCUIT_AGG
|
||||
|
||||
]]>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user