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

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; package com.dbnt.faisp.main.faStatistics.internationalCrimeArrest;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService; 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.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.faStatistics.internationalCrimeArrest.service.InternationalCrimeArrestService;
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService; 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.organMgt.service.OrganConfigService;
import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfo;
import com.dbnt.faisp.util.Excel; import com.dbnt.faisp.util.Excel;
@ -31,7 +28,7 @@ public class InternationalCrimeArrestController {
private final AuthMgtService authMgtService; private final AuthMgtService authMgtService;
private final InternationalCrimeArrestService internationalCrimeArrestService; private final InternationalCrimeArrestService internationalCrimeArrestService;
private final OrganConfigService organConfigService; private final OrganConfigService organConfigService;
private final SuspectPersonInfoRepository suspectPersonInfoRepository; private final IcaSuspectInfoRepository suspectPersonInfoRepository;
private final MenuMgtService menuMgtService; private final MenuMgtService menuMgtService;
@GetMapping("/internationalCrimeArrest") @GetMapping("/internationalCrimeArrest")
@ -49,7 +46,7 @@ public class InternationalCrimeArrestController {
List<InternationalCrimeArrest> internationalCrimeArrestList = internationalCrimeArrestService.selectInternationalCrimeArrestList(internationalCrimeArrest); List<InternationalCrimeArrest> internationalCrimeArrestList = internationalCrimeArrestService.selectInternationalCrimeArrestList(internationalCrimeArrest);
for (InternationalCrimeArrest ica:internationalCrimeArrestList) { for (InternationalCrimeArrest ica:internationalCrimeArrestList) {
ica.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(ica.getIcaKey())); ica.setSuspectInfoList(suspectPersonInfoRepository.findByIcaKey(ica.getIcaKey()));
} }
mav.addObject("internationalCrimeArrestList", internationalCrimeArrestList); mav.addObject("internationalCrimeArrestList", internationalCrimeArrestList);
@ -68,9 +65,12 @@ public class InternationalCrimeArrestController {
internationalCrimeArrest = internationalCrimeArrestService.selectInternationalCrimeArrest(internationalCrimeArrest.getIcaKey()); internationalCrimeArrest = internationalCrimeArrestService.selectInternationalCrimeArrest(internationalCrimeArrest.getIcaKey());
}else{ }else{
internationalCrimeArrest.setWrtOrgan(loginUser.getOgCd()); 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.setWrtDt(LocalDateTime.now());
internationalCrimeArrest.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(internationalCrimeArrest.getIcaKey())); internationalCrimeArrest.setSuspectInfoList(suspectPersonInfoRepository.findByIcaKey(internationalCrimeArrest.getIcaKey()));
} }
mav.addObject("organConfigList", organConfigService.selectOrganList()); mav.addObject("organConfigList", organConfigService.selectOrganList());
mav.addObject("internationalCrimeArrest", internationalCrimeArrest); 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 @DynamicUpdate
@Table(name = "international_crime_arrest") @Table(name = "international_crime_arrest")
public class InternationalCrimeArrest extends BaseModel { public class InternationalCrimeArrest extends BaseModel {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ica_key") @Column(name = "ica_key")
private Integer icaKey; private Integer icaKey;
@Column(name = "organ") @Column(name = "organ")
private String organ; private String organ;
@Column(name = "department") @Column(name = "department")
private String department; private String department;
@Column(name = "crime_type") @Column(name = "crime_type")
private String crimeType; private String crimeType;
@Column(name = "violation_type") @Column(name = "violation_type")
private String violationType; private String violationType;
@Column(name = "crime_name") @Column(name = "crime_name")
private String crimeName; private String crimeName;
@Column(name = "smuggling_amount") @Column(name = "occur_table")
private String smugglingAmount; private String occurTable;
@Column(name = "occur_table") @Column(name = "arrest_table")
private String occurTable; private String arrestTable;
@Column(name = "arrest_table") @Column(name = "suspect_table")
private String arrestTable; private String suspectTable;
@Column(name = "suspect_table") @Column(name = "crime_awareness_dt")
private String suspectTable; @DateTimeFormat(pattern = "yyyy-MM-dd")
@Column(name = "crime_awareness_dt") private LocalDate crimeAwarenessDt;
@DateTimeFormat(pattern = "yyyy-MM-dd") @Column(name = "case_sent_dt")
private LocalDate crimeAwarenessDt; @DateTimeFormat(pattern = "yyyy-MM-dd")
@Column(name = "case_sent_dt") private LocalDate caseSentDt;
@DateTimeFormat(pattern = "yyyy-MM-dd") @Column(name = "case_num")
private LocalDate caseSentDt; private String caseNum;
@Column(name = "process_result") @Column(name = "case_overview")
private String processResult; private String caseOverview;
@Column(name = "other_crime") @Column(name = "crime_form")
private String otherCrime; private String crimeForm;
@Column(name = "case_num") @Column(name = "status")
private String caseNum; private String status;
@Column(name = "case_overview") @Column(name = "wrt_organ")
private String caseOverview; private String wrtOrgan;
@Column(name = "sea_area") @Column(name = "wrt_part")
private String seaArea; private String wrtPart;
@Column(name = "arrest_area") @Column(name = "wrt_user_seq")
private String arrestArea; private Integer wrtUserSeq;
@Column(name = "means") @Column(name = "wrt_user_grd")
private String means; private String wrtUserGrd;
@Column(name = "purpose") @Column(name = "wrt_user_nm")
private String purpose; private String wrtUserNm;
@Column(name = "smuggled_goods") @Column(name = "wrt_dt")
private String smuggledGoods; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
@Column(name = "crackdown_personel") private LocalDateTime wrtDt;
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;
@Transient @Transient
private List<SuspectPersonInfo> suspectPersonInfoList; private List<IcaSuspectInfo> suspectInfoList;
@Transient @Transient
private List<Integer> deleteSpiKeyList; private IcaSubInfo icaSubInfo;
@Transient
private String processResultEtc;
@Transient
private String smuggledGoodsEtc;
@Transient
private String meansEtc;
@Transient
private String purposesEtc;
} }

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; 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.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
@ -11,10 +11,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
public interface SuspectPersonInfoRepository extends JpaRepository<SuspectPersonInfo, SuspectPersonInfo> { public interface IcaSubInfoRepository extends JpaRepository<IcaSubInfo, Integer> {
List<SuspectPersonInfo> findByIcaKey(Integer icaKey);
@Transactional
@Modifying
@Query("delete from SuspectPersonInfo s where s.spiKey in :idList")
void deleteAllByIdInQuery(@Param("idList") List<Integer> deleteKeyList);
} }

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) @Modifying(clearAutomatically = true)
@Query("update InternationalCrimeArrest set contentStatus = :contentStatus where icaKey = :icaKey") @Query("update InternationalCrimeArrest set status = :status where icaKey = :icaKey")
void bulkModifyingByIcaKeyToContentStatus(Integer icaKey, String contentStatus); 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.config.BaseService;
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.mapper.InternationalCrimeArrestMapper; 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.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.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 com.dbnt.faisp.util.ParamMap;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -19,7 +20,8 @@ import java.util.List;
public class InternationalCrimeArrestService extends BaseService { public class InternationalCrimeArrestService extends BaseService {
private final InternationalCrimeArrestRepository internationalCrimeArrestRepository; private final InternationalCrimeArrestRepository internationalCrimeArrestRepository;
private final InternationalCrimeArrestMapper internationalCrimeArrestMapper; private final InternationalCrimeArrestMapper internationalCrimeArrestMapper;
private final SuspectPersonInfoRepository suspectPersonInfoRepository; private final IcaSuspectInfoRepository icaSuspectInfoRepository;
private final IcaSubInfoRepository icaSubInfoRepository;
public List<InternationalCrimeArrest> selectInternationalCrimeArrestList(InternationalCrimeArrest InternationalCrimeArrest) { public List<InternationalCrimeArrest> selectInternationalCrimeArrestList(InternationalCrimeArrest InternationalCrimeArrest) {
return internationalCrimeArrestMapper.selectInternationalCrimeArrestList(InternationalCrimeArrest); return internationalCrimeArrestMapper.selectInternationalCrimeArrestList(InternationalCrimeArrest);
@ -38,50 +40,31 @@ public class InternationalCrimeArrestService extends BaseService {
} }
public InternationalCrimeArrest selectInternationalCrimeArrest(Integer icaKey) { public InternationalCrimeArrest selectInternationalCrimeArrest(Integer icaKey) {
InternationalCrimeArrest savedInternationalCrimeArrest = internationalCrimeArrestRepository.findById(icaKey).orElse(null); InternationalCrimeArrest savedICA = internationalCrimeArrestRepository.findById(icaKey).orElse(null);
if (savedInternationalCrimeArrest != null) { if (savedICA != null) {
savedInternationalCrimeArrest.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(icaKey)); savedICA.setSuspectInfoList(icaSuspectInfoRepository.findByIcaKey(icaKey));
} }
return savedInternationalCrimeArrest; return savedICA;
} }
@Transactional @Transactional
public Integer savedInternationalCrimeArrest(InternationalCrimeArrest internationalCrimeArrest) { public Integer savedInternationalCrimeArrest(InternationalCrimeArrest ica) {
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());
}
Integer icaKey = internationalCrimeArrestRepository.save(internationalCrimeArrest).getIcaKey(); Integer icaKey = internationalCrimeArrestRepository.save(ica).getIcaKey();
icaSuspectInfoRepository.deleteByIcaKey(icaKey);
if (internationalCrimeArrest.getDeleteSpiKeyList() != null) { Integer i=1;
suspectPersonInfoRepository.deleteAllByIdInQuery(internationalCrimeArrest.getDeleteSpiKeyList()); for(IcaSuspectInfo suspectInfo: ica.getSuspectInfoList()){
suspectInfo.setIcaKey(icaKey);
suspectInfo.setSpiKey(i++);
} }
icaSuspectInfoRepository.saveAll(ica.getSuspectInfoList());
if (internationalCrimeArrest.getSuspectPersonInfoList() != null) { icaSubInfoRepository.save(ica.getIcaSubInfo());
for(SuspectPersonInfo info: internationalCrimeArrest.getSuspectPersonInfoList()){
if (info.getCountryEtc() != null) {
info.setCountry(info.getCountryEtc());
}
info.setIcaKey(icaKey);
}
suspectPersonInfoRepository.saveAll(internationalCrimeArrest.getSuspectPersonInfoList());
}
return icaKey; return icaKey;
} }
@Transactional @Transactional
public void deleteInternationalCrimeArrest(InternationalCrimeArrest internationalCrimeArrest) { 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'); $("#icaViewModal").modal('hide');
getIcaEditModal(Number($("#icaViewBody").find("[name='icaKey']").val())); getIcaEditModal(Number($("#icaViewBody").find("[name='icaKey']").val()));
}); });
$(document).on('click', '#icaDeleteBtn', function (){ $(document).on('click', '#icaDeleteBtn', function (){
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
@ -65,372 +66,6 @@ $(document).on('change', '#searchCrimeType', function (){
dynamicOption('#searchViolationType', $(this).val(), '위반유형'); 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){ function getIcaViewModal(icaKey){
$.ajax({ $.ajax({
url: '/faStatistics/internationalCrimeArrestViewModal', url: '/faStatistics/internationalCrimeArrestViewModal',

View File

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

View File

@ -100,10 +100,10 @@
</div> </div>
<div class="row justify-content-end"> <div class="row justify-content-end">
<div class="col-2"> <div class="col-2">
<input type="text" class="form-control form-control-sm 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>
<div class="col-2"> <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>
<div class="col-2"> <div class="col-2">
<select class="form-select form-select-sm" name="processResult" id="processResult"> <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" name="wrtDt" th:value="${#temporals.format(internationalCrimeArrest.wrtDt, 'yyyy-MM-dd HH:mm')}">
<input type="hidden" id="contentStatus" name="contentStatus"> <input type="hidden" id="contentStatus" name="contentStatus">
<div class="row mb-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"> <div class="col-sm-2">
<select class="form-select form-select-sm" name="organ"> <select class="form-select form-select-sm" name="organ">
<option value="">선택</option> <option value="">선택</option>
@ -25,7 +25,7 @@
</th:block> </th:block>
</select> </select>
</div> </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"> <div class="col-sm-2" id="departmentDiv">
<select class="form-select form-select-sm" name="department"> <select class="form-select form-select-sm" name="department">
<option value="">선택</option> <option value="">선택</option>
@ -37,9 +37,8 @@
</select> </select>
</div> </div>
</div> </div>
<hr class="my-1">
<div class="row mb-1" id="spiParentDiv"> <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"> <div class="col-sm-2">
<select class="form-select form-select-sm" name="crimeType" id="crimeType"> <select class="form-select form-select-sm" name="crimeType" id="crimeType">
<option value="">선택</option> <option value="">선택</option>
@ -49,122 +48,240 @@
</th:block> </th:block>
</select> </select>
</div> </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"> <div class="col-sm-2">
<select class="form-select form-select-sm" name="violationType" id="violationType"> <select class="form-select form-select-sm" name="violationType" id="violationType">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${session.commonCode.get(internationalCrimeArrest.crimeType)}"> <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> </th:block>
</select> </select>
</div> </div>
<div class="col-sm-4" id="crimeNameDiv"> <label class="col-sm-1 col-form-label col-form-label-sm text-center crimeName">죄명</label>
<div class="row"> <div class="col-sm-2 crimeName">
<label class="col-sm-6 col-form-label col-form-label-sm text-center">죄명</label> <input type="text" class="form-control form-control-sm" name="crimeName" th:value="${internationalCrimeArrest.crimeName}">
<div class="col-sm-6"> </div>
<input type="text" class="form-control form-control-sm" name="crimeName" th:value="${internationalCrimeArrest.crimeName}"> </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> </div>
</div> </div>
<div class="row mb-1" id="spiInfoDiv"> <div class="row mb-1" id="meansDiv">
<th:block th:if="${!#lists.isEmpty(internationalCrimeArrest.suspectPersonInfoList)}"> <th:block th:if="${internationalCrimeArrest.violationType eq 'VLT001' || internationalCrimeArrest.violationType eq 'VLT003'|| internationalCrimeArrest.violationType eq 'VLT004'}">
<th:block th:if="${internationalCrimeArrest.crimeType eq 'CTH002' || internationalCrimeArrest.violationType eq 'VLT005'}"> <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>
<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-2">
<div class="col-sm-10"> <input type="text" class="form-control form-control-sm" name="destination">
<div class="row" id="spiWrapper"> </div>
<th:block th:if="${internationalCrimeArrest.violationType eq 'VLT005'}"> </th:block>
<label class="col-sm-2 col-form-label col-form-label-sm text-center entryVisa">입국비자</label> <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 entryVisa"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="entryVisa" th:value="${internationalCrimeArrest.suspectPersonInfoList[0].entryVisa}"> <select class="form-select form-select-sm" name="means" id="means">
</div> <option value="">선택</option>
</th:block> <th:block th:if="${internationalCrimeArrest.violationType eq 'VLT001'}" th:each="commonCode:${session.commonCode.get('MS1')}">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">체류 자격</label> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
<div class="col-sm-2"> th:selected="${commonCode.itemCd eq internationalCrimeArrest.means}"></option>
<input type="text" class="form-control form-control-sm" name="stayQualification" th:value="${internationalCrimeArrest.suspectPersonInfoList[0].stayQualification}"> </th:block>
</div> <th:block th:if="${internationalCrimeArrest.violationType ne 'VLT001'}" th:each="commonCode:${session.commonCode.get('MS2')}">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">체류기간 만료일</label> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
<div class="col-sm-2 input-daterange" id="stayQualificationDiv"> th:selected="${commonCode.itemCd eq internationalCrimeArrest.means}"></option>
<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')}"> </th:block>
</div> <option value="etc" th:selected="${internationalCrimeArrest.means ne null && internationalCrimeArrest.means ne '' && !#strings.contains(internationalCrimeArrest.means, 'MS1') && !#strings.contains(internationalCrimeArrest.means, 'MS2')}">기타</option>
</div> </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> </div>
</th:block> </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> </div>
<th:block th:if="${internationalCrimeArrest.violationType eq 'VLT001' || internationalCrimeArrest.violationType eq 'VLT002' || internationalCrimeArrest.violationType eq 'VLT003'|| internationalCrimeArrest.violationType eq 'VLT004'}"> <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:block th:if="${internationalCrimeArrest.violationAmount ne null}"> <th:block th:if="${internationalCrimeArrest.violationAmount ne null}">
<div class="row mb-1" id="violationAmountDiv"> <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"> <div class="col-sm-2">
<input type="number" min="0" class="form-control form-control-sm" name="violationAmount" th:value="${internationalCrimeArrest.violationAmount}"> <input type="number" min="0" class="form-control form-control-sm" name="violationAmount" th:value="${internationalCrimeArrest.violationAmount}">
</div> </div>
</div> </div>
</th:block> </th:block>
<div class="row mb-1" id="smugglingAmountDiv"> <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-1 col-form-label col-form-label-sm text-center">밀수입출 품목</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" name="smuggledGoods" id="smugglingAmount"> <select class="form-select form-select-sm" name="smuggledGoods" id="smugglingAmount">
<option value="">선택</option> <option value="">선택</option>
@ -179,48 +296,50 @@
</div> </div>
</th:block> </th:block>
</div> </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"> <div class="col-sm-2">
<input type="number" min="0" class="form-control form-control-sm" name="smugglingAmount" th:value="${internationalCrimeArrest.smugglingAmount}"> <input type="number" min="0" class="form-control form-control-sm" name="smugglingAmount" th:value="${internationalCrimeArrest.smugglingAmount}">
</div> </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"> <div class="col-sm-2">
<input type="number" min="0" class="form-control form-control-sm" name="caseNum" th:value="${internationalCrimeArrest.caseNum}"> <input type="number" min="0" class="form-control form-control-sm" name="caseNum" th:value="${internationalCrimeArrest.caseNum}">
</div> </div>
</th:block> </th:block>
</div> </div>-->
<div class="row mb-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"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="occurTable" th:value="${internationalCrimeArrest.occurTable}"> <input type="text" class="form-control form-control-sm" name="occurTable" th:value="${internationalCrimeArrest.occurTable}">
</div> </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"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="arrestTable" th:value="${internationalCrimeArrest.arrestTable}"> <input type="text" class="form-control form-control-sm" name="arrestTable" th:value="${internationalCrimeArrest.arrestTable}">
</div> </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"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="suspectTable" th:value="${internationalCrimeArrest.suspectTable}"> <input type="text" class="form-control form-control-sm" name="suspectTable" th:value="${internationalCrimeArrest.suspectTable}">
</div> </div>
</div> </div>
<div class="row mb-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" id="crimeFormDiv"> <div class="col-sm-2" id="crimeFormDiv">
<select class="form-select form-select-sm" name="crimeForm" id="crimeForm"> <div class="input-group">
<th:block th:each="commonCode:${session.commonCode.get('CMF')}"> <select class="form-select form-select-sm w-75" name="crimeForm" id="crimeForm">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" <th:block th:each="commonCode:${session.commonCode.get('CMF')}">
th:selected="${commonCode.itemCd eq internationalCrimeArrest.crimeForm}"></option> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
</th:block> th:selected="${commonCode.itemCd eq internationalCrimeArrest.crimeForm}"></option>
</select> </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> </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>
<div class="row mb-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">피의자<br>인적사항</label>
<div class="col-sm-10"> <div class="col-sm-11">
<div class="border" id="spiDiv"> <div class="border p-1" id="spiDiv">
<th:block th:if="${#lists.isEmpty(internationalCrimeArrest.suspectPersonInfoList)}"> <th:block th:if="${#lists.isEmpty(internationalCrimeArrest.suspectPersonInfoList)}">
<div class="row spi-list m-0"> <div class="row spi-list m-0">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">성별</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">성별</label>
@ -248,6 +367,23 @@
<option value="etc">기타</option> <option value="etc">기타</option>
</select> </select>
</div> </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> </div>
</th:block> </th:block>
<th:block th:unless="${#lists.isEmpty(internationalCrimeArrest.suspectPersonInfoList)}"> <th:block th:unless="${#lists.isEmpty(internationalCrimeArrest.suspectPersonInfoList)}">
@ -298,37 +434,19 @@
</div> </div>
</div> </div>
</div> </div>
<hr class="my-1">
<div class="row mb-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"> <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')}"> <input type="text" class="form-control form-control-sm" name="crimeAwarenessDt" id="crimeAwarenessDt" th:value="${#temporals.format(internationalCrimeArrest.crimeAwarenessDt, 'yyyy-MM-dd')}">
</div> </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"> <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')}"> <input type="text" class="form-control form-control-sm" name="caseSentDt" id="caseSentDt" th:value="${#temporals.format(internationalCrimeArrest.caseSentDt, 'yyyy-MM-dd')}">
</div> </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>
<div class="row mb-1 justify-content-center"> <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> <label for="caseOverviewDiv" class="col-sm-1 col-form-label col-form-label-sm text-center">범죄사실<br>(사건개요)</label>
<div class="col-sm-10" id="caseOverviewDiv"> <div class="col-sm-11" id="caseOverviewDiv">
<div id="editor"></div> <div id="editor"></div>
<textarea type='text' class="d-none" id="content" th:utext="${internationalCrimeArrest.caseOverview}"></textarea> <textarea type='text' class="d-none" id="content" th:utext="${internationalCrimeArrest.caseOverview}"></textarea>
</div> </div>

View File

@ -38,21 +38,21 @@
<th:block th:if="${code.itemCd eq internationalCrimeArrest.violationType}" th:text="${code.itemValue}"></th:block> <th:block th:if="${code.itemCd eq internationalCrimeArrest.violationType}" th:text="${code.itemValue}"></th:block>
</th:block> </th:block>
</label> </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="col-sm-4" id="crimeNameDiv">
<div class="row"> <div class="row">
<label class="col-sm-6 col-form-label col-form-label-sm text-center">죄명</label> <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>
</div> </div>
</th:block> </th:block>
</div> </div>
<div class="row mb-1" id="smugglingAmountDiv"> <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-center">밀수입출 품목</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start"> <label class="col-sm-2 col-form-label col-form-label-sm text-start">
<th:block th:each="commonCode:${session.commonCode.get('SG')}"> <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> </th:block>
</label> </label>
<div class="col-sm-2"> <div class="col-sm-2">
@ -181,7 +181,7 @@
</div> </div>
<div class="row mb-1" id="spiInfoDiv"> <div class="row mb-1" id="spiInfoDiv">
<th:block th:if="${!#lists.isEmpty(internationalCrimeArrest.suspectPersonInfoList)}"> <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> <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="col-sm-10">
<div class="row" id="spiWrapper"> <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-danger" id="icaDeleteBtn">삭제</button>
<button type="button" class="btn btn-warning" id="icaEditBtn">수정</button> <button type="button" class="btn btn-warning" id="icaEditBtn">수정</button>
</th:block> </th:block>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
</div> </div>
</html> </html>

View File

@ -22,13 +22,13 @@
<div class="card-body"> <div class="card-body">
<ul class="nav nav-tabs" id="userTab" role="tablist"> <ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link" 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>
<li class="nav-item" role="presentation"> <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>
<li class="nav-item" role="presentation"> <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> </li>
</ul> </ul>
<div class="tab-content bg-white border border-top-0 p-2" id="planContent"> <div class="tab-content bg-white border border-top-0 p-2" id="planContent">
@ -105,19 +105,17 @@
</thead> </thead>
<tbody class="table-group-divider"> <tbody class="table-group-divider">
<tr class="operationPlanTr" th:each="list,cnt:${opList}"> <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="${cnt.count}"></td>
<td th:text="${list.opName}"></td> <td th:text="${list.opName}"></td>
<td th:text="${list.opBirth}"></td> <td th:text="${list.opBirth}"></td>
<td th:text="${list.opPosition}"></td> <td th:text="${list.opPosition}"></td>
<td th:text="${list.opPhone}"></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: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: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:unless="${list.status eq 'DST004'} or ${list.status eq 'DST006'}" th:text="${list.opState}"></td>
<td th:text="${list.opState}"></td> <td th:text="${list.opState}"></td>
<th:block> <td th:text="${list.opRank}"></td>
<input type="hidden" class="opKey" th:value="${list.opKey}">
</th:block>
</tr> </tr>
</tbody> </tbody>
</table> </table>