방첩공작 중간저장.

master
강석 최 2023-01-02 19:12:26 +09:00
parent b44e132193
commit 215c45ccdd
9 changed files with 102 additions and 89 deletions

View File

@ -1,5 +1,6 @@
package com.dbnt.faisp.config; package com.dbnt.faisp.config;
import com.dbnt.faisp.main.counterIntelligence.service.CounterIntelligenceService;
import com.dbnt.faisp.main.faRpt.service.FaRptService; import com.dbnt.faisp.main.faRpt.service.FaRptService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.FishingBoatService; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.FishingBoatService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.SailorService; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.SailorService;
@ -42,6 +43,7 @@ public class FileController extends BaseService{
private final BoardInvestigationService boardInvestigationService; private final BoardInvestigationService boardInvestigationService;
private final FishingBoatService fishingBoatService; private final FishingBoatService fishingBoatService;
private final SriService sriService; private final SriService sriService;
private final CounterIntelligenceService ciService;
@GetMapping("/editorFileDisplay") @GetMapping("/editorFileDisplay")
public ResponseEntity<Resource> editorFileDisplay(HttpServletRequest request, public ResponseEntity<Resource> editorFileDisplay(HttpServletRequest request,
@ -137,7 +139,10 @@ public class FileController extends BaseService{
break; break;
case "sri": case "sri":
downloadFile = sriService.selectFaSriFile(parentKey, fileSeq); downloadFile = sriService.selectFaSriFile(parentKey, fileSeq);
break; break;
case "ciWork":
downloadFile = ciService.selectCiWorkFile(parentKey, fileSeq);
break;
} }
return downloadFile; return downloadFile;
} }

View File

@ -48,8 +48,6 @@ public class CounterIntelligenceController {
ModelAndView mav = new ModelAndView("counterIntelligence/ciWorkEditModal"); ModelAndView mav = new ModelAndView("counterIntelligence/ciWorkEditModal");
mav.addObject("ciwrCodeList", codeMgtService.selectCodeMgtList("CIWR")); mav.addObject("ciwrCodeList", codeMgtService.selectCodeMgtList("CIWR"));
mav.addObject("atCodeList", codeMgtService.selectCodeMgtList("AT"));
mav.addObject("at2CodeList", ciWork.getCiwKey()!=null?codeMgtService.selectCodeMgtList(ciWork.getArrestType2()):null);
if(ciWork.getCiwKey()==null){ if(ciWork.getCiwKey()==null){
ciWork.setWrtOrgan(loginUser.getOgCd()); ciWork.setWrtOrgan(loginUser.getOgCd());
ciWork.setWrtPart(loginUser.getOfcCd()); ciWork.setWrtPart(loginUser.getOfcCd());
@ -59,8 +57,10 @@ public class CounterIntelligenceController {
ciWork.setWrtDt(LocalDateTime.now()); ciWork.setWrtDt(LocalDateTime.now());
}else{ }else{
ciWork = ciService.selectCounterIntelligenceWork(ciWork.getCiwKey()); ciWork = ciService.selectCounterIntelligenceWork(ciWork.getCiwKey());
} }
mav.addObject("atCodeList", codeMgtService.selectCodeMgtList("AT"));
mav.addObject("at2CodeList", ciWork.getCiwKey()!=null?codeMgtService.selectCodeMgtList(ciWork.getArrestType1()):null);
mav.addObject("ciWork", ciWork); mav.addObject("ciWork", ciWork);
return mav; return mav;
} }
@ -68,6 +68,8 @@ public class CounterIntelligenceController {
@GetMapping("/ciWorkViewModal") @GetMapping("/ciWorkViewModal")
public ModelAndView ciWorkViewModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceWork ciWork){ public ModelAndView ciWorkViewModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceWork ciWork){
ModelAndView mav = new ModelAndView("counterIntelligence/ciWorkViewModal"); ModelAndView mav = new ModelAndView("counterIntelligence/ciWorkViewModal");
mav.addObject("lineSeparator", '\n');
mav.addObject("viewUserSeq", loginUser.getUserSeq());
mav.addObject("ciWork", ciService.selectCounterIntelligenceWork(ciWork.getCiwKey())); mav.addObject("ciWork", ciService.selectCounterIntelligenceWork(ciWork.getCiwKey()));
return mav; return mav;
} }

View File

@ -1,6 +1,7 @@
package com.dbnt.faisp.main.counterIntelligence.service; package com.dbnt.faisp.main.counterIntelligence.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.config.FileInfo;
import com.dbnt.faisp.main.counterIntelligence.mapper.CounterIntelligenceMapper; import com.dbnt.faisp.main.counterIntelligence.mapper.CounterIntelligenceMapper;
import com.dbnt.faisp.main.counterIntelligence.model.CiwFile; import com.dbnt.faisp.main.counterIntelligence.model.CiwFile;
import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceWork; import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceWork;
@ -99,4 +100,8 @@ public class CounterIntelligenceService extends BaseService {
ciwFileRepository.save(fileInfo); ciwFileRepository.save(fileInfo);
} }
} }
public FileInfo selectCiWorkFile(Integer ciwKey, Integer fileSeq) {
return ciwFileRepository.findById(new CiwFile.CiwFileId(ciwKey, fileSeq)).orElse(null);
}
} }

View File

@ -127,7 +127,7 @@ public class SriService extends BaseService {
} }
public FileInfo selectFaSriFile(Integer faSriKey, Integer fileSeq) { public FileInfo selectFaSriFile(Integer faSriKey, Integer fileSeq) {
return sriFileRepository.findById(new SriFile.SriFileId(faSriKey, fileSeq)).orElse(null); return sriFileRepository.findById(new SriFile.SriFileId(faSriKey, fileSeq)).orElse(null);
} }
@Transactional @Transactional

View File

