10 Commits
main ... dev

19 changed files with 558 additions and 5 deletions

View File

@ -204,12 +204,12 @@
<url>file://D:\Temp\prj\maven\repository\com\machbase\6.1.11</url>
</repository>
</repositories -->
<repositories>
<!-- <repositories>
<repository>
<id>nexus</id>
<name>siltronchnMaven</name>
<url>http://192.168.0.97:4000/repository/siltronchnMaven/</url>
</repository>
</repositories>
</repositories> -->
</project>

View File

@ -206,4 +206,12 @@ public class DashboardCtr {
result.add("issueGdIdxData",dashboardSvc.selectIssueGdIdxData(paramMap.getParams()));
return result;
}
@RequestMapping(value="/selectIssueGdIdxDataPageTotal", method=RequestMethod.POST)
@ResponseBody
public Object selectIssueGdIdxDataPageTotal(@RequestBody BaseParam paramMap){
BaseResponse result = new BaseResponse();
result.add("issueGdIdxDataPageTotal",dashboardSvc.selectIssueGdIdxDataPageTotal(paramMap.getParams()));
return result;
}
}

View File

@ -52,4 +52,13 @@ public class PastRsltDataReadCtr{
result.add("pastRsltReadData", pastRsltDataReadSvc.selectTagRawDataByQuarter(convertedParam));
return result;
}
@RequestMapping(value="/selectTagRawDataByQuarterPageTotal", method=RequestMethod.POST)
@ResponseBody
public Object selectTagRawDataByQuarterPageTotal(@RequestBody BaseParam paramMap){
BaseResponse result = new BaseResponse();
HashMap<String, Object> convertedParam = paramMap.getParams();
result.add("pastRslPageTotal", pastRsltDataReadSvc.selectTagRawDataByQuarterPageTotal(convertedParam));
return result;
}
}

View File

