외사활동 조회 기준 변경.

열람 양식 생성.
수정 기능 생성.
결재 기능 생성.
master
강석 최 2023-03-09 18:19:42 +09:00
parent 2c298660ee
commit c27b656560
9 changed files with 219 additions and 83 deletions

View File

@ -30,9 +30,12 @@ public class ActivityCaseController {
mav.addObject("accessAuth", accessAuth); mav.addObject("accessAuth", accessAuth);
mav.addObject("ogCd", loginUser.getOgCd()); mav.addObject("ogCd", loginUser.getOgCd());
if(accessAuth.equals("ACC003")){
activityCase.setWrtOrgan(loginUser.getOgCd()); activityCase.setWrtOrgan(loginUser.getOgCd());
activityCase.setQueryInfo();
activityCase.setDownOrganCdList(loginUser.getDownOrganCdList()); activityCase.setDownOrganCdList(loginUser.getDownOrganCdList());
}
activityCase.setWrtUserSeq(loginUser.getUserSeq());
activityCase.setQueryInfo();
mav.addObject("activityCaseList", activityCaseService.selectActivityCaseList(activityCase)); mav.addObject("activityCaseList", activityCaseService.selectActivityCaseList(activityCase));
activityCase.setContentCnt(activityCaseService.selectActivityCaseCnt(activityCase)); activityCase.setContentCnt(activityCaseService.selectActivityCaseCnt(activityCase));
activityCase.setPaginationInfo(); activityCase.setPaginationInfo();
@ -81,7 +84,10 @@ public class ActivityCaseController {
public ModelAndView activityCaseSummaryModal(@AuthenticationPrincipal UserInfo loginUser, ActivityCaseSummary activityCase){ public ModelAndView activityCaseSummaryModal(@AuthenticationPrincipal UserInfo loginUser, ActivityCaseSummary activityCase){
ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/activityCaseSummaryModal"); ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/activityCaseSummaryModal");
List<ActivityCaseSummary> activityCaseList = activityCaseService.selectActivityCaseInfoList(activityCase.getReceiptKey()); List<ActivityCaseSummary> activityCaseList = activityCaseService.selectActivityCaseInfoList(activityCase.getReceiptKey());
mav.addObject("viewUserSeq", loginUser.getUserSeq());
mav.addObject("wrtUserSeq", activityCaseList.get(activityCaseList.size()-1).getWrtUserSeq());
mav.addObject("lastCaseType", activityCaseList.get(activityCaseList.size()-1).getCaseType()); mav.addObject("lastCaseType", activityCaseList.get(activityCaseList.size()-1).getCaseType());
mav.addObject("lastStatus", activityCaseList.get(activityCaseList.size()-1).getStatus());
mav.addObject("receiptKey", activityCase.getReceiptKey()); mav.addObject("receiptKey", activityCase.getReceiptKey());
mav.addObject("activityCaseList", activityCaseList); mav.addObject("activityCaseList", activityCaseList);
return mav; return mav;
@ -110,6 +116,11 @@ public class ActivityCaseController {
return activityCaseService.saveActivityCase(activityCase, activityCaseInfo, deleteFileSeq); return activityCaseService.saveActivityCase(activityCase, activityCaseInfo, deleteFileSeq);
} }
@PostMapping("/saveActivityCaseApprv")
public void saveActivityCaseApprv(@RequestBody ActivityCaseApprv apprv){
activityCaseService.saveActivityCaseApprv(apprv);
}
@PostMapping("/deleteActivityCase") @PostMapping("/deleteActivityCase")
public Integer deleteActivityCase(@AuthenticationPrincipal UserInfo loginUser, ActivityCase activityCase){ public Integer deleteActivityCase(@AuthenticationPrincipal UserInfo loginUser, ActivityCase activityCase){
String accessAuth = authMgtService.selectAccessConfigList String accessAuth = authMgtService.selectAccessConfigList

View File

@ -149,4 +149,15 @@ public class ActivityCaseService extends BaseService {
public List<ActivityCaseSummary> selectActivityCaseInfoList(Integer receiptKey) { public List<ActivityCaseSummary> selectActivityCaseInfoList(Integer receiptKey) {
return acMapper.selectActivityCaseInfoList(receiptKey); return acMapper.selectActivityCaseInfoList(receiptKey);
} }
@Transactional
public void saveActivityCaseApprv(ActivityCaseApprv apprv) {
ActivityCaseApprv savedApprv = acaRepository.findById(new ActivityCaseApprv.ActivityCaseApprvId(apprv.getCaseKey(), apprv.getUserSeq())).orElse(null);
if(savedApprv!=null){
savedApprv.setInstructions(apprv.getInstructions());
savedApprv.setApprvYn(apprv.getApprvYn());
savedApprv.setApprvDt(LocalDateTime.now());
acaRepository.save(savedApprv);
}
}
} }

View File

@ -6,6 +6,14 @@
<mapper namespace="com.dbnt.faisp.main.counterIntelligence.activityCase.mapper.ActivityCaseMapper"> <mapper namespace="com.dbnt.faisp.main.counterIntelligence.activityCase.mapper.ActivityCaseMapper">
<sql id="selectActivityCaseListWhere"> <sql id="selectActivityCaseListWhere">
<where> <where>
<if test='wrtUserSeq != null and wrtUserSeq != 0'>
and (a.wrt_user_seq = #{wrtUserSeq}
or a.receipt_key in (select a.receipt_key
from activity_case_info a
inner join activity_case_apprv b
on a.case_key = b.case_key
where b.user_seq = #{wrtUserSeq}))
</if>
<if test='receiptKey != null and receiptKey != ""'> <if test='receiptKey != null and receiptKey != ""'>
and a.receipt_key = #{receiptKey} and a.receipt_key = #{receiptKey}
</if> </if>
@ -15,9 +23,6 @@
<if test='wrtUserNm != null and wrtUserNm != ""'> <if test='wrtUserNm != null and wrtUserNm != ""'>
and a.wrt_user_nm like '%'||#{wrtUserNm}||'%' and a.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if> </if>
<if test='wrtOrgan != null and wrtOrgan != ""'>
and a.wrt_organ = #{wrtOrgan}
</if>
<if test='dateSelector == "reportDate"'> <if test='dateSelector == "reportDate"'>
<if test='startDate != null and startDate != ""'> <if test='startDate != null and startDate != ""'>
and c.report_date >= #{startDate}::date and c.report_date >= #{startDate}::date
@ -34,6 +39,9 @@
and c.wrt_dt &lt;= #{endDate}::date+1 and c.wrt_dt &lt;= #{endDate}::date+1
</if> </if>
</if> </if>
<if test='wrtOrgan != null and wrtOrgan != ""'>
and a.wrt_organ = #{wrtOrgan}
</if>
<if test="downOrganCdList != null"> <if test="downOrganCdList != null">
and a.wrt_organ in and a.wrt_organ in
<foreach collection="downOrganCdList" item="organCd" separator="," open="(" close=")"> <foreach collection="downOrganCdList" item="organCd" separator="," open="(" close=")">

View File

@ -40,7 +40,11 @@ $(document).on('click', '.saveBtn', function(){
$(document).on('click', '.addInfoBtn', function (){ $(document).on('click', '.addInfoBtn', function (){
const target = $(this); const target = $(this);
if(target.attr('data-laststatus')==="DST001"){
alert('임시저장 문서 작성을 마쳐주세요.')
}else{
getActivityCaseEditModal(target.attr('data-receiptkey'), null, target.attr('data-casetype')) getActivityCaseEditModal(target.attr('data-receiptkey'), null, target.attr('data-casetype'))
}
}) })
$(document).on('click', '.activityCaseTr', function (){ $(document).on('click', '.activityCaseTr', function (){
@ -51,6 +55,18 @@ $(document).on('click', '.summaryTr', function (){
getActivityCaseViewModal($(this).find(".receiptKey").val(), $(this).find(".caseKey").val()); getActivityCaseViewModal($(this).find(".receiptKey").val(), $(this).find(".caseKey").val());
}) })
$(document).on('click', '#editInfoBtn', function (){
const modalBody = $("#activityCaseViewModalBody");
getActivityCaseEditModal(modalBody.find('#receiptKey').val(), modalBody.find('#caseKey').val(), modalBody.find('#caseType').val())
})
$(document).on('click', '.apprvBtn', function (){
const apprvValue = $(this).attr('data-apprvvalue');
if (confirm((apprvValue==="Y"?"승인":"반려")+"하시겠습니까?")){
const apprvRow = $(this).parents(".apprvRow");
setApprvResult($("#activityCaseViewModalBody").find("#caseKey").val(), apprvRow.find(".apprvUserSeq").val(), apprvRow.find(".instructions").val(), apprvValue);
}
})
function getActivityCaseEditModal(receiptKey, caseKey, caseType){ function getActivityCaseEditModal(receiptKey, caseKey, caseType){
$.ajax({ $.ajax({
url: '/counterIntelligence/activityCaseEditModal', url: '/counterIntelligence/activityCaseEditModal',
@ -204,6 +220,27 @@ function saveActivityCase(status){
} }
} }
function setApprvResult(caseKey, userSeq, instructions, apprvValue){
$.ajax({
type : 'POST',
data : JSON.stringify({caseKey: caseKey, userSeq: userSeq, instructions: instructions, apprvYn: apprvValue}),
url : "/counterIntelligence/saveActivityCaseApprv",
contentType: 'application/json',
beforeSend: function (xhr){
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
},
success : function(result) {
alert((apprvValue==="Y"?'승인':'반려')+"되었습니다.");
contentFade("out");
location.reload();
},
error : function(xhr, status) {
alert("실패하였습니다.")
contentFade("out");
}
})
}
function deleteActivityCase(caseKey){ function deleteActivityCase(caseKey){
if(confirm("삭제하시겠습니까?")){ if(confirm("삭제하시겠습니까?")){
contentFade("in"); contentFade("in");
@ -252,50 +289,15 @@ function contentCheck(){
}else{ }else{
} }
switch ($("#caseType").val()) { if(!CrossEditor.GetTextValue()){
case "ACT001": alert("외사활동사항을 입력해주세요.")
if(!$("#caseProgress").val()){
alert("외사활동 사항을 입력해주세요.")
return false;
}
if(!$("#description").val()){
alert("외사활동이 필요한 이유를 입력해주세요.")
return false;
}
break;
case "ACT002":
if(!$("#caseProgress").val()){
alert("외사활동 사항을 입력해주세요.")
return false;
}
if(!$("#description").val()){
alert("조치 및 건의를 입력해주세요.")
return false;
}
break;
case "ACT003":
if(!$("#allegations").val()){
alert("혐의요지를 입력해주세요.")
return false;
}
if(!$("#applicableLaw").val()){
alert("적용법조를 입력해주세요.")
return false;
}
if(!$("#caseProgress").val()){
alert("내사진행상황을 입력해주세요.")
return false;
}
if(!$("#description").val()){
alert("조치 및 건의를 입력해주세요.")
return false; return false;
} }
if($("#caseType").val() === "ACT003"){
if(!$("#activityResult").val()){ if(!$("#activityResult").val()){
alert("결과를 선택해주세요.") alert("결과를 선택해주세요.")
return false; return false;
} }
break;
} }
return true; return true;
} }

View File

@ -56,29 +56,29 @@
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="title" class="col-sm-1 col-form-label col-form-label-sm text-center">제목</label> <label for="title" class="col-sm-1 col-form-label col-form-label-sm text-center">제목</label>
<div class="col-sm-5"> <div th:class="${activityCaseInfo.caseType eq 'ACT003'?'col-sm-5':'col-sm-8'}">
<input type="text" class="form-control form-control-sm" id="title" name="title" th:value="${activityCaseInfo.title}"> <input type="text" class="form-control form-control-sm" id="title" name="title" th:value="${activityCaseInfo.title}">
</div> </div>
<th:block th:if="${activityCaseInfo.caseType ne 'ACT003'}">
<div class="col-sm-3"></div>
</th:block>
<th:block th:if="${activityCaseInfo.caseType eq 'ACT003'}"> <th:block th:if="${activityCaseInfo.caseType eq 'ACT003'}">
<label for="activityResult" class="col-sm-1 col-form-label col-form-label-sm text-center">결과</label> <label for="activityResult" class="col-sm-1 col-form-label col-form-label-sm text-center">결과</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="activityResult" name="activityResult"> <select class="form-select form-select-sm" id="activityResult" name="activityResult">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${session.commonCode.get('ACAT')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select> </select>
</div> </div>
</th:block> </th:block>
<label for="reportDate" class="col-sm-1 col-form-label col-form-label-sm text-center">보고일자</label> <label for="reportDate" class="col-sm-1 col-form-label col-form-label-sm text-center">보고일자</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="reportDate" name="reportDate" th:value="${#temporals.format(activityCaseInfo.reportDate, 'yyyy-MM-dd')}"> <input type="text" class="form-control form-control-sm dateSelector" id="reportDate" name="reportDate" autocomplete="off" th:value="${#temporals.format(activityCaseInfo.reportDate, 'yyyy-MM-dd')}">
</div> </div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="suspectAddBtn" class="col-sm-1 col-form-label col-form-label-sm text-center"> <label class="col-sm-1 col-form-label col-form-label-sm text-center">
혐의자 혐의자
<button type="button" class="border-0 bg-white" id="suspectAddBtn"> <button type="button" class="border-0" id="suspectAddBtn">
<i class="bi bi-plus-square text-primary"></i> <i class="bi bi-plus-square text-primary"></i>
</button> </button>
</label> </label>
@ -124,10 +124,6 @@
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm suspectPhone" th:value="${suspect.phone}"> <input type="text" class="form-control form-control-sm suspectPhone" th:value="${suspect.phone}">
</div> </div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">주소</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm suspectAddr" th:value="${suspect.address}">
</div>
<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-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm suspectJob" th:value="${suspect.job}"> <input type="text" class="form-control form-control-sm suspectJob" th:value="${suspect.job}">
@ -138,6 +134,14 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-12 mb-1">
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">주소</label>
<div class="col-sm-11">
<input type="text" class="form-control form-control-sm suspectAddr" th:value="${suspect.address}">
</div>
</div>
</div>
<div class="col-12 mb-1"> <div class="col-12 mb-1">
<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>
@ -173,9 +177,9 @@
</div> </div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="suspectAddBtn" class="col-sm-1 col-form-label col-form-label-sm text-center"> <label class="col-sm-1 col-form-label col-form-label-sm text-center">
결재자 결재자
<button type="button" class="border-0 bg-white" id="apprvAddBtn"> <button type="button" class="border-0" id="apprvAddBtn">
<i class="bi bi-plus-square text-primary"></i> <i class="bi bi-plus-square text-primary"></i>
</button> </button>
</label> </label>
@ -210,7 +214,7 @@
<select class="form-select form-select-sm apprvType"> <select class="form-select form-select-sm apprvType">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${session.commonCode.get('ACAT')}"> <th:block th:each="code:${session.commonCode.get('ACAT')}">
<th:block th:if="${code.useChk eq 'Y'}" th:value="${code.itemCd}" th:text="${code.itemValue}"></th:block> <option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>

View File

@ -44,7 +44,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light" th:if="${lastCaseType ne 'ACT003' and viewUserSeq eq wrtUserSeq}">
<button type="button" class="btn btn-outline-dark addInfoBtn" th:data-receiptkey="${receiptKey}" data-casetype="ACT002" th:if="${lastCaseType ne 'ACT003'}">진행보고서 작성</button> <button type="button" class="btn btn-outline-dark addInfoBtn" th:data-receiptkey="${receiptKey}" data-casetype="ACT002" th:data-laststatus="${lastStatus}">진행보고서 작성</button>
<button type="button" class="btn btn-outline-dark addInfoBtn" th:data-receiptkey="${receiptKey}" data-casetype="ACT003" th:if="${lastCaseType ne 'ACT003'}">결과보고서 작성</button> <button type="button" class="btn btn-outline-dark addInfoBtn" th:data-receiptkey="${receiptKey}" data-casetype="ACT003" th:data-laststatus="${lastStatus}">결과보고서 작성</button>
</div> </div>

View File

@ -9,14 +9,13 @@
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body" id="activityCaseViewModalBody"> <div class="modal-body" id="activityCaseViewModalBody">
<input type="hidden" id="receiptKey" th:value="${activityCase.receiptKey}">
<input type="hidden" id="caseKey" th:value="${activityCaseInfo.caseKey}"> <input type="hidden" id="caseKey" th:value="${activityCaseInfo.caseKey}">
<input type="hidden" id="caseType" th:value="${activityCaseInfo.caseType}">
<ul class="nav nav-tabs" id="userTab" role="tablist"> <ul class="nav nav-tabs" id="userTab" role="tablist">
<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">
<button class="nav-link" id="apprvTab" data-bs-toggle="tab" data-bs-target="#apprvTabPanel" type="button" role="tab" aria-controls="apprvTabPanel" aria-selected="false">결재</button>
</li>
<li class="nav-item" role="presentation" th:if="${#lists.size(activityCaseInfo.fileList)>0}"> <li class="nav-item" role="presentation" th:if="${#lists.size(activityCaseInfo.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(activityCaseInfo.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(activityCaseInfo.fileList), ')')}"></button>
</li> </li>
@ -32,21 +31,119 @@
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${activityCase.wrtUserNm}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${activityCase.wrtUserNm}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">작성일시</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">작성일시</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(activityCaseInfo.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(activityCaseInfo.wrtDt, 'yyyy-MM-dd HH:mm')}"></label>
</div>
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">제목</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">제목</label>
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${activityCaseInfo.title}"></label> <label class="col-form-label col-form-label-sm text-start" th:classappend="${activityCaseInfo.caseType eq 'ACT003'?'col-sm-5':'col-sm-8'}" th:text="${activityCaseInfo.title}"></label>
<th:block th:if="${activityCaseInfo.caseType eq 'ACT003'}">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">결과</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
<th:block th:each="code:${session.commonCode.get('ACAT')}">
<th:block th:if="${code.itemCd eq activityCaseInfo.activityResult}" th:text="${code.itemValue}"></th:block>
</th:block>
</label>
</th:block>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">보고일자</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(activityCaseInfo.reportDate, 'yyyy-MM-dd')}"></label>
</div> </div>
<hr class="my-1"> <hr class="my-1">
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">외사활동<br>대상자</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">외사활동<br>대상자</label>
<div class="col-sm-11 form-control-sm" id="suspectDiv">
<th:block th:each="suspect:${activityCase.suspectList}">
<div class="row mx-2 my-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">분류</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
<th:block th:each="code:${session.commonCode.get('ACS')}">
<th:block th:if="${code.itemCd eq suspect.type}" th:text="${code.itemValue}"></th:block>
</th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">성명</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${suspect.name}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">성별</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
<th:block th:each="code:${session.commonCode.get('SEX')}">
<th:block th:if="${code.itemCd eq suspect.sex}" th:text="${code.itemValue}"></th:block>
</th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">생년월일</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(suspect.birthDate, 'yyyy-MM-dd')}"></label>
</div>
<div class="row mx-2 my-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">핸드폰</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${suspect.phone}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">직업</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${suspect.job}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">등록기준지</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${suspect.area}"></label>
</div>
<div class="row mx-2 my-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">주소</label>
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${suspect.address}"></label>
</div>
<div class="row mx-2 my-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">비고</label>
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${suspect.etc}"></label>
</div>
<hr class="my-1">
</th:block>
</div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">외사활동 사항</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">외사활동 사항</label>
<div class="col-sm-11 form-control-sm" id="contentDiv">
<div th:utext="${activityCaseInfo.content}"></div>
</div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">외사활동이<br>필요한 이유</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">결제</label>
<div class="col-sm-11">
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center mb-0 fw-bold">구분</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-center mb-0 fw-bold">경로</label>
<label class="col-sm-6 col-form-label col-form-label-sm text-center mb-0 fw-bold">지휘 및 의견</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center mb-0 fw-bold">결재</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-center mb-0 fw-bold">일시</label>
</div>
<th:block th:each="apprv:${activityCaseInfo.apprvList}">
<div class="row apprvRow">
<input type="hidden" class="apprvUserSeq" th:value="${apprv.userSeq}">
<label class="col-sm-1 col-form-label col-form-label-sm text-start mb-0">
<th:block th:each="code:${session.commonCode.get('ACAT')}">
<th:block th:if="${code.itemCd eq apprv.apprvType}" th:text="${code.itemValue}"></th:block>
</th:block>
</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start mb-0">
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${code.itemCd eq apprv.ogCd}" th:text="${code.itemValue}"></th:block>
</th:block>
<th:block th:each="code:${session.commonCode.get(apprv.ogCd)}">
<th:block th:if="${code.itemCd eq apprv.ofcCd}" th:text="${code.itemValue}"></th:block>
</th:block>
<th:block th:each="code:${session.commonCode.get('JT')}">
<th:block th:if="${code.itemCd eq apprv.titleCd}" th:text="${code.itemValue}"></th:block>
</th:block>
<th:block th:text="${apprv.userNm}"></th:block>
</label>
<th:block th:if="${apprv.userSeq eq viewUserSeq}">
<div class="col-sm-6 border border-dark mb-0">
<input type="text" class="form-control form-control-sm instructions">
</div>
<div class="col-sm-1 border border-dark mb-0 px-0">
<button type="button" class="btn btn-sm btn-outline-success apprvBtn" data-apprvvalue="Y">승인</button>
<button type="button" class="btn btn-sm btn-outline-danger apprvBtn" data-apprvvalue="N">반려</button>
</div>
<label class="col-sm-2 col-form-label col-form-label-sm text-start mb-0"></label>
</th:block>
<th:block th:unless="${apprv.userSeq eq viewUserSeq}">
<label class="col-sm-6 col-form-label col-form-label-sm text-start mb-0" th:text="${apprv.instructions}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-start mb-0" th:text="${apprv.apprvYn eq null?'대기':(apprv.apprvYn eq 'Y'?'승인':'반려')}"></label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start mb-0" th:text="${#temporals.format(apprv.apprvDt, 'yyyy-MM-dd')}"></label>
</th:block>
</div>
</th:block>
</div> </div>
</div> </div>
<div class="tab-pane fade p-2" id="apprvTabPanel" role="tabpanel" tabindex="0">
</div> </div>
<div class="tab-pane fade p-2" id="fileTabPanel" role="tabpanel" tabindex="0"> <div class="tab-pane fade p-2" id="fileTabPanel" role="tabpanel" tabindex="0">
<div class="row mb-3"> <div class="row mb-3">
@ -83,8 +180,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light" th:if="${activityCaseInfo.status eq 'DST001' and viewUserSeq eq activityCase.wrtUserSeq}">
<button type="button" class="btn btn-danger" id="deleteCiWorkBtn">삭제</button> <!--<button type="button" class="btn btn-danger" id="deleteInfoBtn">삭제</button>-->
<button type="button" class="btn btn-warning" id="editCiWorkBtn">수정</button> <button type="button" class="btn btn-warning" id="editInfoBtn">수정</button>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
</div> </div>

View File

@ -28,7 +28,7 @@
<select class="form-select form-select-sm apprvType"> <select class="form-select form-select-sm apprvType">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${session.commonCode.get('ACAT')}"> <th:block th:each="code:${session.commonCode.get('ACAT')}">
<th:block th:if="${code.useChk eq 'Y'}" th:value="${code.itemCd}" th:text="${code.itemValue}"></th:block> <option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>

View File

@ -38,10 +38,6 @@
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm suspectPhone"> <input type="text" class="form-control form-control-sm suspectPhone">
</div> </div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">주소</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm suspectAddr">
</div>
<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-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm suspectJob"> <input type="text" class="form-control form-control-sm suspectJob">
@ -52,6 +48,14 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-12 mb-1">
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">주소</label>
<div class="col-sm-11">
<input type="text" class="form-control form-control-sm suspectAddr">
</div>
</div>
</div>
<div class="col-12 mb-1"> <div class="col-12 mb-1">
<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>