Merge pull request '[1375]인증용량 계산수정4' (#362) from dev into prd-deploy
Reviewed-on: #362
This commit is contained in:
commit
a20f88b07e
@ -366,62 +366,107 @@
|
|||||||
|
|
||||||
<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 SUM (
|
;WITH TCI AS (
|
||||||
CAST (ISNULL(
|
SELECT
|
||||||
CASE WHEN ISNULL(B.PQ_VOL, 0) = 0
|
TI.CIRCUIT_NO,
|
||||||
THEN (CASE WHEN B.P_VOL < B.M_VOL THEN B.P_VOL ELSE B.M_VOL END)
|
TI.OBJECT_NO,
|
||||||
ELSE (CASE WHEN B.PQ_VOL < B.M_VOL THEN B.PQ_VOL ELSE B.M_VOL END)
|
TI.PLAN_NO,
|
||||||
END, 0) AS NUMERIC(18, 3))) AS CERT_VOL_KW
|
TI.ITEM_ID,
|
||||||
FROM (
|
TI.CIRCUIT_CFG,
|
||||||
SELECT DISTINCT
|
COUNT(*) AS P_AMT
|
||||||
A.P_ITEM_ID
|
FROM T_PART_CIRCUIT_ITEM_ESTIMATE TI
|
||||||
, (SELECT ROUND((TE.AMOUNT * CAST(ISNULL(TE.SPECIFICATION,0) AS FLOAT) / 1000), 4)
|
GROUP BY TI.CIRCUIT_NO, TI.OBJECT_NO, TI.PLAN_NO, TI.ITEM_ID, TI.CIRCUIT_CFG
|
||||||
FROM T_PART_ESTIMATE TE (NOLOCK)
|
),
|
||||||
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
|
Z AS (
|
||||||
, TRI.QCAST_CUST_PRD_ID
|
SELECT
|
||||||
, (SELECT ROUND((TE.AMOUNT * CAST(ISNULL(TE.SPECIFICATION,0) AS FLOAT) / 1000), 4)
|
TRI.ROOF_ITEM_NO,
|
||||||
FROM T_PART_ESTIMATE TE (NOLOCK)
|
TRI.OBJECT_NO,
|
||||||
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
|
TRI.PLAN_NO,
|
||||||
, TRI.ITEM_ID AS M_ITEM_ID
|
TRI.ITEM_ID AS M_ITEM_ID,
|
||||||
, (SELECT ROUND((A.M_AMT * CAST(ISNULL(TE.SPECIFICATION,0) AS FLOAT) / 1000), 4)
|
TRI.ITEM_NO,
|
||||||
FROM T_PART_ESTIMATE TE (NOLOCK)
|
TRI.SPECIFICATION AS M_SPEC,
|
||||||
WHERE TE.OBJECT_NO = A.OBJECT_NO AND TE.PLAN_NO = A.PLAN_NO AND TE.ITEM_ID = TRI.ITEM_ID) AS M_VOL
|
TRI.AMOUNT AS M_AMT,
|
||||||
, A.M_AMT
|
TCI.ITEM_ID AS P_ITEM_ID,
|
||||||
FROM (
|
TCI.P_AMT,
|
||||||
SELECT
|
TCI.CIRCUIT_CFG
|
||||||
TPC.OBJECT_NO
|
FROM T_PART_ROOF_ITEM_ESTIMATE TRI
|
||||||
, TPC.PLAN_NO
|
INNER JOIN TCI
|
||||||
, TPC.ITEM_ID AS P_ITEM_ID
|
ON TRI.ROOF_ITEM_NO = TCI.CIRCUIT_NO
|
||||||
, TPC.CIRCUIT_CFG
|
AND TRI.OBJECT_NO = TCI.OBJECT_NO
|
||||||
,(
|
AND TRI.PLAN_NO = TCI.PLAN_NO
|
||||||
SELECT SUM(CAST(T.Item AS INT))
|
WHERE TRI.OBJECT_NO = #{objectNo}
|
||||||
FROM (
|
AND TRI.PLAN_NO = #{planNo}
|
||||||
SELECT CAST('<X>' + REPLACE(TPC.CIRCUIT_CFG, ',', '</X><X>') + '</X>' AS XML) AS XMLDATA
|
),
|
||||||
) AS Sub
|
Z_CFG AS (
|
||||||
CROSS APPLY (
|
SELECT
|
||||||
SELECT f.x.value('.', 'VARCHAR(MAX)') AS Item
|
Z.*,
|
||||||
FROM Sub.XMLDATA.nodes('/X') AS f(x)
|
CAST(ISNULL(SPLIT.M_1, 0) AS INT) AS M_1,
|
||||||
) AS T
|
CAST(ISNULL(SPLIT.M_2, 0) AS INT) AS M_2,
|
||||||
WHERE T.Item <> ''
|
CAST(ISNULL(SPLIT.M_3, 0) AS INT) AS M_3
|
||||||
) AS M_AMT
|
FROM Z
|
||||||
FROM T_PART_CIRCUIT_ITEM_ESTIMATE TPC (NOLOCK)
|
CROSS APPLY (
|
||||||
WHERE
|
SELECT
|
||||||
TPC.OBJECT_NO = #{objectNo}
|
X.value('(/x[1]/v[1])[1]', 'VARCHAR(50)') AS M_1,
|
||||||
AND
|
X.value('(/x[1]/v[2])[1]', 'VARCHAR(50)') AS M_2,
|
||||||
TPC.PLAN_NO = #{planNo}
|
X.value('(/x[1]/v[3])[1]', 'VARCHAR(50)') AS M_3
|
||||||
)A
|
FROM (
|
||||||
LEFT OUTER JOIN (
|
SELECT CAST('<x><v>' + REPLACE(ISNULL(Z.CIRCUIT_CFG, ''), ',', '</v><v>') + '</v></x>' AS XML)
|
||||||
SELECT TRI2.*, TRE.ROOF_SURFACE -- 필요한 컬럼들
|
) A(X)
|
||||||
FROM T_PART_ROOF_ITEM_ESTIMATE TRI2 (NOLOCK)
|
) SPLIT
|
||||||
INNER JOIN T_PART_ROOF_ESTIMATE TRE (NOLOCK)
|
),
|
||||||
ON TRI2.OBJECT_NO = TRE.OBJECT_NO
|
Y AS (
|
||||||
AND TRI2.PLAN_NO = TRE.PLAN_NO
|
SELECT
|
||||||
AND TRI2.ROOF_SURFACE_ID = TRE.ROOF_SURFACE_ID
|
ZC.ROOF_ITEM_NO,
|
||||||
) TRI
|
ZC.M_ITEM_ID,
|
||||||
ON A.OBJECT_NO = TRI.OBJECT_NO
|
ZC.M_SPEC,
|
||||||
AND A.PLAN_NO = TRI.PLAN_NO
|
ZC.M_AMT,
|
||||||
)B
|
(ZC.M_1 + ZC.M_2 + ZC.M_3) AS M_AMT2,
|
||||||
|
ZC.P_ITEM_ID,
|
||||||
|
TE.SPECIFICATION AS P_SPEC,
|
||||||
|
ZC.P_AMT,
|
||||||
|
(SELECT SPECIFICATION
|
||||||
|
FROM T_PART_ROOF_ITEM_ESTIMATE
|
||||||
|
WHERE OBJECT_NO = ZC.OBJECT_NO
|
||||||
|
AND PLAN_NO = ZC.PLAN_NO
|
||||||
|
AND ROOF_ITEM_NO = (ZC.ROOF_ITEM_NO + 1)) AS M_SPEC2
|
||||||
|
FROM Z_CFG ZC
|
||||||
|
INNER JOIN T_PART_ESTIMATE TE
|
||||||
|
ON ZC.OBJECT_NO = TE.OBJECT_NO
|
||||||
|
AND ZC.PLAN_NO = TE.PLAN_NO
|
||||||
|
AND ZC.P_ITEM_ID = TE.ITEM_ID
|
||||||
|
),
|
||||||
|
X AS (
|
||||||
|
SELECT
|
||||||
|
Y.M_ITEM_ID,
|
||||||
|
Y.M_SPEC,
|
||||||
|
(Y.M_AMT2 - Y.M_AMT) AS M_CNT,
|
||||||
|
ROUND((Y.M_AMT * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS M_VOL,
|
||||||
|
ROUND((Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS M_VOL2,
|
||||||
|
ROUND(((Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS R_VOL,
|
||||||
|
CASE
|
||||||
|
WHEN Y.M_AMT < Y.M_AMT2
|
||||||
|
THEN ROUND((Y.M_AMT * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4)
|
||||||
|
ELSE
|
||||||
|
ROUND((Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4)
|
||||||
|
END AS M_VOL_KW,
|
||||||
|
ROUND((Y.P_AMT * CAST(ISNULL(Y.P_SPEC, 0) AS FLOAT) / 1000), 4) AS PC_VOL_KW,
|
||||||
|
CASE
|
||||||
|
WHEN 0 < (Y.M_AMT2 - Y.M_AMT)
|
||||||
|
THEN ROUND(((Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC2, 0) AS FLOAT) / 1000), 4)
|
||||||
|
ELSE 0
|
||||||
|
END AS M_VOL_KW2
|
||||||
|
FROM Y
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN (X.M_VOL_KW + X.M_VOL_KW2) < X.PC_VOL_KW THEN (X.M_VOL_KW + X.M_VOL_KW2)
|
||||||
|
WHEN X.PC_VOL_KW <= (X.M_VOL_KW + X.M_VOL_KW2) THEN X.PC_VOL_KW
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
) AS CERT_VOL_KW
|
||||||
|
FROM X;
|
||||||
]]>
|
]]>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user