add paging for screen 4

This commit is contained in:
Hoang Xuan Mai/(Hoang Xuan Mai)/현장대리인/SK
2025-08-05 15:52:51 +07:00
parent 837ff7cc84
commit afd3ccfd1e
4 changed files with 348 additions and 1 deletions

View File

@ -45,6 +45,14 @@ public class EqpmIndMntrCtr {
result.add("eqpmIndMntrData", eqpmIndMntrSvc.selectDailyEnrgUseMainIdx(paramMap.getParams()));
return result;
}
@RequestMapping(value="/selectDailyEnrgUseMainIdxPageTotal", method=RequestMethod.POST)
@ResponseBody
public Object selectDailyEnrgUseMainIdxPageTotal(@RequestBody BaseParam paramMap){
BaseResponse result = new BaseResponse();
result.add("eqpmIndMntrPageTotal", eqpmIndMntrSvc.selectDailyEnrgUseMainIdxPageTotal(paramMap.getParams()));
return result;
}
/**
* @methodName : selectMonthlyEnrgUseMainIdx
@ -61,4 +69,13 @@ public class EqpmIndMntrCtr {
return result;
}
@RequestMapping(value="/selectMonthlyEnrgUseMainIdxPageTotal", method=RequestMethod.POST)
@ResponseBody
public Object selectMonthlyEnrgUseMainIdxPageTotal(@RequestBody BaseParam paramMap){
BaseResponse result = new BaseResponse();
result.add("eqpmIndMntrPageTotal", eqpmIndMntrSvc.selectMonthlyEnrgUseMainIdxPageTotal(paramMap.getParams()));
return result;
}
}

View File

@ -30,6 +30,10 @@ public class EqpmIndMntrSvc extends BaseSvc{
public Object selectDailyEnrgUseMainIdx(HashMap<String, Object> params) {
return dao.selectList("ems.effc.eqpmIndMntr.selectDailyEnrgUseMainIdx", params);
}
public Object selectDailyEnrgUseMainIdxPageTotal(HashMap<String, Object> params) {
return dao.selectList("ems.effc.eqpmIndMntr.selectDailyEnrgUseMainIdxPageTotal", params);
}
/**
* @methodName : selectMonthlyEnrgUseMainIdx
@ -41,4 +45,8 @@ public class EqpmIndMntrSvc extends BaseSvc{
public Object selectMonthlyEnrgUseMainIdx(HashMap<String, Object> params) {
return dao.selectList("ems.effc.eqpmIndMntr.selectMonthlyEnrgUseMainIdx", params);
}
public Object selectMonthlyEnrgUseMainIdxPageTotal(HashMap<String, Object> params) {
return dao.selectList("ems.effc.eqpmIndMntr.selectMonthlyEnrgUseMainIdxPageTotal", params);
}
}

View File

@ -11,7 +11,7 @@
AND A.READ_DTTM BETWEEN TO_DATE(CONCAT(#{fromDt},'000000'), 'YYYYMMDDHH24MISS')
AND TO_DATE(CONCAT(#{toDt},'235959'), 'YYYYMMDDHH24MISS')
ORDER BY TAG_ID, READ_DTTM
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY
</select>
<select id="selectTagRawDataByQuarterPageTotal" resultType="camelHashMap">

View File

@ -210,6 +210,168 @@
( B.EQPM_ID = A.EQPM_ID )
ORDER BY
A.EQPM_NM
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY
</select>
<select id="selectDailyEnrgUseMainIdxPageTotal" resultType="camelHashMap">
/* ems.effc.eqpmIndMntr.selectDailyEnrgUseMainIdxPageTotal: 에너지 일별 주요 지표 */
WITH ECC_INFO AS (
SELECT
CONNECT_BY_ROOT ECC_ID AS FAB_ID,
CONNECT_BY_ROOT ECC_NM AS FAB_NM,
ECC_ID,
ECC_NM
FROM
EMS_ECC_BASE_INFO
START WITH
COM_ID = #{session.comId}
AND LOC_KIND = 'LOC_FAC'
AND ECC_ID = #{fabId}
CONNECT BY
PRIOR COM_ID = COM_ID
AND PRIOR ECC_ID = UP_ECC_ID
),
EQPM_LIST AS (
SELECT
A.COM_ID,
A.EQPM_ID,
A.EQPM_NM,
'ROI000001' AS READ_OBJ_ID,
A.EQPM_GRP_ID,
B.EQPM_GRP_NM,
A.ECC_ID,
FAB_ID,
FAB_NM,
C.ECC_NM,
#{fromDt} AS OBJ_DT,
#{fromDtMm} AS OBJ_MM
FROM
EMS_EQPM_BASE_INFO A
INNER JOIN EMS_EQPM_GRP B ON
( B.COM_ID = A.COM_ID
AND B.EQPM_GRP_ID = A.EQPM_GRP_ID )
INNER JOIN ECC_INFO C ON
( C.ECC_ID = A.ECC_ID )
WHERE
A.COM_ID = #{session.comId}
AND B.EQPM_KIND_ID = #{eqpmKindId}
AND B.EQPM_GRP_ID = #{eqpmGrpId}
),
EQPM_RSLT_DATA AS (
SELECT
A.COM_ID,
A.EQPM_ID,
A.EQPM_NM,
A.READ_OBJ_ID,
A.EQPM_GRP_ID,
A.EQPM_GRP_NM,
A.ECC_ID,
A.FAB_ID,
FAB_NM,
A.ECC_NM
,
round(B.PLAN_VAL / to_number(to_char(LAST_DAY(to_date(A.OBJ_DT, 'yyyymmdd')), 'DD')), 0) AS PLAN_VAL,
( SELECT SUM(C.TOT_VAL) FROM EMS_EQPM_TOT_DATA C
WHERE C.COM_ID = A.COM_ID
AND C.EQPM_ID = A.EQPM_ID
AND C.READ_OBJ_ID = A.READ_OBJ_ID
AND C.TOT_DTTM <![CDATA[ >= ]]> to_date(A.OBJ_DT, 'yyyymmdd')
AND C.TOT_DTTM <![CDATA[ < ]]> (to_date(A.OBJ_DT, 'yyyymmdd') + 1)) AS USED_VAL
FROM
EQPM_LIST A
LEFT JOIN EMS_EQPM_MM_PLAN B ON
( B.COM_ID = A.COM_ID
AND B.EQPM_ID = A.EQPM_ID
AND B.READ_OBJ_ID = A.READ_OBJ_ID
AND B.OBJ_MM = A.OBJ_MM)
),
GD_LIST AS (
SELECT
COM_ID,
GD_IDX_ID,
GD_IDX_NM,
UP_TOT_METH,
EQPM_GRP_ID,
'GD' || trim(TO_CHAR(ROW_SEQ, '00')) AS GD_SEQ,
ROW_SEQ
FROM
(
SELECT
COM_ID,
GD_IDX_ID,
GD_IDX_NM,
EQPM_GRP_ID,
UP_TOT_METH,
SORT_SEQ,
ROW_NUMBER() OVER (
ORDER BY SORT_SEQ,
GD_IDX_ID) AS ROW_SEQ
FROM
EMS_EQPM_GD_IDX
WHERE
COM_ID = #{session.comId}
AND EQPM_GRP_ID = #{eqpmGrpId}
)
WHERE
ROW_SEQ <![CDATA[ <= ]]> 10
),
EQPM_GD_DATA AS (
SELECT
EQPM_ID,
GD01,
GD02,
GD03,
GD04,
GD05,
GD06,
GD07,
GD08,
GD09,
GD10
FROM
(
SELECT
B.EQPM_ID,
MAX(GD_SEQ) AS GD_SEQ
,
CASE
A.UP_TOT_METH WHEN 'SUM' THEN SUM(C.TOT_VAL)
WHEN 'AVG' THEN AVG(C.TOT_VAL)
WHEN 'MAX' THEN MAX(C.TOT_VAL)
WHEN 'MIN' THEN MIN(C.TOT_VAL)
END AS TOT_VAL
FROM
GD_LIST A
INNER JOIN EQPM_LIST B ON
(B.COM_ID = A.COM_ID
AND B.EQPM_GRP_ID = A.EQPM_GRP_ID)
LEFT JOIN EMS_GD_IDX_DD_DATA C ON
(C.COM_ID = B.COM_ID
AND C.EQPM_ID = B.EQPM_ID
AND C.GD_IDX_ID = A.GD_IDX_ID
AND C.TOT_DTTM <![CDATA[ >= ]]> to_date(B.OBJ_DT, 'yyyymmdd')
AND C.TOT_DTTM <![CDATA[ < ]]> (to_date(B.OBJ_DT, 'yyyymmdd') + 1) )
GROUP BY
B.EQPM_ID,
A.GD_IDX_ID,
A.UP_TOT_METH )
PIVOT ( SUM(TOT_VAL) FOR GD_SEQ IN ('GD01' AS GD01,
'GD02' AS GD02,
'GD03' AS GD03,
'GD04' AS GD04,
'GD05' AS GD05,
'GD06' AS GD06,
'GD07' AS GD07,
'GD08' AS GD08,
'GD09' AS GD09,
'GD10' AS GD10 ) )
)
SELECT
count(*) totalCount
FROM
EQPM_RSLT_DATA A
INNER JOIN EQPM_GD_DATA B ON
( B.EQPM_ID = A.EQPM_ID )
</select>
<select id="selectMonthlyEnrgUseMainIdx" resultType="camelHashMap">
@ -395,5 +557,165 @@
( B.EQPM_ID = A.EQPM_ID )
ORDER BY
A.EQPM_NM
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY
</select>
<select id="selectMonthlyEnrgUseMainIdxPageTotal" resultType="camelHashMap">
/* ems.effc.eqpmIndMntr.selectMonthlyEnrgUseMainIdxPageTotal: 에너지 월별 주요 지표 */
WITH ECC_INFO AS (
SELECT
CONNECT_BY_ROOT ECC_ID AS FAB_ID,
CONNECT_BY_ROOT ECC_NM AS FAB_NM,
ECC_ID,
ECC_NM
FROM
EMS_ECC_BASE_INFO
START WITH
COM_ID = #{session.comId}
AND LOC_KIND = 'LOC_FAC'
AND ECC_ID = #{fabId}
CONNECT BY
PRIOR COM_ID = COM_ID
AND PRIOR ECC_ID = UP_ECC_ID
),
EQPM_LIST AS (
SELECT
A.COM_ID,
A.EQPM_ID,
A.EQPM_NM,
'ROI000001' AS READ_OBJ_ID,
A.EQPM_GRP_ID,
B.EQPM_GRP_NM,
A.ECC_ID,
FAB_ID,
FAB_NM,
C.ECC_NM,
#{fromDt} AS OBJ_MM
FROM
EMS_EQPM_BASE_INFO A
INNER JOIN EMS_EQPM_GRP B ON
( B.COM_ID = A.COM_ID
AND B.EQPM_GRP_ID = A.EQPM_GRP_ID )
INNER JOIN ECC_INFO C ON
( C.ECC_ID = A.ECC_ID )
WHERE
A.COM_ID = #{session.comId}
AND B.EQPM_KIND_ID = #{eqpmKindId}
AND B.EQPM_GRP_ID = #{eqpmGrpId}
),
EQPM_RSLT_DATA AS (
SELECT
A.COM_ID,
A.EQPM_ID,
A.EQPM_NM,
A.READ_OBJ_ID,
A.EQPM_GRP_ID,
A.EQPM_GRP_NM,
A.ECC_ID,
A.FAB_ID,
FAB_NM,
A.ECC_NM,
B.PLAN_VAL AS PLAN_VAL,
C.TOT_VAL AS USED_VAL
FROM
EQPM_LIST A
LEFT JOIN EMS_EQPM_MM_PLAN B ON
( B.COM_ID = A.COM_ID
AND B.EQPM_ID = A.EQPM_ID
AND B.READ_OBJ_ID = A.READ_OBJ_ID
AND B.OBJ_MM = A.OBJ_MM)
LEFT JOIN EMS_EQPM_MM_TOT_DATA C ON
( C.COM_ID = A.COM_ID
AND C.EQPM_ID = A.EQPM_ID
AND C.READ_OBJ_ID = A.READ_OBJ_ID
AND C.TOT_MM = A.OBJ_MM)
),
GD_LIST AS (
SELECT
COM_ID,
GD_IDX_ID,
GD_IDX_NM,
UP_TOT_METH,
EQPM_GRP_ID,
'GD' || trim(TO_CHAR(ROW_SEQ, '00')) AS GD_SEQ,
ROW_SEQ
FROM
(
SELECT
COM_ID,
GD_IDX_ID,
GD_IDX_NM,
EQPM_GRP_ID,
UP_TOT_METH,
SORT_SEQ,
ROW_NUMBER() OVER (
ORDER BY SORT_SEQ,
GD_IDX_ID) AS ROW_SEQ
FROM
EMS_EQPM_GD_IDX
WHERE
COM_ID = #{session.comId}
AND EQPM_GRP_ID = #{eqpmGrpId}
)
WHERE
ROW_SEQ <![CDATA[ <= ]]> 10
),
EQPM_GD_DATA AS (
SELECT
EQPM_ID,
GD01,
GD02,
GD03,
GD04,
GD05,
GD06,
GD07,
GD08,
GD09,
GD10
FROM
(
SELECT
B.EQPM_ID,
MAX(GD_SEQ) AS GD_SEQ
,
CASE
A.UP_TOT_METH WHEN 'SUM' THEN SUM(C.TOT_VAL)
WHEN 'AVG' THEN AVG(C.TOT_VAL)
WHEN 'MAX' THEN MAX(C.TOT_VAL)
WHEN 'MIN' THEN MIN(C.TOT_VAL)
END AS TOT_VAL
FROM
GD_LIST A
INNER JOIN EQPM_LIST B ON
(B.COM_ID = A.COM_ID
AND B.EQPM_GRP_ID = A.EQPM_GRP_ID)
LEFT JOIN EMS_GD_IDX_DD_DATA C ON
(C.COM_ID = B.COM_ID
AND C.EQPM_ID = B.EQPM_ID
AND C.GD_IDX_ID = A.GD_IDX_ID
AND C.TOT_DTTM >= to_date(B.OBJ_MM, 'yyyymm')
AND C.TOT_DTTM <![CDATA[ < ]]> ADD_MONTHS(to_date(B.OBJ_MM, 'yyyymm'), 1) )
GROUP BY
B.EQPM_ID,
A.GD_IDX_ID,
A.UP_TOT_METH )
PIVOT ( SUM(TOT_VAL) FOR GD_SEQ IN ('GD01' AS GD01,
'GD02' AS GD02,
'GD03' AS GD03,
'GD04' AS GD04,
'GD05' AS GD05,
'GD06' AS GD06,
'GD07' AS GD07,
'GD08' AS GD08,
'GD09' AS GD09,
'GD10' AS GD10 ) )
)
SELECT
count(*) totalCount
FROM
EQPM_RSLT_DATA A
INNER JOIN EQPM_GD_DATA B ON
( B.EQPM_ID = A.EQPM_ID )
</select>
</mapper>