@ -7,7 +7,7 @@
<sql id="selectCounterIntelligenceWorkListWhere"> <sql id="selectCounterIntelligenceWorkListWhere">
<where> <where>
<if test='wrtUserSeq != null and wrtUserSeq != 0'> <if test='wrtUserSeq != null and wrtUserSeq != 0'>
and (a.wrt_user_seq = #{wrtUserSeq} and a.status = 'DST002') or a.status = 'DST007' and ((a.wrt_user_seq = #{wrtUserSeq} and a.status = 'DST002') or a.status = 'DST007')
</if> </if>
<if test='workRating != null and workRating != ""'> <if test='workRating != null and workRating != ""'>
and a.work_rating = #{workRating} and a.work_rating = #{workRating}

View File

@ -2,7 +2,7 @@ $(document).on('click', '#addCiWorkBtn', function (){
getCiWorkEditModal(null); getCiWorkEditModal(null);
}) })
$(document).on('click', '#arrestType1', function (){ $(document).on('change', '#arrestType1', function (){
getArrestType2Option(this.value); getArrestType2Option(this.value);
}) })
@ -10,6 +10,15 @@ $(document).on('click', '#saveTempBtn,#saveCiWorkBtn', function(){
saveCiWork($(this).attr("data-status")); saveCiWork($(this).attr("data-status"));
}) })
$(document).on('click', '.ciWorkTr', function (){
getCiWorkViewModal($(this).find(".ciwKey").val());
})
$(document).on('click', '#editCiWorkBtn', function (){
$("#ciWorkViewModal").modal('hide');
getCiWorkEditModal($(this).attr("data-ciwkey"));
})
function getCiWorkEditModal(ciwKey){ function getCiWorkEditModal(ciwKey){
$.ajax({ $.ajax({
url: '/counterIntelligence/ciWorkEditModal', url: '/counterIntelligence/ciWorkEditModal',
@ -33,7 +42,7 @@ function getCiWorkEditModal(ciwKey){
}); });
} }
function getCiwViewModal(ciwKey){ function getCiWorkViewModal(ciwKey){
$.ajax({ $.ajax({
url: '/counterIntelligence/ciWorkViewModal', url: '/counterIntelligence/ciWorkViewModal',
data: {ciwKey: ciwKey}, data: {ciwKey: ciwKey},
@ -76,8 +85,8 @@ function saveCiWork(status){
success : function(result) { success : function(result) {
alert("저장되었습니다."); alert("저장되었습니다.");
contentFade("out"); contentFade("out");
$("#affairEditModal").modal('hide'); $("#ciWorkEditModal").modal('hide');
getCiwViewModal(result); getCiWorkViewModal(result);
}, },
error : function(xhr, status) { error : function(xhr, status) {
alert("저장에 실패하였습니다.") alert("저장에 실패하였습니다.")

View File

@ -65,15 +65,15 @@
<select class="form-select form-select-sm" name="arrestType1"> <select class="form-select form-select-sm" name="arrestType1">
<option value="">검거유형1</option> <option value="">검거유형1</option>
<th:block th:each="code:${session.commonCode.get('AT')}"> <th:block th:each="code:${session.commonCode.get('AT')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.workRating}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType1}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-2"> <div class="col-2">
<select class="form-select form-select-sm" name="arrestType2"> <select class="form-select form-select-sm" name="arrestType2">
<option value="">검거유형2</option> <option value="">검거유형2</option>
<th:block th:each="code:${session.commonCode.get('AT2')}"> <th:block th:each="code:${session.commonCode.get(arrestType1)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.workRating}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType2}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
@ -129,7 +129,7 @@
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider"> <tbody class="table-group-divider">
<tr class="faRptTr" th:each="ciWork:${ciWorkList}"> <tr class="ciWorkTr" th:each="ciWork:${ciWorkList}">
<input type="hidden" class="ciwKey" th:value="${ciWork.ciwKey}"> <input type="hidden" class="ciwKey" th:value="${ciWork.ciwKey}">
<td> <td>
<th:block th:each="code:${session.commonCode.get('CIWR')}"> <th:block th:each="code:${session.commonCode.get('CIWR')}">

View File

@ -34,6 +34,12 @@
<input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(ciWork.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly> <input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(ciWork.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly>
</div> </div>
</div> </div>
<div class="row mb-1">
<label for="title" 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="title" name="title" th:value="${ciWork.title}">
</div>
</div>
<div class="row mb-1"> <div class="row mb-1">
<label for="workStartDate" class="col-sm-1 col-form-label col-form-label-sm text-center">착수일</label> <label for="workStartDate" class="col-sm-1 col-form-label col-form-label-sm text-center">착수일</label>
<div class="col-sm-2"> <div class="col-sm-2">
@ -58,7 +64,7 @@
<select class="form-select form-select-sm" id="workRating" name="workRating"> <select class="form-select form-select-sm" id="workRating" name="workRating">
<option value="">선택해주세요.</option> <option value="">선택해주세요.</option>
<th:block th:each="code:${ciwrCodeList}"> <th:block th:each="code:${ciwrCodeList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq ciWork.arrestType1}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq ciWork.workRating}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
@ -76,17 +82,11 @@
<select class="form-select form-select-sm" id="arrestType2" name="arrestType2"> <select class="form-select form-select-sm" id="arrestType2" name="arrestType2">
<option value="">선택해주세요.</option> <option value="">선택해주세요.</option>
<th:block th:each="code:${at2CodeList}"> <th:block th:each="code:${at2CodeList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq ciWork.arrestType1}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq ciWork.arrestType2}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
</div> </div>
<div class="row mb-1">
<label for="title" 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="title" name="title" th:value="${ciWork.title}">
</div>
</div>
<div class="row mb-1 justify-content-center"> <div class="row mb-1 justify-content-center">
<label for="summaryInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">사건개요</label> <label for="summaryInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">사건개요</label>
<div class="col-sm-11"> <div class="col-sm-11">

View File

@ -1,80 +1,75 @@
<!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="faRptViewModalLabel">외사정보보고 열람</h5> <h5 class="modal-title text-white" id="ciWorkViewModalLabel">방첩공작 열람</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="faRptViewBody"> <div class="modal-body" id="ciWorkViewBody">
<input type="hidden" id="faRptKey" th:value="${faRpt.faRptKey}"> <input type="hidden" id="ciwKey" th:value="${ciWork.ciwKey}">
<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"> <li class="nav-item" role="presentation" th:if="${#lists.size(ciWork.fileList)>0}">
<button class="nav-link" id="readUserTab" data-bs-toggle="tab" data-bs-target="#readUserTabPanel" type="button" role="tab" aria-controls="readUserTabPanel" aria-selected="false">수신자</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(ciWork.fileList), ')')}"></button>
</li>
<li class="nav-item" role="presentation" th:if="${#lists.size(faRpt.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(faRpt.fileList), ')')}"></button>
</li> </li>
</ul> </ul>
<div class="tab-content bg-white border border-top-0 p-2"> <div class="tab-content bg-white border border-top-0 p-2">
<div class="tab-pane fade p-2 show active" id="boardTabPanel" role="tabpanel" tabindex="0"> <div class="tab-pane fade p-2 show active" id="boardTabPanel" role="tabpanel" tabindex="0">
<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> <div class="col-sm-9"></div>
<label class="col-sm-2 col-form-label col-form-label-sm text-start"> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">작성일시</label>
<th:block th:each="code:${session.commonCode.get('FRC')}"> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.wrtDt, 'yyyy-MM-dd HH:mm')}"></label>
<th:block th:if="${code.itemCd eq faRpt.faRptType}" th:text="${code.itemValue}"></th:block> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">공작명</label>
</th:block> <label class="col-sm-8 col-form-label col-form-label-sm text-start" th:text="|${ciWork.status eq 'DST002'?'[임시] ':''}${ciWork.title}|"></label>
</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">작성자</label>
<div class="col-6"></div> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${ciWork.wrtUserNm}"></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="${#temporals.format(faRpt.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-8 col-form-label col-form-label-sm text-start" th:text="${faRpt.title}"></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="${faRpt.wrtUserNm}"></label>
</div>
<hr class="my-1">
<div class="row mb-1 justify-content-center">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">내용</label>
<div class="col-sm-11 form-control-sm" th:utext="${faRpt.content}"></div>
</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">해시태그</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="${faRpt.hashTags}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.workStartDate, 'yyyy-MM-dd')}"></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(ciWork.workEndDate, 'yyyy-MM-dd')}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">1차재평가</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.reRatingDate1, 'yyyy-MM-dd')}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">2차재평가</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.reRatingDate2, 'yyyy-MM-dd')}"></label>
</div> </div>
</div> <div class="row mb-1">
<div class="tab-pane fade p-2" id="readUserTabPanel" role="tabpanel" tabindex="0"> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">등급</label>
<div class="row"> <label class="col-sm-2 col-form-label col-form-label-sm text-start">
<div class="col-1">no</div> <th:block th:each="code:${session.commonCode.get('CIWR')}">
<div class="col-9">수신자</div> <th:block th:if="${code.itemCd eq ciWork.workRating}" th:text="${code.itemValue}"></th:block>
<div class="col-2">열람</div> </th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">검거유형1</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
<th:block th:each="code:${session.commonCode.get('AT')}">
<th:block th:if="${code.itemCd eq ciWork.arrestType1}" 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">검거유형2</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
<th:block th:each="code:${session.commonCode.get(ciWork.arrestType1)}">
<th:block th:if="${code.itemCd eq ciWork.arrestType2}" th:text="${code.itemValue}"></th:block>
</th:block>
</label>
</div> </div>
<hr class="my-1"> <hr class="my-1">
<div class="row"> <div class="row mb-1">
<div class="col-12"> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">사건개요</label>
<th:block th:each="readUser, idx:${faRpt.readUserList}"> <div class="col-sm-11 form-control-sm" th:utext="${#strings.replace(ciWork.summaryInfo, lineSeparator, '<br>')}"></div>
<div class="row my-1"> </div>
<div class="col-1" th:text="${idx.index+1}"></div> <hr class="my-1">
<div class="col-9"> <div class="row mb-1">
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">내용</label>
<th:block th:if="${commonCode.itemCd eq readUser.ogCd}" th:text="${commonCode.itemValue}"></th:block> <div class="col-sm-11 form-control-sm" th:utext="${ciWork.content}"></div>
</th:block> </div>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}"> <hr class="my-1">
<th:block th:if="${commonCode.itemCd eq readUser.ofcCd}" th:text="${commonCode.itemValue}"></th:block> <div class="row mb-1">
</th:block> <label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">해시태그</label>
<!--<th:block th:each="commonCode:${session.commonCode.get('JT')}"> <label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${ciWork.hashTags}"></label>
<th:block th:if="${commonCode.itemCd eq readUser.titleCd}" th:text="|${commonCode.itemValue} ${readUser.userNm}|"></th:block>
</th:block>-->
<th:block th:text="${readUser.userNm}"></th:block>
</div>
<div class="col-2">
<th:block th:text="${readUser.readYn eq 'T'?'O':'X'}"></th:block>
</div>
</div>
</th:block>
</div>
</div> </div>
</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">
@ -88,17 +83,17 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<th:block th:if="${#lists.isEmpty(faRpt.fileList)}"> <th:block th:if="${#lists.isEmpty(ciWork.fileList)}">
<tr> <tr>
<td colspan="2">파일이 없습니다.</td> <td colspan="2">파일이 없습니다.</td>
</tr> </tr>
</th:block> </th:block>
<th:block th:unless="${#lists.isEmpty(faRpt.fileList)}"> <th:block th:unless="${#lists.isEmpty(ciWork.fileList)}">
<th:block th:each="file:${faRpt.fileList}"> <th:block th:each="file:${ciWork.fileList}">
<tr class="fileInfoTr"> <tr class="fileInfoTr">
<td> <td>
<a href="#" class="fileDownLink" data-board="faRpt" <a href="#" class="fileDownLink" data-board="ciWork"
th:data-parentkey="${file.faRptKey}" th:data-fileseq="${file.fileSeq}" th:data-parentkey="${file.ciwKey}" th:data-fileseq="${file.fileSeq}"
th:text="|${file.origNm}.${file.fileExtn}|"></a> th:text="|${file.origNm}.${file.fileExtn}|"></a>
</td> </td>
<td th:text="${file.fileSize}"></td> <td th:text="${file.fileSize}"></td>
@ -113,11 +108,8 @@
</div> </div>
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<th:block th:if="${userSeq eq faRpt.wrtUserSeq}"> <th:block th:if="${viewUserSeq eq ciWork.wrtUserSeq}">
<button type="button" class="btn btn-warning" id="editFaRptBtn" th:data-farptkey="${faRpt.faRptKey}">수정</button> <button type="button" class="btn btn-warning" id="editCiWorkBtn" th:data-ciwkey="${ciWork.ciwKey}">수정</button>
</th:block>
<th:block th:if="${userSeq ne faRpt.wrtUserSeq}">
<button type="button" class="btn btn-success" id="reSendBtn" th:data-farptkey="${faRpt.faRptKey}">회신</button>
</th:block> </th:block>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
</div> </div>