Merge branch 'master' of http://118.219.150.34:50501/DBNT/FAISP
commit
f47caa199b
|
|
@ -36,8 +36,10 @@ import java.util.*;
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class EquipService {
|
public class EquipService {
|
||||||
@Value("${spring.servlet.multipart.location}")
|
@Value("${file.dir}")
|
||||||
protected String locationPath;
|
protected String fileDir;
|
||||||
|
@Value("${file.dir.equip}")
|
||||||
|
protected String equ;
|
||||||
|
|
||||||
private final EquipRepository equipRepository;
|
private final EquipRepository equipRepository;
|
||||||
private final EquipFileRepository equipFileRepository;
|
private final EquipFileRepository equipFileRepository;
|
||||||
|
|
@ -81,7 +83,7 @@ public class EquipService {
|
||||||
|
|
||||||
public void saveFile(Equip equip, MultipartHttpServletRequest mRequest) throws Exception {
|
public void saveFile(Equip equip, MultipartHttpServletRequest mRequest) throws Exception {
|
||||||
try {
|
try {
|
||||||
String path = locationPath;
|
String path = fileDir+equ;
|
||||||
String FileSize;
|
String FileSize;
|
||||||
File dir = new File(path);
|
File dir = new File(path);
|
||||||
if(!dir.exists()) dir.mkdir();
|
if(!dir.exists()) dir.mkdir();
|
||||||
|
|
@ -190,7 +192,7 @@ public class EquipService {
|
||||||
|
|
||||||
public void updateFile(Equip equip,Equip equipTmp, MultipartHttpServletRequest mRequest) throws Exception {
|
public void updateFile(Equip equip,Equip equipTmp, MultipartHttpServletRequest mRequest) throws Exception {
|
||||||
try {
|
try {
|
||||||
String path = locationPath;
|
String path = fileDir+equ;
|
||||||
String FileSize;
|
String FileSize;
|
||||||
File dir = new File(path);
|
File dir = new File(path);
|
||||||
if(!dir.exists()) dir.mkdir();
|
if(!dir.exists()) dir.mkdir();
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
|
||||||
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.CrackdownStatus;
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
|
||||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
|
||||||
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion;
|
||||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult;
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult;
|
||||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.FishingBoatService;
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.FishingBoatService;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||||
|
|
@ -104,4 +105,13 @@ public class FishingBoatController {
|
||||||
public Integer checkCaseNum(String caseNum){
|
public Integer checkCaseNum(String caseNum){
|
||||||
return fishingBoatService.checkCaseNum(caseNum);
|
return fishingBoatService.checkCaseNum(caseNum);
|
||||||
}
|
}
|
||||||
|
@GetMapping("/fishingBoatVersionInfo")
|
||||||
|
public ModelAndView fishingBoatVersionInfo(FishingBoatVersion version){
|
||||||
|
ModelAndView mav = new ModelAndView("faStatistics/fishingBoat/fishingBoatVersionInfo");
|
||||||
|
mav.addObject("fishingBoat", fishingBoatService.selectFishingBoatVersion(version.getFbKey(), version.getVersionNo()));
|
||||||
|
mav.addObject("vtList", codeMgtService.selectCodeMgtList("VT"));
|
||||||
|
mav.addObject("ftList", codeMgtService.selectCodeMgtList("FT"));
|
||||||
|
mav.addObject("bmList", codeMgtService.selectCodeMgtList("BM"));
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper;
|
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper;
|
||||||
|
|
||||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
|
||||||
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
|
||||||
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -9,6 +11,8 @@ import java.util.List;
|
||||||
public interface CrackdownStatusMapper {
|
public interface CrackdownStatusMapper {
|
||||||
List<CrackdownStatus> selectCrackdownStatusList(CrackdownStatus crackdownStatus);
|
List<CrackdownStatus> selectCrackdownStatusList(CrackdownStatus crackdownStatus);
|
||||||
Integer selectCrackdownStatusListCnt(CrackdownStatus crackdownStatus);
|
Integer selectCrackdownStatusListCnt(CrackdownStatus crackdownStatus);
|
||||||
|
|
||||||
List<CrackdownStatus> selectFishingBoatList(CrackdownStatus crackdownStatus);
|
List<CrackdownStatus> selectFishingBoatList(CrackdownStatus crackdownStatus);
|
||||||
Integer selectFishingBoatListCnt(CrackdownStatus crackdownStatus);
|
Integer selectFishingBoatListCnt(CrackdownStatus crackdownStatus);
|
||||||
|
List<FishingBoatVersion> selectFishingBoatVersionList(Integer fbKey);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus;
|
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus;
|
||||||
|
|
||||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
|
||||||
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion;
|
||||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation;
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation;
|
||||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult;
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult;
|
||||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor;
|
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor;
|
||||||
|
|
@ -35,6 +36,8 @@ public class CrackdownStatus extends CrackdownStatusBaseEntity {
|
||||||
@Transient
|
@Transient
|
||||||
private FishingBoat fishingBoat;
|
private FishingBoat fishingBoat;
|
||||||
@Transient
|
@Transient
|
||||||
|
private List<FishingBoatVersion> fishingBoatVersionList;
|
||||||
|
@Transient
|
||||||
private ProcessResult processResult;
|
private ProcessResult processResult;
|
||||||
@Transient
|
@Transient
|
||||||
private List<Sailor> sailorList;
|
private List<Sailor> sailorList;
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import org.hibernate.annotations.DynamicUpdate;
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
|
@ -24,6 +25,9 @@ public class FishingBoatVersion extends FishingBoatBaseEntity {
|
||||||
@Column(name = "version_no")
|
@Column(name = "version_no")
|
||||||
private Integer versionNo;
|
private Integer versionNo;
|
||||||
|
|
||||||
|
@Transient
|
||||||
|
private List<ViolationVersion> violationList;
|
||||||
|
|
||||||
@Embeddable
|
@Embeddable
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -47,6 +48,7 @@ public class FishingBoatService extends BaseService {
|
||||||
public CrackdownStatus selectCrackdownStatus(Integer cdsKey) {
|
public CrackdownStatus selectCrackdownStatus(Integer cdsKey) {
|
||||||
CrackdownStatus crackdownStatus = crackdownStatusRepository.findById(cdsKey).orElse(null);
|
CrackdownStatus crackdownStatus = crackdownStatusRepository.findById(cdsKey).orElse(null);
|
||||||
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(cdsKey).orElse(new FishingBoat()));
|
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(cdsKey).orElse(new FishingBoat()));
|
||||||
|
crackdownStatus.setFishingBoatVersionList(crackdownStatusMapper.selectFishingBoatVersionList(crackdownStatus.getFishingBoat().getFbKey()));
|
||||||
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(cdsKey).orElse(new ProcessResult()));
|
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(cdsKey).orElse(new ProcessResult()));
|
||||||
if(crackdownStatus.getFishingBoat()!=null){
|
if(crackdownStatus.getFishingBoat()!=null){
|
||||||
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||||
|
|
@ -121,6 +123,8 @@ public class FishingBoatService extends BaseService {
|
||||||
cdsKey = crackdownStatus.getCdsKey();
|
cdsKey = crackdownStatus.getCdsKey();
|
||||||
FishingBoat fishingBoat = crackdownStatus.getFishingBoat();
|
FishingBoat fishingBoat = crackdownStatus.getFishingBoat();
|
||||||
FishingBoatVersion newInfo = new FishingBoatVersion();
|
FishingBoatVersion newInfo = new FishingBoatVersion();
|
||||||
|
fishingBoat.setCdsKey(cdsKey);
|
||||||
|
fishingBoat.setWrtDt(LocalDateTime.now());
|
||||||
BeanUtils.copyProperties(fishingBoat, newInfo);
|
BeanUtils.copyProperties(fishingBoat, newInfo);
|
||||||
FishingBoatVersion lastFishingBoatVersion = fishingBoatVersionRepository.findTop1ByFbKeyOrderByVersionNoDesc(crackdownStatus.getFishingBoat().getFbKey()).orElse(null);
|
FishingBoatVersion lastFishingBoatVersion = fishingBoatVersionRepository.findTop1ByFbKeyOrderByVersionNoDesc(crackdownStatus.getFishingBoat().getFbKey()).orElse(null);
|
||||||
newInfo.setVersionNo(lastFishingBoatVersion.getVersionNo()+1);
|
newInfo.setVersionNo(lastFishingBoatVersion.getVersionNo()+1);
|
||||||
|
|
@ -132,7 +136,8 @@ public class FishingBoatService extends BaseService {
|
||||||
int i=1;
|
int i=1;
|
||||||
ViolationVersion lastViolationVersion = violationVersionRepository.findTop1ByFbKeyOrderByVersionNoDesc(fishingBoat.getFbKey()).orElse(null);
|
ViolationVersion lastViolationVersion = violationVersionRepository.findTop1ByFbKeyOrderByVersionNoDesc(fishingBoat.getFbKey()).orElse(null);
|
||||||
for(Violation violation: violationList){
|
for(Violation violation: violationList){
|
||||||
violation.setViolationKey(i);
|
violation.setFbKey(fishingBoat.getFbKey());
|
||||||
|
violation.setViolationKey(i++);
|
||||||
ViolationVersion violationVersion = new ViolationVersion();
|
ViolationVersion violationVersion = new ViolationVersion();
|
||||||
BeanUtils.copyProperties(violation, violationVersion);
|
BeanUtils.copyProperties(violation, violationVersion);
|
||||||
violationVersion.setVersionNo(lastViolationVersion.getVersionNo()+1);
|
violationVersion.setVersionNo(lastViolationVersion.getVersionNo()+1);
|
||||||
|
|
@ -147,4 +152,8 @@ public class FishingBoatService extends BaseService {
|
||||||
public Integer checkCaseNum(String caseNum) {
|
public Integer checkCaseNum(String caseNum) {
|
||||||
return crackdownStatusRepository.findTop1ByCaseNum(caseNum).orElse(null)==null?0:1;
|
return crackdownStatusRepository.findTop1ByCaseNum(caseNum).orElse(null)==null?0:1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public FishingBoatVersion selectFishingBoatVersion(Integer fbKey, Integer versionNo) {
|
||||||
|
return fishingBoatVersionRepository.findById(new FishingBoatVersion.FishingBoatVersionId(fbKey, versionNo)).orElse(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import com.dbnt.faisp.main.fipTarget.service.FipTargetService;
|
||||||
import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
|
import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.service.UserInfoService;
|
import com.dbnt.faisp.main.userInfo.service.UserInfoService;
|
||||||
import com.dbnt.faisp.util.Excel;
|
|
||||||
import com.dbnt.faisp.util.ParamMap;
|
import com.dbnt.faisp.util.ParamMap;
|
||||||
import com.dbnt.faisp.util.Utils;
|
import com.dbnt.faisp.util.Utils;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,14 +35,17 @@ import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class FipTargetService extends BaseService {
|
public class FipTargetService extends BaseService {
|
||||||
@Value("${spring.servlet.multipart.location}")
|
@Value("${file.dir}")
|
||||||
protected String locationPath;
|
protected String fileDir;
|
||||||
|
@Value("${file.dir.vulnerable}")
|
||||||
|
protected String vulnerable;
|
||||||
|
@Value("${file.dir.part}")
|
||||||
|
protected String part;
|
||||||
|
|
||||||
private final PartInfoRepository partInfoRepository;
|
private final PartInfoRepository partInfoRepository;
|
||||||
private final PartInfoFileRepository partInfoFileRepository;
|
private final PartInfoFileRepository partInfoFileRepository;
|
||||||
|
|
@ -83,7 +86,7 @@ public class FipTargetService extends BaseService {
|
||||||
} else {
|
} else {
|
||||||
for(MultipartFile file : multipartFileList){
|
for(MultipartFile file : multipartFileList){
|
||||||
String saveName = UUID.randomUUID().toString();
|
String saveName = UUID.randomUUID().toString();
|
||||||
String path = locationPath+File.separator+"publicFile"+File.separator;
|
String path = fileDir+part;
|
||||||
saveFile(file, new File(path+File.separator+saveName));
|
saveFile(file, new File(path+File.separator+saveName));
|
||||||
|
|
||||||
String originalFilename = file.getOriginalFilename();
|
String originalFilename = file.getOriginalFilename();
|
||||||
|
|
@ -251,7 +254,7 @@ public class FipTargetService extends BaseService {
|
||||||
int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1);
|
int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1);
|
||||||
for(MultipartFile file : multipartFileList){
|
for(MultipartFile file : multipartFileList){
|
||||||
String saveName = UUID.randomUUID().toString();
|
String saveName = UUID.randomUUID().toString();
|
||||||
String path = locationPath+File.separator+"publicFile"+File.separator;
|
String path = fileDir+part;
|
||||||
saveFile(file, new File(path+File.separator+saveName));
|
saveFile(file, new File(path+File.separator+saveName));
|
||||||
|
|
||||||
String originalFilename = file.getOriginalFilename();
|
String originalFilename = file.getOriginalFilename();
|
||||||
|
|
@ -351,7 +354,7 @@ public class FipTargetService extends BaseService {
|
||||||
int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1);
|
int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1);
|
||||||
for(MultipartFile file : multipartFileList){
|
for(MultipartFile file : multipartFileList){
|
||||||
String saveName = UUID.randomUUID().toString();
|
String saveName = UUID.randomUUID().toString();
|
||||||
String path = locationPath+File.separator+"publicFile"+File.separator;
|
String path = fileDir+vulnerable;
|
||||||
saveFile(file, new File(path+File.separator+saveName));
|
saveFile(file, new File(path+File.separator+saveName));
|
||||||
|
|
||||||
String originalFilename = file.getOriginalFilename();
|
String originalFilename = file.getOriginalFilename();
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,13 @@ spring.servlet.multipart.location=C:\\faispUploadFiles
|
||||||
spring.servlet.multipart.max-file-size=200MB
|
spring.servlet.multipart.max-file-size=200MB
|
||||||
spring.servlet.multipart.max-request-size=500MB
|
spring.servlet.multipart.max-request-size=500MB
|
||||||
|
|
||||||
|
#file
|
||||||
|
file.dir=C:\\faispUploadFiles
|
||||||
|
file.dir.vulnerable=/vulnerable
|
||||||
|
file.dir.part=/part
|
||||||
|
file.dir.equip=/equip
|
||||||
|
|
||||||
|
|
||||||
#thymeleaf
|
#thymeleaf
|
||||||
spring.thymeleaf.prefix=classpath:templates/
|
spring.thymeleaf.prefix=classpath:templates/
|
||||||
spring.thymeleaf.check-template-location=true
|
spring.thymeleaf.check-template-location=true
|
||||||
|
|
|
||||||
|
|
@ -429,4 +429,16 @@
|
||||||
on b.fb_key = d.fb_key and d.position = 'POS001'
|
on b.fb_key = d.fb_key and d.position = 'POS001'
|
||||||
<include refid="selectFishingBoatListWhere"></include>
|
<include refid="selectFishingBoatListWhere"></include>
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectFishingBoatVersionList" resultType="FishingBoatVersion" parameterType="int">
|
||||||
|
select fb_key,
|
||||||
|
version_no,
|
||||||
|
wrt_organ,
|
||||||
|
wrt_part,
|
||||||
|
wrt_user_grd,
|
||||||
|
wrt_user_nm,
|
||||||
|
wrt_dt
|
||||||
|
from fishing_boat_version
|
||||||
|
where fb_key = #{fb_key}
|
||||||
|
order by version_no desc
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
}
|
}
|
||||||
.fs-10{
|
.fs-10{
|
||||||
font-size: 11px;
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
.fsw-13{
|
.fsw-13{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,23 @@ $(document).on('change', '#violationSelector', function (){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
$(document).on('click', '.versionInfoTr', function (){
|
||||||
|
$.ajax({
|
||||||
|
url: '/faStatistics/fishingBoatVersionInfo',
|
||||||
|
data: {
|
||||||
|
fbKey: $(this).find(".fbKey").val(),
|
||||||
|
versionNo: $(this).find(".versionNo").val()
|
||||||
|
},
|
||||||
|
type: 'GET',
|
||||||
|
dataType:"html",
|
||||||
|
success: function(html){
|
||||||
|
$("#fishingBoardVersionInfoDiv").empty().append(html);
|
||||||
|
},
|
||||||
|
error:function(){
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
$(document).on('click', '.violationRemoveBtn', function (){
|
$(document).on('click', '.violationRemoveBtn', function (){
|
||||||
$(this).parents(".violation").remove();
|
$(this).parents(".violation").remove();
|
||||||
})
|
})
|
||||||
|
|
@ -145,6 +162,11 @@ function getFishingBoatEditModal(cdsKey){
|
||||||
if(crackdownPolice){
|
if(crackdownPolice){
|
||||||
getCrackdownBoatOption(crackdownPolice)
|
getCrackdownBoatOption(crackdownPolice)
|
||||||
}
|
}
|
||||||
|
if(cdsKey !== null){
|
||||||
|
$(".crackdownStatusInfo").attr("disabled", "disabled")
|
||||||
|
$(".sailorInfo").attr("disabled", "disabled")
|
||||||
|
$(".processResultInfo").attr("disabled", "disabled")
|
||||||
|
}
|
||||||
$("#fishingBoatEditModal").modal('show');
|
$("#fishingBoatEditModal").modal('show');
|
||||||
},
|
},
|
||||||
error:function(){
|
error:function(){
|
||||||
|
|
@ -180,7 +202,9 @@ function getCrackdownBoatOption(categoryCd){
|
||||||
success: function(html){
|
success: function(html){
|
||||||
const crackdownBoat = $("#crackdownBoat");
|
const crackdownBoat = $("#crackdownBoat");
|
||||||
crackdownBoat.empty().append(html);
|
crackdownBoat.empty().append(html);
|
||||||
|
if(!$("#cdsKey").val()){
|
||||||
crackdownBoat.removeAttr("disabled");
|
crackdownBoat.removeAttr("disabled");
|
||||||
|
}
|
||||||
},
|
},
|
||||||
error:function(){
|
error:function(){
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,104 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<div class="row border border-secondary">
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">선명</label>
|
||||||
|
<div class="col-sm-10 border-end border-secondary">
|
||||||
|
<div class="input-group w-auto">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNameKr}">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNameCn}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">위반사항</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<div class="row">
|
||||||
|
<th:block th:each="code:${vtList}">
|
||||||
|
<th:block th:each="violation:${fishingBoat.violationList}">
|
||||||
|
<div class="col-6" th:if="${code.itemCd eq violation.violation}">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${code.itemValue}"/>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row border border-secondary border-top-0">
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">허가번호</label>
|
||||||
|
<div class="col-sm-4 border-end border-secondary">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.permitNum}">
|
||||||
|
</div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">국적</label>
|
||||||
|
<div class="col-sm-4 border-end border-secondary">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.nationality}">
|
||||||
|
</div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">승선원</label>
|
||||||
|
<div class="col-sm-4 border-end border-secondary">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.sailorCnt}인|">
|
||||||
|
</div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">톤수</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.tonCnt}t|">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row border border-secondary border-top-0">
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">선종</label>
|
||||||
|
<div class="col-sm-4 border-end border-secondary">
|
||||||
|
<th:block th:each="code:${ftList}">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq fishingBoat.fisheryType}" th:value="${code.itemValue}">
|
||||||
|
</th:block>
|
||||||
|
</div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">선질</label>
|
||||||
|
<div class="col-sm-4 border-end border-secondary">
|
||||||
|
<th:block th:each="code:${bmList}">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq fishingBoat.boatMaterial}" th:value="${code.itemValue}">
|
||||||
|
</th:block>
|
||||||
|
</div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">선적지</label>
|
||||||
|
<div class="col-sm-4 border-end border-secondary">
|
||||||
|
<div class="input-group w-auto">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNnySung}">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNnySi}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row border border-secondary border-top-0">
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">범칙물</label>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly
|
||||||
|
th:value="|${fishingBoat.offenseType} ${fishingBoat.offenseWeight}kg|">
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-4 border-end border-secondary"></div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">범칙물 위판량</label>
|
||||||
|
<div class="col-sm-4 border-end border-secondary">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.offenseQuantity}kg|">
|
||||||
|
</div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center fs-11">범칙물 위판금액</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.offenseAmount}원|">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row border border-secondary border-top-0">
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">범칙물 폐기량</label>
|
||||||
|
<div class="col-sm-4 border-end border-secondary">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.offenseIllegalWasteQuantity}kg|">
|
||||||
|
</div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">담보금 미납액</label>
|
||||||
|
<div class="col-sm-4 border-end border-secondary">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.damboUnpaidAmount}원|">
|
||||||
|
</div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">담보금 납부액</label>
|
||||||
|
<div class="col-sm-4 border-end border-secondary">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.damboPayment}원|">
|
||||||
|
</div>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center fs-11">담보금 납부일시</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.paymentPaymentDt}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row border border-secondary border-top-0">
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">압수어구</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" class="form-control form-control-sm border-0" readonly
|
||||||
|
th:value="|틀: ${fishingBoat.confiscationFrame} 폭: ${fishingBoat.confiscationWidth} 조: ${fishingBoat.confiscationJo} 개: ${fishingBoat.confiscationGae} 기타: ${fishingBoat.confiscationEtc}|">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</html>
|
||||||
|
|
@ -8,14 +8,14 @@
|
||||||
<form action="#" method="post" id="fishingBoatEditForm">
|
<form action="#" method="post" id="fishingBoatEditForm">
|
||||||
<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" id="cdsKey" th:value="${crackdownStatus.cdsKey}">
|
||||||
<input type="hidden" name="fbKey" th:value="${crackdownStatus.fishingBoat.fbKey}">
|
<input type="hidden" name="fishingBoat.fbKey" th:value="${crackdownStatus.fishingBoat.fbKey}">
|
||||||
<input type="hidden" name="saveYn" id="saveYn" th:value="${crackdownStatus.fishingBoat.saveYn}">
|
<input type="hidden" name="fishingBoat.saveYn" id="saveYn" th:value="${crackdownStatus.fishingBoat.saveYn}">
|
||||||
<input type="hidden" name="wrtOrgan" th:value="${crackdownStatus.fishingBoat.wrtOrgan}">
|
<input type="hidden" name="fishingBoat.wrtOrgan" th:value="${crackdownStatus.fishingBoat.wrtOrgan}">
|
||||||
<input type="hidden" name="wrtPart" th:value="${crackdownStatus.fishingBoat.wrtPart}">
|
<input type="hidden" name="fishingBoat.wrtPart" th:value="${crackdownStatus.fishingBoat.wrtPart}">
|
||||||
<input type="hidden" name="wrtUserSeq" th:value="${crackdownStatus.fishingBoat.wrtUserSeq}">
|
<input type="hidden" name="fishingBoat.wrtUserSeq" th:value="${crackdownStatus.fishingBoat.wrtUserSeq}">
|
||||||
<input type="hidden" name="wrtUserNm" th:value="${crackdownStatus.fishingBoat.wrtUserNm}">
|
<input type="hidden" name="fishingBoat.wrtUserNm" th:value="${crackdownStatus.fishingBoat.wrtUserNm}">
|
||||||
<input type="hidden" name="wrtUserGrd" th:value="${crackdownStatus.fishingBoat.wrtUserGrd}">
|
<input type="hidden" name="fishingBoat.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>
|
||||||
|
|
@ -41,7 +41,7 @@
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="text" class="form-control form-control-sm crackdownStatusInfo" id="caseNum" name="caseNum" th:value="${crackdownStatus.caseNum}">
|
<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="불러오기">
|
<input type="button" class="btn btn-sm btn-outline-primary crackdownStatusInfo w-auto" id="caseNumBtn" value="불러오기">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -100,6 +100,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane fade p-2" id="sailorTabPanel" role="tabpanel" aria-labelledby="sailorTab" tabindex="0">
|
<div class="tab-pane fade p-2" id="sailorTabPanel" role="tabpanel" aria-labelledby="sailorTab" tabindex="0">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
<th:block th:if="${#lists.isEmpty(crackdownStatus.sailorList)}">
|
||||||
<div class="col-6" id="captainDiv">
|
<div class="col-6" id="captainDiv">
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="captainDiv" class="col-sm-2 col-form-label col-form-label-sm text-center"> </label>
|
<label for="captainDiv" class="col-sm-2 col-form-label col-form-label-sm text-center"> </label>
|
||||||
|
|
@ -164,7 +165,7 @@
|
||||||
<div class="col-6 border-start" id="shipOwnerDiv">
|
<div class="col-6 border-start" id="shipOwnerDiv">
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<div class="col-sm-4 ms-3 input-group w-auto">
|
<div class="col-sm-4 ms-3 input-group w-auto">
|
||||||
<input type="checkbox" id="equalCaptain">
|
<input type="checkbox" class="sailorInfo" id="equalCaptain">
|
||||||
<label for="equalCaptain" class="col-form-label col-form-label-sm ps-2">좌측동일</label>
|
<label for="equalCaptain" class="col-form-label col-form-label-sm ps-2">좌측동일</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -201,6 +202,116 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:unless="${#lists.isEmpty(crackdownStatus.sailorList)}">
|
||||||
|
<th:block th:each="sailor:${crackdownStatus.sailorList}">
|
||||||
|
<th:block th:if="${sailor.position eq 'POS001'}">
|
||||||
|
<div class="col-6" id="captainDiv">
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="captainDiv" class="col-sm-2 col-form-label col-form-label-sm text-center"> </label>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="sailorNameKr" class="col-sm-2 col-form-label col-form-label-sm text-center">선장명</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<div class="input-group w-auto">
|
||||||
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameKr" placeholder="한글" th:value="${sailor.sailorNameKr}">
|
||||||
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameCn" placeholder="중문" th:value="${sailor.sailorNameCn}">
|
||||||
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNamePinyin" placeholder="병음" th:value="${sailor.sailorNamePinyin}">
|
||||||
|
</div>
|
||||||
|
</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 sailorInfo dateSelector" id="birthdate" placeholder="0000-00-00" th:value="${sailor.birthdate}">
|
||||||
|
</div>
|
||||||
|
<label for="sailorContact" 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 sailorInfo" id="sailorContact" th:value="${sailor.sailorContact}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="residence" 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 sailorInfo" id="residence" placeholder="성 기준" th:value="${sailor.residence}">
|
||||||
|
</div>
|
||||||
|
<label for="arrestHistory" 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 sailorInfo" id="arrestHistory" th:value="${sailor.arrestHistory}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="note" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" class="form-control form-control-sm sailorInfo" id="note" th:value="${sailor.note}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="fileInputer" class="col-sm-2 col-form-label col-form-label-sm text-center">사진</label>
|
||||||
|
<div class="col-sm-10" style="min-height: 70px;">
|
||||||
|
<div class="w-100 h-100 border border-info rounded text-center" id="uploadDiv">
|
||||||
|
<br>사진을 업로드 해주세요.
|
||||||
|
<!--
|
||||||
|
<th:block th:if="${#arrays.isEmpty(affair.fileList)}">
|
||||||
|
<br>파일을 업로드 해주세요.
|
||||||
|
</th:block>
|
||||||
|
<th:block th:unless="${#arrays.isEmpty(affair.fileList)}">
|
||||||
|
<div class='row-col-6' th:each="affairFile:${affair.fileList}">
|
||||||
|
<span th:data-fileseq="${affairFile.fileSeq}" th:text="|${affairFile.origNm}.${affairFile.fileExtn} ${affairFile.fileSize}|"></span>
|
||||||
|
<a href='#' class='uploadedFileDelete text-danger text-decoration-none'>삭제</a>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
|
-->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input type="file" class="d-none sailorInfo" id="fileInputer" multiple>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${sailor.position eq 'POS004'}">
|
||||||
|
<div class="col-6 border-start" id="shipOwnerDiv">
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<div class="col-sm-4 ms-3 input-group w-auto">
|
||||||
|
<input type="checkbox" class="sailorInfo" id="equalCaptain">
|
||||||
|
<label for="equalCaptain" class="col-form-label col-form-label-sm ps-2">좌측동일</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="sailorNameKr2" class="col-sm-2 col-form-label col-form-label-sm text-center">선장명</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<div class="input-group w-auto">
|
||||||
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameKr2" placeholder="한글" th:value="${sailor.sailorNameKr}">
|
||||||
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameCn2" placeholder="중문" th:value="${sailor.sailorNameCn}">
|
||||||
|
<input type="text" class="form-control form-control-sm sailorInfo" id="sailorNamePinyin2" placeholder="병음" th:value="${sailor.sailorNamePinyin}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="birthdate2" 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 sailorInfo dateSelector" id="birthdate2" placeholder="0000-00-00" th:value="${sailor.birthdate}">
|
||||||
|
</div>
|
||||||
|
<label for="sailorContact2" 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 sailorInfo" id="sailorContact2" th:value="${sailor.sailorContact}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="residence2" 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 sailorInfo" id="residence2" placeholder="성 기준" th:value="${sailor.residence}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="note2" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" class="form-control form-control-sm sailorInfo" id="note2" th:value="${sailor.note}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane fade p-2" id="fishingBoatTabPanel" role="tabpanel" aria-labelledby="fishingBoatTab" tabindex="0">
|
<div class="tab-pane fade p-2" id="fishingBoatTabPanel" role="tabpanel" aria-labelledby="fishingBoatTab" tabindex="0">
|
||||||
|
|
@ -224,7 +335,19 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<div class="row" id="violationDiv">
|
<div class="row" id="violationDiv">
|
||||||
|
<th:block th:each="violation:${crackdownStatus.violationList}">
|
||||||
|
<div class="col-6 violation">
|
||||||
|
<input type="hidden" class="form-control form-control-sm fishingBoatInfo violationCd" th:value="${violation.violation}">
|
||||||
|
<div class="input-group w-auto">
|
||||||
|
<th:block th:each="code:${vtList}">
|
||||||
|
<input type="text" class="form-control form-control-sm" th:if="${code.itemCd eq violation.violation}" th:value="${code.itemValue}">
|
||||||
|
</th:block>
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-secondary opacity-75 violationRemoveBtn">
|
||||||
|
<i class="bi bi-dash-square text-danger"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -288,7 +411,7 @@
|
||||||
</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 fishingBoatInfo" id="offenseAmount" name="fishingBoat.offenseAmount" placeholder="최대 9,999,999,999원" th:value="${crackdownStatus.fishingBoat.offenseAmount}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseAmount" name="fishingBoat.offenseAmount" placeholder="최대 999,999,999원" th:value="${crackdownStatus.fishingBoat.offenseAmount}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
|
|
@ -298,15 +421,15 @@
|
||||||
</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 fishingBoatInfo" id="damboUnpaidAmount" name="fishingBoat.damboUnpaidAmount" placeholder="최대 9,999,999,999원" th:value="${crackdownStatus.fishingBoat.damboUnpaidAmount}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="damboUnpaidAmount" name="fishingBoat.damboUnpaidAmount" placeholder="최대 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 fishingBoatInfo" id="damboPayment" name="fishingBoat.damboPayment" placeholder="최대 9,999,999,999원" th:value="${crackdownStatus.fishingBoat.damboPayment}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo" id="damboPayment" name="fishingBoat.damboPayment" placeholder="최대 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 fishingBoatInfo dateTimeSelector" id="fishingBoat.paymentPaymentDt" name="paymentPaymentDt" placeholder="0000-00-00 00:00" th:value="${crackdownStatus.fishingBoat.paymentPaymentDt}">
|
<input type="text" class="form-control form-control-sm fishingBoatInfo dateTimeSelector" id="paymentPaymentDt" name="fishingBoat.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">
|
||||||
|
|
@ -337,19 +460,22 @@
|
||||||
</div>
|
</div>
|
||||||
<label for="pressurizedTimeTakenDate" class="col-sm-1 col-form-label col-form-label-sm text-center">압송소요시간</label>
|
<label for="pressurizedTimeTakenDate" class="col-sm-1 col-form-label col-form-label-sm text-center">압송소요시간</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
|
<th:block th:with="ptt=${crackdownStatus.processResult.pressurizedTimeTaken}">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<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 processResultInfo" id="pressurizedTimeTakenDate" placeholder="일" th:value="${#strings.substringBefore(ptt, '일')}">
|
||||||
<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 processResultInfo timeSelector" id="pressurizedTimeTakenTime" placeholder="00:00" th:value="${#strings.substringAfter(ptt, '일')}">
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" class="processResultInfo" name="processResult.pressurizedTimeTaken" id="pressurizedTimeTaken">
|
<input type="hidden" class="processResultInfo" name="processResult.pressurizedTimeTaken" id="pressurizedTimeTaken" th:value="${ptt}">
|
||||||
|
</th:block>
|
||||||
</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">
|
||||||
|
<th:block th:with="wrtt=${crackdownStatus.processResult.warrantReqTakeTime}">
|
||||||
<div class="input-group w-auto">
|
<div class="input-group w-auto">
|
||||||
<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 processResultInfo" id="warrantReqTakeDate" placeholder="일" th:value="${#strings.substringBefore(wrtt, '일')}">
|
||||||
<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 processResultInfo timeSelector" id="warrantReqTakeTime" placeholder="00:00" th:value="${#strings.substringAfter(wrtt, '일')}">
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" class="processResultInfo" name="processResult.warrantReqTakeTime" id="warrantReqTake">
|
<input type="hidden" class="processResultInfo" name="processResult.warrantReqTakeTime" id="warrantReqTake" th:value="${wrtt}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
|
|
@ -357,8 +483,8 @@
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<select class="form-select form-select-sm processResultInfo" id="isIvsgtStop" name="processResult.isIvsgtStop">
|
<select class="form-select form-select-sm processResultInfo" id="isIvsgtStop" name="processResult.isIvsgtStop">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
<option value="Y">O</option>
|
<option value="Y" th:selected="${crackdownStatus.processResult.isIvsgtStop eq 'Y'}">O</option>
|
||||||
<option value="N">X</option>
|
<option value="N" th:selected="${crackdownStatus.processResult.isIvsgtStop eq 'N'}">X</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<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>
|
||||||
|
|
@ -459,7 +585,7 @@
|
||||||
<select class="form-select form-select-sm processResultInfo" id="boatDisposalType" name="processResult.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}" th:selected="${code.itemCd eq crackdownStatus.processResult.boatDisposalType}"></option>
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -469,6 +595,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
|
<th:block th:if="${#lists.isEmpty(crackdownStatus.sailorList)}">
|
||||||
<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 sailorInfo" id="captainRestriction">
|
<select class="form-select form-select-sm sailorInfo" id="captainRestriction">
|
||||||
|
|
@ -493,14 +620,76 @@
|
||||||
<option value="N">X</option>
|
<option value="N">X</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:unless="${#lists.isEmpty(crackdownStatus.sailorList)}">
|
||||||
|
<label for="captainRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center">선장구속</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<th:block th:each="sailor:${crackdownStatus.sailorList}">
|
||||||
|
<th:block th:if="${sailor.position eq 'POS001'}">
|
||||||
|
<select class="form-select form-select-sm sailorInfo" id="captainRestriction">
|
||||||
|
<option value="">선택</option>
|
||||||
|
<option value="Y" th:selected="${sailor.isRestriction eq 'Y'}">O</option>
|
||||||
|
<option value="N" th:selected="${sailor.isRestriction eq 'N'}">X</option>
|
||||||
|
</select>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
|
</div>
|
||||||
|
<label for="navigatingOfficerRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center">항해장구속</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<th:block th:each="sailor:${crackdownStatus.sailorList}">
|
||||||
|
<th:block th:if="${sailor.position eq 'POS002'}">
|
||||||
|
<select class="form-select form-select-sm sailorInfo" id="navigatingOfficerRestriction">
|
||||||
|
<option value="">선택</option>
|
||||||
|
<option value="Y" th:selected="${sailor.isRestriction eq 'Y'}">O</option>
|
||||||
|
<option value="N" th:selected="${sailor.isRestriction eq 'N'}">X</option>
|
||||||
|
</select>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
|
</div>
|
||||||
|
<label for="chiefEngineerRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center">기관장구속</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<th:block th:each="sailor:${crackdownStatus.sailorList}">
|
||||||
|
<th:block th:if="${sailor.position eq 'POS003'}">
|
||||||
|
<select class="form-select form-select-sm sailorInfo" id="chiefEngineerRestriction">
|
||||||
|
<option value="">선택</option>
|
||||||
|
<option value="Y" th:selected="${sailor.isRestriction eq 'Y'}">O</option>
|
||||||
|
<option value="N" th:selected="${sailor.isRestriction eq 'N'}">X</option>
|
||||||
|
</select>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="sailorAddBtn" 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>
|
<button class="border-0 sailorInfo" id="sailorAddBtn">
|
||||||
|
<i class="bi bi-plus-square text-primary"></i>
|
||||||
|
</button>
|
||||||
</label>
|
</label>
|
||||||
<div class="col-sm-10 row" id="sailorRestrictionHome">
|
<div class="col-sm-10 row" id="sailorRestrictionHome">
|
||||||
|
<th:block th:each="sailor:${crackdownStatus.sailorList}">
|
||||||
|
<th:block th:if="${sailor.position eq 'POS005' or sailor.position eq 'POS006'}">
|
||||||
|
<div class="col-4 sailorRestriction">
|
||||||
|
<div class="input-group">
|
||||||
|
<select class="form-select form-select-sm sailorInfo isRestriction normalSailorPosition" style="width: 75px">
|
||||||
|
<option value="">직책</option>
|
||||||
|
<option value="POS005" th:selected="${sailor.position eq 'POS005'}">기타 간부선원</option>
|
||||||
|
<option value="POS006" th:selected="${sailor.position eq 'POS006'}">일반선원 또는 확인불가</option>
|
||||||
|
</select>
|
||||||
|
<select class="form-select form-select-sm sailorInfo isRestriction w-auto normalSailorRestriction">
|
||||||
|
<option value="">선택</option>
|
||||||
|
<option value="Y" th:selected="${sailor.isRestriction eq 'Y'}">O</option>
|
||||||
|
<option value="N" th:selected="${sailor.isRestriction eq 'N'}">X</option>
|
||||||
|
</select>
|
||||||
|
<input type="text" class="form-control form-control-sm sailorInfo normalSailorNm w-auto" placeholder="이름" th:value="${sailor.sailorNameKr}">
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-secondary sailorInfo w-auto opacity-75 sailorRemoveBtn">
|
||||||
|
<i class="bi bi-dash-square text-danger"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
|
|
@ -532,7 +721,7 @@
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
<!--<button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button>-->
|
||||||
<button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button>
|
|
||||||
<button type="button" class="btn btn-primary" id="saveResultBtn">저장</button>
|
<button type="button" class="btn btn-primary" id="saveResultBtn">저장</button>
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -5,6 +5,16 @@
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
|
<ul class="nav nav-tabs" id="fishingBoatTab" role="tablist">
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<button class="nav-link active" id="fishingBoatViewTab" data-bs-toggle="tab" data-bs-target="#fishingBoatViewTabPanel" type="button" role="tab" aria-controls="fishingBoatViewTabPanel" aria-selected="true">최신버전</button>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<button class="nav-link" id="fishingBoatVersionTab" data-bs-toggle="tab" data-bs-target="#fishingBoatVersionTabPanel" type="button" role="tab" aria-controls="fishingBoatHistoryTabPanel" aria-selected="false">수정이력</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="tab-content border border-top-0">
|
||||||
|
<div class="tab-pane fade p-2 mx-2 show active" id="fishingBoatViewTabPanel" role="tabpanel" aria-labelledby="fishingBoatViewTab" tabindex="0">
|
||||||
<input type="hidden" class="cdsKey" th:value="${crackdownStatus.cdsKey}">
|
<input type="hidden" class="cdsKey" th:value="${crackdownStatus.cdsKey}">
|
||||||
<div class="row justify-content-between">
|
<div class="row justify-content-between">
|
||||||
<div class="col-auto" th:text="|선명: ${crackdownStatus.fishingBoat.boatNameKr}|"></div>
|
<div class="col-auto" th:text="|선명: ${crackdownStatus.fishingBoat.boatNameKr}|"></div>
|
||||||
|
|
@ -30,7 +40,7 @@
|
||||||
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownStatus.caseAgency}" th:value="${code.itemValue}">
|
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownStatus.caseAgency}" th:value="${code.itemValue}">
|
||||||
</th:block>
|
</th:block>
|
||||||
</div>
|
</div>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm py-2 border-end border-secondary text-center fs-13">사건담당경찰관</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm py-2 border-end border-secondary text-center fs-11">사건담당경찰관</label>
|
||||||
<div class="col-sm-2 border-end border-secondary">
|
<div class="col-sm-2 border-end border-secondary">
|
||||||
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.casePoliceOfficer}">
|
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.casePoliceOfficer}">
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -389,6 +399,44 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tab-pane fade p-2 mx-2" id="fishingBoatVersionTabPanel" role="tabpanel" aria-labelledby="fishingBoatVersionTab" tabindex="0">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-3">
|
||||||
|
<table class="table table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>수정자</td>
|
||||||
|
<td>수정일</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="versionInfoTr" th:each="fishingBoat:${crackdownStatus.fishingBoatVersionList}">
|
||||||
|
<input type="hidden" class="fbKey" th:value="${fishingBoat.fbKey}">
|
||||||
|
<input type="hidden" class="versionNo" th:value="${fishingBoat.versionNo}">
|
||||||
|
<td><input type="checkbox"></td>
|
||||||
|
<td>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||||
|
<th:block th:if="${fishingBoat.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
|
</th:block>
|
||||||
|
<br>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||||
|
<th:block th:if="${fishingBoat.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:text="${fishingBoat.wrtUserNm}"></th:block>
|
||||||
|
</td>
|
||||||
|
<td th:text="${#temporals.format(fishingBoat.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="col-9 border-start" id="fishingBoardVersionInfoDiv">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<th:block th:if="${userSeq eq crackdownStatus.fishingBoat.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
|
<th:block th:if="${userSeq eq crackdownStatus.fishingBoat.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
|
||||||
<button type="button" class="btn btn-warning" id="editFishingBoatBtn">수정</button>
|
<button type="button" class="btn btn-warning" id="editFishingBoatBtn">수정</button>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue