kic, 킨텍스 추가 요구사항 반영(url 보안체크 추가, 승인대상자료만 조건추가 ....)

This commit is contained in:
nhj 2026-03-12 19:45:48 +09:00
parent 265a36f9b4
commit d1b40ffd97
39 changed files with 537 additions and 66 deletions

View File

@ -0,0 +1,126 @@
package com.urpsys.basefront.config;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import lombok.extern.slf4j.Slf4j;
/**
* Controller Menu Auth Check interceptor 클리스
*
* @author urp 인프라본부 나혁제
* @since 2026.03.11
* @version 1.0.0
* @see
*
* <pre>
*
* << 개정이력(Modification information) >>
*
* 수정일 수정자 수정내용
* ----------- --------- ------------------------
* 2026.06.11 나혁제 최초작성
*
* </pre>
*/
@Slf4j
@Component
public class ItsmMenuAuthCheckFrontInterceptor implements HandlerInterceptor
{
// 컨트롤러가 호출되기
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
{
log.info(" >>>>>>>>>> preHandle <<<<<<<<<< ");
log.info("getRequestURI [{}]", request.getRequestURI() );
String strCurUrl = (String)request.getRequestURI();
String strTaskUrl = ""; // menu url
List<Map<String, Object>> list_menulist = (List<Map<String, Object>>)request.getSession().getAttribute("list_menulist");
List<Map<String, Object>> listMeunUrl = (List<Map<String, Object>>)request.getSession().getAttribute("listMeunUrl");
// 화면처리 권한 리스트가 없는경우 권한체크 하지 않음
if(listMeunUrl == null || listMeunUrl.size() == 0)
{
log.info(" 보안체크 URL 이 없음 ");
return true;
}
boolean bUrlCheckYn = false;
for(Map<String, Object> checkUrlMap : listMeunUrl)
{
String strCheckUrl = (String)checkUrlMap.get("dtlsTaskUrl");
// 보안대상 url
if(strCheckUrl.indexOf(strCurUrl) > -1)
{
strTaskUrl = (String)checkUrlMap.get("taskUrl");
log.info(" 메뉴 URL strTaskUrl [{}] ", strTaskUrl);
bUrlCheckYn = true;
break;
}
}
// 보안대상 url 인경우 세션에서 url 체크
if(bUrlCheckYn)
{
boolean bMenuAuth = false;
for(Map<String, Object> menuMap : list_menulist)
{
String strAuthUrl = (String)menuMap.get("chkURL");
// 메뉴권한 있음
if(strAuthUrl.indexOf(strTaskUrl)>-1)
{
bMenuAuth=true;
break;
}
}
// 메뉴권한 없음
if(!bMenuAuth)
{
response.sendRedirect("/error-page/errorNoAuth.do");
}
}
log.info(" <<<<<<<<<< preHandle >>>>>>>>>> ");
return true;
}
// controller의 handler가 끝나면 처리됨
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception
{
/*
log.info(" >>>>>>>>>> postHandle <<<<<<<<<< ");
log.info(" <<<<<<<<<< postHandle >>>>>>>>>> ");
*/
}
// 컨트롤러가 처리 완료후
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception
{
/*
log.info(" >>>>>>>>>> afterCompletion <<<<<<<<<< ");
log.info(" <<<<<<<<<< afterCompletion >>>>>>>>>> ");
*/
}
}

View File

@ -29,12 +29,15 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer
{
/*
* 모든 controller Interceptor 설정
* */
// 모든 controller Interceptor 설정(메뉴ID 설정)
@Autowired
UrpPortalFrontInterceptor urpPortalFrontInterceptor;
// 모든 controller Interceptor 설정(화면권한 체크)
@Autowired
ItsmMenuAuthCheckFrontInterceptor itsmMenuAuthCheckFrontInterceptor;
/*
@Value("${custom.path.phy_sitemap}")
private String resourcesLocation; // 사이트맵 물리적주소
@ -70,6 +73,10 @@ public class WebConfig implements WebMvcConfigurer
public void addInterceptors(InterceptorRegistry registry)
{
registry.addInterceptor(urpPortalFrontInterceptor).addPathPatterns("/**/*.do");
registry.addInterceptor(itsmMenuAuthCheckFrontInterceptor).addPathPatterns("/srm/*.do");
registry.addInterceptor(itsmMenuAuthCheckFrontInterceptor).addPathPatterns("/bbs/*.do");
registry.addInterceptor(itsmMenuAuthCheckFrontInterceptor).addPathPatterns("/rem/*.do");
registry.addInterceptor(itsmMenuAuthCheckFrontInterceptor).addPathPatterns("/sys/*.do");
}

View File

@ -92,6 +92,9 @@ public class MainController
@Value("${custom.client}")
private String strClient; // 납품고객
@Value("${custom.urlAuthCheck}")
private String strUrlAuthCheck; // 2026.03.12 나혁제 url 보안체크 여부
@RequestMapping(value={ "/", "/main/actionMain.do"})
public String actionMain(HttpServletRequest request
, HttpServletResponse response
@ -360,7 +363,9 @@ public class MainController
headers.put("Authorization", tokenInfo.getToken_type()+" "+tokenInfo.getAccess_token());
Map<String, String> body = new HashMap<>();
// 2026.03.12 나혁제 변경
// Map<String, String> body = new HashMap<>();
Map<String, Object> body = new HashMap<>();
String strApiUrl = strApiServer+"/main/EgovHeader.do";
@ -379,6 +384,20 @@ public class MainController
list_headmenu = (List<Map<String, Object>>)returnMap.get("list_headmenu");
list_menulist = (List<Map<String, Object>>)returnMap.get("list_menulist");
// 2026.03.12 나혁제 메뉴url 맵핑 정보 가져오기
if(strUrlAuthCheck.equals("Y"))
{
// RestApi Call Start ---------------------------------
returnMap = restApiCallUtil.RestApiCall(body, "/main/selectMenuScrnAuth.do");
// RestApi Call End ---------------------------------
List<LinkedHashMap<String, Object>> listMeunUrl = (List<LinkedHashMap<String, Object>>) returnMap.get("listMeunUrl");
log.info("listMeunUrl size [{}] =>" , listMeunUrl.size());
request.getSession().setAttribute("listMeunUrl", listMeunUrl);
}
}
request.getSession().setAttribute("list_headmenu", list_headmenu);

View File

@ -87,6 +87,16 @@ public class UrpErrorController implements ErrorController
return "uritms-tiles3/error/error501";
}
@RequestMapping(value={ "/error-page/errorNoAuth.do"})
public String errorNoAuth(HttpServletRequest request, HttpServletResponse response)
{
log.info(">>>>>>>>>>>>>>> /error-page/errorNoAuth.do <<<<<<<<<<<<<<<");
log.info("<<<<<<<<<<<<<<< /error-page/errorNoAuth.do >>>>>>>>>>>>>>>");
return "uritms-tiles3/error/errorNoAuth";
}

View File

@ -217,7 +217,7 @@ public class ResourceManagerController
}
/**
* 자산 목록을 조회한다.
* 자산정보 목록 엑셀 저장
* @author urp 인프라본부 나혁제
* 작성일 : 2025.01.31
*/
@ -814,7 +814,7 @@ public class ResourceManagerController
}
/**
* 자산 삭제 처리를 한다.
* 자산 복수 삭제 처리를 한다.
* @author urp 인프라본부 나혁제
* 작성일 : 2025.02.05
*/

View File

@ -82,6 +82,9 @@ public class ResourceManage extends ComDefaultVO
private String edateEos ;
// 2025.19.15 나혁제 조회조건 추가
private String hidEosCheckYn;
// 2026.03.12 나혁제 조회조건 추가(실사용자, 제품번호)
private String vcInAssetSerial;
private String vcInRealChargrNm;
public int getInAssetSeq() {
return inAssetSeq;
@ -395,6 +398,20 @@ public class ResourceManage extends ComDefaultVO
public void setHidEosCheckYn(String hidEosCheckYn) {
this.hidEosCheckYn = hidEosCheckYn;
}
public String getVcInAssetSerial() {
return vcInAssetSerial;
}
public void setVcInAssetSerial(String vcInAssetSerial) {
this.vcInAssetSerial = vcInAssetSerial;
}
public String getVcInRealChargrNm() {
return vcInRealChargrNm;
}
public void setVcInRealChargrNm(String vcInRealChargrNm) {
this.vcInRealChargrNm = vcInRealChargrNm;
}

View File

@ -134,7 +134,6 @@ public class SvcDeskController
// 네이버 알림서빗 테스트
return "uritms-tiles2/srm/SvcDeskList";
}

View File

@ -77,7 +77,7 @@ public class SvcDeskReqController
CommonService commonService;
/**
* 서비스 데스크 인스던트 목록을 조회한다.
* 서비스 데스크 인스던트 신청 목록을 조회한다.
* @author urp 인프라본부 나혁제
* 작성일 : 2025.12.15
*/

View File

