fix : 외사모니터링 지정보고 중간저장
parent
658f9cf8bb
commit
56f77c7170
|
|
@ -103,6 +103,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
|
|||
md.setContentCnt(monitoringService.selectDesignationListCnt(md));
|
||||
md.setPaginationInfo();
|
||||
mav.addObject("type", type);
|
||||
mav.addObject("searchUrl", "/monitoring/designationList/"+type);
|
||||
mav.addObject("searchParams", md);
|
||||
return mav;
|
||||
}
|
||||
|
|
@ -111,7 +112,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
|
|||
public ModelAndView planEditModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringDesignation md){
|
||||
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/monitoring/designationEditModal");
|
||||
if(md.getMdKey()!=null){
|
||||
|
||||
md = monitoringService.selectDesignation(md.getMdKey());
|
||||
}
|
||||
|
||||
mav.addObject("md", md);
|
||||
|
|
|
|||
|
|
@ -108,9 +108,10 @@ public class MonitoringService extends BaseService {
|
|||
return savedDesignation;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Integer designationStateChange(MonitoringDesignationApprv apprv) {
|
||||
MonitoringDesignation saveddesignation = monitoringDesignationRepository.findById(apprv.getMdKey()).orElse(null);
|
||||
saveddesignation.setMdState(apprv.getState());
|
||||
MonitoringDesignation saveDesignation = monitoringDesignationRepository.findById(apprv.getMdKey()).orElse(null);
|
||||
saveDesignation.setMdState(apprv.getState());
|
||||
MonitoringDesignationApprv lastApprv = monitoringDesignationApprvRepository.findTopByMdKeyOrderByApprvSeqDesc(apprv.getMdKey()).orElse(null);
|
||||
apprv.setApprvSeq(lastApprv==null?1:lastApprv.getApprvSeq()+1);
|
||||
monitoringDesignationApprvRepository.save(apprv);
|
||||
|
|
@ -118,17 +119,17 @@ public class MonitoringService extends BaseService {
|
|||
switch (apprv.getState()){
|
||||
case "DST004":
|
||||
// 계장승인시 부장 결재권자에게 알림 발송.
|
||||
userAlarmService.sendAlarmToApprvUser(saveddesignation.getMdKey(), saveddesignation.getWrtOrgan(), "APC001", 36, "해양외사 모니터링 지정보고에 결재대기 문서가 있습니다.");
|
||||
userAlarmService.sendAlarmToApprvUser(saveddesignation.getMdKey(), saveddesignation.getWrtOrgan(), "APC002", 36, "해양외사 모니터링 지정보고에 결재대기 문서가 있습니다.");
|
||||
userAlarmService.sendAlarmToApprvUser(saveDesignation.getMdKey(), saveDesignation.getWrtOrgan(), "APC001", 36, "해양외사 모니터링 지정보고에 결재대기 문서가 있습니다.");
|
||||
userAlarmService.sendAlarmToApprvUser(saveDesignation.getMdKey(), saveDesignation.getWrtOrgan(), "APC002", 36, "해양외사 모니터링 지정보고에 결재대기 문서가 있습니다.");
|
||||
break;
|
||||
case "DST003":
|
||||
case "DST005":
|
||||
// 반려시 작성자에게 반려 알림 발송
|
||||
userAlarmService.sendAlarmToWrtUser(saveddesignation.getMdKey(), saveddesignation.getWrtUserSeq(), 36, saveddesignation.getMdTitle()+" 문서가 반려되었습니다.");
|
||||
userAlarmService.sendAlarmToWrtUser(saveDesignation.getMdKey(), saveDesignation.getWrtUserSeq(), 36, saveDesignation.getMdTitle()+" 문서가 반려되었습니다.");
|
||||
break;
|
||||
case "DST006":
|
||||
// 부장승인시 작성자에게 승인 알림 발송
|
||||
userAlarmService.sendAlarmToWrtUser(saveddesignation.getMdKey(), saveddesignation.getWrtUserSeq(), 36, saveddesignation.getMdTitle()+" 문서가 승인되었습니다.");
|
||||
userAlarmService.sendAlarmToWrtUser(saveDesignation.getMdKey(), saveDesignation.getWrtUserSeq(), 36, saveDesignation.getMdTitle()+" 문서가 승인되었습니다.");
|
||||
break;
|
||||
}
|
||||
return apprv.getMdKey();
|
||||
|
|
|
|||
|
|
@ -21,12 +21,12 @@
|
|||
<if test='mdState != null and mdState != ""'>
|
||||
and md.md_state = #{mdState}
|
||||
</if>
|
||||
<if test='dateSelector == "planDt"'>
|
||||
<if test='dateSelector == "mdDt"'>
|
||||
<if test='startDate != null and startDate != ""'>
|
||||
and md.md_dt >= #{startDate}::date
|
||||
</if>
|
||||
<if test='endDate != null and endDate != ""'>
|
||||
and md.md_dt <= #{endDate}::date+1
|
||||
and md.md_dt <= #{endDate}::date
|
||||
</if>
|
||||
</if>
|
||||
<if test='dateSelector == "wrtDt"'>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,12 @@
|
|||
$(function(){
|
||||
$("#dateSelectorDiv").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko",
|
||||
autoclose: true
|
||||
});
|
||||
})
|
||||
|
||||
$(document).on('click', '#planTab', function (){
|
||||
$(document).on('click', '#allTab', function (){
|
||||
location.href = "/monitoring/designationList/all";
|
||||
})
|
||||
$(document).on('click', '#stayTab', function (){
|
||||
|
|
@ -10,7 +17,7 @@ $(document).on('click', '#commitTab', function (){
|
|||
})
|
||||
|
||||
$(document).on('click', '#addBtn', function (){
|
||||
getDesignationEditModal(null)
|
||||
getDesignationEditModal(null);
|
||||
})
|
||||
|
||||
function getDesignationEditModal(mdKey){
|
||||
|
|
@ -41,12 +48,43 @@ function getDesignationEditModal(mdKey){
|
|||
});
|
||||
}
|
||||
|
||||
$(document).on('click', '#editBtn', function (){
|
||||
$("#designationViewModal").modal('hide');
|
||||
getDesignationEditModal($(this).attr("data-mdkey"));
|
||||
})
|
||||
|
||||
$(document).on('click', '#saveBtn', function (){
|
||||
if(!$("#mdDt").val()){
|
||||
alert("대상지정일을 입력해주세요.");
|
||||
$('#mdDt').focus();
|
||||
return false;
|
||||
}
|
||||
if(!$("#mdName").val()){
|
||||
alert("성명을 입력해주세요.");
|
||||
$('#mdName').focus();
|
||||
return false;
|
||||
}
|
||||
if(!$("#mdBirth").val()){
|
||||
alert("생년월일을 입력해주세요.");
|
||||
$('#mdBirth').focus();
|
||||
return false;
|
||||
}
|
||||
if(!$("#mdReason").val()){
|
||||
alert("대상지정 사유를 입력해주세요.");
|
||||
$('#mdReason').focus();
|
||||
return false;
|
||||
}
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
saveDesignation('DST002');
|
||||
}
|
||||
})
|
||||
|
||||
$(document).on('click', '#saveTempBtn', function (){
|
||||
if(confirm("임시저장 하시겠습니까?")){
|
||||
saveDesignation('DST001');
|
||||
}
|
||||
})
|
||||
|
||||
function saveDesignation(mdState){
|
||||
contentFade("in");
|
||||
const formData = new FormData($("#designationEditForm")[0]);
|
||||
|
|
@ -99,7 +137,8 @@ function getDesignationViewModal(mdKey){
|
|||
|
||||
$(document).on('click', '.apprvBtn', function (){
|
||||
$("#viewModalApprvValue").val($(this).attr("data-planstate"));
|
||||
if(confirm($(this).val()+"하시겠습니까?")){
|
||||
const approval = $(this).val();
|
||||
if(confirm(approval+"하시겠습니까?")){
|
||||
const formData = new FormData($("#apprvForm")[0]);
|
||||
contentFade("in")
|
||||
$.ajax({
|
||||
|
|
@ -112,12 +151,12 @@ $(document).on('click', '.apprvBtn', function (){
|
|||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||
},
|
||||
success : function(result) {
|
||||
alert($(this).val()+"되었습니다");
|
||||
alert(approval+"되었습니다");
|
||||
getDesignationViewModal(result);
|
||||
contentFade("out");
|
||||
},
|
||||
error : function(xhr, status) {
|
||||
alert($(this).val()+"처리를 실패하였습니다.");
|
||||
alert(approval+"처리를 실패하였습니다.");
|
||||
contentFade("out");
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -8,17 +8,17 @@
|
|||
<form action="#" method="post" id="designationEditForm">
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<!-- <input type="hidden" name="affairKey" th:value="${affair.affairKey}">
|
||||
<input type="hidden" name="affairCategory" th:value="${affair.affairCategory}">
|
||||
<input type="hidden" name="wrtOrgan" th:value="${affair.wrtOrgan}">
|
||||
<input type="hidden" name="wrtPart" th:value="${affair.wrtPart}">
|
||||
<input type="hidden" name="wrtUserSeq" th:value="${affair.wrtUserSeq}">
|
||||
<input type="hidden" name="affairStatus" id="affairStatus" th:value="${affair.affairStatus}">
|
||||
<input type="hidden" name="wrtDt" id="wrtDt" th:value="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}"> -->
|
||||
<input type="hidden" name="mdKey" th:value="${md.mdKey}">
|
||||
<input type="hidden" name="wrtOrgan" th:value="${md.wrtOrgan}">
|
||||
<input type="hidden" name="wrtPart" th:value="${md.wrtPart}">
|
||||
<input type="hidden" name="wrtUserSeq" th:value="${md.wrtUserSeq}">
|
||||
<input type="hidden" name="wrtUserGrd" th:value="${md.wrtUserGrd}">
|
||||
<input type="hidden" name="wrtUserNm" th:value="${md.wrtUserNm}">
|
||||
<input type="hidden" name="wrtDt" id="wrtDt" th:value="${#temporals.format(md.wrtDt, 'yyyy-MM-dd HH:mm')}">
|
||||
<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-2">
|
||||
<input type="text" class="form-control form-control-sm" id="mdDt" name="mdDt" readonly>
|
||||
<input type="text" class="form-control form-control-sm" id="mdDt" name="mdDt" th:value="${md.mdDt}" readonly>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
|
||||
<div class="col-sm-2">
|
||||
|
|
@ -32,53 +32,53 @@
|
|||
<div class="row mb-1">
|
||||
<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" id="mdTitle" name="mdTitle">
|
||||
<input type="text" class="form-control form-control-sm" id="mdTitle" name="mdTitle" th:value="${md.mdTitle}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1"><h6 class="text-center">모니터링 대상자</h6></div>
|
||||
<div class="row mb-1">
|
||||
<label for="affairType1" class="col-sm-1 col-form-label col-form-label-sm text-center">성명</label>
|
||||
<label for="affairType1" 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" id="mdName" name="mdName">
|
||||
<input type="text" class="form-control form-control-sm" id="mdName" name="mdName" th:value="${md.mdName}">
|
||||
</div>
|
||||
<label for="affairType2" class="col-sm-1 col-form-label col-form-label-sm text-center">생년월일</label>
|
||||
<label for="affairType2" 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" id="mdBirth" name="mdBirth">
|
||||
<input type="text" class="form-control form-control-sm" id="mdBirth" name="mdBirth" th:value="${md.mdBirth}" readonly>
|
||||
</div>
|
||||
<label for="affairType3" 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" id="mdNationality" name="mdNationality">
|
||||
<input type="text" class="form-control form-control-sm" id="mdNationality" name="mdNationality" th:value="${md.mdNationality}">
|
||||
</div>
|
||||
<label for="affairType4" 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" id="mdAddress" name="mdAddress">
|
||||
<input type="text" class="form-control form-control-sm" id="mdAddress" name="mdAddress" th:value="${md.mdAddress}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="affairType1" class="col-sm-1 col-form-label col-form-label-sm text-center">소속/계급<br>(직위)</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" class="form-control form-control-sm" id="mdRank" name="mdRank">
|
||||
<input type="text" class="form-control form-control-sm" id="mdRank" name="mdRank" th:value="${md.mdRank}">
|
||||
</div>
|
||||
<label for="affairType2" 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" id="mdCareer" name="mdCareer">
|
||||
<input type="text" class="form-control form-control-sm" id="mdCareer" name="mdCareer" th:value="${md.mdCareer}">
|
||||
</div>
|
||||
<label for="affairType3" class="col-sm-1 col-form-label col-form-label-sm text-center">기타사항</label>
|
||||
<div class="col-sm-5">
|
||||
<input type="text" class="form-control form-control-sm" id="mdEtc" name="mdEtc">
|
||||
<input type="text" class="form-control form-control-sm" id="mdEtc" name="mdEtc" th:value="${md.mdEtc}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="hashTags" class="col-sm-1 col-form-label col-form-label-sm text-center">대상지정<br>사유</label>
|
||||
<label for="hashTags" class="col-sm-1 col-form-label col-form-label-sm text-center">*대상지정<br>사유</label>
|
||||
<div class="col-sm-11">
|
||||
<textarea id="mdReason" name="mdReason" rows="5" cols="139"></textarea>
|
||||
<textarea id="mdReason" name="mdReason" rows="5" cols="139" th:utext="${md.mdReason}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="editor" class="col-sm-1 col-form-label col-form-label-sm text-center">모니터링<br>추진계획</label>
|
||||
<div class="col-sm-11">
|
||||
<div id="editor"></div>
|
||||
<textarea id="content" class="d-none"></textarea>
|
||||
<textarea id="content" class="d-none" th:utext="${md.mdPlan}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
|
|
@ -100,8 +100,12 @@
|
|||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer bg-light">
|
||||
<div class="modal-footer justify-content-between bg-light">
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button>
|
||||
<button type="button" class="btn btn-primary" id="saveBtn">저장</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
<div class="card-body">
|
||||
<ul class="nav nav-tabs" id="userTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" th:classappend="${type eq 'all'?' active':''}" id="planTab" data-bs-toggle="tab" type="button" role="tab">전체 목록</button>
|
||||
<button class="nav-link" th:classappend="${type eq 'all'?' active':''}" id="allTab" data-bs-toggle="tab" type="button" role="tab">전체 목록</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" th:classappend="${type eq 'stay'?' active':''}" id="stayTab" data-bs-toggle="tab" type="button" role="tab">결재대기목록</button>
|
||||
|
|
@ -38,7 +38,7 @@
|
|||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<!-- <div class="col-8">
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003'}">
|
||||
|
|
@ -58,13 +58,13 @@
|
|||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="contentTitle" th:value="${searchParams.contentTitle}">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="mdTitle" th:value="${searchParams.mdTitle}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="planState">
|
||||
<select class="form-select form-select-sm" name="mdState">
|
||||
<option value="">상태 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.planState}"></option>
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mdState}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
|
|
@ -72,7 +72,7 @@
|
|||
<div class="input-group input-daterange" id="dateSelectorDiv">
|
||||
<select class="form-select form-select-sm w-30" name="dateSelector">
|
||||
<option value="">조건선택</option>
|
||||
<option value="planDt" th:selected="${searchParams.dateSelector eq 'planDt'}">시행일</option>
|
||||
<option value="mdDt" th:selected="${searchParams.dateSelector eq 'mdDt'}">시행일</option>
|
||||
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>
|
||||
</select>
|
||||
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
|
|
@ -85,7 +85,7 @@
|
|||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start">
|
||||
|
|
|
|||
|
|
@ -20,11 +20,15 @@
|
|||
<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="${md.mdDt}"></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="${md.wrtUserNm}"></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>
|
||||
</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>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${md.mdState}"></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>
|
||||
</th:block>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row mb-1">
|
||||
|
|
@ -143,7 +147,7 @@
|
|||
<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" id="editAffairBtn">수정</button>
|
||||
<button type="button" class="btn btn-warning" th:data-mdkey="${md.mdKey}" id="editBtn">수정</button>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue