diff --git a/src/main/java/com/dbnt/faisp/config/ModalController.java b/src/main/java/com/dbnt/faisp/config/ModalController.java index 2c0dc8b8..47be48f7 100644 --- a/src/main/java/com/dbnt/faisp/config/ModalController.java +++ b/src/main/java/com/dbnt/faisp/config/ModalController.java @@ -1,6 +1,12 @@ package com.dbnt.faisp.config; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.FishingBoatRepository; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.ProcessResultRepository; +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.menuMgt.model.MenuMgt; import com.dbnt.faisp.main.menuMgt.service.MenuMgtService; import com.dbnt.faisp.main.userInfo.model.UserInfo; @@ -12,6 +18,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; +import java.util.List; + @RestController @RequiredArgsConstructor @@ -21,6 +29,11 @@ public class ModalController { private final MenuMgtService menuMgtService; private final UserInfoService userInfoService; private final CodeMgtService codeMgtService; + private final CrackdownStatusService crackdownStatusService; + private final ViolationRepository violationRepository; + private final ProcessResultRepository processResultRepository; + private final FishingBoatRepository fishingBoatRepository; + private final SailorRepository sailorRepository; @GetMapping("/menuModal") public ModelAndView menuModalPage(@AuthenticationPrincipal UserInfo loginUser, MenuMgt menuMgt){ @@ -49,4 +62,23 @@ public class ModalController { mav.addObject("searchParams", userInfo); return mav; } + + @GetMapping("/crackdownStatusModal") + public ModelAndView crackdownStatusModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){ + ModelAndView mav = new ModelAndView("common/modal/crackdownStatusModal"); + crackdownStatus.setQueryInfo(); + + List crackdownList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus); + for (CrackdownStatus cds: crackdownList) { + cds.setViolationList(violationRepository.findByFbKey(cds.getFbKey())); + cds.setProcessResult(processResultRepository.findByCdsKey(cds.getCdsKey()).orElse(null)); + cds.setFishingBoat(fishingBoatRepository.findByCdsKey(cds.getCdsKey()).orElse(null)); + cds.setSailorList(sailorRepository.findByFbKey(cds.getFbKey())); + } + mav.addObject("crackdownList", crackdownList); + crackdownStatus.setContentCnt(crackdownStatusService.selectCrackdownStatusListCnt(crackdownStatus)); + crackdownStatus.setPaginationInfo(); + mav.addObject("searchParams", crackdownStatus); + return mav; + } } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/FishingBoatController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/FishingBoatController.java index e31ac942..0078abe5 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/FishingBoatController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/FishingBoatController.java @@ -95,9 +95,13 @@ public class FishingBoatController { } @PostMapping("/saveFishingBoat") - public Integer saveFishingBoat(@AuthenticationPrincipal UserInfo loginUser, - FishingBoat fishingBoat){ + public Integer saveFishingBoat(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){ return 0; // return processResultService.saveProcessResult(processResult); } + + @GetMapping("/checkCaseNum") + public Integer checkCaseNum(String caseNum){ + return fishingBoatService.checkCaseNum(caseNum); + } } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusBaseEntity.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusBaseEntity.java index f1c3e034..5236eb8d 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusBaseEntity.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusBaseEntity.java @@ -61,8 +61,7 @@ public class CrackdownStatusBaseEntity extends BaseModel { private String mmsi; @Column(name = "field_ivsgt") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private LocalDate fieldIvsgt; + private String fieldIvsgt; @Column(name = "obstr_exspd_cnt") private Integer obstrExspdCnt; 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 1da151d2..e9ea3f57 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 @@ -6,5 +6,6 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; public interface CrackdownStatusRepository extends JpaRepository { - Optional findByCdsKey(Integer cdsKey); + Optional findByCdsKey(Integer cdsKey); + Optional findTop1ByCaseNum(String caseNum); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/FishingBoatService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/FishingBoatService.java index 674d9bf5..3acc8d94 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/FishingBoatService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/FishingBoatService.java @@ -99,4 +99,8 @@ public class FishingBoatService extends BaseService { return cdsKey; } + + public Integer checkCaseNum(String caseNum) { + return crackdownStatusRepository.findTop1ByCaseNum(caseNum).orElse(null)==null?0:1; + } } diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java b/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java new file mode 100644 index 00000000..deb8c24c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java @@ -0,0 +1,65 @@ +package com.dbnt.faisp.main.userInfo; + + +import com.dbnt.faisp.main.authMgt.service.AuthMgtService; +import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.main.userInfo.model.UserInfo; +import com.dbnt.faisp.main.userInfo.service.UserInfoService; + +import lombok.RequiredArgsConstructor; + + +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/faisp") +public class FaispController { + + private final AuthMgtService authMgtService; + private final CodeMgtService codeMgtService; + private final UserInfoService userInfoService; + + + @GetMapping("/policeList") + public ModelAndView partInfoList(@AuthenticationPrincipal UserInfo loginUser,UserInfo userInfo, HttpServletResponse response) { + ModelAndView mav = new ModelAndView("faisp/policeList"); + userInfo.setDownOrganCdList(loginUser.getDownOrganCdList()); + if(userInfo.getUserStatus() == null) { + userInfo.setUserStatus("USC003"); + } + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/policeList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + userInfo.setQueryInfo(); + mav.addObject("policeList", userInfoService.selectPoliceList(userInfo)); + userInfo.setContentCnt(userInfoService.selectPoliceListCnt(userInfo)); + userInfo.setPaginationInfo(); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("userSatus", userInfo.getUserStatus()); + mav.addObject("searchParams", userInfo); + return mav; + } + + @GetMapping("/policeEditModal") + public ModelAndView menuEditModal(UserInfo userInfo){ + ModelAndView mav = new ModelAndView("/faisp/policeEditModal"); + mav.addObject("ogList", codeMgtService.selectCodeMgtList("OG")); + mav.addObject("ofcList", codeMgtService.selectCodeMgtList("OFC")); + mav.addObject("titleList", codeMgtService.selectCodeMgtList("JT")); + mav.addObject("outturnList", codeMgtService.selectCodeMgtList("OTC")); + mav.addObject("seriesList", codeMgtService.selectCodeMgtList("SRC")); + mav.addObject("languageList", codeMgtService.selectCodeMgtList("LNG")); + mav.addObject("statusList", codeMgtService.selectCodeMgtList("USC")); + + mav.addObject("userInfo", userInfoService.selectUserInfo(userInfo.getUserSeq())); + return mav; + } + + +} diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/mapper/UserInfoMapper.java b/src/main/java/com/dbnt/faisp/main/userInfo/mapper/UserInfoMapper.java index ddf5f7a4..5ccda58a 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/mapper/UserInfoMapper.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/mapper/UserInfoMapper.java @@ -17,4 +17,8 @@ public interface UserInfoMapper { List selectManagerList(ParamMap param); List selectDashboardConfigList(Integer userSeq); + + List selectPoliceList(UserInfo userInfo); + + Integer selectPoliceListCnt(UserInfo userInfo); } diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/model/UserInfoHistory.java b/src/main/java/com/dbnt/faisp/main/userInfo/model/UserInfoHistory.java new file mode 100644 index 00000000..2da5800e --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/userInfo/model/UserInfoHistory.java @@ -0,0 +1,121 @@ +package com.dbnt.faisp.main.userInfo.model; + + +import com.dbnt.faisp.config.BaseModel; + + +import lombok.AllArgsConstructor; +import lombok.Data; +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.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(UserInfoHistory.UserInfoHistoryId.class) +@Table(name = "user_info_history") +public class UserInfoHistory extends BaseModel implements Serializable{ + @Id + @Column(name = "user_seq") + private Integer userSeq; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Column(name = "dic_code") + private String dicCode; + @Column(name = "user_id") + private String userId; + @Column(name = "user_nm") + private String userNm; + @Column(name = "birth_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate birthDate; + @Column(name = "sex") + private String sex; + @Column(name = "email") + private String email; + @Column(name = "phone_no") + private String phoneNo; + @Column(name = "area_cd") + private String areaCd; + @Column(name = "og_cd") + private String ogCd; + @Column(name = "ofc_cd") + private String ofcCd; + @Column(name = "title_cd") + private String titleCd; + @Column(name = "group_cd") + private String groupCd; + @Column(name = "series_cd") + private String seriesCd; + @Column(name = "ofc_head_yn") + private String ofcHeadYn; + @Column(name = "hiring_cd") + private String hiringCd; + @Column(name = "employ_cd") + private String employCd; + @Column(name = "outturn_cd") + private String outturnCd; + @Column(name = "work_cd") + private String workCd; + @Column(name = "job_in_cd") + private String jobInCd; + @Column(name = "language_cd") + private String languageCd; + @Column(name = "police_in_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate policeInDate; + @Column(name = "organ_in_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate organInDate; + @Column(name = "ofc_in_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate ofcInDate; + @Column(name = "title_in_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate titleInDate; + @Column(name = "user_status") + private String userStatus; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_title") + private String wrtTitle; + @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; + + + + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class UserInfoHistoryId implements Serializable { + private Integer userSeq; + private Integer versionNo; + } +} diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserInfoHistoryRepository.java b/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserInfoHistoryRepository.java new file mode 100644 index 00000000..f8e9e699 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserInfoHistoryRepository.java @@ -0,0 +1,15 @@ +package com.dbnt.faisp.main.userInfo.repository; + +import com.dbnt.faisp.main.userInfo.model.UserInfoHistory; + +import org.springframework.data.jpa.repository.JpaRepository; + + + + +public interface UserInfoHistoryRepository extends JpaRepository { + + UserInfoHistory findByUserSeq(Integer userSeq); + + +} diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java b/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java index 34f57e14..1f8769d9 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java @@ -1,10 +1,13 @@ package com.dbnt.faisp.main.userInfo.service; import com.dbnt.faisp.config.Role; +import com.dbnt.faisp.main.fipTarget.model.PartInfo; import com.dbnt.faisp.main.userInfo.mapper.UserInfoMapper; import com.dbnt.faisp.main.userInfo.model.DashboardConfig; import com.dbnt.faisp.main.userInfo.model.UserInfo; +import com.dbnt.faisp.main.userInfo.model.UserInfoHistory; import com.dbnt.faisp.main.userInfo.repository.DashboardConfigRepository; +import com.dbnt.faisp.main.userInfo.repository.UserInfoHistoryRepository; import com.dbnt.faisp.main.userInfo.repository.UserInfoRepository; import com.dbnt.faisp.util.ParamMap; @@ -24,6 +27,7 @@ import java.util.List; public class UserInfoService implements UserDetailsService { private final UserInfoRepository userInfoRepository; + private final UserInfoHistoryRepository userInfoHistoryRepository; private final DashboardConfigRepository dashboardConfigRepository; private final UserInfoMapper userInfoMapper; @@ -36,7 +40,46 @@ public class UserInfoService implements UserDetailsService { userInfo.setUserStatus("USC002"); userInfo.setPassword(convertPassword(userInfo.getPassword())); userInfo.setWrtDt(LocalDateTime.now()); - return userInfoRepository.save(userInfo).getUserId(); + UserInfo result = userInfoRepository.save(userInfo); + UserInfoHistory dbHis = userInfoHistoryRepository.findByUserSeq(result.getUserSeq()); + if(dbHis == null) { + UserInfoHistory hisTmp = new UserInfoHistory(); + hisTmp.setUserSeq(result.getUserSeq()); + hisTmp.setVersionNo(1); + hisTmp.setDicCode(result.getDicCode()); + hisTmp.setUserId(result.getUserId()); + hisTmp.setUserNm(result.getUserNm()); + hisTmp.setBirthDate(result.getBirthDate()); + hisTmp.setSex(result.getSex()); + hisTmp.setEmail(result.getEmail()); + hisTmp.setPhoneNo(result.getPhoneNo()); + hisTmp.setAreaCd(result.getAreaCd()); + hisTmp.setOgCd(result.getOgCd()); + hisTmp.setOfcCd(result.getOfcCd()); + hisTmp.setTitleCd(result.getTitleCd()); + hisTmp.setGroupCd(result.getGroupCd()); + hisTmp.setSeriesCd(result.getSeriesCd()); + hisTmp.setOfcHeadYn(result.getOfcHeadYn()); + hisTmp.setHiringCd(result.getHiringCd()); + hisTmp.setEmployCd(result.getEmployCd()); + hisTmp.setOutturnCd(result.getOutturnCd()); + hisTmp.setWorkCd(result.getWorkCd()); + hisTmp.setJobInCd(result.getJobInCd()); + hisTmp.setLanguageCd(result.getLanguageCd()); + hisTmp.setPoliceInDate(result.getPoliceInDate()); + hisTmp.setOrganInDate(result.getOrganInDate()); + hisTmp.setOfcInDate(result.getOfcInDate()); + hisTmp.setTitleInDate(result.getTitleInDate()); + hisTmp.setUserStatus(result.getUserStatus()); + hisTmp.setWrtOrgan(result.getOgCd()); + hisTmp.setWrtPart(result.getOfcCd()); + hisTmp.setWrtTitle(result.getTitleCd()); + hisTmp.setWrtUserSeq(result.getUserSeq()); + hisTmp.setWrtNm(result.getUserNm()); + hisTmp.setWrtDt(result.getWrtDt()); + userInfoHistoryRepository.save(hisTmp); + } + return result.getUserId(); } @Transactional public void updateUserInfo(UserInfo userInfo){ @@ -48,7 +91,7 @@ public class UserInfoService implements UserDetailsService { if(userInfo.getUserNm()!=null){ savedInfo.setUserNm(userInfo.getUserNm()); } - if(userInfo.getPassword()!=null){ + if(userInfo.getPassword()!=null && userInfo.getPassword()!=null){ savedInfo.setPassword(convertPassword(userInfo.getPassword())); } if(userInfo.getPhoneNo()!=null){ @@ -188,4 +231,11 @@ public class UserInfoService implements UserDetailsService { } dashboardConfigRepository.saveAll(configList); } + + public List selectPoliceList(UserInfo userInfo) { + return userInfoMapper.selectPoliceList(userInfo); + } + public Integer selectPoliceListCnt(UserInfo userInfo) { + return userInfoMapper.selectPoliceListCnt(userInfo); + } } diff --git a/src/main/resources/mybatisMapper/UserInfoMapper.xml b/src/main/resources/mybatisMapper/UserInfoMapper.xml index 6713fcd8..e4b2d1d4 100644 --- a/src/main/resources/mybatisMapper/UserInfoMapper.xml +++ b/src/main/resources/mybatisMapper/UserInfoMapper.xml @@ -80,4 +80,58 @@ where b.user_seq = #{userSeq} order by b.order_num + + + + user_status = #{userStatus} + and og_cd in + + #{item} + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/css/common.css b/src/main/resources/static/css/common.css index 4f83a0bc..ed05aba9 100644 --- a/src/main/resources/static/css/common.css +++ b/src/main/resources/static/css/common.css @@ -89,4 +89,7 @@ } .display-none{ display:none +} +#subModalBody{ + white-space: nowrap; } \ No newline at end of file diff --git a/src/main/resources/static/js/faStatistics/fishingBoatMgt.js b/src/main/resources/static/js/faStatistics/fishingBoatMgt.js index b60f32be..fd5b2070 100644 --- a/src/main/resources/static/js/faStatistics/fishingBoatMgt.js +++ b/src/main/resources/static/js/faStatistics/fishingBoatMgt.js @@ -1,16 +1,67 @@ +let selectedList = []; $(document).on('click', '#getFishingBoatEditModalBtn', function (){ - getFishingBoatEditModal(null, null); + getFishingBoatEditModal(null); +}) +$(document).on('change', '#caseNum', function (){ + $.ajax({ + url: '/faStatistics/checkCaseNum', + type: 'GET', + data: {caseNum: $("#caseNum").val()}, + dataType:"json", + success: function(data){ + if(data===1){ + alert("일치하는 사건번호가 등록되어 있습니다."); + $("#caseNum").val(""); + } + }, + error:function(){ + + } + }); +}) +$(document).on('click', '#caseNumBtn', function (){ + searchModalSubmit(1); + $("#crackdownSubModal").modal('show'); +}) +$(document).on('click', '.crackdownTr', function (){ + $(".crackdownTr").prop("checked", false); + const chkbox = $(this).find('.crackdownChkbox')[0] + chkbox.checked = !chkbox.checked; +}) +$(document).on('click', '#getCrackdownBtn', function (){ + getFishingBoatEditModal($(".crackdownChkbox:checked").parents(".crackdownTr").attr("data-key")); + $("#crackdownSubModal").modal('hide'); }) $(document).on('change', '#crackdownPolice', function (){ getCrackdownBoatOption(this.value); }) +$(document).on('change', '#violationSelector', function (){ + if(this.selectedOptions[0].value !== ""){ + if($(".violationCd[value='"+this.selectedOptions[0].value+"']").length===0){ + $("#violationDiv").append( + '
\n' + + '
\n' + + ' \n' + + ' \n' + + ' \n' + + '
\n' + + '
' + ) + } + } +}) +$(document).on('click', '.violationRemoveBtn', function (){ + $(this).parents(".violation").remove(); +}) $(document).on('change', '.boatNameKr', function (){ $(".boatNameKr").val(this.value); }) $(document).on('change', '#equalCaptain', function (){ if(this.checked){ $.each($("#captainDiv :input"), function (idx, input){ - $("#shipOwnerDiv").find("[name='"+input.name+"']").val(input.value) + $("#shipOwnerDiv").find("#"+input.id+"2").val(input.value) }) }else{ $("#shipOwnerDiv :input").val(""); @@ -18,20 +69,25 @@ $(document).on('change', '#equalCaptain', function (){ }) $(document).on('change', '#captainDiv :input', function (){ if($("#equalCaptain").prop("checked")){ - $("#shipOwnerDiv").find("[name='"+this.name+"']").val(this.value) + $("#shipOwnerDiv").find("#"+this.id+"2").val(this.value) } }) $(document).on('click', '#sailorAddBtn', function (){ $("#sailorRestrictionHome").append( '
\n' + - '
\n' + - ' \n' + + ' \n' + + ' \n' + + ' \n' + ' \n' + - ' \n' + - ' \n' + '
\n' + @@ -41,6 +97,18 @@ $(document).on('click', '#sailorAddBtn', function (){ $(document).on('click', '.sailorRemoveBtn', function (){ $(this).parents(".sailorRestriction").remove(); }) +$(document).on('click', '#saveTempBtn', function (){ + saveFishingBoatInfo("N") +}) +$(document).on('click', '#saveResultBtn', function (){ + saveFishingBoatInfo("Y") +}) +$(document).on('change', '.pressurizedTimeTaken', function (){ + $("#pressurizedTimeTaken").val($("#pressurizedTimeTakenDate").val()+"일 "+$("#pressurizedTimeTakenTime").val()) +}) +$(document).on('change', '.warrantReqTake', function (){ + $("#warrantReqTake").val($("#warrantReqTakeDate").val()+"일 "+$("#warrantReqTakeTime").val()) +}) function getFishingBoatEditModal(cdsKey){ $.ajax({ @@ -55,6 +123,10 @@ function getFishingBoatEditModal(cdsKey){ language: "ko", autoclose: true }); + $(".dateTimeSelector").datetimepicker({ + format:'Y-m-d H:i', + lang:'kr' + }); $(".timeSelector").datetimepicker({ datepicker:false, format:'H:i', @@ -88,4 +160,83 @@ function getCrackdownBoatOption(categoryCd){ } }); +} + +function saveFishingBoatInfo(saveYn){ + if(confirm("저장하시겠습니까?")){ + $("#saveYn").val(saveYn) + contentFade("in"); + const formData = new FormData($("#fishingBoatEditForm")[0]); + $.each($(".violationCd"), function (idx, input){ + formData.append('violationList['+idx+'].violation', $(input).val()); + }); + let sailorCnt=0; + // 선장 정보 입력 + const sailorNameKr = $("#sailorNameKr").val(); + if(sailorNameKr){ + formData.append('sailorList['+sailorCnt+'].sailorNameKr', sailorNameKr); + formData.append('sailorList['+sailorCnt+'].sailorNameCn', $("#sailorNameCn").val()); + formData.append('sailorList['+sailorCnt+'].sailorNamePinyin', $("#sailorNamePinyin").val()); + formData.append('sailorList['+sailorCnt+'].birthdate', $("#birthdate").val()); + formData.append('sailorList['+sailorCnt+'].sailorContact', $("#sailorContact").val()); + formData.append('sailorList['+sailorCnt+'].residence', $("#residence").val()); + formData.append('sailorList['+sailorCnt+'].arrestHistory', $("#arrestHistory").val()); + formData.append('sailorList['+sailorCnt+'].note', $("#note").val()); + formData.append('sailorList['+sailorCnt+'].isRestriction', $("#captainRestriction").val()); + formData.append('sailorList['+sailorCnt+'].position', "POS001"); + //선장 사진 파일 붙임 필요. + sailorCnt++; + } + // 선주 정보 입력 + const sailorNameKr2 = $("#sailorNameKr2").val(); + if(sailorNameKr) { + formData.append('sailorList[' + sailorCnt + '].sailorNameKr', sailorNameKr2); + formData.append('sailorList[' + sailorCnt + '].sailorNameCn', $("#sailorNameCn2").val()); + formData.append('sailorList[' + sailorCnt + '].sailorNamePinyin', $("#sailorNamePinyin2").val()); + formData.append('sailorList[' + sailorCnt + '].birthdate', $("#birthdate2").val()); + formData.append('sailorList[' + sailorCnt + '].sailorContact', $("#sailorContact2").val()); + formData.append('sailorList[' + sailorCnt + '].residence', $("#residence2").val()); + formData.append('sailorList[' + sailorCnt + '].note', $("#note2").val()); + formData.append('sailorList[' + sailorCnt + '].position', "POS004"); + sailorCnt++; + } + const navigatingOfficerRestriction = $("#navigatingOfficerRestriction").val() + if(navigatingOfficerRestriction){ + formData.append('sailorList['+sailorCnt+'].isRestriction', navigatingOfficerRestriction); + formData.append('sailorList['+sailorCnt+'].position', "POS002"); + sailorCnt++; + } + const chiefEngineerRestriction = $("#chiefEngineerRestriction").val(); + if(chiefEngineerRestriction){ + formData.append('sailorList['+sailorCnt+'].isRestriction', chiefEngineerRestriction); + formData.append('sailorList['+sailorCnt+'].position', "POS003"); + sailorCnt++; + } + $.each($(".sailorRestriction"), function (idx, div){ + const position = $(div).find(".normalSailorPosition").val(); + if(position===""){ + alert("선원의 직책이 선택되지 않았습니다.") + return false + } + formData.append('sailorList['+(idx+sailorCnt)+'].isRestriction', $(div).find(".normalSailorRestriction").val()); + formData.append('sailorList['+(idx+sailorCnt)+'].sailorNameKr', $(div).find(".normalSailorNm").val()); + formData.append('sailorList['+(idx+sailorCnt)+'].position', position); + }); + $.ajax({ + type : 'POST', + data : formData, + url : "/faStatistics/saveFishingBoat", + processData: false, + contentType: false, + success : function() { + alert("저장되었습니다."); + contentFade("out"); + // location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다."); + contentFade("out"); + } + }) + } } \ No newline at end of file diff --git a/src/main/resources/static/js/faisp/police.js b/src/main/resources/static/js/faisp/police.js new file mode 100644 index 00000000..6814a8fb --- /dev/null +++ b/src/main/resources/static/js/faisp/police.js @@ -0,0 +1,22 @@ +$(document).on('click', '.policeTr', function (){ + const userSeq = (Number($(this).find(".userSeq").val())); + console.log(userSeq); + showModal(userSeq); +}); + +function showModal(userSeq){ + $.ajax({ + url: '/faisp/policeEditModal', + data: {userSeq: userSeq}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#policeEditModalContent").empty().append(html); + $("#policeEditModal").modal('show'); + }, + error:function(){ + + } + }); +} + diff --git a/src/main/resources/templates/adminPage/userMgt/userEditModal.html b/src/main/resources/templates/adminPage/userMgt/userEditModal.html index 5e53fb31..730a077e 100644 --- a/src/main/resources/templates/adminPage/userMgt/userEditModal.html +++ b/src/main/resources/templates/adminPage/userMgt/userEditModal.html @@ -6,6 +6,8 @@
@@ -168,32 +172,32 @@
- - - + + +
- +
- +
- +
- +
@@ -204,13 +208,13 @@
- - + +
-
+
+
+
+ +
+
- +
- +
- +
- +
- - +
- - +
- - + +
@@ -268,50 +277,50 @@
- - + +
- +
- +
- +
- +
- +
- +
- - - - + + + +
- +
@@ -319,10 +328,10 @@
- - +
@@ -332,7 +341,7 @@
- +
@@ -340,42 +349,42 @@
- +
- - - + +
- +
- +
-
+
- - + +
- +
- +

@@ -429,25 +438,25 @@
- +
- +
- +
- +
- @@ -456,77 +465,65 @@
- +
- - - + +
- - - + +
- - - + +
-
- +
- +
- +
- - - + + +
diff --git a/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatMgt.html b/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatMgt.html index 5d5d7941..d0b4f2a5 100644 --- a/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatMgt.html +++ b/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatMgt.html @@ -214,5 +214,31 @@
+ + \ No newline at end of file diff --git a/src/main/resources/templates/faisp/policeEditModal.html b/src/main/resources/templates/faisp/policeEditModal.html new file mode 100644 index 00000000..5ad5c529 --- /dev/null +++ b/src/main/resources/templates/faisp/policeEditModal.html @@ -0,0 +1,149 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/faisp/policeList.html b/src/main/resources/templates/faisp/policeList.html new file mode 100644 index 00000000..45176728 --- /dev/null +++ b/src/main/resources/templates/faisp/policeList.html @@ -0,0 +1,171 @@ + + + + + +
+
+

現 외사경찰 현황

+ + +
+
+
+
+ + +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
순번계급성명현부서
생년월일성별최초
임용
현 계급
임용
현 부서
임용
수사경과
보유여부
외사경력입직
경로
최종
수정일
전출
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ + + + +
+ \ No newline at end of file diff --git a/src/main/resources/templates/translator/translator.html b/src/main/resources/templates/translator/translator.html index 4b46a587..2afe90f8 100644 --- a/src/main/resources/templates/translator/translator.html +++ b/src/main/resources/templates/translator/translator.html @@ -124,8 +124,8 @@ - +