fix : 외사모니터링 모니터링보고서 완료

master
TaehunPark 2023-02-03 13:00:53 +09:00
parent 4ca14a3b06
commit 3580f6626c
7 changed files with 62 additions and 23 deletions

View File

@ -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;
} }

View File

@ -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);
}

View File

@ -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 &lt;= #{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

View File

@ -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();
})

View File

@ -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">

View File

@ -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">

View File

@ -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>