dev #388
@ -1870,7 +1870,6 @@ public class EstimateService {
|
|||||||
|
|
||||||
applyExcelNumberFormat(workbook);
|
applyExcelNumberFormat(workbook);
|
||||||
applyExcelFixedNumberFormat(workbook, Arrays.asList("H25", "C12"), "#,##0.00");
|
applyExcelFixedNumberFormat(workbook, Arrays.asList("H25", "C12"), "#,##0.00");
|
||||||
applyExcelFixedNumberFormat(workbook, Arrays.asList("I2"), "#,##0.00\" kW\"");
|
|
||||||
applyExcelFixedNumberFormat(workbook, Arrays.asList("X32", "I44"), "#,##0.00");
|
applyExcelFixedNumberFormat(workbook, Arrays.asList("X32", "I44"), "#,##0.00");
|
||||||
|
|
||||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||||
@ -2043,10 +2042,6 @@ public class EstimateService {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
String normalized = raw.replace(",", "");
|
String normalized = raw.replace(",", "");
|
||||||
String upper = normalized.toUpperCase(Locale.ROOT);
|
|
||||||
if (upper.endsWith("KW")) {
|
|
||||||
normalized = normalized.substring(0, normalized.length() - 2).trim();
|
|
||||||
}
|
|
||||||
if (!normalized.matches("[-+]?\\d+(\\.\\d+)?")) {
|
if (!normalized.matches("[-+]?\\d+(\\.\\d+)?")) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -396,92 +396,18 @@
|
|||||||
<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 TCI AS (
|
|
||||||
SELECT
|
SELECT
|
||||||
TI.CIRCUIT_NO,
|
CAST(
|
||||||
TI.OBJECT_NO,
|
SUM(
|
||||||
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
|
CASE
|
||||||
WHEN ZC.P_SPEC != '0' THEN P_SPEC
|
WHEN (X.M_VOL_KW + X.M_VOL_KW2) < X.PC_VOL_KW THEN (X.M_VOL_KW + X.M_VOL_KW2)
|
||||||
WHEN ZC.CUST_SPEC != '0' THEN CUST_SPEC
|
WHEN X.PC_VOL_KW <= (X.M_VOL_KW + X.M_VOL_KW2) THEN X.PC_VOL_KW
|
||||||
WHEN ZC.PC_SPEC != '0' THEN PC_SPEC
|
ELSE 0
|
||||||
ELSE '0'
|
|
||||||
END
|
END
|
||||||
AS P_SPEC,
|
) AS DECIMAL(18,3)
|
||||||
(SELECT SPECIFICATION
|
) AS CERT_VOL_KW
|
||||||
FROM T_PART_ROOF_ITEM_ESTIMATE
|
FROM (
|
||||||
WHERE OBJECT_NO = ZC.OBJECT_NO
|
SELECT DISTINCT
|
||||||
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_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,
|
||||||
@ -500,20 +426,86 @@
|
|||||||
THEN ROUND(((Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC2, 0) AS FLOAT) / 1000), 4)
|
THEN ROUND(((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 Y
|
FROM (
|
||||||
)
|
|
||||||
SELECT
|
SELECT
|
||||||
CAST(
|
ZC.ROOF_ITEM_NO,
|
||||||
SUM(
|
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
|
CASE
|
||||||
WHEN (X.M_VOL_KW + X.M_VOL_KW2) < X.PC_VOL_KW THEN (X.M_VOL_KW + X.M_VOL_KW2)
|
WHEN ZC.P_SPEC != '0' THEN P_SPEC
|
||||||
WHEN X.PC_VOL_KW <= (X.M_VOL_KW + X.M_VOL_KW2) THEN X.PC_VOL_KW
|
WHEN ZC.CUST_SPEC != '0' THEN CUST_SPEC
|
||||||
ELSE 0
|
WHEN ZC.PC_SPEC != '0' THEN PC_SPEC
|
||||||
END
|
ELSE '0'
|
||||||
) AS DECIMAL(18,3)
|
END AS P_SPEC,
|
||||||
) AS CERT_VOL_KW
|
(SELECT SPECIFICATION
|
||||||
FROM
|
FROM T_PART_ROOF_ITEM_ESTIMATE
|
||||||
X;
|
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>
|
</select>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user