fix : 방첩활동 중간저장
parent
ad417c81d4
commit
54c423bfa5
|
|
@ -158,6 +158,9 @@ public class CounterIntelligenceController {
|
|||
case "FI": // 외국인커뮤니티모니터링
|
||||
ciService.saveForeigner(cia);
|
||||
break;
|
||||
case "EI": // 방첩교육실시
|
||||
ciService.saveEdu(cia);
|
||||
break;
|
||||
}
|
||||
|
||||
return ciKey;
|
||||
|
|
@ -223,7 +226,7 @@ public class CounterIntelligenceController {
|
|||
public ModelAndView ciaForeignerEditModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
|
||||
ModelAndView mav = new ModelAndView("counterIntelligence/ciaForeignerEditModal");
|
||||
if(cia.getCiKey() != null) {
|
||||
cia = ciService.selectManageCompanyInfo(cia);
|
||||
cia = ciService.selectForeignerInfo(cia);
|
||||
}
|
||||
|
||||
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
||||
|
|
@ -231,4 +234,47 @@ public class CounterIntelligenceController {
|
|||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/ciaForeignerViewModal")
|
||||
public ModelAndView ciaForeignerViewModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
|
||||
ModelAndView mav = new ModelAndView("counterIntelligence/ciaForeignerViewModal");
|
||||
mav.addObject("lineSeparator", '\n');
|
||||
mav.addObject("viewUserSeq", loginUser.getUserSeq());
|
||||
mav.addObject("cia", ciService.selectForeignerInfo(cia));
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/ciaEduList")
|
||||
public ModelAndView ciaEduList(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
|
||||
ModelAndView mav = new ModelAndView("counterIntelligence/ciaEduList");
|
||||
|
||||
cia.setDownOrganCdList(loginUser.getDownOrganCdList());
|
||||
cia.setQueryInfo();
|
||||
mav.addObject("eiList", ciService.selectCiaEduList(cia));
|
||||
cia.setContentCnt(ciService.selectCiaEduListCnt(cia));
|
||||
cia.setPaginationInfo();
|
||||
mav.addObject("searchParams", cia);
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/ciaEduEditModal")
|
||||
public ModelAndView ciaEduEditModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
|
||||
ModelAndView mav = new ModelAndView("counterIntelligence/ciaEduEditModal");
|
||||
if(cia.getCiKey() != null) {
|
||||
cia = ciService.selectEduInfo(cia);
|
||||
}
|
||||
|
||||
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
||||
mav.addObject("cia", cia);
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/ciaEduViewModal")
|
||||
public ModelAndView ciaEduViewModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
|
||||
ModelAndView mav = new ModelAndView("counterIntelligence/ciaEduViewModal");
|
||||
mav.addObject("lineSeparator", '\n');
|
||||
mav.addObject("viewUserSeq", loginUser.getUserSeq());
|
||||
mav.addObject("cia", ciService.selectEduInfo(cia));
|
||||
return mav;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,4 +34,8 @@ public interface CounterIntelligenceMapper {
|
|||
List<ForeignerInfo> selectCiaForeignerList(CounterIntelligenceActivity cia);
|
||||
|
||||
Integer selectCiaForeignerListCnt(CounterIntelligenceActivity cia);
|
||||
|
||||
List<CounterIntelligenceActivity> selectCiaEduList(CounterIntelligenceActivity cia);
|
||||
|
||||
Integer selectCiaEduListCnt(CounterIntelligenceActivity cia);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@ public class CounterIntelligenceActivity extends BaseModel {
|
|||
@Transient
|
||||
private ForeignerInfo foreignerInfo;
|
||||
@Transient
|
||||
private EduInfo eduInfo;
|
||||
@Transient
|
||||
private String mgtOrgan;
|
||||
@Transient
|
||||
private String companyNm;
|
||||
|
|
@ -86,6 +88,13 @@ public class CounterIntelligenceActivity extends BaseModel {
|
|||
private String monitoringInfo;
|
||||
@Transient
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate eduDate;
|
||||
@Transient
|
||||
private String eduType;
|
||||
@Transient
|
||||
private Integer peopleCnt;
|
||||
@Transient
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate fixDate;
|
||||
@Transient
|
||||
private List<CiaFile> fileList;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
package com.dbnt.faisp.main.counterIntelligence.model;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicUpdate;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@NoArgsConstructor
|
||||
@DynamicInsert
|
||||
@DynamicUpdate
|
||||
@Table(name = "edu_info")
|
||||
public class EduInfo {
|
||||
@Id
|
||||
@Column(name = "ci_key")
|
||||
private Integer ciKey;
|
||||
@Column(name = "mgt_organ")
|
||||
private String mgtOrgan;
|
||||
@Column(name = "edu_date")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate eduDate;
|
||||
@Column(name = "edu_type")
|
||||
private String eduType;
|
||||
@Column(name = "people_cnt")
|
||||
private Integer peopleCnt;
|
||||
@Column(name = "description")
|
||||
private String description;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package com.dbnt.faisp.main.counterIntelligence.repository;
|
||||
|
||||
import com.dbnt.faisp.main.counterIntelligence.model.EduInfo;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
|
||||
public interface EduInfoRepository extends JpaRepository<EduInfo, Integer> {
|
||||
|
||||
}
|
||||
|
|
@ -8,6 +8,7 @@ import com.dbnt.faisp.main.counterIntelligence.model.CiaFile;
|
|||
import com.dbnt.faisp.main.counterIntelligence.model.CiwFile;
|
||||
import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceActivity;
|
||||
import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceWork;
|
||||
import com.dbnt.faisp.main.counterIntelligence.model.EduInfo;
|
||||
import com.dbnt.faisp.main.counterIntelligence.model.ForeignerInfo;
|
||||
import com.dbnt.faisp.main.counterIntelligence.model.HashTagLinkCiw;
|
||||
import com.dbnt.faisp.main.counterIntelligence.model.ManageCompanyInfo;
|
||||
|
|
@ -16,6 +17,7 @@ import com.dbnt.faisp.main.counterIntelligence.repository.CiaFileRepository;
|
|||
import com.dbnt.faisp.main.counterIntelligence.repository.CiwFileRepository;
|
||||
import com.dbnt.faisp.main.counterIntelligence.repository.CounterIntelligenceActivityRepository;
|
||||
import com.dbnt.faisp.main.counterIntelligence.repository.CounterIntelligenceWorkRepository;
|
||||
import com.dbnt.faisp.main.counterIntelligence.repository.EduInfoRepository;
|
||||
import com.dbnt.faisp.main.counterIntelligence.repository.ForeignerInfoRepository;
|
||||
import com.dbnt.faisp.main.counterIntelligence.repository.HashTagLinkCiwRepository;
|
||||
import com.dbnt.faisp.main.counterIntelligence.repository.ManageCompanyInfoRepository;
|
||||
|
|
@ -42,6 +44,7 @@ public class CounterIntelligenceService extends BaseService {
|
|||
private final SaftyDemandInfoRepository saftyDemandInfoRepository;
|
||||
private final ManageCompanyInfoRepository manageCompanyInfoRepository;
|
||||
private final ForeignerInfoRepository foreignerInfoRepository;
|
||||
private final EduInfoRepository eduInfoRepository;
|
||||
private final CounterIntelligenceMapper ciMapper;
|
||||
|
||||
public List<CounterIntelligenceWork> selectCounterIntelligenceWorkList(CounterIntelligenceWork ciWork){
|
||||
|
|
@ -270,4 +273,42 @@ public class CounterIntelligenceService extends BaseService {
|
|||
return ciMapper.selectCiaForeignerListCnt(cia);
|
||||
}
|
||||
|
||||
public CounterIntelligenceActivity selectForeignerInfo(CounterIntelligenceActivity cia) {
|
||||
CounterIntelligenceActivity dbCia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(null);
|
||||
if(dbCia!=null){
|
||||
dbCia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
|
||||
dbCia.setForeignerInfo(foreignerInfoRepository.findById(cia.getCiKey()).orElse(null));
|
||||
}
|
||||
return dbCia;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void saveEdu(CounterIntelligenceActivity cia) {
|
||||
EduInfo ei = new EduInfo();
|
||||
ei.setCiKey(cia.getCiKey());
|
||||
ei.setMgtOrgan(cia.getMgtOrgan());
|
||||
ei.setEduType(cia.getEduType());
|
||||
ei.setEduDate(cia.getEduDate());
|
||||
ei.setPeopleCnt(cia.getPeopleCnt());
|
||||
ei.setDescription(cia.getDescription());
|
||||
eduInfoRepository.save(ei);
|
||||
}
|
||||
|
||||
public List<CounterIntelligenceActivity> selectCiaEduList(CounterIntelligenceActivity cia) {
|
||||
return ciMapper.selectCiaEduList(cia);
|
||||
}
|
||||
|
||||
public Integer selectCiaEduListCnt(CounterIntelligenceActivity cia) {
|
||||
return ciMapper.selectCiaEduListCnt(cia);
|
||||
}
|
||||
|
||||
public CounterIntelligenceActivity selectEduInfo(CounterIntelligenceActivity cia) {
|
||||
CounterIntelligenceActivity dbCia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(null);
|
||||
if(dbCia!=null){
|
||||
dbCia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
|
||||
dbCia.setEduInfo(eduInfoRepository.findById(cia.getCiKey()).orElse(null));
|
||||
}
|
||||
return dbCia;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -245,6 +245,8 @@
|
|||
fi.select_reason,
|
||||
fi.monitoring_info,
|
||||
fi.fix_date,
|
||||
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
|
||||
cia.wrt_user_nm,
|
||||
cia.wrt_dt
|
||||
from counter_intelligence_activity cia,
|
||||
foreigner_info fi
|
||||
|
|
@ -269,6 +271,8 @@
|
|||
fi.select_reason,
|
||||
fi.monitoring_info,
|
||||
fi.fix_date,
|
||||
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
|
||||
cia.wrt_user_nm,
|
||||
cia.wrt_dt
|
||||
from counter_intelligence_activity cia,
|
||||
foreigner_info fi
|
||||
|
|
@ -280,5 +284,49 @@
|
|||
ORDER BY cia.ci_key DESC
|
||||
)a
|
||||
</select>
|
||||
|
||||
<select id="selectCiaEduList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
|
||||
select cia.ci_key,
|
||||
(select item_value from code_mgt where item_cd = ei.mgt_organ) as mgt_organ,
|
||||
ei.edu_date,
|
||||
ei.edu_type,
|
||||
ei.people_cnt,
|
||||
ei.description,
|
||||
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
|
||||
cia.wrt_user_nm,
|
||||
cia.wrt_dt
|
||||
from counter_intelligence_activity cia,
|
||||
edu_info ei
|
||||
where cia.ci_key = ei.ci_key
|
||||
and ei.mgt_organ in
|
||||
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
ORDER BY cia.ci_key DESC
|
||||
LIMIT #{rowCnt} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<select id="selectCiaEduListCnt" parameterType="CounterIntelligenceActivity" resultType="Integer">
|
||||
select count(*)
|
||||
from(
|
||||
select cia.ci_key,
|
||||
(select item_value from code_mgt where item_cd = ei.mgt_organ) as mgt_organ,
|
||||
ei.edu_date,
|
||||
ei.edu_type,
|
||||
ei.people_cnt,
|
||||
ei.description,
|
||||
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
|
||||
cia.wrt_user_nm,
|
||||
cia.wrt_dt
|
||||
from counter_intelligence_activity cia,
|
||||
edu_info ei
|
||||
where cia.ci_key = ei.ci_key
|
||||
and ei.mgt_organ in
|
||||
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
ORDER BY cia.ci_key DESC
|
||||
)a
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
$(document).on('click', '#addBtn', function (){
|
||||
getCiaEduEditModal(null);
|
||||
})
|
||||
|
||||
function getCiaEduEditModal(ciKey){
|
||||
$.ajax({
|
||||
url: '/counterIntelligence/ciaEduEditModal',
|
||||
data: {ciKey: ciKey},
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#ciaEduEditModalContent").empty().append(html);
|
||||
$("#eduDate").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko",
|
||||
autoclose: true
|
||||
});
|
||||
setUploadDiv();
|
||||
$("#ciaEduEditModal").modal('show');
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on('click', '#saveBtn', function (){
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
const formData = new FormData($("#ciaEduEditForm")[0]);
|
||||
for(const file of files) {
|
||||
if(!file.isDelete)
|
||||
formData.append('uploadFiles', file, file.name);
|
||||
}
|
||||
$(".text-decoration-line-through").each(function (idx, el){
|
||||
formData.append('fileSeq', $(el).attr("data-fileseq"));
|
||||
})
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : formData,
|
||||
url : "/counterIntelligence/saveCiActivity",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(result) {
|
||||
alert("저장되었습니다.");
|
||||
contentFade("out");
|
||||
location.reload();
|
||||
},
|
||||
error : function(xhr, status) {
|
||||
alert("저장에 실패하였습니다.")
|
||||
contentFade("out");
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
$(document).on('click', '.eiTr', function (){
|
||||
getCiaEduViewModal($(this).find(".ciKey").val());
|
||||
})
|
||||
|
||||
function getCiaEduViewModal(ciKey){
|
||||
$.ajax({
|
||||
url: '/counterIntelligence/ciaEduViewModal',
|
||||
data: {ciKey: ciKey},
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#ciaEduViewModalBody").empty().append(html)
|
||||
$("#ciaEduViewModal").modal('show');
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on('click', '#editBtn', function (){
|
||||
$("#ciaEduViewModal").modal('hide');
|
||||
getCiaEduEditModal($(this).attr("data-cikey"));
|
||||
})
|
||||
|
||||
$(document).on('click', '#excelDown', function (){
|
||||
exportExcel("방첩교육 실시 현황","ciaEduTb");
|
||||
})
|
||||
|
||||
|
|
@ -56,19 +56,19 @@ $(document).on('click', '#saveBtn', function (){
|
|||
}
|
||||
})
|
||||
|
||||
$(document).on('click', '.mciTr', function (){
|
||||
getCiaManageCompanyViewModal($(this).find(".ciKey").val());
|
||||
$(document).on('click', '.fiTr', function (){
|
||||
getCiaForeignerViewModal($(this).find(".ciKey").val());
|
||||
})
|
||||
|
||||
function getCiaManageCompanyViewModal(ciKey){
|
||||
function getCiaForeignerViewModal(ciKey){
|
||||
$.ajax({
|
||||
url: '/counterIntelligence/ciaManageCompanyViewModal',
|
||||
url: '/counterIntelligence/ciaForeignerViewModal',
|
||||
data: {ciKey: ciKey},
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#ciaManageCompanyViewModalBody").empty().append(html)
|
||||
$("#ciaManageCompanyViewModal").modal('show');
|
||||
$("#ciaForeignerViewModalBody").empty().append(html)
|
||||
$("#ciaForeignerViewModal").modal('show');
|
||||
},
|
||||
error:function(){
|
||||
|
||||
|
|
@ -77,6 +77,14 @@ function getCiaManageCompanyViewModal(ciKey){
|
|||
}
|
||||
|
||||
$(document).on('click', '#editBtn', function (){
|
||||
$("#ciaManageCompanyViewModal").modal('hide');
|
||||
getCiaManageCompanyEditModal($(this).attr("data-cikey"));
|
||||
$("#ciaForeignerViewModal").modal('hide');
|
||||
getCiaForeignerEditModal($(this).attr("data-cikey"));
|
||||
})
|
||||
|
||||
$(document).on('click', '#excelDown', function (){
|
||||
exportExcel("외국인 커뮤니티 모니터링 현황","ciaForeignerTb");
|
||||
})
|
||||
|
||||
function OnInitCompleted(e){
|
||||
e.editorTarget.SetBodyValue(document.getElementById("monitoringInfo").value);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,125 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<div class="modal-header bg-dark">
|
||||
<h5 class="modal-title text-white" th:text="${cia.ciKey eq null?'방첩교육 실시 현황 등록':'방첩교육 실시 현황 수정'}"></h5>
|
||||
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body" id="ciaEduEditBody">
|
||||
<form action="#" method="post" id="ciaEduEditForm">
|
||||
<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="ciType" value="EI">
|
||||
<input type="hidden" name="ciKey" th:value="${cia.ciKey}">
|
||||
<input type="hidden" name="wrtOrgan" th:value="${cia.wrtOrgan}">
|
||||
<input type="hidden" name="wrtPart" th:value="${cia.wrtPart}">
|
||||
<input type="hidden" name="wrtUserSeq" th:value="${cia.wrtUserSeq}">
|
||||
<input type="hidden" name="wrtUserGrd" th:value="${cia.wrtUserGrd}">
|
||||
<input type="hidden" name="wrtUserNm" th:value="${cia.wrtUserNm}">
|
||||
<input type="hidden" name="wrtDt" th:value="${#temporals.format(cia.wrtDt, 'yyyy-MM-dd HH:mm')}">
|
||||
<th:block th:if="${cia.ciKey eq null}">
|
||||
<div class="row mb-1">
|
||||
<label for="wrtNm" class="col-sm-1 col-form-label col-form-label-sm text-center">시행관서</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select" id="mgtOrgan" name="mgtOrgan">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="wrtDt" 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="eduDate" name="eduDate" readonly>
|
||||
</div>
|
||||
<label for="wrtDt" 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" placeholder="작성일자동입력" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="wrtNm" 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="eduType" name="eduType">
|
||||
</div>
|
||||
<label for="wrtDt" class="col-sm-1 col-form-label col-form-label-sm text-center">교육인원</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" class="form-control form-control-sm" id="peopleCnt" name="peopleCnt">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="contentInfoDiv" class="col-sm-1 col-form-label col-form-label-sm text-center">내용/비고</label>
|
||||
<div class="col-sm-11" id="contentInfoDiv">
|
||||
<textarea class="form-control form-control-sm" rows="5" cols="30" name="description"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block th:unless="${cia.ciKey eq null}">
|
||||
<div class="row mb-1">
|
||||
<label for="wrtNm" class="col-sm-1 col-form-label col-form-label-sm text-center">시행관서</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select" id="mgtOrgan" name="mgtOrgan">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${cia.eduInfo.mgtOrgan eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="wrtDt" 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="eduDate" name="eduDate" th:value="${cia.eduInfo.eduDate}" readonly>
|
||||
</div>
|
||||
<label for="wrtDt" 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" placeholder="작성일자동입력" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="wrtNm" 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="eduType" name="eduType" th:value="${cia.eduInfo.eduType}">
|
||||
</div>
|
||||
<label for="wrtDt" class="col-sm-1 col-form-label col-form-label-sm text-center">교육인원</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" class="form-control form-control-sm" id="peopleCnt" name="peopleCnt" th:value="${cia.eduInfo.peopleCnt}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="contentInfoDiv" class="col-sm-1 col-form-label col-form-label-sm text-center">내용/비고</label>
|
||||
<div class="col-sm-11" id="contentInfoDiv">
|
||||
<textarea class="form-control form-control-sm" rows="5" cols="30" name="description" th:utext="${cia.eduInfo.description}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<div class="row mb-1">
|
||||
<label for="fileInputer" class="col-sm-1 col-form-label col-form-label-sm text-center">첨부파일</label>
|
||||
<div class="col-sm-11" style="min-height: 70px;">
|
||||
<div class="w-100 h-100 border border-info rounded text-center" id="uploadDiv">
|
||||
<th:block th:if="${#arrays.isEmpty(cia.fileList)}">
|
||||
<br>파일을 업로드 해주세요.
|
||||
</th:block>
|
||||
<th:block th:unless="${#arrays.isEmpty(cia.fileList)}">
|
||||
<div class='row-col-6' th:each="file:${cia.fileList}">
|
||||
<span th:data-fileseq="${file.fileSeq}" th:text="|${file.origNm}.${file.fileExtn} ${file.fileSize}|"></span>
|
||||
<a href='#' class='uploadedFileDelete text-danger text-decoration-none'>삭제</a>
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
<input type="file" class="d-none" id="fileInputer" multiple>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<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>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{layout/layout}">
|
||||
<th:block layout:fragment="script">
|
||||
<script type="text/javascript" th:src="@{/js/counterIntelligence/ciaEdu.js}"></script>
|
||||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<h4>방첩교육 실시 현황</h4>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<p class="mb-0 mt-2">외사방첩관리 > 방첩활동 > 방첩교육 실시 현황</p>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<div class="tab-content bg-white border border-top-0 p-2">
|
||||
<form method="get" th:action="@{/counterIntelligence/ciaEduList}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<!-- <div class="row">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-2" th:if="${accessAuth eq 'ACC003'}">
|
||||
<select class="form-select form-select-sm" name="wrtOrgan">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="code:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(downOrganCdList, code.itemCd)}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.wrtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="workRating">
|
||||
<option value="">등급</option>
|
||||
<th:block th:each="code:${session.commonCode.get('CIWR')}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.workRating}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="arrestType1">
|
||||
<option value="">검거유형1</option>
|
||||
<th:block th:each="code:${session.commonCode.get('AT')}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType1}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="arrestType2">
|
||||
<option value="">검거유형2</option>
|
||||
<th:block th:each="code:${session.commonCode.get(arrestType1)}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType2}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group input-daterange" id="dateSelectorDiv">
|
||||
<select class="form-select form-select-sm w-30" name="dateSelector">
|
||||
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>
|
||||
<option value="workStartDate" th:selected="${searchParams.dateSelector eq 'workStartDate'}">착수일</option>
|
||||
<option value="workEndDate" th:selected="${searchParams.dateSelector eq 'workEndDate'}">종결일</option>
|
||||
<option value="reRatingDate1" th:selected="${searchParams.dateSelector eq 'reRatingDate1'}">1차재평가</option>
|
||||
<option value="reRatingDate2" th:selected="${searchParams.dateSelector eq 'reRatingDate2'}">2차재평가</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}">
|
||||
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-2">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-bordered table-hover" id="ciaEduTb">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>시행일자</th>
|
||||
<th>시행관서</th>
|
||||
<th>교육방식</th>
|
||||
<th>교육인원</th>
|
||||
<th>비고</th>
|
||||
<th>작성자</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="eiTr" th:each="list:${eiList}">
|
||||
<td th:text="${list.eduDate}"></td>
|
||||
<td th:text="${list.mgtOrgan}"></td>
|
||||
<td th:text="${list.eduType}"></td>
|
||||
<td th:text="${list.peopleCnt}"></td>
|
||||
<td th:utext="${list.description}"></td>
|
||||
<td th:text="|${list.wrtUserGrd} ${list.wrtUserNm}|"></td>
|
||||
<th:block>
|
||||
<input type="hidden" class="ciKey" th:value="${list.ciKey}">
|
||||
</th:block>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto"></div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
|
||||
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
|
||||
<a class="page-link" href="#" th:text="${num}"></a>
|
||||
</li>
|
||||
</th:block>
|
||||
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
|
||||
<a class="page-link" href="#" aria-label="Next">
|
||||
<span aria-hidden="true">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="button" class="btn btn-success" value="등록" id="addBtn" th:unless="${accessAuth eq 'ACC001'}">
|
||||
<button type="button" class="btn btn-success" id="excelDown" th:unless="${accessAuth eq 'ACC001'}">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="modal fade" id="ciaEduEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="ciWorkModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-scrollable">
|
||||
<div class="modal-content" id="ciaEduEditModalContent">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="ciaEduViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="ciWorkModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-scrollable">
|
||||
<div class="modal-content" id="ciaEduViewModalBody">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<div class="modal-header bg-dark">
|
||||
<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>
|
||||
</div>
|
||||
<div class="modal-body" id="ciWorkViewBody">
|
||||
<ul class="nav nav-tabs" id="userTab" role="tablist">
|
||||
<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>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation" th:if="${#lists.size(cia.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(cia.fileList), ')')}"></button>
|
||||
</li>
|
||||
</ul>
|
||||
<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="row mb-1">
|
||||
<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:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:if="${commonCode.itemCd eq cia.wrtUserGrd}" th:text="|${commonCode.itemValue} ${cia.wrtUserNm}|"></option>
|
||||
</th:block>
|
||||
</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(cia.wrtDt, 'yyyy-MM-dd HH:mm')}"></label>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<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:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<option th:value="${commonCode.itemCd}" th:if="${commonCode.itemCd eq cia.eduInfo.mgtOrgan}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</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="${cia.eduInfo.eduDate}"></label>
|
||||
</div>
|
||||
<hr class="my-1">
|
||||
<div class="row mb-1">
|
||||
<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="${cia.eduInfo.eduType}"></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="${cia.eduInfo.peopleCnt}"></label>
|
||||
</div>
|
||||
<hr class="my-1">
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">내용/비고</label>
|
||||
<div class="col-sm-11 form-control-sm" th:utext="${#strings.replace(cia.eduInfo.description, lineSeparator, '<br>')}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade p-2" id="fileTabPanel" role="tabpanel" tabindex="0">
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-12">
|
||||
<table class="table table-sm" id="fileTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>파일명</th>
|
||||
<th>사이즈</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<th:block th:if="${#lists.isEmpty(cia.fileList)}">
|
||||
<tr>
|
||||
<td colspan="2">파일이 없습니다.</td>
|
||||
</tr>
|
||||
</th:block>
|
||||
<th:block th:unless="${#lists.isEmpty(cia.fileList)}">
|
||||
<th:block th:each="file:${cia.fileList}">
|
||||
<tr class="fileInfoTr">
|
||||
<td>
|
||||
<a href="#" class="fileDownLink" data-board="ciWork"
|
||||
th:data-parentkey="${file.ciKey}" th:data-fileseq="${file.fileSeq}"
|
||||
th:text="|${file.origNm}.${file.fileExtn}|"></a>
|
||||
</td>
|
||||
<td th:text="${file.fileSize}"></td>
|
||||
</tr>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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>
|
||||
<th:block th:if="${accessAuth eq 'ACC003'}">
|
||||
<button type="button" class="btn btn-danger" id="deleteCiWorkBtn" th:data-cikey="${cia.ciKey}">삭제</button>
|
||||
</th:block>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<th:block th:if="${viewUserSeq eq cia.wrtUserSeq}">
|
||||
<button type="button" class="btn btn-warning" id="editBtn" th:data-cikey="${cia.ciKey}">수정</button>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -9,13 +9,14 @@
|
|||
<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="ciType" value="FI">
|
||||
<!-- <input type="hidden" name="ciKey" th:value="${cia.ciKey}">
|
||||
<input type="hidden" name="ciKey" th:value="${cia.ciKey}">
|
||||
<input type="hidden" name="wrtOrgan" th:value="${cia.wrtOrgan}">
|
||||
<input type="hidden" name="wrtPart" th:value="${cia.wrtPart}">
|
||||
<input type="hidden" name="wrtUserSeq" th:value="${cia.wrtUserSeq}">
|
||||
<input type="hidden" name="wrtUserGrd" th:value="${cia.wrtUserGrd}">
|
||||
<input type="hidden" name="wrtUserNm" th:value="${cia.wrtUserNm}">
|
||||
<input type="hidden" name="wrtDt" th:value="${#temporals.format(cia.wrtDt, 'yyyy-MM-dd HH:mm')}"> -->
|
||||
<input type="hidden" name="wrtDt" th:value="${#temporals.format(cia.wrtDt, 'yyyy-MM-dd HH:mm')}">
|
||||
<th:block th:if="${cia.ciKey eq null}">
|
||||
<div class="row mb-1">
|
||||
<label for="wrtNm" class="col-sm-1 col-form-label col-form-label-sm text-center">관리관서</label>
|
||||
<div class="col-sm-2">
|
||||
|
|
@ -23,8 +24,7 @@
|
|||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:if="${cia.ciKey eq null}"></option>
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:unless="${cia.ciKey eq null}" th:selected="${commonCode.itemCd eq cia.manageCompanyInfo.mgtOrgan}"></option>
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
|
|
@ -42,7 +42,6 @@
|
|||
<input type="text" class="form-control form-control-sm" placeholder="작성일자동입력" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<th:block th:if="${cia.ciKey eq null}">
|
||||
<div class="row mb-1">
|
||||
<label for="wrtNm" class="col-sm-1 col-form-label col-form-label-sm text-center">소재지</label>
|
||||
<div class="col-sm-2">
|
||||
|
|
@ -71,6 +70,60 @@
|
|||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block th:unless="${cia.ciKey eq null}">
|
||||
<div class="row mb-1">
|
||||
<label for="wrtNm" class="col-sm-1 col-form-label col-form-label-sm text-center">관리관서</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select" id="mgtOrgan" name="mgtOrgan">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq cia.foreignerInfo.mgtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="wrtDt" 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="fixDate" name="fixDate" th:value="${cia.foreignerInfo.fixDate}" readonly>
|
||||
</div>
|
||||
<label for="wrtDt" 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="manager" name="manager" th:value="${cia.foreignerInfo.manager}">
|
||||
</div>
|
||||
<label for="wrtDt" 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" placeholder="작성일자동입력" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="wrtNm" 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="commuLocation" name="commuLocation" th:value="${cia.foreignerInfo.commuLocation}">
|
||||
</div>
|
||||
<label for="wrtDt" 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="commuNational" name="commuNational" th:value="${cia.foreignerInfo.commuNational}">
|
||||
</div>
|
||||
<label for="wrtDt" 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="commuAddress" name="commuAddress" th:value="${cia.foreignerInfo.commuAddress}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="contentInfoDiv" class="col-sm-1 col-form-label col-form-label-sm text-center">선정사유</label>
|
||||
<div class="col-sm-11" id="contentInfoDiv">
|
||||
<textarea class="form-control form-control-sm" rows="5" cols="30" name="selectReason" th:utext="${cia.foreignerInfo.selectReason}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center">모니터링 사항</label>
|
||||
<div class="col-sm-11">
|
||||
<div id="editor"></div>
|
||||
<textarea class="d-none" id="monitoringInfo" th:utext="${cia.foreignerInfo.monitoringInfo}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<div class="row mb-1">
|
||||
<label for="fileInputer" class="col-sm-1 col-form-label col-form-label-sm text-center">첨부파일</label>
|
||||
<div class="col-sm-11" style="min-height: 70px;">
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@
|
|||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-bordered table-hover">
|
||||
<table class="table table-sm table-bordered table-hover" id="ciaForeignerTb">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th rowspan="2">관리관서</th>
|
||||
|
|
@ -124,19 +124,19 @@
|
|||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="fiTr" th:each="list:${fiList}">
|
||||
<th:block>
|
||||
<input type="hidden" class="ciKey" th:value="${list.ciKey}">
|
||||
</th:block>
|
||||
<td th:text="${list.mgtOrgan}"></td>
|
||||
<td th:text="${list.manager}"></td>
|
||||
<td th:text="${list.commuLocation}"></td>
|
||||
<td th:text="${list.commuNational}"></td>
|
||||
<td th:text="${list.commuAddress}"></td>
|
||||
<td th:text="${list.selectReason}"></td>
|
||||
<td th:utext="${list.selectReason}"></td>
|
||||
<td th:utext="${list.monitoringInfo}"></td>
|
||||
<td th:text="${list.fixDate}"></td>
|
||||
<td th:text="${list.mgtOrgan}"></td>
|
||||
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
<td th:text="|${list.wrtUserGrd} ${list.wrtUserNm}|"></td>
|
||||
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
<th:block>
|
||||
<input type="hidden" class="ciKey" th:value="${list.ciKey}">
|
||||
</th:block>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -171,6 +171,7 @@
|
|||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="button" class="btn btn-success" value="등록" id="addBtn" th:unless="${accessAuth eq 'ACC001'}">
|
||||
<button type="button" class="btn btn-success" id="excelDown" th:unless="${accessAuth eq 'ACC001'}">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -186,9 +187,9 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="ciaManageCompanyViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="ciWorkModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-scrollable">
|
||||
<div class="modal-content" id="ciaManageCompanyViewModalBody">
|
||||
<div class="modal fade" id="ciaForeignerViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="ciWorkModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl modal-dialog-scrollable">
|
||||
<div class="modal-content" id="ciaForeignerViewModalBody">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,105 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<div class="modal-header bg-dark">
|
||||
<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>
|
||||
</div>
|
||||
<div class="modal-body" id="ciWorkViewBody">
|
||||
<ul class="nav nav-tabs" id="userTab" role="tablist">
|
||||
<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>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation" th:if="${#lists.size(cia.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(cia.fileList), ')')}"></button>
|
||||
</li>
|
||||
</ul>
|
||||
<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="row mb-1">
|
||||
<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:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<option th:value="${commonCode.itemCd}" th:if="${commonCode.itemCd eq cia.foreignerInfo.mgtOrgan}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</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:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:if="${commonCode.itemCd eq cia.wrtUserGrd}" th:text="|${commonCode.itemValue} ${cia.wrtUserNm}|"></option>
|
||||
</th:block>
|
||||
</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(cia.wrtDt, 'yyyy-MM-dd HH:mm')}"></label>
|
||||
</div>
|
||||
<hr class="my-1">
|
||||
<div class="row mb-1">
|
||||
<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="${cia.foreignerInfo.commuLocation}"></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="${cia.foreignerInfo.commuNational}"></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="${cia.foreignerInfo.commuAddress}"></label>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<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="${cia.foreignerInfo.manager}"></label>
|
||||
</div>
|
||||
<hr class="my-1">
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">선정사유</label>
|
||||
<div class="col-sm-11 form-control-sm" th:utext="${#strings.replace(cia.foreignerInfo.selectReason, lineSeparator, '<br>')}"></div>
|
||||
</div>
|
||||
<hr class="my-1">
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">모니터링<br>사항</label>
|
||||
<div class="col-sm-11 form-control-sm" th:utext="${cia.foreignerInfo.monitoringInfo}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade p-2" id="fileTabPanel" role="tabpanel" tabindex="0">
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-12">
|
||||
<table class="table table-sm" id="fileTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>파일명</th>
|
||||
<th>사이즈</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<th:block th:if="${#lists.isEmpty(cia.fileList)}">
|
||||
<tr>
|
||||
<td colspan="2">파일이 없습니다.</td>
|
||||
</tr>
|
||||
</th:block>
|
||||
<th:block th:unless="${#lists.isEmpty(cia.fileList)}">
|
||||
<th:block th:each="file:${cia.fileList}">
|
||||
<tr class="fileInfoTr">
|
||||
<td>
|
||||
<a href="#" class="fileDownLink" data-board="ciWork"
|
||||
th:data-parentkey="${file.ciKey}" th:data-fileseq="${file.fileSeq}"
|
||||
th:text="|${file.origNm}.${file.fileExtn}|"></a>
|
||||
</td>
|
||||
<td th:text="${file.fileSize}"></td>
|
||||
</tr>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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>
|
||||
<th:block th:if="${accessAuth eq 'ACC003'}">
|
||||
<button type="button" class="btn btn-danger" id="deleteCiWorkBtn" th:data-cikey="${cia.ciKey}">삭제</button>
|
||||
</th:block>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<th:block th:if="${viewUserSeq eq cia.wrtUserSeq}">
|
||||
<button type="button" class="btn btn-warning" id="editBtn" th:data-cikey="${cia.ciKey}">수정</button>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<div class="tab-content bg-white border border-top-0 p-2">
|
||||
<form method="get" th:action="${searchUrl}">
|
||||
<form method="get" th:action="@{/counterIntelligence/ciaSaftyDemandList}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
|
|
|
|||
|
|
@ -16,11 +16,14 @@
|
|||
<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="row mb-1">
|
||||
<div class="col-sm-9"></div>
|
||||
<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(cia.wrtDt, 'yyyy-MM-dd HH:mm')}"></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="${cia.wrtUserNm}"></label>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:if="${commonCode.itemCd eq cia.wrtUserGrd}" th:text="|${commonCode.itemValue} ${cia.wrtUserNm}|"></option>
|
||||
</th:block>
|
||||
</label>
|
||||
</div>
|
||||
<hr class="my-1">
|
||||
<div class="row mb-1">
|
||||
|
|
|
|||
Loading…
Reference in New Issue