dev #387

Merged
ysCha merged 2 commits from dev into dev-deploy 2026-02-10 14:46:51 +09:00
Showing only changes of commit 9bbedbba6b - Show all commits

View File

@ -396,112 +396,6 @@
<select id="selectEstimateRoofCertVolKw" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="String">
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateRoofCertVolKw */
<![CDATA[
;WITH TCI AS (
SELECT
TI.CIRCUIT_NO,
TI.OBJECT_NO,
TI.PLAN_NO,
TI.ITEM_ID,
TI.CIRCUIT_CFG,
COUNT(*) AS P_AMT
FROM T_PART_CIRCUIT_ITEM_ESTIMATE TI
GROUP BY TI.CIRCUIT_NO, TI.OBJECT_NO, TI.PLAN_NO, TI.ITEM_ID, TI.CIRCUIT_CFG
),
Z AS (
SELECT
TRI.ROOF_ITEM_NO,
TRI.OBJECT_NO,
TRI.PLAN_NO,
TRI.ITEM_ID AS M_ITEM_ID,
TRI.ITEM_NO,
TRI.SPECIFICATION AS M_SPEC,
TRI.AMOUNT AS M_AMT,
TCI.ITEM_ID AS P_ITEM_ID,
TRI.PC_ITEM_ID,
TRI.QCAST_CUST_PRD_ID,
TCI.P_AMT
, (SELECT ISNULL(M.PNOW_W,0) FROM M_ITEM M WHERE M.ITEM_ID = TCI.ITEM_ID) AS P_SPEC
, (SELECT ISNULL(M.PNOW_W,0) FROM M_ITEM M WHERE M.ITEM_ID = TRI.PC_ITEM_ID) AS PC_SPEC
, (SELECT ISNULL(M.PNOW_W,0) FROM M_ITEM M WHERE M.ITEM_ID = TRI.QCAST_CUST_PRD_ID) AS CUST_SPEC
,TCI.CIRCUIT_CFG
FROM T_PART_ROOF_ITEM_ESTIMATE TRI
INNER JOIN TCI
ON TRI.ROOF_ITEM_NO = TCI.CIRCUIT_NO
AND TRI.OBJECT_NO = TCI.OBJECT_NO
AND TRI.PLAN_NO = TCI.PLAN_NO
WHERE
TRI.OBJECT_NO = #{objectNo}
AND
TRI.PLAN_NO = #{planNo}
),
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
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[3])[1]', 'VARCHAR(50)') AS M_3
FROM (
SELECT CAST('<x><v>' + REPLACE(ISNULL(Z.CIRCUIT_CFG, ''), ',', '</v><v>') + '</v></x>' AS XML)
) A(X)
) SPLIT
),
Y AS (
SELECT
ZC.ROOF_ITEM_NO,
ZC.M_ITEM_ID,
ZC.M_SPEC,
ZC.M_AMT,
(ZC.M_1 + ZC.M_2 + ZC.M_3) AS M_AMT2,
ZC.P_ITEM_ID,
ZC.P_AMT,
ZC.PC_ITEM_ID,
ZC.QCAST_CUST_PRD_ID,
CASE
WHEN ZC.P_SPEC != '0' THEN P_SPEC
WHEN ZC.CUST_SPEC != '0' THEN CUST_SPEC
WHEN ZC.PC_SPEC != '0' THEN PC_SPEC
ELSE '0'
END
AS P_SPEC,
(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 TE.ITEM_ID IN (ZC.P_ITEM_ID, ZC.PC_ITEM_ID, ZC.QCAST_CUST_PRD_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
CAST(
SUM(
@ -512,8 +406,106 @@
END
) AS DECIMAL(18,3)
) AS CERT_VOL_KW
FROM
X;
FROM (
SELECT DISTINCT
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 (
SELECT
ZC.ROOF_ITEM_NO,
ZC.M_ITEM_ID,
ZC.M_SPEC,
ZC.M_AMT,
(ZC.M_1 + ZC.M_2 + ZC.M_3) AS M_AMT2,
ZC.P_ITEM_ID,
ZC.P_AMT,
ZC.PC_ITEM_ID,
ZC.QCAST_CUST_PRD_ID,
CASE
WHEN ZC.P_SPEC != '0' THEN P_SPEC
WHEN ZC.CUST_SPEC != '0' THEN CUST_SPEC
WHEN ZC.PC_SPEC != '0' THEN PC_SPEC
ELSE '0'
END AS P_SPEC,
(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 (
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 (
SELECT
TRI.ROOF_ITEM_NO,
TRI.OBJECT_NO,
TRI.PLAN_NO,
TRI.ITEM_ID AS M_ITEM_ID,
TRI.ITEM_NO,
TRI.SPECIFICATION AS M_SPEC,
TRI.AMOUNT AS M_AMT,
TCI.ITEM_ID AS P_ITEM_ID,
TRI.PC_ITEM_ID,
TRI.QCAST_CUST_PRD_ID,
TCI.P_AMT,
(SELECT ISNULL(M.PNOW_W,0) FROM M_ITEM M WHERE M.ITEM_ID = TCI.ITEM_ID) AS P_SPEC,
(SELECT ISNULL(M.PNOW_W,0) FROM M_ITEM M WHERE M.ITEM_ID = TRI.PC_ITEM_ID) AS PC_SPEC,
(SELECT ISNULL(M.PNOW_W,0) FROM M_ITEM M WHERE M.ITEM_ID = TRI.QCAST_CUST_PRD_ID) AS CUST_SPEC,
TCI.CIRCUIT_CFG
FROM T_PART_ROOF_ITEM_ESTIMATE TRI
INNER JOIN (
SELECT
TI.CIRCUIT_NO,
TI.OBJECT_NO,
TI.PLAN_NO,
TI.ITEM_ID,
TI.CIRCUIT_CFG,
COUNT(*) AS P_AMT
FROM T_PART_CIRCUIT_ITEM_ESTIMATE TI
GROUP BY TI.CIRCUIT_NO, TI.OBJECT_NO, TI.PLAN_NO, TI.ITEM_ID, TI.CIRCUIT_CFG
) TCI
ON TRI.ROOF_ITEM_NO = TCI.CIRCUIT_NO
AND TRI.OBJECT_NO = TCI.OBJECT_NO
AND TRI.PLAN_NO = TCI.PLAN_NO
WHERE
TRI.OBJECT_NO = #{objectNo}
AND TRI.PLAN_NO = #{planNo}
) Z
CROSS APPLY (
SELECT
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[3])[1]', 'VARCHAR(50)') AS M_3
FROM (
SELECT CAST('<x><v>' + REPLACE(ISNULL(Z.CIRCUIT_CFG, ''), ',', '</v><v>') + '</v></x>' AS XML)
) A(X)
) SPLIT
) ZC
INNER JOIN T_PART_ESTIMATE TE
ON ZC.OBJECT_NO = TE.OBJECT_NO
AND ZC.PLAN_NO = TE.PLAN_NO
AND TE.ITEM_ID IN (ZC.P_ITEM_ID, ZC.PC_ITEM_ID, ZC.QCAST_CUST_PRD_ID)
) Y
) X
]]>
</select>