Merge branch 'master' of http://118.219.150.34:50501/DBNT/FAISP
commit
d4748f2e6b
|
|
@ -1,6 +1,12 @@
|
||||||
package com.dbnt.faisp.config;
|
package com.dbnt.faisp.config;
|
||||||
|
|
||||||
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
|
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.model.MenuMgt;
|
||||||
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
|
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
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.bind.annotation.RestController;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
|
@ -21,6 +29,11 @@ public class ModalController {
|
||||||
private final MenuMgtService menuMgtService;
|
private final MenuMgtService menuMgtService;
|
||||||
private final UserInfoService userInfoService;
|
private final UserInfoService userInfoService;
|
||||||
private final CodeMgtService codeMgtService;
|
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")
|
@GetMapping("/menuModal")
|
||||||
public ModelAndView menuModalPage(@AuthenticationPrincipal UserInfo loginUser, MenuMgt menuMgt){
|
public ModelAndView menuModalPage(@AuthenticationPrincipal UserInfo loginUser, MenuMgt menuMgt){
|
||||||
|
|
@ -49,4 +62,23 @@ public class ModalController {
|
||||||
mav.addObject("searchParams", userInfo);
|
mav.addObject("searchParams", userInfo);
|
||||||
return mav;
|
return mav;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/crackdownStatusModal")
|
||||||
|
public ModelAndView crackdownStatusModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||||
|
ModelAndView mav = new ModelAndView("common/modal/crackdownStatusModal");
|
||||||
|
crackdownStatus.setQueryInfo();
|
||||||
|
|
||||||
|
List<CrackdownStatus> 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -95,9 +95,13 @@ public class FishingBoatController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/saveFishingBoat")
|
@PostMapping("/saveFishingBoat")
|
||||||
public Integer saveFishingBoat(@AuthenticationPrincipal UserInfo loginUser,
|
public Integer saveFishingBoat(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||||
FishingBoat fishingBoat){
|
|
||||||
return 0;
|
return 0;
|
||||||
// return processResultService.saveProcessResult(processResult);
|
// return processResultService.saveProcessResult(processResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/checkCaseNum")
|
||||||
|
public Integer checkCaseNum(String caseNum){
|
||||||
|
return fishingBoatService.checkCaseNum(caseNum);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,8 +61,7 @@ public class CrackdownStatusBaseEntity extends BaseModel {
|
||||||
private String mmsi;
|
private String mmsi;
|
||||||
|
|
||||||
@Column(name = "field_ivsgt")
|
@Column(name = "field_ivsgt")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
private String fieldIvsgt;
|
||||||
private LocalDate fieldIvsgt;
|
|
||||||
|
|
||||||
@Column(name = "obstr_exspd_cnt")
|
@Column(name = "obstr_exspd_cnt")
|
||||||
private Integer obstrExspdCnt;
|
private Integer obstrExspdCnt;
|
||||||
|
|
|
||||||
|
|
@ -6,5 +6,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public interface CrackdownStatusRepository extends JpaRepository<CrackdownStatus, Integer> {
|
public interface CrackdownStatusRepository extends JpaRepository<CrackdownStatus, Integer> {
|
||||||
Optional<CrackdownStatus> findByCdsKey(Integer cdsKey);
|
Optional<CrackdownStatus> findByCdsKey(Integer cdsKey);
|
||||||
|
Optional<CrackdownStatus> findTop1ByCaseNum(String caseNum);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -99,4 +99,8 @@ public class FishingBoatService extends BaseService {
|
||||||
|
|
||||||
return cdsKey;
|
return cdsKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer checkCaseNum(String caseNum) {
|
||||||
|
return crackdownStatusRepository.findTop1ByCaseNum(caseNum).orElse(null)==null?0:1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -17,4 +17,8 @@ public interface UserInfoMapper {
|
||||||
List<ParamMap> selectManagerList(ParamMap param);
|
List<ParamMap> selectManagerList(ParamMap param);
|
||||||
|
|
||||||
List<DashboardConfig> selectDashboardConfigList(Integer userSeq);
|
List<DashboardConfig> selectDashboardConfigList(Integer userSeq);
|
||||||
|
|
||||||
|
List<UserInfo> selectPoliceList(UserInfo userInfo);
|
||||||
|
|
||||||
|
Integer selectPoliceListCnt(UserInfo userInfo);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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, UserInfoHistory.UserInfoHistoryId> {
|
||||||
|
|
||||||
|
UserInfoHistory findByUserSeq(Integer userSeq);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
package com.dbnt.faisp.main.userInfo.service;
|
package com.dbnt.faisp.main.userInfo.service;
|
||||||
|
|
||||||
import com.dbnt.faisp.config.Role;
|
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.mapper.UserInfoMapper;
|
||||||
import com.dbnt.faisp.main.userInfo.model.DashboardConfig;
|
import com.dbnt.faisp.main.userInfo.model.DashboardConfig;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
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.DashboardConfigRepository;
|
||||||
|
import com.dbnt.faisp.main.userInfo.repository.UserInfoHistoryRepository;
|
||||||
import com.dbnt.faisp.main.userInfo.repository.UserInfoRepository;
|
import com.dbnt.faisp.main.userInfo.repository.UserInfoRepository;
|
||||||
import com.dbnt.faisp.util.ParamMap;
|
import com.dbnt.faisp.util.ParamMap;
|
||||||
|
|
||||||
|
|
@ -24,6 +27,7 @@ import java.util.List;
|
||||||
public class UserInfoService implements UserDetailsService {
|
public class UserInfoService implements UserDetailsService {
|
||||||
|
|
||||||
private final UserInfoRepository userInfoRepository;
|
private final UserInfoRepository userInfoRepository;
|
||||||
|
private final UserInfoHistoryRepository userInfoHistoryRepository;
|
||||||
private final DashboardConfigRepository dashboardConfigRepository;
|
private final DashboardConfigRepository dashboardConfigRepository;
|
||||||
private final UserInfoMapper userInfoMapper;
|
private final UserInfoMapper userInfoMapper;
|
||||||
|
|
||||||
|
|
@ -36,7 +40,46 @@ public class UserInfoService implements UserDetailsService {
|
||||||
userInfo.setUserStatus("USC002");
|
userInfo.setUserStatus("USC002");
|
||||||
userInfo.setPassword(convertPassword(userInfo.getPassword()));
|
userInfo.setPassword(convertPassword(userInfo.getPassword()));
|
||||||
userInfo.setWrtDt(LocalDateTime.now());
|
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
|
@Transactional
|
||||||
public void updateUserInfo(UserInfo userInfo){
|
public void updateUserInfo(UserInfo userInfo){
|
||||||
|
|
@ -48,7 +91,7 @@ public class UserInfoService implements UserDetailsService {
|
||||||
if(userInfo.getUserNm()!=null){
|
if(userInfo.getUserNm()!=null){
|
||||||
savedInfo.setUserNm(userInfo.getUserNm());
|
savedInfo.setUserNm(userInfo.getUserNm());
|
||||||
}
|
}
|
||||||
if(userInfo.getPassword()!=null){
|
if(userInfo.getPassword()!=null && userInfo.getPassword()!=null){
|
||||||
savedInfo.setPassword(convertPassword(userInfo.getPassword()));
|
savedInfo.setPassword(convertPassword(userInfo.getPassword()));
|
||||||
}
|
}
|
||||||
if(userInfo.getPhoneNo()!=null){
|
if(userInfo.getPhoneNo()!=null){
|
||||||
|
|
@ -188,4 +231,11 @@ public class UserInfoService implements UserDetailsService {
|
||||||
}
|
}
|
||||||
dashboardConfigRepository.saveAll(configList);
|
dashboardConfigRepository.saveAll(configList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<UserInfo> selectPoliceList(UserInfo userInfo) {
|
||||||
|
return userInfoMapper.selectPoliceList(userInfo);
|
||||||
|
}
|
||||||
|
public Integer selectPoliceListCnt(UserInfo userInfo) {
|
||||||
|
return userInfoMapper.selectPoliceListCnt(userInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,4 +80,58 @@
|
||||||
where b.user_seq = #{userSeq}
|
where b.user_seq = #{userSeq}
|
||||||
order by b.order_num
|
order by b.order_num
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<sql id="selectPoliceListWhere">
|
||||||
|
<where>
|
||||||
|
user_status = #{userStatus}
|
||||||
|
and og_cd in
|
||||||
|
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</where>
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectPoliceList" resultType="UserInfo" parameterType="UserInfo">
|
||||||
|
select user_seq,
|
||||||
|
(select item_value from code_mgt where item_cd = title_cd) as title_cd,
|
||||||
|
user_nm,
|
||||||
|
og_cd,
|
||||||
|
(select item_value from code_mgt where item_cd = og_cd) as organ_nm,
|
||||||
|
(select item_value from code_mgt where item_cd = ofc_cd) as ofc_cd,
|
||||||
|
birth_date,
|
||||||
|
(select item_value from code_mgt where item_cd = sex) as sex,
|
||||||
|
police_in_date,
|
||||||
|
title_in_date,
|
||||||
|
ofc_in_date,
|
||||||
|
(select item_value from code_mgt where item_cd = outturn_cd) as outturn_cd,
|
||||||
|
(select item_value from code_mgt where item_cd = job_in_cd) as job_in_cd,
|
||||||
|
wrt_dt
|
||||||
|
from user_info
|
||||||
|
<include refid="selectPoliceListWhere"></include>
|
||||||
|
order by user_seq desc
|
||||||
|
limit #{rowCnt} offset #{firstIndex}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectPoliceListCnt" resultType="Integer" parameterType="UserInfo">
|
||||||
|
select count(*)
|
||||||
|
from(
|
||||||
|
select user_seq,
|
||||||
|
(select item_value from code_mgt where item_cd = title_cd) as title_cd,
|
||||||
|
user_nm,
|
||||||
|
og_cd,
|
||||||
|
(select item_value from code_mgt where item_cd = og_cd) as organ_nm,
|
||||||
|
(select item_value from code_mgt where item_cd = ofc_cd) as ofc_cd,
|
||||||
|
birth_date,
|
||||||
|
(select item_value from code_mgt where item_cd = sex) as sex,
|
||||||
|
police_in_date,
|
||||||
|
title_in_date,
|
||||||
|
ofc_in_date,
|
||||||
|
(select item_value from code_mgt where item_cd = outturn_cd) as outturn_cd,
|
||||||
|
(select item_value from code_mgt where item_cd = job_in_cd) as job_in_cd,
|
||||||
|
wrt_dt
|
||||||
|
from user_info
|
||||||
|
<include refid="selectPoliceListWhere"></include>
|
||||||
|
order by user_seq desc
|
||||||
|
) a
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -89,4 +89,7 @@
|
||||||
}
|
}
|
||||||
.display-none{
|
.display-none{
|
||||||
display:none
|
display:none
|
||||||
|
}
|
||||||
|
#subModalBody{
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
@ -1,16 +1,67 @@
|
||||||
|
let selectedList = [];
|
||||||
$(document).on('click', '#getFishingBoatEditModalBtn', function (){
|
$(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 (){
|
$(document).on('change', '#crackdownPolice', function (){
|
||||||
getCrackdownBoatOption(this.value);
|
getCrackdownBoatOption(this.value);
|
||||||
})
|
})
|
||||||
|
$(document).on('change', '#violationSelector', function (){
|
||||||
|
if(this.selectedOptions[0].value !== ""){
|
||||||
|
if($(".violationCd[value='"+this.selectedOptions[0].value+"']").length===0){
|
||||||
|
$("#violationDiv").append(
|
||||||
|
'<div class="col-6 violation">\n' +
|
||||||
|
' <div class="input-group w-auto">\n' +
|
||||||
|
' <input type="hidden" class="form-control form-control-sm fishingBoatInfo violationCd" value="'+this.selectedOptions[0].value+'">\n' +
|
||||||
|
' <input type="text" class="form-control form-control-sm" value="'+this.selectedOptions[0].innerText+'">\n' +
|
||||||
|
' <button type="button" class="btn btn-sm btn-outline-secondary opacity-75 violationRemoveBtn">\n' +
|
||||||
|
' <i class="bi bi-dash-square text-danger"></i>\n' +
|
||||||
|
' </button>\n' +
|
||||||
|
' </div>\n' +
|
||||||
|
'</div>'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$(document).on('click', '.violationRemoveBtn', function (){
|
||||||
|
$(this).parents(".violation").remove();
|
||||||
|
})
|
||||||
$(document).on('change', '.boatNameKr', function (){
|
$(document).on('change', '.boatNameKr', function (){
|
||||||
$(".boatNameKr").val(this.value);
|
$(".boatNameKr").val(this.value);
|
||||||
})
|
})
|
||||||
$(document).on('change', '#equalCaptain', function (){
|
$(document).on('change', '#equalCaptain', function (){
|
||||||
if(this.checked){
|
if(this.checked){
|
||||||
$.each($("#captainDiv :input"), function (idx, input){
|
$.each($("#captainDiv :input"), function (idx, input){
|
||||||
$("#shipOwnerDiv").find("[name='"+input.name+"']").val(input.value)
|
$("#shipOwnerDiv").find("#"+input.id+"2").val(input.value)
|
||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
$("#shipOwnerDiv :input").val("");
|
$("#shipOwnerDiv :input").val("");
|
||||||
|
|
@ -18,20 +69,25 @@ $(document).on('change', '#equalCaptain', function (){
|
||||||
})
|
})
|
||||||
$(document).on('change', '#captainDiv :input', function (){
|
$(document).on('change', '#captainDiv :input', function (){
|
||||||
if($("#equalCaptain").prop("checked")){
|
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 (){
|
$(document).on('click', '#sailorAddBtn', function (){
|
||||||
$("#sailorRestrictionHome").append(
|
$("#sailorRestrictionHome").append(
|
||||||
'<div class="col-4 sailorRestriction">\n' +
|
'<div class="col-4 sailorRestriction">\n' +
|
||||||
' <div class="input-group w-auto">\n' +
|
' <div class="input-group">\n' +
|
||||||
' <select class="form-select form-select-sm isRestriction" id="normalSailorRestriction">\n' +
|
' <select class="form-select form-select-sm isRestriction normalSailorPosition" style="width: 75px">\n' +
|
||||||
' <option value="">선택</option>\n' +
|
' <option value="">직책</option>\n' +
|
||||||
' <option value="O">O</option>\n' +
|
' <option value="POS005">기타 간부선원</option>\n' +
|
||||||
' <option value="X">X</option>\n' +
|
' <option value="POS006">일반선원 또는 확인불가</option>\n' +
|
||||||
' </select>\n' +
|
' </select>\n' +
|
||||||
' <input type="text" class="form-control form-control-sm" id="normalSailor" placeholder="이름">\n' +
|
' <select class="form-select form-select-sm isRestriction w-auto normalSailorRestriction">\n' +
|
||||||
' <button type="button" class="btn btn-sm btn-outline-secondary opacity-50 sailorRemoveBtn">\n' +
|
' <option value="">선택</option>\n' +
|
||||||
|
' <option value="Y">O</option>\n' +
|
||||||
|
' <option value="N">X</option>\n' +
|
||||||
|
' </select>\n' +
|
||||||
|
' <input type="text" class="form-control form-control-sm sailorInfo normalSailorNm w-auto" placeholder="이름">\n' +
|
||||||
|
' <button type="button" class="btn btn-sm btn-outline-secondary w-auto opacity-75 sailorRemoveBtn">\n' +
|
||||||
' <i class="bi bi-dash-square text-danger"></i>\n' +
|
' <i class="bi bi-dash-square text-danger"></i>\n' +
|
||||||
' </button>\n' +
|
' </button>\n' +
|
||||||
' </div>\n' +
|
' </div>\n' +
|
||||||
|
|
@ -41,6 +97,18 @@ $(document).on('click', '#sailorAddBtn', function (){
|
||||||
$(document).on('click', '.sailorRemoveBtn', function (){
|
$(document).on('click', '.sailorRemoveBtn', function (){
|
||||||
$(this).parents(".sailorRestriction").remove();
|
$(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){
|
function getFishingBoatEditModal(cdsKey){
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
|
@ -55,6 +123,10 @@ function getFishingBoatEditModal(cdsKey){
|
||||||
language: "ko",
|
language: "ko",
|
||||||
autoclose: true
|
autoclose: true
|
||||||
});
|
});
|
||||||
|
$(".dateTimeSelector").datetimepicker({
|
||||||
|
format:'Y-m-d H:i',
|
||||||
|
lang:'kr'
|
||||||
|
});
|
||||||
$(".timeSelector").datetimepicker({
|
$(".timeSelector").datetimepicker({
|
||||||
datepicker:false,
|
datepicker:false,
|
||||||
format:'H:i',
|
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");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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(){
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -6,6 +6,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form id="userInfoUpdate" action="#" method="post">
|
<form id="userInfoUpdate" action="#" method="post">
|
||||||
|
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||||
|
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||||
<input type="hidden" name="userSeq" id="userSeq" class="userSeq" th:value="${userInfo.userSeq}">
|
<input type="hidden" name="userSeq" id="userSeq" class="userSeq" th:value="${userInfo.userSeq}">
|
||||||
<input type="hidden" name="userStatus" th:value="${userInfo.userStatus}">
|
<input type="hidden" name="userStatus" th:value="${userInfo.userStatus}">
|
||||||
<div class="mb-3 mt-3 row">
|
<div class="mb-3 mt-3 row">
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,364 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<form method="get" action="#" id="modalSearchForm">
|
||||||
|
<input type="hidden" name="pageIndex" id="modalPageIndex" th:value="${searchParams.pageIndex}">
|
||||||
|
<input type="hidden" name="rowCnt" value="10">
|
||||||
|
<div class="row justify-content-end pe-3 py-1">
|
||||||
|
<div class="col-auto">
|
||||||
|
<div class="row justify-content-end">
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" class="form-control form-control-sm" name="caseNum" placeholder="사건번호" th:value="${searchParams.caseNum}">
|
||||||
|
</div>
|
||||||
|
<input type="button" class="btn btn-sm btn-primary col-auto" id="searchModalBtn" value="검색">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div class="row justify-content-start">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12" style="overflow: hidden; overflow-x: scroll">
|
||||||
|
<table class="table table-striped table-bordered" style="max-width: none; width: auto;" id="cdsTable">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th rowspan="4">연번</th>
|
||||||
|
<th rowspan="4">사건번호</th>
|
||||||
|
<th rowspan="4">나포일시</th>
|
||||||
|
<th rowspan="4">위반장소</th>
|
||||||
|
<th rowspan="4">위반내용</th>
|
||||||
|
<th colspan="4">침범유형</th>
|
||||||
|
<th rowspan="3">NLL</th>
|
||||||
|
<th colspan="7">특수공무집행방해</th>
|
||||||
|
<th rowspan="4">사건담당경찰서</th>
|
||||||
|
<th colspan="2">검거기관</th>
|
||||||
|
<th rowspan="4">MMSI.NO(AIS)</th>
|
||||||
|
<th colspan="6">선박제원</th>
|
||||||
|
<th rowspan="3" colspan="2">선장(출생년도)</th>
|
||||||
|
<th rowspan="4">선종</th>
|
||||||
|
<th rowspan="3" colspan="2">어획물 축소기재</th>
|
||||||
|
<th colspan="5">범칙물</th>
|
||||||
|
<th colspan="2">처리현황</th>
|
||||||
|
<th colspan="3">담보금납부(만원)</th>
|
||||||
|
<th colspan="2">담보금미납(만원)</th>
|
||||||
|
<th colspan="10">선박처리</th>
|
||||||
|
<th colspan="4">직접인계</th>
|
||||||
|
<th colspan="6">구속</th>
|
||||||
|
<th colspan="6">불구속</th>
|
||||||
|
<th rowspan="3" colspan="4">현장조사</th>
|
||||||
|
<th rowspan="3" colspan="2">압송</th>
|
||||||
|
<th rowspan="4">영장청구 소요시간</th>
|
||||||
|
<th colspan="5">압수어구</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th rowspan="2">무허가 조업</th>
|
||||||
|
<th rowspan="2">
|
||||||
|
특정금지<br>
|
||||||
|
(무허가, 정선명령위반)
|
||||||
|
</th>
|
||||||
|
<th rowspan="2">
|
||||||
|
EEZ<br>
|
||||||
|
제한조건
|
||||||
|
</th>
|
||||||
|
<th rowspan="2">영해침범</th>
|
||||||
|
<th rowspan="2">발생건수</th>
|
||||||
|
<th colspan="3">인적피해</th>
|
||||||
|
<th colspan="3">물적피해</th>
|
||||||
|
<th rowspan="2" colspan="2">구분</th>
|
||||||
|
<th rowspan="3">선명</th>
|
||||||
|
<th rowspan="3">톤수(톤)</th>
|
||||||
|
<th rowspan="3">선원(명)</th>
|
||||||
|
<th rowspan="3">선질</th>
|
||||||
|
<th rowspan="2" colspan="2">선적</th>
|
||||||
|
<th rowspan="3">어종</th>
|
||||||
|
<th rowspan="2">어획량(kg)</th>
|
||||||
|
<th rowspan="2">폐기량(kg)</th>
|
||||||
|
<th rowspan="2">위판량(kg)</th>
|
||||||
|
<th rowspan="2">위판금액(원)</th>
|
||||||
|
<th rowspan="2">조사중</th>
|
||||||
|
<th rowspan="2">완료</th>
|
||||||
|
<th rowspan="2">척수</th>
|
||||||
|
<th rowspan="2">납부액</th>
|
||||||
|
<th rowspan="3">납부일시</th>
|
||||||
|
<th rowspan="2">미납</th>
|
||||||
|
<th rowspan="2">미납금액</th>
|
||||||
|
<th rowspan="2">위탁관리</th>
|
||||||
|
<th rowspan="3">위탁시작일</th>
|
||||||
|
<th rowspan="3">위탁종료일</th>
|
||||||
|
<th rowspan="2">퇴거</th>
|
||||||
|
<th rowspan="2">직접인계</th>
|
||||||
|
<th rowspan="2">공매</th>
|
||||||
|
<th colspan="2">폐선</th>
|
||||||
|
<th rowspan="2">침몰</th>
|
||||||
|
<th rowspan="2">환부</th>
|
||||||
|
<th rowspan="3">일시</th>
|
||||||
|
<th rowspan="3">해점</th>
|
||||||
|
<th rowspan="3">인계함정</th>
|
||||||
|
<th rowspan="3">중측인수함정</th>
|
||||||
|
<th rowspan="2">계</th>
|
||||||
|
<th rowspan="2">선장</th>
|
||||||
|
<th rowspan="2">향해장</th>
|
||||||
|
<th rowspan="2">기관장</th>
|
||||||
|
<th rowspan="2">선원</th>
|
||||||
|
<th rowspan="2">구속척수(몰수판결)</th>
|
||||||
|
<th rowspan="2">계</th>
|
||||||
|
<th rowspan="2">선장</th>
|
||||||
|
<th rowspan="2">향해장</th>
|
||||||
|
<th rowspan="2">기관장</th>
|
||||||
|
<th rowspan="2">선원</th>
|
||||||
|
<th rowspan="2">불구속척수</th>
|
||||||
|
<th rowspan="2">틀(타망)</th>
|
||||||
|
<th rowspan="2">폭(유망)</th>
|
||||||
|
<th rowspan="2">조(형망)</th>
|
||||||
|
<th rowspan="2">개(통발)</th>
|
||||||
|
<th rowspan="2">기타</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>피해인원</th>
|
||||||
|
<th>피해액(만원)</th>
|
||||||
|
<th rowspan="2">상세내용</th>
|
||||||
|
<th>발생건수</th>
|
||||||
|
<th>피해액(만원)</th>
|
||||||
|
<th rowspan="2">상세내용</th>
|
||||||
|
<th>단순폐선</th>
|
||||||
|
<th>폐선조건부공매</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[invasionType == 'IST001'].![1]) ne null ? #aggregates.sum(crackdownList.?[invasionType == 'IST001'].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[invasionType == 'IST002'].![1]) ne null ? #aggregates.sum(crackdownList.?[invasionType == 'IST002'].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[invasionType == 'IST003'].![1]) ne null ? #aggregates.sum(crackdownList.?[invasionType == 'IST003'].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[invasionType == 'IST004'].![1]) ne null ? #aggregates.sum(crackdownList.?[invasionType == 'IST004'].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[nll == 'Y'].![1]) ne null ? #aggregates.sum(crackdownList.?[nll == 'Y'].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[personDamageCnt > 0 || personDamageAmount > 0].![1]) ne null ? 1 : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![personDamageCnt])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![personDamageAmount])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[materialDamageCnt > 0 || materialDamageAmount > 0].![1]) ne null ? 1 : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![materialDamageAmount])}"></th>
|
||||||
|
<th>단속경찰서</th>
|
||||||
|
<th>단속함정</th>
|
||||||
|
<th>성</th>
|
||||||
|
<th>시</th>
|
||||||
|
<th>이름</th>
|
||||||
|
<th>출생년도</th>
|
||||||
|
<th>어종</th>
|
||||||
|
<th>수량</th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.offenseCatchCnt])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.offenseIllegalWasteQuantity])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.offenseQuantity])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.offenseAmount])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.processStatus == 'PR001'].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.processStatus == 'PR001'].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.processStatus == 'PR009'].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.processStatus == 'PR009'].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.damboPayment > 0].![1]) ne null ? 1 : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.damboPayment])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.damboUnpaidAmount > 0].![1]) ne null ? 1 : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.damboUnpaidAmount])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.consignmentStartDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.evictionDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.directHandoverDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT001'].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT001'].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT002'].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT002'].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT003'].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT003'].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.confiscationDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.returnDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![restrictionTotal])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![restrictionCaptin])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![restrictionMate])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![restrictionWarden])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![restrictionSailor])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.confiscationDt != null].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.confiscationDt != null].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![notRestrictionTotal])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![notRestrictionCaptin])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![notRestrictionMate])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![notRestrictionWarden])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.![notRestrictionSailor])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[processResult.confiscationDt != null].![1]) ne null ? 0 : #aggregates.sum(crackdownList.?[processResult.confiscationDt != null].![1])}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[fieldIvsgtNapoDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||||
|
<th>나포일시</th>
|
||||||
|
<th>석방일시</th>
|
||||||
|
<th>소요시간</th>
|
||||||
|
<th>소요시간</th>
|
||||||
|
<th>거리(해리)</th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationFrame != ''].![1]) ne null ? #aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationFrame != ''].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationWidth != ''].![1]) ne null ? #aggregates.sum(crackdownList.?[fishingBoat.confiscationWidth != null && fishingBoat.confiscationWidth != ''].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationJo != ''].![1]) ne null ? #aggregates.sum(crackdownList.?[fishingBoat.confiscationJo != null && fishingBoat.confiscationJo != ''].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationGae != ''].![1]) ne null ? #aggregates.sum(crackdownList.?[fishingBoat.confiscationGae != null && fishingBoat.confiscationGae != ''].![1]) : 0}"></th>
|
||||||
|
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationEtc != ''].![1]) ne null ? #aggregates.sum(crackdownList.?[fishingBoat.confiscationEtc != null && fishingBoat.confiscationEtc != ''].![1]) : 0}"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="table-group-divider">
|
||||||
|
<th:block th:each="crackdownStatus:${crackdownList}">
|
||||||
|
<tr class="crackdownTr" th:data-key="${crackdownStatus.cdsKey}">
|
||||||
|
<td><input type="checkbox" class="crackdownChkbox"></td>
|
||||||
|
<td th:text="${crackdownStatus.cdsKey}"></td>
|
||||||
|
<td th:text="${crackdownStatus.caseNum}"></td>
|
||||||
|
<td th:text="${crackdownStatus.napoDt}"></td>
|
||||||
|
<td>
|
||||||
|
<th:block th:if="${#lists.size(crackdownStatus.violationList) >= 1}">
|
||||||
|
<th:block th:each="violation:${crackdownStatus.violationList}">
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||||
|
<div th:if="${violation.violation eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></div>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span th:text="${crackdownStatus.napoSeaPointLat}"> ~ </span>
|
||||||
|
<span th:text="${crackdownStatus.napoSeaPointLon}"></span>
|
||||||
|
<div th:text="${crackdownStatus.napoSeaPointDetail}"></div>
|
||||||
|
</td>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('IST')}">
|
||||||
|
<td th:if="${crackdownStatus.invasionType ne null && crackdownStatus.invasionType eq 'IST001' && crackdownStatus.invasionType eq commonCode.itemCd}" th:text="1"></td>
|
||||||
|
<td th:if="${crackdownStatus.invasionType ne commonCode.itemCd}" th:text="0"></td>
|
||||||
|
</th:block>
|
||||||
|
<td th:text="${crackdownStatus.nll eq 'Y' ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.personDamageCnt ne 0 && crackdownStatus.personDamageAmount ne 0 ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.personDamageCnt}"></td>
|
||||||
|
<td th:text="${crackdownStatus.personDamageAmount}"></td>
|
||||||
|
<td th:text="${crackdownStatus.personDamageDetail}"></td>
|
||||||
|
<td th:text="${crackdownStatus.materialDamageCnt ne 0 && crackdownStatus.materialDamageAmount ne 0 ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.materialDamageAmount}"></td>
|
||||||
|
<td th:text="${crackdownStatus.materialDamageDetail}"></td>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('ATA')}">
|
||||||
|
<td th:if="${crackdownStatus.caseAgency eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${crackdownStatus.caseAgency eq null || crackdownStatus.caseAgency eq ''}">
|
||||||
|
<td></td>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
|
||||||
|
<td th:if="${crackdownStatus.crackdownPolice eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${!#strings.contains(crackdownStatus.crackdownPolice, 'CPO')}">
|
||||||
|
<td th:text="${crackdownStatus.crackdownPolice}"></td>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CPO')))}">
|
||||||
|
<th:block th:if="${'CPO'+num == crackdownStatus.crackdownPolice}" th:each="commonCode:${session.commonCode.get('CPO'+num)}">
|
||||||
|
<td th:if="${crackdownStatus.crackdownBoat eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${!#strings.contains(crackdownStatus.crackdownBoat, 'CPO')}">
|
||||||
|
<td></td>
|
||||||
|
</th:block>
|
||||||
|
<td th:text="${crackdownStatus.mmsi}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.boatNameKr}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.tonCnt}"></td>
|
||||||
|
<td th:text="${crackdownStatus.restrictionSailor + crackdownStatus.notRestrictionSailor}"></td>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('BM')}">
|
||||||
|
<td th:if="${crackdownStatus.fishingBoat.boatMaterial eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${!#strings.contains(crackdownStatus.fishingBoat.boatMaterial, 'BM')}">
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.boatMaterial}"></td>
|
||||||
|
</th:block>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.boatNnySung}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.boatNnySi}"></td>
|
||||||
|
<th:block th:each="sailor:${crackdownStatus.sailorList}">
|
||||||
|
<td th:if="${sailor.position eq 'POS001'}" th:text="${sailor.sailorNameKr}"></td>
|
||||||
|
<td th:if="${sailor.position eq 'POS001'}" th:text="${sailor.birthdate}"></td>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${#lists.size(crackdownStatus.sailorList) == 0}">
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('FT')}">
|
||||||
|
<td th:if="${crackdownStatus.fishingBoat.fisheryType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${!#strings.contains(crackdownStatus.fishingBoat.fisheryType, 'FT')}">
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.fisheryType}"></td>
|
||||||
|
</th:block>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.catchFishSpecies}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.catchCnt}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.offenseFishSpecies}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.offenseCatchCnt}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.offenseIllegalWasteQuantity}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.offenseQuantity}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.offenseAmount}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.processStatus eq 'PR001' ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.processStatus eq 'PR009' ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.damboPayment ne 0 ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.damboPayment}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.paymentPaymentDt}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.damboUnpaidAmount ne 0 ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.damboUnpaidAmount}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.consignmentStartDt ne null ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.consignmentStartDt}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.consignmentEndDt}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.evictionDt ne null ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.directHandoverDt ne null ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.boatDisposalDt ne null && crackdownStatus.processResult.boatDisposalType eq 'BDT001'? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.boatDisposalDt ne null && crackdownStatus.processResult.boatDisposalType eq 'BDT002'? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.boatDisposalDt ne null && crackdownStatus.processResult.boatDisposalType eq 'BDT003'? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.confiscationDt ne null ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.returnDt ne null ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.directHandoverDt}"></td>
|
||||||
|
<td>
|
||||||
|
<span th:text="${crackdownStatus.processResult.handoverSeaPointLat}"> ~ </span>
|
||||||
|
<span th:text="${crackdownStatus.processResult.handoverSeaPointLon}"></span>
|
||||||
|
</td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.handoverBoat}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.middleTakeoverBoat}"></td>
|
||||||
|
<td th:text="${crackdownStatus.restrictionTotal}"></td>
|
||||||
|
<td th:text="${crackdownStatus.restrictionCaptin}"></td>
|
||||||
|
<td th:text="${crackdownStatus.restrictionMate}"></td>
|
||||||
|
<td th:text="${crackdownStatus.restrictionWarden}"></td>
|
||||||
|
<td th:text="${crackdownStatus.restrictionSailor}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.confiscationDt ne null ? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.notRestrictionTotal}"></td>
|
||||||
|
<td th:text="${crackdownStatus.notRestrictionCaptin}"></td>
|
||||||
|
<td th:text="${crackdownStatus.notRestrictionMate}"></td>
|
||||||
|
<td th:text="${crackdownStatus.notRestrictionWarden}"></td>
|
||||||
|
<td th:text="${crackdownStatus.notRestrictionSailor}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.confiscationDt ne null ? 0 : 1}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fieldIvsgtNapoDt ne null? 1 : 0}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fieldIvsgtNapoDt }"></td>
|
||||||
|
<td th:text="${crackdownStatus.fieldIvsgtReleaseDt}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fieldIvsgtTimeTaken}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.pressurizedTimeTaken}"></td>
|
||||||
|
<td th:text="${crackdownStatus.distance}"></td>
|
||||||
|
<td th:text="${crackdownStatus.processResult.warrantReqTakeTime}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.confiscationFrame}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.confiscationWidth}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.confiscationJo}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.confiscationGae}"></td>
|
||||||
|
<td th:text="${crackdownStatus.fishingBoat.confiscationEtc}"></td>
|
||||||
|
</tr>
|
||||||
|
</th:block>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-auto">
|
||||||
|
<nav aria-label="Page navigation">
|
||||||
|
<ul class="pagination">
|
||||||
|
<th:block th:if="${searchParams.pageIndex>3}">
|
||||||
|
<li class="page-item modalPage" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||||
|
<a class="page-link" href="#" aria-label="Previous">
|
||||||
|
<span aria-hidden="true">«</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
|
||||||
|
<li class="page-item modalPage" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex==num?'active':''}">
|
||||||
|
<a class="page-link" href="#" th:text="${num}"></a>
|
||||||
|
</li>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
|
||||||
|
<li class="page-item modalPage" th:data-pageindex="${(searchParams.pageIndex)+3}">
|
||||||
|
<a class="page-link" href="#" aria-label="Next">
|
||||||
|
<span aria-hidden="true">»</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</th:block>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</html>
|
||||||
|
|
@ -9,12 +9,13 @@
|
||||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||||
<input type="hidden" name="cdsKey" th:value="${crackdownStatus.cdsKey}">
|
<input type="hidden" name="cdsKey" th:value="${crackdownStatus.cdsKey}">
|
||||||
|
<input type="hidden" name="fbKey" th:value="${crackdownStatus.fishingBoat.fbKey}">
|
||||||
<input type="hidden" name="saveYn" id="saveYn" th:value="${crackdownStatus.fishingBoat.saveYn}">
|
<input type="hidden" name="saveYn" id="saveYn" th:value="${crackdownStatus.fishingBoat.saveYn}">
|
||||||
<input type="hidden" name="wrtOrgan" th:value="${crackdownStatus.wrtOrgan}">
|
<input type="hidden" name="wrtOrgan" th:value="${crackdownStatus.fishingBoat.wrtOrgan}">
|
||||||
<input type="hidden" name="wrtPart" th:value="${crackdownStatus.wrtPart}">
|
<input type="hidden" name="wrtPart" th:value="${crackdownStatus.fishingBoat.wrtPart}">
|
||||||
<input type="hidden" name="wrtUserSeq" th:value="${crackdownStatus.wrtUserSeq}">
|
<input type="hidden" name="wrtUserSeq" th:value="${crackdownStatus.fishingBoat.wrtUserSeq}">
|
||||||
<input type="hidden" name="wrtUserNm" th:value="${crackdownStatus.wrtUserNm}">
|
<input type="hidden" name="wrtUserNm" th:value="${crackdownStatus.fishingBoat.wrtUserNm}">
|
||||||
<input type="hidden" name="wrtUserGrd" th:value="${crackdownStatus.wrtUserGrd}">
|
<input type="hidden" name="wrtUserGrd" th:value="${crackdownStatus.fishingBoat.wrtUserGrd}">
|
||||||
<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 active" id="baseInfoTab" data-bs-toggle="tab" data-bs-target="#baseInfoTabPanel" type="button" role="tab" aria-controls="baseInfoTabPanel" aria-selected="true">기본정보</button>
|
<button class="nav-link active" id="baseInfoTab" data-bs-toggle="tab" data-bs-target="#baseInfoTabPanel" type="button" role="tab" aria-controls="baseInfoTabPanel" aria-selected="true">기본정보</button>
|
||||||
|
|
@ -34,39 +35,42 @@
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="boatNameKr" class="col-sm-1 col-form-label col-form-label-sm text-center">선명</label>
|
<label for="boatNameKr" 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 boatNameKr" id="boatNameKr" name="boatNameKr" placeholder="한글" th:value="${crackdownStatus.fishingBoat.boatNameKr}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo boatNameKr" id="boatNameKr" name="fishingBoat.boatNameKr" placeholder="한글" th:value="${crackdownStatus.fishingBoat.boatNameKr}">
|
||||||
</div>
|
</div>
|
||||||
<label for="caseNum" class="col-sm-1 col-form-label col-form-label-sm text-center">사건번호</label>
|
<label for="caseNum" 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" id="caseNum" name="caseNum" th:value="${crackdownStatus.caseNum}">
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control form-control-sm crackdownStatusInfo" id="caseNum" name="caseNum" th:value="${crackdownStatus.caseNum}">
|
||||||
|
<input type="button" class="btn btn-sm btn-outline-primary w-auto" id="caseNumBtn" value="불러오기">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="caseAgency" class="col-sm-1 col-form-label col-form-label-sm text-center">사건담당기관</label>
|
<label for="caseAgency" 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" id="caseAgency" name="caseAgency">
|
<select class="form-select form-select-sm crackdownStatusInfo" id="caseAgency" name="caseAgency">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<th:block th:each="code:${ataList}">
|
<th:block th:each="code:${ataList}">
|
||||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${crackdownStatus.caseAgency}"></option>
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.caseAgency}"></option>
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<label for="casePoliceOfficer" class="col-sm-1 col-form-label col-form-label-sm text-center fs-13">사건담당경찰관</label>
|
<label for="casePoliceOfficer" class="col-sm-1 col-form-label col-form-label-sm text-center fs-13">사건담당경찰관</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="text" class="form-control form-control-sm" id="casePoliceOfficer" name="casePoliceOfficer" th:value="${crackdownStatus.casePoliceOfficer}">
|
<input type="text" class="form-control form-control-sm crackdownStatusInfo" id="casePoliceOfficer" name="casePoliceOfficer" th:value="${crackdownStatus.casePoliceOfficer}">
|
||||||
</div>
|
</div>
|
||||||
<label for="crackdownPolice" class="col-sm-1 col-form-label col-form-label-sm text-center">단속경찰서</label>
|
<label for="crackdownPolice" 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="crackdownPolice" id="crackdownPolice">
|
<select class="form-select form-select-sm crackdownStatusInfo" name="crackdownPolice" id="crackdownPolice">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<th:block th:each="code:${cpoList}">
|
<th:block th:each="code:${cpoList}">
|
||||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${crackdownStatus.crackdownPolice}"></option>
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.crackdownPolice}"></option>
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<label for="crackdownBoat" class="col-sm-1 col-form-label col-form-label-sm text-center">단속함정</label>
|
<label for="crackdownBoat" 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="crackdownBoat" id="crackdownBoat" th:data-boatcode="${crackdownStatus.crackdownBoat}" disabled>
|
<select class="form-select form-select-sm crackdownStatusInfo" name="crackdownBoat" id="crackdownBoat" th:data-boatcode="${crackdownStatus.crackdownBoat}" disabled>
|
||||||
<option value="">단속경찰서를 선택해주세요.</option>
|
<option value="">단속경찰서를 선택해주세요.</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -74,22 +78,22 @@
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="napoDt" class="col-sm-1 col-form-label col-form-label-sm text-center">나포일시</label>
|
<label for="napoDt" 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 dateSelector" id="napoDt" name="napoDt" placeholder="0000-00-00" th:value="${crackdownStatus.napoDt}">
|
<input type="text" class="form-control form-control-sm crackdownStatusInfo dateTimeSelector" id="napoDt" name="napoDt" placeholder="0000-00-00 00:00" th:value="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd')}">
|
||||||
</div>
|
</div>
|
||||||
<label for="napoSeaPointLon" class="col-sm-1 col-form-label col-form-label-sm text-center">나포장소</label>
|
<label for="napoSeaPointLon" class="col-sm-1 col-form-label col-form-label-sm text-center">나포장소</label>
|
||||||
<div class="col-sm-5">
|
<div class="col-sm-5">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<input type="text" class="form-control form-control-sm w-25" id="napoSeaPointLon" name="napoSeaPointLon" placeholder="00 . 00 . 00N" th:value="${crackdownStatus.napoSeaPointLon}">
|
<input type="text" class="form-control form-control-sm w-25 crackdownStatusInfo" id="napoSeaPointLon" name="napoSeaPointLon" placeholder="00 . 00 . 00N" th:value="${crackdownStatus.napoSeaPointLon}">
|
||||||
<input type="text" class="form-control form-control-sm w-25" id="napoSeaPointLat" name="napoSeaPointLat" placeholder="000-00.00E" th:value="${crackdownStatus.napoSeaPointLat}">
|
<input type="text" class="form-control form-control-sm w-25 crackdownStatusInfo" id="napoSeaPointLat" name="napoSeaPointLat" placeholder="000-00.00E" th:value="${crackdownStatus.napoSeaPointLat}">
|
||||||
<input type="text" class="form-control form-control-sm w-50" id="napoSeaPointDetail" name="napoSeaPointDetail" placeholder="00도 00방 00해리, 어업협정선 내측 00해리" th:value="${crackdownStatus.napoSeaPointDetail}">
|
<input type="text" class="form-control form-control-sm w-50 crackdownStatusInfo" id="napoSeaPointDetail" name="napoSeaPointDetail" placeholder="00도 00방 00해리, 어업협정선 내측 00해리" th:value="${crackdownStatus.napoSeaPointDetail}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<label for="fieldIvsgt" class="col-sm-1 col-form-label col-form-label-sm text-center">압송/현장조사</label>
|
<label for="fieldIvsgt" 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="fieldIvsgt" id="fieldIvsgt">
|
<select class="form-select form-select-sm crackdownStatusInfo" name="fieldIvsgt" id="fieldIvsgt">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<option value="C">압송</option>
|
<option value="C" th:selected="${crackdownStatus.fieldIvsgt eq 'C'}">압송</option>
|
||||||
<option value="F">현장조사</option>
|
<option value="F" th:selected="${crackdownStatus.fieldIvsgt eq 'F'}">현장조사</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -104,36 +108,36 @@
|
||||||
<label for="sailorNameKr" class="col-sm-2 col-form-label col-form-label-sm text-center">선장명</label>
|
<label for="sailorNameKr" class="col-sm-2 col-form-label col-form-label-sm text-center">선장명</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<input type="text" class="form-control form-control-sm" id="sailorNameKr" name="sailorNameKr" placeholder="한글">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameKr" placeholder="한글">
|
||||||
<input type="text" class="form-control form-control-sm" id="sailorNameCn" name="sailorNameCn" placeholder="중문">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameCn" placeholder="중문">
|
||||||
<input type="text" class="form-control form-control-sm" id="sailorNamePinyin" name="sailorNamePinyin" placeholder="병음">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNamePinyin" placeholder="병음">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="birthdate" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label>
|
<label for="birthdate" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm dateSelector" id="birthdate" name="birthdate" placeholder="0000-00-00">
|
<input type="text" class="form-control form-control-sm sailorInfo dateSelector" id="birthdate" placeholder="0000-00-00">
|
||||||
</div>
|
</div>
|
||||||
<label for="sailorContact" class="col-sm-2 col-form-label col-form-label-sm text-center">연락처</label>
|
<label for="sailorContact" class="col-sm-2 col-form-label col-form-label-sm text-center">연락처</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm" id="sailorContact" name="sailorContact">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorContact">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="residence" class="col-sm-2 col-form-label col-form-label-sm text-center">주소</label>
|
<label for="residence" class="col-sm-2 col-form-label col-form-label-sm text-center">주소</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm" id="residence" name="residence" placeholder="성 기준">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="residence" placeholder="성 기준">
|
||||||
</div>
|
</div>
|
||||||
<label for="arrestHistory" class="col-sm-2 col-form-label col-form-label-sm text-center">재범횟수</label>
|
<label for="arrestHistory" class="col-sm-2 col-form-label col-form-label-sm text-center">재범횟수</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm" id="arrestHistory" name="arrestHistory">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="arrestHistory">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="note" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label>
|
<label for="note" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input type="text" class="form-control form-control-sm" id="note" name="note">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="note">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
|
|
@ -154,7 +158,7 @@
|
||||||
-->
|
-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="file" class="d-none" id="fileInputer" multiple>
|
<input type="file" class="d-none sailorInfo" id="fileInputer" multiple>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 border-start" id="shipOwnerDiv">
|
<div class="col-6 border-start" id="shipOwnerDiv">
|
||||||
|
|
@ -168,32 +172,32 @@
|
||||||
<label for="sailorNameKr2" class="col-sm-2 col-form-label col-form-label-sm text-center">선장명</label>
|
<label for="sailorNameKr2" class="col-sm-2 col-form-label col-form-label-sm text-center">선장명</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<input type="text" class="form-control form-control-sm" id="sailorNameKr2" name="sailorNameKr" placeholder="한글">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameKr2" placeholder="한글">
|
||||||
<input type="text" class="form-control form-control-sm" id="sailorNameCn2" name="sailorNameCn" placeholder="중문">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameCn2" placeholder="중문">
|
||||||
<input type="text" class="form-control form-control-sm" id="sailorNamePinyin2" name="sailorNamePinyin" placeholder="병음">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNamePinyin2" placeholder="병음">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="birthdate2" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label>
|
<label for="birthdate2" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm dateSelector" id="birthdate2" name="birthdate" placeholder="0000-00-00">
|
<input type="text" class="form-control form-control-sm sailorInfo dateSelector" id="birthdate2" placeholder="0000-00-00">
|
||||||
</div>
|
</div>
|
||||||
<label for="sailorContact2" class="col-sm-2 col-form-label col-form-label-sm text-center">연락처</label>
|
<label for="sailorContact2" class="col-sm-2 col-form-label col-form-label-sm text-center">연락처</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm" id="sailorContact2" name="sailorContact">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorContact2">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="residence2" class="col-sm-2 col-form-label col-form-label-sm text-center">주소</label>
|
<label for="residence2" class="col-sm-2 col-form-label col-form-label-sm text-center">주소</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm" id="residence2" name="residence" placeholder="성 기준">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="residence2" placeholder="성 기준">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="note2" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label>
|
<label for="note2" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input type="text" class="form-control form-control-sm" id="note2" name="note">
|
<input type="text" class="form-control form-control-sm sailorInfo" id="note2">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -204,13 +208,13 @@
|
||||||
<label for="boatNameCn" class="col-sm-1 col-form-label col-form-label-sm text-center">선명</label>
|
<label for="boatNameCn" class="col-sm-1 col-form-label col-form-label-sm text-center">선명</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<input type="text" class="form-control form-control-sm boatNameKr" placeholder="한글" th:value="${crackdownStatus.fishingBoat.boatNameKr}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo boatNameKr" placeholder="한글" th:value="${crackdownStatus.fishingBoat.boatNameKr}">
|
||||||
<input type="text" class="form-control form-control-sm" id="boatNameCn" name="boatNameCn" placeholder="중문" th:value="${crackdownStatus.fishingBoat.boatNameCn}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="boatNameCn" name="fishingBoat.boatNameCn" placeholder="중문" th:value="${crackdownStatus.fishingBoat.boatNameCn}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-1"></div>
|
<div class="col-sm-1"></div>
|
||||||
<label for="violationSelector" class="col-sm-1 col-form-label col-form-label-sm text-center">위반사항</label>
|
<label for="violationSelector" class="col-sm-1 col-form-label col-form-label-sm text-center">위반사항</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-1">
|
||||||
<select class="form-select form-select-sm" id="violationSelector">
|
<select class="form-select form-select-sm" id="violationSelector">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<th:block th:each="code:${vtList}">
|
<th:block th:each="code:${vtList}">
|
||||||
|
|
@ -218,49 +222,54 @@
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<div class="row" id="violationDiv">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="permitNum" class="col-sm-1 col-form-label col-form-label-sm text-center">허가번호</label>
|
<label for="permitNum" 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" id="permitNum" name="permitNum" th:value="${crackdownStatus.fishingBoat.permitNum}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="permitNum" name="fishingBoat.permitNum" th:value="${crackdownStatus.fishingBoat.permitNum}">
|
||||||
</div>
|
</div>
|
||||||
<label for="nationality" class="col-sm-1 col-form-label col-form-label-sm text-center">국적</label>
|
<label for="nationality" 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" id="nationality" name="nationality" th:value="${crackdownStatus.fishingBoat.nationality}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="nationality" name="fishingBoat.nationality" th:value="${crackdownStatus.fishingBoat.nationality}">
|
||||||
</div>
|
</div>
|
||||||
<label for="sailorCnt" class="col-sm-1 col-form-label col-form-label-sm text-center">승선원</label>
|
<label for="sailorCnt" 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" id="sailorCnt" name="sailorCnt" placeholder="0인" th:value="${crackdownStatus.fishingBoat.sailorCnt}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="sailorCnt" name="fishingBoat.sailorCnt" placeholder="0인" th:value="${crackdownStatus.fishingBoat.sailorCnt}">
|
||||||
</div>
|
</div>
|
||||||
<label for="tonCnt" class="col-sm-1 col-form-label col-form-label-sm text-center">톤수</label>
|
<label for="tonCnt" 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" id="tonCnt" name="tonCnt" placeholder="000.00t" th:value="${crackdownStatus.fishingBoat.tonCnt}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="tonCnt" name="fishingBoat.tonCnt" placeholder="000.00t" th:value="${crackdownStatus.fishingBoat.tonCnt}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="fisheryType" class="col-sm-1 col-form-label col-form-label-sm text-center">선종</label>
|
<label for="fisheryType" 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" id="fisheryType" name="fisheryType">
|
<select class="form-select form-select-sm fishingBoatInfo" id="fisheryType" name="fishingBoat.fisheryType">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<th:block th:each="code:${ftList}">
|
<th:block th:each="code:${ftList}">
|
||||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${crackdownStatus.fishingBoat.fisheryType}"></option>
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.fishingBoat.fisheryType}"></option>
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<label for="boatMaterial" class="col-sm-1 col-form-label col-form-label-sm text-center">선질</label>
|
<label for="boatMaterial" 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" id="boatMaterial" name="boatMaterial">
|
<select class="form-select form-select-sm fishingBoatInfo" id="boatMaterial" name="fishingBoat.boatMaterial">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<th:block th:each="code:${bmList}">
|
<th:block th:each="code:${bmList}">
|
||||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${crackdownStatus.fishingBoat.boatMaterial}"></option>
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.fishingBoat.boatMaterial}"></option>
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<label for="boatNnySung" class="col-sm-1 col-form-label col-form-label-sm text-center">선적지</label>
|
<label for="boatNnySung" class="col-sm-1 col-form-label col-form-label-sm text-center">선적지</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<input type="text" class="form-control form-control-sm" id="boatNnySung" name="boatNnySung" placeholder="성" th:value="${crackdownStatus.fishingBoat.boatNnySung}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="boatNnySung" name="fishingBoat.boatNnySung" placeholder="성" th:value="${crackdownStatus.fishingBoat.boatNnySung}">
|
||||||
<input type="text" class="form-control form-control-sm" id="boatNnySi" name="boatNnySi" placeholder="시" th:value="${crackdownStatus.fishingBoat.boatNnySi}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="boatNnySi" name="fishingBoat.boatNnySi" placeholder="시" th:value="${crackdownStatus.fishingBoat.boatNnySi}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -268,50 +277,50 @@
|
||||||
<label for="offenseType" class="col-sm-1 col-form-label col-form-label-sm text-center">범칙물</label>
|
<label for="offenseType" class="col-sm-1 col-form-label col-form-label-sm text-center">범칙물</label>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<input type="text" class="form-control form-control-sm" id="offenseType" name="offenseType" placeholder="직접입력" th:value="${crackdownStatus.fishingBoat.offenseType}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseType" name="fishingBoat.offenseType" placeholder="직접입력" th:value="${crackdownStatus.fishingBoat.offenseType}">
|
||||||
<input type="text" class="form-control form-control-sm" id="offenseWeight" name="offenseWeight" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseWeight}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseWeight" name="fishingBoat.offenseWeight" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseWeight}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-2"></div>
|
<div class="col-sm-2"></div>
|
||||||
<label for="offenseQuantity" class="col-sm-1 col-form-label col-form-label-sm text-center">범칙물 위판량</label>
|
<label for="offenseQuantity" 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" id="offenseQuantity" name="offenseQuantity" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseQuantity}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseQuantity" name="fishingBoat.offenseQuantity" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseQuantity}">
|
||||||
</div>
|
</div>
|
||||||
<label for="offenseAmount" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">범칙물 위판금액</label>
|
<label for="offenseAmount" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">범칙물 위판금액</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="text" class="form-control form-control-sm" id="offenseAmount" name="offenseAmount" placeholder="0원" th:value="${crackdownStatus.fishingBoat.offenseAmount}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseAmount" name="fishingBoat.offenseAmount" placeholder="최대 9,999,999,999원" th:value="${crackdownStatus.fishingBoat.offenseAmount}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="offenseIllegalWasteQuantity" class="col-sm-1 col-form-label col-form-label-sm text-center">범칙물 폐기량</label>
|
<label for="offenseIllegalWasteQuantity" 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" id="offenseIllegalWasteQuantity" name="offenseIllegalWasteQuantity" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseIllegalWasteQuantity}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseIllegalWasteQuantity" name="fishingBoat.offenseIllegalWasteQuantity" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseIllegalWasteQuantity}">
|
||||||
</div>
|
</div>
|
||||||
<label for="damboUnpaidAmount" class="col-sm-1 col-form-label col-form-label-sm text-center">담보금 미납액</label>
|
<label for="damboUnpaidAmount" 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" id="damboUnpaidAmount" name="damboUnpaidAmount" placeholder="0원" th:value="${crackdownStatus.fishingBoat.damboUnpaidAmount}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="damboUnpaidAmount" name="fishingBoat.damboUnpaidAmount" placeholder="최대 9,999,999,999원" th:value="${crackdownStatus.fishingBoat.damboUnpaidAmount}">
|
||||||
</div>
|
</div>
|
||||||
<label for="damboPayment" class="col-sm-1 col-form-label col-form-label-sm text-center">담보금 납부액</label>
|
<label for="damboPayment" 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" id="damboPayment" name="damboPayment" placeholder="0원" th:value="${crackdownStatus.fishingBoat.damboPayment}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="damboPayment" name="fishingBoat.damboPayment" placeholder="최대 9,999,999,999원" th:value="${crackdownStatus.fishingBoat.damboPayment}">
|
||||||
</div>
|
</div>
|
||||||
<label for="paymentPaymentDt" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">담보금 납부일시</label>
|
<label for="paymentPaymentDt" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">담보금 납부일시</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="text" class="form-control form-control-sm" id="paymentPaymentDt" name="paymentPaymentDt" placeholder="0000-00-00" th:value="${crackdownStatus.fishingBoat.paymentPaymentDt}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo dateTimeSelector" id="fishingBoat.paymentPaymentDt" name="paymentPaymentDt" placeholder="0000-00-00 00:00" th:value="${crackdownStatus.fishingBoat.paymentPaymentDt}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="confiscationFrame" class="col-sm-1 col-form-label col-form-label-sm text-center">압수어구</label>
|
<label for="confiscationFrame" class="col-sm-1 col-form-label col-form-label-sm text-center">압수어구</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<input type="text" class="form-control form-control-sm" id="confiscationFrame" name="confiscationFrame" placeholder="틀" th:value="${crackdownStatus.fishingBoat.confiscationFrame}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="confiscationFrame" name="fishingBoat.confiscationFrame" placeholder="틀" th:value="${crackdownStatus.fishingBoat.confiscationFrame}">
|
||||||
<input type="text" class="form-control form-control-sm" id="confiscationWidth" name="confiscationWidth" placeholder="폭" th:value="${crackdownStatus.fishingBoat.confiscationWidth}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="confiscationWidth" name="fishingBoat.confiscationWidth" placeholder="폭" th:value="${crackdownStatus.fishingBoat.confiscationWidth}">
|
||||||
<input type="text" class="form-control form-control-sm" id="confiscationJo" name="confiscationJo" placeholder="조" th:value="${crackdownStatus.fishingBoat.confiscationJo}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="confiscationJo" name="fishingBoat.confiscationJo" placeholder="조" th:value="${crackdownStatus.fishingBoat.confiscationJo}">
|
||||||
<input type="text" class="form-control form-control-sm" id="confiscationGae" name="confiscationGae" placeholder="개" th:value="${crackdownStatus.fishingBoat.confiscationGae}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="confiscationGae" name="fishingBoat.confiscationGae" placeholder="개" th:value="${crackdownStatus.fishingBoat.confiscationGae}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
<input type="text" class="form-control form-control-sm" id="confiscationEtc" name="confiscationEtc" placeholder="기타" th:value="${crackdownStatus.fishingBoat.confiscationEtc}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="confiscationEtc" name="fishingBoat.confiscationEtc" placeholder="기타" th:value="${crackdownStatus.fishingBoat.confiscationEtc}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -319,10 +328,10 @@
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="processStatus" class="col-sm-1 col-form-label col-form-label-sm text-center">처리현황</label>
|
<label for="processStatus" 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" id="processStatus" name="processStatus">
|
<select class="form-select form-select-sm processResultInfo" id="processStatus" name="processResult.processStatus">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<th:block th:each="code:${prList}">
|
<th:block th:each="code:${prList}">
|
||||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${crackdownStatus.processResult.processStatus}"></option>
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.processResult.processStatus}"></option>
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -332,7 +341,7 @@
|
||||||
<input type="number" class="form-control form-control-sm pressurizedTimeTaken" id="pressurizedTimeTakenDate" placeholder="일" th:value="${crackdownStatus.processResult.pressurizedTimeTaken}">
|
<input type="number" class="form-control form-control-sm pressurizedTimeTaken" id="pressurizedTimeTakenDate" placeholder="일" th:value="${crackdownStatus.processResult.pressurizedTimeTaken}">
|
||||||
<input type="text" class="form-control form-control-sm pressurizedTimeTaken timeSelector" id="pressurizedTimeTakenTime" placeholder="00:00" th:value="${crackdownStatus.processResult.pressurizedTimeTaken}">
|
<input type="text" class="form-control form-control-sm pressurizedTimeTaken timeSelector" id="pressurizedTimeTakenTime" placeholder="00:00" th:value="${crackdownStatus.processResult.pressurizedTimeTaken}">
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" name="pressurizedTimeTaken" id="pressurizedTimeTaken">
|
<input type="hidden" class="processResultInfo" name="processResult.pressurizedTimeTaken" id="pressurizedTimeTaken">
|
||||||
</div>
|
</div>
|
||||||
<label for="warrantReqTakeDate" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">영장청구 소요시간</label>
|
<label for="warrantReqTakeDate" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">영장청구 소요시간</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
|
|
@ -340,42 +349,42 @@
|
||||||
<input type="number" class="form-control form-control-sm warrantReqTake" id="warrantReqTakeDate" placeholder="일" th:value="${crackdownStatus.processResult.warrantReqTakeTime}">
|
<input type="number" class="form-control form-control-sm warrantReqTake" id="warrantReqTakeDate" placeholder="일" th:value="${crackdownStatus.processResult.warrantReqTakeTime}">
|
||||||
<input type="text" class="form-control form-control-sm warrantReqTake timeSelector" id="warrantReqTakeTime" placeholder="00:00" th:value="${crackdownStatus.processResult.warrantReqTakeTime}">
|
<input type="text" class="form-control form-control-sm warrantReqTake timeSelector" id="warrantReqTakeTime" placeholder="00:00" th:value="${crackdownStatus.processResult.warrantReqTakeTime}">
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" name="warrantReqTakeTime" id="warrantReqTake">
|
<input type="hidden" class="processResultInfo" name="processResult.warrantReqTakeTime" id="warrantReqTake">
|
||||||
</div>
|
</div>
|
||||||
<label for="isIvsgtStop" class="col-sm-1 col-form-label col-form-label-sm text-center">수사중지 여부</label>
|
<label for="isIvsgtStop" 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" id="isIvsgtStop" name="isIvsgtStop">
|
<select class="form-select form-select-sm processResultInfo" id="isIvsgtStop" name="processResult.isIvsgtStop">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<option value="O">O</option>
|
<option value="Y">O</option>
|
||||||
<option value="X">X</option>
|
<option value="N">X</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="evictionDt" class="col-sm-1 col-form-label col-form-label-sm text-center">퇴거일</label>
|
<label for="evictionDt" 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 dateSelector" id="evictionDt" name="evictionDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.evictionDt}">
|
<input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="evictionDt" name="processResult.evictionDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.evictionDt}">
|
||||||
</div>
|
</div>
|
||||||
<label for="directHandoverDt" class="col-sm-1 col-form-label col-form-label-sm text-center">직접인계일</label>
|
<label for="directHandoverDt" 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 dateTimeSelector" id="directHandoverDt" name="directHandoverDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.directHandoverDt}">
|
<input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="directHandoverDt" name="processResult.directHandoverDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.directHandoverDt}">
|
||||||
</div>
|
</div>
|
||||||
<label for="handoverSeaPointLon" class="col-sm-1 col-form-label col-form-label-sm text-center">인계 해점</label>
|
<label for="handoverSeaPointLon" class="col-sm-1 col-form-label col-form-label-sm text-center">인계 해점</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-2">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<input type="text" class="form-control form-control-sm" id="handoverSeaPointLon" name="handoverSeaPointLon" placeholder="00-00.00N" th:value="${crackdownStatus.processResult.handoverSeaPointLon}">
|
<input type="text" class="form-control form-control-sm processResultInfo" id="handoverSeaPointLon" name="processResult.handoverSeaPointLon" placeholder="00-00.00N" th:value="${crackdownStatus.processResult.handoverSeaPointLon}">
|
||||||
<input type="text" class="form-control form-control-sm" id="handoverSeaPointLat" name="handoverSeaPointLat" placeholder="000-00.00E" th:value="${crackdownStatus.processResult.handoverSeaPointLat}">
|
<input type="text" class="form-control form-control-sm processResultInfo" id="handoverSeaPointLat" name="processResult.handoverSeaPointLat" placeholder="000-00.00E" th:value="${crackdownStatus.processResult.handoverSeaPointLat}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="handoverBoat" class="col-sm-1 col-form-label col-form-label-sm text-center">인계 함정</label>
|
<label for="handoverBoat" 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" id="handoverBoat" name="handoverBoat" th:value="${crackdownStatus.processResult.handoverBoat}">
|
<input type="text" class="form-control form-control-sm processResultInfo" id="handoverBoat" name="processResult.handoverBoat" th:value="${crackdownStatus.processResult.handoverBoat}">
|
||||||
</div>
|
</div>
|
||||||
<label for="middleTakeoverBoat" class="col-sm-1 col-form-label col-form-label-sm text-center">중측 인수함정</label>
|
<label for="middleTakeoverBoat" 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" id="middleTakeoverBoat" name="middleTakeoverBoat" th:value="${crackdownStatus.processResult.middleTakeoverBoat}">
|
<input type="text" class="form-control form-control-sm processResultInfo" id="middleTakeoverBoat" name="processResult.middleTakeoverBoat" th:value="${crackdownStatus.processResult.middleTakeoverBoat}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
@ -429,25 +438,25 @@
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="consignmentStartDt" class="col-sm-1 col-form-label col-form-label-sm text-center">위탁시작일</label>
|
<label for="consignmentStartDt" 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 dateSelector" id="consignmentStartDt" name="consignmentStartDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.consignmentStartDt}">
|
<input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="consignmentStartDt" name="processResult.consignmentStartDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.consignmentStartDt}">
|
||||||
</div>
|
</div>
|
||||||
<label for="consignmentEndDt" class="col-sm-1 col-form-label col-form-label-sm text-center">위탁종료일</label>
|
<label for="consignmentEndDt" 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 dateSelector" id="consignmentEndDt" name="consignmentEndDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.consignmentEndDt}">
|
<input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="consignmentEndDt" name="processResult.consignmentEndDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.consignmentEndDt}">
|
||||||
</div>
|
</div>
|
||||||
<label for="confiscationDt" class="col-sm-1 col-form-label col-form-label-sm text-center">몰수확정일</label>
|
<label for="confiscationDt" 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 dateSelector" id="confiscationDt" name="confiscationDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.confiscationDt}">
|
<input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="confiscationDt" name="processResult.confiscationDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.confiscationDt}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="boatDisposalDt" class="col-sm-1 col-form-label col-form-label-sm text-center">폐선일</label>
|
<label for="boatDisposalDt" 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 dateSelector" id="boatDisposalDt" name="boatDisposalDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.boatDisposalDt}">
|
<input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="boatDisposalDt" name="processResult.boatDisposalDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.boatDisposalDt}">
|
||||||
</div>
|
</div>
|
||||||
<label for="boatDisposalType" class="col-sm-1 col-form-label col-form-label-sm text-center">폐선종류</label>
|
<label for="boatDisposalType" 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" id="boatDisposalType" name="boatDisposalType">
|
<select class="form-select form-select-sm processResultInfo" id="boatDisposalType" name="processResult.boatDisposalType">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<th:block th:each="code:${bdtList}">
|
<th:block th:each="code:${bdtList}">
|
||||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
|
||||||
|
|
@ -456,77 +465,65 @@
|
||||||
</div>
|
</div>
|
||||||
<label for="returnDt" class="col-sm-1 col-form-label col-form-label-sm text-center">환부일</label>
|
<label for="returnDt" 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 dateSelector" id="returnDt" name="returnDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.returnDt}">
|
<input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="returnDt" name="processResult.returnDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.returnDt}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="captainRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center">선장구속</label>
|
<label for="captainRestriction" 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" id="captainRestriction">
|
<select class="form-select form-select-sm sailorInfo" id="captainRestriction">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<option value="O">O</option>
|
<option value="Y">O</option>
|
||||||
<option value="X">X</option>
|
<option value="N">X</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<label for="navigatingOfficerRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center">항해장구속</label>
|
<label for="navigatingOfficerRestriction" 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" id="navigatingOfficerRestriction">
|
<select class="form-select form-select-sm sailorInfo" id="navigatingOfficerRestriction">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<option value="O">O</option>
|
<option value="Y">O</option>
|
||||||
<option value="X">X</option>
|
<option value="N">X</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<label for="chiefEngineerRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center">기관장구속</label>
|
<label for="chiefEngineerRestriction" 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" id="chiefEngineerRestriction">
|
<select class="form-select form-select-sm sailorInfo" id="chiefEngineerRestriction">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<option value="O">O</option>
|
<option value="Y">O</option>
|
||||||
<option value="X">X</option>
|
<option value="N">X</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="normalSailorRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center">
|
<label for="sailorAddBtn" class="col-sm-1 col-form-label col-form-label-sm text-center">
|
||||||
선원구속
|
선원구속
|
||||||
<i class="bi bi-plus-square text-primary" id="sailorAddBtn"></i>
|
<i class="bi bi-plus-square text-primary" id="sailorAddBtn"></i>
|
||||||
</label>
|
</label>
|
||||||
<div class="col-sm-10 row" id="sailorRestrictionHome">
|
<div class="col-sm-10 row" id="sailorRestrictionHome">
|
||||||
<div class="col-4 sailorRestriction">
|
|
||||||
<div class="input-group w-auto">
|
|
||||||
<select class="form-select form-select-sm isRestriction" id="normalSailorRestriction">
|
|
||||||
<option value="">선택</option>
|
|
||||||
<option value="O">O</option>
|
|
||||||
<option value="X">X</option>
|
|
||||||
</select>
|
|
||||||
<input type="text" class="form-control form-control-sm" id="normalSailor" placeholder="이름">
|
|
||||||
<button type="button" class="btn btn-sm btn-outline-secondary opacity-50 sailorRemoveBtn">
|
|
||||||
<i class="bi bi-dash-square text-danger"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="exileCnt" class="col-sm-1 col-form-label col-form-label-sm text-center">추방인원</label>
|
<label for="exileCnt" 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" id="exileCnt" name="exileCnt" placeholder="00명" th:value="${crackdownStatus.processResult.exileCnt}">
|
<input type="text" class="form-control form-control-sm processResultInfo" id="exileCnt" name="processResult.exileCnt" placeholder="00명" th:value="${crackdownStatus.processResult.exileCnt}">
|
||||||
</div>
|
</div>
|
||||||
<label for="exileDt" class="col-sm-1 col-form-label col-form-label-sm text-center">추방일</label>
|
<label for="exileDt" 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 dateSelector" id="exileDt" name="exileDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.exileDt}">
|
<input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="exileDt" name="processResult.exileDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.exileDt}">
|
||||||
</div>
|
</div>
|
||||||
<label for="flight" class="col-sm-1 col-form-label col-form-label-sm text-center">항공편</label>
|
<label for="flight" 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" id="flight" name="flight" th:value="${crackdownStatus.processResult.flight}">
|
<input type="text" class="form-control form-control-sm processResultInfo" id="flight" name="processResult.flight" th:value="${crackdownStatus.processResult.flight}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="immigrationOfficeName" class="col-sm-1 col-form-label col-form-label-sm text-center">출입국 담당자</label>
|
<label for="immigrationOfficeName" class="col-sm-1 col-form-label col-form-label-sm text-center">출입국 담당자</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<input type="text" class="form-control form-control-sm" id="immigrationOfficeName" name="immigrationOfficeName" placeholder="사무소명" th:value="${crackdownStatus.processResult.immigrationOfficeName}">
|
<input type="text" class="form-control form-control-sm processResultInfo" id="immigrationOfficeName" name="processResult.immigrationOfficeName" placeholder="사무소명" th:value="${crackdownStatus.processResult.immigrationOfficeName}">
|
||||||
<input type="text" class="form-control form-control-sm" id="immigrationOfficeOfficerName" name="immigrationOfficeOfficerName" placeholder="이름" th:value="${crackdownStatus.processResult.immigrationOfficeOfficerName}">
|
<input type="text" class="form-control form-control-sm processResultInfo" id="immigrationOfficeOfficerName" name="processResult.immigrationOfficeOfficerName" placeholder="이름" th:value="${crackdownStatus.processResult.immigrationOfficeOfficerName}">
|
||||||
<input type="text" class="form-control form-control-sm" id="immigrationOfficeOfficerContact" name="immigrationOfficeOfficerContact" placeholder="연락처" th:value="${crackdownStatus.processResult.immigrationOfficeOfficerContact}">
|
<input type="text" class="form-control form-control-sm processResultInfo" id="immigrationOfficeOfficerContact" name="processResult.immigrationOfficeOfficerContact" placeholder="연락처" th:value="${crackdownStatus.processResult.immigrationOfficeOfficerContact}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -214,5 +214,31 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="crackdownSubModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="crackdownSubModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-xl modal-dialog-scrollable">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="crackdownSubModalLabel">단속현황 불러오기</h5>
|
||||||
|
<input type="hidden" id="modalUrl" value="/modal/crackdownStatusModal">
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" id="subModalBody">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<form method="get" action="#" id="modalSearchForm">
|
||||||
|
<input type="hidden" name="pageIndex" id="modalPageIndex" value="1">
|
||||||
|
<input type="hidden" name="rowCnt" value="10">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" id="getCrackdownBtn">불러오기</button>
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -0,0 +1,149 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="menuEditModalLabel">외사경찰 수정</h5>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form id="userInfoUpdate" action="#" method="post">
|
||||||
|
<input type="hidden" name="userSeq" id="userSeq" class="userSeq" th:value="${userInfo.userSeq}">
|
||||||
|
<input type="hidden" name="userStatus" th:value="${userInfo.userStatus}">
|
||||||
|
<div class="mb-3 mt-3 row">
|
||||||
|
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off" th:value="${userInfo.dicCode}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">아이디</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="userId" name="userId" autocomplete="off" th:value="${userInfo.userId}" readonly>
|
||||||
|
<label for="userId" style="font-size: 12px">아이디는 수정할 수 없습니다.</label>
|
||||||
|
</div>
|
||||||
|
<label for="userNm" class="col-sm-2 col-form-label col-form-label-sm text-center">이름</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class=" form-control form-control-sm" id="userNm" name="userNm" autocomplete="off" th:value="${userInfo.userNm}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">휴대전화</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="tel" class="form-control form-control-sm" id="phoneNo" name="phoneNo" th:value="${userInfo.phoneNo}">
|
||||||
|
</div>
|
||||||
|
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">이메일</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="email" class="form-control form-control-sm" id="email" name="email" th:value="${userInfo.email}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<select class="form-select form-select-sm" id="sex" name="sex">
|
||||||
|
<option value="M" th:selected="${userInfo.sex eq 'M'}">남</option>
|
||||||
|
<option value="F" th:selected="${userInfo.sex eq 'F'}">여</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="birthDate" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class="form-control form-control-sm dateSelector" id="birthDate" name="birthDate" th:value="${userInfo.birthDate}" readonly>
|
||||||
|
</div>
|
||||||
|
<label for="policeInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">해양경찰배명일</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class="form-control form-control-sm dateSelector" id="policeInDate" name="policeInDate" th:value="${userInfo.policeInDate}" readonly>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">관서</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<select class="form-select form-select-sm" id="ogCd" name="ogCd">
|
||||||
|
<option value="">--선택--</option>
|
||||||
|
<th:block th:each="code:${ogList}">
|
||||||
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ogCd}"></option>
|
||||||
|
</th:block>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<label for="organInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현관서전입일</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class="form-control form-control-sm dateSelector" id="organInDate" name="organInDate" th:value="${userInfo.organInDate}" readonly>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="ofcCd" class="col-sm-2 col-form-label col-form-label-sm text-center">부서</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<select class="form-select form-select-sm" id="ofcCd" name="ofcCd">
|
||||||
|
<option value="">--선택--</option>
|
||||||
|
<th:block th:each="code:${ofcList}">
|
||||||
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ofcCd}"></option>
|
||||||
|
</th:block>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<label for="ofcInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현부서임용일</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class="form-control form-control-sm dateSelector" id="ofcInDate" name="ofcInDate" th:value="${userInfo.ofcInDate}" readonly>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">계급</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<select class="form-select form-select-sm" id="titleCd" name="titleCd">
|
||||||
|
<option value="">--선택--</option>
|
||||||
|
<th:block th:each="code:${titleList}">
|
||||||
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.titleCd}"></option>
|
||||||
|
</th:block>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<label for="titleInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현계급임용일</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class="form-control form-control-sm dateSelector" id="titleInDate" name="titleInDate" th:value="${userInfo.titleInDate}" readonly>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="outturnCd" class="col-sm-2 col-form-label col-form-label-sm text-center">경과</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<select class="form-select form-select-sm" id="outturnCd" name="outturnCd">
|
||||||
|
<option value="">--선택--</option>
|
||||||
|
<th:block th:each="code:${outturnList}">
|
||||||
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.outturnCd}"></option>
|
||||||
|
</th:block>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<label for="seriesCd" class="col-sm-2 col-form-label col-form-label-sm text-center">직별</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<select class="form-select form-select-sm" id="seriesCd" name="seriesCd">
|
||||||
|
<option value="">--선택--</option>
|
||||||
|
<th:block th:each="code:${seriesList}">
|
||||||
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.seriesCd}"></option>
|
||||||
|
</th:block>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어특채</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<select class="form-select form-select-sm" id="languageCd" name="languageCd">
|
||||||
|
<option value="">--선택--</option>
|
||||||
|
<th:block th:each="code:${languageList}">
|
||||||
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.languageCd}"></option>
|
||||||
|
</th:block>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer row justify-content-between">
|
||||||
|
<div class="col-auto">
|
||||||
|
<th:block th:if="${userInfo.userStatus eq 'USC003'}">
|
||||||
|
<button type="button" class="btn btn-info" id="syncToKwmsBtn" th:disabled="${#strings.isEmpty(userInfo.dicCode)}">인사시스템 정보 불러오기</button>
|
||||||
|
<th:block th:if="${#strings.isEmpty(userInfo.dicCode)}">
|
||||||
|
<label for="syncToKwmsBtn" style="font-size: 12px">공무원식별번호가 필요합니다.</label>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||||
|
<button type="button" class="btn btn-warning" id="updateBtn">수정</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,171 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
|
||||||
|
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||||
|
layout:decorate="~{layout/layout}">
|
||||||
|
<th:block layout:fragment="script">
|
||||||
|
<script type="text/javascript" th:src="@{/js/faisp/police.js}"></script>
|
||||||
|
</th:block>
|
||||||
|
<div layout:fragment="content">
|
||||||
|
<main class="pt-3">
|
||||||
|
<h4>現 외사경찰 현황</h4>
|
||||||
|
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||||
|
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||||
|
<div class="row mx-0">
|
||||||
|
<div class="col-12 card text-center">
|
||||||
|
<div class="card-body">
|
||||||
|
<form id="searchFm" method="get" th:action="@{/faisp/policeList}">
|
||||||
|
<input type="hidden" name="excel">
|
||||||
|
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||||
|
<div class="row justify-content-between pe-3 py-1">
|
||||||
|
<div class="col-auto">
|
||||||
|
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||||
|
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||||
|
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||||
|
</th:block>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<button type="button" class="btn btn-success" id="goExcel">엑셀다운</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row justify-content-end pe-3 py-1">
|
||||||
|
<div class="col-auto">
|
||||||
|
<div class="row justify-content-end">
|
||||||
|
<div class="col-auto" th:if="${accessAuth eq 'ACC003'}">
|
||||||
|
<select class="form-select form-select-sm" name="mgtOrgan">
|
||||||
|
<option value="">관서</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<select class="form-select form-select-sm" name="detailType">
|
||||||
|
<option value="">성별</option>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('PVREUSE')}">
|
||||||
|
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||||
|
</th:block>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" class="form-control form-control-sm" placeholder="이름" name="useNo">
|
||||||
|
</div>
|
||||||
|
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div class="row justify-content-start">
|
||||||
|
<div class="col-12">
|
||||||
|
<ul class="nav nav-tabs" id="userTab" role="tablist">
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<button class="nav-link active" id="affairTab" data-bs-toggle="tab" type="button" role="tab">現외사경찰</button>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<button class="nav-link" id="stayTab" data-bs-toggle="tab" type="button" role="tab">前외사경찰</button>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<button class="nav-link" id="commitTab" data-bs-toggle="tab" type="button" role="tab">非외사경찰</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row">
|
||||||
|
<table class="table table-hover table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>순번</th>
|
||||||
|
<th>계급</th>
|
||||||
|
<th>성명</th>
|
||||||
|
<th>청</th>
|
||||||
|
<th>현부서<br>과</th>
|
||||||
|
<th>생년월일</th>
|
||||||
|
<th>성별</th>
|
||||||
|
<th>최초<br>임용</th>
|
||||||
|
<th>현 계급<br>임용</th>
|
||||||
|
<th>현 부서<br>임용</th>
|
||||||
|
<th>수사경과<br>보유여부</th>
|
||||||
|
<th>외사경력</th>
|
||||||
|
<th>입직<br>경로</th>
|
||||||
|
<th>최종<br>수정일</th>
|
||||||
|
<th>전출<input type="checkbox"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="table-group-divider">
|
||||||
|
<tr class="policeTr" th:each="list:${policeList}">
|
||||||
|
<th:block>
|
||||||
|
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
|
||||||
|
</th:block>
|
||||||
|
<td th:text="${list.userSeq}"></td>
|
||||||
|
<td th:text="${list.titleCd}"></td>
|
||||||
|
<td th:text="${list.userNm}"></td>
|
||||||
|
<td th:text="${list.ogCd}"></td>
|
||||||
|
<td th:text="${list.ofcCd}"></td>
|
||||||
|
<td th:text="${list.birthDate}"></td>
|
||||||
|
<td th:text="${list.sex}"></td>
|
||||||
|
<td th:text="${list.policeInDate}"></td>
|
||||||
|
<td th:text="${list.titleInDate}"></td>
|
||||||
|
<td th:text="${list.ofcInDate}"></td>
|
||||||
|
<td th:text="${list.outturnCd}"></td>
|
||||||
|
<td></td>
|
||||||
|
<td th:text="${list.jobInCd}"></td>
|
||||||
|
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="row justify-content-between">
|
||||||
|
<div class="col-auto">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<nav aria-label="Page navigation">
|
||||||
|
<ul class="pagination">
|
||||||
|
<th:block th:if="${searchParams.pageIndex>3}">
|
||||||
|
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||||
|
<a class="page-link" href="#" aria-label="Previous">
|
||||||
|
<span aria-hidden="true">«</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
|
||||||
|
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex==num?'active':''}">
|
||||||
|
<a class="page-link" href="#" th:text="${num}"></a>
|
||||||
|
</li>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
|
||||||
|
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
|
||||||
|
<a class="page-link" href="#" aria-label="Next">
|
||||||
|
<span aria-hidden="true">»</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</th:block>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<button type="button" class="btn btn-success"id="addPvre" th:if="${accessAuth eq 'ACC003'}">전출</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<div class="modal fade" id="policeEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userEditModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg modal-dialog-scrollable">
|
||||||
|
<div class="modal-content" id="policeEditModalContent">
|
||||||
|
<div class="modal-header">
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="tab-content border border-top-0" id="configCellPhone">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</html>
|
||||||
|
|
@ -124,8 +124,8 @@
|
||||||
<td th:text="${trInfo.trLang}"></td>
|
<td th:text="${trInfo.trLang}"></td>
|
||||||
<td th:text="${trInfo.trCareer}"></td>
|
<td th:text="${trInfo.trCareer}"></td>
|
||||||
<td th:text="${trInfo.trName}"></td>
|
<td th:text="${trInfo.trName}"></td>
|
||||||
<td th:text="${trInfo.trAge}"></td>
|
|
||||||
<td th:text="${trInfo.trSex}"></td>
|
<td th:text="${trInfo.trSex}"></td>
|
||||||
|
<td th:text="${trInfo.trAge}"></td>
|
||||||
<td th:text="${trInfo.trNny}"></td>
|
<td th:text="${trInfo.trNny}"></td>
|
||||||
<td th:text="${trInfo.trEdu}"></td>
|
<td th:text="${trInfo.trEdu}"></td>
|
||||||
<td th:text="${trInfo.trCft}"></td>
|
<td th:text="${trInfo.trCft}"></td>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue