외사첩보망, 외사모니터링 조회모달 결재버튼 오류 수정.

master
강석 최 2023-06-07 18:31:10 +09:00
parent 77bc993246
commit 1ecc311a7c
7 changed files with 236 additions and 194 deletions

View File

@ -136,10 +136,10 @@ public class IntelligenceNetworkController {
} }
@GetMapping("/operationPlanViewModal") @GetMapping("/operationPlanViewModal")
public ModelAndView operationPlanViewModal(@AuthenticationPrincipal UserInfo loginUser, OperationPlan op){ public ModelAndView operationPlanViewModal(@AuthenticationPrincipal UserInfo loginUser, OperationPlan operationPlan){
ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/operationPlanViewModal"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/operationPlanViewModal");
op = intelligenceNetworkService.selectOperationPlan(op.getOpKey()); operationPlan = intelligenceNetworkService.selectOperationPlan(operationPlan.getOpKey());
mav.addObject("op", op); mav.addObject("operationPlan", operationPlan);
mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("viewOrgan",loginUser.getOgCd()); mav.addObject("viewOrgan",loginUser.getOgCd());
//메뉴권한 확인 //메뉴권한 확인

View File

@ -103,12 +103,12 @@ public class IntelligenceNetworkService extends BaseService {
} }
public OperationPlan selectOperationPlan(Integer opKey) { public OperationPlan selectOperationPlan(Integer opKey) {
OperationPlan savedOperationPlan = operationPlanRepository.findById(opKey).orElse(null); OperationPlan operationPlan = operationPlanRepository.findById(opKey).orElse(null);
if (savedOperationPlan != null) { if (operationPlan != null) {
savedOperationPlan.setFileList(operationPlanFileRepository.findByOpKey(opKey)); operationPlan.setFileList(operationPlanFileRepository.findByOpKey(opKey));
savedOperationPlan.setApprvList(operationPlanApprvRepository.findByOpKey(opKey)); operationPlan.setApprvList(operationPlanApprvRepository.findByOpKey(opKey));
} }
return savedOperationPlan; return operationPlan;
} }
@Transactional @Transactional

View File

@ -132,9 +132,23 @@
</div> </div>
<div class="col-auto"> <div class="col-auto">
<th:block th:if="${fer.wrtOrgan eq viewOrgan}"> <th:block th:if="${fer.wrtOrgan eq viewOrgan}">
<th:block th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and fer.ferState eq 'DST002'}"> <th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and fer.ferState eq 'DST002'}">
<button type="button" class="btn btn-danger apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST003':'DST005'}" th:value="반려">반려</button> <!--계장, 계장대행 결재권한이 있으면서 결재대기상태-->
<button type="button" class="btn btn-success apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST004':'DST006'}" th:value="승인">승인</button> <th:block th:if="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행 결재권한이 있을경우-->
<button type="button" class="btn btn-danger apprvBtn" data-planstate="DST005">반려</button>
<button type="button" class="btn btn-success apprvBtn" data-planstate="DST006">승인</button>
</th:block>
<th:block th:unless="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행 결재권한이 없을경우-->
<button type="button" class="btn btn-danger apprvBtn" data-planstate="DST003">반려</button>
<button type="button" class="btn btn-success apprvBtn" data-planstate="DST004">승인</button>
</th:block>
</th:block>
<th:block th:if="${(#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and fer.ferState eq 'DST004'}">
<!--계장 권한 없이 과장, 과장대행 결재권한이 있을경우-->
<button type="button" class="btn btn-danger apprvBtn" data-planstate="DST005">반려</button>
<button type="button" class="btn btn-success apprvBtn" data-planstate="DST006">승인</button>
</th:block> </th:block>
</th:block> </th:block>
<th:block th:unless="${fer.ferState eq 'DST004' or fer.ferState eq 'DST006'}"><!--승인 상태일때는 수정 불가 --> <th:block th:unless="${fer.ferState eq 'DST004' or fer.ferState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->

View File

