Compare commits
21 Commits
feature/ad
...
5ca0ea9c92
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ca0ea9c92 | |||
|
|
e546b17ff5 | ||
| 441754d72c | |||
|
|
baf73eb534 | ||
| b652e9f9cc | |||
| 778747ba7e | |||
| baccdcdf5f | |||
| a396981ebb | |||
| 179fd7d95c | |||
| 78b5561e7a | |||
| 031a7fad81 | |||
| 49b7f0b984 | |||
| 680bbce797 | |||
| 8a54aee412 | |||
| 049fe4ee29 | |||
| 000e3145bd | |||
| 862c73bd38 | |||
| 2f7fcc5081 | |||
| a7cfad592b | |||
| 51847f834f | |||
| 85b7ba26d5 |
2
Jenkinsfile
vendored
2
Jenkinsfile
vendored
@@ -67,7 +67,7 @@ spec:
|
||||
emptyDir: {}
|
||||
- name: maven-cache
|
||||
persistentVolumeClaim:
|
||||
claimName: maven-repo-pvc
|
||||
claimName: maven-repo-pvc-rwx
|
||||
"""
|
||||
) {
|
||||
node(L) {
|
||||
|
||||
42
pom.xml
42
pom.xml
@@ -229,16 +229,28 @@
|
||||
<!-- </dependency>-->
|
||||
|
||||
<!-- Database -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.31</version>
|
||||
</dependency>
|
||||
<!-- mysql 5.X -->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>mysql</groupId>-->
|
||||
<!-- <artifactId>mysql-connector-java</artifactId>-->
|
||||
<!-- <version>5.1.31</version>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>commons-dbcp</groupId>
|
||||
<artifactId>commons-dbcp</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
<!-- mysql 8.4.7 -->
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
<version>9.5.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-pool</groupId>
|
||||
<artifactId>commons-pool</artifactId>
|
||||
<version>1.6</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Logging (Log4j 2 + SLF4J) -->
|
||||
<!-- <dependency>
|
||||
@@ -532,17 +544,17 @@
|
||||
<!-- </dependency>-->
|
||||
<!-- <!– Add other system jars similarly if compilation fails –>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tmax.tibero</groupId>
|
||||
<artifactId>tibero-jdbc</artifactId>
|
||||
<version>5.0</version>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.tmax.tibero</groupId>-->
|
||||
<!-- <artifactId>tibero-jdbc</artifactId>-->
|
||||
<!-- <version>5.0</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>oracle</groupId>
|
||||
<artifactId>ojdbc14</artifactId>
|
||||
<version>10.2.0.4.0</version>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>oracle</groupId>-->
|
||||
<!-- <artifactId>ojdbc14</artifactId>-->
|
||||
<!-- <version>10.2.0.4.0</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>com.acube</groupId>
|
||||
|
||||
@@ -46,6 +46,10 @@ extends EgovComAbstractDAO {
|
||||
return (Integer)this.select("dmsHdbDAO.selectDmsHdbListTotCnt_S", (Object)searchVO);
|
||||
}
|
||||
|
||||
public List selectDmsHdbStat(DmsHdbDefaultVO searchVO) throws Exception {
|
||||
return this.list("dmsHdbDAO.selectDmsHdbStat_D", (Object)searchVO);
|
||||
}
|
||||
|
||||
public List selectDmsHdbReplyList(DmsHdbDefaultVO searchVO) {
|
||||
return this.list("dmsHdbDAO.selectDmsHdbReplyList_D", (Object)searchVO);
|
||||
}
|
||||
@@ -70,8 +74,10 @@ extends EgovComAbstractDAO {
|
||||
return (List<DmsHdbGraphVO>) this.list("dmsHdbDAO.selectDmsHdbPerYearChart", (Object)searchVO);
|
||||
}
|
||||
|
||||
public DmsHdbGraphVO selectDmsHdbForMonthChart(DmsHdbDefaultVO searchVO) {
|
||||
return (DmsHdbGraphVO)this.select("dmsHdbDAO.selectDmsHdbForMonthChart", (Object)searchVO);
|
||||
}
|
||||
/*
|
||||
* public DmsHdbGraphVO selectDmsHdbForMonthChart(DmsHdbDefaultVO searchVO) {
|
||||
* return (DmsHdbGraphVO)this.select("dmsHdbDAO.selectDmsHdbForMonthChart",
|
||||
* (Object)searchVO); }
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,8 @@ public interface DmsHdbService {
|
||||
|
||||
public int selectDmsHdbListTotCnt(DmsHdbDefaultVO var1);
|
||||
|
||||
public List selectDmsHdbStat(DmsHdbDefaultVO var1) throws Exception;
|
||||
|
||||
public String checkFileWhiteList(MultipartHttpServletRequest var1, String var2, String var3) throws Exception;
|
||||
|
||||
public List selectDmsHdbReplyList(DmsHdbDefaultVO var1);
|
||||
@@ -46,6 +48,6 @@ public interface DmsHdbService {
|
||||
|
||||
public List<DmsHdbGraphVO> selectDmsHdbPerYearChart(DmsHdbDefaultVO var1);
|
||||
|
||||
public DmsHdbGraphVO selectDmsHdbForMonthChart(DmsHdbDefaultVO var1);
|
||||
/* public DmsHdbGraphVO selectDmsHdbForMonthChart(DmsHdbDefaultVO var1); */
|
||||
}
|
||||
|
||||
|
||||
@@ -135,6 +135,10 @@ public class DmsHdbServiceImpl implements DmsHdbService {
|
||||
public int selectDmsHdbListTotCnt(DmsHdbDefaultVO searchVO) {
|
||||
return this.dmsHdbDAO.selectDmsHdbListTotCnt(searchVO);
|
||||
}
|
||||
|
||||
public List selectDmsHdbStat(DmsHdbDefaultVO searchVO) throws Exception {
|
||||
return this.dmsHdbDAO.selectDmsHdbStat(searchVO);
|
||||
}
|
||||
|
||||
public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception {
|
||||
multiRequest.setCharacterEncoding("utf-8");
|
||||
@@ -301,7 +305,8 @@ public class DmsHdbServiceImpl implements DmsHdbService {
|
||||
return this.dmsHdbDAO.selectDmsHdbPerYearChart(searchVO);
|
||||
}
|
||||
|
||||
public DmsHdbGraphVO selectDmsHdbForMonthChart(DmsHdbDefaultVO searchVO) {
|
||||
return this.dmsHdbDAO.selectDmsHdbForMonthChart(searchVO);
|
||||
}
|
||||
/*
|
||||
* public DmsHdbGraphVO selectDmsHdbForMonthChart(DmsHdbDefaultVO searchVO) {
|
||||
* return this.dmsHdbDAO.selectDmsHdbForMonthChart(searchVO); }
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ import egovframework.edosi.egov.helper.UserDetailsHelper;
|
||||
import egovframework.edosi.filter.XssFilter;
|
||||
import egovframework.edosi.resource.EdosiResource;
|
||||
import egovframework.rte.fdl.property.EgovPropertyService;
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
@@ -86,9 +87,6 @@ public class DmsHdbController {
|
||||
String prjSeq = request.getParameter("prjSeq");
|
||||
Map<String, Object> prjInfo = (Map<String, Object>) request.getSession().getAttribute("prjInfo");
|
||||
String prjNm = prjInfo == null ? null : (String) prjInfo.get("prjNm");
|
||||
String hdbStsA = prjInfo == null ? null : (String) prjInfo.get("hdbStsA");
|
||||
String hdbStsB = prjInfo == null ? null : (String) prjInfo.get("hdbStsB");
|
||||
String hdbStsC = prjInfo == null ? null : (String) prjInfo.get("hdbStsC");
|
||||
|
||||
if (moveDetail != null || prjSeq != null) {
|
||||
request.getSession().setAttribute("prjSeq", (Object)prjSeq);
|
||||
@@ -114,9 +112,6 @@ public class DmsHdbController {
|
||||
model.addAttribute("ROLE_CUS", (Object)UserDetailsHelper.isRole((String)"ROLE_CUS"));
|
||||
model.addAttribute("ROLE_EMP", (Object)UserDetailsHelper.isRole((String)"ROLE_EMP"));
|
||||
model.addAttribute("prjNm", prjNm);
|
||||
model.addAttribute("hdbStsA", hdbStsA);
|
||||
model.addAttribute("hdbStsB", hdbStsB);
|
||||
model.addAttribute("hdbStsC", hdbStsC);
|
||||
this.initModelData(model, bmode);
|
||||
return viewName;
|
||||
}
|
||||
@@ -159,6 +154,12 @@ public class DmsHdbController {
|
||||
if (totCnt > 0) {
|
||||
List dmsHdbList = this.dmsHdbService.selectDmsHdbList(searchVO);
|
||||
model.addAttribute("resultList", (Object)dmsHdbList);
|
||||
List dmsHdbStatList = this.dmsHdbService.selectDmsHdbStat(searchVO);
|
||||
EgovMap dmsHdbStat = null;
|
||||
if (dmsHdbStatList != null && !dmsHdbStatList.isEmpty()) {
|
||||
dmsHdbStat = (EgovMap) dmsHdbStatList.get(0);
|
||||
}
|
||||
model.addAttribute("dmsHdbStat", (Object)dmsHdbStat);
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
@@ -170,8 +171,11 @@ public class DmsHdbController {
|
||||
List<DmsHdbGraphVO> annualList = dmsHdbService.selectDmsHdbPerYearChart(searchVO);
|
||||
model.addAttribute("annualList", annualList);
|
||||
|
||||
DmsHdbGraphVO monthlyList = dmsHdbService.selectDmsHdbForMonthChart(searchVO);
|
||||
model.addAttribute("monthlyList", monthlyList);
|
||||
/*
|
||||
* DmsHdbGraphVO monthlyList =
|
||||
* dmsHdbService.selectDmsHdbForMonthChart(searchVO);
|
||||
* model.addAttribute("monthlyList", monthlyList);
|
||||
*/
|
||||
// model.addAttribute("year", year);
|
||||
|
||||
return "dms/dmsHdb/DmsHdbList";
|
||||
|
||||
@@ -51,9 +51,6 @@ public class TemplateController {
|
||||
HashMap<String, String> prjInfo = new HashMap<String, String>();
|
||||
prjInfo.put("prjSeq", prjSeq);
|
||||
prjInfo.put("prjNm", dmsPrjVO.getPrjNm());
|
||||
prjInfo.put("hdbStsA", request.getParameter("hdbStsA"));
|
||||
prjInfo.put("hdbStsB", request.getParameter("hdbStsB"));
|
||||
prjInfo.put("hdbStsC", request.getParameter("hdbStsC"));
|
||||
request.getSession().setAttribute("prjInfo", prjInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,11 +27,18 @@ Globals.DbType =mysql
|
||||
#Globals.Password =sksrhdqnffkr
|
||||
|
||||
## \uC138\uC774\uD5EC\uD504\uB370\uC2A4\uD06C
|
||||
Globals.DriverClassName=com.mysql.jdbc.Driver
|
||||
# mysql 5.X
|
||||
#Globals.DriverClassName=com.mysql.jdbc.Driver
|
||||
# mysql 8.4.7
|
||||
Globals.DriverClassName=com.mysql.cj.jdbc.Driver
|
||||
|
||||
#\uC6B4\uC601
|
||||
#Globals.Url=jdbc:mysql://192.168.0.217:3306/helpdesk_db?characterEncoding=utf8
|
||||
#\uAC1C\uBC1C
|
||||
Globals.Url=jdbc:mysql://192.168.0.114:13314/helpdesk_db?characterEncoding=utf8
|
||||
## mysql 5.X
|
||||
#Globals.Url=jdbc:mysql://192.168.0.114:13316/helpdesk_db?characterEncoding=utf8
|
||||
## mysql 8.4.7
|
||||
Globals.Url=jdbc:mysql://192.168.0.114:13316/helpdesk_db?characterEncoding=utf8
|
||||
Globals.UserName =helpdesk
|
||||
Globals.Password =helpdesk
|
||||
|
||||
|
||||
@@ -27,11 +27,18 @@ Globals.DbType =mysql
|
||||
#Globals.Password =sksrhdqnffkr
|
||||
|
||||
## \uC138\uC774\uD5EC\uD504\uB370\uC2A4\uD06C
|
||||
Globals.DriverClassName=com.mysql.jdbc.Driver
|
||||
# mysql 5.X
|
||||
#Globals.DriverClassName=com.mysql.jdbc.Driver
|
||||
# mysql 8.4.7
|
||||
Globals.DriverClassName=com.mysql.cj.jdbc.Driver
|
||||
|
||||
#\uC6B4\uC601
|
||||
#Globals.Url=jdbc:mysql://192.168.0.217:3306/helpdesk_db?characterEncoding=utf8
|
||||
#\uAC1C\uBC1C
|
||||
Globals.Url=jdbc:mysql://192.168.0.114:13314/helpdesk_db?characterEncoding=utf8
|
||||
## mysql 5.X
|
||||
#Globals.Url=jdbc:mysql://192.168.0.114:13316/helpdesk_db?characterEncoding=utf8
|
||||
## mysql 8.4.7
|
||||
Globals.Url=jdbc:mysql://192.168.0.114:13316/helpdesk_db?characterEncoding=utf8
|
||||
Globals.UserName =helpdesk
|
||||
Globals.Password =helpdesk
|
||||
|
||||
@@ -55,7 +62,7 @@ Globals.OrgNm=\uC138\uC774\uC815\uBCF4\uAE30\uC220
|
||||
Globals.OrgCode=8188
|
||||
|
||||
#Globals.AccessIp=10
|
||||
Globals.SiteTitle=\uC138\uC774\uC815\uBCF4\uAE30\uC220 Help-desk (\uB85C\uCEEC)
|
||||
Globals.SiteTitle=\uC138\uC774\uC815\uBCF4\uAE30\uC220 Help-desk (\uAC1C\uBC1C)
|
||||
#Globals.MobileStartPage=/mobile/intro.do
|
||||
Globals.MobileStartPage=/login.do
|
||||
PushUrl=http://www.sejong.go.kr/sotong
|
||||
|
||||
@@ -171,6 +171,77 @@
|
||||
|
||||
</select>
|
||||
|
||||
<select id="dmsHdbDAO.selectDmsHdbStat_D" parameterClass="dmsHdbSerarchVO" resultClass="egovMap">
|
||||
|
||||
SELECT
|
||||
COUNT(CASE
|
||||
WHEN B.HDB_STS = 'A'
|
||||
AND B.CREATE_DATE >= DATE_SUB(NOW(), INTERVAL 30 DAY)
|
||||
AND B.REC_STS = 'A'
|
||||
AND (B.TITLE != '' OR B.CONTENTS != '')
|
||||
THEN 1
|
||||
END) AS hdbStsA
|
||||
|
||||
, COUNT(CASE
|
||||
WHEN B.HDB_STS = 'B'
|
||||
AND B.CREATE_DATE >= DATE_SUB(NOW(), INTERVAL 30 DAY)
|
||||
AND B.REC_STS = 'A'
|
||||
AND (B.TITLE != '' OR B.CONTENTS != '')
|
||||
THEN 1
|
||||
END) AS hdbStsB
|
||||
|
||||
, COUNT(CASE
|
||||
WHEN B.HDB_STS = 'C'
|
||||
AND B.CREATE_DATE >= DATE_SUB(NOW(), INTERVAL 30 DAY)
|
||||
AND B.REC_STS = 'A'
|
||||
AND (B.TITLE != '' OR B.CONTENTS != '')
|
||||
THEN 1
|
||||
END) AS hdbStsC
|
||||
|
||||
, COUNT(CASE
|
||||
WHEN B.HDB_STS = 'A'
|
||||
AND YEAR(B.CREATE_DATE) = YEAR(NOW())
|
||||
AND B.REC_STS = 'A'
|
||||
AND (B.TITLE != '' OR B.CONTENTS != '')
|
||||
THEN 1
|
||||
END) AS hdbStsYrA
|
||||
|
||||
, COUNT(CASE
|
||||
WHEN B.HDB_STS = 'B'
|
||||
AND YEAR(B.CREATE_DATE) = YEAR(NOW())
|
||||
AND B.REC_STS = 'A'
|
||||
AND (B.TITLE != '' OR B.CONTENTS != '')
|
||||
THEN 1
|
||||
END) AS hdbStsYrB
|
||||
|
||||
, COUNT(CASE
|
||||
WHEN B.HDB_STS = 'C'
|
||||
AND YEAR(B.CREATE_DATE) = YEAR(NOW())
|
||||
AND B.REC_STS = 'A'
|
||||
AND (B.TITLE != '' OR B.CONTENTS != '')
|
||||
THEN 1
|
||||
END) AS hdbStsYrC
|
||||
|
||||
FROM
|
||||
DMS_HDB B
|
||||
WHERE 1=1
|
||||
AND B.REC_STS = 'A'
|
||||
AND (B.TITLE != '' OR B.CONTENTS != '')
|
||||
|
||||
<isNotEmpty property="prjSeq" prepend="AND">
|
||||
B.PRJ_SEQ = #prjSeq#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchKeyword">
|
||||
<isEqual property="searchCondition" compareValue="1" prepend="AND">
|
||||
B.TITLE LIKE CONCAT('%', #searchKeyword#, '%')
|
||||
</isEqual>
|
||||
<isEqual property="searchCondition" compareValue="2" prepend="AND">
|
||||
B.WRITER_NM LIKE CONCAT('%', #searchKeyword#, '%')
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
</select>
|
||||
|
||||
<select id="dmsHdbDAO.selectDmsHdbListTotCnt_S" parameterClass="dmsHdbSerarchVO" resultClass="int">
|
||||
SELECT
|
||||
COUNT(*) totcnt
|
||||
@@ -306,7 +377,7 @@
|
||||
</select>
|
||||
|
||||
<!-- 현재 기준 한달간 현황 donut chart -->
|
||||
<select id="dmsHdbDAO.selectDmsHdbForMonthChart" parameterClass="dmsHdbSerarchVO" resultClass="egovframework.dms.hdb.vo.DmsHdbGraphVO">
|
||||
<!-- <select id="dmsHdbDAO.selectDmsHdbForMonthChart" parameterClass="dmsHdbSerarchVO" resultClass="egovframework.dms.hdb.vo.DmsHdbGraphVO">
|
||||
SELECT
|
||||
COUNT(CASE WHEN HDB_STS = 'A' THEN 1 END) AS hdbStsA,
|
||||
COUNT(CASE WHEN HDB_STS = 'B' THEN 1 END) AS hdbStsB,
|
||||
@@ -316,5 +387,5 @@
|
||||
AND D.PRJ_SEQ = #prjSeq#
|
||||
AND (D.TITLE != '' OR D.CONTENTS != '')
|
||||
<![CDATA[ AND D.CREATE_DATE >= DATE_SUB(NOW(), INTERVAL 30 DAY) ]]>
|
||||
</select>
|
||||
</select> -->
|
||||
</sqlMap>
|
||||
@@ -128,9 +128,9 @@
|
||||
B.DEPT_CD,
|
||||
B.POSITION_NM,
|
||||
C.PRJ_NM,
|
||||
COUNT(CASE WHEN D.HDB_STS = 'A' AND YEAR(D.CREATE_DATE) = YEAR(NOW()) AND D.REC_STS = 'A' AND (D.TITLE != '' OR D.CONTENTS != '') THEN 1 END) AS hdbStsA,
|
||||
COUNT(CASE WHEN D.HDB_STS = 'B' AND YEAR(D.CREATE_DATE) = YEAR(NOW()) AND D.REC_STS = 'A' AND (D.TITLE != '' OR D.CONTENTS != '') THEN 1 END) AS hdbStsB,
|
||||
COUNT(CASE WHEN D.HDB_STS = 'C' AND YEAR(D.CREATE_DATE) = YEAR(NOW()) AND D.REC_STS = 'A' AND (D.TITLE != '' OR D.CONTENTS != '') THEN 1 END) AS hdbStsC
|
||||
COUNT(CASE WHEN D.HDB_STS = 'A' AND D.CREATE_DATE >= DATE_SUB(NOW(), INTERVAL 30 DAY) AND D.REC_STS = 'A' AND (D.TITLE != '' OR D.CONTENTS != '') THEN 1 END) AS hdbStsA,
|
||||
COUNT(CASE WHEN D.HDB_STS = 'B' AND D.CREATE_DATE >= DATE_SUB(NOW(), INTERVAL 30 DAY) AND D.REC_STS = 'A' AND (D.TITLE != '' OR D.CONTENTS != '') THEN 1 END) AS hdbStsB,
|
||||
COUNT(CASE WHEN D.HDB_STS = 'C' AND D.CREATE_DATE >= DATE_SUB(NOW(), INTERVAL 30 DAY) AND D.REC_STS = 'A' AND (D.TITLE != '' OR D.CONTENTS != '') THEN 1 END) AS hdbStsC
|
||||
FROM DMS_PRJ_AUTH_USER A
|
||||
JOIN HMS_USER B
|
||||
ON A.USER_ID = B.USER_ID
|
||||
|
||||
@@ -129,9 +129,11 @@
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${commentList }">
|
||||
<tr>
|
||||
<th class="left" colspan="3">
|
||||
등록자 : ${list.userNm } | 등록일시 : <fmt:formatDate value="${list.createDate }" pattern="yyyy.MM.dd hh:mm"/>
|
||||
<c:if test="${loginVO.name eq list.userNm }"> <a href="#" onclick="fn_egov_comment_delete('${list.brdReplySeq }', '${commentVO.parentUrl}');">[삭제]</a> </c:if>
|
||||
<th class="left" colspan="3">
|
||||
등록자 : ${list.userNm } | 등록일시 :
|
||||
<fmt:parseDate value="${list.createDate}" pattern="yyyy-MM-dd'T'HH:mm:ss" var="parsedCreateDate"/>
|
||||
<fmt:formatDate value="${parsedCreateDate}" pattern="yyyy.MM.dd HH:mm"/>
|
||||
<c:if test="${loginVO.name eq list.userNm }"> <a href="#" onclick="fn_egov_comment_delete('${list.brdReplySeq }', '${commentVO.parentUrl}');">[삭제]</a></c:if>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -72,7 +72,11 @@
|
||||
<td><a href="#view" onclick="return fn_egov_select('${list.userSeq}')">${list.userNm} (${list.userId})</a></td>
|
||||
<td>${list.tel}</td>
|
||||
<td>${list.deptNm}</td>
|
||||
<td><fmt:formatDate value="${list.createDate }" pattern="yyyy-MM-dd" /></td>
|
||||
<td>
|
||||
<fmt:parseDate value="${list.createDate}" pattern="yyyy-MM-dd'T'HH:mm:ss" var="createdDate"/>
|
||||
<fmt:formatDate value="${createdDate}" pattern="yyyy-MM-dd"/>
|
||||
</td>
|
||||
|
||||
<td>${list.userType}</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
|
||||
@@ -24,11 +24,17 @@
|
||||
<script src="/js/common/charts-plugin-datalabels.js"></script>
|
||||
|
||||
<c:set var="now" value="<%= new java.util.Date() %>" />
|
||||
<fmt:formatDate value="${now}" pattern="yyyy" var="curYear" />
|
||||
<div class="location_box">
|
||||
<div class="loc_h3"><h3>${prjNm} <%=MainGlobals.MENU_HDB%>
|
||||
(<span class="year-text"><fmt:formatDate value="${now}" pattern="yyyy" /> 년 - </span><span class="sts-a">접수: ${hdbStsA}</span>,
|
||||
<span class="sts-b">처리중: ${hdbStsB}</span>,
|
||||
<span class="sts-c">완료: ${hdbStsC}</span> )
|
||||
<div class="loc_h3"><h3>${prjNm} <%=MainGlobals.MENU_HDB%>
|
||||
(
|
||||
<span class="year-text">
|
||||
<%-- ${curYear} 년 --%>
|
||||
한달간 처리 현황
|
||||
</span>
|
||||
<span class="sts-a">접수: ${dmsHdbStat.hdbStsA}</span>,
|
||||
<span class="sts-b">처리중: ${dmsHdbStat.hdbStsB}</span>,
|
||||
<span class="sts-c">완료: ${dmsHdbStat.hdbStsC}</span> )
|
||||
</h3><span></span></div>
|
||||
<span class="loccation"><img src="/images/admin/loccation_home.png" alt="홈" /> > <strong><%=MainGlobals.MENU_HDB%></strong></span>
|
||||
</div>
|
||||
@@ -111,7 +117,10 @@
|
||||
<img src="/images/admin/cf_tit_ic.png">
|
||||
</c:if>
|
||||
</td>
|
||||
<td>${list.createDate}</td>
|
||||
<td>
|
||||
<fmt:parseDate value="${list.createDate}" pattern="yyyy-MM-dd'T'HH:mm:ss" var="parsedCreateDate"/>
|
||||
<fmt:formatDate value="${parsedCreateDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
</td>
|
||||
<td>${list.rdCnt }</td>
|
||||
<%-- <td>${list.compScdDate}</td> --%>
|
||||
</tr>
|
||||
@@ -154,19 +163,33 @@
|
||||
sbData.append("]");
|
||||
|
||||
// 한달 현황 (도넛)
|
||||
DmsHdbGraphVO monthlyList = (DmsHdbGraphVO) request.getAttribute("monthlyList");
|
||||
/* DmsHdbGraphVO monthlyList = (DmsHdbGraphVO) request.getAttribute("monthlyList");
|
||||
|
||||
int cntA = monthlyList.getHdbStsA(); // 접수
|
||||
int cntB = monthlyList.getHdbStsB(); // 처리중
|
||||
int cntC = monthlyList.getHdbStsC(); // 완료
|
||||
int cntC = monthlyList.getHdbStsC(); // 완료 */
|
||||
%>
|
||||
|
||||
<div class="chart-container">
|
||||
<!-- 막대 그래프 -->
|
||||
<div class="chart-box" style="flex:2;">
|
||||
<canvas id="yearChart"></canvas>
|
||||
</div>
|
||||
|
||||
<div class="chart-wrapper">
|
||||
<div class="chart-title">
|
||||
<div class="chart-main-title">
|
||||
${curYear}년 요청 통계
|
||||
</div>
|
||||
<div class="chart-sub-title"><strong>Total [ </strong>
|
||||
<span class="sts-a">접수 ${dmsHdbStat.hdbStsYrA}건</span>
|
||||
<span class="sep">/</span>
|
||||
<span class="sts-b">처리중 ${dmsHdbStat.hdbStsYrB}건</span>
|
||||
<span class="sep">/</span>
|
||||
<span class="sts-c">완료 ${dmsHdbStat.hdbStsYrC}건</span>
|
||||
<strong> ]</strong>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 막대 그래프 -->
|
||||
<div class="chart-box" style="flex:2;">
|
||||
<canvas id="yearChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 도넛 그래프 -->
|
||||
<div class="chart-box" style="flex:1; position:relative;">
|
||||
<canvas id="monthChart"></canvas>
|
||||
@@ -190,6 +213,11 @@ Chart.register(ChartDataLabels);
|
||||
const annualLabels = <%= sbLabels.toString() %>;
|
||||
const annualData = <%= sbData.toString() %>;
|
||||
|
||||
const YEAR = '${curYear}';
|
||||
const hdbStsA = Number('${dmsHdbStat.hdbStsA != null ? hdbStsA : 0}');
|
||||
const hdbStsB = Number('${dmsHdbStat.hdbStsB != null ? hdbStsB : 0}');
|
||||
const hdbStsC = Number('${dmsHdbStat.hdbStsC != null ? hdbStsC : 0}');
|
||||
|
||||
new Chart(
|
||||
document.getElementById('yearChart'),
|
||||
{
|
||||
@@ -210,8 +238,8 @@ new Chart(
|
||||
|
||||
plugins: {
|
||||
title: {
|
||||
display: true,
|
||||
text: '2025년 월별 요청 통계',
|
||||
display: false,
|
||||
//text: YEAR + `년 요청 통계 (접수 ${hdbStsA}건 / 처리중 ${hdbStsB}건 / 완료 ${hdbStsC}건)`,
|
||||
font: { size: 20, weight: 'bold' },
|
||||
padding: { top: 10, bottom: 20 }
|
||||
},
|
||||
@@ -262,9 +290,9 @@ new Chart(
|
||||
/****************************************
|
||||
* 2) 한달 현황 도넛 차트
|
||||
****************************************/
|
||||
const cntA = <%= cntA %>; // 접수
|
||||
const cntB = <%= cntB %>; // 처리중
|
||||
const cntC = <%= cntC %>; // 완료
|
||||
const cntA = ${dmsHdbStat.hdbStsYrA}; // 접수
|
||||
const cntB = ${dmsHdbStat.hdbStsYrB}; // 처리중
|
||||
const cntC = ${dmsHdbStat.hdbStsYrC}; // 완료
|
||||
|
||||
const monthChartCanvas = document.getElementById('monthChart');
|
||||
const noDataMsg = document.getElementById('noDataMsg');
|
||||
|
||||
@@ -46,9 +46,9 @@
|
||||
.main_box .bottom_box .bottom_logo{width:20%; float: left; margin-left: 10px;}
|
||||
/* .main_box .bottom_box .bottom_txt{width:70%; float: left;} */
|
||||
|
||||
.sts-a { color: red; font-size: 12px;}
|
||||
.sts-b { color: green; font-size: 12px; }
|
||||
.sts-c { color: blue; font-size: 12px; }
|
||||
.sts-a { color: rgb(75,192,192); font-size: 12px;}
|
||||
.sts-b { color: rgb(255,99,132); font-size: 12px; }
|
||||
.sts-c { color: rgb(54,162,235); font-size: 12px; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="main_wrap_body">
|
||||
@@ -67,7 +67,8 @@
|
||||
<div class="cent_menu">
|
||||
<p class="prj_txt">● 프로젝트 현황</p>
|
||||
<c:set var="now" value="<%= new java.util.Date() %>" />
|
||||
<span class="year-info">※괄호 안 현황 정보는 <fmt:formatDate value="${now}" pattern="yyyy" />년도 기준입니다.</span>
|
||||
<%-- <span class="year-info">※괄호 안 현황 정보는 <fmt:formatDate value="${now}" pattern="yyyy" />년도 기준입니다.</span> --%>
|
||||
<span class="year-info">※괄호 안 현황 정보는 지난 한달 간 데이터 집계입니다.</span>
|
||||
<div class="txt_field">
|
||||
<c:if test="${empty sessionPrjList }">
|
||||
<p class="txt_list">담당하신 프로젝트가 없습니다. 관리자에게 문의해주세요.<p>
|
||||
@@ -75,7 +76,7 @@
|
||||
<c:if test="${!empty sessionPrjList }">
|
||||
<c:forEach items="${sessionPrjList }" var="list">
|
||||
<p class="txt_list">
|
||||
<a href='/dms/contents/dms/hdb/01/hdb.01.001.motion?prjSeq=${list.prjSeq }&moveDetail=Y&hdbStsA=${list.hdbStsA}&hdbStsB=${list.hdbStsB}&hdbStsC=${list.hdbStsC}'>
|
||||
<a href='/dms/contents/dms/hdb/01/hdb.01.001.motion?prjSeq=${list.prjSeq }&moveDetail=Y'>
|
||||
- ${list.prjNm }
|
||||
(<span class="sts-a">접수: ${list.hdbStsA}</span>,
|
||||
<span class="sts-b">처리중: ${list.hdbStsB}</span>,
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
<tr>
|
||||
<th>등록일</th>
|
||||
<td class="left">
|
||||
<%-- <fmt:formatDate value="${dmsHdbVO.createDate}" pattern="yyyy-MM-dd" /> --%>
|
||||
${dmsDtbVO.createDate}
|
||||
<fmt:parseDate value="${dmsHdbVO.createDate}" pattern="yyyy-MM-dd'T'HH:mm:ss" var="parsedCreateDate"/>
|
||||
<fmt:formatDate value="${parsedCreateDate}" pattern="yyyy-MM-dd" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
<tr>
|
||||
<th>등록일</th>
|
||||
<td class="left">
|
||||
<%-- <fmt:formatDate value="${dmsHdbVO.createDate}" pattern="yyyy-MM-dd" /> --%>
|
||||
${dmsHdbVO.createDate}
|
||||
<fmt:parseDate value="${dmsHdbVO.createDate}" pattern="yyyy-MM-dd'T'HH:mm:ss" var="createdDate"/>
|
||||
<fmt:formatDate value="${createdDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -29,7 +29,7 @@ if(UserHelper.isAuthenticated()) {
|
||||
<script type="text/javascript" src="${pageContext.request.contextPath}/dwr/interface/DwrCommonService.js"></script>
|
||||
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/mobile/common.css">
|
||||
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/mobile/layout.css">
|
||||
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/mobile/contents.css">
|
||||
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/mobile/contents.css?ver=20260106">
|
||||
<script type="text/javascript" src="${pageContext.request.contextPath}/js/mobile/jquery-1.7.1.min.js"></script><!--전체메뉴-->
|
||||
<script type="text/javascript" src="${pageContext.request.contextPath}/js/mobile/jquery.easing.1.3.js" ></script><!--전체메뉴-->
|
||||
<script type="text/javascript" src="${pageContext.request.contextPath}/js/mobile/mobTnav.js" ></script><!--전체메뉴-->
|
||||
|
||||
@@ -414,23 +414,23 @@ a.btn_search_gray:HOVER {background-color:#4c4c4c; border:1px solid #2f2f2f;}
|
||||
}
|
||||
|
||||
/*요청처리현황*/
|
||||
.sts-a { color: green !important; font-size: 12px; }
|
||||
.sts-b { color: red !important; font-size: 12px; }
|
||||
.sts-c { color: blue !important; font-size: 12px; }
|
||||
.sts-a { color: rgb(75,192,192) !important; font-size: 12px; }
|
||||
.sts-b { color: rgb(255,99,132) !important; font-size: 12px; }
|
||||
.sts-c { color: rgb(54,162,235) !important; font-size: 12px; }
|
||||
|
||||
.year-text {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.year-info-wrap {
|
||||
text-align: right; /* 오른쪽 정렬 */
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.year-info {
|
||||
font-size: 12px;
|
||||
color: red; /* 빨간 글씨 */
|
||||
color: red;
|
||||
position: relative;
|
||||
left: 370px;
|
||||
left: 300px;
|
||||
}
|
||||
|
||||
/*차트*/
|
||||
@@ -444,9 +444,47 @@ a.btn_search_gray:HOVER {background-color:#4c4c4c; border:1px solid #2f2f2f;}
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.chart-wrapper {
|
||||
width: 100%;
|
||||
max-width: 900px; /* 차트 너비와 동일하게 */
|
||||
margin: 0 auto; /* 중앙 정렬 */
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.chart-title {
|
||||
text-align: center;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.chart-main-title {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: #666;
|
||||
margin-bottom: 6px; /* 줄바꿈 간격 */
|
||||
}
|
||||
|
||||
.chart-sub-title {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* 상태별 색상 */
|
||||
.chart-sub-title .sts-a {
|
||||
color: rgb(75,192,192); /* 접수 - 초록 */
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.chart-sub-title .sts-b {
|
||||
color: rgb(255,99,132); /* 처리중 - 빨강 */
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.chart-sub-title .sts-c {
|
||||
color: rgb(54,162,235); /* 완료 - 파랑 */
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.chart-sub-title .sep {
|
||||
margin: 0 6px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user