첩보수집활동 > 외사경찰 견문관리 > 계획수립, 견문관리 결재 방식 수정.

master
강석 최 2023-05-12 17:54:09 +09:00
parent 7972cf12f7
commit f86d519354
9 changed files with 159 additions and 100 deletions

View File

@ -31,8 +31,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
@GetMapping("/affairMgt/{tab}") @GetMapping("/affairMgt/{tab}")
public ModelAndView affairMgtPage(@AuthenticationPrincipal UserInfo loginUser, public ModelAndView affairMgtPage(@AuthenticationPrincipal UserInfo loginUser,
@PathVariable("tab") String tab, AffairBoard affairBoard){ @PathVariable("tab") String tab, AffairBoard affairBoard){
ModelAndView mav; ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt");
mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt");
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList String accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/affair/affairMgt/myReport?affairCategory="+affairBoard.getAffairCategory()).get(0).getAccessAuth(); (loginUser.getUserSeq(), "/affair/affairMgt/myReport?affairCategory="+affairBoard.getAffairCategory()).get(0).getAccessAuth();

View File

@ -303,8 +303,13 @@ public class AffairService extends BaseService { // 견문보고
affair.setAffairType3(Utils.searchCodeValue(affair.getAffairType3(), codeMap.get("DC03"))); affair.setAffairType3(Utils.searchCodeValue(affair.getAffairType3(), codeMap.get("DC03")));
affair.setAffairType4(Utils.searchCodeValue(affair.getAffairType4(), codeMap.get("DC04"))); affair.setAffairType4(Utils.searchCodeValue(affair.getAffairType4(), codeMap.get("DC04")));
AffairRating rating = getAffairRating(affair, affair.getWrtOrgan()); AffairRating rating = getAffairRating(affair, affair.getWrtOrgan());
if(Utils.isEmpty(rating.getSectionNm())){
affair.setSectionNm(rating.getHeadNm());
affair.setHeadNm("전결");
}else{
affair.setSectionNm(rating.getSectionNm()); affair.setSectionNm(rating.getSectionNm());
affair.setHeadNm(rating.getHeadNm()); affair.setHeadNm(rating.getHeadNm());
}
affair.setOrganUp(rating.getOrganUp().equals("T")?"O":""); affair.setOrganUp(rating.getOrganUp().equals("T")?"O":"");
affair.setLastEtc(Utils.isEmpty(rating.getSectionEtc())?rating.getHeadEtc():rating.getSectionEtc()); affair.setLastEtc(Utils.isEmpty(rating.getSectionEtc())?rating.getHeadEtc():rating.getSectionEtc());
affair.setReference(rating.getRatingOrgan().equals("OG027")?"경비작전과장":"정보외사과장"); affair.setReference(rating.getRatingOrgan().equals("OG027")?"경비작전과장":"정보외사과장");

View File

@ -27,15 +27,7 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
@GetMapping("/planMgt") @GetMapping("/planMgt")
public ModelAndView monthPlanPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ public ModelAndView monthPlanPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){
ModelAndView mav = null; ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgt");
if(planBoard.getDashboardFlag()){
mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgtDashboard");
planBoard.setRowCnt(5);
}else{
mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgt");
}
mav.addObject("page", "main");
mav.addObject("searchUrl", "/affairPlan/planMgt");
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth();
switch (accessAuth){ switch (accessAuth){
@ -50,6 +42,9 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
} }
//결재권한 확인 //결재권한 확인
String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth(); String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth();
mav.addObject("page", "main");
mav.addObject("searchUrl", "/affairPlan/planMgt");
mav.addObject("accessAuth", accessAuth); mav.addObject("accessAuth", accessAuth);
mav.addObject("apprvAuth", apprvAuth); mav.addObject("apprvAuth", apprvAuth);
planBoard.setQueryInfo(); planBoard.setQueryInfo();
@ -67,28 +62,19 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
mav.addObject("searchUrl", "/affairPlan/stayPage"); mav.addObject("searchUrl", "/affairPlan/stayPage");
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth();
switch (accessAuth){
case "ACC001": // 조회
case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능
planBoard.setWrtOrgan(loginUser.getOgCd()); planBoard.setWrtOrgan(loginUser.getOgCd());
break;
case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능
planBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
break;
}
//결재권한 확인 //결재권한 확인
String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth(); String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth();
if(apprvAuth==null) { if(Utils.isEmpty(apprvAuth)) {
if(!accessAuth.equals("ACC003")){ planBoard.setWrtOrgan(loginUser.getOgCd());
planBoard.setWrtUserSeq(loginUser.getUserSeq()); planBoard.setWrtUserSeq(loginUser.getUserSeq());
planBoard.setUserType("normalStayList"); planBoard.setUserType("normalStayList");
}else{ }else{
planBoard.setUserType("managerStayList");
}
}else{
mav.addObject("userNm", loginUser.getUserNm());
switch (apprvAuth){ switch (apprvAuth){
case "APC004APC001": // 계장대행+부장
case "APC003APC002": // 계장+부장대행
planBoard.setUserType("normalStayList");
break;
case "APC004": // 계장대행 case "APC004": // 계장대행
case "APC003": // 계장 // 결재대기 문서 조회 case "APC003": // 계장 // 결재대기 문서 조회
planBoard.setPlanState("DST002"); planBoard.setPlanState("DST002");
@ -116,27 +102,19 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
mav.addObject("searchUrl", "/affairPlan/commitPage"); mav.addObject("searchUrl", "/affairPlan/commitPage");
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth();
switch (accessAuth){
case "ACC001": // 조회
case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능
planBoard.setWrtOrgan(loginUser.getOgCd()); planBoard.setWrtOrgan(loginUser.getOgCd());
break;
case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능
planBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
break;
}
//결재권한 확인 //결재권한 확인
String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth(); String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth();
if(apprvAuth==null) { if(Utils.isEmpty(apprvAuth)) {
if(!accessAuth.equals("ACC003")){ planBoard.setWrtOrgan(loginUser.getOgCd());
planBoard.setWrtUserSeq(loginUser.getUserSeq()); planBoard.setWrtUserSeq(loginUser.getUserSeq());
planBoard.setUserType("normalCommitList"); planBoard.setUserType("normalCommitList");
}else{
planBoard.setUserType("managerCommitList");
}
}else{ }else{
switch (apprvAuth) { switch (apprvAuth) {
case "APC004APC001": // 계장대행+부장
case "APC003APC002": // 계장+부장대행
planBoard.setUserType("normalCommitList");
break;
case "APC004": // 계장대행 case "APC004": // 계장대행
case "APC003": // 계장 // 계장반려, 계장승인 문서 조회 case "APC003": // 계장 // 계장반려, 계장승인 문서 조회
planBoard.setUserType("sectionCommitList"); planBoard.setUserType("sectionCommitList");

View File

@ -120,7 +120,12 @@ function makePlanPrintData(data){
plan.sectionApprv = apprv.userNm plan.sectionApprv = apprv.userNm
break; break;
case "DST006": case "DST006":
if(plan.sectionApprv === undefined){
plan.sectionApprv = apprv.userNm
plan.headApprv = "전결"
}else{
plan.headApprv = apprv.userNm plan.headApprv = apprv.userNm
}
break; break;
} }
} }

View File

@ -64,19 +64,6 @@ $(document).on('click', '#planAddBtn', function (){
$(document).on('click', '#detailPlanAddBtn', function (){ $(document).on('click', '#detailPlanAddBtn', function (){
const detailPlanDiv = $("#detailPlanDiv"); const detailPlanDiv = $("#detailPlanDiv");
detailPlanDiv.append("<textarea type='text' class='form-control' name='detailPlanInfos'></textarea>"); detailPlanDiv.append("<textarea type='text' class='form-control' name='detailPlanInfos'></textarea>");
/*const lastAppendTextarea = detailPlanDiv.children()[detailPlanDiv.children().length-1];
$(lastAppendTextarea).summernote({
lang:'ko-KR',
height: 120,
disableDragAndDrop: true,
toolbar: [
['style', ['style']],
['font', ['bold', 'underline', 'clear']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['table', ['table']]
]
});*/
}) })
$(document).on('click', '#savePlanBtn', function (){ $(document).on('click', '#savePlanBtn', function (){
@ -113,7 +100,6 @@ $(document).on('click', '.apprvBtn', function (){
}, },
success : function(result) { success : function(result) {
alert("저장되었습니다") alert("저장되었습니다")
// getPlanViewModal(result);
contentFade("out"); contentFade("out");
location.reload(); location.reload();
}, },

View File

@ -210,7 +210,39 @@
<td th:text="${affair.organUp eq 'T'?'O':(affair.wrtOrgan ne affair.ratingOrgan?'O':'X')}"></td> <td th:text="${affair.organUp eq 'T'?'O':(affair.wrtOrgan ne affair.ratingOrgan?'O':'X')}"></td>
</th:block> </th:block>
<th:block th:if="${page eq 'stayReport'}"> <th:block th:if="${page eq 'stayReport'}">
<th:block th:if="${apprvAuth ne null and (#strings.contains(apprvAuth, 'APC004') or #strings.contains(apprvAuth, 'APC003')) and affair.affairStatus eq 'DST002'}"> <th:block th:if="${apprvAuth ne null and affair.affairStatus eq 'DST002'
and (#strings.contains(apprvAuth, 'APC004') or #strings.contains(apprvAuth, 'APC003'))}">
<!--결재권한 있고 결재대기상태이면서 결재권한이 계장, 계장대행을 가지고있는 경우-->
<th:block th:if="${#strings.contains(apprvAuth, 'APC002') or #strings.contains(apprvAuth, 'APC001')}">
<!--과장, 과장대행 결재권한을 가지고 있는 경우-->
<td colspan="2" class="apprvTd">
<input type="hidden" class="affairKey" th:value="${affair.affairKey}">
<div class="row justify-content-center">
<div class="col-auto">
<input type="radio" class="apprvChkbox" th:id="|apprvChkbox${affair.affairKey}DST006|" th:name="|apprvChkbox${affair.affairKey}|" value="DST006">
<label th:for="|apprvChkbox${affair.affairKey}DST006|">승인</label>
<input type="radio" class="apprvChkbox" th:id="|apprvChkbox${affair.affairKey}DST005|" th:name="|apprvChkbox${affair.affairKey}|" value="DST005">
<label th:for="|apprvChkbox${affair.affairKey}DST005|">반려</label>
<input type="radio" th:id="|apprvChkbox${affair.affairKey}|" th:name="|apprvChkbox${affair.affairKey}|" value="" checked>
<label th:for="|apprvChkbox${affair.affairKey}|">해제</label>
</div>
<div class="col-auto">
<select class="form-select form-select-sm ratingSelector" disabled>
<option value="">선택</option>
<th:block th:each="code:${session.commonCode.get('AAR')}">
<option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select>
</div>
<div class="col-auto" th:unless="${userOrgan eq 'OG001'}">
<label th:for="|organUp${affair.affairKey}|">상보</label>
<input type="checkbox" class="organUpChkBox" th:id="|organUp${affair.affairKey}|" value="T" disabled>
</div>
</div>
</td>
</th:block>
<th:block th:unless="${#strings.contains(apprvAuth, 'APC002') or #strings.contains(apprvAuth, 'APC001')}">
<!--과장, 과장대행 결재권한을 가지고 있지 않은 경우-->
<td colspan="2" class="apprvTd"> <td colspan="2" class="apprvTd">
<input type="hidden" class="affairKey" th:value="${affair.affairKey}"> <input type="hidden" class="affairKey" th:value="${affair.affairKey}">
<input type="radio" class="apprvChkbox" th:id="|apprvChkbox${affair.affairKey}DST004|" th:name="|apprvChkbox${affair.affairKey}|" value="DST004"> <input type="radio" class="apprvChkbox" th:id="|apprvChkbox${affair.affairKey}DST004|" th:name="|apprvChkbox${affair.affairKey}|" value="DST004">
@ -221,7 +253,10 @@
<label th:for="|apprvChkbox${affair.affairKey}|">해제</label> <label th:for="|apprvChkbox${affair.affairKey}|">해제</label>
</td> </td>
</th:block> </th:block>
<th:block th:if="${apprvAuth ne null and (#strings.contains(apprvAuth, 'APC002') or #strings.contains(apprvAuth, 'APC001')) and affair.affairStatus eq 'DST004'}"> </th:block>
<th:block th:if="${apprvAuth ne null and affair.affairStatus eq 'DST004'
and (#strings.contains(apprvAuth, 'APC002') or #strings.contains(apprvAuth, 'APC001'))}">
<!--결재권한 있고 계장결재완료 상태이면서 결재권한이 과장, 과장대행을 가지고있는 경우-->
<td colspan="2" class="apprvTd"> <td colspan="2" class="apprvTd">
<input type="hidden" class="affairKey" th:value="${affair.affairKey}"> <input type="hidden" class="affairKey" th:value="${affair.affairKey}">
<div class="row justify-content-center"> <div class="row justify-content-center">

View File

@ -128,6 +128,36 @@
<form action="#" method="post" id="apprvForm"> <form action="#" method="post" id="apprvForm">
<input type="hidden" name="affairKey" th:value="${affair.affairKey}"> <input type="hidden" name="affairKey" th:value="${affair.affairKey}">
<th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and affair.affairStatus eq 'DST002' and affair.rateList.get(0).ratingOrgan eq userOrgan}"> <th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and affair.affairStatus eq 'DST002' and affair.rateList.get(0).ratingOrgan eq userOrgan}">
<!--계장, 계장대행 결재권한이 있으면서 결재대기상태이고 열람자의 관서가 작성자의 관서와 같을 경우-->
<th:block th:if="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행 결재권한이 있을경우-->
<input type="hidden" name="headApprv" id="headApprv">
<div class="row border-top-0 border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">과장결재</label>
<div class="col-8">
<input type="text" class="form-control form-control-sm etc" name="headEtc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention">
</div>
<div class="col-1">
<select class="form-select form-select-sm" name="affairRate" id="affairRate">
<option value="">견문평가</option>
<th:block th:each="code:${session.commonCode.get('AAR')}">
<option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select>
</div>
<div class="col-1" th:unless="${userOrgan eq 'OG001'}">
<label for="organUp" class="form-check-label">상보여부</label>
<input type="checkbox" id="organUp" name="organUp" value="T">
</div>
<div class="col-1">
<input type="button" class="btn btn-sm btn-success apprvBtn me-1" data-apprvtype="head" data-affairstate="DST006" value="승인">
<input type="button" class="btn btn-sm btn-danger apprvBtn" data-apprvtype="head" data-affairstate="DST005" value="반려">
</div>
</div>
</th:block>
<th:block th:unless="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행 결재권한이 없을경우-->
<input type="hidden" name="sectionApprv" id="sectionApprv"> <input type="hidden" name="sectionApprv" id="sectionApprv">
<div class="row border-top-0 border-secondary"> <div class="row border-top-0 border-secondary">
<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>
@ -141,6 +171,7 @@
</div> </div>
</div> </div>
</th:block> </th:block>
</th:block>
<th:block th:if="${(#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and affair.affairStatus eq 'DST004' and affair.rateList.get(0).ratingOrgan eq userOrgan}"> <th:block th:if="${(#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and affair.affairStatus eq 'DST004' and affair.rateList.get(0).ratingOrgan eq userOrgan}">
<input type="hidden" name="headApprv" id="headApprv"> <input type="hidden" name="headApprv" id="headApprv">
<div class="row border-top-0 border-secondary"> <div class="row border-top-0 border-secondary">
@ -289,10 +320,10 @@
</div> </div>
<div class="row"> <div class="row">
<label class="col-sm-2 col-form-label col-form-label-sm text-center"> <label class="col-sm-2 col-form-label col-form-label-sm text-center">
<th:block th:if="${#strings.isEmpty(rate.headNm)}">장 결재 없음</th:block> <th:block th:if="${#strings.isEmpty(rate.headNm)}">장 결재 없음</th:block>
<th:block th:unless="${#strings.isEmpty(rate.headNm)}"> <th:block th:unless="${#strings.isEmpty(rate.headNm)}">
<th:block th:each="code:${session.commonCode.get('JT')}"> <th:block th:each="code:${session.commonCode.get('JT')}">
<th:block th:if="${rate.headTitle eq code.itemCd}" th:text="${#strings.concat('장 ', code.itemValue, ' ', rate.headNm)}"></th:block> <th:block th:if="${rate.headTitle eq code.itemCd}" th:text="${#strings.concat('장 ', code.itemValue, ' ', rate.headNm)}"></th:block>
</th:block> </th:block>
</th:block> </th:block>
</label> </label>

View File

@ -46,7 +46,7 @@
<div class="col-8"> <div class="col-8">
<div class="row"> <div class="row">
<div class="col-11"> <div class="col-11">
<div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003'}"> <div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003' and page eq 'main'}">
<div class="col-2"> <div class="col-2">
<select class="form-select form-select-sm" name="wrtOrgan"> <select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option> <option value="">관서 선택</option>

View File

@ -109,11 +109,11 @@
<div class="col-12 text-center row border-top-0 border-secondary"> <div class="col-12 text-center row border-top-0 border-secondary">
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <th:block th:each="code:${session.commonCode.get('DST')}">
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center" <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center"
th:if="${commonCode.itemCd eq apprv.state}">결재결과:</span> th:if="${code.itemCd eq apprv.state}">결재결과:</span>
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-start" <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-start"
th:if="${commonCode.itemCd eq apprv.state}" th:text="${commonCode.itemValue}"></span> th:if="${code.itemCd eq apprv.state}" th:text="${#strings.substring(code.itemValue, 2, 4)}"></span>
</th:block> </th:block>
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center">결재자:</span> <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center">결재자:</span>
@ -148,16 +148,36 @@
<input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입"> <input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention"> <input type="text" class="d-none" id="submitPrevention">
</div> </div>
<th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and plan.planState eq 'DST002'}">
<!--계장, 계장대행, 결재대기-->
<th:block th:if="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행-->
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn" <input type="button" class="btn btn-sm btn-success apprvBtn" data-planstate="DST006" value="승인">
th:data-planstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and plan.planState eq 'DST002'?'DST004':'DST006'}" value="승인">
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn" <input type="button" class="btn btn-sm btn-danger apprvBtn" data-planstate="DST005" value="반려">
th:data-planstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and plan.planState eq 'DST002'?'DST003':'DST005'}" value="반려">
</div> </div>
</th:block>
<th:block th:unless="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행 X-->
<div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn" data-planstate="DST004" value="승인">
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn" data-planstate="DST003" value="반려">
</div>
</th:block>
</th:block>
<th:block th:if="${(#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and plan.planState eq 'DST004'}">
<!--과장, 과장대행 계장승인-->
<div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn" data-planstate="DST006" value="승인">
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn" data-planstate="DST005" value="반려">
</div>
</th:block>
</div> </div>
</form> </form>
</th:block> </th:block>