시추공수 표기( 날짜별 사업별 목적별) 수정 및 매크로수 제외

main
hrham 2026-05-28 17:56:53 +09:00
parent d185921828
commit d93ba1d1ba
8 changed files with 414 additions and 176 deletions

View File

@ -90,6 +90,10 @@ public class ChInfoController {
return "";
}
if (params.get("type") == null || "".equals(params.get("type"))) {
params.put("type", "hole");
}
List<?> getYear_date = masterService.getYear_date();
if ("".equals(params.get("year")) || params.get("year") == null) {
@ -192,14 +196,23 @@ public class ChInfoController {
HashMap<String, Object> map = new HashMap<String, Object>();
if (params.get("type") == null || "".equals(params.get("type"))) {
params.put("type", "hole");
}
List<?> selectInfoListExcel = masterService.selectInfoListDateExcel(params);
String[] arrHeader = { "번호", "사업명", "다운로드 수" };
map.put("selectInfoListExcel", selectInfoListExcel);
map.put("arrHeader", arrHeader);
map.put("sheetName", "날짜별 유통정보");
map.put("fileName", "날짜별유통정보_");
if ("hole".equals(params.get("type"))) {
map.put("sheetName", "날짜별 유통정보(시추공)");
map.put("fileName", "날짜별유통정보_시추공_");
} else {
map.put("sheetName", "날짜별 유통정보(프로젝트)");
map.put("fileName", "날짜별유통정보_프로젝트_");
}
buildExcelDocument(map, workbook, request, response);
}
@ -220,6 +233,10 @@ public class ChInfoController {
return "";
}
if (params.get("type") == null || "".equals(params.get("type"))) {
params.put("type", "hole");
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
@ -263,14 +280,23 @@ public class ChInfoController {
HashMap<String, Object> map = new HashMap<String, Object>();
if (params.get("type") == null || "".equals(params.get("type"))) {
params.put("type", "hole");
}
List<?> selectInfoListExcel = masterService.selectInfoListBusinessExcel(params);
String[] arrHeader = { "번호", "사업명", "다운로드 수" };
map.put("selectInfoListExcel", selectInfoListExcel);
map.put("arrHeader", arrHeader);
map.put("sheetName", "사업별 유통정보");
map.put("fileName", "사업별유통정보_");
if ("hole".equals(params.get("type"))) {
map.put("sheetName", "사업별 유통정보(시추공)");
map.put("fileName", "사업별유통정보_시추공_");
} else {
map.put("sheetName", "사업별 유통정보(프로젝트)");
map.put("fileName", "사업별유통정보_프로젝트_");
}
buildExcelDocument(map, workbook, request, response);
}
@ -321,24 +347,33 @@ public class ChInfoController {
}
@RequestMapping(value = "admins/chLog/03.do")
public String selectInfoListPurpose(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
public String selectInfoListPurpose(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
}
List<?> resultList = masterService.selectInfoListPurpose();
if (params.get("type") == null || "".equals(params.get("type"))) {
params.put("type", "hole");
}
List<?> resultList = masterService.selectInfoListPurpose(params);
model.addAttribute("resultList", resultList);
model.addAttribute("params", params);
return "admins/chLog/03";
}
@RequestMapping(value = "admins/chLog/03_excel.do")
public void selectInfoListPurposeExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception {
public void selectInfoListPurposeExcel(@RequestParam HashMap<String, Object> params, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
List<?> selectInfoListExcel = masterService.selectInfoListPurpose();
if (params.get("type") == null || "".equals(params.get("type"))) {
params.put("type", "hole");
}
List<?> selectInfoListExcel = masterService.selectInfoListPurpose(params);
String[] arrHeader = { "년도", "정책입안", "학술연구", "공사계획 및 예비조사", "기본설계", "실시설계", "시공 및 유지관리", "사업비산정", "지하시설물 유지관리",
"스마트시티","도시재생","지진 예방","산사태 예방","급경사지 관리","홍수 예방","지하안전영향평가","소규모지하안전영향평가","사후지하안전영향조사","지반침하위험도평가","지하안전점검",
@ -346,8 +381,13 @@ public class ChInfoController {
map.put("selectInfoListExcel", selectInfoListExcel);
map.put("arrHeader", arrHeader);
map.put("sheetName", "목적별 유통정보");
map.put("fileName", "목적별유통정보_");
if ("hole".equals(params.get("type"))) {
map.put("sheetName", "목적별 유통정보(시추공)");
map.put("fileName", "목적별유통정보_시추공_");
} else {
map.put("sheetName", "목적별 유통정보(프로젝트)");
map.put("fileName", "목적별유통정보_프로젝트_");
}
buildExcelDocument(map, workbook, request, response);
}

View File

@ -21,7 +21,7 @@ public interface ChInfoMapper {
public List<?> selectInfoListDateLogPop(HashMap<String, Object> params) throws Exception;
public List<?> selectInfoListPurpose() throws Exception;
public List<?> selectInfoListPurpose(HashMap<String, Object> params) throws Exception;
/** 2023.11.01 LHJ 유통/공급 통계분석 > 유통정보 > 공종별 시추공등록 통계 추가 **/
public List<Map<String, Object>> selectInfoListGongjong() throws Exception;

View File

@ -19,7 +19,7 @@ public interface ChInfoService {
public List<?> selectInfoListDateLogPop(HashMap<String, Object> params) throws Exception;
public List<?> selectInfoListPurpose() throws Exception;
public List<?> selectInfoListPurpose(HashMap<String, Object> params) throws Exception;
/** 2023.11.01 LHJ 유통/공급 통계분석 > 유통정보 > 공종별 시추공등록 통계 추가 **/
public List<Map<String, Object>> selectInfoListGongjong() throws Exception;

View File

@ -60,8 +60,8 @@ public class ChInfoServiceImpl implements ChInfoService {
}
@Override
public List<?> selectInfoListPurpose() throws Exception {
return masterMapper.selectInfoListPurpose();
public List<?> selectInfoListPurpose(HashMap<String, Object> params) throws Exception {
return masterMapper.selectInfoListPurpose(params);
}
/** 2023.11.01 LHJ 유통/공급 통계분석 > 유통정보 > 공종별 시추공등록 통계 추가 **/

View File

@ -5,6 +5,12 @@
<select id="selectInfoListDate" parameterType="map" resultType="egovMap">
<![CDATA[
WITH MACRO_DAYS AS (
SELECT TO_CHAR(DATETIME, 'YYYYMMDD') AS DAILY_DT
FROM WEB_DOWNLOAD_LOG
GROUP BY TO_CHAR(DATETIME, 'YYYYMMDD')
HAVING COUNT(*) >= 10000
)
SELECT NAME,
CNT,
NUM,
@ -17,48 +23,66 @@
ORDER BY CNT DESC, NAME DESC) AS NUM,
TO_CHAR(LAST_VALUE(ROWNUM) OVER (
ORDER BY ROWNUM ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)) AS TOTALROWS
]]>
<choose>
<when test='type == "hole"'>
<![CDATA[
FROM (SELECT SUM(NVL(C.PROJECT_HOLE_NUMBER, 0)) CNT,
B.NAME,
A.METADATAID
FROM WEB_DOWNLOAD_LOG A
JOIN MTDT_HRCHYLEVELNAME B ON A.METADATAID = B.METADATAID
LEFT OUTER JOIN TBL_PROJECT_INFO C ON TRIM(A.METADATAID) = TRIM(C.PROJECT_CODE)
WHERE TO_CHAR(A.DATETIME, 'YYYYMMDD') NOT IN (SELECT DAILY_DT FROM MACRO_DAYS)
]]>
</when>
<otherwise>
<![CDATA[
FROM (SELECT COUNT(A.METADATAID) CNT,
B.NAME,
A.METADATAID
FROM WEB_DOWNLOAD_LOG A,
MTDT_HRCHYLEVELNAME B
WHERE A.METADATAID = B.METADATAID
]]>
AND TO_CHAR(A.DATETIME, 'YYYYMMDD') NOT IN (SELECT DAILY_DT FROM MACRO_DAYS)
]]>
</otherwise>
</choose>
<if test='year != "9999"'>
<![CDATA[ AND TO_CHAR(DATETIME,'YYYY') = #{year} ]]>
<![CDATA[ AND TO_CHAR(A.DATETIME,'YYYY') = #{year} ]]>
</if>
<if test='month != "99"'>
<![CDATA[ AND TO_CHAR(DATETIME,'MM') = #{month} ]]>
<![CDATA[ AND TO_CHAR(A.DATETIME,'MM') = #{month} ]]>
</if>
<choose>
<when test='agreeyn == "0"'>
<![CDATA[ AND APPROVE IN('Y','N','W') ]]>
<![CDATA[ AND A.APPROVE IN('Y','N','W') ]]>
</when>
<when test='agreeyn == "1"'>
<![CDATA[ AND APPROVE = 'W' ]]>
<![CDATA[ AND A.APPROVE = 'W' ]]>
</when>
<when test='agreeyn == "2"'>
<![CDATA[ AND APPROVE = 'Y' ]]>
<![CDATA[ AND A.APPROVE = 'Y' ]]>
</when>
<when test='agreeyn == "3"'>
<![CDATA[ AND APPROVE = 'N' ]]>
<![CDATA[ AND A.APPROVE = 'N' ]]>
</when>
</choose>
<choose>
<when test='downyn == "0"'>
<![CDATA[ AND DOWNYN IN('Y','N','W','R') ]]>
<![CDATA[ AND A.DOWNYN IN('Y','N','W','R') ]]>
</when>
<when test='downyn == "1"'>
<![CDATA[ AND DOWNYN = 'W' ]]>
<![CDATA[ AND A.DOWNYN = 'W' ]]>
</when>
<when test='downyn == "2"'>
<![CDATA[ AND DOWNYN = 'Y' ]]>
<![CDATA[ AND A.DOWNYN = 'Y' ]]>
</when>
<when test='downyn == "3"'>
<![CDATA[ AND DOWNYN = 'N' ]]>
<![CDATA[ AND A.DOWNYN = 'N' ]]>
</when>
<when test='downyn == "4"'>
<![CDATA[ AND DOWNYN = 'R' ]]>
<![CDATA[ AND A.DOWNYN = 'R' ]]>
</when>
</choose>
<![CDATA[
@ -67,6 +91,7 @@
]]>
</select>
<select id="selectInfoGraph" parameterType="map" resultType="egovMap">
<choose>
<when test='year == "9999"'>
@ -145,6 +170,12 @@
<select id="selectInfoListDateExcel" parameterType="map" resultType="egovMap">
<![CDATA[
WITH MACRO_DAYS AS (
SELECT TO_CHAR(DATETIME, 'YYYYMMDD') AS DAILY_DT
FROM WEB_DOWNLOAD_LOG
GROUP BY TO_CHAR(DATETIME, 'YYYYMMDD')
HAVING COUNT(*) >= 10000
)
SELECT NUM,
NAME,
CNT
@ -153,48 +184,66 @@
METADATAID,
ROW_NUMBER() OVER (
ORDER BY CNT DESC, NAME DESC) AS NUM
]]>
<choose>
<when test='type == "hole"'>
<![CDATA[
FROM (SELECT SUM(NVL(C.PROJECT_HOLE_NUMBER, 0)) CNT,
B.NAME,
A.METADATAID
FROM WEB_DOWNLOAD_LOG A
JOIN MTDT_HRCHYLEVELNAME B ON A.METADATAID = B.METADATAID
LEFT OUTER JOIN TBL_PROJECT_INFO C ON TRIM(A.METADATAID) = TRIM(C.PROJECT_CODE)
WHERE TO_CHAR(A.DATETIME, 'YYYYMMDD') NOT IN (SELECT DAILY_DT FROM MACRO_DAYS)
]]>
</when>
<otherwise>
<![CDATA[
FROM (SELECT COUNT(A.METADATAID) CNT,
B.NAME,
A.METADATAID
FROM WEB_DOWNLOAD_LOG A,
MTDT_HRCHYLEVELNAME B
WHERE A.METADATAID = B.METADATAID
]]>
AND TO_CHAR(A.DATETIME, 'YYYYMMDD') NOT IN (SELECT DAILY_DT FROM MACRO_DAYS)
]]>
</otherwise>
</choose>
<if test='year != "9999"'>
<![CDATA[ AND TO_CHAR(DATETIME,'YYYY') = #{year} ]]>
<![CDATA[ AND TO_CHAR(A.DATETIME,'YYYY') = #{year} ]]>
</if>
<if test='month != "99"'>
<![CDATA[ AND TO_CHAR(DATETIME,'MM') = #{month} ]]>
<![CDATA[ AND TO_CHAR(A.DATETIME,'MM') = #{month} ]]>
</if>
<choose>
<when test='agreeyn == "0"'>
<![CDATA[ AND APPROVE IN('Y','N','W') ]]>
<![CDATA[ AND A.APPROVE IN('Y','N','W') ]]>
</when>
<when test='agreeyn == "1"'>
<![CDATA[ AND APPROVE = 'W' ]]>
<![CDATA[ AND A.APPROVE = 'W' ]]>
</when>
<when test='agreeyn == "2"'>
<![CDATA[ AND APPROVE = 'Y' ]]>
<![CDATA[ AND A.APPROVE = 'Y' ]]>
</when>
<when test='agreeyn == "3"'>
<![CDATA[ AND APPROVE = 'N' ]]>
<![CDATA[ AND A.APPROVE = 'N' ]]>
</when>
</choose>
<choose>
<when test='downyn == "0"'>
<![CDATA[ AND DOWNYN IN('Y','N','W','R') ]]>
<![CDATA[ AND A.DOWNYN IN('Y','N','W','R') ]]>
</when>
<when test='downyn == "1"'>
<![CDATA[ AND DOWNYN = 'W' ]]>
<![CDATA[ AND A.DOWNYN = 'W' ]]>
</when>
<when test='downyn == "2"'>
<![CDATA[ AND DOWNYN = 'Y' ]]>
<![CDATA[ AND A.DOWNYN = 'Y' ]]>
</when>
<when test='downyn == "3"'>
<![CDATA[ AND DOWNYN = 'N' ]]>
<![CDATA[ AND A.DOWNYN = 'N' ]]>
</when>
<when test='downyn == "4"'>
<![CDATA[ AND DOWNYN = 'R' ]]>
<![CDATA[ AND A.DOWNYN = 'R' ]]>
</when>
</choose>
<![CDATA[
@ -202,8 +251,15 @@
]]>
</select>
<select id="selectInfoListBusiness" parameterType="map" resultType="egovMap">
<![CDATA[
WITH MACRO_DAYS AS (
SELECT TO_CHAR(DATETIME, 'YYYYMMDD') AS DAILY_DT
FROM WEB_DOWNLOAD_LOG
GROUP BY TO_CHAR(DATETIME, 'YYYYMMDD')
HAVING COUNT(*) >= 10000
)
SELECT NAME,
CNT,
NUM,
@ -216,16 +272,35 @@
ORDER BY CNT DESC, NAME DESC) AS NUM,
TO_CHAR(LAST_VALUE(ROWNUM) OVER (
ORDER BY ROWNUM ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)) AS TOTALROWS
]]>
<choose>
<when test='type == "hole"'>
<![CDATA[
FROM (SELECT SUM(NVL(C.PROJECT_HOLE_NUMBER, 0)) CNT,
B.NAME,
A.METADATAID
FROM WEB_DOWNLOAD_LOG A
JOIN MTDT_HRCHYLEVELNAME B ON A.METADATAID = B.METADATAID
LEFT OUTER JOIN TBL_PROJECT_INFO C ON TRIM(A.METADATAID) = TRIM(C.PROJECT_CODE)
WHERE TO_CHAR(A.DATETIME, 'YYYYMMDD') NOT IN (SELECT DAILY_DT FROM MACRO_DAYS)
GROUP BY B.NAME, A.METADATAID )
]]>
</when>
<otherwise>
<![CDATA[
FROM (SELECT COUNT(A.METADATAID) CNT,
B.NAME,
A.METADATAID
FROM WEB_DOWNLOAD_LOG A,
MTDT_HRCHYLEVELNAME B
WHERE A.METADATAID = B.METADATAID
AND TO_CHAR(A.DATETIME, 'YYYYMMDD') NOT IN (SELECT DAILY_DT FROM MACRO_DAYS)
GROUP BY B.NAME, A.METADATAID )
]]>
]]>
</otherwise>
</choose>
<where>
<if test='searchKey != "" and searchkey != null'>
<if test='searchKey != "" and searchKey != null'>
<![CDATA[ AND NAME LIKE '%' || #{searchKey} || '%' ]]>
</if>
</where>
@ -237,6 +312,12 @@
<select id="selectInfoListBusinessExcel" parameterType="map" resultType="egovMap">
<![CDATA[
WITH MACRO_DAYS AS (
SELECT TO_CHAR(DATETIME, 'YYYYMMDD') AS DAILY_DT
FROM WEB_DOWNLOAD_LOG
GROUP BY TO_CHAR(DATETIME, 'YYYYMMDD')
HAVING COUNT(*) >= 10000
)
SELECT NUM,
NAME,
CNT
@ -245,16 +326,35 @@
METADATAID,
ROW_NUMBER() OVER (
ORDER BY CNT DESC, NAME DESC) AS NUM
]]>
<choose>
<when test='type == "hole"'>
<![CDATA[
FROM (SELECT SUM(NVL(C.PROJECT_HOLE_NUMBER, 0)) CNT,
B.NAME,
A.METADATAID
FROM WEB_DOWNLOAD_LOG A
JOIN MTDT_HRCHYLEVELNAME B ON A.METADATAID = B.METADATAID
LEFT OUTER JOIN TBL_PROJECT_INFO C ON TRIM(A.METADATAID) = TRIM(C.PROJECT_CODE)
WHERE TO_CHAR(A.DATETIME, 'YYYYMMDD') NOT IN (SELECT DAILY_DT FROM MACRO_DAYS)
GROUP BY B.NAME, A.METADATAID )
]]>
</when>
<otherwise>
<![CDATA[
FROM (SELECT COUNT(A.METADATAID) CNT,
B.NAME,
A.METADATAID
FROM WEB_DOWNLOAD_LOG A,
MTDT_HRCHYLEVELNAME B
WHERE A.METADATAID = B.METADATAID
AND TO_CHAR(A.DATETIME, 'YYYYMMDD') NOT IN (SELECT DAILY_DT FROM MACRO_DAYS)
GROUP BY B.NAME, A.METADATAID )
]]>
]]>
</otherwise>
</choose>
<where>
<if test='searchkey != "" and searchkey != null'>
<if test='searchKey != "" and searchKey != null'>
<![CDATA[ AND NAME LIKE '%' || #{searchKey} || '%' ]]>
</if>
</where>
@ -263,6 +363,7 @@
]]>
</select>
<select id="selectInfoListDateLogPop" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT AID,
@ -286,106 +387,77 @@
]]>
</select>
<select id="selectInfoListPurpose" resultType="egovMap">
<select id="selectInfoListPurpose" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT ZZ, AA, HH, BB, CC, DD, EE, GG, FF, JJ, KK, LL, MM, NN, OO, PP, QQ, RR, SS, TT, II, UU, CNT
FROM (SELECT *
FROM (SELECT TO_CHAR(DATETIME, 'YYYY') ZZ ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A01', 1)), 0) AA ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A02', 1)), 0) BB ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A03', 1)), 0) CC ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A04', 1)), 0) DD ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A05', 1)), 0) EE ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A06', 1)), 0) FF ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A07', 1)), 0) GG ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A08', 1)), 0) HH ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A09', 1)), 0) II ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A10', 1)), 0) JJ ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A11', 1)), 0) KK ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A12', 1)), 0) LL ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A13', 1)), 0) MM ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A14', 1)), 0) NN ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A15', 1)), 0) OO ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A16', 1)), 0) PP ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A17', 1)), 0) QQ ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A18', 1)), 0) RR ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A19', 1)), 0) SS ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A20', 1)), 0) TT ,
NVL(SUM(DECODE(PURPOSE_CODE, 'A21', 1)), 0) UU ,
COUNT(*) CNT
FROM WEB_DOWNLOAD_LOG
GROUP BY TO_CHAR(DATETIME,
'YYYY')
ORDER BY TO_CHAR(DATETIME,
'YYYY'))
UNION ALL
SELECT '합계' AS ZZ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A01') A01 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A02') A02 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A03') A03 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A04') A04 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A05') A05 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A06') A06 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A07') A07 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A08') A08 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A09') A09 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A10') A10 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A11') A11 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A12') A12 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A13') A13 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A14') A14 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A15') A15 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A16') A16 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A17') A17 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A18') A18 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A19') A19 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A20') A20 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG
WHERE PURPOSE_CODE = 'A21') A21 ,
(SELECT COUNT(*)
FROM WEB_DOWNLOAD_LOG ) TOT
FROM DUAL)
WITH MACRO_DAYS AS (
SELECT TO_CHAR(DATETIME, 'YYYYMMDD') AS DAILY_DT
FROM WEB_DOWNLOAD_LOG
GROUP BY TO_CHAR(DATETIME, 'YYYYMMDD')
HAVING COUNT(*) >= 10000
)
SELECT
NVL(TO_CHAR(A.DATETIME, 'YYYY'), '합계') AS ZZ,
]]>
<choose>
<when test='type == "hole"'>
<![CDATA[
SUM(DECODE(A.PURPOSE_CODE, 'A01', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS AA,
SUM(DECODE(A.PURPOSE_CODE, 'A02', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS BB,
SUM(DECODE(A.PURPOSE_CODE, 'A03', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS CC,
SUM(DECODE(A.PURPOSE_CODE, 'A04', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS DD,
SUM(DECODE(A.PURPOSE_CODE, 'A05', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS EE,
SUM(DECODE(A.PURPOSE_CODE, 'A06', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS FF,
SUM(DECODE(A.PURPOSE_CODE, 'A07', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS GG,
SUM(DECODE(A.PURPOSE_CODE, 'A08', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS HH,
SUM(DECODE(A.PURPOSE_CODE, 'A09', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS II,
SUM(DECODE(A.PURPOSE_CODE, 'A10', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS JJ,
SUM(DECODE(A.PURPOSE_CODE, 'A11', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS KK,
SUM(DECODE(A.PURPOSE_CODE, 'A12', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS LL,
SUM(DECODE(A.PURPOSE_CODE, 'A13', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS MM,
SUM(DECODE(A.PURPOSE_CODE, 'A14', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS NN,
SUM(DECODE(A.PURPOSE_CODE, 'A15', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS OO,
SUM(DECODE(A.PURPOSE_CODE, 'A16', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS PP,
SUM(DECODE(A.PURPOSE_CODE, 'A17', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS QQ,
SUM(DECODE(A.PURPOSE_CODE, 'A18', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS RR,
SUM(DECODE(A.PURPOSE_CODE, 'A19', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS SS,
SUM(DECODE(A.PURPOSE_CODE, 'A20', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS TT,
SUM(DECODE(A.PURPOSE_CODE, 'A21', NVL(B.PROJECT_HOLE_NUMBER, 0), 0)) AS UU,
SUM(NVL(B.PROJECT_HOLE_NUMBER, 0)) AS CNT
]]>
</when>
<otherwise>
<![CDATA[
SUM(DECODE(A.PURPOSE_CODE, 'A01', 1, 0)) AS AA,
SUM(DECODE(A.PURPOSE_CODE, 'A02', 1, 0)) AS BB,
SUM(DECODE(A.PURPOSE_CODE, 'A03', 1, 0)) AS CC,
SUM(DECODE(A.PURPOSE_CODE, 'A04', 1, 0)) AS DD,
SUM(DECODE(A.PURPOSE_CODE, 'A05', 1, 0)) AS EE,
SUM(DECODE(A.PURPOSE_CODE, 'A06', 1, 0)) AS FF,
SUM(DECODE(A.PURPOSE_CODE, 'A07', 1, 0)) AS GG,
SUM(DECODE(A.PURPOSE_CODE, 'A08', 1, 0)) AS HH,
SUM(DECODE(A.PURPOSE_CODE, 'A09', 1, 0)) AS II,
SUM(DECODE(A.PURPOSE_CODE, 'A10', 1, 0)) AS JJ,
SUM(DECODE(A.PURPOSE_CODE, 'A11', 1, 0)) AS KK,
SUM(DECODE(A.PURPOSE_CODE, 'A12', 1, 0)) AS LL,
SUM(DECODE(A.PURPOSE_CODE, 'A13', 1, 0)) AS MM,
SUM(DECODE(A.PURPOSE_CODE, 'A14', 1, 0)) AS NN,
SUM(DECODE(A.PURPOSE_CODE, 'A15', 1, 0)) AS OO,
SUM(DECODE(A.PURPOSE_CODE, 'A16', 1, 0)) AS PP,
SUM(DECODE(A.PURPOSE_CODE, 'A17', 1, 0)) AS QQ,
SUM(DECODE(A.PURPOSE_CODE, 'A18', 1, 0)) AS RR,
SUM(DECODE(A.PURPOSE_CODE, 'A19', 1, 0)) AS SS,
SUM(DECODE(A.PURPOSE_CODE, 'A20', 1, 0)) AS TT,
SUM(DECODE(A.PURPOSE_CODE, 'A21', 1, 0)) AS UU,
COUNT(*) AS CNT
]]>
</otherwise>
</choose>
<![CDATA[
FROM WEB_DOWNLOAD_LOG A
LEFT OUTER JOIN TBL_PROJECT_INFO B ON TRIM(A.METADATAID) = TRIM(B.PROJECT_CODE)
WHERE TO_CHAR(A.DATETIME, 'YYYYMMDD') NOT IN (SELECT DAILY_DT FROM MACRO_DAYS)
GROUP BY ROLLUP(TO_CHAR(A.DATETIME, 'YYYY'))
ORDER BY ZZ
]]>
</select>

View File

@ -9,6 +9,34 @@
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/chlog.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<style>
.btn-group {
display: inline-flex;
margin-right: 5px;
vertical-align: middle;
background-color: #f1f3f5;
padding: 3px;
border-radius: 6px;
border: 1px solid #dee2e6;
}
.btn-toggle {
border: none;
background: none;
padding: 6px 16px;
font-size: 13px;
font-weight: 600;
color: #495057;
cursor: pointer;
border-radius: 4px;
transition: all 0.2s ease-in-out;
}
.btn-toggle:hover { color: #212529; }
.btn-toggle.active {
background-color: #3b6bb0;
color: #ffffff;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
</style>
<script>
var context = "${pageContext.request.contextPath}";
@ -21,16 +49,12 @@ $(function(){
</c:forEach>
var agreeyn = "${params.agreeyn}" == "" ? "0" : "${params.agreeyn}";
var downyn = "${params.downyn}" == "" ? "0" : "${params.downyn}";
var downyn = "${params.downyn}" == "" ? "0" : "${params.downyn}";
$("#agreeyn").val(agreeyn);
$("#downyn").val(downyn);
var year = "${params.year}";
var month = "${params.month}";
$("#year").val(year);
$("#month").val(month);
$("#year").val("${params.year}");
$("#month").val("${params.month}");
});
function linkPage(index){
@ -43,6 +67,11 @@ function excelDownload(){
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/chLog/00.do");
}
function switchType(type) {
$('#searchForm input[name="type"]').val(type);
$("#pageIndex").val(1);
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/chLog/00.do").submit();
}
</script>
</head>
<body>
@ -50,12 +79,13 @@ function excelDownload(){
<input type="hidden" id="pageIndex" name="pageIndex" value="${params.pageIndex}" />
<!-- <input type="hidden" id="syear" name="syear" value="[SELECTEDYEAR]">
<input type="hidden" id="smonth" name="smonth" value="[SELECTEDMONTH]"> -->
<input type="hidden" name="type" value="${empty params.type ? 'hole' : params.type}" />
<table id="Table_Main" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/chLog/3_toptit_01.gif"></td></tr>
<tr height=10><td colspan=2>&nbsp;</td></tr>
<tr height=20>
<!-- START : 엑셀 다운로드 ------------------------------------------------------------------------->
<td>
<!-- START : 엑셀 다운로드 ------------------------------------------------------------------------->
<img src="${pageContext.request.contextPath}/images/admins/excel.gif" style="cursor:hand" onClick="javascript:excelDownload()">
<font class="list_content">다운 :</font>
<select id="agreeyn" name="agreeyn" class="level6" onchange="$('#pageIndex').val('1');submit();" >
@ -64,6 +94,9 @@ function excelDownload(){
<option value="2">승인</option>
<option value="3">취소</option>
</select>
<!--<img src="${pageContext.request.contextPath}/images/admins/excel_all.gif" align="top" style="cursor:hand" onClick="javascript:convertExcelAll()">--></td>
<!-- END : 엑셀 다운로드 ------------------------------------------------------------------------->
<!-- START : 날짜별 검색 --------------------------------------------------------------------------->
<font class="list_content">활용 :</font>
<select id="downyn" name="downyn" class="level6" onchange="$('#pageIndex').val('1');submit();" >
<option value="0">전체</option>
@ -71,34 +104,42 @@ function excelDownload(){
<option value="2">승인</option>
<option value="3">취소</option>
</select>
<!--<img src="${pageContext.request.contextPath}/images/admins/excel_all.gif" align="top" style="cursor:hand" onClick="javascript:convertExcelAll()">--></td>
<!-- END : 엑셀 다운로드 ------------------------------------------------------------------------->
<!-- START : 날짜별 검색 --------------------------------------------------------------------------->
</td>
<!-- END : 날짜별 검색 --------------------------------------------------------------------------->
<td align="right" class="search" valign="middle">
<div class="btn-group">
<button type="button" class="btn-toggle <c:if test="${empty params.type || params.type eq 'hole'}">active</c:if>" onClick="switchType('hole')">시추공</button>
<button type="button" class="btn-toggle <c:if test="${params.type eq 'project'}">active</c:if>" onClick="switchType('project')">프로젝트</button>
</div>
<select id="year" name="year" class="level6" onchange="$('#pageIndex').val('1');submit();" ></select>
<select id="month" name="month" class="level6" onchange="$('#pageIndex').val('1');submit();" ></select>
<a href='#' onFocus='this.blur();' onclick="javascript:window.open('${pageContext.request.contextPath}/admins/chLog/00_graph.do?year=${params.year}&month=${params.month}','graph','width=700,height=505,scrollbars=auto,status=no,toolbar=no,menubar=no')"><img src="${pageContext.request.contextPath}/images/admins/graph.gif" align=absmiddle></a>
</td>
<!-- END : 날짜별 검색 --------------------------------------------------------------------------->
</tr>
<tr height=12><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/spacer.gif" width="1" height="12"></td></tr>
<tr>
<td colspan=2>
<tbody>
<table id="Table_List" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#C9C9C9">
<!-- START : list head ----------------------------------------------------------------------------->
<!-- START : list head -->
<tr height=28 bgcolor="#F5F5F5" class="list_head" align="center">
<td width="8%">순위</td>
<td >사업명</td>
<td width="12%">다운로드 수</td>
<td>사업명</td>
<td width="12%">
<c:choose>
<c:when test="${params.type eq 'hole'}">시추공 수</c:when>
<c:otherwise>다운로드 수</c:otherwise>
</c:choose>
</td>
</tr>
<!-- END : list head ----------------------------------------------------------------------------->
<!-- END : list head -->
<!-- REPEAT TABLE -->
<c:forEach items="${resultList}" var="resultList" varStatus="status">
<tr height=23 bgcolor="#FFFFFF" class="list_content" align="center">
<td>${resultList.num}</td>
<td align="left">&nbsp;<a href="javascript:logOpen('${resultList.metadataid}')">${resultList.name}</a></td>
<td><a href="javascript:logOpen('${resultList.metadataid}')">${resultList.cnt}</a></td>
<td><a href="javascript:logOpen('${resultList.metadataid}')">${resultList.cnt}</a></td>
</tr>
</c:forEach>
<!-- END OF REPEAT TABLE -->

View File

@ -9,6 +9,34 @@
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/chlog.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<style>
.btn-group {
display: inline-flex;
margin-right: 5px;
vertical-align: middle;
background-color: #f1f3f5;
padding: 3px;
border-radius: 6px;
border: 1px solid #dee2e6;
}
.btn-toggle {
border: none;
background: none;
padding: 6px 16px;
font-size: 13px;
font-weight: 600;
color: #495057;
cursor: pointer;
border-radius: 4px;
transition: all 0.2s ease-in-out;
}
.btn-toggle:hover { color: #212529; }
.btn-toggle.active {
background-color: #3b6bb0;
color: #ffffff;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
</style>
<script>
function linkPage(index){
@ -21,46 +49,62 @@ function excelDownload(){
$("#listForm").attr("action", "${pageContext.request.contextPath}/admins/chLog/01.do");
}
function switchType(type) {
$('#listForm input[name="type"]').val(type);
$("#pageIndex").val(1);
$("#listForm").attr("action", "${pageContext.request.contextPath}/admins/chLog/01.do").submit();
}
</script>
</head>
<body>
<form id="listForm" name="listForm" method="post">
<input type="hidden" id="pageIndex" name="pageIndex" value="${params.pageIndex}" />
<input type="hidden" name="type" value="${empty params.type ? 'hole' : params.type}" />
<table id="Table_Main" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan=2><img src="${pageContext.request.contextPath}/images/admins/chLog/3_toptit_02.gif"></td>
</tr>
<tr height=10><td colspan=2>&nbsp;</td></tr>
<tr height=20>
<!-- START : 엑셀 다운로드 ------------------------------------------------------------------------->
<td><img src="${pageContext.request.contextPath}/images/admins/excel.gif" style="cursor:hand" onClick="javascript:excelDownload()"></td>
<!-- END : 엑셀 다운로드 ------------------------------------------------------------------------>
<!-- START : 검색 --------------------------------------------------------------------------->
<!-- 좌측: 엑셀 다운로드 -->
<td>
<img src="${pageContext.request.contextPath}/images/admins/excel.gif" style="cursor:hand" onClick="javascript:excelDownload()">
</td>
<!-- 우측: 토글 버튼 + 검색 -->
<td align="right" class="search" valign="middle">
<div class="btn-group">
<button type="button" class="btn-toggle <c:if test="${empty params.type || params.type eq 'hole'}">active</c:if>" onClick="switchType('hole')">시추공</button>
<button type="button" class="btn-toggle <c:if test="${params.type eq 'project'}">active</c:if>" onClick="switchType('project')">프로젝트</button>
</div>
사업명 검색 :
<input type="text" class="search" id="searchKey" name="searchKey" value="${params.searchKey}" />
<input type="image" src="${pageContext.request.contextPath}/images/admins/search.gif" align="absmiddle">
</td>
<!-- END : 검색 --------------------------------------------------------------------------->
</tr>
<tr height=5><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/spacer.gif" width="1" height="8"></td></tr>
<tr>
<td colspan=2>
<tbody>
<table id="Table_List" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#C9C9C9">
<!-- START : list head ----------------------------------------------------------------------------->
<!-- START : list head -->
<tr height=28 bgcolor="#F5F5F5" class="list_head" align="center">
<td width="8%">순위</td>
<td>사업명</td>
<td width="12%">다운로드 수</td>
<td width="12%">
<c:choose>
<c:when test="${params.type eq 'hole'}">시추공 수</c:when>
<c:otherwise>다운로드 수</c:otherwise>
</c:choose>
</td>
</tr>
<!-- END : list head ----------------------------------------------------------------------------->
<!-- END : list head -->
<!-- REPEAT TABLE -->
<c:forEach items="${resultList}" var="resultList" varStatus="status">
<tr height=23 bgcolor="#FFFFFF" class="list_content" align="center">
<td>${resultList.num}</td>
<td align="left">&nbsp;<a href="javascript:logOpen('${resultList.metadataid}')">${resultList.name}</a></td>
<td><a href="javascript:logOpen('${resultList.metadataid}')">${resultList.cnt}</a></td>
<td><a href="javascript:logOpen('${resultList.metadataid}')">${resultList.cnt}</a></td>
</tr>
</c:forEach>
<!-- END OF REPEAT TABLE -->

View File

@ -8,12 +8,48 @@
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<style>
.btn-group {
display: inline-flex;
margin-right: 5px;
vertical-align: middle;
background-color: #f1f3f5;
padding: 3px;
border-radius: 6px;
border: 1px solid #dee2e6;
}
.btn-toggle {
border: none;
background: none;
padding: 6px 16px;
font-size: 13px;
font-weight: 600;
color: #495057;
cursor: pointer;
border-radius: 4px;
transition: all 0.2s ease-in-out;
}
.btn-toggle:hover {
color: #212529;
}
.btn-toggle.active {
background-color: #3b6bb0;
color: #ffffff;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
</style>
<script>
function excelDownload(){
var inputs = '';
var url = '${pageContext.request.contextPath}/admins/chLog/03_excel.do';
var type = '${params.type}';
if (!type) type = 'project';
var url = '${pageContext.request.contextPath}/admins/chLog/03_excel.do?type=' + type;
$('<form action="'+ url +'" method="post"></form>').appendTo('body').submit().remove();
}
function switchType(type) {
$('#listForm input[name="type"]').val(type);
$("#pageIndex").val(1);
$("#listForm").attr("action", "${pageContext.request.contextPath}/admins/chLog/03.do").submit();
}
</script>
</head>
<body>
@ -21,17 +57,22 @@ function excelDownload(){
<tr><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/chLog/3_toptit_03.gif"></td></tr>
<tr height=20><td colspan=2>&nbsp;</td></tr>
<tr height=25>
<!-- START : 엑셀 다운로드 ------------------------------------------------------------------------->
<!-- START : 버튼 영역 ------------------------------------------------------------------------->
<td>
<img src="${pageContext.request.contextPath}/images/admins/excel.gif" style="cursor:hand" onClick="javascript:excelDownload()">
<img src="${pageContext.request.contextPath}/images/admins/excel.gif" style="cursor:hand; vertical-align: middle;" onClick="javascript:excelDownload()">
</td>
<!-- END : 엑셀 다운로드 ------------------------------------------------------------------------->
<td align="right" class="list_content"></td>
<td align="right">
<div class="btn-group">
<button type="button"class="btn-toggle <c:if test='${empty params.type || params.type eq "hole"}'>active</c:if>"onClick="location.href='${pageContext.request.contextPath}/admins/chLog/03.do?type=hole'">시추공</button>
<button type="button"class="btn-toggle <c:if test='${params.type eq "project"}'>active</c:if>"onClick="location.href='${pageContext.request.contextPath}/admins/chLog/03.do?type=project'">프로젝트</button>
<!-- <button type="button" class="btn-toggle <c:if test="${empty params.type || params.type eq 'hole'}">active</c:if>" onClick="switchType('hole')">시추공</button>
<button type="button" class="btn-toggle <c:if test="${params.type eq 'project'}">active</c:if>" onClick="switchType('project')">프로젝트</button>-->
</div>
</td>
<!-- END : 버튼 영역 ----------------------------------------------------------------------->
</tr>
<tr height=12><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/spacer.gif" width="1" height="12"></td></tr>
<tr>
<td align="right" class="list_content"></td>
</tr>
<tr>
<td colspan=2>
<tbody>