이준호 전자조정시스템 고도화 커밋

- (관리자) 메인 대시보드 리스트 추가
This commit is contained in:
LJH 2022-10-18 19:41:30 +09:00
parent c57408e835
commit 274bb3bca2
2 changed files with 247 additions and 8 deletions

View File

@ -18,6 +18,9 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
@ -42,6 +45,7 @@ import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultVO;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.util.RedirectUrlMaker;
import kcc.com.cmm.util.StringUtil;
import kcc.com.uss.ion.bnr.service.BannerVO;
import kcc.com.uss.ion.bnr.service.EgovBannerService;
import kcc.com.uss.ion.cyb.service.CyberAlertManageService;
@ -51,6 +55,10 @@ import kcc.com.uss.ion.pwm.service.PopupManageVO;
import kcc.com.uss.ion.pwm.service.PopupzoneVO;
import kcc.kccadr.adjPgrMgr.cmm.service.PgrCmmService;
import kcc.kccadr.adjPgrMgr.cmm.service.PgrCmmVO;
import kcc.kccadr.adjPgrMgr.iam.service.InternalApprovManageService;
import kcc.kccadr.adjPgrMgr.iam.service.InternalApprovManageVO;
import kcc.kccadr.cmm.CmmUtil;
import kcc.kccadr.cmm.KccadrConstants;
import kcc.let.cop.bbs.service.BoardVO;
import kcc.let.cop.bbs.service.EgovBBSManageService;
import kcc.let.sts.com.StatsVO;
@ -137,6 +145,10 @@ public class EgovMainController {
@Resource(name = "pgrCmmService")
private PgrCmmService cmmService;
@Resource(name = "internalApprovManageService")
private InternalApprovManageService internalApprovManageService;
/**
* 메인 페이지에서 업무 화면으로 연계하는 기능을 제공한다.
*
@ -417,9 +429,18 @@ public class EgovMainController {
* @throws Exception
*/
@RequestMapping(value = "/cmm/main/exctvMainPage.do")
public String exctvMainPage(ModelMap model, HttpSession session) throws Exception{
public String exctvMainPage(PgrCmmVO cmmVO,
InternalApprovManageVO internalApprovManageVO,
ModelMap model,
HttpSession session) throws Exception{
//나의 결재 요청 리스트 조회
model.addAttribute("approvList", approvlistPaging(internalApprovManageVO, model, internalApprovManageService));
//사건 진행 현황 리스트 조회
model.addAttribute("accdntList", accdntlistPaging(cmmVO, model, cmmService));
return "main/exctvMainView";
// return "main/EgovMainView";
}
/**
@ -920,5 +941,93 @@ public class EgovMainController {
System.out.println( "Calculation: " + cal );
System.out.println( "CPU Usage: " + usage );
}
private List<PgrCmmVO> accdntlistPaging(PgrCmmVO cmmVO, ModelMap model, PgrCmmService cmmService) throws Exception {
if (StringUtil.isEmpty(cmmVO.getSearchSortCnd())) { // 최초조회시 최신것 조회List
cmmVO.setSearchSortCnd("M.ADR_NO IS NULL DESC, M.ADR_NO DESC, M.SBMT_DE");
cmmVO.setSearchSortOrd("DESC");
}
if (StringUtil.isEmpty(cmmVO.getSearchStartDt())) { // 조회일시가 null인경우
Date today = new Date();
cmmVO.setSearchStartDt(DateFormatUtils.format(DateUtils.addMonths(today, -1), "yyyyMMdd"));
cmmVO.setSearchEndDt(DateFormatUtils.format(today, "yyyyMMdd"));
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(cmmVO.getPageIndex());
paginationInfo.setRecordCountPerPage(cmmVO.getPageUnit());
paginationInfo.setPageSize(cmmVO.getPageSize());
cmmVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
cmmVO.setLastIndex(paginationInfo.getLastRecordIndex());
cmmVO.setRecordCountPerPage(3);
paginationInfo.setTotalRecordCount(cmmService.selectPgrCmmListCnt(cmmVO));
model.addAttribute("paginationInfo", paginationInfo);
return cmmService.selectPgrCmmList(cmmVO);
}
private List<InternalApprovManageVO> approvlistPaging(InternalApprovManageVO internalApprovManageVO, ModelMap model, InternalApprovManageService internalApprovManageService) throws Exception {
String auth = EgovUserDetailsHelper.isAuthenticated() ? null : EgovUserDetailsHelper.getAuthenticatedUser().toString();
LoginVO loginVO = "anonymousUser".equals(auth) ? null : (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
if (loginVO == null) {
return null;
}
internalApprovManageVO.setFrstRegisterId(loginVO.getUniqId());
internalApprovManageVO.setMemSeq(loginVO.getUniqId());
internalApprovManageVO.setSearchSbmtId(loginVO.getUniqId());
if("".equals(internalApprovManageVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
internalApprovManageVO.setSearchSortCnd("RS.adrNo");
internalApprovManageVO.setSearchSortOrd("desc");
}
//내부결재 목록 페이지 접근시 결재상태 - 결재대기(01), 결재진행중(02) 상태가 기본값으로 해달라는 요청_220225_이준호수정
if("".equals(internalApprovManageVO.getSearchStatusArr()) || internalApprovManageVO.getSearchStatusArr() == null){
String[] defaultSearchStatusArr = {"01", "02", "03", "04"};
internalApprovManageVO.setSearchStatusArr(defaultSearchStatusArr);
}
if(StringUtils.isEmpty(internalApprovManageVO.getSearchStartDt()) && StringUtils.isEmpty(internalApprovManageVO.getSearchEndDt())){
internalApprovManageVO.setSearchStartDt(CmmUtil.getDiffMonth(1 , "yyyy-MM-dd"));
internalApprovManageVO.setSearchEndDt(CmmUtil.getDateNow("yyyy-MM-dd"));
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(internalApprovManageVO.getPageIndex());
paginationInfo.setRecordCountPerPage(3);
paginationInfo.setPageSize(internalApprovManageVO.getPageSize());
//위원장 아이디는 위원장이 결재 시점에서만 조회되게
// 리스트 조건절 결재선 1,2 라인이 결재 완료이고 위원장 아이디 일때만 조회
UserManageVO userManageVO = new UserManageVO();
userManageVO = userManageService.selectUser(loginVO.getUniqId());
if(KccadrConstants.ADR_SBMT_TY_40.equals(userManageVO.getOfcpsNm())) {
internalApprovManageVO.setUiWonJangId(loginVO.getUniqId());
}
//22.02.08 이준호 내부결재목록 최고관리자의 경우 모든 결재가 보이게 처리 요청사항 적용
if("ROLE_ADMIN".equals(loginVO.getAuthority())) {
internalApprovManageVO.setAuthor(loginVO.getAuthority());
}
internalApprovManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
internalApprovManageVO.setLastIndex(paginationInfo.getLastRecordIndex());
internalApprovManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
paginationInfo.setTotalRecordCount(internalApprovManageService.selectInternalApprovManageCount(internalApprovManageVO));
model.addAttribute("paginationInfo", paginationInfo);
return internalApprovManageService.selectInternalApprovManageList(internalApprovManageVO);
}
}

View File

@ -18,6 +18,7 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<!DOCTYPE html>
<html>
<head>
@ -53,9 +54,46 @@
listForm.submit();
}
}
function fncGoApprovDetail(adrSeq, adrSn, sbmtSeq, sbmtTy){
var listForm = document.ApprovListForm ;
listForm.adrSeq.value = adrSeq;
listForm.adrSn.value = adrSn;
listForm.sbmtSeq.value = sbmtSeq;
if(sbmtTy == '309010'){
listForm.action = "<c:url value='/kccadr/adjPgrMgr/iam/internalApprovManageEndDetail.do'/>";
}else{
listForm.action = "<c:url value='/kccadr/adjPgrMgr/iam/internalApprovManageDetail.do'/>";
}
listForm.submit();
}
function fncGoAccdntDetail(adrSeq, adrSn, reqOlCd) {
var listForm = document.AccdntListForm;
listForm.adrSeq.value = adrSeq;
listForm.adrSn.value = adrSn;
listForm.reqOlCd.value = reqOlCd;
listForm.action = "<c:url value='/kccadr/adjPgrMgr/apm/apmDetail.do'/>";
listForm.submit();
}
function fnGoList(url){
location.href = url;
}
</script>
</head>
<body>
<form:form id="ApprovListForm" name="ApprovListForm" method="post" commandName="internalApprovManageVO">
<input type="hidden" name="adrSeq" value="" />
<input type="hidden" name="adrSn" value="" />
<input type="hidden" name="sbmtSeq" value="" />
</form:form>
<form:form id="AccdntListForm" name="AccdntListForm" commandName="cmmVO" onsubmit="return false;" method="post">
<input type="hidden" name="adrSeq" />
<input type="hidden" name="adrSn" />
<input type="hidden" name="reqOlCd" />
</form:form>
<div class="cont_wrap">
<div class="box">
<!-- <div class="cont_tit"> -->
@ -72,7 +110,7 @@
<div class="tb_tit">
<p>나의 결재 요청</p>
<div class="btn_wrap">
<button type="button" class="btn_plus" title="더보기"><i></i></button>
<button type="button" class="btn_plus" onclick="fnGoList('/kccadr/adjPgrMgr/iam/internalApprovManageList.do');" title="더보기"><i></i></button>
</div>
</div>
<div class="list tbType01">
@ -96,7 +134,7 @@
</tr>
</thead>
<tbody>
<tr>
<!-- <tr>
<td>접수결재</td>
<td>2022조정075</td>
<td>컴퓨터프로그램</td>
@ -119,14 +157,65 @@
<td>2022-09-01 18:00</td>
<td>2022-09-01 18:00</td>
<td>결재완료</td>
</tr>
</tr> -->
<c:forEach var="list" items="${approvList}" varStatus="status">
<tr>
<td>
<%--<font color="white"> '${list.adrSeq}','${list.adrSn}', '${list.sbmtSeq}'</font> --%>
<a href="#none" onclick="fncGoApprovDetail('${list.adrSeq}', '${list.adrSn}', '${list.sbmtSeq}', '${list.sbmtTy}');"><p><kc:code codeId="CC013" code="${list.sbmtTy}"/></p></a>
<%--<font color="white"> '${list.adrSeq}','${list.adrSn}', '${list.sbmtSeq}'</font> --%>
</td>
<td>
<a href="#none" onclick="fncGoApprovDetail('${list.adrSeq}', '${list.adrSn}', '${list.sbmtSeq}', '${list.sbmtTy}');"><p>${list.adrNo}</p></a>
</td>
<td>
<a href="#none" onclick="fncGoApprovDetail('${list.adrSeq}', '${list.adrSn}', '${list.sbmtSeq}', '${list.sbmtTy}');"><p><kc:code codeId="CC002" code="${list.ccTy}"/></p></a>
</td>
<td>
<p>${list.frstRegistPnttm}</p>
</td>
<td>
<p>
${list.allYn eq 'Y' ? list.lastUpdtPnttm : '-'}
</p>
<%--
<font color="white"> '${list.adrSeq}','${list.adrSn}', '${list.sbmtSeq}'</font>
--%>
</td>
<td>
<a href="#none" onclick="fncGoApprovDetail('${list.adrSeq}', '${list.adrSn}', '${list.sbmtSeq}', '${list.sbmtTy}');">
<p>
<c:choose>
<c:when test="${list.cfmStatCd eq '01'}">
결재대기
</c:when>
<c:when test="${list.cfmStatCd eq '03'}">
결재완료
</c:when>
<c:when test="${list.cfmStatCd eq '04'}">
결재반려
</c:when>
<c:otherwise>
<kc:code codeId="CC041" code="${list.sbmtGradeCd}"/>
</c:otherwise>
</c:choose>
</p>
</a>
</td>
</tr>
</c:forEach>
<c:if test="${empty approvList}">
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="tb_tit">
<p>사건 진행 현황</p>
<div class="btn_wrap">
<button type="button" class="btn_plus" title="더보기"><i></i></button>
<button type="button" class="btn_plus" onclick="fnGoList('/kccadr/adjPgrMgr/apm/apmList.do');" title="더보기"><i></i></button>
</div>
</div>
<div class="list tbType01">
@ -150,7 +239,7 @@
</tr>
</thead>
<tbody>
<tr>
<!-- <tr>
<td>2022-09-01</td>
<td>2022조정075</td>
<td>홍길동</td>
@ -173,7 +262,48 @@
<td>편집저작물</td>
<td>합의5부</td>
<td>배당결재요청</td>
</tr>
</tr> -->
<c:forEach var="item" items="${accdntList}" varStatus="status">
<tr>
<td>
<a href="#" onclick="fncGoAccdntDetail('<c:out value="${item.adrSeq}" />', '<c:out value="${item.adrSn}" />', '<c:out value="${item.reqOlCd}"/>');"> <c:out value="${item.sbmtDeDay}" /></a>
</td>
<td>
<a href="#" onclick="fncGoAccdntDetail('<c:out value="${item.adrSeq}" />', '<c:out value="${item.adrSn}" />', '<c:out value="${item.reqOlCd}"/>');"><c:out value="${item.adrNo}" /></a>
</td>
<td>
<a href="#" onclick="fncGoAccdntDetail('<c:out value="${item.adrSeq}" />', '<c:out value="${item.adrSn}" />', '<c:out value="${item.reqOlCd}"/>');"> <p><c:out value="${item.appliCantNm}" /></p></a>
</td>
<td>
<a href="#" onclick="fncGoAccdntDetail('<c:out value="${item.adrSeq}" />', '<c:out value="${item.adrSn}" />', '<c:out value="${item.reqOlCd}"/>');"> <p><c:out value="${item.ccTyTx}" /></p></a>
</td>
<td>
<p><c:out value="${item.memDeptNm}" /></p>
</td>
<td>
<c:choose>
<c:when test="${item.statCdTx eq '' || item.statCdTx eq null }"></c:when>
<c:when test="${item.statCd eq '104010'}">
<p class="status_cmp">
<c:out value="${item.statCdTx}" />
</p>
</c:when>
<c:otherwise>
<p class="status_ing">
<c:out value="${item.statCdTx}" />
</p>
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
<c:if test="${empty accdntList}">
<tr>
<td colspan="6">
<spring:message code="common.nodata.msg" />
</td>
</tr>
</c:if>
</tbody>
</table>
</div>