@ -66,6 +66,15 @@ public class ReadResultCloseMngCtr{
result.add("cdKindData", readResultCloseMngSvc.selectReadResultCloseMng(paramMap.getParams()));
return result;
}
@RequestMapping(value="/selectReadResultCloseMngPageTotal", method=RequestMethod.POST)
@ResponseBody
public Object selectReadResultCloseMngPageTotal(@RequestBody BaseParam paramMap){
BaseResponse result = new BaseResponse();
result.add("cdKindPageTotal", readResultCloseMngSvc.selectReadResultCloseMngPageTotal(paramMap.getParams()));
return result;
}
/**
* @methodName : readResultCloseMngSP

View File

@ -98,4 +98,8 @@ public class DashboardSvc extends BaseSvc {
public List<CamelHashMap> selectIssueGdIdxData(HashMap<String, Object> param){
return dao.selectList("ems.base.dashboard.selectIssueGdIdxData", param);
}
public List<CamelHashMap> selectIssueGdIdxDataPageTotal(HashMap<String, Object> param){
return dao.selectList("ems.base.dashboard.selectIssueGdIdxDataPageTotal", param);
}
}

View File

@ -48,4 +48,17 @@ public class PastRsltDataReadSvc extends BaseSvc {
//sql 인젝션 대비 yearQuarterList params 새로 구성----끝
return dao.selectList("ems.base.PastRsltDataRead.selectTagRawDataByQuarter", params);
}
public Object selectTagRawDataByQuarterPageTotal(HashMap<String, Object> params) {
//sql 인젝션 대비 yearQuarterList params 새로 구성----시작
List<String> newYearQuarterList = new ArrayList<>();
for(String word: (List<String>)params.get("yearQuarterList")) {
if(word.length() == 7 && word.substring(4, 5).equals("Y") && word.substring(6).equals("Q")) {
newYearQuarterList.add(word);
}
}
params.put("newYearQuarterList", newYearQuarterList);
//sql 인젝션 대비 yearQuarterList params 새로 구성----끝
return dao.selectList("ems.base.PastRsltDataRead.selectTagRawDataByQuarterPageTotal", params);
}
}

View File

@ -47,6 +47,10 @@ public class ReadResultCloseMngSvc extends BaseSvc {
public Object selectReadResultCloseMng(HashMap<String, Object> params) {
return dao.selectList("ems.base.readResultCloseMng.selectReadResultCloseMng", params);
}
public Object selectReadResultCloseMngPageTotal(HashMap<String, Object> params) {
return dao.selectList("ems.base.readResultCloseMng.selectReadResultCloseMngPageTotal", params);
}
/**
* @methodName : readResultCloseMngSP

View File

@ -48,6 +48,14 @@ public class EnrgEffcEqpmDetlMntrCtr {
result.add("eqpmDetlData", enrgEffcEqpmDetlMntrSvc.selectEnrgEffcEqpmDetlMntr(paramMap.getParams()));
return result;
}
@RequestMapping(value="/selectEnrgEffcEqpmDetlMntrPageTotal", method=RequestMethod.POST)
@ResponseBody
public Object selectEnrgEffcEqpmDetlMntrPageTotal(@RequestBody BaseParam paramMap){
BaseResponse result = new BaseResponse();
result.add("eqpmDetlDataPageTotal", enrgEffcEqpmDetlMntrSvc.selectEnrgEffcEqpmDetlMntrPageTotal(paramMap.getParams()));
return result;
}
/**
* @methodName : selectEqpmDetailPop

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

@ -38,6 +38,7 @@ public class TagTrndCtr {
result.add("tagTrndDatas",tagTrndSvc.selectTagAndEqpmList(paramMap.getParams()));
return result;
}
/**
* @methodName : selectTagTrndData
* @date : 2022.12.13

View File

@ -32,6 +32,10 @@ public class EnrgEffcEqpmDetlMntrSvc extends BaseSvc{
public Object selectEnrgEffcEqpmDetlMntr(HashMap<String, Object> params) {
return dao.selectList("ems.effc.EnrgEffcEqpmDetlMntr.selectEnrgEffcEqpmDetlMntr", params);
}
public Object selectEnrgEffcEqpmDetlMntrPageTotal(HashMap<String, Object> params) {
return dao.selectList("ems.effc.EnrgEffcEqpmDetlMntr.selectEnrgEffcEqpmDetlMntrPageTotal", params);
}
/**
* @methodName : selectEqpmDetailPop

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

@ -18,10 +18,10 @@ spring:
#local db
db-type: oracle
serverIp: localhost
port: 1521
serverIp: 218.237.212.51
port: 30001
databaseName: free
username: LSITC
username: lsitc
password: "ziin2117!"

View File

@ -204,6 +204,35 @@
AND A.ALRM_KIND IN ( 'WARN', 'CARE')
ORDER BY A.TOT_DTTM, B.SORT_SEQ, A.GD_IDX_ID, A.EQPM_ID
)T1
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY
</select>
<select id="selectIssueGdIdxDataPageTotal" resultType="camelHashMap">
/* ems.base.dashboard.selectIssueGdIdxDataPageTotal 대시보드_설비별 이슈 가이드 지표 조회 */
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'
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, A.EQPM_GRP_ID, B.EQPM_GRP_NM, A.ECC_ID, FAB_ID, FAB_NM, C.ECC_NM, B.EQPM_KIND_ID
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}
)
SELECT count(*) totalCount
FROM (
SELECT A.GD_IDX_ID, B.GD_IDX_NM, A.TOT_DTTM, A.TOT_DTTM AS TOT_TIME, A.TOT_VAL, A.CARE_STND_VAL, A.WARN_STND_VAL, A.ALRM_KIND, A.ALRM_MSG, A.EQPM_ID, C.EQPM_NM, C.EQPM_GRP_ID, C.EQPM_GRP_NM, C.ECC_ID, C.FAB_ID, C.FAB_NM, B.SORT_SEQ, C.EQPM_KIND_ID, D.EQPM_KIND_NM
FROM EMS_GD_IDX_TOT_DATA A
INNER JOIN EMS_EQPM_GD_IDX B ON ( B.COM_ID = A.COM_ID AND B.GD_IDX_ID = A.GD_IDX_ID )
INNER JOIN EQPM_LIST C ON ( C.COM_ID = A.COM_ID AND C.EQPM_ID = A.EQPM_ID )
INNER JOIN EMS_EQPM_KIND D ON ( D.EQPM_KIND_ID = C.EQPM_KIND_ID)
WHERE A.COM_ID = #{session.comId}
AND A.TOT_DTTM >= trunc(sysdate) AND A.TOT_DTTM <![CDATA[ < ]]> trunc(sysdate) + 1
AND A.ALRM_KIND IN ( 'WARN', 'CARE')
ORDER BY A.TOT_DTTM, B.SORT_SEQ, A.GD_IDX_ID, A.EQPM_ID
)T1
</select>
</mapper>

View File

@ -11,5 +11,17 @@
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
</select>
<select id="selectTagRawDataByQuarterPageTotal" resultType="camelHashMap">
SELECT count(*) totalCount
FROM EMS_TAG_READ_RAW_DATA A
LEFT JOIN EMS_TAG_BASE_INFO B
ON A.COM_ID = B.COM_ID AND A.TAG_ID = B.TAG_ID
WHERE A.COM_ID = #{session.comId}
AND A.TAG_ID = #{tagId}
AND A.READ_DTTM BETWEEN TO_DATE(CONCAT(#{fromDt},'000000'), 'YYYYMMDDHH24MISS')
AND TO_DATE(CONCAT(#{toDt},'235959'), 'YYYYMMDDHH24MISS')
</select>
</mapper>

View File

@ -46,7 +46,45 @@
, EI.DIST_RT
, T.READ_DATA_TYPE_CD
ORDER BY T.TAG_ID
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY
</select>
<select id="selectReadResultCloseMngPageTotal" resultType="camelHashMap">
SELECT count(*) totalCount
FROM (
SELECT T.TAG_ID AS READ_PLC_ID
, T.TAG_NM AS READ_PLC_NM
, T.MGNF AS DIST_RT
, EI.EQPM_ID AS ECC_ID
, E.EQPM_NM AS ECC_NM
, EI.DIST_RT AS ECC_DIST_RT
, CASE WHEN T.READ_DATA_TYPE_CD = 'ADDUP' THEN ROUND(SUM(D.TOT_VAL),2)
WHEN T.READ_DATA_TYPE_CD = 'SUM' THEN ROUND(SUM(D.TOT_VAL),2)
WHEN T.READ_DATA_TYPE_CD = 'MIN' THEN ROUND(MIN(D.TOT_VAL),2)
WHEN T.READ_DATA_TYPE_CD = 'MAX' THEN ROUND(MAX(D.TOT_VAL),2)
WHEN T.READ_DATA_TYPE_CD = 'INSTANT' THEN ROUND(AVG(D.TOT_VAL),2) END AS TOT_VAL
, MAX(D.PROC_DTTM) AS PROC_DTTM
FROM EMS_TAG_BASE_INFO T
LEFT JOIN EMS_EQPM_IAO EI
ON T.COM_ID = EI.COM_ID AND T.TAG_ID = EI.OBJ_ID
LEFT JOIN EMS_EQPM_BASE_INFO E
ON EI.COM_ID = E.COM_ID AND EI.EQPM_ID = E.EQPM_ID AND E.USE_FG = '1'
LEFT JOIN EMS_TAG_TOT_DATA D
ON D.COM_ID = T.COM_ID AND D.TAG_ID = T.TAG_ID
AND D.TOT_DTTM BETWEEN TO_DATE(CONCAT(#{readDt},'000000'), 'yyyyMMddHH24miss') and TO_DATE(CONCAT(#{readDt},'235959'), 'yyyyMMddHH24miss')
WHERE T.COM_ID = #{session.comId}
AND T.USE_FG = '1'
AND T.READ_OBJ_ID = #{mttTp}
GROUP BY T.TAG_ID
, T.TAG_NM
, T.MGNF
, EI.EQPM_ID
, E.EQPM_NM
, EI.DIST_RT
, T.READ_DATA_TYPE_CD
)
</select>
<select id="selectReadResultCloseMng_OLD" resultType="camelHashMap">
/* ems.readResultCloseMng.selectReadResultCloseMng 검침실적마감 관리 일일검침 정보 쿼리 */
SELECT READ_PLC_ID , READ_PLC_NM , DIST_RT, ECC_ID , ECC_NM, ECC_DIST_RT, CASE WHEN AVG_TOT_VAL IS NOT NULL THEN AVG_TOT_VAL ELSE SUM_TOT_VAL END AS TOT_VAL, PROC_DTTM FROM (

View File

@ -136,6 +136,9 @@
<if test="tagNmLike != null and tagNmLike != ''">
AND TAG_NM LIKE '%' || #{tagNmLike} || '%'
</if>
<if test="tagIdLike != null and tagIdLike != ''">
AND TAG_ID LIKE '%' || #{tagIdLike} || '%'
</if>
<if test="readDataTypeCd != null and readDataTypeCd != ''">
AND READ_DATA_TYPE_CD = #{readDataTypeCd}
</if>

View File

@ -74,6 +74,70 @@
AND OK_FG = #{okFg}
</if>
ORDER BY EQPM_ID, GD_IDX_ID
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY
</select>
<select id="selectEnrgEffcEqpmDetlMntrPageTotal" resultType ="camelHashMap">
/* ems.effc.EnrgEffcEqpmDetlMntr : 설비별 운전가이드 - 설비별 현황리스트 조회 */
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'
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_DTTM1, #{toDt} AS OBJ_DTTM2
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
<if test="eqpmKindId != null and eqpmKindId != ''">
AND B.EQPM_KIND_ID = #{eqpmKindId}
</if>
)
INNER JOIN ECC_INFO C ON ( C.ECC_ID = A.ECC_ID )
WHERE A.COM_ID = #{session.comId}
<if test="eqpmGrpId != null and eqpmGrpId != ''">
AND A.EQPM_GRP_ID = #{eqpmGrpId}
</if>
<if test="eqpmId.size()!= 0">
AND A.EQPM_ID IN(
<foreach open="" close="" collection="eqpmId" item="eachRow" separator=",">
#{eachRow}
</foreach>
)
</if>
<if test="fabId != null and fabId !=''">
AND FAB_ID = #{fabId}
</if>
) , RSLT_DATA AS (
SELECT A.EQPM_ID, B.GD_IDX_ID
, MAX(A.FAB_ID) AS FAB_ID
, MAX(A.FAB_NM) AS FAB_NM
, MAX(A.EQPM_GRP_ID) AS EQPM_GRP_ID
, MAX(A.EQPM_GRP_NM) AS EQPM_GRP_NM
, MAX(A.EQPM_NM) AS EQPM_NM
, MAX(B.GD_IDX_NM) AS GD_IDX_NM
, MAX(NVL2(D.EQPM_ID, D.CARE_STND_VAL, B.CARE_STND_VAL)) AS CARE_STND_VAL
, MAX(NVL2(D.EQPM_ID, D.WARN_STND_VAL,B.WARN_STND_VAL)) AS WARN_STND_VAL
, MAX(B.UP_TOT_METH) AS UP_TOT_METH
, CASE B.UP_TOT_METH WHEN 'SUM' THEN SUM(C.TOT_VAL) WHEN 'AVG' THEN SF_GET_NUMBER_TRUNC(AVG(C.TOT_VAL)) WHEN 'MAX' THEN MAX(C.TOT_VAL) WHEN 'MIN' THEN MIN(C.TOT_VAL) END AS TOT_VAL
, MIN(CASE WHEN C.ALRM_KIND IN ( 'WARN', 'CARE') THEN 'NG' WHEN C.ALRM_KIND = 'NORM' THEN 'OK' END) OK_FG
, MAX(B.GD_METH) AS GD_METH
, SUM(CASE WHEN C.ALRM_KIND IN ( 'WARN', 'CARE') THEN 1 END) NG_CNT
FROM EQPM_LIST A
INNER JOIN EMS_EQPM_GD_IDX B ON ( B.COM_ID = A.COM_ID AND B.EQPM_GRP_ID = A.EQPM_GRP_ID )
LEFT JOIN EMS_GD_IDX_TOT_DATA C ON ( C.COM_ID = A.COM_ID AND C.EQPM_ID = A.EQPM_ID AND C.GD_IDX_ID = B.GD_IDX_ID
AND C.TOT_DTTM >= to_date(A.OBJ_DTTM1, 'yyyymmdd') AND C.TOT_DTTM <![CDATA[ < ]]>(to_date(A.OBJ_DTTM2, 'yyyymmdd') + 1 ))
LEFT OUTER JOIN EMS_EQPM_GD_DETL D ON ( D.COM_ID = B.COM_ID AND D.GD_IDX_ID = B.GD_IDX_ID AND D.EQPM_ID = A.EQPM_ID )
WHERE 1=1
<if test="gdIdxId != null and gdIdxId !=''">
AND B.GD_IDX_ID = #{gdIdxId}
</if>
GROUP BY A.EQPM_ID, B.GD_IDX_ID, B.UP_TOT_METH
)
SELECT count(*) totalCount FROM RSLT_DATA
WHERE 1=1
<if test="okFg != null and okFg !=''">
AND OK_FG = #{okFg}
</if>
</select>
<select id="selectEqpmDetailPop" 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>