@ -21,12 +21,13 @@ import com.urpsys.basefront.domain.ComDefaultVO;
public class ReportCheckListVo extends ComDefaultVO
{
private String status ;
private String reportId ;
private String incidentNum ;
private String regUser ;
private String reportTitle ;
private String inReportSeq ;
private String status ;
private String reportId ;
private String incidentNum ;
private String regUser ;
private String reportTitle ;
private String inReportSeq ;
private String approvalTargetYn ; // 2026.03.11 나혁제 승인대상 자료
public String getStatus() {
return status;
@ -52,6 +53,12 @@ public class ReportCheckListVo extends ComDefaultVO
public void setRegUser(String regUser) {
this.regUser = regUser;
}
public String getApprovalTargetYn() {
return approvalTargetYn;
}
public void setApprovalTargetYn(String approvalTargetYn) {
this.approvalTargetYn = approvalTargetYn;
}
public String getReportTitle() {
return reportTitle;
}

View File

@ -21,12 +21,13 @@ import com.urpsys.basefront.domain.ComDefaultVO;
public class ReportErrorListVo extends ComDefaultVO
{
private String status ;
private String reportId ;
private String incidentNum ;
private String regUser ;
private String reportTitle ;
private String inReportSeq ;
private String status ;
private String reportId ;
private String incidentNum ;
private String regUser ;
private String reportTitle ;
private String inReportSeq ;
private String approvalTargetYn ; // 2026.03.11 나혁제 승인대상 자료
public String getStatus() {
return status;
@ -64,6 +65,12 @@ public class ReportErrorListVo extends ComDefaultVO
public void setInReportSeq(String inReportSeq) {
this.inReportSeq = inReportSeq;
}
public String getApprovalTargetYn() {
return approvalTargetYn;
}
public void setApprovalTargetYn(String approvalTargetYn) {
this.approvalTargetYn = approvalTargetYn;
}

View File

@ -21,12 +21,13 @@ import com.urpsys.basefront.domain.ComDefaultVO;
public class ReportIssueListVo extends ComDefaultVO
{
private String status ;
private String reportId ;
private String incidentNum ;
private String regUser ;
private String reportTitle ;
private String inReportSeq ;
private String status ;
private String reportId ;
private String incidentNum ;
private String regUser ;
private String reportTitle ;
private String inReportSeq ;
private String approvalTargetYn ; // 2026.03.11 나혁제 승인대상 자료
public String getStatus() {
return status;
@ -64,6 +65,12 @@ public class ReportIssueListVo extends ComDefaultVO
public void setInReportSeq(String inReportSeq) {
this.inReportSeq = inReportSeq;
}
public String getApprovalTargetYn() {
return approvalTargetYn;
}
public void setApprovalTargetYn(String approvalTargetYn) {
this.approvalTargetYn = approvalTargetYn;
}

View File

@ -21,13 +21,14 @@ import com.urpsys.basefront.domain.ComDefaultVO;
public class ReportOtherListVo extends ComDefaultVO
{
private String status ;
private String reportId ;
private String incidentNum ;
private String regUser ;
private String reportTitle ;
private String inReportSeq ;
private String inTask ;
private String status ;
private String reportId ;
private String incidentNum ;
private String regUser ;
private String reportTitle ;
private String inReportSeq ;
private String inTask ;
private String approvalTargetYn ; // 2026.03.11 나혁제 승인대상 자료
public String getStatus() {
@ -72,6 +73,12 @@ public class ReportOtherListVo extends ComDefaultVO
public void setInTask(String inTask) {
this.inTask = inTask;
}
public String getApprovalTargetYn() {
return approvalTargetYn;
}
public void setApprovalTargetYn(String approvalTargetYn) {
this.approvalTargetYn = approvalTargetYn;
}

View File

@ -27,6 +27,7 @@ public class SvcDeskListVo extends ComDefaultVO
private String regUser;
private String incidentTitle;
private String inIncidentSeq;
private String approvalTargetYn ; // 2026.03.11 나혁제 승인대상 자료
public String getComplete() {
return complete;
@ -64,6 +65,12 @@ public class SvcDeskListVo extends ComDefaultVO
public void setInIncidentSeq(String inIncidentSeq) {
this.inIncidentSeq = inIncidentSeq;
}
public String getApprovalTargetYn() {
return approvalTargetYn;
}
public void setApprovalTargetYn(String approvalTargetYn) {
this.approvalTargetYn = approvalTargetYn;
}

View File

@ -42,4 +42,6 @@
socketFactory-class: javax.net.ssl.SSLSocketFactory
supplier: gmail.com
client : hpnote
# 2026.03.12 URL 권한 체크 여부
urlAuthCheck :

View File

@ -44,4 +44,6 @@
socketFactory-class: javax.net.ssl.SSLSocketFactory
supplier: gmail.com
client : urp
# 2026.03.12 URL 권한 체크 여부
urlAuthCheck :

View File

@ -49,4 +49,6 @@
socketFactory-class: javax.net.ssl.SSLSocketFactory
supplier: gmail.com
client : keiti
# 2026.03.12 URL 권한 체크 여부
urlAuthCheck :

View File

@ -44,4 +44,6 @@
socketFactory-class: javax.net.ssl.SSLSocketFactory
supplier: gmail.com
client : kic
# 2026.03.12 URL 권한 체크 여부
urlAuthCheck : Y

View File

@ -43,4 +43,6 @@
socketFactory-class: javax.net.ssl.SSLSocketFactory
supplier: gmail.com
client : kic
# 2026.03.12 URL 권한 체크 여부
urlAuthCheck : Y

View File

@ -58,4 +58,6 @@
socketFactory-class: javax.net.ssl.SSLSocketFactory
supplier: gmail.com
client : kintex
# 2026.03.12 URL 권한 체크 여부
urlAuthCheck :

View File

@ -50,6 +50,8 @@
senderName: 나혁제
socketFactory-class: javax.net.ssl.SSLSocketFactory
supplier: gmail.com
client : local
client : kintex
# 2026.03.12 URL 권한 체크 여부
urlAuthCheck : Y

View File

@ -50,5 +50,7 @@
socketFactory-class: javax.net.ssl.SSLSocketFactory
supplier: gmail.com
client : local
# 2026.03.12 URL 권한 체크 여부
urlAuthCheck :

View File

@ -44,4 +44,6 @@
socketFactory-class: javax.net.ssl.SSLSocketFactory
supplier: gmail.com
client : vmware
# 2026.03.12 URL 권한 체크 여부
urlAuthCheck :

View File

@ -49,6 +49,8 @@
senderName: 나혁제
socketFactory-class: javax.net.ssl.SSLSocketFactory
supplier: gmail.com
client : local
client : yp21
# 2026.03.12 URL 권한 체크 여부
urlAuthCheck :

View File

@ -0,0 +1,73 @@
<%--
Class Name : error501.jsp
Description : 시스템 오류 페이지 처리
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2025.01.24 나혁제 최초생성
author : urp 인프라본부 나혁제
since : 2025.01.24
--%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%-- 2025.01.24 오류 스타일시트 적용 --%>
<link rel="stylesheet" type="text/css" href="${ctx}/css/layout_err.css?ver=1">
<script type="text/javaScript" language="javascript">
/**********************************************************
* 모달 종료 버튼
******************************************************** */
function fnGoHome()
{
$('#modalPan').remove();
}
</script>
<!-- container :s -->
<div id="container">
<!-- inner :s -->
<div class="inner clearfix">
<!-- 시스템 Error :s -->
<div class="errorbox">
<div class="errorWrap">
<ul class="error_in">
<li>
<span class="img"></span>
<span class="error_color">권한 없음</span>
</li>
<li>
<h4>
해당 사용자는 현재 업무에 대해 처리권한이 없습니다.
<span class="error_message">
서비스 이용에 불편을 드려 죄송합니다.<br>
시스템 관리자에게 없무권한 부여후 사용하시길 바랍니다.
</span>
</h4>
</li>
</ul>
<div class="btnArea">
<button type="button" class="error_btn" title="홈으로 이동하기" onclick="location.href='/main/mainPage.do'" >홈으로 이동하기</button>
</div>
</div>
</div>
<!--//시스템 Error :End-->
</div>
<!--//inner :e -->
</div>
<!--//container :e -->

View File

@ -594,7 +594,7 @@
<th>EOS일자</th>
<td>
<input type="text" class="btn_calendar" name="dtEos" id="dtEos"
maxlength="10" value="${resultAsset.dtEos}" title="EOS일" readonly style="width:80%;" />
maxlength="10" value="${resultAsset.dtEos}" title="EOS일" readonly style="width:90%;" />
</td>
</tr>

View File

@ -364,7 +364,7 @@
</colgroup>
<tbody>
<tr>
<th>자산번호</th>
<th style="color: red;">* 자산번호</th>
<td><input type="text" name="vcAssetId" id="vcAssetId" value=""/></td>
<th>도입일자</th>
<td>
@ -393,7 +393,7 @@
</td>
</tr>
<tr>
<th>자산명</th>
<th style="color: red;">* 자산명</th>
<td><input type="text" name="vcAssetName" id="vcAssetName" value="" style="width:90%;" /></td>
<th>제품명</th>
<td><input type="text" name="vcModel" id="vcModel" value="" style="width:90%;" /></td>
@ -409,7 +409,7 @@
<td><input type="text" name="vcAssetSerial" id="vcAssetSerial" style="width:90%;" value=""/></td>
</tr>
<tr>
<th>도입금액</th>
<th style="color: red;">* 도입금액</th>
<td><input type="text" name="inPrice" id="inPrice" value=""/></td>
<%-- 2025.08.29 나혁제 자산상새 이동, 유지보수여부 이동 --%>
@ -444,7 +444,7 @@
</tr>
<tr>
<th>유지보수요율</th>
<th style="color: red;">* 유지보수요율</th>
<td><input type="text" name="inMasRate" id="inMasRate" value="${asset.inMasRate}"/> %</td>
<th>유지보수주기</th>
<td>

View File

@ -423,10 +423,18 @@
<td>
<label>EOS 일자 &nbsp;</label>
<input type="text" class="btn_calendar" name="sdateEos" id="sdateEos"
maxlength="10" value="${resourceManage.sdateEos}" title="EOS일 시작일" readonly style="width:200px;" />
maxlength="10" value="${resourceManage.sdateEos}" title="EOS일 시작일" readonly style="width:130px;" />
~
<input type="text" class="btn_calendar" name="edateEos" id="edateEos"
maxlength="10" value="${resourceManage.edateEos}" title="EOS일 종료" readonly style="width:200px" />
maxlength="10" value="${resourceManage.edateEos}" title="EOS일 종료" readonly style="width:130px" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label>제품번호 &nbsp;</label>
<input class="s_input" name="vcInAssetSerial" type="text" value='${resourceManage.vcInAssetSerial}' style="width: 130px;" >
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label>실사용자 &nbsp;</label>
<input class="s_input" name="vcInRealChargrNm" type="text" value='${resourceManage.vcInRealChargrNm}' style="width: 130px;" >
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label class="checkbox_label">

View File

@ -718,11 +718,12 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${searchVO.searchKeyword}'/>" >
<input type="hidden" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>" >
<input type="hidden" name="multiUserSelectYn" value="" >
<input type="hidden" name="reportId" value="<c:out value='${searchVO.reportId}'/>" >
<input type="hidden" name="incidentNum" value="<c:out value='${searchVO.incidentNum}'/>" >
<input type="hidden" name="regUser" value="<c:out value='${searchVO.regUser}'/>" >
<input type="hidden" name="reportTitle" value="<c:out value='${searchVO.reportTitle}'/>" >
<input type="hidden" name="status" value="<c:out value='${searchVO.status}'/>" >
<input type="hidden" name="reportId" value="<c:out value='${searchVO.reportId}'/>" >
<input type="hidden" name="incidentNum" value="<c:out value='${searchVO.incidentNum}'/>" >
<input type="hidden" name="regUser" value="<c:out value='${searchVO.regUser}'/>" >
<input type="hidden" name="reportTitle" value="<c:out value='${searchVO.reportTitle}'/>" >
<input type="hidden" name="status" value="<c:out value='${searchVO.status}'/>" >
<input type="hidden" name="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>" > <%-- 2026.03.11 나혁제 승인대상만추출 조건 추가 --%>
<!-- 임시정보 -->
<input type="hidden" id="inReportSeq" name="inReportSeq" value="${resultReport.inReportSeq}"/>

View File

@ -88,6 +88,16 @@
console.log($("#status").val());
// 2026.03.11 나혁제 승인대상추출 조건 추가
if($("#chk_approvalTargetYn").is(":checked"))
{
$("#approvalTargetYn").val("Y")
}
else
{
$("#approvalTargetYn").val("")
}
// 2025.12.04 나혁제 한페이지당 목록건수 추가
document.listForm.pageUnit.value = document.listForm.selPageSize.value;
document.listForm.pageIndex.value = pageIndex;
@ -136,6 +146,15 @@
<input type="checkbox" id="chk1_4" name="chk1_4" <c:if test="${fn:indexOf(searchVO.status, '3') >=0 }"> checked="checked" </c:if> > 승인완료
<span class="checkbox_icon"></span>
</label>
<%-- 2026.03.11 나혁제 승인대상 조건 추가 --%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label class="checkbox_label">
승인대상만 추출 &nbsp;&nbsp;
<input type="checkbox" id="chk_approvalTargetYn" name="chk_approvalTargetYn" <c:if test="${searchVO.approvalTargetYn eq 'Y'}"> checked="checked" </c:if> >
<span class="checkbox_icon"></span>
</label>
</td>
</tr>
@ -200,8 +219,8 @@
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: *;">
<col style="width: 10%;">
<col style="width: 15%;">
<col style="width: 13%;">
<col style="width: 11%;">
</colgroup>
<thead>
@ -241,8 +260,20 @@
</c:otherwise>
</c:choose>
</td>
<%-- 2026.03.11 나혁제 작성자 부분 그룹 추가 --%>
<td>
<c:choose>
<c:when test="${fn:length(reportList.vcRegCompany) > 0}">
<c:out value="${reportList.vcRegUser} (${reportList.vcRegCompany})"/>
</c:when >
<c:otherwise>
<c:out value="${reportList.vcRegUser}"/>
</c:otherwise>
</c:choose>
</td>
<%--
<td><c:out value="${reportList.vcRegUser}"/></td>
--%>
<td><c:out value="${reportList.dtLastUpdate}"/></td>
</tr>
@ -277,7 +308,8 @@
<input type="hidden" name="pageUnit" value="<c:out value='${searchVO.pageSize}'/>"/> <!-- 2025.12.04 나혁제 페이지당건수 -->
<!-- 입력조건 -->
<input type="hidden" name="status" id="status" value=""/>
<input type="hidden" name="status" id="status" value=""/>
<input type="hidden" name="approvalTargetYn" id="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>"/> <!-- 2026.03.11 나혁제 승인 대상 자료 -->
<!-- 상세조회 입력조건 -->
<input type="hidden" name="inReportSeq" id="inReportSeq" value=""/>

View File

@ -691,6 +691,7 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${searchVO.searchKeyword}'/>" />
<input type="hidden" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>" />
<input type="hidden" name="multiUserSelectYn" value="" >
<input type="hidden" name="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>" > <%-- 2026.03.11 나혁제 승인대상만추출 조건 추가 --%>
<!-- 임시정보 -->
<input type="hidden" id="inReportSeq" name="inReportSeq" value="${resultReport.inReportSeq}" />

View File

@ -88,6 +88,16 @@
console.log($("#status").val());
// 2026.03.11 나혁제 승인대상추출 조건 추가
if($("#chk_approvalTargetYn").is(":checked"))
{
$("#approvalTargetYn").val("Y")
}
else
{
$("#approvalTargetYn").val("")
}
// 2025.12.04 나혁제 한페이지당 목록건수 추가
document.listForm.pageUnit.value = document.listForm.selPageSize.value;
document.listForm.pageIndex.value = pageIndex;
@ -136,6 +146,15 @@
<input type="checkbox" id="chk1_4" name="chk1_4" <c:if test="${fn:indexOf(searchVO.status, '3') >=0 }"> checked="checked" </c:if> > 승인완료
<span class="checkbox_icon"></span>
</label>
<%-- 2026.03.11 나혁제 승인대상 조건 추가 --%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label class="checkbox_label">
승인대상만 추출 &nbsp;&nbsp;
<input type="checkbox" id="chk_approvalTargetYn" name="chk_approvalTargetYn" <c:if test="${searchVO.approvalTargetYn eq 'Y'}"> checked="checked" </c:if> >
<span class="checkbox_icon"></span>
</label>
</td>
</tr>
@ -241,8 +260,20 @@
</c:otherwise>
</c:choose>
</td>
<%-- 2026.03.11 나혁제 작성자 부분 그룹 추가 --%>
<td>
<c:choose>
<c:when test="${fn:length(reportList.vcRegCompany) > 0}">
<c:out value="${reportList.vcRegUser} (${reportList.vcRegCompany})"/>
</c:when >
<c:otherwise>
<c:out value="${reportList.vcRegUser}"/>
</c:otherwise>
</c:choose>
</td>
<%--
<td><c:out value="${reportList.vcRegUser}"/></td>
--%>
<td><c:out value="${reportList.dtLastUpdate}"/></td>
</tr>
@ -278,6 +309,8 @@
<!-- 입력조건 -->
<input type="hidden" name="status" id="status" value=""/>
<!-- 2026.03.11 나혁제 승인 대상 자료 -->
<input type="hidden" name="approvalTargetYn" id="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>"/>
<!-- 상세조회 입력조건 -->
<input type="hidden" name="inReportSeq" id="inReportSeq" value=""/>

View File

@ -707,6 +707,7 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${searchVO.searchKeyword}'/>" />
<input type="hidden" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>" />
<input type="hidden" name="multiUserSelectYn" value="" />
<input type="hidden" name="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>" > <%-- 2026.03.11 나혁제 승인대상만추출 조건 추가 --%>
<!-- 임시정보 -->
<input type="hidden" id="inReportSeq" name="inReportSeq" value="${resultReport.inReportSeq}" />

View File

@ -88,6 +88,16 @@
console.log($("#status").val());
// 2026.03.11 나혁제 승인대상추출 조건 추가
if($("#chk_approvalTargetYn").is(":checked"))
{
$("#approvalTargetYn").val("Y")
}
else
{
$("#approvalTargetYn").val("")
}
// 2025.12.04 나혁제 한페이지당 목록건수 추가
document.listForm.pageUnit.value = document.listForm.selPageSize.value;
document.listForm.pageIndex.value = pageIndex;
@ -137,6 +147,14 @@
<input type="checkbox" id="chk1_4" name="chk1_4" <c:if test="${fn:indexOf(searchVO.status, '3') >=0 }"> checked="checked" </c:if> > 승인완료
<span class="checkbox_icon"></span>
</label>
<%-- 2026.03.11 나혁제 승인대상 조건 추가 --%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label class="checkbox_label">
승인대상만 추출 &nbsp;&nbsp;
<input type="checkbox" id="chk_approvalTargetYn" name="chk_approvalTargetYn" <c:if test="${searchVO.approvalTargetYn eq 'Y'}"> checked="checked" </c:if> >
<span class="checkbox_icon"></span>
</label>
</td>
</tr>
@ -241,7 +259,20 @@
</c:otherwise>
</c:choose>
</td>
<%-- 2026.03.11 나혁제 작성자 부분 그룹 추가 --%>
<td>
<c:choose>
<c:when test="${fn:length(reportList.vcRegCompany) > 0}">
<c:out value="${reportList.vcRegUser} (${reportList.vcRegCompany})"/>
</c:when >
<c:otherwise>
<c:out value="${reportList.vcRegUser}"/>
</c:otherwise>
</c:choose>
</td>
<%--
<td><c:out value="${reportList.vcRegUser}"/></td>
--%>
<td><c:out value="${reportList.dtLastUpdate}"/></td>
</tr>
@ -277,6 +308,8 @@
<!-- 입력조건 -->
<input type="hidden" name="status" id="status" value=""/>
<!-- 2026.03.11 나혁제 승인 대상 자료 -->
<input type="hidden" name="approvalTargetYn" id="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>"/>
<!-- 상세조회 입력조건 -->
<input type="hidden" name="inReportSeq" id="inReportSeq" value=""/>

View File

@ -733,11 +733,12 @@
<input type="hidden" name="inTask" id="inTask" value="${searchVO.inTask}" />
<!-- 2025.12.24 나혁제 검색정보 추가 -->
<input type="hidden" name="reportId" value="<c:out value='${searchVO.reportId}'/>" >
<input type="hidden" name="incidentNum" value="<c:out value='${searchVO.incidentNum}'/>" >
<input type="hidden" name="regUser" value="<c:out value='${searchVO.regUser}'/>" >
<input type="hidden" name="reportTitle" value="<c:out value='${searchVO.reportTitle}'/>" >
<input type="hidden" name="status" value="<c:out value='${searchVO.status}'/>" >
<input type="hidden" name="reportId" value="<c:out value='${searchVO.reportId}'/>" >
<input type="hidden" name="incidentNum" value="<c:out value='${searchVO.incidentNum}'/>" >
<input type="hidden" name="regUser" value="<c:out value='${searchVO.regUser}'/>" >
<input type="hidden" name="reportTitle" value="<c:out value='${searchVO.reportTitle}'/>" >
<input type="hidden" name="status" value="<c:out value='${searchVO.status}'/>" >
<input type="hidden" name="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>" > <%-- 2026.03.11 나혁제 승인대상만추출 조건 추가 --%>
<!-- 임시정보 -->

View File

@ -27,7 +27,6 @@
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<title>기타보고서 정보</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
@ -95,6 +94,16 @@
console.log($("#status").val());
// 2026.03.11 나혁제 승인대상추출 조건 추가
if($("#chk_approvalTargetYn").is(":checked"))
{
$("#approvalTargetYn").val("Y")
}
else
{
$("#approvalTargetYn").val("")
}
// 2025.12.04 나혁제 한페이지당 목록건수 추가
document.listForm.pageUnit.value = document.listForm.selPageSize.value;
document.listForm.pageIndex.value = pageIndex;
@ -143,6 +152,13 @@
<input type="checkbox" id="chk1_4" name="chk1_4" <c:if test="${fn:indexOf(searchVO.status, '3') >=0 }"> checked="checked" </c:if> > 승인완료
<span class="checkbox_icon"></span>
</label>
<%-- 2026.03.11 나혁제 승인대상 조건 추가 --%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label class="checkbox_label">
승인대상만 추출 &nbsp;&nbsp;
<input type="checkbox" id="chk_approvalTargetYn" name="chk_approvalTargetYn" <c:if test="${searchVO.approvalTargetYn eq 'Y'}"> checked="checked" </c:if> >
<span class="checkbox_icon"></span>
</label>
</td>
</tr>
@ -170,7 +186,7 @@
</tbody>
</table>
<div class="btnArea">
<button type="button" class="btn-search" onclick="fncSearchReportCheckList(); return false;" title="조회">조회</button>
<button type="button" class="btn-search" onclick="fncSearchReportOtherList(); return false;" title="조회">조회</button>
</div>
</div>
<!--//검색 :e -->
@ -247,7 +263,20 @@
</c:otherwise>
</c:choose>
</td>
<%-- 2026.03.11 나혁제 작성자 부분 그룹 추가 --%>
<td>
<c:choose>
<c:when test="${fn:length(reportList.vcRegCompany) > 0}">
<c:out value="${reportList.vcRegUser} (${reportList.vcRegCompany})"/>
</c:when >
<c:otherwise>
<c:out value="${reportList.vcRegUser}"/>
</c:otherwise>
</c:choose>
</td>
<%--
<td><c:out value="${reportList.vcRegUser}"/></td>
--%>
<td><c:out value="${reportList.dtLastUpdate}"/></td>
</tr>
@ -284,8 +313,10 @@
<input type="hidden" name="pageUnit" value="<c:out value='${searchVO.pageSize}'/>"/> <!-- 2025.12.04 나혁제 페이지당건수 -->
<!-- 입력조건 -->
<input type="hidden" name="status" id="status" value=""/>
<input type="hidden" name="inTask" id="inTask" value="${searchVO.inTask}"/>
<input type="hidden" name="status" id="status" value=""/>
<input type="hidden" name="inTask" id="inTask" value="${searchVO.inTask}"/>
<!-- 2026.03.11 나혁제 승인 대상 자료 -->
<input type="hidden" name="approvalTargetYn" id="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>"/>
<!-- 상세조회 입력조건 -->
<input type="hidden" name="inReportSeq" id="inReportSeq" value=""/>

View File

@ -764,6 +764,7 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${searchVO.searchKeyword}'/>" >
<input type="hidden" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>" >
<input type="hidden" name="multiUserSelectYn" value="" >
<input type="hidden" name="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>" > <%-- 2026.03.11 나혁제 승인대상만추출 조건 추가 --%>
<!-- 입력정보 -->
<input type="hidden" id="txIncidentBody" name="txIncidentBody" value="" >

View File

@ -971,6 +971,7 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${searchVO.searchKeyword}'/>" >
<input type="hidden" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>" >
<input type="hidden" name="multiUserSelectYn" value="" >
<input type="hidden" name="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>" > <%-- 2026.03.11 나혁제 승인대상만추출 조건 추가 --%>
<!-- 임시정보 -->
<input type="hidden" id="inIncidentStatus" name="inIncidentStatus" value="${resultIncident.inIncidentStatus}"/>

View File

@ -824,6 +824,8 @@ ${uploadMax }
<input type="hidden" name="searchKeyword" value="<c:out value='${searchVO.searchKeyword}'/>" >
<input type="hidden" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>" >
<input type="hidden" name="multiUserSelectYn" value="" >
<input type="hidden" name="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>" > <%-- 2026.03.11 나혁제 승인대상만추출 조건 추가 --%>
<%-- 2025.10.21 나혁제 오류 발생
<input type="hidden" name="inTask" id="inTask" value="${searchVO.inTask}"/>
--%>

View File

@ -96,6 +96,16 @@
console.log("complete =>" + complete);
console.log("status =>" + status);
// 2026.03.11 나혁제 승인대상추출 조건 추가
if($("#chk_approvalTargetYn").is(":checked"))
{
$("#approvalTargetYn").val("Y")
}
else
{
$("#approvalTargetYn").val("")
}
document.listForm.pageIndex.value = pageIndex;
// 2025.12.04 나혁제 한페이지당 목록건수 추가
document.listForm.pageUnit.value = document.listForm.selPageSize.value;
@ -125,9 +135,9 @@
<table>
<colgroup>
<col width="10%">
<col width="30%">
<col width="20%">
<col width="10%">
<col width="50%">
<col width="60%">
</colgroup>
<tbody>
<tr>
@ -161,6 +171,15 @@
<input type="checkbox" id="chk1_4" name="chk1_4" <c:if test="${fn:indexOf(searchVO.status, '3') >=0 }"> checked="checked" </c:if> > 승인완료
<span class="checkbox_icon"></span>
</label>
<%-- 2026.03.11 나혁제 승인대상 조건 추가 --%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label class="checkbox_label">
승인대상만 추출 &nbsp;&nbsp;
<input type="checkbox" id="chk_approvalTargetYn" name="chk_approvalTargetYn" <c:if test="${searchVO.approvalTargetYn eq 'Y'}"> checked="checked" </c:if> >
<span class="checkbox_icon"></span>
</label>
</td>
</tr>
@ -291,8 +310,9 @@
<input type="hidden" name="pageUnit" value="<c:out value='${searchVO.pageSize}'/>"/> <!-- 2025.12.04 나혁제 페이지당건수 -->
<!-- 입력조건 -->
<input type="hidden" name="complete" id="complete" value=""/>
<input type="hidden" name="status" id="status" value=""/>
<input type="hidden" name="complete" id="complete" value=""/>
<input type="hidden" name="status" id="status" value=""/>
<input type="hidden" name="approvalTargetYn" id="approvalTargetYn" value="<c:out value='${searchVO.approvalTargetYn}'/>"/> <!-- 2026.03.11 나혁제 승인 대상 자료 -->
<!-- 상세조회 입력조건 -->
<input type="hidden" name="inIncidentSeq" id="inIncidentSeq" value=""/>