Merge branch 'master' of https://dev.azure.com/DBNTech/ForeignAffairs/_git/ForeignAffairs
commit
76858f8604
|
|
@ -238,6 +238,9 @@ public class FileController extends BaseService{
|
||||||
case "designation":
|
case "designation":
|
||||||
downloadFile = monitoringService.selectDesignationFile(parentKey, fileSeq);
|
downloadFile = monitoringService.selectDesignationFile(parentKey, fileSeq);
|
||||||
break;
|
break;
|
||||||
|
case "monitoringResult":
|
||||||
|
downloadFile = monitoringService.selectmonitoringResultFile(parentKey, fileSeq);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return downloadFile;
|
return downloadFile;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignationFile.mon
|
||||||
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResult;
|
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResult;
|
||||||
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultApprv;
|
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultApprv;
|
||||||
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultFile;
|
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultFile;
|
||||||
|
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultFile.MonitoringResultFileId;
|
||||||
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultInfo;
|
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultInfo;
|
||||||
import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringDesignationApprvRepository;
|
import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringDesignationApprvRepository;
|
||||||
import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringDesignationFileRepository;
|
import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringDesignationFileRepository;
|
||||||
|
|
@ -248,16 +249,20 @@ public class MonitoringService extends BaseService {
|
||||||
case "DST003":
|
case "DST003":
|
||||||
case "DST005":
|
case "DST005":
|
||||||
// 반려시 작성자에게 반려 알림 발송
|
// 반려시 작성자에게 반려 알림 발송
|
||||||
userAlarmService.sendAlarmToWrtUser(saveResult.getMrKey(), saveResult.getWrtUserSeq(), 36, saveResult.getMrTitle()+" 문서가 반려되었습니다.");
|
userAlarmService.sendAlarmToWrtUser(saveResult.getMrKey(), saveResult.getWrtUserSeq(), 37, saveResult.getMrTitle()+" 문서가 반려되었습니다.");
|
||||||
break;
|
break;
|
||||||
case "DST006":
|
case "DST006":
|
||||||
// 부장승인시 작성자에게 승인 알림 발송
|
// 부장승인시 작성자에게 승인 알림 발송
|
||||||
userAlarmService.sendAlarmToWrtUser(saveResult.getMrKey(), saveResult.getWrtUserSeq(), 36, saveResult.getMrTitle()+" 문서가 승인되었습니다.");
|
userAlarmService.sendAlarmToWrtUser(saveResult.getMrKey(), saveResult.getWrtUserSeq(), 37, saveResult.getMrTitle()+" 문서가 승인되었습니다.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return apprv.getMrKey();
|
return apprv.getMrKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MonitoringResultFile selectmonitoringResultFile(Integer parentKey, Integer fileSeq) {
|
||||||
|
return monitoringResultFileRepository.findById(new MonitoringResultFileId(parentKey,fileSeq)).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,14 @@
|
||||||
<if test='mrState != null and mrState != ""'>
|
<if test='mrState != null and mrState != ""'>
|
||||||
and mr.mr_state = #{mrState}
|
and mr.mr_state = #{mrState}
|
||||||
</if>
|
</if>
|
||||||
|
<if test='dateSelector == "mrDt"'>
|
||||||
|
<if test='startDate != null and startDate != ""'>
|
||||||
|
and mr.mr_sdate >= #{startDate}::date
|
||||||
|
</if>
|
||||||
|
<if test='endDate != null and endDate != ""'>
|
||||||
|
and mr.mr_edate <= #{endDate}::date
|
||||||
|
</if>
|
||||||
|
</if>
|
||||||
<if test='dateSelector == "wrtDt"'>
|
<if test='dateSelector == "wrtDt"'>
|
||||||
<if test='startDate != null and startDate != ""'>
|
<if test='startDate != null and startDate != ""'>
|
||||||
and mr.wrt_dt >= #{startDate}::date
|
and mr.wrt_dt >= #{startDate}::date
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ function getResultEditModal(mrKey){
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).on('click', '#designationListModalBtn', function (){
|
$(document).on('click', '#designationListModalBtn', function (){
|
||||||
//const opKey = $("input[name=opKey]").val();
|
const mdKey = $("input[name=mdKey]").val();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '/monitoring/designationListModal',
|
url: '/monitoring/designationListModal',
|
||||||
data: {
|
data: {
|
||||||
|
|
@ -53,9 +53,9 @@ $(document).on('click', '#designationListModalBtn', function (){
|
||||||
dataType:"html",
|
dataType:"html",
|
||||||
success: function(html){
|
success: function(html){
|
||||||
$("#designationListModalContent").empty().append(html);
|
$("#designationListModalContent").empty().append(html);
|
||||||
//if(opKey != ""){
|
if(mdKey != ""){
|
||||||
// $(".rowChkBox[value="+opKey+"]").prop("checked", true);
|
$(".rowChkBox[value="+mdKey+"]").prop("checked", true);
|
||||||
// }
|
}
|
||||||
$("#designationListModal").modal('show');
|
$("#designationListModal").modal('show');
|
||||||
},
|
},
|
||||||
error:function(e){
|
error:function(e){
|
||||||
|
|
@ -66,7 +66,7 @@ $(document).on('click', '#designationListModalBtn', function (){
|
||||||
|
|
||||||
$(document).on('click', '#getDesignationBtn', function (){
|
$(document).on('click', '#getDesignationBtn', function (){
|
||||||
if($(".rowChkBox:checked").length < 1){
|
if($(".rowChkBox:checked").length < 1){
|
||||||
alert("정보협력자를 선택해주세요.");
|
alert("모니터링 대상자를 선택해주세요.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if($(".rowChkBox:checked").length > 1){
|
if($(".rowChkBox:checked").length > 1){
|
||||||
|
|
@ -84,8 +84,7 @@ $(document).on('click', '#getDesignationBtn', function (){
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#resultInfoAddBtn', function (){
|
$(document).on('click', '#resultInfoAddBtn', function (){
|
||||||
const childCommentDiv = $(this).parents(".resultInfoRow");
|
const infoFm = $("#infoFmOrigin").children().clone();
|
||||||
const infoFm = $("#infoFmOrigin").children().clone()
|
|
||||||
$("#resultInfoRow").append(infoFm);
|
$("#resultInfoRow").append(infoFm);
|
||||||
infoFm.find(".contactDate").datepicker({
|
infoFm.find(".contactDate").datepicker({
|
||||||
format: "yyyy-mm-dd",
|
format: "yyyy-mm-dd",
|
||||||
|
|
@ -100,6 +99,31 @@ $(document).on('click', '#editBtn', function (){
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#saveBtn', function (){
|
$(document).on('click', '#saveBtn', function (){
|
||||||
|
if($("#mrTitle").val() == ""){
|
||||||
|
alert("제목을 입력해주세요");
|
||||||
|
$('#mrTitle').focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if($("input[name=mdKey]").val() == ""){
|
||||||
|
alert("모니터링 대상을 선택해주세요");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
$.each($("#resultInfoRow").find(".infoRow"), function (idx, div){
|
||||||
|
if($(div).find(".contactDate").val() == ""){
|
||||||
|
alert("접촉일을 입력해주세요");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if($(div).find(".contactStime").val() == ""){
|
||||||
|
alert("접촉시작시간 입력해주세요");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if($(div).find(".contactEtime").val() == ""){
|
||||||
|
alert("접촉종료시간 입력해주세요");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
*/
|
||||||
if(confirm("저장하시겠습니까?")){
|
if(confirm("저장하시겠습니까?")){
|
||||||
saveResult('DST002');
|
saveResult('DST002');
|
||||||
}
|
}
|
||||||
|
|
@ -124,11 +148,6 @@ function saveResult(mrState){
|
||||||
formData.append('mrState', mrState);
|
formData.append('mrState', mrState);
|
||||||
|
|
||||||
$.each($("#resultInfoRow").find(".infoRow"), function (idx, div){
|
$.each($("#resultInfoRow").find(".infoRow"), function (idx, div){
|
||||||
// const position = $(div).find(".normalSailorPosition").val();
|
|
||||||
// let sailorKey = $(div).find(".sailorKey").val();
|
|
||||||
// if(sailorKey!==undefined){
|
|
||||||
// formData.append('sailorList['+(idx)+'].sailorKey', sailorKey);
|
|
||||||
// }
|
|
||||||
formData.append('resultInfoList['+(idx)+'].infoSeq', idx+1);
|
formData.append('resultInfoList['+(idx)+'].infoSeq', idx+1);
|
||||||
formData.append('resultInfoList['+(idx)+'].contactDate', $(div).find(".contactDate").val());
|
formData.append('resultInfoList['+(idx)+'].contactDate', $(div).find(".contactDate").val());
|
||||||
formData.append('resultInfoList['+(idx)+'].contactStime', $(div).find(".contactStime").val());
|
formData.append('resultInfoList['+(idx)+'].contactStime', $(div).find(".contactStime").val());
|
||||||
|
|
@ -202,3 +221,7 @@ $(document).on('click', '.apprvBtn', function (){
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$(document).on('click', '.rowDeleteBtn', function (){
|
||||||
|
$(this).parents(".infoRow").remove();
|
||||||
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||||
<div class="modal-header bg-dark">
|
<div class="modal-header bg-dark">
|
||||||
<h5 class="modal-title text-white" id="affairEditModalLabel" th:text="${mr.mrKey eq null?'모니터링 결과보고 작성':'모니터링 결과보고 수정'}"></h5>
|
<h5 class="modal-title text-white" id="affairEditModalLabel" th:text="${mr.mrKey eq null?'모니터링보고서 작성':'모니터링보고서 수정'}"></h5>
|
||||||
<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="affairEditBody">
|
<div class="modal-body" id="affairEditBody">
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tab-content bg-white border border-top-0 p-2" id="planContent">
|
<div class="tab-content bg-white border border-top-0 p-2" id="planContent">
|
||||||
<!-- <form method="get" th:action="${searchUrl}">
|
<form method="get" th:action="${searchUrl}">
|
||||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||||
<div class="row justify-content-between py-1">
|
<div class="row justify-content-between py-1">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
|
|
@ -59,13 +59,13 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row justify-content-end">
|
<div class="row justify-content-end">
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="mdTitle" th:value="${searchParams.mdTitle}">
|
<input type="text" class="form-control form-control-sm" placeholder="제목" name="mrTitle" th:value="${searchParams.mrTitle}">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<select class="form-select form-select-sm" name="mdState">
|
<select class="form-select form-select-sm" name="mrState">
|
||||||
<option value="">상태 선택</option>
|
<option value="">상태 선택</option>
|
||||||
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
||||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mdState}"></option>
|
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mrState}"></option>
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -73,7 +73,7 @@
|
||||||
<div class="input-group input-daterange" id="dateSelectorDiv">
|
<div class="input-group input-daterange" id="dateSelectorDiv">
|
||||||
<select class="form-select form-select-sm w-30" name="dateSelector">
|
<select class="form-select form-select-sm w-30" name="dateSelector">
|
||||||
<option value="">조건선택</option>
|
<option value="">조건선택</option>
|
||||||
<option value="mdDt" th:selected="${searchParams.dateSelector eq 'mdDt'}">시행일</option>
|
<option value="mrDt" th:selected="${searchParams.dateSelector eq 'mrDt'}">사업기간</option>
|
||||||
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>
|
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>
|
||||||
</select>
|
</select>
|
||||||
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||||
|
|
@ -88,7 +88,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form> -->
|
</form>
|
||||||
<div class="row justify-content-start">
|
<div class="row justify-content-start">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<table class="table table-sm table-bordered table-hover">
|
<table class="table table-sm table-bordered table-hover">
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||||
<div class="modal-header bg-dark">
|
<div class="modal-header bg-dark">
|
||||||
<h5 class="modal-title text-white" id="affairViewModalLabel">해양 외사 모니터링 대상자 지정 보고 열람</h5>
|
<h5 class="modal-title text-white" id="affairViewModalLabel">해양 외사 모니터링보고서 열람</h5>
|
||||||
<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">
|
<div class="modal-body">
|
||||||
|
|
@ -97,7 +97,7 @@
|
||||||
<th:block th:unless="${#lists.isEmpty(mr.fileList)}">
|
<th:block th:unless="${#lists.isEmpty(mr.fileList)}">
|
||||||
<th:block th:each="file:${mr.fileList}">
|
<th:block th:each="file:${mr.fileList}">
|
||||||
<tr class="fileInfoTr">
|
<tr class="fileInfoTr">
|
||||||
<td><a href="#" class="fileDownLink" data-board="designation"
|
<td><a href="#" class="fileDownLink" data-board="monitoringResult"
|
||||||
th:data-parentkey="${file.mrKey}" th:data-fileseq="${file.fileSeq}" th:text="|${file.origNm}.${file.fileExtn}|"></a></td>
|
th:data-parentkey="${file.mrKey}" th:data-fileseq="${file.fileSeq}" th:text="|${file.origNm}.${file.fileExtn}|"></a></td>
|
||||||
<td th:text="${file.fileSize}"></td>
|
<td th:text="${file.fileSize}"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue