From 3ca5daeff77e1aa82b70b50d947651283cba9c55 Mon Sep 17 00:00:00 2001 From: jiHyung Date: Mon, 17 Oct 2022 14:23:16 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B5=AD=EC=A0=9C=EB=B2=94=EC=A3=84=EA=B2=80?= =?UTF-8?q?=EA=B1=B0=ED=98=84=ED=99=A9=20=EC=A4=91=EA=B0=84=20=EC=BB=A4?= =?UTF-8?q?=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InternationalCrimeArrestController.java | 114 +++++ .../InternationalCrimeArrestMapper.java | 14 + .../model/InternationalCrimeArrest.java | 93 ++++ .../model/SuspectPersonInfo.java | 49 ++ .../InternationalCrimeArrestRepository.java | 19 + .../SuspectPersonInfoRepository.java | 12 + .../InternationalCrimeArrestService.java | 63 +++ .../InternationalCrimeArrestMapper.xml | 81 +++ .../faStatistics/internationalCrimeArrest.js | 473 ++++++++++++++++++ .../internationalCrimeArrest.html | 122 +++++ .../internationalCrimeArrestEditModal.html | 205 ++++++++ 11 files changed, 1245 insertions(+) create mode 100644 src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java create mode 100644 src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java create mode 100644 src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/InternationalCrimeArrest.java create mode 100644 src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/SuspectPersonInfo.java create mode 100644 src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/InternationalCrimeArrestRepository.java create mode 100644 src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/SuspectPersonInfoRepository.java create mode 100644 src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java create mode 100644 src/main/resources/mybatisMapper/InternationalCrimeArrestMapper.xml create mode 100644 src/main/resources/static/js/faStatistics/internationalCrimeArrest.js create mode 100644 src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrest.html create mode 100644 src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal.html diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java new file mode 100644 index 00000000..53433855 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java @@ -0,0 +1,114 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.codeMgt.model.CodeMgt; +import com.dbnt.faisp.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.SuspectPersonInfo; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository.SuspectPersonInfoRepository; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.service.InternationalCrimeArrestService; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.ArrestType; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.BoardInvestigation; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.RelatedReports; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.service.BoardInvestigationService; +import com.dbnt.faisp.organMgt.model.OrganConfig; +import com.dbnt.faisp.organMgt.service.OrganConfigService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/faStatistics") +public class InternationalCrimeArrestController { + + private final AuthMgtService authMgtService; + private final InternationalCrimeArrestService internationalCrimeArrestService; + private final CodeMgtService codeMgtService; + private final OrganConfigService organConfigService; + private final SuspectPersonInfoRepository suspectPersonInfoRepository; + + @GetMapping("/internationalCrimeArrest") + public ModelAndView arrest(@AuthenticationPrincipal UserInfo loginUser,InternationalCrimeArrest internationalCrimeArrest) { + ModelAndView mav = new ModelAndView("faStatistics/internationalCrimeArrest/internationalCrimeArrest"); + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/internationalCrimeArrest").get(0).getAccessAuth(); + + mav.addObject("accessAuth", accessAuth); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + + internationalCrimeArrest.setQueryInfo(); + mav.addObject("internationalCrimeArrestList", internationalCrimeArrestService.selectInternationalCrimeArrestList(internationalCrimeArrest)); + internationalCrimeArrest.setContentCnt(internationalCrimeArrestService.selectInternationalCrimeArrestListCnt(internationalCrimeArrest)); + internationalCrimeArrest.setPaginationInfo(); + mav.addObject("searchParams", internationalCrimeArrest); + return mav; + } + + @GetMapping("/internationalCrimeArrest/internationalCrimeArrestEditModal") + public ModelAndView ivsgtEditModal(@AuthenticationPrincipal UserInfo loginUser, InternationalCrimeArrest internationalCrimeArrest){ + ModelAndView mav = new ModelAndView("faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal"); + if(internationalCrimeArrest.getIcaKey()!=null){ + internationalCrimeArrest = internationalCrimeArrestService.selectInternationalCrimeArrest(internationalCrimeArrest.getIcaKey()); + }else{ + internationalCrimeArrest.setWrtOrgan(loginUser.getOgCd()); + internationalCrimeArrest.setWrtNm(loginUser.getUserNm()); + internationalCrimeArrest.setWrtDt(LocalDateTime.now()); + internationalCrimeArrest.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(internationalCrimeArrest.getIcaKey())); + } + mav.addObject("organConfigList", selectOrganList()); + mav.addObject("internationalCrimeArrest", internationalCrimeArrest); + return mav; + } + + @GetMapping("/internationalCrimeArrest/internationalCrimeArrestViewModal") + public ModelAndView ivsgtViewModal(@AuthenticationPrincipal UserInfo loginUser, InternationalCrimeArrest internationalCrimeArrest){ + ModelAndView mav = new ModelAndView("faStatistics/internationalCrimeArrest/internationalCrimeArrestViewModal"); + internationalCrimeArrest = internationalCrimeArrestService.selectInternationalCrimeArrest(internationalCrimeArrest.getIcaKey()); + mav.addObject("internationalCrimeArrest", internationalCrimeArrest); + mav.addObject("userSeq",loginUser.getUserSeq()); + //메뉴권한 확인 + mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/internationalCrimeArrest").get(0).getAccessAuth()); + return mav; + } + + @PostMapping("/internationalCrimeArrest/saveInternationalCrimeArrest") + public Integer saveInternationalCrimeArrest(@AuthenticationPrincipal UserInfo loginUser, + InternationalCrimeArrest internationalCrimeArrest){ + internationalCrimeArrest.setWrtUserSeq(loginUser.getUserSeq()); + return internationalCrimeArrestService.savedInternationalCrimeArrest(internationalCrimeArrest); + } + + public List selectOrganList(){ + List organCdList = codeMgtService.selectCodeMgtList("OG"); + List organConfigList = organConfigService.selectSavedOrganList(); + for(CodeMgt organCode: organCdList){ + if(!organCode.getItemCd().equals("OG001")){ + boolean usedFlag = false; + for(OrganConfig organConfig: organConfigList){ + if(organCode.getItemCd().equals(organConfig.getOrganCd())){ + usedFlag = true; + organConfig.setOrganNm(organCode.getItemValue()); + organConfig.setUseState("T"); + break; + } + } + if(!usedFlag){ + OrganConfig organConfig = new OrganConfig(); + organConfig.setOrganCd(organCode.getItemCd()); + organConfig.setOrganNm(organCode.getItemValue()); + organConfig.setUseState("F"); + organConfigList.add(organConfig); + } + } + } + return organConfigList; + } +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java new file mode 100644 index 00000000..394eb3ed --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.mapper; + +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.SuspectPersonInfo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface InternationalCrimeArrestMapper{ + List selectInternationalCrimeArrestList(InternationalCrimeArrest internationalCrimeArrest); + Integer selectInternationalCrimeArrestListCnt(InternationalCrimeArrest internationalCrimeArrest); + List selectSuspectPersonInfoList(Integer icaKey); +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/InternationalCrimeArrest.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/InternationalCrimeArrest.java new file mode 100644 index 00000000..9c47de3f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/InternationalCrimeArrest.java @@ -0,0 +1,93 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.bind.annotation.RequestParam; + +import javax.persistence.*; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@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 = "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 + private List suspectPersonInfoList; + @Transient + private List deleteSpikeyList; +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/SuspectPersonInfo.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/SuspectPersonInfo.java new file mode 100644 index 00000000..20a4a282 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/model/SuspectPersonInfo.java @@ -0,0 +1,49 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import 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; + @Column(name = "crime_form") + private String crimeForm; + + @Transient + private List icaKeyList; + @Transient + private List spiKeyList; +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/InternationalCrimeArrestRepository.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/InternationalCrimeArrestRepository.java new file mode 100644 index 00000000..1e7d65bb --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/InternationalCrimeArrestRepository.java @@ -0,0 +1,19 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository; + +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + + +public interface InternationalCrimeArrestRepository extends JpaRepository { + @Transactional + @Modifying + @Query("delete from SuspectPersonInfo s where s.spiKey in :idList") + void deleteAllByIdInQuery(@Param("idList") List deleteSpikeyList); +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/SuspectPersonInfoRepository.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/SuspectPersonInfoRepository.java new file mode 100644 index 00000000..114dc61c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/repository/SuspectPersonInfoRepository.java @@ -0,0 +1,12 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository; + +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.SuspectPersonInfo; + +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface SuspectPersonInfoRepository extends JpaRepository { + List findByIcaKey(Integer icaKey); +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java new file mode 100644 index 00000000..5a8824d4 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java @@ -0,0 +1,63 @@ +package com.dbnt.faisp.faStatistics.internationalCrimeArrest.service; + + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.config.FileInfo; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.mapper.InternationalCrimeArrestMapper; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.SuspectPersonInfo; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository.InternationalCrimeArrestRepository; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository.SuspectPersonInfoRepository; +import com.dbnt.faisp.fpiMgt.affair.model.HashTag; +import com.dbnt.faisp.fpiMgt.affair.repository.HashTagRepository; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.mapper.BoardInvestigationMapper; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.*; +import com.dbnt.faisp.ivsgtMgt.boardInvestigation.repository.*; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@Service +@RequiredArgsConstructor +public class InternationalCrimeArrestService extends BaseService { + private final InternationalCrimeArrestRepository internationalCrimeArrestRepository; + private final InternationalCrimeArrestMapper internationalCrimeArrestMapper; + private final SuspectPersonInfoRepository suspectPersonInfoRepository; + + public List selectInternationalCrimeArrestList(InternationalCrimeArrest InternationalCrimeArrest) { + return internationalCrimeArrestMapper.selectInternationalCrimeArrestList(InternationalCrimeArrest); + } + + public Integer selectInternationalCrimeArrestListCnt(InternationalCrimeArrest internationalCrimeArrest) { + return internationalCrimeArrestMapper.selectInternationalCrimeArrestListCnt(internationalCrimeArrest); + } + + public InternationalCrimeArrest selectInternationalCrimeArrest(Integer icaKey) { + InternationalCrimeArrest savedInternationalCrimeArrest = internationalCrimeArrestRepository.findById(icaKey).orElse(null); + if (savedInternationalCrimeArrest != null) { + savedInternationalCrimeArrest.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(icaKey)); + } + return savedInternationalCrimeArrest; + } + + @Transactional + public Integer savedInternationalCrimeArrest(InternationalCrimeArrest internationalCrimeArrest) { + Integer icaKey = internationalCrimeArrestRepository.save(internationalCrimeArrest).getIcaKey(); + + if (internationalCrimeArrest.getDeleteSpikeyList() != null) { + internationalCrimeArrestRepository.deleteAllByIdInQuery(internationalCrimeArrest.getDeleteSpikeyList()); + } + + if (internationalCrimeArrest.getSuspectPersonInfoList() != null) { + suspectPersonInfoRepository.saveAll(internationalCrimeArrest.getSuspectPersonInfoList()); + } + + return icaKey; + } +} diff --git a/src/main/resources/mybatisMapper/InternationalCrimeArrestMapper.xml b/src/main/resources/mybatisMapper/InternationalCrimeArrestMapper.xml new file mode 100644 index 00000000..0fa39c4b --- /dev/null +++ b/src/main/resources/mybatisMapper/InternationalCrimeArrestMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + AND a.wrt_organ = #{wrtOrgan} + + + + And a.wrt_dt >= #{startDate}::DATE + + + AND a.wrt_dt <= #{endDate}::DATE+1 + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/faStatistics/internationalCrimeArrest.js b/src/main/resources/static/js/faStatistics/internationalCrimeArrest.js new file mode 100644 index 00000000..ab11f50e --- /dev/null +++ b/src/main/resources/static/js/faStatistics/internationalCrimeArrest.js @@ -0,0 +1,473 @@ +$(document).on('click', '#icaAddBtn', function () { + getIcaEditModal(null); +}); + +$(document).on('click', '#saveIcaBtn', function (){ + saveInternationalCrimeArrest('N') +}); + +$(document).on('click', '#saveTempBtn', function (){ + saveInternationalCrimeArrest('Y') +}); + +$(document).on('change', '#crimeForm', function (){ + $('#crimeFormDiv').next().remove(); + if ($(this).val() != 'CMF001') { + $('#crimeFormDiv').after(''); + } else { + $("#spiDiv").children('.dynamic').remove(); + } +}); + +$(document).on('click', '#spiAddBtn', function (){ + + let sex = ''; + commonCode.SEX.forEach(function (item){ + sex += ''; + }); + + let age = ''; + commonCode.AGE.forEach(function (item){ + age += ''; + }) + + let country = ''; + commonCode.NNY.forEach(function (item){ + country += ''; + }) + + $("#spiDiv").append( + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + ); +}); + +$(document).on('change', '.country', function (){ + if ($(this).val() == 'etc') { + $(this).parent().after( + '
' + + '' + + '
' + ); + } else { + $(this).parent().next().remove(); + } +}); + +$(document).on('change', '#processResult', function (){ + if ($(this).val() == 'etc') { + $(this).parent().after( + '
' + + '' + + '
' + ); + } else { + $(this).parent().next().remove(); + } +}); + +$(document).on('click', '#spiCancelBtn', function (){ + $(this).parent().remove(); +}); + +$(document).on('change', '#crimeType', function (){ + $('#smugglingAmountDiv').children().remove(); + $('#crimeNameDiv').children().remove(); + $('#arrestAreaDiv').remove(); + + let smugglingAmount = ''; + commonCode.SG.forEach(function (item){ + smugglingAmount += ''; + }) + + if ($(this).val() == 'CTH002') { + makeArrestAreaDiv('장소'); + $('#smugglingAmountDiv').append( + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + ); + } else { + $("#crimeNameDiv").append( + '' + + '
' + + '' + + '
' + ); + } +}); + +$(document).on('change', '#violationType', function (){ + $('#spiInfoDiv').remove(); + $('#arrestAreaDiv').remove(); + $('#meansDiv').remove(); + $('.entryVisa').remove(); + $('#violationAmountDiv').remove(); + + if ($(this).val() == 'VLT001') { + makeSpiInfoDiv('피의자 정보'); + makeArrestAreaDiv('지역'); + makeSeaAreaDiv('밀입국'); + makeMeansDiv('밀입국'); + makePurposeDiv('밀입국'); + makeDestinationDiv('밀입국 출발지(국가)'); + } + + if ($(this).val() == 'VLT002') { + makeSpiInfoDiv('피의자 정보'); + makeArrestAreaDiv('지역'); + makeSeaAreaDiv('도외이탈'); + makeMeansDiv('도외이탈'); + makePurposeDiv('도외이탈'); + } + + if ($(this).val() == 'VLT003') { + makeSpiInfoDiv('피의자 정보'); + makeArrestAreaDiv('지역'); + makeSeaAreaDiv('밀출국'); + makeMeansDiv('밀출국'); + makePurposeDiv('밀출국'); + makeDestinationDiv('밀출국 행선지(도착예정지)'); + } + + if ($(this).val() == 'VLT004') { + makeSpiInfoDiv('피의자 정보'); + makeArrestAreaDiv('지역'); + makeSeaAreaDiv('밀항'); + makeMeansDiv('밀항'); + makePurposeDiv('밀항'); + makeDestinationDiv('밀항 행선지(도착예정지)'); + } + + if ($(this).val() == 'VLT005') { + makeSpiInfoDiv('불법체류 및 취업'); + makeEntryVisaDiv(); + } + + if ($(this).val() == 'VLT301') { + makeViolationAmountDiv(); + } + +}); + +$(document).on('change', '#smugglingAmount', function (){ + if ($(this).val() == 'etc') { + $(this).parent().append( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('change', '#means', function (){ + if ($(this).val() == 'etc') { + $(this).parent().append( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('change', '#purpose', function (){ + if ($(this).val() == 'etc') { + $(this).parent().append( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(function(){ + $("#datePickerDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}); + +function makeEntryVisaDiv() { + $('#spiWrapper').prepend( + '' + + '
' + + '' + + '
' + ); +} + +function makeSpiInfoDiv(name) { + $('#spiParentDiv').after( + '
' + + '' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
' + + '
' + ); + $("#stayQualificationDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +} + +function makeSeaAreaDiv(name) { + + let seaArea = ''; + commonCode.SAA.forEach(function (item){ + seaArea += ''; + }) + + $('#arrestAreaDiv').append( + '' + + '
' + + '' + + '
' + ); +} + +function makeArrestAreaDiv(name) { + + let arrestArea = ''; + commonCode.SAA.forEach(function (item){ + arrestArea += ''; + }) + + $('#spiParentDiv').after( + '
' + + '' + + '
' + + '' + + '
' + + '
' + ); +} + +function makeMeansDiv(name, code) { + let means = ''; + if (code == 'VLT001') { + commonCode.MS1.forEach(function (item){ + means += ''; + }) + } else { + commonCode.MS2.forEach(function (item){ + means += ''; + }) + } + + $('#spiParentDiv').after( + '
' + + '' + + '
' + + '' + + '
' + + '
' + ); +} + +function makePurposeDiv(name) { + + let purpose = ""; + commonCode.PPS.forEach(function (item){ + purpose += ''; + }) + + $('#meansDiv').append( + '' + + '
' + + '' + + '
' + ); +} + +function makeDestinationDiv(name) { + $('#meansDiv').append( + '' + + '
' + + '' + + '
' + ); +} + +function makeViolationAmountDiv() { + $('#spiParentDiv').after( + '
' + + '' + + '
' + + '' + + '
' + + '
' + ); +} + +function getIcaViewModal(ivsgtKey){ + $.ajax({ + url: '/faStatistics/internationalCrimeArrest/internationalCrimeArrestViewModal', + data: {ivsgtKey: ivsgtKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#ivsgtViewBody").empty().append(html) + $("#ivsgtViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getIcaEditModal(icaKey){ + $.ajax({ + url: '/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal', + data: { + icaKey: icaKey + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#icaEditModalContent").empty().append(html) + $("#icaEditModal").modal('show'); + $("#crimeAwarenessDtDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#caseSentDtDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("[name='caseOverview']").summernote({ + lang:'ko-KR', + height: 120, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + }, + error:function(){ + + } + }); +} + +function saveInternationalCrimeArrest(contentState){ + if(contentCheck()){ + if(confirm("저장하시겠습니까?")){ + $("#contentStatus").val(contentState); + contentFade("in"); + const formData = new FormData($("#icaEditForm")[0]); + + let spiList = []; + + $(".spi-list").each(function (){ + spiList.push({ + sex: $(this).find('select[name="sex"]').val(), + age: $(this).find('select[name="age"]').val(), + country: $(this).find('select[name="country"]').val() + }); + }); + + for (let i=0; i < spiList.length; i++) { + formData.append(`suspectPersonInfoList[${i}].sex`, spiList[i].sex); + formData.append(`suspectPersonInfoList[${i}].age`, spiList[i].age); + formData.append(`suspectPersonInfoList[${i}].country`, spiList[i].country); + } + /* + // formData 출력 + for (const [key,value] of formData.entries()) { + console.log(`${key}: ${value}`); + } + */ + $.ajax({ + type : 'POST', + data : formData, + url : "/faStatistics/internationalCrimeArrest/saveInternationalCrimeArrest", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#icaEditModal").modal('hide'); + // getIcaViewModal(result); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + +function contentCheck(){ + let flag = true; + if(!$('select[name="organ"]').val()){ + alert("지방청을 선택해주세요.") + flag = false; + } + + return flag; +} \ No newline at end of file diff --git a/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrest.html b/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrest.html new file mode 100644 index 00000000..3fb4fb8c --- /dev/null +++ b/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrest.html @@ -0,0 +1,122 @@ + + + + + + +
+
+

국제범죄검거 현황

+ + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
지방청경찰서 +
범죄테마
+
(대분류)
+
+
위반유형
+
(중분류)
+
+
죄명
+
(소분류)
+
발생원표검거원표피의자원표피의자 인적사항범죄인지사건송치신병처리
+ + + +
+ +
+
+ +
+
+
+
+
+ + + +
+
+ \ No newline at end of file diff --git a/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal.html b/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal.html new file mode 100644 index 00000000..114ee6ca --- /dev/null +++ b/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal.html @@ -0,0 +1,205 @@ + + + + + + \ No newline at end of file