국제범죄검거현황 수정중.

master
강석 최 2023-04-17 18:28:51 +09:00
parent fcca886fca
commit 341d7b60bb
15 changed files with 531 additions and 772 deletions

View File

@ -1,13 +1,10 @@
package com.dbnt.faisp.main.faStatistics.internationalCrimeArrest;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository.SuspectPersonInfoRepository;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository.IcaSuspectInfoRepository;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.service.InternationalCrimeArrestService;
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
import com.dbnt.faisp.main.organMgt.model.OrganConfig;
import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
import com.dbnt.faisp.main.userInfo.model.UserInfo;
import com.dbnt.faisp.util.Excel;
@ -31,7 +28,7 @@ public class InternationalCrimeArrestController {
private final AuthMgtService authMgtService;
private final InternationalCrimeArrestService internationalCrimeArrestService;
private final OrganConfigService organConfigService;
private final SuspectPersonInfoRepository suspectPersonInfoRepository;
private final IcaSuspectInfoRepository suspectPersonInfoRepository;
private final MenuMgtService menuMgtService;
@GetMapping("/internationalCrimeArrest")
@ -49,7 +46,7 @@ public class InternationalCrimeArrestController {
List<InternationalCrimeArrest> internationalCrimeArrestList = internationalCrimeArrestService.selectInternationalCrimeArrestList(internationalCrimeArrest);
for (InternationalCrimeArrest ica:internationalCrimeArrestList) {
ica.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(ica.getIcaKey()));
ica.setSuspectInfoList(suspectPersonInfoRepository.findByIcaKey(ica.getIcaKey()));
}
mav.addObject("internationalCrimeArrestList", internationalCrimeArrestList);
@ -68,9 +65,12 @@ public class InternationalCrimeArrestController {
internationalCrimeArrest = internationalCrimeArrestService.selectInternationalCrimeArrest(internationalCrimeArrest.getIcaKey());
}else{
internationalCrimeArrest.setWrtOrgan(loginUser.getOgCd());
internationalCrimeArrest.setWrtNm(loginUser.getUserNm());
internationalCrimeArrest.setWrtPart(loginUser.getOfcCd());
internationalCrimeArrest.setWrtUserSeq(loginUser.getUserSeq());
internationalCrimeArrest.setWrtUserGrd(loginUser.getTitleCd());
internationalCrimeArrest.setWrtUserNm(loginUser.getUserNm());
internationalCrimeArrest.setWrtDt(LocalDateTime.now());
internationalCrimeArrest.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(internationalCrimeArrest.getIcaKey()));
internationalCrimeArrest.setSuspectInfoList(suspectPersonInfoRepository.findByIcaKey(internationalCrimeArrest.getIcaKey()));
}
mav.addObject("organConfigList", organConfigService.selectOrganList());
mav.addObject("internationalCrimeArrest", internationalCrimeArrest);

View File

@ -0,0 +1,52 @@
package com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model;
import com.dbnt.faisp.config.BaseModel;
import lombok.*;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@Getter
@Setter
@Entity
@NoArgsConstructor
@DynamicInsert
@DynamicUpdate
@Table(name = "ica_sub_info")
public class IcaSubInfo extends BaseModel {
@Id
@Column(name = "ica_key")
private Integer icaKey;
@Column(name = "stay_qualification")
private String stayQualification;
@Column(name = "stay_period_expired_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate stayPeriodExpiredDt;
@Column(name = "entry_visa")
private String entryVisa;
@Column(name = "sea_area")
private String seaArea;
@Column(name = "arrest_area")
private String arrestArea;
@Column(name = "destination")
private String destination;
@Column(name = "means")
private String means;
@Column(name = "purpose")
private String purpose;
@Column(name = "smuggled_goods")
private String smuggledGoods;
@Column(name = "crackdown_area")
private String crackdownArea;
@Column(name = "police_cnt")
private Integer poloceCnt;
@Column(name = "violation_amount")
private String violationAmount;
}

View File

@ -0,0 +1,44 @@
package com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model;
import com.dbnt.faisp.config.BaseModel;
import lombok.*;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import java.io.Serializable;
import java.util.List;
@Getter
@Setter
@Entity
@NoArgsConstructor
@DynamicInsert
@DynamicUpdate
@Table(name = "ica_suspect_info")
@IdClass(IcaSuspectInfo.IcaSuspectInfoId.class)
public class IcaSuspectInfo extends BaseModel {
@Id
@Column(name = "ica_key")
private Integer icaKey;
@Id
@Column(name = "spi_key")
private Integer spiKey;
@Column(name = "sex")
private String sex;
@Column(name = "age")
private String age;
@Column(name = "country")
private String country;
@Column(name = "process_result")
private String processResult;
@Embeddable
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class IcaSuspectInfoId implements Serializable {
private Integer icaKey;
private Integer spiKey;
}
}

View File

@ -21,82 +21,56 @@ import java.util.List;
@DynamicUpdate
@Table(name = "international_crime_arrest")
public class InternationalCrimeArrest extends BaseModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ica_key")
private Integer icaKey;
@Column(name = "organ")
private String organ;
@Column(name = "department")
private String department;
@Column(name = "crime_type")
private String crimeType;
@Column(name = "violation_type")
private String violationType;
@Column(name = "crime_name")
private String crimeName;
@Column(name = "smuggling_amount")
private String smugglingAmount;
@Column(name = "occur_table")
private String occurTable;
@Column(name = "arrest_table")
private String arrestTable;
@Column(name = "suspect_table")
private String suspectTable;
@Column(name = "crime_awareness_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate crimeAwarenessDt;
@Column(name = "case_sent_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate caseSentDt;
@Column(name = "process_result")
private String processResult;
@Column(name = "other_crime")
private String otherCrime;
@Column(name = "case_num")
private String caseNum;
@Column(name = "case_overview")
private String caseOverview;
@Column(name = "sea_area")
private String seaArea;
@Column(name = "arrest_area")
private String arrestArea;
@Column(name = "means")
private String means;
@Column(name = "purpose")
private String purpose;
@Column(name = "smuggled_goods")
private String smuggledGoods;
@Column(name = "crackdown_personel")
private Integer crackdownPersonel;
@Column(name = "violation_amount")
private String violationAmount;
@Column(name = "destination")
private String destination;
@Column(name = "content_status")
private String contentStatus;
@Column(name = "crime_form")
private String crimeForm;
@Column(name = "wrt_organ")
private String wrtOrgan;
@Column(name = "wrt_user_seq")
private Integer wrtUserSeq;
@Column(name = "wrt_nm")
private String wrtNm;
@Column(name = "wrt_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime wrtDt;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ica_key")
private Integer icaKey;
@Column(name = "organ")
private String organ;
@Column(name = "department")
private String department;
@Column(name = "crime_type")
private String crimeType;
@Column(name = "violation_type")
private String violationType;
@Column(name = "crime_name")
private String crimeName;
@Column(name = "occur_table")
private String occurTable;
@Column(name = "arrest_table")
private String arrestTable;
@Column(name = "suspect_table")
private String suspectTable;
@Column(name = "crime_awareness_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate crimeAwarenessDt;
@Column(name = "case_sent_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate caseSentDt;
@Column(name = "case_num")
private String caseNum;
@Column(name = "case_overview")
private String caseOverview;
@Column(name = "crime_form")
private String crimeForm;
@Column(name = "status")
private String status;
@Column(name = "wrt_organ")
private String wrtOrgan;
@Column(name = "wrt_part")
private String wrtPart;
@Column(name = "wrt_user_seq")
private Integer wrtUserSeq;
@Column(name = "wrt_user_grd")
private String wrtUserGrd;
@Column(name = "wrt_user_nm")
private String wrtUserNm;
@Column(name = "wrt_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime wrtDt;
@Transient
private List<SuspectPersonInfo> suspectPersonInfoList;
@Transient
private List<Integer> deleteSpiKeyList;
@Transient
private String processResultEtc;
@Transient
private String smuggledGoodsEtc;
@Transient
private String meansEtc;
@Transient
private String purposesEtc;
@Transient
private List<IcaSuspectInfo> suspectInfoList;
@Transient
private IcaSubInfo icaSubInfo;
}

View File

@ -1,47 +0,0 @@
package com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model;
import com.dbnt.faisp.config.BaseModel;
import lombok.*;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.List;
@Getter
@Setter
@Entity
@NoArgsConstructor
@DynamicInsert
@DynamicUpdate
@Table(name = "suspect_person_info")
public class SuspectPersonInfo extends BaseModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "spi_key")
private Integer spiKey;
@Column(name = "ica_key")
private Integer icaKey;
@Column(name = "sex")
private String sex;
@Column(name = "age")
private String age;
@Column(name = "country")
private String country;
@Column(name = "stay_qualification")
private String stayQualification;
@Column(name = "stay_period_expired_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDateTime stayPeriodExpiredDt;
@Column(name = "entry_visa")
private String entryVisa;
@Transient
private List<Integer> icaKeyList;
@Transient
private List<Integer> spiKeyList;
@Transient
private String countryEtc;
}

View File

@ -1,7 +1,7 @@
package com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.SuspectPersonInfo;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.IcaSubInfo;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.IcaSuspectInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
@ -11,10 +11,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.List;
public interface SuspectPersonInfoRepository extends JpaRepository<SuspectPersonInfo, SuspectPersonInfo> {
List<SuspectPersonInfo> findByIcaKey(Integer icaKey);
@Transactional
@Modifying
@Query("delete from SuspectPersonInfo s where s.spiKey in :idList")
void deleteAllByIdInQuery(@Param("idList") List<Integer> deleteKeyList);
public interface IcaSubInfoRepository extends JpaRepository<IcaSubInfo, Integer> {
}

View File

@ -0,0 +1,14 @@
package com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.IcaSuspectInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface IcaSuspectInfoRepository extends JpaRepository<IcaSuspectInfo, IcaSuspectInfo.IcaSuspectInfoId> {
List<IcaSuspectInfo> findByIcaKey(Integer icaKey);
void deleteByIcaKey(Integer icaKey);
}

View File

@ -9,6 +9,6 @@ public interface InternationalCrimeArrestRepository extends JpaRepository<Intern
@Modifying(clearAutomatically = true)
@Query("update InternationalCrimeArrest set contentStatus = :contentStatus where icaKey = :icaKey")
void bulkModifyingByIcaKeyToContentStatus(Integer icaKey, String contentStatus);
@Query("update InternationalCrimeArrest set status = :status where icaKey = :icaKey")
void bulkModifyingByIcaKeyToStatus(Integer icaKey, String status);
}

View File

@ -4,9 +4,10 @@ package com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.service;
import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.mapper.InternationalCrimeArrestMapper;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.SuspectPersonInfo;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.IcaSuspectInfo;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository.IcaSubInfoRepository;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository.InternationalCrimeArrestRepository;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository.SuspectPersonInfoRepository;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository.IcaSuspectInfoRepository;
import com.dbnt.faisp.util.ParamMap;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -19,7 +20,8 @@ import java.util.List;
public class InternationalCrimeArrestService extends BaseService {
private final InternationalCrimeArrestRepository internationalCrimeArrestRepository;
private final InternationalCrimeArrestMapper internationalCrimeArrestMapper;
private final SuspectPersonInfoRepository suspectPersonInfoRepository;
private final IcaSuspectInfoRepository icaSuspectInfoRepository;
private final IcaSubInfoRepository icaSubInfoRepository;
public List<InternationalCrimeArrest> selectInternationalCrimeArrestList(InternationalCrimeArrest InternationalCrimeArrest) {
return internationalCrimeArrestMapper.selectInternationalCrimeArrestList(InternationalCrimeArrest);
@ -38,50 +40,31 @@ public class InternationalCrimeArrestService extends BaseService {
}
public InternationalCrimeArrest selectInternationalCrimeArrest(Integer icaKey) {
InternationalCrimeArrest savedInternationalCrimeArrest = internationalCrimeArrestRepository.findById(icaKey).orElse(null);
if (savedInternationalCrimeArrest != null) {
savedInternationalCrimeArrest.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(icaKey));
InternationalCrimeArrest savedICA = internationalCrimeArrestRepository.findById(icaKey).orElse(null);
if (savedICA != null) {
savedICA.setSuspectInfoList(icaSuspectInfoRepository.findByIcaKey(icaKey));
}
return savedInternationalCrimeArrest;
return savedICA;
}
@Transactional
public Integer savedInternationalCrimeArrest(InternationalCrimeArrest internationalCrimeArrest) {
if (internationalCrimeArrest.getMeansEtc() != null) {
internationalCrimeArrest.setMeans(internationalCrimeArrest.getMeansEtc());
}
if (internationalCrimeArrest.getPurposesEtc() != null) {
internationalCrimeArrest.setPurpose(internationalCrimeArrest.getPurposesEtc());
}
if (internationalCrimeArrest.getSmuggledGoodsEtc() != null) {
internationalCrimeArrest.setSmuggledGoods(internationalCrimeArrest.getSmuggledGoodsEtc());
}
if (internationalCrimeArrest.getProcessResultEtc() != null) {
internationalCrimeArrest.setProcessResult(internationalCrimeArrest.getProcessResultEtc());
}
public Integer savedInternationalCrimeArrest(InternationalCrimeArrest ica) {
Integer icaKey = internationalCrimeArrestRepository.save(internationalCrimeArrest).getIcaKey();
if (internationalCrimeArrest.getDeleteSpiKeyList() != null) {
suspectPersonInfoRepository.deleteAllByIdInQuery(internationalCrimeArrest.getDeleteSpiKeyList());
Integer icaKey = internationalCrimeArrestRepository.save(ica).getIcaKey();
icaSuspectInfoRepository.deleteByIcaKey(icaKey);
Integer i=1;
for(IcaSuspectInfo suspectInfo: ica.getSuspectInfoList()){
suspectInfo.setIcaKey(icaKey);
suspectInfo.setSpiKey(i++);
}
if (internationalCrimeArrest.getSuspectPersonInfoList() != null) {
for(SuspectPersonInfo info: internationalCrimeArrest.getSuspectPersonInfoList()){
if (info.getCountryEtc() != null) {
info.setCountry(info.getCountryEtc());
}
info.setIcaKey(icaKey);
}
suspectPersonInfoRepository.saveAll(internationalCrimeArrest.getSuspectPersonInfoList());
}
icaSuspectInfoRepository.saveAll(ica.getSuspectInfoList());
icaSubInfoRepository.save(ica.getIcaSubInfo());
return icaKey;
}
@Transactional
public void deleteInternationalCrimeArrest(InternationalCrimeArrest internationalCrimeArrest) {
internationalCrimeArrestRepository.bulkModifyingByIcaKeyToContentStatus(internationalCrimeArrest.getIcaKey(), "D");
internationalCrimeArrestRepository.bulkModifyingByIcaKeyToStatus(internationalCrimeArrest.getIcaKey(), "D");
}
}

View File

@ -20,6 +20,7 @@ $(document).on('click', '#icaEditBtn', function () {
$("#icaViewModal").modal('hide');
getIcaEditModal(Number($("#icaViewBody").find("[name='icaKey']").val()));
});
$(document).on('click', '#icaDeleteBtn', function (){
$.ajax({
type : 'POST',
@ -65,372 +66,6 @@ $(document).on('change', '#searchCrimeType', function (){
dynamicOption('#searchViolationType', $(this).val(), '위반유형');
});
$(document).on('change', '#crimeForm', function (){
if ($(this).val() !== 'CMF001') {
$("#spiAddBtn").show();
} else {
$("#spiAddBtn").hide();
$.each($('.dynamic').children("input[name='spiKey']"), function (idx, item){
let deleteKey = item.value;
$("#icaEditForm").append('<input type="hidden" name="deleteSpiKeyList" value="' + deleteKey + '">');
});
$("#spiDiv").children('.dynamic').remove();
}
});
$(document).on('click', '#spiAddBtn', function (){
let sex = '';
commonCode.SEX.forEach(function (item){
sex += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
});
let age = '';
commonCode.AGE.forEach(function (item){
age += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
})
let country = '';
commonCode.NNY.forEach(function (item){
country += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
})
$("#spiDiv").append(
'<div class="row dynamic spi-list pb-1">'
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">성별</label>'
+ '<div class="col-sm-2" id="sexFormDiv">'
+ '<select class="form-select form-select-sm" name="sex">'
+ sex
+ '</select>'
+ '</div>'
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">나이</label>'
+ '<div class="col-sm-2" id="ageFormDiv">'
+ '<select class="form-select form-select-sm" name="age">'
+ age
+ '</select>'
+ '</div>'
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">국적</label>'
+ '<div class="col-sm-2" id="countryFormDiv">'
+ '<select class="form-select form-select-sm country" name="country">'
+ country
+ '<option value="etc">기타</option>'
+ '</select>'
+ '</div>'
+ '<button type="button" class="col-sm-auto btn btn-sm btn-primary spiCancelBtn"><i class="bi bi-dash"></i></button>'
+ '</div>'
);
});
$(document).on('change', '.country', function (){
if ($(this).val() == 'etc') {
$(this).parent().after(
'<div class="col-auto">'
+ '<input type="text" class="form-control form-control-sm" name="countryEtc">'
+ '</div>'
);
} else {
$(this).parent().next().remove();
}
});
$(document).on('change', '#processResult', function (){
if ($(this).val() === 'etc') {
$("[name=\"processResultEtc\"]").val('')
$("#processResultEtcDiv").show();
} else {
$("#processResultEtcDiv").hide();
}
});
$(document).on('click', '.spiCancelBtn', function (){
const deleteKey = $(this).parent().children("input[name='spiKey']").val();
if(deleteKey !== undefined){
$("#icaEditForm").append('<input type="hidden" name="deleteSpiKeyList" value="' + deleteKey + '">');
}
$(this).parent().remove();
});
$(document).on('change', '#crimeType', function (){
$('#smugglingAmountDiv').children().remove();
$('#crimeNameDiv').children().remove();
$('#arrestAreaDiv').remove();
let smugglingAmount = '';
commonCode.SG.forEach(function (item){
if(item.useChk === 'T'){
smugglingAmount += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
}
})
if ($(this).val() == 'CTH2') {
makeArrestAreaDiv('장소');
$('#smugglingAmountDiv').append(
'<label class="col-sm-2 col-form-label col-form-label-sm text-center fw-bold">밀수입출 품목</label>'
+ '<div class="col-sm-2">'
+ '<select class="form-select form-select-sm" name="smuggledGoods" id="smugglingAmount">'
+ '<option>선택</option>'
+ smugglingAmount
+ '<option value="etc">기타</option>'
+ '</select>'
+ '</div>'
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center fw-bold">밀수가액(만원)</label>'
+ '<div class="col-sm-2">'
+ '<input class="form-control form-control-sm" type="number" min="0" name="smugglingAmount">'
+ '</div>'
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center fw-bold">단속 인원(경찰관)</label>'
+ '<div class="col-sm-2">'
+ '<input class="form-control form-control-sm" type="number" min="0" name="caseNum">'
+ '</div>'
);
} else {
$("#crimeNameDiv").append(
'<div class="row">\n' +
' <label class="col-sm-6 col-form-label col-form-label-sm text-center">죄명</label>\n' +
' <div class="col-sm-6">\n' +
' <input type="text" class="form-control form-control-sm" name="crimeName">\n' +
' </div>\n' +
'</div>'
);
}
});
$(document).on('change', '#violationType', function (){
$('#spiInfoDiv').remove();
$('#arrestAreaDiv').remove();
$('#meansDiv').remove();
$('.entryVisa').remove();
$('#violationAmountDiv').remove();
if ($(this).val() == 'CTH101') {
makeSpiInfoDiv('피의자 정보');
makeArrestAreaDiv('지역');
makeSeaAreaDiv('밀입국');
makeMeansDiv('밀입국');
makePurposeDiv('밀입국');
makeDestinationDiv('밀입국 출발지(국가)');
}
if ($(this).val() == 'CTH102') {
makeSpiInfoDiv('피의자 정보');
makeArrestAreaDiv('지역');
makeSeaAreaDiv('도외이탈');
makeMeansDiv('도외이탈');
makePurposeDiv('도외이탈');
}
if ($(this).val() == 'CTH103') {
makeSpiInfoDiv('피의자 정보');
makeArrestAreaDiv('지역');
makeSeaAreaDiv('밀출국');
makeMeansDiv('밀출국');
makePurposeDiv('밀출국');
makeDestinationDiv('밀출국 행선지(도착예정지)');
}
if ($(this).val() == 'CTH104') {
makeSpiInfoDiv('피의자 정보');
makeArrestAreaDiv('지역');
makeSeaAreaDiv('밀항');
makeMeansDiv('밀항');
makePurposeDiv('밀항');
makeDestinationDiv('밀항 행선지(도착예정지)');
}
if ($(this).val() == 'CTH105') {
makeSpiInfoDiv('불법체류 및 취업');
makeEntryVisaDiv();
}
if ($(this).val() == 'CTH401') {
makeViolationAmountDiv();
}
if ($(this).val() == 'CTH201' || $(this).val() == 'CTH202' || $(this).val() == 'CTH203' || $(this).val() == 'CTH204') {
makeArrestAreaDiv('장소');
}
});
$(document).on('change', '#smugglingAmount', function (){
if ($(this).val() == 'etc') {
$(this).parent().append(
'<div class="col-auto">'
+ '<input type="text" class="form-control form-control-sm" name="smuggledGoodsEtc">'
+ '</div>'
);
} else {
$(this).next().remove();
}
});
$(document).on('change', '#means', function (){
if ($(this).val() == 'etc') {
$(this).parent().append(
'<div class="col-auto">'
+ '<input type="text" class="form-control form-control-sm" name="meansEtc">'
+ '</div>'
);
} else {
$(this).next().remove();
}
});
$(document).on('change', '#purpose', function (){
if ($(this).val() == 'etc') {
$(this).parent().append(
'<div class="col-auto">'
+ '<input type="text" class="form-control form-control-sm" name="purposesEtc">'
+ '</div>'
);
} else {
$(this).next().remove();
}
});
$(function(){
$("#datePickerDiv").datepicker({
format: "yyyy-mm-dd",
language: "ko",
autoclose: true
});
});
function makeEntryVisaDiv() {
$('#spiWrapper').prepend(
'<label class="col-sm-2 col-form-label col-form-label-sm text-center entryVisa">입국비자</label>'
+ '<div class="col-sm-2 entryVisa">'
+ '<input type="text" class="form-control form-control-sm" name="entryVisa">'
+ '</div>'
);
}
function makeSpiInfoDiv(name) {
$('#spiParentDiv').after(
'<div class="row mb-1" id="spiInfoDiv">'
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center">' + name + '</label>'
+ '<div class="col-sm-10">'
+ '<div class="border">'
+ '<div class="row my-1" id="spiWrapper">'
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center">체류 자격</label>'
+ '<div class="col-sm-2">'
+ '<input type="text" class="form-control form-control-sm" name="stayQualification">'
+ '</div>'
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center">체류기간 만료일</label>'
+ '<div class="col-sm-2 input-daterange" id="stayQualificationDiv">'
+ '<input type="text" class="form-control form-control-sm" name="stayPeriodExpiredDt" id="stayPeriodExpiredDt" readonly>'
+ '</div>'
+ '</div>'
+ '</div>'
+ '</div>'
+ '</div>'
);
$("#stayQualificationDiv").datepicker({
format: "yyyy-mm-dd",
language: "ko",
autoclose: true
});
}
function makeSeaAreaDiv(name) {
let seaArea = '';
commonCode.SAA.forEach(function (item){
seaArea += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
})
$('#arrestAreaDiv').append(
'<label class="col-sm-2 col-form-label col-form-label-sm text-center">' + name + '시도 해역(해안)</label>'
+ '<div class="col-sm-2">'
+ '<select class="form-select form-select-sm" name="seaArea">'
+ '<option>선택</option>'
+ seaArea
+ '</select>'
+ '</div>'
);
}
function makeArrestAreaDiv(name) {
let arrestArea = '';
commonCode.SAA.forEach(function (item){
arrestArea += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
})
$('#spiParentDiv').after(
'<div class="row mb-1" id="arrestAreaDiv">'
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center">검거' + name + '</label>'
+ '<div class="col-sm-2">'
+ '<input type="text" class="form-control form-control-sm" name="arrestArea">'
+ '</div>'
+ '</div>'
);
}
function makeMeansDiv(name, code) {
let means = '';
if (code == 'CTH101') {
commonCode.MS1.forEach(function (item){
means += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
})
} else {
commonCode.MS2.forEach(function (item){
means += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
})
}
$('#spiParentDiv').after(
'<div class="row mb-1" id="meansDiv">'
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center">' + name + ' 수단(방법)</label>'
+ '<div class="col-sm-2">'
+ '<select class="form-select form-select-sm" name="means" id="means">'
+ '<option>선택</option>'
+ means
+ '<option value="etc">기타</option>'
+ '</select>'
+ '</div>'
+ '</div>'
);
}
function makePurposeDiv(name) {
let purpose = "";
commonCode.PPS.forEach(function (item){
purpose += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
})
$('#meansDiv').append(
'<label class="col-sm-2 col-form-label col-form-label-sm text-center">' + name + ' 목적(사유)</label>'
+ '<div class="col-sm-2">'
+ '<select class="form-select form-select-sm" name="purpose" id="purpose">'
+ '<option>선택</option>'
+ purpose
+ '<option value="etc">기타</option>'
+ '</select>'
+ '</div>'
);
}
function makeDestinationDiv(name) {
$('#meansDiv').append(
'<label class="col-sm-2 col-form-label col-form-label-sm text-center">' + name + '</label>'
+ '<div class="col-sm-2">'
+ '<input type="text" class="form-control form-control-sm" name="destination">'
+ '</div>'
);
}
function makeViolationAmountDiv() {
$('#spiParentDiv').after(
'<div class="row mb-1" id="violationAmountDiv">'
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center">표시위반 금액(만원)</label>'
+ '<div class="col-sm-2">'
+ '<input type="number" min="0" class="form-control form-control-sm" name="violationAmount">'
+ '</div>'
+ '</div>'
);
}
function getIcaViewModal(icaKey){
$.ajax({
url: '/faStatistics/internationalCrimeArrestViewModal',

View File

@ -5,22 +5,15 @@ $(function(){
autoclose: true
});
})
$(document).on('click', '#allTab', function (){
location.href = "/intelligenceNetwork/operationPlanList/all";
})
$(document).on('click', '#stayTab', function (){
location.href = "/intelligenceNetwork/operationPlanList/stay";
})
$(document).on('click', '#commitTab', function (){
location.href = "/intelligenceNetwork/operationPlanList/commit";
$(document).on('click', '.pageTab', function (){
location.href = "/intelligenceNetwork/operationPlanList/"+$(this).attr("data-tabtype");
})
$(document).on('click', '#addBtn', function (){
getOerationPlanEditModal(null);
getOperationPlanEditModal(null);
})
function getOerationPlanEditModal(opKey){
function getOperationPlanEditModal(opKey){
$.ajax({
url: '/intelligenceNetwork/operationPlanEditModal',
data: {opKey: opKey},
@ -43,83 +36,83 @@ function getOerationPlanEditModal(opKey){
}
$(document).on('click', '#editBtn', function (){
$("#operationPlanViewModal").modal('hide');
getOerationPlanEditModal($(this).attr("data-opkey"));
$("#operationPlanViewModal").modal('hide');
getOperationPlanEditModal($(this).attr("data-opkey"));
})
$(document).on('click', '#saveBtn', function (){
if(!$("#opSdate").val()){
alert("운용시작일을 입력해주세요.");
$('#opSdate').focus();
return false;
}
if(!$("#opName").val()){
alert("성명을 입력해주세요.");
$('#opName').focus();
return false;
}
if(!$("#opBirth").val()){
alert("생년월일을 입력해주세요.");
$('#opBirth').focus();
return false;
}
if(!$("#opPosition").val()){
alert("근무처를 입력해주세요.");
$('#opPosition').focus();
return false;
}
if(!$("#opPhone").val()){
alert("연락처를 입력해주세요.");
$('#opPhone').focus();
return false;
}
if(!$("#opRank").val()){
alert("등급을 입력해주세요.");
$('#opRank').focus();
return false;
}
if(confirm("저장하시겠습니까?")){
saveOperationPlan('DST002');
}
if(!$("#opSdate").val()){
alert("운용시작일을 입력해주세요.");
$('#opSdate').focus();
return false;
}
if(!$("#opName").val()){
alert("성명을 입력해주세요.");
$('#opName').focus();
return false;
}
if(!$("#opBirth").val()){
alert("생년월일을 입력해주세요.");
$('#opBirth').focus();
return false;
}
if(!$("#opPosition").val()){
alert("근무처를 입력해주세요.");
$('#opPosition').focus();
return false;
}
if(!$("#opPhone").val()){
alert("연락처를 입력해주세요.");
$('#opPhone').focus();
return false;
}
if(!$("#opRank").val()){
alert("등급을 입력해주세요.");
$('#opRank').focus();
return false;
}
if(confirm("저장하시겠습니까?")){
saveOperationPlan('DST002');
}
})
$(document).on('click', '#saveTempBtn', function (){
if(confirm("임시저장 하시겠습니까?")){
saveOperationPlan('DST001');
}
if(confirm("임시저장 하시겠습니까?")){
saveOperationPlan('DST001');
}
})
function saveOperationPlan(opState){
contentFade("in");
const formData = new FormData($("#operationPlanEditForm")[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"));
})
formData.append('opState', opState);
$.ajax({
type : 'POST',
data : formData,
url : "/intelligenceNetwork/saveOperationPlan",
processData: false,
contentType: false,
success : function(result) {
alert("저장되었습니다.");
contentFade("out");
location.reload();
},
error : function(xhr, status) {
alert("저장에 실패하였습니다.")
contentFade("out");
}
})
contentFade("in");
const formData = new FormData($("#operationPlanEditForm")[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"));
})
formData.append('opState', opState);
$.ajax({
type : 'POST',
data : formData,
url : "/intelligenceNetwork/saveOperationPlan",
processData: false,
contentType: false,
success : function(result) {
alert("저장되었습니다.");
contentFade("out");
location.reload();
},
error : function(xhr, status) {
alert("저장에 실패하였습니다.")
contentFade("out");
}
})
}
$(document).on('click', '.operationPlanTr', function (){
getOperationPlanViewModal(Number($(this).find(".opKey").val()));
getOperationPlanViewModal(Number($(this).find(".opKey").val()));
})
function getOperationPlanViewModal(opKey){

View File

@ -100,10 +100,10 @@
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm dateSelector" placeholder="범죄인지" name="crimeAwarenessDt" id="crimeAwarenessDt" th:value="${#temporals.format(searchParams.crimeAwarenessDt, 'yyyy-MM-dd')}">
<input type="text" class="form-control form-control-sm dateSelector" placeholder="범죄인지" name="crimeAwarenessDt" id="crimeAwarenessDt" th:value="${#temporals.format(searchParams.crimeAwarenessDt, 'yyyy-MM-dd')}" autocomplete="off">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm dateSelector" placeholder="사건송치" name="caseSentDt" id="caseSentDt" th:value="${#temporals.format(searchParams.caseSentDt, 'yyyy-MM-dd')}">
<input type="text" class="form-control form-control-sm dateSelector" placeholder="사건송치" name="caseSentDt" id="caseSentDt" th:value="${#temporals.format(searchParams.caseSentDt, 'yyyy-MM-dd')}" autocomplete="off">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="processResult" id="processResult">

View File

@ -14,7 +14,7 @@
<input type="hidden" name="wrtDt" th:value="${#temporals.format(internationalCrimeArrest.wrtDt, 'yyyy-MM-dd HH:mm')}">
<input type="hidden" id="contentStatus" name="contentStatus">
<div class="row mb-1">
<label class="col-sm-2 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-2">
<select class="form-select form-select-sm" name="organ">
<option value="">선택</option>
@ -25,7 +25,7 @@
</th:block>
</select>
</div>
<label class="col-sm-2 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-2" id="departmentDiv">
<select class="form-select form-select-sm" name="department">
<option value="">선택</option>
@ -37,9 +37,8 @@
</select>
</div>
</div>
<hr class="my-1">
<div class="row mb-1" id="spiParentDiv">
<label class="col-sm-2 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-2">
<select class="form-select form-select-sm" name="crimeType" id="crimeType">
<option value="">선택</option>
@ -49,122 +48,240 @@
</th:block>
</select>
</div>
<label class="col-sm-2 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-2">
<select class="form-select form-select-sm" name="violationType" id="violationType">
<option value="">선택</option>
<th:block th:each="code:${session.commonCode.get(internationalCrimeArrest.crimeType)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${internationalCrimeArrest.violationType eq code.itemCd}"></option>
<option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}"
th:selected="${code.itemCd eq internationalCrimeArrest.violationType}"></option>
</th:block>
</select>
</div>
<div class="col-sm-4" id="crimeNameDiv">
<div class="row">
<label class="col-sm-6 col-form-label col-form-label-sm text-center">죄명</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
<label class="col-sm-1 col-form-label col-form-label-sm text-center crimeName">죄명</label>
<div class="col-sm-2 crimeName">
<input type="text" class="form-control form-control-sm" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
</div>
<!--위반유형별 양식 시작-->
<!--직접밀입국, 제주무사증 도외이탈, 밀출국 공통양식 시작-->
<div class="row mb-1">
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">체류기간 만료일</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fs-10">밀입국 시도 해역</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
</div>
<!--직접밀입국, 제주무사증 도외이탈, 밀출국 공통양식 끝-->
<!--직접밀입국 시작-->
<div class="row mb-1">
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
</div>
<!--직접밀입국 끝-->
<!--제주무사증 도외이탈 시작-->
<div class="row mb-1">
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
</div>
<!--제주무사증 도외이탈 끝-->
<!--밀출국 시작-->
<div class="row mb-1">
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
</div>
<!--밀출국 끝-->
<!--밀항 시작-->
<div class="row mb-1">
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
</div>
<div class="row mb-1">
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
</div>
<!--밀항 끝-->
<!--불법체류 및 취업 시작-->
<div class="row mb-1">
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">체류기간 만료일</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
</div>
<!--불법체류 및 취업 끝-->
<!--밀수입출 시작-->
<div class="row mb-1">
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
<label 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" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
</div>
</div>
<!--불법체류 및 취업 끝-->
<!--위반유형별 양식 끝-->
<!--<div class="row mb-1" id="spiInfoDiv">
<label class="col-sm-1 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT005' ? '불법체류 및 취업' : '피의자 정보'}">피의자 정보</label>
<div class="col-sm-10">
<div class="row" id="spiWrapper">
<th:block th:if="${internationalCrimeArrest.violationType eq 'VLT005'}">
<label class="col-sm-1 col-form-label col-form-label-sm text-center entryVisa">입국비자</label>
<div class="col-sm-2 entryVisa">
<input type="text" class="form-control form-control-sm" name="entryVisa" th:value="${internationalCrimeArrest.suspectPersonInfoList[0].entryVisa}">
</div>
</th:block>
<label 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" name="stayQualification" th:value="${internationalCrimeArrest.suspectPersonInfoList[0].stayQualification}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">체류기간 만료일</label>
<div class="col-sm-2 input-daterange" id="stayQualificationDiv">
<input type="text" class="form-control form-control-sm" name="stayPeriodExpiredDt" id="stayPeriodExpiredDt" th:value="${#temporals.format(internationalCrimeArrest.suspectPersonInfoList[0].stayPeriodExpiredDt, 'yyyy-MM-dd HH:mm')}">
</div>
</div>
</div>
</div>
<div class="row mb-1" id="spiInfoDiv">
<th:block th:if="${!#lists.isEmpty(internationalCrimeArrest.suspectPersonInfoList)}">
<th:block th:if="${internationalCrimeArrest.crimeType eq 'CTH002' || internationalCrimeArrest.violationType eq 'VLT005'}">
<label class="col-sm-2 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT005' ? '불법체류 및 취업' : '피의자 정보'}">피의자 정보</label>
<div class="col-sm-10">
<div class="row" id="spiWrapper">
<th:block th:if="${internationalCrimeArrest.violationType eq 'VLT005'}">
<label class="col-sm-2 col-form-label col-form-label-sm text-center entryVisa">입국비자</label>
<div class="col-sm-2 entryVisa">
<input type="text" class="form-control form-control-sm" name="entryVisa" th:value="${internationalCrimeArrest.suspectPersonInfoList[0].entryVisa}">
</div>
</th:block>
<label class="col-sm-2 col-form-label col-form-label-sm text-center">체류 자격</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="stayQualification" th:value="${internationalCrimeArrest.suspectPersonInfoList[0].stayQualification}">
</div>
<label class="col-sm-2 col-form-label col-form-label-sm text-center">체류기간 만료일</label>
<div class="col-sm-2 input-daterange" id="stayQualificationDiv">
<input type="text" class="form-control form-control-sm" name="stayPeriodExpiredDt" id="stayPeriodExpiredDt" th:value="${#temporals.format(internationalCrimeArrest.suspectPersonInfoList[0].stayPeriodExpiredDt, 'yyyy-MM-dd HH:mm')}">
</div>
</div>
<div class="row mb-1" id="meansDiv">
<th:block th:if="${internationalCrimeArrest.violationType eq 'VLT001' || internationalCrimeArrest.violationType eq 'VLT003'|| internationalCrimeArrest.violationType eq 'VLT004'}">
<label class="col-sm-1 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT001' ? '밀입국 출발지(국가)' : (internationalCrimeArrest.violationType eq 'VLT003' ? '밀출국 행선지(도착예정지)' : '밀항 행선지(도착예정지)')}"></label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="destination">
</div>
</th:block>
<label class="col-sm-1 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT001' ? '밀입국 수단(방법)' : (internationalCrimeArrest.violationType eq 'VLT002' ? '도외이탈 수단(방법)' : (internationalCrimeArrest.violationType eq 'VLT003' ? '밀출국 수단(방법)' : '밀항 수단(방법)'))}"></label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="means" id="means">
<option value="">선택</option>
<th:block th:if="${internationalCrimeArrest.violationType eq 'VLT001'}" th:each="commonCode:${session.commonCode.get('MS1')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.means}"></option>
</th:block>
<th:block th:if="${internationalCrimeArrest.violationType ne 'VLT001'}" th:each="commonCode:${session.commonCode.get('MS2')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.means}"></option>
</th:block>
<option value="etc" th:selected="${internationalCrimeArrest.means ne null && internationalCrimeArrest.means ne '' && !#strings.contains(internationalCrimeArrest.means, 'MS1') && !#strings.contains(internationalCrimeArrest.means, 'MS2')}">기타</option>
</select>
<th:block th:if="${internationalCrimeArrest.means ne null && internationalCrimeArrest.means ne '' && !#strings.contains(internationalCrimeArrest.means, 'MS1') && !#strings.contains(internationalCrimeArrest.means, 'MS2')}">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="meansEtc" th:value="${internationalCrimeArrest.means}">
</div>
</th:block>
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT001' ? '밀입국 목적(사유)' : (internationalCrimeArrest.violationType eq 'VLT002' ? '도외이탈 목적(시유)' : (internationalCrimeArrest.violationType eq 'VLT003' ? '밀출국 목적(사유)' : '밀항 목적(사유)'))}"></label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="purpose" id="purpose">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PPS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.purpose}"></option>
</th:block>
<option value="etc" th:selected="${internationalCrimeArrest.purpose ne null && internationalCrimeArrest.purpose ne '' && !#strings.contains(internationalCrimeArrest.purpose, 'PPS')}">기타</option>
</select>
<th:block th:if="${internationalCrimeArrest.purpose ne null && internationalCrimeArrest.purpose ne '' && !#strings.contains(internationalCrimeArrest.purpose, 'PPS')}">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="purposeEtc" th:value="${internationalCrimeArrest.purpose}">
</div>
</th:block>
</div>
</div>
<div class="row mb-1" id="arrestAreaDiv">
<label 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" name="arrestArea" th:value="${internationalCrimeArrest.arrestArea}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT001' ? '밀입국 시도 해역(해안)' : (internationalCrimeArrest.violationType eq 'VLT002' ? '도외이탈 시도 해역(해안)' : (internationalCrimeArrest.violationType eq 'VLT003' ? '밀출국 시도 해역(해안)' : '밀항 시도 해역(해안)'))}"></label>
<div class="col-sm-3">
<select class="form-select form-select-sm" name="seaArea">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('SAA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.seaArea}"></option>
</th:block>
</select>
</div>
</div>
<th:block th:if="${internationalCrimeArrest.violationType eq 'VLT001' || internationalCrimeArrest.violationType eq 'VLT002' || internationalCrimeArrest.violationType eq 'VLT003'|| internationalCrimeArrest.violationType eq 'VLT004'}">
<div class="row mb-1" id="meansDiv">
<th:block th:if="${internationalCrimeArrest.violationType eq 'VLT001' || internationalCrimeArrest.violationType eq 'VLT003'|| internationalCrimeArrest.violationType eq 'VLT004'}">
<label class="col-sm-2 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT001' ? '밀입국 출발지(국가)' : (internationalCrimeArrest.violationType eq 'VLT003' ? '밀출국 행선지(도착예정지)' : '밀항 행선지(도착예정지)')}"></label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="destination">
</div>
</th:block>
<label class="col-sm-2 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT001' ? '밀입국 수단(방법)' : (internationalCrimeArrest.violationType eq 'VLT002' ? '도외이탈 수단(방법)' : (internationalCrimeArrest.violationType eq 'VLT003' ? '밀출국 수단(방법)' : '밀항 수단(방법)'))}"></label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="means" id="means">
<option value="">선택</option>
<th:block th:if="${internationalCrimeArrest.violationType eq 'VLT001'}" th:each="commonCode:${session.commonCode.get('MS1')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.means}"></option>
</th:block>
<th:block th:if="${internationalCrimeArrest.violationType ne 'VLT001'}" th:each="commonCode:${session.commonCode.get('MS2')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.means}"></option>
</th:block>
<option value="etc" th:selected="${internationalCrimeArrest.means ne null && internationalCrimeArrest.means ne '' && !#strings.contains(internationalCrimeArrest.means, 'MS1') && !#strings.contains(internationalCrimeArrest.means, 'MS2')}">기타</option>
</select>
<th:block th:if="${internationalCrimeArrest.means ne null && internationalCrimeArrest.means ne '' && !#strings.contains(internationalCrimeArrest.means, 'MS1') && !#strings.contains(internationalCrimeArrest.means, 'MS2')}">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="meansEtc" th:value="${internationalCrimeArrest.means}">
</div>
</th:block>
</div>
<label class="col-sm-2 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT001' ? '밀입국 목적(사유)' : (internationalCrimeArrest.violationType eq 'VLT002' ? '도외이탈 목적(시유)' : (internationalCrimeArrest.violationType eq 'VLT003' ? '밀출국 목적(사유)' : '밀항 목적(사유)'))}"></label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="purpose" id="purpose">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PPS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.purpose}"></option>
</th:block>
<option value="etc" th:selected="${internationalCrimeArrest.purpose ne null && internationalCrimeArrest.purpose ne '' && !#strings.contains(internationalCrimeArrest.purpose, 'PPS')}">기타</option>
</select>
<th:block th:if="${internationalCrimeArrest.purpose ne null && internationalCrimeArrest.purpose ne '' && !#strings.contains(internationalCrimeArrest.purpose, 'PPS')}">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="purposeEtc" th:value="${internationalCrimeArrest.purpose}">
</div>
</th:block>
</div>
</div>
<div class="row mb-1" id="arrestAreaDiv">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">검거 지역 </label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="arrestArea" th:value="${internationalCrimeArrest.arrestArea}">
</div>
<label class="col-sm-2 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT001' ? '밀입국 시도 해역(해안)' : (internationalCrimeArrest.violationType eq 'VLT002' ? '도외이탈 시도 해역(해안)' : (internationalCrimeArrest.violationType eq 'VLT003' ? '밀출국 시도 해역(해안)' : '밀항 시도 해역(해안)'))}"></label>
<div class="col-sm-3">
<select class="form-select form-select-sm" name="seaArea">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('SAA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.seaArea}"></option>
</th:block>
</select>
</div>
</div>
</th:block>
<th:block th:if="${internationalCrimeArrest.violationAmount ne null}">
<div class="row mb-1" id="violationAmountDiv">
<label class="col-sm-2 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-2">
<input type="number" min="0" class="form-control form-control-sm" name="violationAmount" th:value="${internationalCrimeArrest.violationAmount}">
</div>
</div>
</th:block>
<div class="row mb-1" id="smugglingAmountDiv">
<th:block th:if="${internationalCrimeArrest.crimeType eq 'CTH002'}">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">밀수입출 품목</label>
<th:block th:if="${internationalCrimeArrest.crimeType eq 'CTH2'}">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">밀수입출 품목</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="smuggledGoods" id="smugglingAmount">
<option value="">선택</option>
@ -179,48 +296,50 @@
</div>
</th:block>
</div>
<label class="col-sm-2 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-2">
<input type="number" min="0" class="form-control form-control-sm" name="smugglingAmount" th:value="${internationalCrimeArrest.smugglingAmount}">
</div>
<label class="col-sm-2 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-2">
<input type="number" min="0" class="form-control form-control-sm" name="caseNum" th:value="${internationalCrimeArrest.caseNum}">
</div>
</th:block>
</div>
</div>-->
<div class="row mb-1">
<label class="col-sm-2 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-2">
<input type="text" class="form-control form-control-sm" name="occurTable" th:value="${internationalCrimeArrest.occurTable}">
</div>
<label class="col-sm-2 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-2">
<input type="text" class="form-control form-control-sm" name="arrestTable" th:value="${internationalCrimeArrest.arrestTable}">
</div>
<label class="col-sm-2 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-2">
<input type="text" class="form-control form-control-sm" name="suspectTable" th:value="${internationalCrimeArrest.suspectTable}">
</div>
</div>
<div class="row mb-1">
<label class="col-sm-2 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-2" id="crimeFormDiv">
<select class="form-select form-select-sm" name="crimeForm" id="crimeForm">
<th:block th:each="commonCode:${session.commonCode.get('CMF')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.crimeForm}"></option>
</th:block>
</select>
<div class="input-group">
<select class="form-select form-select-sm w-75" name="crimeForm" id="crimeForm">
<th:block th:each="commonCode:${session.commonCode.get('CMF')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.crimeForm}"></option>
</th:block>
</select>
<button type="button" class="btn btn-sm btn-primary w-25" id="spiAddBtn" style="display: none">
<i class="bi bi-plus"></i>
</button>
</div>
</div>
<button type="button" class="col-sm-auto btn btn-sm btn-primary" id="spiAddBtn" style="display: none">
<i class="bi bi-plus"></i>
</button>
</div>
<div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">피의자 인적사항</label>
<div class="col-sm-10">
<div class="border" id="spiDiv">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">피의자<br>인적사항</label>
<div class="col-sm-11">
<div class="border p-1" id="spiDiv">
<th:block th:if="${#lists.isEmpty(internationalCrimeArrest.suspectPersonInfoList)}">
<div class="row spi-list m-0">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">성별</label>
@ -248,6 +367,23 @@
<option value="etc">기타</option>
</select>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">신병처리</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="processResult" id="processResult">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PCR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.processResult}"></option>
</th:block>
<option value="etc" th:selected="${internationalCrimeArrest.processResult ne null && internationalCrimeArrest.processResult ne '' && !#strings.contains(internationalCrimeArrest.processResult, 'PCR')}">기타(신병인계)</option>
</select>
</div>
<!--<div class="row justify-content-end mb-1" id="processResultEtcDiv" style="display:none;">
<label 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" name="processResultEtc" th:value="${internationalCrimeArrest.processResult}">
</div>
</div>-->
</div>
</th:block>
<th:block th:unless="${#lists.isEmpty(internationalCrimeArrest.suspectPersonInfoList)}">
@ -298,37 +434,19 @@
</div>
</div>
</div>
<hr class="my-1">
<div class="row mb-1">
<label class="col-sm-2 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-2 input-daterange" id="crimeAwarenessDtDiv">
<input type="text" class="form-control form-control-sm" name="crimeAwarenessDt" id="crimeAwarenessDt" th:value="${#temporals.format(internationalCrimeArrest.crimeAwarenessDt, 'yyyy-MM-dd')}">
</div>
<label class="col-sm-2 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-2 input-daterange" id="caseSentDtDiv">
<input type="text" class="form-control form-control-sm" name="caseSentDt" id="caseSentDt" th:value="${#temporals.format(internationalCrimeArrest.caseSentDt, 'yyyy-MM-dd')}">
</div>
<label class="col-sm-2 col-form-label col-form-label-sm text-center">신병처리</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="processResult" id="processResult">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PCR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.processResult}"></option>
</th:block>
<option value="etc" th:selected="${internationalCrimeArrest.processResult ne null && internationalCrimeArrest.processResult ne '' && !#strings.contains(internationalCrimeArrest.processResult, 'PCR')}">기타(신병인계)</option>
</select>
</div>
</div>
<div class="row justify-content-end mb-1" id="processResultEtcDiv" style="display:none;">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">불법체류자인계(명)</label>
<div class="col-sm-2">
<input type="number" class="form-control form-control-sm" name="processResultEtc" th:value="${internationalCrimeArrest.processResult}">
</div>
</div>
<div class="row mb-1 justify-content-center">
<label for="caseOverviewDiv" class="col-sm-2 col-form-label col-form-label-sm text-center">범죄사실(사건개요)</label>
<div class="col-sm-10" id="caseOverviewDiv">
<label for="caseOverviewDiv" class="col-sm-1 col-form-label col-form-label-sm text-center">범죄사실<br>(사건개요)</label>
<div class="col-sm-11" id="caseOverviewDiv">
<div id="editor"></div>
<textarea type='text' class="d-none" id="content" th:utext="${internationalCrimeArrest.caseOverview}"></textarea>
</div>

View File

@ -38,21 +38,21 @@
<th:block th:if="${code.itemCd eq internationalCrimeArrest.violationType}" th:text="${code.itemValue}"></th:block>
</th:block>
</label>
<th:block th:if="${internationalCrimeArrest.crimeType ne 'CTH002'}">
<th:block th:if="${internationalCrimeArrest.crimeType ne 'CTH2'}">
<div class="col-sm-4" id="crimeNameDiv">
<div class="row">
<label class="col-sm-6 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="${internationalCrimeArrest.crimeName}"></label>
<label class="col-sm-6 col-form-label col-form-label-sm text-start" th:text="${internationalCrimeArrest.crimeName}"></label>
</div>
</div>
</th:block>
</div>
<div class="row mb-1" id="smugglingAmountDiv">
<th:block th:if="${internationalCrimeArrest.crimeType eq 'CTH002'}">
<th:block th:if="${internationalCrimeArrest.crimeType eq 'CTH2'}">
<label class="col-sm-2 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:block th:each="commonCode:${session.commonCode.get('SG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
<th:block th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
</th:block>
</label>
<div class="col-sm-2">
@ -181,7 +181,7 @@
</div>
<div class="row mb-1" id="spiInfoDiv">
<th:block th:if="${!#lists.isEmpty(internationalCrimeArrest.suspectPersonInfoList)}">
<th:block th:if="${internationalCrimeArrest.crimeType eq 'CTH002' || internationalCrimeArrest.violationType eq 'VLT005'}">
<th:block th:if="${internationalCrimeArrest.crimeType eq 'CTH2' || internationalCrimeArrest.violationType eq 'VLT005'}">
<label class="col-sm-2 col-form-label col-form-label-sm text-center" th:text="${internationalCrimeArrest.violationType eq 'VLT005' ? '불법체류 및 취업' : '피의자 정보'}">피의자 정보</label>
<div class="col-sm-10">
<div class="row" id="spiWrapper">
@ -317,6 +317,5 @@
<button type="button" class="btn btn-danger" id="icaDeleteBtn">삭제</button>
<button type="button" class="btn btn-warning" id="icaEditBtn">수정</button>
</th:block>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
</div>
</html>

View File

@ -22,13 +22,13 @@
<div class="card-body">
<ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${type eq 'all'?' active':''}" id="allTab" data-bs-toggle="tab" type="button" role="tab">전체 목록</button>
<button class="nav-link pageTab" th:classappend="${type eq 'all'?' active':''}" data-tabtype="all" id="allTab" data-bs-toggle="tab" type="button" role="tab">전체 목록</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${type eq 'stay'?' active':''}" id="stayTab" data-bs-toggle="tab" type="button" role="tab">결재대기목록</button>
<button class="nav-link pageTab" th:classappend="${type eq 'stay'?' active':''}" data-tabtype="stay" id="stayTab" data-bs-toggle="tab" type="button" role="tab">결재대기목록</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${type eq 'commit'?' active':''}" id="commitTab" data-bs-toggle="tab" type="button" role="tab">결재처리목록</button>
<button class="nav-link pageTab" th:classappend="${type eq 'commit'?' active':''}" data-tabtype="commit" id="commitTab" data-bs-toggle="tab" type="button" role="tab">결재처리목록</button>
</li>
</ul>
<div class="tab-content bg-white border border-top-0 p-2" id="planContent">
@ -105,19 +105,17 @@
</thead>
<tbody class="table-group-divider">
<tr class="operationPlanTr" th:each="list,cnt:${opList}">
<input type="hidden" class="opKey" th:value="${list.opKey}">
<td th:text="${cnt.count}"></td>
<td th:text="${list.opName}"></td>
<td th:text="${list.opBirth}"></td>
<td th:text="${list.opPosition}"></td>
<td th:text="${list.opPhone}"></td>
<td th:text="${list.opRank}"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:if="${list.status eq 'DST004'} or ${list.status eq 'DST006'}">운영중</td>
<td th:unless="${list.status eq 'DST004'} or ${list.status eq 'DST006'}" th:text="${list.opState}"></td>
<td th:text="${list.opState}"></td>
<th:block>
<input type="hidden" class="opKey" th:value="${list.opKey}">
</th:block>
<td th:text="${list.opRank}"></td>
</tr>
</tbody>
</table>