@ -197,9 +197,23 @@
</div> </div>
<div class="col-auto"> <div class="col-auto">
<th:block th:if="${ia.wrtOrgan eq viewOrgan}"> <th:block th:if="${ia.wrtOrgan eq viewOrgan}">
<th:block th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and ia.iaState eq 'DST002'}"> <th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and ia.iaState eq 'DST002'}">
<button type="button" class="btn btn-danger apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST003':'DST005'}" th:value="반려">반려</button> <!--계장, 계장대행 결재권한이 있으면서 결재대기상태-->
<button type="button" class="btn btn-success apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST004':'DST006'}" th:value="승인">승인</button> <th:block th:if="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행 결재권한이 있을경우-->
<button type="button" class="btn btn-danger apprvBtn" data-planstate="DST005">반려</button>
<button type="button" class="btn btn-success apprvBtn" data-planstate="DST006">승인</button>
</th:block>
<th:block th:unless="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행 결재권한이 없을경우-->
<button type="button" class="btn btn-danger apprvBtn" data-planstate="DST003">반려</button>
<button type="button" class="btn btn-success apprvBtn" data-planstate="DST004">승인</button>
</th:block>
</th:block>
<th:block th:if="${(#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and ia.iaState eq 'DST004'}">
<!--계장 권한 없이 과장, 과장대행 결재권한이 있을경우-->
<button type="button" class="btn btn-danger apprvBtn" data-planstate="DST005">반려</button>
<button type="button" class="btn btn-success apprvBtn" data-planstate="DST006">승인</button>
</th:block> </th:block>
</th:block> </th:block>
<th:block th:unless="${ia.iaState eq 'DST004' or ia.iaState eq 'DST006'}"><!--승인 상태일때는 수정 불가 --> <th:block th:unless="${ia.iaState eq 'DST004' or ia.iaState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->

View File

