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

Reviewed-on: #336
This commit is contained in:
ysCha 2026-01-21 11:31:45 +09:00
commit b6976d285d

View File

@ -366,63 +366,40 @@
<select id="selectEstimateRoofCertVolKw" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="String">
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateRoofCertVolKw */
<![CDATA[
SELECT
REPLACE(
CAST(
ISNULL(
CAST(SUM(F.VOL_KW) AS NUMERIC(18, 3)) AS CERT_VOL_KW
FROM (
SELECT
T.*,
ROUND((T.AMOUNT * CAST(ISNULL(T.M_SPEC, 0) AS FLOAT) / 1000), 4) AS MODULE_VOL_KW,
ROUND((T.AMOUNT * CAST(ISNULL(T.P_SPEC, 0) AS FLOAT) / 1000), 4) AS PC_VOL_KW,
CASE
WHEN 0 <![CDATA[ < ]]> SUM(T.CUST_VOL_KW) AND SUM(T.CUST_VOL_KW) <![CDATA[ < ]]> SUM(T.MODULE_VOL_KW) THEN SUM(T.CUST_VOL_KW)
WHEN 0 <![CDATA[ < ]]> SUM(T.PCS_VOL_KW) AND SUM(T.PCS_VOL_KW) <![CDATA[ < ]]> SUM(T.MODULE_VOL_KW) THEN SUM(T.PCS_VOL_KW)
ELSE SUM(T.MODULE_VOL_KW)
END, 0 ) AS NUMERIC(18, 3)), ',', '') AS CERT_VOL_KW
FROM
(
SELECT
P.OBJECT_NO
, P.PLAN_NO
, PE.ITEM_ID
, PE.AMOUNT
, PE.SPECIFICATION
, I.ITEM_NAME
, ROUND((PE.AMOUNT * CAST(ISNULL(PE.SPECIFICATION, 0) AS FLOAT) / 1000), 4) AS PC_VOL_KW
, ISNULL((
SELECT
SUM((AMOUNT * CAST(ISNULL(SPECIFICATION, 0) AS FLOAT) / 1000))
FROM T_PART_ROOF_ITEM_ESTIMATE (NOLOCK)
WHERE OBJECT_NO = PE.OBJECT_NO
AND PLAN_NO = PE.PLAN_NO
AND QCAST_CUST_PRD_ID = PE.ITEM_ID), 0) AS CUST_VOL_KW
, ISNULL((
SELECT
SUM((AMOUNT * CAST(ISNULL(SPECIFICATION, 0) AS FLOAT) / 1000))
FROM T_PART_ROOF_ITEM_ESTIMATE (NOLOCK)
WHERE OBJECT_NO = PE.OBJECT_NO
AND PLAN_NO = PE.PLAN_NO
AND PC_ITEM_ID = PE.ITEM_ID), 0) AS PCS_VOL_KW
, ISNULL((
SELECT
SUM((AMOUNT * CAST(ISNULL(SPECIFICATION, 0) AS FLOAT) / 1000))
FROM T_PART_ROOF_ITEM_ESTIMATE (NOLOCK)
WHERE OBJECT_NO = PE.OBJECT_NO
AND PLAN_NO = PE.PLAN_NO
AND ITEM_ID = PE.ITEM_ID), 0) AS MODULE_VOL_KW
FROM T_PLAN P WITH (NOLOCK)
INNER JOIN T_PART_ESTIMATE PE WITH (NOLOCK)
ON P.OBJECT_NO = PE.OBJECT_NO
AND P.PLAN_NO = PE.PLAN_NO
INNER JOIN M_ITEM I WITH (NOLOCK)
ON PE.ITEM_ID = I.ITEM_ID
WHERE P.OBJECT_NO = #{objectNo}
AND P.PLAN_NO = #{planNo}
AND (
CASE
WHEN I.POWER_COM_FLG = '1' THEN 1
WHEN I.POWER_COM_FLG != '1' AND ISNULL(I.PNOW_W, 0) > 0 THEN 1
ELSE 0
END
) = 1
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 (
SELECT DISTINCT
TPR.ITEM_ID,
TPR.ITEM_NO,
TPR.ITEM_NAME,
TPR.SPECIFICATION AS M_SPEC,
TPR.AMOUNT,
TPC.ITEM_ID AS PC_ITEM_ID,
(SELECT PNOW_W FROM M_ITEM WHERE ITEM_ID = TPC.ITEM_ID) AS P_SPEC,
TPC.CIRCUIT_CFG
FROM T_PART_CIRCUIT_ITEM_ESTIMATE TPC
INNER JOIN T_PART_ROOF_ITEM_ESTIMATE TPR
ON TPC.OBJECT_NO = TPR.OBJECT_NO
AND TPC.PLAN_NO = TPR.PLAN_NO
WHERE TPC.OBJECT_NO = #{objectNo}
AND TPC.PLAN_NO = #{planNo}
) T
) F
]]>
</select>
<select id="selectEstimateRoofList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.RoofResponse">