첩보수집활동 결재기능 오류 수정.

master
강석 최 2023-05-11 14:18:33 +09:00
parent 617fbfd212
commit f0b541057c
12 changed files with 365 additions and 328 deletions

View File

@ -181,6 +181,7 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
planBoard = planService.selectPlanBoard(planBoard.getPlanKey());
mav.addObject("plan", planBoard);
mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("viewOrgan",loginUser.getOgCd());
mav.addObject("lineSeparator", '\n');
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth());

View File

@ -222,6 +222,7 @@ public class ResultController { // 첩보수집활동 > 외사경찰 견문관
resultBoard = resultService.selectResultBoard(resultBoard.getResultKey());
mav.addObject("result", resultBoard);
mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("viewOrgan",loginUser.getOgCd());
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getAccessAuth());
mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth());

View File

@ -141,6 +141,7 @@ public class IntelligenceNetworkController {
op = intelligenceNetworkService.selectOperationPlan(op.getOpKey());
mav.addObject("op", op);
mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("viewOrgan",loginUser.getOgCd());
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/operationPlanList/all").get(0).getAccessAuth());
mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/operationPlanList/all").get(0).getApprovalAuth());
@ -292,6 +293,7 @@ public class IntelligenceNetworkController {
ia.setApprvList(intelligenceNetworkService.selectIntelligenceAnalyzeApprv(ia));
mav.addObject("ia", ia);
mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("viewOrgan",loginUser.getOgCd());
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/intelligenceAnalyzeList/all").get(0).getAccessAuth());
mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/intelligenceAnalyzeList/all").get(0).getApprovalAuth());
@ -444,6 +446,7 @@ public class IntelligenceNetworkController {
fer = intelligenceNetworkService.selectFireExtensionReportInfo(fer);
mav.addObject("fer", fer);
mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("viewOrgan",loginUser.getOgCd());
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/fireExtensionReportList/all").get(0).getAccessAuth());
mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/fireExtensionReportList/all").get(0).getApprovalAuth());

View File

@ -146,6 +146,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
md = monitoringService.selectDesignation(md.getMdKey());
mav.addObject("md", md);
mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("viewOrgan",loginUser.getOgCd());
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/monitoring/designationList/all").get(0).getAccessAuth());
mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/monitoring/designationList/all").get(0).getApprovalAuth());
@ -295,6 +296,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
mr = monitoringService.selectResult(mr.getMrKey());
mav.addObject("mr", mr);
mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("viewOrgan",loginUser.getOgCd());
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/monitoring/resultList/all").get(0).getAccessAuth());
mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/monitoring/resultList/all").get(0).getApprovalAuth());

View File

@ -295,23 +295,25 @@
a.content_title as title,
a.wrt_dt
from plan_board a
where (
a.wrt_user_seq = #{userSeq}
or (
a.plan_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
where
a.wrt_organ = #{ogCd}
and (
a.wrt_user_seq = #{userSeq}
or (
a.plan_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 29)
)
or (
a.plan_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 29)
)
)
or (
a.plan_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 29)
)
)
union all
select 30 as board,
a.affair_key as key,
@ -342,44 +344,48 @@
a.clear_title as title,
a.wrt_dt
from result_board a
where (
a.wrt_user_seq = #{userSeq} or (
a.result_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 31)
) or (
a.result_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 31)
where
a.wrt_organ = #{ogCd}
and (
a.wrt_user_seq = #{userSeq} or (
a.result_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 31)
) or (
a.result_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 31)
)
)
)
union all
select 32 as board,
a.op_key as key,
a.op_sdate||' '||a.op_name||' 운영 계획' as title,
a.wrt_dt
from operation_plan a
where (
a.wrt_user_seq = #{userSeq}
or (
a.op_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 32 )
) or (
a.op_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 32
where
a.wrt_organ = #{ogCd}
and (
a.wrt_user_seq = #{userSeq}
or (
a.op_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 32 )
) or (
a.op_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 32
)
)
)
)
union all
select 33 as board,
a.affair_key as key,
@ -409,22 +415,24 @@
a.ia_sdate||'~'||a.ia_edate||' 운영 실적 분석' as title,
a.wrt_dt
from intelligence_analyze a
where (
a.wrt_user_seq = #{userSeq}
or (
a.ia_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 34 )
) or (
a.ia_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 34 )
where
a.wrt_organ = #{ogCd}
and (
a.wrt_user_seq = #{userSeq}
or (
a.ia_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 34 )
) or (
a.ia_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 34 )
)
)
)
union all
select 35 as board,
a.fer_key as key,
@ -432,66 +440,72 @@
a.wrt_dt
from fire_extension_report a
inner join operation_plan b on a.op_key = b.op_key
where (
a.wrt_user_seq = #{userSeq}
or (
a.fer_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 35 )
) or (
a.fer_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 35 )
where
a.wrt_organ = #{ogCd}
and (
a.wrt_user_seq = #{userSeq}
or (
a.fer_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 35 )
) or (
a.fer_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 35 )
)
)
)
union all
select 36 as board,
a.md_key as key,
a.md_title as title,
a.wrt_dt
from monitoring_designation a
where (
a.wrt_user_seq = #{userSeq}
or (
a.md_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 36)
) or (
a.md_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 36)
where
a.wrt_organ = #{ogCd}
and (
a.wrt_user_seq = #{userSeq}
or (
a.md_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 36)
) or (
a.md_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 36)
)
)
)
union all
select 37 as board,
a.mr_key as key,
a.mr_title as title,
a.wrt_dt
from monitoring_result a
where (
a.wrt_user_seq = #{userSeq}
or (
a.mr_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 37)
) or (
a.mr_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 37 )
where
a.wrt_organ = #{ogCd}
and (
a.wrt_user_seq = #{userSeq}
or (
a.mr_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 37)
) or (
a.mr_state = 'DST004' and
( select ab.approval_auth ~ 'APC001' or ab.approval_auth ~ 'APC002'
from menu_mgt aa
left outer join approval_config ab on aa.menu_key = ab.menu_key and ab.user_seq = #{userSeq}
where aa.menu_key = 37 )
)
)
)
union all
select 12 as board,
b.case_key as key,
@ -499,14 +513,16 @@
b.wrt_dt
from activity_case a
inner join activity_case_info b on a.receipt_key = b.receipt_key
where (
a.wrt_user_seq = #{userSeq}
or b.case_key in (
select case_key
from activity_case_apprv
where user_seq = #{userSeq}
where
a.wrt_organ = #{ogCd}
and (
a.wrt_user_seq = #{userSeq}
or b.case_key in (
select case_key
from activity_case_apprv
where user_seq = #{userSeq}
)
)
)
order by wrt_dt desc
limit 9
</select>

View File

@ -137,28 +137,30 @@
</div>
<div class="col-12" th:unless="${apprvAuth eq null}">
<th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and plan.planState eq 'DST002'
or (#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and plan.planState eq 'DST004'}">
<form action="#" method="post" id="apprvForm">
<div class="row">
<div class="col-10">
<input type="hidden" name="planKey" id="apprvFormPlanKey">
<input type="hidden" name="state" id="viewModalApprvValue">
<input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention">
<th:block th:if="${viewOrgan eq plan.wrtOrgan}">
<th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and plan.planState eq 'DST002'
or (#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and plan.planState eq 'DST004'}">
<form action="#" method="post" id="apprvForm">
<div class="row">
<div class="col-10">
<input type="hidden" name="planKey" id="apprvFormPlanKey">
<input type="hidden" name="state" id="viewModalApprvValue">
<input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention">
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn"
th:data-planstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and plan.planState eq 'DST002'?'DST004':'DST006'}" value="승인">
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn"
th:data-planstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and plan.planState eq 'DST002'?'DST003':'DST005'}" value="반려">
</div>
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn"
th:data-planstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and plan.planState eq 'DST002'?'DST004':'DST006'}" value="승인">
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn"
th:data-planstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and plan.planState eq 'DST002'?'DST003':'DST005'}" value="반려">
</div>
</div>
</form>
</form>
</th:block>
</th:block>
</div>
</div>

View File

@ -270,28 +270,30 @@
</th:block>
</th:block>
<div class="col-12 mt-2" th:if="${apprvAuth ne null}">
<th:block th:if="${result.resultState eq 'DST002' and (#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
or result.resultState eq 'DST004' and (#strings.contains(apprvAuth, 'APC002') or #strings.contains(apprvAuth, 'APC001'))}">
<form action="#" method="post" id="apprvForm">
<div class="row">
<div class="col-10">
<input type="hidden" name="resultKey" th:value="${result.resultKey}">
<input type="hidden" name="state" id="viewModalApprvValue">
<input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention">
<th:block th:if="${viewOrgan eq result.wrtOrgan}">
<th:block th:if="${result.resultState eq 'DST002' and (#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
or result.resultState eq 'DST004' and (#strings.contains(apprvAuth, 'APC002') or #strings.contains(apprvAuth, 'APC001'))}">
<form action="#" method="post" id="apprvForm">
<div class="row">
<div class="col-10">
<input type="hidden" name="resultKey" th:value="${result.resultKey}">
<input type="hidden" name="state" id="viewModalApprvValue">
<input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention">
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn"
th:data-resultstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and result.resultState eq 'DST002'?'DST004':'DST006'}" value="승인">
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn"
th:data-resultstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and result.resultState eq 'DST002'?'DST003':'DST005'}" value="반려">
</div>
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn"
th:data-resultstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and result.resultState eq 'DST002'?'DST004':'DST006'}" value="승인">
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn"
th:data-resultstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and result.resultState eq 'DST002'?'DST003':'DST005'}" value="반려">
</div>
</div>
</form>
</form>
</th:block>
</th:block>
</div>
</div>

View File

@ -131,9 +131,11 @@
</th:block>
</div>
<div class="col-auto">
<th:block th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002') 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="${fer.wrtOrgan eq viewOrgan}">
<th:block th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002') 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:block>
<th:block th:unless="${fer.ferState eq 'DST004' or fer.ferState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->
<th:block th:if="${userSeq eq fer.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->

View File

@ -196,13 +196,11 @@
</th:block>
</div>
<div class="col-auto">
<th:block th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002') 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="${ia.wrtOrgan eq viewOrgan}">
<th:block th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002') 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:block>
<th:block th:unless="${ia.iaState eq 'DST004' or ia.iaState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->
<th:block th:if="${userSeq eq ia.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->

View File

@ -134,14 +134,14 @@
</th:block>
</div>
</div>
<form action="#" method="post" id="apprvForm">
<div class="row">
<div class="col-10">
<input type="hidden" name="opKey" th:value="${op.opKey}">
<input type="hidden" name="state" id="viewModalApprvValue">
</div>
<form action="#" method="post" id="apprvForm">
<div class="row">
<div class="col-10">
<input type="hidden" name="opKey" th:value="${op.opKey}">
<input type="hidden" name="state" id="viewModalApprvValue">
</div>
</form>
</div>
</form>
</div>
</div>
<div class="modal-footer justify-content-between bg-light">
@ -153,9 +153,11 @@
</th:block>
</div>
<div class="col-auto">
<th:block th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and op.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="${op.wrtOrgan eq viewOrgan}">
<th:block th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and op.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:block>
<th:block th:unless="${op.opState eq 'DST004' or op.opState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->
<th:block th:if="${userSeq eq op.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->

View File

@ -21,13 +21,13 @@
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${md.mdDt}"></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')}">
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq md.wrtUserGrd}" th:text="|${commonCode.itemValue} ${md.wrtUserNm}|"></label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq md.wrtUserGrd}" th:text="|${commonCode.itemValue} ${md.wrtUserNm}|"></label>
</th:block>
<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(md.wrtDt, 'yyyy-MM-dd HH:mm')}"></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')}">
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq md.mdState}" th:text="${commonCode.itemValue}"></label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq md.mdState}" th:text="${commonCode.itemValue}"></label>
</th:block>
</div>
<hr>
@ -104,9 +104,9 @@
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq apprv.state}" th:text="${commonCode.itemValue}"></label>
</th:block>
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<th:block th:if="${commonCode.itemCd eq apprv.userGrd}" th:text="|결제자: ${commonCode.itemValue} ${apprv.userNm}|"></th:block>
</th:block>
</th:block>
</label>
<div class="col-12 text-center row border-top-0 border-secondary">
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">기타의견 : </span>
@ -122,42 +122,46 @@
</div>
</th:block>
</div>
</div>
<div class="col-12" th:if="${(apprvAuth eq 'APC003' or apprvAuth eq 'APC004') and md.mdState eq 'DST002'
or (apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and md.mdState eq 'DST004'}">
<form action="#" method="post" id="apprvForm">
<div class="row">
<div class="col-10">
<input type="hidden" name="mdKey" th:value="${md.mdKey}">
<input type="hidden" name="state" id="viewModalApprvValue">
<input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention">
</div>
<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="승인">
</div>
<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="반려">
</div>
</div>
<th:block th:if="${md.wrtOrgan eq viewOrgan}">
<th:block th:if="${(apprvAuth eq 'APC003' or apprvAuth eq 'APC004') and md.mdState eq 'DST002'
or (apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and md.mdState eq 'DST004'}">
<div class="col-12">
<form action="#" method="post" id="apprvForm">
<div class="row">
<div class="col-10">
<input type="hidden" name="mdKey" th:value="${md.mdKey}">
<input type="hidden" name="state" id="viewModalApprvValue">
<input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention">
</div>
<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="승인">
</div>
<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="반려">
</div>
</div>
</form>
</div>
</form>
</div>
</th:block>
</th:block>
</div>
</div>
<div class="modal-footer justify-content-between bg-light">
<div class="col-auto">
<th:block th:unless="${md.mdState eq 'DST004' or md.mdState eq 'DST006'}">
<th:block th:if="${userSeq eq md.wrtUserSeq or accessAuth eq 'ACC003'}">
<button type="button" class="btn btn-danger" th:data-mdkey="${md.mdKey}" id="deleteBtn">삭제</button>
<div class="col-auto">
<th:block th:unless="${md.mdState eq 'DST004' or md.mdState eq 'DST006'}">
<th:block th:if="${userSeq eq md.wrtUserSeq or accessAuth eq 'ACC003'}">
<button type="button" class="btn btn-danger" th:data-mdkey="${md.mdKey}" id="deleteBtn">삭제</button>
</th:block>
</th:block>
</th:block>
</div>
<div class="col-auto">
<th:block th:unless="${md.mdState eq 'DST004' or md.mdState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->
<th:block th:if="${userSeq eq md.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
<button type="button" class="btn btn-warning" th:data-mdkey="${md.mdKey}" id="editBtn">수정</button>
</div>
<div class="col-auto">
<th:block th:unless="${md.mdState eq 'DST004' or md.mdState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->
<th:block th:if="${userSeq eq md.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
<button type="button" class="btn btn-warning" th:data-mdkey="${md.mdKey}" id="editBtn">수정</button>
</th:block>
</th:block>
</th:block>
</div>
</div>
</div>

View File

@ -18,17 +18,17 @@
</li>
</ul>
<div class="tab-content bg-white border border-top-0 p-2">
<div class="tab-pane fade p-2 show active" id="clearReportViewTabPanel" role="tabpanel" aria-labelledby="clearReportViewTab" tabindex="0">
<div class="tab-pane fade p-2 show active" id="clearReportViewTabPanel" role="tabpanel" aria-labelledby="clearReportViewTab" tabindex="0">
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
<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 mr.wrtUserGrd}" th:text="|${commonCode.itemValue} ${mr.wrtUserNm}|"></label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq mr.wrtUserGrd}" th:text="|${commonCode.itemValue} ${mr.wrtUserNm}|"></label>
</th:block>
<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(mr.wrtDt, 'yyyy-MM-dd HH:mm')}"></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')}">
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq mr.mrState}" th:text="${commonCode.itemValue}"></label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq mr.mrState}" th:text="${commonCode.itemValue}"></label>
</th:block>
</div>
<hr>
@ -60,10 +60,10 @@
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">모니터링<br>지속여부</label>
<div class="col-sm-11 form-control-sm">
<div class="row">
<div th:if="${mr.monitoringYn eq 'Y'}">지속</div>
<div th:if="${mr.monitoringYn eq 'N'}">지정해제</div>
</div>
<div class="row">
<div th:if="${mr.monitoringYn eq 'Y'}">지속</div>
<div th:if="${mr.monitoringYn eq 'N'}">지정해제</div>
</div>
<div th:text="|사유 : ${mr.monitoringReason}|" th:if="${mr.monitoringYn eq 'N'}"></div>
</div>
</div>
@ -75,44 +75,44 @@
</div>
</div>
<hr>
<div class="row mb-1">
<label for="clearTitle" class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">세부<br>집행내역</label>
<div class="col-sm-10">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>구분</th>
<th>상세</th>
<th>금액</th>
</tr>
</thead>
<tbody>
<tr th:each="clearInfo:${mr.clearInfoList}">
<th:block th:each="commonCode:${session.commonCode.get('RIC')}">
<td th:if="${clearInfo.useCatg eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('RID')}">
<td th:if="${clearInfo.useDetail eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${#strings.concat(#numbers.formatInteger(clearInfo.price, 1, 'COMMA'), '원')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row mb-1">
<label for="clearTitle" class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">세부<br>집행내역</label>
<div class="col-sm-10">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>구분</th>
<th>상세</th>
<th>금액</th>
</tr>
</thead>
<tbody>
<tr th:each="clearInfo:${mr.clearInfoList}">
<th:block th:each="commonCode:${session.commonCode.get('RIC')}">
<td th:if="${clearInfo.useCatg eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('RID')}">
<td th:if="${clearInfo.useDetail eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${#strings.concat(#numbers.formatInteger(clearInfo.price, 1, 'COMMA'), '원')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="tab-pane fade p-2" id="resultReportViewTabPanel" role="tabpanel" aria-labelledby="resultReportViewTab" tabindex="0">
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
<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 mr.wrtUserGrd}" th:text="|${commonCode.itemValue} ${mr.wrtUserNm}|"></label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq mr.wrtUserGrd}" th:text="|${commonCode.itemValue} ${mr.wrtUserNm}|"></label>
</th:block>
<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(mr.wrtDt, 'yyyy-MM-dd HH:mm')}"></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')}">
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq mr.mrState}" th:text="${commonCode.itemValue}"></label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq mr.mrState}" th:text="${commonCode.itemValue}"></label>
</th:block>
</div>
<hr>
@ -135,30 +135,30 @@
</div>
<hr>
<div class="row mb-1 justify-content-center">
<label for="resultInfoRow" class="col-sm-1 col-form-label col-form-label-sm text-center">활동내용</label>
<div class="col-sm-11">
<div class="row">
<div class="col-4 text-center">접촉 일시</div>
<div class="col-5 text-center">접촉 내용</div>
</div>
<hr class="my-1">
<div class="row">
<div class="col-12 resultInfoRow" id="resultInfoRow">
<th:block th:each="info:${mr.resultInfoList}">
<div class="row my-1 infoRow">
<div class="col-4 text-center">
<div th:text="|${info.contactDate} ${info.contactStime}~${info.contactEtime}"></div>
</div>
<div class="col-5">
<div th:utext="${info.contactInfo}"></div>
</div>
<label for="resultInfoRow" class="col-sm-1 col-form-label col-form-label-sm text-center">활동내용</label>
<div class="col-sm-11">
<div class="row">
<div class="col-4 text-center">접촉 일시</div>
<div class="col-5 text-center">접촉 내용</div>
</div>
<hr class="my-1">
<div class="row">
<div class="col-12 resultInfoRow" id="resultInfoRow">
<th:block th:each="info:${mr.resultInfoList}">
<div class="row my-1 infoRow">
<div class="col-4 text-center">
<div th:text="|${info.contactDate} ${info.contactStime}~${info.contactEtime}"></div>
</div>
<hr>
</th:block>
</div>
<div class="col-5">
<div th:utext="${info.contactInfo}"></div>
</div>
</div>
<hr>
</th:block>
</div>
</div>
</div>
</div>
<hr>
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">집행예산</label>
@ -169,34 +169,34 @@
</div>
<div class="tab-pane fade p-2" id="affairListViewTabPanel" role="tabpanel" aria-labelledby="affairListViewTab" tabindex="0">
<div class="row mb-1">
<label for="clearTitle" class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">세부<br>집행내역</label>
<div class="col-sm-10">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>접촉일자</th>
<th>작성일자</th>
<th>제목</th>
<th>첨부파일</th>
</tr>
</thead>
<tbody>
<tr th:each="report:${mr.reportList}">
<td th:text="${report.contactDate}"></td>
<td th:text="${report.writeDate}"></td>
<td th:text="${report.reportTitle}"></td>
<td>
<th:block th:if="${not #strings.isEmpty(report.origNm)}">
<a href="#" class="fileDownLink" data-board="monitoringReport"
th:data-parentkey="${report.mrKey}" th:data-fileseq="${report.infoSeq}" th:text="|${report.origNm}.${report.fileExtn}|"></a>
</th:block>
<th:block th:unless="${not #strings.isEmpty(report.origNm)}">등록된 파일이 없습니다.</th:block>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<label for="clearTitle" class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">세부<br>집행내역</label>
<div class="col-sm-10">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>접촉일자</th>
<th>작성일자</th>
<th>제목</th>
<th>첨부파일</th>
</tr>
</thead>
<tbody>
<tr th:each="report:${mr.reportList}">
<td th:text="${report.contactDate}"></td>
<td th:text="${report.writeDate}"></td>
<td th:text="${report.reportTitle}"></td>
<td>
<th:block th:if="${not #strings.isEmpty(report.origNm)}">
<a href="#" class="fileDownLink" data-board="monitoringReport"
th:data-parentkey="${report.mrKey}" th:data-fileseq="${report.infoSeq}" th:text="|${report.origNm}.${report.fileExtn}|"></a>
</th:block>
<th:block th:unless="${not #strings.isEmpty(report.origNm)}">등록된 파일이 없습니다.</th:block>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<hr>
<h5>증빙자료</h5>
<table class="table">
@ -233,57 +233,61 @@
<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>
</th:block>
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<th:block th:if="${commonCode.itemCd eq apprv.userGrd}" th:text="|결제자: ${commonCode.itemValue} ${apprv.userNm}|"></th:block>
</th:block>
</th:block>
</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
<th:block th:text="|기타의견: ${apprv.etc}|"></th:block>
<th:block th:text="|기타의견: ${apprv.etc}|"></th:block>
</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
<th:block th:text="|결제일시: ${#temporals.format(apprv.saveDt, 'yyyy-MM-dd HH:mm:ss')}|"></th:block>
<th:block th:text="|결제일시: ${#temporals.format(apprv.saveDt, 'yyyy-MM-dd HH:mm:ss')}|"></th:block>
</label>
</div>
</th:block>
</div>
</div>
<div class="col-12" th:if="${(apprvAuth eq 'APC003' or apprvAuth eq 'APC004') and mr.mrState eq 'DST002'
or (apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and mr.mrState eq 'DST004'}">
<form action="#" method="post" id="apprvForm">
<hr>
<div class="row">
<div class="col-10">
<input type="hidden" name="mrKey" th:value="${mr.mrKey}">
<input type="hidden" name="state" id="viewModalApprvValue">
<input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention">
</div>
<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="승인">
</div>
<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="반려">
</div>
</div>
<th:block th:if="${mr.wrtOrgan eq viewOrgan}">
<th:block th:if="${(apprvAuth eq 'APC003' or apprvAuth eq 'APC004') and mr.mrState eq 'DST002'
or (apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and mr.mrState eq 'DST004'}">
<div class="col-12">
<form action="#" method="post" id="apprvForm">
<hr>
<div class="row">
<div class="col-10">
<input type="hidden" name="mrKey" th:value="${mr.mrKey}">
<input type="hidden" name="state" id="viewModalApprvValue">
<input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention">
</div>
<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="승인">
</div>
<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="반려">
</div>
</div>
</form>
</div>
</form>
</div>
</th:block>
</th:block>
</div>
</div>
<div class="modal-footer justify-content-between bg-light">
<div class="col-auto">
<th:block th:unless="${mr.mrState eq 'DST004' or mr.mrState eq 'DST006'}">
<th:block th:if="${userSeq eq mr.wrtUserSeq or accessAuth eq 'ACC003'}">
<button type="button" class="btn btn-danger" th:data-mrkey="${mr.mrKey}" id="deleteBtn">삭제</button>
<div class="col-auto">
<th:block th:unless="${mr.mrState eq 'DST004' or mr.mrState eq 'DST006'}">
<th:block th:if="${userSeq eq mr.wrtUserSeq or accessAuth eq 'ACC003'}">
<button type="button" class="btn btn-danger" th:data-mrkey="${mr.mrKey}" id="deleteBtn">삭제</button>
</th:block>
</th:block>
</th:block>
</div>
<div class="col-auto">
<th:block th:unless="${mr.mrState eq 'DST004' or mr.mrState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->
<th:block th:if="${userSeq eq mr.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
<button type="button" class="btn btn-warning" th:data-mrkey="${mr.mrKey}" id="editBtn">수정</button>
</div>
<div class="col-auto">
<th:block th:unless="${mr.mrState eq 'DST004' or mr.mrState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->
<th:block th:if="${userSeq eq mr.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
<button type="button" class="btn btn-warning" th:data-mrkey="${mr.mrKey}" id="editBtn">수정</button>
</th:block>
</th:block>
</th:block>
</div>
</div>
</div>