@ -10,80 +10,80 @@
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link active" id="boardTab" data-bs-toggle="tab" data-bs-target="#boardTabPanel" type="button" role="tab" aria-controls="boardTabPanel" aria-selected="true">본문</button> <button class="nav-link active" id="boardTab" data-bs-toggle="tab" data-bs-target="#boardTabPanel" type="button" role="tab" aria-controls="boardTabPanel" aria-selected="true">본문</button>
</li> </li>
<li class="nav-item" role="presentation" th:if="${#lists.size(op.fileList)>0}"> <li class="nav-item" role="presentation" th:if="${#lists.size(operationPlan.fileList)>0}">
<button class="nav-link" id="fileTab" data-bs-toggle="tab" data-bs-target="#fileTabPanel" type="button" role="tab" aria-controls="fileTabPanel" aria-selected="false" th:text="${#strings.concat('첨부파일(', #lists.size(op.fileList), ')')}"></button> <button class="nav-link" id="fileTab" data-bs-toggle="tab" data-bs-target="#fileTabPanel" type="button" role="tab" aria-controls="fileTabPanel" aria-selected="false" th:text="${#strings.concat('첨부파일(', #lists.size(operationPlan.fileList), ')')}"></button>
</li> </li>
</ul> </ul>
<div class="tab-content bg-white border border-top-0 p-2"> <div class="tab-content bg-white border border-top-0 p-2">
<div class="tab-pane fade p-2 show active" id="boardTabPanel" role="tabpanel" tabindex="0"> <div class="tab-pane fade p-2 show active" id="boardTabPanel" role="tabpanel" tabindex="0">
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">운용시작일</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">운용시작일</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${op.opSdate}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${operationPlan.opSdate}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
<th:block th:each="commonCode:${session.commonCode.get('JT')}"> <th:block th:each="commonCode:${session.commonCode.get('JT')}">
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq op.wrtUserGrd}" th:text="|${commonCode.itemValue} ${op.wrtUserNm}|"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq operationPlan.wrtUserGrd}" th:text="|${commonCode.itemValue} ${operationPlan.wrtUserNm}|"></label>
</th:block> </th:block>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성일</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">작성일</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(op.wrtDt, 'yyyy-MM-dd HH:mm')}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(operationPlan.wrtDt, 'yyyy-MM-dd HH:mm')}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">상태</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">상태</label>
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <th:block th:each="commonCode:${session.commonCode.get('DST')}">
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq op.opState}" th:text="${commonCode.itemValue}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq operationPlan.opState}" th:text="${commonCode.itemValue}"></label>
</th:block> </th:block>
</div> </div>
<hr> <hr>
<div class="row mb-1"><h6 class="">■ 정보협력자 구성</h6></div> <div class="row mb-1"><h6 class="">■ 정보협력자 구성</h6></div>
<div class="row text-center"> <div class="row text-center">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">성명:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">성명:</label>
<label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${op.opName}"></label> <label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${operationPlan.opName}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">생년월일:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">생년월일:</label>
<label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${op.opBirth}"></label> <label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${operationPlan.opBirth}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">근무처(소속):</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">근무처(소속):</label>
<label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${op.opPosition}"></label> <label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${operationPlan.opPosition}"></label>
</div> </div>
<div class="row text-center"> <div class="row text-center">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">직업(직위):</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">직업(직위):</label>
<label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${op.opJob}"></label> <label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${operationPlan.opJob}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">경력:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">경력:</label>
<label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${op.opCareer}"></label> <label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${operationPlan.opCareer}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">연락처:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">연락처:</label>
<label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${op.opPhone}"></label> <label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${operationPlan.opPhone}"></label>
</div> </div>
<div class="row"> <div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">주소:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">주소:</label>
<label class="col-sm-7 col-form-label col-form-label-sm text-start" th:text="${op.opAddress}"></label> <label class="col-sm-7 col-form-label col-form-label-sm text-start" th:text="${operationPlan.opAddress}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">등급:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">등급:</label>
<label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${op.opRank}"></label> <label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${operationPlan.opRank}"></label>
</div> </div>
<div class="row"> <div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">기타 참고:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">기타 참고:</label>
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${op.opEtc}"></label> <label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${operationPlan.opEtc}"></label>
</div> </div>
<hr> <hr>
<div class="row"> <div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">대상목표<br><br>위지</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">대상목표<br><br>위지</label>
<div class="col-sm-11 form-control-sm" id="contentDiv"> <div class="col-sm-11 form-control-sm" id="contentDiv">
<div th:utext="${#strings.replace(op.targetLocation, lineSeparator, '<br>')}"></div> <div th:utext="${#strings.replace(operationPlan.targetLocation, lineSeparator, '<br>')}"></div>
</div> </div>
</div> </div>
<hr> <hr>
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">취약성 분석</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">취약성 분석</label>
<div class="col-sm-11 form-control-sm" id="contentDiv"> <div class="col-sm-11 form-control-sm" id="contentDiv">
<div th:utext="${#strings.replace(op.vulnerabilityAnalyze, lineSeparator, '<br>')}"></div> <div th:utext="${#strings.replace(operationPlan.vulnerabilityAnalyze, lineSeparator, '<br>')}"></div>
</div> </div>
</div> </div>
<hr> <hr>
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">적격성 분석</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">적격성 분석</label>
<div class="col-sm-11 form-control-sm" id="contentDiv"> <div class="col-sm-11 form-control-sm" id="contentDiv">
<div th:utext="${#strings.replace(op.eligibilityAnalyze, lineSeparator, '<br>')}"></div> <div th:utext="${#strings.replace(operationPlan.eligibilityAnalyze, lineSeparator, '<br>')}"></div>
</div> </div>
</div> </div>
<hr> <hr>
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">중점 수집사항</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">중점 수집사항</label>
<div class="col-sm-11 form-control-sm" id="contentDiv"> <div class="col-sm-11 form-control-sm" id="contentDiv">
<div th:utext="${#strings.replace(op.focusCollection, lineSeparator, '<br>')}"></div> <div th:utext="${#strings.replace(operationPlan.focusCollection, lineSeparator, '<br>')}"></div>
</div> </div>
</div> </div>
</div> </div>
@ -96,13 +96,13 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<th:block th:if="${#lists.isEmpty(op.fileList)}"> <th:block th:if="${#lists.isEmpty(operationPlan.fileList)}">
<tr> <tr>
<td colspan="2">파일이 없습니다.</td> <td colspan="2">파일이 없습니다.</td>
</tr> </tr>
</th:block> </th:block>
<th:block th:unless="${#lists.isEmpty(op.fileList)}"> <th:block th:unless="${#lists.isEmpty(operationPlan.fileList)}">
<th:block th:each="file:${op.fileList}"> <th:block th:each="file:${operationPlan.fileList}">
<tr class="fileInfoTr"> <tr class="fileInfoTr">
<td><a href="#" class="fileDownLink" data-board="operationPlan" <td><a href="#" class="fileDownLink" data-board="operationPlan"
th:data-parentkey="${file.opKey}" th:data-fileseq="${file.fileSeq}" th:text="|${file.origNm}.${file.fileExtn}|"></a></td> th:data-parentkey="${file.opKey}" th:data-fileseq="${file.fileSeq}" th:text="|${file.origNm}.${file.fileExtn}|"></a></td>
@ -114,9 +114,9 @@
</table> </table>
</div> </div>
<div class="row"> <div class="row">
<div class="col-12" th:unless="${#lists.isEmpty(op.apprvList)}"> <div class="col-12" th:unless="${#lists.isEmpty(operationPlan.apprvList)}">
<hr> <hr>
<th:block th:each="apprv:${op.apprvList}"> <th:block th:each="apprv:${operationPlan.apprvList}">
<div class="row"> <div class="row">
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <th:block th:each="commonCode:${session.commonCode.get('DST')}">
<label class="col-sm-2 col-form-label col-form-label-sm text-center" th:if="${commonCode.itemCd eq apprv.state}" th:text="|결재결과: ${commonCode.itemValue}|"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-center" th:if="${commonCode.itemCd eq apprv.state}" th:text="|결재결과: ${commonCode.itemValue}|"></label>
@ -137,7 +137,7 @@
<form action="#" method="post" id="apprvForm"> <form action="#" method="post" id="apprvForm">
<div class="row"> <div class="row">
<div class="col-10"> <div class="col-10">
<input type="hidden" name="opKey" th:value="${op.opKey}"> <input type="hidden" name="opKey" th:value="${operationPlan.opKey}">
<input type="hidden" name="state" id="viewModalApprvValue"> <input type="hidden" name="state" id="viewModalApprvValue">
</div> </div>
</div> </div>
@ -146,22 +146,36 @@
</div> </div>
<div class="modal-footer justify-content-between bg-light"> <div class="modal-footer justify-content-between bg-light">
<div class="col-auto"> <div class="col-auto">
<th:block th:unless="${op.opState eq 'DST004' or op.opState eq 'DST006'}"> <th:block th:unless="${operationPlan.opState eq 'DST004' or operationPlan.opState eq 'DST006'}">
<th:block th:if="${userSeq eq op.wrtUserSeq or accessAuth eq 'ACC003'}"> <th:block th:if="${userSeq eq operationPlan.wrtUserSeq or accessAuth eq 'ACC003'}">
<button type="button" class="btn btn-danger" th:data-opkey="${op.opKey}" id="deleteBtn">삭제</button> <button type="button" class="btn btn-danger" th:data-opkey="${operationPlan.opKey}" id="deleteBtn">삭제</button>
</th:block> </th:block>
</th:block> </th:block>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<th:block th:if="${op.wrtOrgan eq viewOrgan}"> <th:block th:if="${operationPlan.wrtOrgan eq viewOrgan}">
<th:block th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and op.opState eq 'DST002'}"> <th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and operationPlan.opState eq 'DST002'}">
<button type="button" class="btn btn-danger apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST003':'DST005'}" th:value="반려">반려</button> <!--계장, 계장대행 결재권한이 있으면서 결재대기상태-->
<button type="button" class="btn btn-success apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST004':'DST006'}" th:value="승인">승인</button> <th:block th:if="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행 결재권한이 있을경우-->
<button type="button" class="btn btn-danger apprvBtn" data-planstate="DST005">반려</button>
<button type="button" class="btn btn-success apprvBtn" data-planstate="DST006">승인</button>
</th:block>
<th:block th:unless="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행 결재권한이 없을경우-->
<button type="button" class="btn btn-danger apprvBtn" data-planstate="DST003">반려</button>
<button type="button" class="btn btn-success apprvBtn" data-planstate="DST004">승인</button>
</th:block> </th:block>
</th:block> </th:block>
<th:block th:unless="${op.opState eq 'DST004' or op.opState eq 'DST006'}"><!--승인 상태일때는 수정 불가 --> <th:block th:if="${(#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and operationPlan.opState eq 'DST004'}">
<th:block th:if="${userSeq eq op.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용--> <!--계장 권한 없이 과장, 과장대행 결재권한이 있을경우-->
<button type="button" class="btn btn-warning" th:data-opkey="${op.opKey}" id="editBtn">수정</button> <button type="button" class="btn btn-danger apprvBtn" data-planstate="DST005">반려</button>
<button type="button" class="btn btn-success apprvBtn" data-planstate="DST006">승인</button>
</th:block>
</th:block>
<th:block th:unless="${operationPlan.opState eq 'DST004' or operationPlan.opState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->
<th:block th:if="${userSeq eq operationPlan.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
<button type="button" class="btn btn-warning" th:data-opkey="${operationPlan.opKey}" id="editBtn">수정</button>
</th:block> </th:block>
</th:block> </th:block>
</div> </div>

View File

@ -124,8 +124,8 @@
</div> </div>
</div> </div>
<th:block th:if="${md.wrtOrgan eq viewOrgan}"> <th:block th:if="${md.wrtOrgan eq viewOrgan}">
<th:block th:if="${(apprvAuth eq 'APC003' or apprvAuth eq 'APC004') and md.mdState eq 'DST002' <th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and md.mdState eq 'DST002'
or (apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and md.mdState eq 'DST004'}"> or (#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and md.mdState eq 'DST004'}">
<div class="col-12"> <div class="col-12">
<form action="#" method="post" id="apprvForm"> <form action="#" method="post" id="apprvForm">
<div class="row"> <div class="row">
@ -136,10 +136,10 @@
<input type="text" class="d-none" id="submitPrevention"> <input type="text" class="d-none" id="submitPrevention">
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST004':'DST006'}" value="승인"> <input type="button" class="btn btn-sm btn-success apprvBtn" th:data-planstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))?'DST004':'DST006'}" value="승인">
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST003':'DST005'}" value="반려"> <input type="button" class="btn btn-sm btn-danger apprvBtn" th:data-planstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))?'DST003':'DST005'}" value="반려">
</div> </div>
</div> </div>
</form> </form>

View File

@ -249,8 +249,8 @@
</div> </div>
</div> </div>
<th:block th:if="${mr.wrtOrgan eq viewOrgan}"> <th:block th:if="${mr.wrtOrgan eq viewOrgan}">
<th:block th:if="${(apprvAuth eq 'APC003' or apprvAuth eq 'APC004') and mr.mrState eq 'DST002' <th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and mr.mrState eq 'DST002'
or (apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and mr.mrState eq 'DST004'}"> or (#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and mr.mrState eq 'DST004'}">
<div class="col-12"> <div class="col-12">
<form action="#" method="post" id="apprvForm"> <form action="#" method="post" id="apprvForm">
<hr> <hr>
@ -262,10 +262,10 @@
<input type="text" class="d-none" id="submitPrevention"> <input type="text" class="d-none" id="submitPrevention">
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST004':'DST006'}" value="승인"> <input type="button" class="btn btn-sm btn-success apprvBtn" th:data-planstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))?'DST004':'DST006'}" value="승인">
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST003':'DST005'}" value="반려"> <input type="button" class="btn btn-sm btn-danger apprvBtn" th:data-planstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))?'DST003':'DST005'}" value="반려">
</div> </div>
</div> </div>
</form> </form>