fix : 모니터링 청산보고서 중간저장
parent
6b3a6ffa37
commit
9f810d14bb
|
|
@ -239,7 +239,10 @@ public class FileController extends BaseService{
|
||||||
downloadFile = monitoringService.selectDesignationFile(parentKey, fileSeq);
|
downloadFile = monitoringService.selectDesignationFile(parentKey, fileSeq);
|
||||||
break;
|
break;
|
||||||
case "monitoringResult":
|
case "monitoringResult":
|
||||||
downloadFile = monitoringService.selectmonitoringResultFile(parentKey, fileSeq);
|
downloadFile = monitoringService.selectMonitoringResultFile(parentKey, fileSeq);
|
||||||
|
break;
|
||||||
|
case "monitoringReport":
|
||||||
|
downloadFile = monitoringService.selectMonitoringReportFile(parentKey, fileSeq);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return downloadFile;
|
return downloadFile;
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,10 @@ public class MonitoringResult extends BaseModel {
|
||||||
private String mrTitle;
|
private String mrTitle;
|
||||||
@Column(name = "clear_title")
|
@Column(name = "clear_title")
|
||||||
private String clearTitle;
|
private String clearTitle;
|
||||||
|
@Column(name = "monitoring_yn")
|
||||||
|
private String monitoringYn;
|
||||||
|
@Column(name = "monitoring_reason")
|
||||||
|
private String monitoringReason;
|
||||||
@Column(name = "mr_sdate")
|
@Column(name = "mr_sdate")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDate mrSdate;
|
private LocalDate mrSdate;
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignationApprv;
|
||||||
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignationFile;
|
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignationFile;
|
||||||
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignationFile.monitoringDesignationFileId;
|
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignationFile.monitoringDesignationFileId;
|
||||||
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringReport;
|
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringReport;
|
||||||
|
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringReport.MonitoringReportId;
|
||||||
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.MonitoringResultClearInfo;
|
import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultClearInfo;
|
||||||
|
|
@ -182,8 +183,8 @@ public class MonitoringService extends BaseService {
|
||||||
}
|
}
|
||||||
if(mr.getMrState().equals("DST002")){
|
if(mr.getMrState().equals("DST002")){
|
||||||
//작성완료일 때 계장 결재 사용자에게 알림 발송.
|
//작성완료일 때 계장 결재 사용자에게 알림 발송.
|
||||||
userAlarmService.sendAlarmToApprvUser(mrKey, mr.getWrtOrgan(), "APC003", 37, "해양외사 모니터링 모니터링보고에 결재대기 문서가 있습니다.");
|
userAlarmService.sendAlarmToApprvUser(mrKey, mr.getWrtOrgan(), "APC003", 37, "해양외사 모니터링 청산보고서에 결재대기 문서가 있습니다.");
|
||||||
userAlarmService.sendAlarmToApprvUser(mrKey, mr.getWrtOrgan(), "APC004", 37, "해양외사 모니터링 모니터링보고에 결재대기 문서가 있습니다.");
|
userAlarmService.sendAlarmToApprvUser(mrKey, mr.getWrtOrgan(), "APC004", 37, "해양외사 모니터링 청산보고서에 결재대기 문서가 있습니다.");
|
||||||
}
|
}
|
||||||
return mrKey;
|
return mrKey;
|
||||||
}
|
}
|
||||||
|
|
@ -237,6 +238,16 @@ public class MonitoringService extends BaseService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveReportList(Integer mrKey, List<MonitoringReport> reportList){
|
private void saveReportList(Integer mrKey, List<MonitoringReport> reportList){
|
||||||
|
//파일삭제
|
||||||
|
List<MonitoringReport> fileList = monitoringReportRepository.findByMrKey(mrKey);
|
||||||
|
if(fileList != null) {
|
||||||
|
for(MonitoringReport file: fileList){
|
||||||
|
if(file.getOrigNm() != null) {
|
||||||
|
deleteStoredFile(new File(file.getSavePath(), file.getConvNm()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
monitoringReportRepository.deleteByMrKey(mrKey);
|
monitoringReportRepository.deleteByMrKey(mrKey);
|
||||||
for(MonitoringReport info: reportList){
|
for(MonitoringReport info: reportList){
|
||||||
if(info.getFile() != null) {
|
if(info.getFile() != null) {
|
||||||
|
|
@ -277,7 +288,8 @@ public class MonitoringService extends BaseService {
|
||||||
}
|
}
|
||||||
return savedReslut;
|
return savedReslut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
public Integer resultStateChange(MonitoringResultApprv apprv) {
|
public Integer resultStateChange(MonitoringResultApprv apprv) {
|
||||||
MonitoringResult saveResult = monitoringResultRepository.findById(apprv.getMrKey()).orElse(null);
|
MonitoringResult saveResult = monitoringResultRepository.findById(apprv.getMrKey()).orElse(null);
|
||||||
saveResult.setMrState(apprv.getState());
|
saveResult.setMrState(apprv.getState());
|
||||||
|
|
@ -288,8 +300,8 @@ public class MonitoringService extends BaseService {
|
||||||
switch (apprv.getState()){
|
switch (apprv.getState()){
|
||||||
case "DST004":
|
case "DST004":
|
||||||
// 계장승인시 부장 결재권자에게 알림 발송.
|
// 계장승인시 부장 결재권자에게 알림 발송.
|
||||||
userAlarmService.sendAlarmToApprvUser(saveResult.getMrKey(), saveResult.getWrtOrgan(), "APC001", 37, "해양외사 모니터링 모니터링보고에 결재대기 문서가 있습니다.");
|
userAlarmService.sendAlarmToApprvUser(saveResult.getMrKey(), saveResult.getWrtOrgan(), "APC001", 37, "해양외사 모니터링 청산보고서에 결재대기 문서가 있습니다.");
|
||||||
userAlarmService.sendAlarmToApprvUser(saveResult.getMrKey(), saveResult.getWrtOrgan(), "APC002", 37, "해양외사 모니터링 모니터링보고에 결재대기 문서가 있습니다.");
|
userAlarmService.sendAlarmToApprvUser(saveResult.getMrKey(), saveResult.getWrtOrgan(), "APC002", 37, "해양외사 모니터링 청산보고서에 결재대기 문서가 있습니다.");
|
||||||
break;
|
break;
|
||||||
case "DST003":
|
case "DST003":
|
||||||
case "DST005":
|
case "DST005":
|
||||||
|
|
@ -304,10 +316,14 @@ public class MonitoringService extends BaseService {
|
||||||
return apprv.getMrKey();
|
return apprv.getMrKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
public MonitoringResultFile selectmonitoringResultFile(Integer parentKey, Integer fileSeq) {
|
public MonitoringResultFile selectMonitoringResultFile(Integer parentKey, Integer fileSeq) {
|
||||||
return monitoringResultFileRepository.findById(new MonitoringResultFileId(parentKey,fileSeq)).orElse(null);
|
return monitoringResultFileRepository.findById(new MonitoringResultFileId(parentKey,fileSeq)).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MonitoringReport selectMonitoringReportFile(Integer parentKey, Integer infoSeq) {
|
||||||
|
return monitoringReportRepository.findById(new MonitoringReportId(parentKey,infoSeq)).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -108,8 +108,8 @@
|
||||||
<if test='wrtOrgan != null and wrtOrgan != ""'>
|
<if test='wrtOrgan != null and wrtOrgan != ""'>
|
||||||
and mr.wrt_organ = #{wrtOrgan}
|
and mr.wrt_organ = #{wrtOrgan}
|
||||||
</if>
|
</if>
|
||||||
<if test='mrTitle != null and mrTitle != ""'>
|
<if test='clearTitle != null and clearTitle != ""'>
|
||||||
and mr.mr_title like '%'||#{mrTitle}||'%'
|
and mr.clear_title like '%'||#{clearTitle}||'%'
|
||||||
</if>
|
</if>
|
||||||
<if test='mrState != null and mrState != ""'>
|
<if test='mrState != null and mrState != ""'>
|
||||||
and mr.mr_state = #{mrState}
|
and mr.mr_state = #{mrState}
|
||||||
|
|
@ -161,6 +161,7 @@
|
||||||
<select id="selectResultList" resultType="MonitoringResult" parameterType="MonitoringResult">
|
<select id="selectResultList" resultType="MonitoringResult" parameterType="MonitoringResult">
|
||||||
select mr_key,
|
select mr_key,
|
||||||
mr_title,
|
mr_title,
|
||||||
|
clear_title,
|
||||||
mr_sdate,
|
mr_sdate,
|
||||||
mr_edate,
|
mr_edate,
|
||||||
md_dt,
|
md_dt,
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,11 @@ function getResultEditModal(mrKey){
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
dataType:"html",
|
dataType:"html",
|
||||||
success: function(html){
|
success: function(html){
|
||||||
$("#resultEditModalContent").empty().append(html)
|
$("#resultEditModalContent").empty().append(html);
|
||||||
|
$("#monitoringReason").hide();
|
||||||
|
if($("#monitoringYn").val() == 'N'){
|
||||||
|
$("#monitoringReason").show();
|
||||||
|
}
|
||||||
$("#mrSdate,#mrEdate").datepicker({
|
$("#mrSdate,#mrEdate").datepicker({
|
||||||
format: "yyyy-mm-dd",
|
format: "yyyy-mm-dd",
|
||||||
language: "ko",
|
language: "ko",
|
||||||
|
|
@ -78,6 +82,10 @@ $(document).on('click', '#getDesignationBtn', function (){
|
||||||
$("#mdName").val(tr.find(".mdName").val());
|
$("#mdName").val(tr.find(".mdName").val());
|
||||||
$("#mdNationality").val(tr.find(".mdNationality").val());
|
$("#mdNationality").val(tr.find(".mdNationality").val());
|
||||||
$("#mdRank").val(tr.find(".mdRank").val());
|
$("#mdRank").val(tr.find(".mdRank").val());
|
||||||
|
$("#mdDt2").val(tr.find(".mdDt").val());
|
||||||
|
$("#mdName2").val(tr.find(".mdName").val());
|
||||||
|
$("#mdNationality2").val(tr.find(".mdNationality").val());
|
||||||
|
$("#mdRank2").val(tr.find(".mdRank").val());
|
||||||
$("input[name=mdKey]").val(tr.find(".rowChkBox").val());
|
$("input[name=mdKey]").val(tr.find(".rowChkBox").val());
|
||||||
$("#designationListModal").modal("hide");
|
$("#designationListModal").modal("hide");
|
||||||
})
|
})
|
||||||
|
|
@ -113,15 +121,37 @@ $(document).on('click', '#editBtn', function (){
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#saveBtn', function (){
|
$(document).on('click', '#saveBtn', function (){
|
||||||
if($("#mrTitle").val() == ""){
|
if($("#clearTitle").val() == ""){
|
||||||
alert("제목을 입력해주세요");
|
alert("결과보고서 제목을 입력해주세요");
|
||||||
$('#mrTitle').focus();
|
$('#clearTitle').focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
const clearInfoRowList = $("#clearInfoRow").find(".infoRow");
|
||||||
|
for(let i=0; i<clearInfoRowList.length; i++){
|
||||||
|
const div = clearInfoRowList[i];
|
||||||
|
if($(div).find(".useCatg").val() == ""){
|
||||||
|
alert("세부집행내역 구분을 선택해주세요");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if($(div).find(".useDetail").val() == ""){
|
||||||
|
alert("세부집행내역 상세를 선택해주세요");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if($(div).find(".price").val() == ""){
|
||||||
|
alert("세부집행내역 금액을 입력해주세요");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
if($("input[name=mdKey]").val() == ""){
|
if($("input[name=mdKey]").val() == ""){
|
||||||
alert("모니터링 대상을 선택해주세요");
|
alert("모니터링 대상을 선택해주세요");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($("#mrTitle").val() == ""){
|
||||||
|
alert("결과보고서 제목을 입력해주세요");
|
||||||
|
$('#mrTitle').focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
const infoRowList = $("#resultInfoRow").find(".infoRow");
|
const infoRowList = $("#resultInfoRow").find(".infoRow");
|
||||||
for(let i=0; i<infoRowList.length; i++){
|
for(let i=0; i<infoRowList.length; i++){
|
||||||
const div = infoRowList[i];
|
const div = infoRowList[i];
|
||||||
|
|
@ -138,6 +168,22 @@ $(document).on('click', '#saveBtn', function (){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const monitoringInfoRowList = $("#monitoringInfoRow").find(".infoRow");
|
||||||
|
for(let i=0; i<monitoringInfoRowList.length; i++){
|
||||||
|
const div = monitoringInfoRowList[i];
|
||||||
|
if($(div).find(".contactDate").val() == ""){
|
||||||
|
alert("보니터링보고서 접촉일을 입력해주세요");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if($(div).find(".writeDate").val() == ""){
|
||||||
|
alert("모니터링보고서 작성일을 입력해주세요");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if($(div).find(".reportTitle").val() == ""){
|
||||||
|
alert("모니터링보고서 제목을 입력해주세요");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(confirm("저장하시겠습니까?")){
|
if(confirm("저장하시겠습니까?")){
|
||||||
saveResult('DST002');
|
saveResult('DST002');
|
||||||
}
|
}
|
||||||
|
|
@ -264,6 +310,22 @@ $(document).on('click', '.rowDeleteBtn3', function (){
|
||||||
$(this).parents(".infoRow").remove();
|
$(this).parents(".infoRow").remove();
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#addImgBtn', function (){
|
$(document).on('click', '#addFileBtn', function (){
|
||||||
$("#upload").remove();
|
$(this).parents("#addFile").find("#updateFile").removeClass('d-none');
|
||||||
|
$(this).parents("#addFile").find("#fileAdd").remove();
|
||||||
|
})
|
||||||
|
|
||||||
|
$(document).on('click', '#deleteFileBtn', function (){
|
||||||
|
$(this).parents("#deleteFile").find("#updateFile").removeClass('d-none');
|
||||||
|
$(this).parents(".infoRow").find(".fileYn").val('Y');
|
||||||
|
$(this).parents("#deleteFile").find("#fileDelete").remove();
|
||||||
|
})
|
||||||
|
|
||||||
|
$(document).on('change', '#monitoringYn', function (){
|
||||||
|
if($("#monitoringYn").val() == 'N'){
|
||||||
|
$("#monitoringReason").show();
|
||||||
|
}else{
|
||||||
|
$("#monitoringReason").hide();
|
||||||
|
$("#monitoringReason").val("");
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -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">
|
||||||
|
|
@ -101,6 +101,23 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</th:block>
|
</th:block>
|
||||||
|
<div class="row mb-1">
|
||||||
|
<label for="usePrice" class="col-sm-2 col-form-label col-form-label-sm text-center">모니터링<br>지속여부</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-2 me-0">
|
||||||
|
<select class="form-select form-select-sm" id="monitoringYn" name="monitoringYn">
|
||||||
|
<option value="">선택</option>
|
||||||
|
<option value="Y" th:selected="${mr.monitoringYn eq 'Y'}">지속</option>
|
||||||
|
<option value="N" th:selected="${mr.monitoringYn eq 'N'}">지정해제</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-10 me-0">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="monitoringReason" name="monitoringReason" th:value="${mr.monitoringReason}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label for="usePrice" class="col-sm-2 col-form-label col-form-label-sm text-center">집행액</label>
|
<label for="usePrice" class="col-sm-2 col-form-label col-form-label-sm text-center">집행액</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
|
|
@ -189,19 +206,19 @@
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label for="opName" class="col-sm-1 col-form-label col-form-label-sm text-center">대상지정일</label>
|
<label for="opName" 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" id="mdDt" disabled>
|
<input type="text" class="form-control form-control-sm" id="mdDt2" disabled>
|
||||||
</div>
|
</div>
|
||||||
<label for="opName" class="col-sm-1 col-form-label col-form-label-sm text-center">성명</label>
|
<label for="opName" 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" id="mdName" disabled>
|
<input type="text" class="form-control form-control-sm" id="mdName2" disabled>
|
||||||
</div>
|
</div>
|
||||||
<label for="opBirth" class="col-sm-1 col-form-label col-form-label-sm text-center">국적</label>
|
<label for="opBirth" 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" id="mdNationality" disabled>
|
<input type="text" class="form-control form-control-sm" id="mdNationality2" disabled>
|
||||||
</div>
|
</div>
|
||||||
<label for="opPosition" class="col-sm-1 col-form-label col-form-label-sm text-center">소속·계급</label>
|
<label for="opPosition" 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" id="mdRank" disabled>
|
<input type="text" class="form-control form-control-sm" id="mdRank2" disabled>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</th:block>
|
</th:block>
|
||||||
|
|
@ -293,6 +310,7 @@
|
||||||
<div class="col-12" id="monitoringInfoRow">
|
<div class="col-12" id="monitoringInfoRow">
|
||||||
<th:block th:each="info:${mr.reportList}">
|
<th:block th:each="info:${mr.reportList}">
|
||||||
<div class="row my-1 infoRow">
|
<div class="row my-1 infoRow">
|
||||||
|
<input type="hidden" class="fileYn">
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<input type="text" class="form-control form-control-sm contactDate" placeholder="YYYY-MM-DD" th:value="${info.contactDate}" readonly>
|
<input type="text" class="form-control form-control-sm contactDate" placeholder="YYYY-MM-DD" th:value="${info.contactDate}" readonly>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -304,27 +322,27 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<th:block th:if="${not #strings.isEmpty(info.origNm)}">
|
<th:block th:if="${not #strings.isEmpty(info.origNm)}">
|
||||||
<div class="col-3">
|
<div class="col-3" id="deleteFile">
|
||||||
<div class="input-group">
|
<div class="input-group" id="fileDelete">
|
||||||
<input type="text" class="form-control form-control-sm" th:value="|${info.origNm}.${info.fileExtn}|" readonly>
|
<input type="text" class="form-control form-control-sm" th:value="|${info.origNm}.${info.fileExtn}|" readonly>
|
||||||
<button type="button" class="btn btn-sm btn-danger" id="deleteImgBtn">
|
<button type="button" class="btn btn-sm btn-danger" id="deleteFileBtn">
|
||||||
<i class="bi bi-x"></i>
|
<i class="bi bi-x"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<input class="file d-none" id="updateFile" type="file">
|
||||||
</div>
|
</div>
|
||||||
</th:block>
|
</th:block>
|
||||||
<th:block th:unless="${not #strings.isEmpty(info.origNm)}">
|
<th:block th:unless="${not #strings.isEmpty(info.origNm)}">
|
||||||
<div class="col-3">
|
<div class="col-3" id="addFile">
|
||||||
<div class="input-group">
|
<div class="input-group" id="fileAdd">
|
||||||
<input type="text" class="form-control form-control-sm" value="등록된 파일이 없습니다." readonly>
|
<input type="text" class="form-control form-control-sm" value="등록된 파일이 없습니다." readonly>
|
||||||
<button type="button" class="btn btn-sm btn-primary" id="addImgBtn">
|
<button type="button" class="btn btn-sm btn-primary" id="addFileBtn">
|
||||||
<i class="bi bi-plus"></i>
|
<i class="bi bi-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<input class="file d-none" id="updateFile" type="file">
|
||||||
</div>
|
</div>
|
||||||
<!-- <input class="file" type="file" th:unless="${not #strings.isEmpty(info.origNm)}"> -->
|
|
||||||
</th:block>
|
</th:block>
|
||||||
|
|
||||||
<div class="col-1">
|
<div class="col-1">
|
||||||
<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn3"><i class="bi bi-x"></i></button>
|
<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn3"><i class="bi bi-x"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -414,6 +432,7 @@
|
||||||
|
|
||||||
<div class="d-none" id="monitoringInfoFmOrigin">
|
<div class="d-none" id="monitoringInfoFmOrigin">
|
||||||
<div class="row my-1 infoRow" id="monitoringnfoFm">
|
<div class="row my-1 infoRow" id="monitoringnfoFm">
|
||||||
|
<input type="hidden" class="fileYn">
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<input type="text" class="form-control form-control-sm contactDate" placeholder="YYYY-MM-DD" readonly>
|
<input type="text" class="form-control form-control-sm contactDate" placeholder="YYYY-MM-DD" readonly>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@
|
||||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||||
<div class="row justify-content-between">
|
<div class="row justify-content-between">
|
||||||
<div class="col-auto"><h4>모니터링 보고</h4></div>
|
<div class="col-auto"><h4>청산 보고서</h4></div>
|
||||||
<div class="col-auto"><p class="mb-0 mt-2">첩보수집활동 > 해양외사 모니터링 > 모니터링 보고</p></div>
|
<div class="col-auto"><p class="mb-0 mt-2">첩보수집활동 > 해양외사 모니터링 > 청산보고서</p></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mx-0">
|
<div class="row mx-0">
|
||||||
<div class="col-12 card bg-light text-center">
|
<div class="col-12 card bg-light text-center">
|
||||||
|
|
@ -59,7 +59,7 @@
|
||||||
</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="mrTitle" th:value="${searchParams.mrTitle}">
|
<input type="text" class="form-control form-control-sm" placeholder="제목" name="clearTitle" th:value="${searchParams.clearTitle}">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<select class="form-select form-select-sm" name="mrState">
|
<select class="form-select form-select-sm" name="mrState">
|
||||||
|
|
@ -114,7 +114,7 @@
|
||||||
<tbody class="table-group-divider">
|
<tbody class="table-group-divider">
|
||||||
<tr class="resultTr" th:each="list, cnt:${mrList}">
|
<tr class="resultTr" th:each="list, cnt:${mrList}">
|
||||||
<td th:text="${cnt.count}"></td>
|
<td th:text="${cnt.count}"></td>
|
||||||
<td th:text="${list.mrTitle}"></td>
|
<td th:text="${list.clearTitle}"></td>
|
||||||
<td th:text="|${list.mrSdate}~${list.mrEdate}|"></td>
|
<td th:text="|${list.mrSdate}~${list.mrEdate}|"></td>
|
||||||
<td th:text="${list.mdDt}"></td>
|
<td th:text="${list.mdDt}"></td>
|
||||||
<td th:text="${list.mdName}"></td>
|
<td th:text="${list.mdName}"></td>
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
@ -57,6 +57,17 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
<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 th:text="|사유 : ${mr.monitoringReason}|" th:if="${mr.monitoringYn eq 'N'}"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
<div class="row mb-1">
|
<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-11 form-control-sm" id="contentDiv">
|
<div class="col-sm-11 form-control-sm" id="contentDiv">
|
||||||
|
|
@ -157,6 +168,37 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane fade p-2" id="affairListViewTabPanel" role="tabpanel" aria-labelledby="affairListViewTab" tabindex="0">
|
<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>
|
||||||
|
<hr>
|
||||||
|
<h5>증빙자료</h5>
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue