Compare commits

..

No commits in common. "08f70d58aebcb5dac72ef5d36e8d991c69347cc7" and "79f3911af63d759a393d245c22316dac52a7e7bd" have entirely different histories.

View File

@ -367,68 +367,55 @@
<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[
;WITH ;WITH TCI AS (
TCI AS ( SELECT
SELECT TI.CIRCUIT_NO,
TI.CIRCUIT_NO, TI.OBJECT_NO,
TI.OBJECT_NO, TI.PLAN_NO,
TI.PLAN_NO, TI.ITEM_ID,
TI.ITEM_ID, TI.CIRCUIT_CFG,
TI.CIRCUIT_CFG, COUNT(*) AS P_AMT
COUNT(*) AS P_AMT FROM T_PART_CIRCUIT_ITEM_ESTIMATE TI
FROM GROUP BY TI.CIRCUIT_NO, TI.OBJECT_NO, TI.PLAN_NO, TI.ITEM_ID, TI.CIRCUIT_CFG
T_PART_CIRCUIT_ITEM_ESTIMATE TI ),
GROUP BY Z AS (
TI.CIRCUIT_NO, SELECT
TI.OBJECT_NO, TRI.ROOF_ITEM_NO,
TI.PLAN_NO, TRI.OBJECT_NO,
TI.ITEM_ID, TRI.PLAN_NO,
TI.CIRCUIT_CFG TRI.ITEM_ID AS M_ITEM_ID,
), TRI.ITEM_NO,
Z AS ( TRI.SPECIFICATION AS M_SPEC,
SELECT TRI.AMOUNT AS M_AMT,
TRI.ROOF_ITEM_NO, TCI.ITEM_ID AS P_ITEM_ID,
TRI.OBJECT_NO, TCI.P_AMT,
TRI.PLAN_NO, TCI.CIRCUIT_CFG
TRI.ITEM_ID AS M_ITEM_ID, FROM T_PART_ROOF_ITEM_ESTIMATE TRI
TRI.ITEM_NO, INNER JOIN T_PART_ROOF_ESTIMATE TR
TRI.SPECIFICATION AS M_SPEC, ON TRI.ROOF_SURFACE_ID = TR.ROOF_SURFACE_ID
TRI.AMOUNT AS M_AMT, AND TRI.OBJECT_NO = TR.OBJECT_NO
TCI.ITEM_ID AS P_ITEM_ID, AND TRI.PLAN_NO = TR.PLAN_NO
TRI.PC_ITEM_ID, INNER JOIN TCI
TRI.QCAST_CUST_PRD_ID, ON TRI.ROOF_ITEM_NO = TCI.CIRCUIT_NO
TCI.P_AMT, AND TRI.OBJECT_NO = TCI.OBJECT_NO
TCI.CIRCUIT_CFG AND TRI.PLAN_NO = TCI.PLAN_NO
FROM WHERE TRI.OBJECT_NO = #{objectNo}
T_PART_ROOF_ITEM_ESTIMATE TRI AND TRI.PLAN_NO = #{planNo}
INNER JOIN T_PART_ROOF_ESTIMATE TR ON TRI.ROOF_SURFACE_ID = TR.ROOF_SURFACE_ID ),
AND TRI.OBJECT_NO = TR.OBJECT_NO Z_CFG AS (
AND TRI.PLAN_NO = TR.PLAN_NO SELECT
INNER JOIN TCI ON TRI.ROOF_ITEM_NO = TCI.CIRCUIT_NO Z.*,
AND TRI.OBJECT_NO = TCI.OBJECT_NO CAST(ISNULL(SPLIT.M_1, 0) AS INT) AS M_1,
AND TRI.PLAN_NO = TCI.PLAN_NO CAST(ISNULL(SPLIT.M_2, 0) AS INT) AS M_2,
WHERE CAST(ISNULL(SPLIT.M_3, 0) AS INT) AS M_3
TRI.OBJECT_NO = #{objectNo} FROM Z
AND TRI.PLAN_NO = #{planNo} CROSS APPLY (
),
Z_CFG AS (
SELECT
Z.*,
CAST(ISNULL(SPLIT.M_1, 0) AS INT) AS M_1,
CAST(ISNULL(SPLIT.M_2, 0) AS INT) AS M_2,
CAST(ISNULL(SPLIT.M_3, 0) AS INT) AS M_3
FROM
Z CROSS APPLY (
SELECT SELECT
X.value('(/x[1]/v[1])[1]', 'VARCHAR(50)') AS M_1, X.value('(/x[1]/v[1])[1]', 'VARCHAR(50)') AS M_1,
X.value('(/x[1]/v[2])[1]', 'VARCHAR(50)') AS M_2, X.value('(/x[1]/v[2])[1]', 'VARCHAR(50)') AS M_2,
X.value('(/x[1]/v[3])[1]', 'VARCHAR(50)') AS M_3 X.value('(/x[1]/v[3])[1]', 'VARCHAR(50)') AS M_3
FROM FROM (
( SELECT CAST('<x><v>' + REPLACE(ISNULL(Z.CIRCUIT_CFG, ''), ',', '</v><v>') + '</v></x>' AS XML)
SELECT
CAST(
'<x><v>' + REPLACE(ISNULL(Z.CIRCUIT_CFG, ''), ',', '</v><v>') + '</v></x>' AS XML
)
) A(X) ) A(X)
) SPLIT ) SPLIT
), ),
@ -442,61 +429,42 @@
ZC.P_ITEM_ID, ZC.P_ITEM_ID,
TE.SPECIFICATION AS P_SPEC, TE.SPECIFICATION AS P_SPEC,
ZC.P_AMT, ZC.P_AMT,
( (SELECT SPECIFICATION
SELECT FROM T_PART_ROOF_ITEM_ESTIMATE TRI
SPECIFICATION INNER JOIN T_PART_ROOF_ESTIMATE TR
FROM ON TRI.ROOF_SURFACE_ID = TR.ROOF_SURFACE_ID
T_PART_ROOF_ITEM_ESTIMATE TRI AND TRI.OBJECT_NO = TR.OBJECT_NO
INNER JOIN T_PART_ROOF_ESTIMATE TR ON TRI.ROOF_SURFACE_ID = TR.ROOF_SURFACE_ID AND TRI.PLAN_NO = TR.PLAN_NO
AND TRI.OBJECT_NO = TR.OBJECT_NO WHERE TRI.OBJECT_NO = ZC.OBJECT_NO
AND TRI.PLAN_NO = TR.PLAN_NO
WHERE
TRI.OBJECT_NO = ZC.OBJECT_NO
AND TRI.PLAN_NO = ZC.PLAN_NO AND TRI.PLAN_NO = ZC.PLAN_NO
AND TRI.ROOF_ITEM_NO = (ZC.ROOF_ITEM_NO + 1) AND TRI.ROOF_ITEM_NO = (ZC.ROOF_ITEM_NO + 1)) AS M_SPEC2
) AS M_SPEC2 FROM Z_CFG ZC
FROM INNER JOIN T_PART_ESTIMATE TE
Z_CFG ZC ON ZC.OBJECT_NO = TE.OBJECT_NO
INNER JOIN T_PART_ESTIMATE TE ON ZC.OBJECT_NO = TE.OBJECT_NO AND ZC.PLAN_NO = TE.PLAN_NO
AND ZC.PLAN_NO = TE.PLAN_NO AND ZC.P_ITEM_ID = TE.ITEM_ID
AND 0 < CAST(TE.SPECIFICATION AS FLOAT)
AND TE.ITEM_ID IN (ZC.P_ITEM_ID, ZC.PC_ITEM_ID, ZC.QCAST_CUST_PRD_ID)
), ),
X AS ( X AS (
SELECT SELECT
Y.M_ITEM_ID, Y.M_ITEM_ID,
Y.M_SPEC, Y.M_SPEC,
(Y.M_AMT2 - Y.M_AMT) AS M_CNT, (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_AMT * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS M_VOL,
ROUND( ROUND((Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS M_VOL2,
(Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), ROUND(((Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS R_VOL,
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 CASE
WHEN Y.M_AMT < Y.M_AMT2 THEN ROUND((Y.M_AMT * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) WHEN Y.M_AMT < Y.M_AMT2
ELSE ROUND( THEN ROUND((Y.M_AMT * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4)
(Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), ELSE
4 ROUND((Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4)
)
END AS M_VOL_KW, END AS M_VOL_KW,
ROUND((Y.P_AMT * CAST(ISNULL(Y.P_SPEC, 0) AS FLOAT) / 1000), 4) AS PC_VOL_KW, ROUND((Y.P_AMT * CAST(ISNULL(Y.P_SPEC, 0) AS FLOAT) / 1000), 4) AS PC_VOL_KW,
CASE CASE
WHEN 0 < (Y.M_AMT2 - Y.M_AMT) THEN ROUND( 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)
(Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC2, 0) AS FLOAT) / 1000
),
4
)
ELSE 0 ELSE 0
END AS M_VOL_KW2 END AS M_VOL_KW2
FROM FROM Y
Y
) )
SELECT SELECT
SUM( SUM(
@ -506,8 +474,7 @@
ELSE 0 ELSE 0
END END
) AS CERT_VOL_KW ) AS CERT_VOL_KW
FROM FROM X;
X;
]]> ]]>
</select> </select>