diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java index f722e9d9..99d1fb93 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java @@ -9,7 +9,6 @@ import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.ProcessResul import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.SailorRepository; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.ViolationRepository; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.CrackdownStatusService; -import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; import com.dbnt.faisp.main.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -61,7 +60,7 @@ public class CrackdownStatusController { } @GetMapping("/crackdownStatus/crackdownStatusViewModal") - public ModelAndView internationalCrimeArrestViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){ + public ModelAndView crackdownStatusViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){ ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusViewModal"); crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey()); crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey())); @@ -89,6 +88,14 @@ public class CrackdownStatusController { crackdownStatus.setWrtOrgan(loginUser.getOgCd()); crackdownStatus.setWrtNm(loginUser.getUserNm()); crackdownStatus.setWrtDt(LocalDateTime.now()); + crackdownStatus.setFishingBoat(new FishingBoat()); + crackdownStatus.getFishingBoat().setWrtOrgan(loginUser.getOgCd()); + crackdownStatus.getFishingBoat().setWrtNm(loginUser.getUserNm()); + crackdownStatus.getFishingBoat().setWrtDt(LocalDateTime.now()); + crackdownStatus.setProcessResult(new ProcessResult()); + crackdownStatus.getProcessResult().setWrtOrgan(loginUser.getOgCd()); + crackdownStatus.getProcessResult().setWrtNm(loginUser.getUserNm()); + crackdownStatus.getProcessResult().setWrtDt(LocalDateTime.now()); } mav.addObject("crackdownStatus", crackdownStatus); return mav; diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/CrackdownStatusMapper.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/CrackdownStatusMapper.java index 14df8f5d..02f41c33 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/CrackdownStatusMapper.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/CrackdownStatusMapper.java @@ -1,6 +1,7 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult; import org.apache.ibatis.annotations.Mapper; import java.util.List; diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/ProcessResultMapper.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/ProcessResultMapper.java new file mode 100644 index 00000000..1832775e --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/ProcessResultMapper.java @@ -0,0 +1,12 @@ +package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper; + +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface ProcessResultMapper { + List selectProcessResultList(ProcessResult processResult); + Integer selectProcessResultListCnt(ProcessResult processResult); +} diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java index 32dec526..85a7006e 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java @@ -98,8 +98,7 @@ public class CrackdownStatus extends BaseModel { private LocalDateTime fieldIvsgtReleaseDt; @Column(name = "field_ivsgt_time_taken") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") - private LocalDateTime fieldIvsgtTimeTaken; + private String fieldIvsgtTimeTaken; @Column(name = "pressurized_start_dt") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java index ec2aece9..bdecfd57 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java @@ -11,6 +11,7 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.*; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.List; @Getter @Setter @@ -33,12 +34,10 @@ public class ProcessResult extends BaseModel { private String processStatus; @Column(name = "pressurized_time_taken") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") - private LocalDateTime pressurizedTimeTaken; + private String pressurizedTimeTaken; @Column(name = "warrant_req_take_time") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") - private LocalDateTime warrantReqTakeTime; + private String warrantReqTakeTime; @Column(name = "is_ivsgt_stop") private String isIvsgtStop; @@ -130,6 +129,23 @@ public class ProcessResult extends BaseModel { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") private LocalDateTime wrtDt; + @Column(name = "upd_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime updDt; + + @Transient + private CrackdownStatus crackdownStatus; + @Transient + private List violationList; + @Transient + private FishingBoat fishingBoat; + @Transient + private String boatNameKr; + + @Transient + private Integer fbKey; @Transient private String processStatusEtc; + @Transient + private String executionDetailEtc; } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/Sailor.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/Sailor.java index 06411f19..493849c7 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/Sailor.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/Sailor.java @@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.*; +import java.time.LocalDate; import java.time.LocalDateTime; @Getter @@ -41,7 +42,8 @@ public class Sailor extends BaseModel { private String sailorContact; @Column(name = "birthdate") - private String birthdate; + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate birthdate; @Column(name = "residence") private String residence; diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/processResultController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/processResultController.java new file mode 100644 index 00000000..faea7f2d --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/processResultController.java @@ -0,0 +1,102 @@ +package com.dbnt.faisp.main.faStatistics.crackdownsStatus; + +import com.dbnt.faisp.main.authMgt.service.AuthMgtService; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.CrackdownStatusService; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.ProcessResultService; +import com.dbnt.faisp.main.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/faStatistics") +public class processResultController { + + private final AuthMgtService authMgtService; + private final ProcessResultService processResultService; + private final ViolationRepository violationRepository; + private final CrackdownStatusRepository crackdownStatusRepository; + private final FishingBoatRepository fishingBoatRepository; + + @RequestMapping("/processResult") + public ModelAndView processResult(@AuthenticationPrincipal UserInfo loginUser, ProcessResult processResult) { + ModelAndView mav = new ModelAndView("faStatistics/processResult/processResult"); + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/processResult").get(0).getAccessAuth(); + + mav.addObject("accessAuth", accessAuth); + + processResult.setQueryInfo(); + List processResultList = processResultService.selectProcessResultList(processResult); + + for (ProcessResult pr:processResultList) { + pr.setCrackdownStatus(crackdownStatusRepository.findByCdsKey(pr.getCdsKey())); + pr.setFishingBoat(fishingBoatRepository.findByCdsKey(pr.getCdsKey())); + pr.setViolationList(violationRepository.findByFbKey(pr.getFishingBoat().getFbKey())); + } + + mav.addObject("processResultList", processResultList); + processResult.setContentCnt(processResultService.selectProcessResultListCnt(processResult)); + processResult.setPaginationInfo(); + mav.addObject("searchParams", processResult); + return mav; + } + + @GetMapping("/processResult/processResultViewModal") + public ModelAndView processResultViewModal(@AuthenticationPrincipal UserInfo loginUser, ProcessResult processResult){ + ModelAndView mav = new ModelAndView("faStatistics/processResult/processResultViewModal"); + processResult = processResultService.selectProcessResult(processResult.getPrKey()); + processResult.setCrackdownStatus(crackdownStatusRepository.findByCdsKey(processResult.getCdsKey())); + processResult.setFbKey(fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).getFbKey()); + processResult.setBoatNameKr(fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).getBoatNameKr()); + processResult.setViolationList(violationRepository.findByFbKey(processResult.getFbKey())); + + mav.addObject("processResult", processResult); + mav.addObject("userSeq",loginUser.getUserSeq()); + //메뉴권한 확인 + mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/processResult").get(0).getAccessAuth()); + return mav; + } + + @GetMapping("/processResult/processResultEditModal") + public ModelAndView crackdownStatusEditModal(@AuthenticationPrincipal UserInfo loginUser, ProcessResult processResult){ + ModelAndView mav = new ModelAndView("faStatistics/processResult/processResultEditModal"); + if(processResult.getPrKey()!=null){ + processResult = processResultService.selectProcessResult(processResult.getPrKey()); + processResult.setCrackdownStatus(crackdownStatusRepository.findByCdsKey(processResult.getCdsKey())); + processResult.setFbKey(fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).getFbKey()); + processResult.setBoatNameKr(fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).getBoatNameKr()); + processResult.setViolationList(violationRepository.findByFbKey(processResult.getFbKey())); + }else{ + processResult.setWrtOrgan(loginUser.getOgCd()); + processResult.setWrtNm(loginUser.getUserNm()); + processResult.setWrtDt(LocalDateTime.now()); + } + mav.addObject("processResult", processResult); + return mav; + } + + @PostMapping("/processResult/saveProcessResult") + public Integer saveProcessResult(@AuthenticationPrincipal UserInfo loginUser, + CrackdownStatus crackdownStatus, + FishingBoat fishingBoat, + ProcessResult processResult){ + processResult.setWrtUserSeq(loginUser.getUserSeq()); + processResult.setFishingBoat(fishingBoat); + processResult.setCrackdownStatus(crackdownStatus); + return processResultService.saveProcessResult(processResult); + } +} diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusRepository.java index 0215f8ce..99d9b9ed 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusRepository.java @@ -4,5 +4,5 @@ import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; import org.springframework.data.jpa.repository.JpaRepository; public interface CrackdownStatusRepository extends JpaRepository { - + CrackdownStatus findByCdsKey(Integer cdsKey); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java new file mode 100644 index 00000000..2ec8a206 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java @@ -0,0 +1,129 @@ +package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; + + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.ProcessResultMapper; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Sailor; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Violation; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class ProcessResultService extends BaseService { + + private final ProcessResultMapper processResultMapper; + private final CrackdownStatusRepository crackdownStatusRepository; + private final FishingBoatRepository fishingBoatRepository; + private final ViolationRepository violationRepository; + private final ProcessResultRepository processResultRepository; + private final SailorRepository sailorRepository; + + public List selectProcessResultList(ProcessResult processResult) { + return processResultMapper.selectProcessResultList(processResult); + } + + public Integer selectProcessResultListCnt(ProcessResult processResult) { + return processResultMapper.selectProcessResultListCnt(processResult); + } + + public ProcessResult selectProcessResult(Integer prKey) { + return processResultRepository.findById(prKey).orElse(null); + } + + @Transactional + public Integer saveCrackdownStatus(CrackdownStatus crackdownStatus) { + if (crackdownStatus.getCrackdownBoatEtc() != null) { + crackdownStatus.setCrackdownBoat(crackdownStatus.getCrackdownBoatEtc()); + } + if (crackdownStatus.getCrackdownPoliceEtc() != null) { + crackdownStatus.setCrackdownPolice(crackdownStatus.getCrackdownPoliceEtc()); + } + + Integer cdsKey = crackdownStatusRepository.save(crackdownStatus).getCdsKey(); + if (crackdownStatus.getFishingBoat() != null) { + if (crackdownStatus.getFishingBoat().getBoatMaterialEtc() != null) { + crackdownStatus.getFishingBoat().setBoatMaterial(crackdownStatus.getFishingBoat().getBoatMaterialEtc()); + } + if (crackdownStatus.getFishingBoat().getFisheryTypeEtc() != null) { + crackdownStatus.getFishingBoat().setFisheryType(crackdownStatus.getFishingBoat().getFisheryTypeEtc()); + } + + crackdownStatus.getFishingBoat().setCdsKey(cdsKey); + Integer fbKey = fishingBoatRepository.save(crackdownStatus.getFishingBoat()).getFbKey(); + crackdownStatus.getFishingBoat().setFbKey(fbKey); + } + + if (crackdownStatus.getProcessResult() != null) { + if (crackdownStatus.getProcessResult().getProcessStatusEtc() != null) { + crackdownStatus.getProcessResult().setProcessStatus(crackdownStatus.getProcessResult().getProcessStatusEtc()); + } + crackdownStatus.getProcessResult().setCdsKey(cdsKey); + Integer prKey = processResultRepository.save(crackdownStatus.getProcessResult()).getPrKey(); + crackdownStatus.getProcessResult().setPrKey(prKey); + } + + /*if (internationalCrimeArrest.getDeleteSpiKeyList() != null) { + suspectPersonInfoRepository.deleteAllByIdInQuery(internationalCrimeArrest.getDeleteSpiKeyList()); + }*/ + + if (crackdownStatus.getViolationList() != null) { + for(Violation violation: crackdownStatus.getViolationList()){ + if (violation.getViolationEtc() != null) { + violation.setViolation(violation.getViolationEtc()); + } + violation.setFbKey(crackdownStatus.getFishingBoat().getFbKey()); + } + violationRepository.saveAll(crackdownStatus.getViolationList()); + } + + if (crackdownStatus.getSailorList() != null) { + for(Sailor sailor: crackdownStatus.getSailorList()){ + sailor.setFbKey(crackdownStatus.getFishingBoat().getFbKey()); + } + sailorRepository.saveAll(crackdownStatus.getSailorList()); + } + + return cdsKey; + } + + @Transactional + public Integer saveProcessResult(ProcessResult processResult) { + if (processResult.getExecutionDetailEtc() != null) { + processResult.setExecutionDetail(processResult.getExecutionDetailEtc()); + } + + Integer prKey = processResultRepository.save(processResult).getPrKey(); + + if (processResult.getCrackdownStatus() != null) { + if (processResult.getCrackdownStatus().getCrackdownPoliceEtc() != null) { + processResult.getCrackdownStatus().setCrackdownPolice(processResult.getCrackdownStatus().getCrackdownPoliceEtc()); + } + + processResult.setCrackdownStatus(crackdownStatusRepository.save(processResult.getCrackdownStatus())); + } + + if (processResult.getFishingBoat() != null) { + fishingBoatRepository.save(processResult.getFishingBoat()); + } + + if (processResult.getViolationList() != null) { + for(Violation violation: processResult.getViolationList()){ + if (violation.getViolationEtc() != null) { + violation.setViolation(violation.getViolationEtc()); + } + violation.setFbKey(processResult.getFishingBoat().getFbKey()); + } + violationRepository.saveAll(processResult.getViolationList()); + } + + return prKey; + } +} diff --git a/src/main/resources/mybatisMapper/ProcessResultMapper.xml b/src/main/resources/mybatisMapper/ProcessResultMapper.xml new file mode 100644 index 00000000..03bfd2a0 --- /dev/null +++ b/src/main/resources/mybatisMapper/ProcessResultMapper.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/faStatistics/crackdownStatus.js b/src/main/resources/static/js/faStatistics/crackdownStatus.js index 134def12..febdf1bb 100644 --- a/src/main/resources/static/js/faStatistics/crackdownStatus.js +++ b/src/main/resources/static/js/faStatistics/crackdownStatus.js @@ -2,11 +2,6 @@ $(document).on('click', '#crackdownStatusAddBtn', function () { getCrackdownStatusEditModal(null); }); -$(document).on('click', '#crackdownStatusEditBtn', function () { - $("#crackdownStatusViewModal").modal('hide'); - getCrackdownStatusEditModal(Number($("#icaViewBody").find("[name='cdsKey']").val())); -}); - $(document).on('click', '#cdsEditBtn', function () { $("#crackdownStatusViewModal").modal('hide'); getCrackdownStatusEditModal(Number($("#crackdownStatusViewBody").find("[name='cdsKey']").val())); @@ -241,6 +236,10 @@ function getCrackdownStatusEditModal(cdsKey){ } function saveCrackdownStatus(saveYn){ + $('input[name="fieldIvsgtTimeTaken"]').val(dateTimeCalc($("#fieldIvsgtNapoDt").val(), $("#fieldIvsgtReleaseDt").val())); + $('input[name="warrantReqTakeTime"]').val(dateTimeCalc($("#pressurizedStartDt").val(), $("#pressurizedEndDt").val())); + $('input[name="pressurizedTimeTaken"]').val(dateTimeCalc($("#pressurizedStartDt").val(), $("#pressurizedEndDt").val())); + if(contentCheck()){ if(confirm("저장하시겠습니까?")){ $("#saveYn").val(saveYn); @@ -252,17 +251,20 @@ function saveCrackdownStatus(saveYn){ sailorList.push( { + sailorKey: $("#cdsEditForm").find('input[name="captinSailorKey"]').val() != '' && $("#cdsEditForm").find('input[name="captinSailorKey"]').val() != 'false' ? Number($("#cdsEditForm").find('input[name="captinSailorKey"]').val()) : null, position: 'POS001', sailorNameKr: $("#cdsEditForm").find('input[name="sailorNameKr"]').val() != '' ? $("#cdsEditForm").find('input[name="sailorNameKr"]').val() : null, isRestriction: $("#cdsEditForm").find('select[name="captin"]').val() != '' ? $("#cdsEditForm").find('select[name="captin"]').val() : null, birthdate: $("#cdsEditForm").find('input[name="birthdate"]').val() != '' ? $("#cdsEditForm").find('input[name="birthdate"]').val() : null }, { + sailorKey: $("#cdsEditForm").find('input[name="mateSailorKey"]').val() != '' && $("#cdsEditForm").find('input[name="mateSailorKey"]').val() != 'false' ? Number($("#cdsEditForm").find('input[name="mateSailorKey"]').val()) : null, position: 'POS002', sailorNameKr: null, isRestriction: $("#cdsEditForm").find('select[name="mate"]').val() != '' ? $("#cdsEditForm").find('select[name="mate"]').val() : null }, { + sailorKey: $("#cdsEditForm").find('input[name="wardenSailorKey"]').val() != '' && $("#cdsEditForm").find('input[name="wardenSailorKey"]').val() != 'false' ? Number($("#cdsEditForm").find('input[name="wardenSailorKey"]').val()) : null, position: 'POS003', sailorNameKr: null, isRestriction: $("#cdsEditForm").find('select[name="warden"]').val() != '' ? $("#cdsEditForm").find('select[name="warden"]').val() : null @@ -279,7 +281,7 @@ function saveCrackdownStatus(saveYn){ }); for (let i=0; i < sailorList.length; i++) { - if (sailorList[i].spiKey != null) { + if (sailorList[i].sailorKey != null) { formData.append(`sailorList[${i}].sailorKey`, sailorList[i].sailorKey); } if (sailorList[i].sailorNameKr != null) { @@ -397,4 +399,21 @@ function s2ab(s) { function getToday() { var date = new Date(); var year = date.getFullYear(); -} \ No newline at end of file +} + +function dateTimeCalc(startDateTime, endDateTime) { + if (startDateTime != '' &&endDateTime != '' && startDateTime != undefined && endDateTime != undefined) { + const startDate = new Date(startDateTime); + const endDate = new Date(endDateTime); + + let diffTime = endDate.getTime() - startDate.getTime(); + + const day = Math.floor(diffTime / (1000* 60 * 60 * 24)); + const hour = Math.floor((diffTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); + const minute = Math.floor((diffTime % (1000 * 60 * 60)) / (1000 * 60)); + + return day + '일' + hour + '시간' + minute + '분'; + } + + return null; +} diff --git a/src/main/resources/static/js/faStatistics/processResult.js b/src/main/resources/static/js/faStatistics/processResult.js new file mode 100644 index 00000000..dea0b442 --- /dev/null +++ b/src/main/resources/static/js/faStatistics/processResult.js @@ -0,0 +1,259 @@ +$(document).on('click', '#processResultAddBtn', function () { + getProcessResultEditModal(null); +}); + +$(document).on('click', '#processResultEditBtn', function () { + $("#processResultViewModal").modal('hide'); + getProcessResultEditModal(Number($("#processResultViewBody").find("[name='prKey']").val())); +}); + +$(document).on('click', '#saveProcessResultBtn', function (){ + saveProcessResult('N') +}); + +$(document).on('click', '#saveTempBtn', function (){ + saveProcessResult('Y') +}); + +$(document).on('click', '.tr', function (){ + getProcessResultViewModal($(this).data('key')); +}); + +$(document).on('click', '#violationAddBtn', function (){ + let violation = ''; + commonCode.VT.forEach(function (item){ + violation += ''; + }) + + $('#violationDiv').append( + '
' + + '' + + '' + + '
' + ) +}); + + +$(document).on('click', '#violationRemoveBtn', function (){ + $(this).parent().remove(); +}); + +$(document).on('change', '.violation', function (){ + if ($(this).val() == 'etc') { + $(this).after( + '
' + + '' + + '
' + ); + } else { + $(this).next('.etcDiv').remove(); + } +}); + +$(document).on('change', '#crackdownPolice', function (){ + if ($(this).val() == 'etc') { + $(this).after( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('change', '#executionDetail', function (){ + if ($(this).val() == 'etc') { + $(this).after( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('click', '#processResultDownExcel', function (){ + exportExcel('불법조업 불법어선 처리현황'); +}); + +function getProcessResultViewModal(prKey){ + $.ajax({ + url: '/faStatistics/processResult/processResultViewModal', + data: {prKey: prKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#processResultViewBody").empty().append(html) + $("#processResultViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getProcessResultEditModal(prKey){ + $.ajax({ + url: '/faStatistics/processResult/processResultEditModal', + data: { + prKey: prKey + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#processResultViewBody").empty(); + $("#processResultEditModalContent").empty().append(html); + $("#processResultEditModal").modal('show'); + + $("#consignmentStartDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#consignmentEndDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#returnDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#confiscationDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#boatDisposalDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + }, + error:function(){ + + } + }); +} + +function saveProcessResult(saveYn){ + $('input[name="warrantReqTakeTime"]').val(dateTimeCalc($("#consignmentStartDt").val(), $("#consignmentEndDt").val())); + + if(contentCheck()){ + if(confirm("저장하시겠습니까?")){ + $("#saveYn").val(saveYn); + contentFade("in"); + const formData = new FormData($("#processResultEditForm")[0]); + + let violationList = []; + + $(".violation").each(function (){ + violationList.push({ + violationKey: $(this).parent().find('input[name="violationKey"]').val() != undefined ? Number($(this).parent().find('input[name="violationKey"]').val()) : null, + fbKey: $("#cdsEditForm").find('input[name="fbKey"]').val() != undefined ? Number($("#cdsEditForm").find('input[name="fbKey"]').val()) : null, + violation: $(this).val() != '' ? $(this).val() : null, + violationEtc: $(this).parent().find('input[name="violationEtc"]').val() != undefined ? $(this).parent().find('input[name="violationEtc"]').val() : null + }); + }); + + for (let i=0; i < violationList.length; i++) { + if (violationList[i].violationKey != null) { + formData.append(`violationList[${i}].violationKey`, violationList[i].violationKey); + } + if (violationList[i].fbKey != null) { + formData.append(`violationList[${i}].fbKey`, violationList[i].fbKey); + } + if (violationList[i].violation != null) { + formData.append(`violationList[${i}].violation`, violationList[i].violation); + } + if (violationList[i].violationEtc != null) { + formData.append(`violationList[${i}].violationEtc`, violationList[i].violationEtc); + } + } + + $.ajax({ + type : 'POST', + data : formData, + url : "/faStatistics/processResult/saveProcessResult", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#processResultEditModal").modal('hide'); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + +function contentCheck(){ + let flag = true; + return flag; +} + +function exportExcel(name){ + var excelHandler = { + getExcelFileName : function(){ + return name+getToday()+'.xlsx'; //파일명 + }, + getSheetName : function(){ + return name; + }, + getExcelData : function(){ + return document.getElementById('cdsTable'); //TABLE id + }, + getWorksheet : function(){ + return XLSX.utils.table_to_sheet(this.getExcelData()); + } + } + // step 1. workbook 생성 + var wb = XLSX.utils.book_new(); + + // step 2. 시트 만들기 + var newWorksheet = excelHandler.getWorksheet(); + + // step 3. workbook에 새로만든 워크시트에 이름을 주고 붙인다. + XLSX.utils.book_append_sheet(wb, newWorksheet, excelHandler.getSheetName()); + + // step 4. 엑셀 파일 만들기 + var wbout = XLSX.write(wb, {bookType:'xlsx', type: 'binary'}); + + // step 5. 엑셀 파일 내보내기 + saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), excelHandler.getExcelFileName()); +} + +function s2ab(s) { + var buf = new ArrayBuffer(s.length); //convert s to arrayBuffer + var view = new Uint8Array(buf); //create uint8array as viewer + for (var i=0; i diff --git a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html index dc79388d..fa06ac8d 100644 --- a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html +++ b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html @@ -66,9 +66,14 @@ - + + +
+ +
+
@@ -194,7 +199,7 @@ - + @@ -203,7 +208,7 @@ - + @@ -373,26 +378,29 @@
+
+
+
@@ -430,7 +438,7 @@
- +
@@ -447,7 +455,7 @@
- +
diff --git a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html index 53571913..c6e7d704 100644 --- a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html +++ b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html @@ -66,9 +66,14 @@ - + + +
+ +
+
@@ -430,7 +435,7 @@
- +
@@ -447,7 +452,7 @@
- +
diff --git a/src/main/resources/templates/faStatistics/processResult/processResult.html b/src/main/resources/templates/faStatistics/processResult/processResult.html new file mode 100644 index 00000000..2ff81e83 --- /dev/null +++ b/src/main/resources/templates/faStatistics/processResult/processResult.html @@ -0,0 +1,162 @@ + + + + + + +
+
+

불법조업 외국어선 처리현황

+ + +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
연번사건번호사건담당경찰서피의자(선박명)위반장소 및 내용선고내용선고법원집행내용환부일위탁종료일위탁시작일몰수확정일폐선일(인계한 날짜)최종수정일
+ ~ + +
+ +
+ + + + + + +
+
+
+
+
+ + +
+ + +
+
+ +
+
+
+
+
+ + + +
+
+ \ No newline at end of file diff --git a/src/main/resources/templates/faStatistics/processResult/processResultEditModal.html b/src/main/resources/templates/faStatistics/processResult/processResultEditModal.html new file mode 100644 index 00000000..2278a1f0 --- /dev/null +++ b/src/main/resources/templates/faStatistics/processResult/processResultEditModal.html @@ -0,0 +1,147 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/faStatistics/processResult/processResultViewModal.html b/src/main/resources/templates/faStatistics/processResult/processResultViewModal.html new file mode 100644 index 00000000..f5f8abde --- /dev/null +++ b/src/main/resources/templates/faStatistics/processResult/processResultViewModal.html @@ -0,0 +1,147 @@ + + + + + + \ No newline at end of file