Merge pull request 'dev' (#338) from dev into prd-deploy

Reviewed-on: #338
This commit is contained in:
ysCha 2026-01-22 13:43:13 +09:00
commit 9e2ae2b042
3 changed files with 78 additions and 51 deletions

View File

@ -2288,34 +2288,42 @@ public class PwrGnrSimService {
// 상단 요약정보 // 상단 요약정보
elm = doc.getElementById("objectNo"); elm = doc.getElementById("objectNo");
if (elm != null) {
elm.text( elm.text(
StringUtils.defaultString(data.getObjectNo() + " (Plan No : " + data.getPlanNo() + ")")); StringUtils.defaultString(data.getObjectNo() + " (Plan No : " + data.getPlanNo() + ")"));
}
elm = doc.getElementById("drawingEstimateCreateDate"); elm = doc.getElementById("drawingEstimateCreateDate");
if (elm != null) {
elm.text(StringUtils.defaultString(data.getDrawingEstimateCreateDate())); elm.text(StringUtils.defaultString(data.getDrawingEstimateCreateDate()));
}
elm = doc.getElementById("prefName"); elm = doc.getElementById("prefName");
if (elm != null) {
elm.text(StringUtils.defaultString(data.getPrefName())); elm.text(StringUtils.defaultString(data.getPrefName()));
}
elm = doc.getElementById("areaName"); elm = doc.getElementById("areaName");
if (elm != null) {
elm.text(StringUtils.defaultString(data.getAreaName())); elm.text(StringUtils.defaultString(data.getAreaName()));
}
elm = doc.getElementById("capacity"); elm = doc.getElementById("capacity");
if (elm != null) {
elm.text(StringUtils.defaultString(data.getCapacity()) + " kW"); elm.text(StringUtils.defaultString(data.getCapacity()) + " kW");
}
elm = doc.getElementById("anlFrcsGnrt"); elm = doc.getElementById("anlFrcsGnrt");
if (elm != null) {
elm.text(StringUtils.defaultString(String.valueOf(pwrGnrSimList[12]))); elm.text(StringUtils.defaultString(String.valueOf(pwrGnrSimList[12])));
}
elm = doc.getElementById("snowfall"); elm = doc.getElementById("snowfall");
if (elm != null) {
elm.text(StringUtils.defaultString(data.getSnowfall()) + " cm"); elm.text(StringUtils.defaultString(data.getSnowfall()) + " cm");
}
elm = doc.getElementById("standardWindSpeedId"); elm = doc.getElementById("standardWindSpeedId");
if (elm != null) {
elm.text(StringUtils.defaultString(data.getStandardWindSpeedId())); elm.text(StringUtils.defaultString(data.getStandardWindSpeedId()));
}
elm = doc.getElementById("pwrGnrSimTypeName"); elm = doc.getElementById("pwrGnrSimTypeName");
if (elm != null) {
elm.text(StringUtils.defaultString(data.getPwrGnrSimTypeName())); elm.text(StringUtils.defaultString(data.getPwrGnrSimTypeName()));
}
boolean isUnchanged = Arrays.stream(pwrGnrSimList).allMatch(value -> value == "00"); boolean isUnchanged = Arrays.stream(pwrGnrSimList).allMatch(value -> value == "00");
if (!isUnchanged) { // 변경된값 확인 if (!isUnchanged) { // 변경된값 확인

View File

@ -367,37 +367,54 @@
<select id="selectEstimateRoofCertVolKw" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="String"> <select id="selectEstimateRoofCertVolKw" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="String">
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateRoofCertVolKw */ /* sqlid : com.interplug.qcast.biz.estimate.selectEstimateRoofCertVolKw */
<![CDATA[ <![CDATA[
SELECT SELECT SUM (
CAST(SUM(F.VOL_KW) AS NUMERIC(18, 3)) AS CERT_VOL_KW CAST (ISNULL(
FROM ( CASE WHEN ISNULL(B.PQ_VOL, 0) = 0
SELECT THEN (CASE WHEN B.P_VOL < B.M_VOL THEN B.P_VOL ELSE B.M_VOL END)
T.*, ELSE (CASE WHEN B.PQ_VOL < B.M_VOL THEN B.PQ_VOL ELSE B.M_VOL END)
ROUND((T.AMOUNT * CAST(ISNULL(T.M_SPEC, 0) AS FLOAT) / 1000), 4) AS MODULE_VOL_KW, END, 0) AS NUMERIC(18, 3))) AS CERT_VOL_KW
ROUND((T.AMOUNT * CAST(ISNULL(T.P_SPEC, 0) AS FLOAT) / 1000), 4) AS PC_VOL_KW,
CASE
WHEN ROUND((T.AMOUNT * CAST(ISNULL(T.M_SPEC, 0) AS FLOAT) / 1000), 4)
< ROUND((T.AMOUNT * CAST(ISNULL(T.P_SPEC, 0) AS FLOAT) / 1000), 4)
THEN ROUND((T.AMOUNT * CAST(ISNULL(T.M_SPEC, 0) AS FLOAT) / 1000), 4)
ELSE ROUND((T.AMOUNT * CAST(ISNULL(T.P_SPEC, 0) AS FLOAT) / 1000), 4)
END AS VOL_KW
FROM ( FROM (
SELECT DISTINCT SELECT DISTINCT
TPR.ITEM_ID, A.P_ITEM_ID
TPR.ITEM_NO, , (SELECT ROUND((TE.AMOUNT * CAST(ISNULL(TE.SPECIFICATION,0) AS FLOAT) / 1000), 4)
TPR.ITEM_NAME, FROM T_PART_ESTIMATE TE (NOLOCK)
TPR.SPECIFICATION AS M_SPEC, WHERE TE.OBJECT_NO = A.OBJECT_NO AND TE.PLAN_NO = A.PLAN_NO AND TE.ITEM_ID = A.P_ITEM_ID) AS P_VOL
TPR.AMOUNT, , TRI.QCAST_CUST_PRD_ID
TPC.ITEM_ID AS PC_ITEM_ID, , (SELECT ROUND((TE.AMOUNT * CAST(ISNULL(TE.SPECIFICATION,0) AS FLOAT) / 1000), 4)
(SELECT PNOW_W FROM M_ITEM WHERE ITEM_ID = TPC.ITEM_ID) AS P_SPEC, FROM T_PART_ESTIMATE TE (NOLOCK)
TPC.CIRCUIT_CFG WHERE TE.OBJECT_NO = A.OBJECT_NO AND TE.PLAN_NO = A.PLAN_NO AND TE.ITEM_ID = TRI.QCAST_CUST_PRD_ID) AS PQ_VOL
FROM T_PART_CIRCUIT_ITEM_ESTIMATE TPC , TRI.ITEM_ID AS M_ITEM_ID
INNER JOIN T_PART_ROOF_ITEM_ESTIMATE TPR , (SELECT ROUND((A.M_AMT * CAST(ISNULL(TE.SPECIFICATION,0) AS FLOAT) / 1000), 4)
ON TPC.OBJECT_NO = TPR.OBJECT_NO FROM T_PART_ESTIMATE TE (NOLOCK)
AND TPC.PLAN_NO = TPR.PLAN_NO WHERE TE.OBJECT_NO = A.OBJECT_NO AND TE.PLAN_NO = A.PLAN_NO AND TE.ITEM_ID = TRI.ITEM_ID) AS M_VOL
WHERE TPC.OBJECT_NO = #{objectNo} , A.M_AMT
AND TPC.PLAN_NO = #{planNo} FROM (
) T SELECT
) F TPC.OBJECT_NO
, TPC.PLAN_NO
, TPC.ITEM_ID AS P_ITEM_ID
, TPC.CIRCUIT_CFG
,(
SELECT SUM(CAST(T.Item AS INT))
FROM (
SELECT CAST('<X>' + REPLACE(TPC.CIRCUIT_CFG, ',', '</X><X>') + '</X>' AS XML) AS XMLDATA
) AS Sub
CROSS APPLY (
SELECT f.x.value('.', 'VARCHAR(MAX)') AS Item
FROM Sub.XMLDATA.nodes('/X') AS f(x)
) AS T
WHERE T.Item <> ''
) AS M_AMT
FROM T_PART_CIRCUIT_ITEM_ESTIMATE TPC (NOLOCK)
WHERE
TPC.OBJECT_NO = #{objectNo}
AND
TPC.PLAN_NO = #{planNo}
)A
LEFT OUTER JOIN T_PART_ROOF_ITEM_ESTIMATE TRI (NOLOCK)
ON A.OBJECT_NO = TRI.OBJECT_NO
AND A.PLAN_NO = TRI.PLAN_NO
)B
]]> ]]>
</select> </select>

View File

@ -104,8 +104,10 @@
WHEN A.CLASS_TYPE = 0 THEN A.SLOPE WHEN A.CLASS_TYPE = 0 THEN A.SLOPE
ELSE A.ANGLE END) AS SLOPE_ANGLE ELSE A.ANGLE END) AS SLOPE_ANGLE
, (CASE , (CASE
WHEN A.CLASS_TYPE = 0 THEN CAST(CAST(A.SLOPE AS INT)AS VARCHAR) + '寸' WHEN A.CLASS_TYPE = 0
ELSE CAST(CAST(A.ANGLE AS INT)AS VARCHAR) + N'º' END) AS SLOPE_ANGLE_TXT THEN CAST(CAST(A.SLOPE AS FLOAT) AS VARCHAR) + '寸'
ELSE CAST(CAST(A.ANGLE AS FLOAT) AS VARCHAR) + N'º'
END) AS SLOPE_ANGLE_TXT
FROM T_PART_ROOF_ESTIMATE A WITH (NOLOCK) FROM T_PART_ROOF_ESTIMATE A WITH (NOLOCK)
INNER JOIN T_PART_ROOF_ITEM_ESTIMATE B WITH (NOLOCK) INNER JOIN T_PART_ROOF_ITEM_ESTIMATE B WITH (NOLOCK)
ON A.OBJECT_NO = B.OBJECT_NO ON A.OBJECT_NO = B.OBJECT_NO