불법조업 외국어선 단속현황 중간 커밋
parent
7aabcae1b1
commit
42b1844731
|
|
@ -4,7 +4,12 @@ import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
|
|||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.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.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest;
|
||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
|
|
@ -24,6 +29,10 @@ public class CrackdownStatusController {
|
|||
|
||||
private final AuthMgtService authMgtService;
|
||||
private final CrackdownStatusService crackdownStatusService;
|
||||
private final ViolationRepository violationRepository;
|
||||
private final ProcessResultRepository processResultRepository;
|
||||
private final FishingBoatRepository fishingBoatRepository;
|
||||
private final SailorRepository sailorRepository;
|
||||
|
||||
@RequestMapping("/crackdownStatus")
|
||||
public ModelAndView crackdownStatus(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus) {
|
||||
|
|
@ -37,6 +46,13 @@ public class CrackdownStatusController {
|
|||
crackdownStatus.setQueryInfo();
|
||||
List<CrackdownStatus> crackdownStatusList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus);
|
||||
|
||||
for (CrackdownStatus cds:crackdownStatusList) {
|
||||
cds.setViolationList(violationRepository.findByFbKey(cds.getFbKey()));
|
||||
cds.setProcessResult(processResultRepository.findByCdsKey(cds.getCdsKey()));
|
||||
cds.setFishingBoat(fishingBoatRepository.findByCdsKey(cds.getCdsKey()));
|
||||
cds.setSailorList(sailorRepository.findByFbKey(cds.getFbKey()));
|
||||
}
|
||||
|
||||
mav.addObject("crackdownStatusList", crackdownStatusList);
|
||||
crackdownStatus.setContentCnt(crackdownStatusService.selectCrackdownStatusListCnt(crackdownStatus));
|
||||
crackdownStatus.setPaginationInfo();
|
||||
|
|
@ -44,11 +60,31 @@ public class CrackdownStatusController {
|
|||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/crackdownStatus/crackdownStatusViewModal")
|
||||
public ModelAndView internationalCrimeArrestViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusViewModal");
|
||||
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
|
||||
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()));
|
||||
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(crackdownStatus.getCdsKey()));
|
||||
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
|
||||
mav.addObject("crackdownStatus", crackdownStatus);
|
||||
mav.addObject("userSeq",loginUser.getUserSeq());
|
||||
//메뉴권한 확인
|
||||
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth());
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/crackdownStatus/crackdownStatusEditModal")
|
||||
public ModelAndView crackdownStatusEditModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusEditModal");
|
||||
if(crackdownStatus.getCdsKey()!=null){
|
||||
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
|
||||
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()));
|
||||
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(crackdownStatus.getCdsKey()));
|
||||
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
}else{
|
||||
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.setWrtNm(loginUser.getUserNm());
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate;
|
|||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -64,8 +65,8 @@ public class CrackdownStatus extends BaseModel {
|
|||
private String mmsi;
|
||||
|
||||
@Column(name = "field_ivsgt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime fieldIvsgt;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate fieldIvsgt;
|
||||
|
||||
@Column(name = "obstr_exspd_cnt")
|
||||
private Integer obstrExspdCnt;
|
||||
|
|
@ -137,4 +138,36 @@ public class CrackdownStatus extends BaseModel {
|
|||
private String crackdownPoliceEtc;
|
||||
@Transient
|
||||
private String crackdownBoatEtc;
|
||||
|
||||
@Transient
|
||||
private Integer fbKey;
|
||||
|
||||
@Transient
|
||||
private Integer restrictionCaptin;
|
||||
@Transient
|
||||
private Integer notRestrictionCaptin;
|
||||
@Transient
|
||||
private Integer restrictionMate;
|
||||
@Transient
|
||||
private Integer notRestrictionMate;
|
||||
@Transient
|
||||
private Integer restrictionWarden;
|
||||
@Transient
|
||||
private Integer notRestrictionWarden;
|
||||
@Transient
|
||||
private Integer restrictionSailor;
|
||||
@Transient
|
||||
private Integer notRestrictionSailor;
|
||||
@Transient
|
||||
private Integer restrictionTotal;
|
||||
@Transient
|
||||
private Integer notRestrictionTotal;
|
||||
@Transient
|
||||
private Integer unlicensedOperationTotal;
|
||||
@Transient
|
||||
private Integer specificImpossibilityTotal;
|
||||
@Transient
|
||||
private Integer eezTotal;
|
||||
@Transient
|
||||
private Integer invasionTerritorialWatersTotal;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -122,4 +122,6 @@ public class FishingBoat extends BaseModel {
|
|||
|
||||
@Transient
|
||||
private String boatMaterialEtc;
|
||||
@Transient
|
||||
private String fisheryTypeEtc;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate;
|
|||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Getter
|
||||
|
|
@ -43,12 +44,12 @@ public class ProcessResult extends BaseModel {
|
|||
private String isIvsgtStop;
|
||||
|
||||
@Column(name = "eviction_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private String evictionDt;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate evictionDt;
|
||||
|
||||
@Column(name = "direct_handover_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime directHandoverDt;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate directHandoverDt;
|
||||
|
||||
@Column(name = "handover_sea_point_lon")
|
||||
private String handoverSeaPointLon;
|
||||
|
|
@ -66,34 +67,34 @@ public class ProcessResult extends BaseModel {
|
|||
private String middleTakeoverBoat;
|
||||
|
||||
@Column(name = "consignment_start_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime consignmentStartDt;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate consignmentStartDt;
|
||||
|
||||
@Column(name = "consignment_end_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime consignmentEndDt;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate consignmentEndDt;
|
||||
|
||||
@Column(name = "confiscation_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime confiscationDt;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate confiscationDt;
|
||||
|
||||
@Column(name = "boat_disposal_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime boatDisposalDt;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate boatDisposalDt;
|
||||
|
||||
@Column(name = "boat_disposal_type")
|
||||
private String boatDisposalType;
|
||||
|
||||
@Column(name = "return_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime returnDt;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate returnDt;
|
||||
|
||||
@Column(name = "exile_cnt")
|
||||
private Integer exileCnt;
|
||||
|
||||
@Column(name = "exile_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime exileDt;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate exileDt;
|
||||
|
||||
@Column(name = "flight")
|
||||
private String flight;
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat;
|
|||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface FishingBoatRepository extends JpaRepository<FishingBoat, Integer> {
|
||||
|
||||
FishingBoat findByCdsKey(Integer cdsKey);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult;
|
|||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface ProcessResultRepository extends JpaRepository<ProcessResult, Integer> {
|
||||
|
||||
ProcessResult findByCdsKey(Integer cdsKey);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository;
|
|||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Sailor;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface SailorRepository extends JpaRepository<Sailor, Integer> {
|
||||
import java.util.List;
|
||||
|
||||
public interface SailorRepository extends JpaRepository<Sailor, Integer> {
|
||||
List<Sailor> findByFbKey(Integer fbKey);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository;
|
|||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Violation;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface ViolationRepository extends JpaRepository<Violation, Integer> {
|
||||
import java.util.List;
|
||||
|
||||
public interface ViolationRepository extends JpaRepository<Violation, Integer> {
|
||||
List<Violation> findByFbKey(Integer fbKey);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,10 @@ public class CrackdownStatusService extends BaseService {
|
|||
if (crackdownStatus.getFishingBoat().getBoatMaterialEtc() != null) {
|
||||
crackdownStatus.getFishingBoat().setBoatMaterial(crackdownStatus.getFishingBoat().getBoatMaterialEtc());
|
||||
}
|
||||
if (crackdownStatus.getFishingBoat().getFisheryTypeEtc() != null) {
|
||||
crackdownStatus.getFishingBoat().setFisheryType(crackdownStatus.getFishingBoat().getFisheryTypeEtc());
|
||||
}
|
||||
|
||||
crackdownStatus.getFishingBoat().setCdsKey(cdsKey);
|
||||
Integer fbKey = fishingBoatRepository.save(crackdownStatus.getFishingBoat()).getFbKey();
|
||||
crackdownStatus.getFishingBoat().setFbKey(fbKey);
|
||||
|
|
|
|||
|
|
@ -12,46 +12,103 @@
|
|||
|
||||
<select id="selectCrackdownStatusList" resultType="CrackdownStatus" parameterType="CrackdownStatus">
|
||||
SELECT
|
||||
c.cds_key
|
||||
, c.case_num
|
||||
, c.napo_dt
|
||||
, c.napo_sea_point_lon
|
||||
, c.napo_sea_point_lat
|
||||
, c.napo_sea_point_detail
|
||||
, c.invasion_type
|
||||
, c.nll
|
||||
, c.case_agency
|
||||
, c.case_police_officer
|
||||
, c.crackdown_boat
|
||||
, c.crackdown_police
|
||||
, c.mmsi
|
||||
, c.field_ivsgt
|
||||
, c.obstr_exspd_cnt
|
||||
, c.person_damage_cnt
|
||||
, c.person_damage_amount
|
||||
, c.person_damage_detail
|
||||
, c.material_damage_cnt
|
||||
, c.material_damage_amount
|
||||
, c.material_damage_detail
|
||||
, c.field_ivsgt_napo_dt
|
||||
, c.field_ivsgt_release_dt
|
||||
, c.field_ivsgt_time_taken
|
||||
, c.pressurized_start_dt
|
||||
, c.pressurized_end_dt
|
||||
, c.distance
|
||||
, c.wrt_organ
|
||||
, c.wrt_user_seq
|
||||
, c.wrt_nm
|
||||
, c.wrt_dt
|
||||
FROM crackdown_status c
|
||||
cs.cds_key
|
||||
, cs.case_num
|
||||
, cs.napo_dt
|
||||
, cs.napo_sea_point_lon
|
||||
, cs.napo_sea_point_lat
|
||||
, cs.napo_sea_point_detail
|
||||
, cs.invasion_type
|
||||
, cs.nll
|
||||
, cs.case_agency
|
||||
, cs.case_police_officer
|
||||
, cs.crackdown_boat
|
||||
, cs.crackdown_police
|
||||
, cs.mmsi
|
||||
, cs.field_ivsgt
|
||||
, cs.obstr_exspd_cnt
|
||||
, cs.person_damage_cnt
|
||||
, cs.person_damage_amount
|
||||
, cs.person_damage_detail
|
||||
, cs.material_damage_cnt
|
||||
, cs.material_damage_amount
|
||||
, cs.material_damage_detail
|
||||
, cs.field_ivsgt_napo_dt
|
||||
, cs.field_ivsgt_release_dt
|
||||
, cs.field_ivsgt_time_taken
|
||||
, cs.pressurized_start_dt
|
||||
, cs.pressurized_end_dt
|
||||
, cs.distance
|
||||
, cs.wrt_organ
|
||||
, cs.wrt_user_seq
|
||||
, cs.wrt_nm
|
||||
, cs.wrt_dt
|
||||
, fb.fb_key
|
||||
, fb.boat_name_kr
|
||||
, fb.boat_name_cn
|
||||
, fb.ton_cnt
|
||||
, fb.fishery_type
|
||||
, fb.boat_material
|
||||
, fb.boat_nny_sung
|
||||
, fb.boat_nny_si
|
||||
, fb.offense_quantity
|
||||
, fb.offense_amount
|
||||
, fb.offense_illegal_waste_quantity
|
||||
, fb.dambo_unpaid_amount
|
||||
, fb.dambo_payment
|
||||
, fb.payment_payment_dt
|
||||
, fb.confiscation_frame
|
||||
, fb.confiscation_width
|
||||
, fb.confiscation_jo
|
||||
, fb.confiscation_gae
|
||||
, fb.confiscation_etc
|
||||
, fb.catch_fish_species
|
||||
, fb.catch_cnt
|
||||
, fb.offense_fish_species
|
||||
, fb.offense_catch_cnt
|
||||
, fb.save_yn
|
||||
, pr.pr_key
|
||||
, pr.process_status
|
||||
, pr.eviction_dt
|
||||
, pr.direct_handover_dt
|
||||
, pr.handover_sea_point_lon
|
||||
, pr.handover_sea_point_lat
|
||||
, pr.handover_sea_point_detail
|
||||
, pr.handover_boat
|
||||
, pr.middle_takeover_boat
|
||||
, pr.consignment_start_dt
|
||||
, pr.consignment_end_dt
|
||||
, pr.confiscation_dt
|
||||
, pr.boat_disposal_dt
|
||||
, pr.boat_disposal_type
|
||||
, pr.return_dt
|
||||
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'Y' AND s.position != 'POS004') AS restrictionTotal
|
||||
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'N' AND s.position != 'POS004') AS notRestrictionTotal
|
||||
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS001' AND s.is_restriction = 'Y') AS restrictionCaptin
|
||||
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS001' AND s.is_restriction = 'Y') AS notRestrictionCaptin
|
||||
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS002' AND s.is_restriction = 'Y') AS restrictionMate
|
||||
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS003' AND s.is_restriction = 'Y') AS restrictionWarden
|
||||
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS002' AND s.is_restriction = 'Y') AS notRestrictionMate
|
||||
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS003' AND s.is_restriction = 'Y') AS notRestrictionWarden
|
||||
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'Y' AND (s.position = 'POS005' or s."position" = 'POS006')) AS restrictionSailor
|
||||
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'N' AND (s.position = 'POS005' or s."position" = 'POS006')) AS notRestrictionSailor
|
||||
FROM crackdown_status cs
|
||||
INNER JOIN fishing_boat fb
|
||||
ON cs.cds_key = fb.cds_key
|
||||
INNER JOIN process_result pr
|
||||
ON cs.cds_key = pr.cds_key
|
||||
<include refid="selectCrackdownStatusListWhere"></include>
|
||||
ORDER BY c.cds_key DESC
|
||||
ORDER BY cs.cds_key DESC
|
||||
LIMIT #{rowCnt} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<select id="selectCrackdownStatusListCnt" resultType="int" parameterType="CrackdownStatus">
|
||||
SELECT count(*)
|
||||
FROM crackdown_status
|
||||
FROM crackdown_status cs
|
||||
INNER JOIN fishing_boat fb
|
||||
ON cs.cds_key = fb.cds_key
|
||||
INNER JOIN process_result pr
|
||||
ON cs.cds_key = pr.cds_key
|
||||
<include refid="selectCrackdownStatusListWhere"></include>
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -7,6 +7,10 @@ $(document).on('click', '#crackdownStatusEditBtn', function () {
|
|||
getCrackdownStatusEditModal(Number($("#icaViewBody").find("[name='cdsKey']").val()));
|
||||
});
|
||||
|
||||
$(document).on('click', '#cdsEditBtn', function () {
|
||||
$("#crackdownStatusViewModal").modal('hide');
|
||||
getCrackdownStatusEditModal(Number($("#crackdownStatusViewBody").find("[name='cdsKey']").val()));
|
||||
});
|
||||
|
||||
$(document).on('click', '#saveCrackdownStatusBtn', function (){
|
||||
saveCrackdownStatus('N')
|
||||
|
|
@ -47,8 +51,8 @@ $(document).on('click', '#violationAddBtn', function (){
|
|||
})
|
||||
|
||||
$('#violationDiv').append(
|
||||
'<div>'
|
||||
+ '<select class="form-select form-select-sm" name="violation">'
|
||||
'<div class="row">'
|
||||
+ '<select class="form-select form-select-sm violation" name="violation">'
|
||||
+ '<option value="">선택</option>'
|
||||
+ violation
|
||||
+ '<option value="etc">직접입력</option>'
|
||||
|
|
@ -70,10 +74,23 @@ $(document).on('click', '#violationRemoveBtn', function (){
|
|||
$(document).on('change', '.violation', function (){
|
||||
if ($(this).val() == 'etc') {
|
||||
$(this).after(
|
||||
'<div class="col-auto">'
|
||||
'<div class="row col-auto etcDiv">'
|
||||
+ '<input type="text" class="form-control" name="violationEtc">'
|
||||
+ '</div>'
|
||||
);
|
||||
} else {
|
||||
$(this).next('.etcDiv').remove();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$(document).on('change', '#fisheryType', function (){
|
||||
if ($(this).val() == 'etc') {
|
||||
$(this).after(
|
||||
'<div class="col-auto">'
|
||||
+ '<input type="text" class="form-control" name="fisheryTypeEtc">'
|
||||
+ '</div>'
|
||||
);
|
||||
} else {
|
||||
$(this).next().remove();
|
||||
}
|
||||
|
|
@ -127,6 +144,26 @@ $(document).on('change', '#processStatus', function (){
|
|||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '#cdsDownExcel', function (){
|
||||
exportExcel('불법조업 불법어선 단속현황');
|
||||
});
|
||||
|
||||
function getCrackdownStatusViewModal(cdsKey){
|
||||
$.ajax({
|
||||
url: '/faStatistics/crackdownStatus/crackdownStatusViewModal',
|
||||
data: {cdsKey: cdsKey},
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#crackdownStatusViewBody").empty().append(html)
|
||||
$("#crackdownStatusViewModal").modal('show');
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getCrackdownStatusEditModal(cdsKey){
|
||||
$.ajax({
|
||||
url: '/faStatistics/crackdownStatus/crackdownStatusEditModal',
|
||||
|
|
@ -140,17 +177,17 @@ function getCrackdownStatusEditModal(cdsKey){
|
|||
$("#crackdownStatusEditModalContent").empty().append(html);
|
||||
$("#crackdownStatusEditModal").modal('show');
|
||||
|
||||
$("#napoDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
$("#napoDt").datetimepicker({
|
||||
format:'Y-m-d H:i',
|
||||
lang:'kr'
|
||||
});
|
||||
$("#birthdate").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
});
|
||||
$("#paymentPaymentDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
$("#paymentPaymentDt").datetimepicker({
|
||||
format:'Y-m-d H:i',
|
||||
lang:'kr'
|
||||
});
|
||||
$("#consignmentStartDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
|
|
@ -180,23 +217,22 @@ function getCrackdownStatusEditModal(cdsKey){
|
|||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
});
|
||||
$("#fieldIvsgtNapoDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
$("#fieldIvsgtNapoDt").datetimepicker({
|
||||
format:'Y-m-d H:i',
|
||||
lang:'kr'
|
||||
});
|
||||
$("#fieldIvsgtReleaseDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
$("#fieldIvsgtReleaseDt").datetimepicker({
|
||||
format:'Y-m-d H:i',
|
||||
lang:'kr'
|
||||
});
|
||||
$("#pressurizedStartDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
$("#pressurizedStartDt").datetimepicker({
|
||||
format:'Y-m-d H:i',
|
||||
lang:'kr'
|
||||
});
|
||||
$("#pressurizedEndDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
$("#pressurizedEndDt").datetimepicker({
|
||||
format:'Y-m-d H:i',
|
||||
lang:'kr'
|
||||
});
|
||||
|
||||
},
|
||||
error:function(){
|
||||
|
||||
|
|
@ -215,14 +251,27 @@ function saveCrackdownStatus(saveYn){
|
|||
let sailorList = [];
|
||||
|
||||
sailorList.push(
|
||||
{ position: 'POS001', sailorNameKr: null, isRestriction: $("#cdsEditForm").find('select[name="captin"]').val() != '' ? $("#cdsEditForm").find('select[name="captin"]').val() : null },
|
||||
{ position: 'POS002', sailorNameKr: null, isRestriction: $("#cdsEditForm").find('select[name="mate"]').val() != '' ? $("#cdsEditForm").find('select[name="mate"]').val() : null },
|
||||
{ position: 'POS003', sailorNameKr: null, isRestriction: $("#cdsEditForm").find('select[name="warden"]').val() != '' ? $("#cdsEditForm").find('select[name="warden"]').val() : null }
|
||||
{
|
||||
position: 'POS001',
|
||||
sailorNameKr: $("#cdsEditForm").find('input[name="sailorNameKr"]').val() != '' ? $("#cdsEditForm").find('input[name="sailorNameKr"]').val() : null,
|
||||
isRestriction: $("#cdsEditForm").find('select[name="captin"]').val() != '' ? $("#cdsEditForm").find('select[name="captin"]').val() : null,
|
||||
birthdate: $("#cdsEditForm").find('input[name="birthdate"]').val() != '' ? $("#cdsEditForm").find('input[name="birthdate"]').val() : null
|
||||
},
|
||||
{
|
||||
position: 'POS002',
|
||||
sailorNameKr: null,
|
||||
isRestriction: $("#cdsEditForm").find('select[name="mate"]').val() != '' ? $("#cdsEditForm").find('select[name="mate"]').val() : null
|
||||
},
|
||||
{
|
||||
position: 'POS003',
|
||||
sailorNameKr: null,
|
||||
isRestriction: $("#cdsEditForm").find('select[name="warden"]').val() != '' ? $("#cdsEditForm").find('select[name="warden"]').val() : null
|
||||
}
|
||||
);
|
||||
|
||||
$(".sailor-list").each(function (){
|
||||
$("select[name='sailor']").each(function (){
|
||||
sailorList.push({
|
||||
sailorKey: $(this).parent().parent().find('input[name="sailorKey"]').val() != undefined ? Number($(this).find('input[name="sailorKey"]').val()) : null,
|
||||
sailorKey: $(this).parent().parent().find('input[name="sailorKey"]').val() != undefined ? Number($(this).parent().parent().find('input[name="sailorKey"]').val()) : null,
|
||||
sailorNameKr: $(this).parent().parent().find('input[name="sailorNameKr"]').val(),
|
||||
position: 'POS006',
|
||||
isRestriction: $(this).val() != undefined ? $(this).val() : null
|
||||
|
|
@ -240,14 +289,17 @@ function saveCrackdownStatus(saveYn){
|
|||
if (sailorList[i].isRestriction != null) {
|
||||
formData.append(`sailorList[${i}].isRestriction`, sailorList[i].isRestriction);
|
||||
}
|
||||
if (sailorList[i].birthdate != null) {
|
||||
formData.append(`sailorList[${i}].birthdate`, sailorList[i].birthdate);
|
||||
}
|
||||
}
|
||||
|
||||
$(".violation").each(function (){
|
||||
violationList.push({
|
||||
violationKey: $(this).parent().find('input[name="violationKey"]').val() != undefined ? Number($(this).find('input[name="violationKey"]').val()) : null,
|
||||
fbKey: $("#cdsEditForm").find('input[name="fbKey"]').val() != undefined ? Number($(this).find('input[name="fbKey"]').val()) : null,
|
||||
violationKey: $(this).parent().find('input[name="violationKey"]').val() != undefined ? Number($(this).parent().find('input[name="violationKey"]').val()) : null,
|
||||
fbKey: $("#cdsEditForm").find('input[name="fbKey"]').val() != undefined ? Number($("#cdsEditForm").find('input[name="fbKey"]').val()) : null,
|
||||
violation: $(this).val() != '' ? $(this).val() : null,
|
||||
violationEtc: $(this).parent().find('input[name="violationEtc"]').val() != undefined ? $(this).find('input[name="violationEtc"]').val() : null
|
||||
violationEtc: $(this).parent().find('input[name="violationEtc"]').val() != undefined ? $(this).parent().find('input[name="violationEtc"]').val() : null
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -302,4 +354,47 @@ function contentCheck(){
|
|||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
function exportExcel(name){
|
||||
var excelHandler = {
|
||||
getExcelFileName : function(){
|
||||
return name+getToday()+'.xlsx'; //파일명
|
||||
},
|
||||
getSheetName : function(){
|
||||
return name;
|
||||
},
|
||||
getExcelData : function(){
|
||||
return document.getElementById('cdsTable'); //TABLE id
|
||||
},
|
||||
getWorksheet : function(){
|
||||
return XLSX.utils.table_to_sheet(this.getExcelData());
|
||||
}
|
||||
}
|
||||
// step 1. workbook 생성
|
||||
var wb = XLSX.utils.book_new();
|
||||
|
||||
// step 2. 시트 만들기
|
||||
var newWorksheet = excelHandler.getWorksheet();
|
||||
|
||||
// step 3. workbook에 새로만든 워크시트에 이름을 주고 붙인다.
|
||||
XLSX.utils.book_append_sheet(wb, newWorksheet, excelHandler.getSheetName());
|
||||
|
||||
// step 4. 엑셀 파일 만들기
|
||||
var wbout = XLSX.write(wb, {bookType:'xlsx', type: 'binary'});
|
||||
|
||||
// step 5. 엑셀 파일 내보내기
|
||||
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), excelHandler.getExcelFileName());
|
||||
}
|
||||
|
||||
function s2ab(s) {
|
||||
var buf = new ArrayBuffer(s.length); //convert s to arrayBuffer
|
||||
var view = new Uint8Array(buf); //create uint8array as viewer
|
||||
for (var i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF; //convert to octet
|
||||
return buf;
|
||||
}
|
||||
|
||||
function getToday() {
|
||||
var date = new Date();
|
||||
var year = date.getFullYear();
|
||||
}
|
||||
|
|
@ -11,7 +11,6 @@ $(document).on('click', '#icaAddBtn', function () {
|
|||
});
|
||||
|
||||
$(document).on('click', '#icaEditBtn', function () {
|
||||
$("#icaViewModal").modal('hide');
|
||||
$("#icaViewModal").modal('hide');
|
||||
getIcaEditModal(Number($("#icaViewBody").find("[name='icaKey']").val()));
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,568 @@
|
|||
.xdsoft_datetimepicker {
|
||||
box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.506);
|
||||
background: #fff;
|
||||
border-bottom: 1px solid #bbb;
|
||||
border-left: 1px solid #ccc;
|
||||
border-right: 1px solid #ccc;
|
||||
border-top: 1px solid #ccc;
|
||||
color: #333;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
padding: 8px;
|
||||
padding-left: 0;
|
||||
padding-top: 2px;
|
||||
position: absolute;
|
||||
z-index: 9999;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: none;
|
||||
}
|
||||
.xdsoft_datetimepicker.xdsoft_rtl {
|
||||
padding: 8px 0 8px 8px;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker iframe {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 75px;
|
||||
height: 210px;
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/*For IE8 or lower*/
|
||||
.xdsoft_datetimepicker button {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.xdsoft_noselect {
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.xdsoft_noselect::selection { background: transparent }
|
||||
.xdsoft_noselect::-moz-selection { background: transparent }
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_inline {
|
||||
display: inline-block;
|
||||
position: static;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker * {
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_datepicker {
|
||||
width: 224px;
|
||||
float: left;
|
||||
margin-left: 8px;
|
||||
}
|
||||
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_datepicker {
|
||||
float: right;
|
||||
margin-right: 8px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker {
|
||||
width: 256px;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker {
|
||||
width: 58px;
|
||||
float: left;
|
||||
text-align: center;
|
||||
margin-left: 8px;
|
||||
margin-top: 0;
|
||||
}
|
||||
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker {
|
||||
float: right;
|
||||
margin-right: 8px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 3px
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_monthpicker {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_label i,
|
||||
.xdsoft_datetimepicker .xdsoft_prev,
|
||||
.xdsoft_datetimepicker .xdsoft_next,
|
||||
.xdsoft_datetimepicker .xdsoft_today_button {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC);
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_label i {
|
||||
opacity: 0.5;
|
||||
background-position: -92px -19px;
|
||||
display: inline-block;
|
||||
width: 9px;
|
||||
height: 20px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_prev {
|
||||
float: left;
|
||||
background-position: -20px 0;
|
||||
}
|
||||
.xdsoft_datetimepicker .xdsoft_today_button {
|
||||
float: left;
|
||||
background-position: -70px 0;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_next {
|
||||
float: right;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_next,
|
||||
.xdsoft_datetimepicker .xdsoft_prev ,
|
||||
.xdsoft_datetimepicker .xdsoft_today_button {
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
border: 0 none;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
height: 30px;
|
||||
opacity: 0.5;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
||||
outline: medium none;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
text-indent: 100%;
|
||||
white-space: nowrap;
|
||||
width: 20px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev,
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next {
|
||||
float: none;
|
||||
background-position: -40px -15px;
|
||||
height: 15px;
|
||||
width: 30px;
|
||||
display: block;
|
||||
margin-left: 14px;
|
||||
margin-top: 7px;
|
||||
}
|
||||
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_prev,
|
||||
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_next {
|
||||
float: none;
|
||||
margin-left: 0;
|
||||
margin-right: 14px;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev {
|
||||
background-position: -40px 0;
|
||||
margin-bottom: 7px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box {
|
||||
height: 151px;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div {
|
||||
background: #f5f5f5;
|
||||
border-top: 1px solid #ddd;
|
||||
color: #666;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
border-collapse: collapse;
|
||||
cursor: pointer;
|
||||
border-bottom-width: 0;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_today_button:hover,
|
||||
.xdsoft_datetimepicker .xdsoft_next:hover,
|
||||
.xdsoft_datetimepicker .xdsoft_prev:hover {
|
||||
opacity: 1;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_label {
|
||||
display: inline;
|
||||
position: relative;
|
||||
z-index: 9999;
|
||||
margin: 0;
|
||||
padding: 5px 3px;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
font-weight: bold;
|
||||
background-color: #fff;
|
||||
float: left;
|
||||
width: 182px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_label:hover>span {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_label:hover i {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select {
|
||||
border: 1px solid #ccc;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 30px;
|
||||
z-index: 101;
|
||||
display: none;
|
||||
background: #fff;
|
||||
max-height: 160px;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{ right: -7px }
|
||||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{ right: 2px }
|
||||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover {
|
||||
color: #fff;
|
||||
background: #ff8000;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option {
|
||||
padding: 2px 10px 2px 5px;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current {
|
||||
background: #33aaff;
|
||||
box-shadow: #178fe5 0 1px 3px 0 inset;
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_month {
|
||||
width: 100px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_year{
|
||||
width: 48px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td > div {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar th {
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th {
|
||||
width: 14.2857142%;
|
||||
background: #f5f5f5;
|
||||
border: 1px solid #ddd;
|
||||
color: #666;
|
||||
font-size: 12px;
|
||||
text-align: right;
|
||||
vertical-align: middle;
|
||||
padding: 0;
|
||||
border-collapse: collapse;
|
||||
cursor: pointer;
|
||||
height: 25px;
|
||||
}
|
||||
.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th {
|
||||
width: 12.5%;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar th {
|
||||
background: #f1f1f1;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today {
|
||||
color: #33aaff;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_default {
|
||||
background: #ffe9d2;
|
||||
box-shadow: #ffb871 0 1px 4px 0 inset;
|
||||
color: #000;
|
||||
}
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_mint {
|
||||
background: #c1ffc9;
|
||||
box-shadow: #00dd1c 0 1px 4px 0 inset;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current {
|
||||
background: #33aaff;
|
||||
box-shadow: #178fe5 0 1px 3px 0 inset;
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month,
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled,
|
||||
.xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled {
|
||||
opacity: 0.5;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled {
|
||||
opacity: 0.2;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td:hover,
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover {
|
||||
color: #fff !important;
|
||||
background: #ff8000 !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current.xdsoft_disabled:hover,
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current.xdsoft_disabled:hover {
|
||||
background: #33aaff !important;
|
||||
box-shadow: #178fe5 0 1px 3px 0 inset !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover,
|
||||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover {
|
||||
color: inherit !important;
|
||||
background: inherit !important;
|
||||
box-shadow: inherit !important;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_calendar th {
|
||||
font-weight: 700;
|
||||
text-align: center;
|
||||
color: #999;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_copyright {
|
||||
color: #ccc !important;
|
||||
font-size: 10px;
|
||||
clear: both;
|
||||
float: none;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker .xdsoft_copyright a { color: #eee !important }
|
||||
.xdsoft_datetimepicker .xdsoft_copyright a:hover { color: #aaa !important }
|
||||
|
||||
.xdsoft_time_box {
|
||||
position: relative;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
.xdsoft_scrollbar >.xdsoft_scroller {
|
||||
background: #ccc !important;
|
||||
height: 20px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.xdsoft_scrollbar {
|
||||
position: absolute;
|
||||
width: 7px;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_scrollbar {
|
||||
left: 0;
|
||||
right: auto;
|
||||
}
|
||||
.xdsoft_scroller_box {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark {
|
||||
box-shadow: 0 5px 15px -5px rgba(255, 255, 255, 0.506);
|
||||
background: #000;
|
||||
border-bottom: 1px solid #444;
|
||||
border-left: 1px solid #333;
|
||||
border-right: 1px solid #333;
|
||||
border-top: 1px solid #333;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box {
|
||||
border-bottom: 1px solid #222;
|
||||
}
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div {
|
||||
background: #0a0a0a;
|
||||
border-top: 1px solid #222;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label {
|
||||
background-color: #000;
|
||||
}
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select {
|
||||
border: 1px solid #333;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover {
|
||||
color: #000;
|
||||
background: #007fff;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current {
|
||||
background: #cc5500;
|
||||
box-shadow: #b03e00 0 1px 3px 0 inset;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i,
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev,
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next,
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==);
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td,
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th {
|
||||
background: #0a0a0a;
|
||||
border: 1px solid #222;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th {
|
||||
background: #0e0e0e;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today {
|
||||
color: #cc5500;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_default {
|
||||
background: #ffe9d2;
|
||||
box-shadow: #ffb871 0 1px 4px 0 inset;
|
||||
color:#000;
|
||||
}
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_mint {
|
||||
background: #c1ffc9;
|
||||
box-shadow: #00dd1c 0 1px 4px 0 inset;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default,
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current,
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current {
|
||||
background: #cc5500;
|
||||
box-shadow: #b03e00 0 1px 3px 0 inset;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover,
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover {
|
||||
color: #000 !important;
|
||||
background: #007fff !important;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright { color: #333 !important }
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a { color: #111 !important }
|
||||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover { color: #555 !important }
|
||||
|
||||
.xdsoft_dark .xdsoft_time_box {
|
||||
border: 1px solid #333;
|
||||
}
|
||||
|
||||
.xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller {
|
||||
background: #333 !important;
|
||||
}
|
||||
.xdsoft_datetimepicker .xdsoft_save_selected {
|
||||
display: block;
|
||||
border: 1px solid #dddddd !important;
|
||||
margin-top: 5px;
|
||||
width: 100%;
|
||||
color: #454551;
|
||||
font-size: 13px;
|
||||
}
|
||||
.xdsoft_datetimepicker .blue-gradient-button {
|
||||
font-family: "museo-sans", "Book Antiqua", sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 300;
|
||||
color: #82878c;
|
||||
height: 28px;
|
||||
position: relative;
|
||||
padding: 4px 17px 4px 33px;
|
||||
border: 1px solid #d7d8da;
|
||||
background: -moz-linear-gradient(top, #fff 0%, #f4f8fa 73%);
|
||||
/* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(73%, #f4f8fa));
|
||||
/* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #fff 0%, #f4f8fa 73%);
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, #fff 0%, #f4f8fa 73%);
|
||||
/* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, #fff 0%, #f4f8fa 73%);
|
||||
/* IE10+ */
|
||||
background: linear-gradient(to bottom, #fff 0%, #f4f8fa 73%);
|
||||
/* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fff', endColorstr='#f4f8fa',GradientType=0 );
|
||||
/* IE6-9 */
|
||||
}
|
||||
.xdsoft_datetimepicker .blue-gradient-button:hover, .xdsoft_datetimepicker .blue-gradient-button:focus, .xdsoft_datetimepicker .blue-gradient-button:hover span, .xdsoft_datetimepicker .blue-gradient-button:focus span {
|
||||
color: #454551;
|
||||
background: -moz-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
|
||||
/* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f4f8fa), color-stop(73%, #FFF));
|
||||
/* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
|
||||
/* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
|
||||
/* IE10+ */
|
||||
background: linear-gradient(to bottom, #f4f8fa 0%, #FFF 73%);
|
||||
/* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f8fa', endColorstr='#FFF',GradientType=0 );
|
||||
/* IE6-9 */
|
||||
}
|
||||
1
src/main/resources/static/vendor/datetimepicker/js/datetimepicker.full.min.js
vendored
Normal file
1
src/main/resources/static/vendor/datetimepicker/js/datetimepicker.full.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
|
@ -6,6 +6,7 @@
|
|||
<th:block layout:fragment="script">
|
||||
<script th:inline="javascript">
|
||||
const commonCode = [[${session.commonCode}]];
|
||||
let totalPersonDamageAmount = 0;
|
||||
</script>
|
||||
<script type="text/javascript" th:src="@{/js/faStatistics/crackdownStatus.js}"></script>
|
||||
</th:block>
|
||||
|
|
@ -17,7 +18,7 @@
|
|||
<div class="row mx-0">
|
||||
<div class="col-12 card">
|
||||
<div class="card-body">
|
||||
<form method="get" th:action="@{/faStatistics/crackdownStatus}" id="icaSearchForm">
|
||||
<form method="get" th:action="@{/faStatistics/crackdownStatus}" id="cdsSearchForm">
|
||||
<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">
|
||||
|
|
@ -38,7 +39,7 @@
|
|||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start" style="overflow: hidden; overflow-x: scroll">
|
||||
<table class="table table-striped">
|
||||
<table class="table table-striped" style="max-width: none; width: auto;" id="cdsTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="4">연번</th>
|
||||
|
|
@ -109,7 +110,7 @@
|
|||
<th colspan="2">폐선</th>
|
||||
<th rowspan="2">침몰</th>
|
||||
<th rowspan="2">환부</th>
|
||||
<th colspan="3">일시</th>
|
||||
<th rowspan="3">일시</th>
|
||||
<th rowspan="3">해점</th>
|
||||
<th rowspan="3">인계함정</th>
|
||||
<th rowspan="3">중측인수함정</th>
|
||||
|
|
@ -142,16 +143,16 @@
|
|||
<th>폐선조건부공매</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>3</th>
|
||||
<th>4</th>
|
||||
<th>2</th>
|
||||
<th>1</th>
|
||||
<th>4</th>
|
||||
<th>3</th>
|
||||
<th>4</th>
|
||||
<th>9000,000</th>
|
||||
<th>4</th>
|
||||
<th>9099,099</th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[invasionType == 'IST001'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[invasionType == 'IST001'].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[invasionType == 'IST002'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[invasionType == 'IST002'].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[invasionType == 'IST003'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[invasionType == 'IST003'].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[invasionType == 'IST004'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[invasionType == 'IST004'].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[nll == 'Y'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[nll == 'Y'].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[personDamageCnt > 0 || personDamageAmount > 0].![1]) ne null ? 1 : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![personDamageCnt])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![personDamageAmount])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[materialDamageCnt > 0 || materialDamageAmount > 0].![1]) ne null ? 1 : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![materialDamageAmount])}"></th>
|
||||
<th>단속경찰서</th>
|
||||
<th>단속함정</th>
|
||||
<th>성</th>
|
||||
|
|
@ -160,57 +161,187 @@
|
|||
<th>출생년도</th>
|
||||
<th>어종</th>
|
||||
<th>수량</th>
|
||||
<th>100</th>
|
||||
<th>100</th>
|
||||
<th>100</th>
|
||||
<th>8888700</th>
|
||||
<th>10</th>
|
||||
<th>8</th>
|
||||
<th>400</th>
|
||||
<th>4000</th>
|
||||
<th>10</th>
|
||||
<th>80000</th>
|
||||
<th>11</th>
|
||||
<th>10</th>
|
||||
<th>11</th>
|
||||
<th>12</th>
|
||||
<th>8</th>
|
||||
<th>2</th>
|
||||
<th>7</th>
|
||||
<th>6</th>
|
||||
<th>20</th>
|
||||
<th>10</th>
|
||||
<th>10</th>
|
||||
<th>10</th>
|
||||
<th>10</th>
|
||||
<th>10</th>
|
||||
<th>20</th>
|
||||
<th>10</th>
|
||||
<th>10</th>
|
||||
<th>2</th>
|
||||
<th>11</th>
|
||||
<th>10</th>
|
||||
<th>10</th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![fishingBoat.offenseCatchCnt])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![fishingBoat.offenseIllegalWasteQuantity])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![fishingBoat.offenseQuantity])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![fishingBoat.offenseAmount])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.processStatus == 'PR001'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[processResult.processStatus == 'PR001'].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.processStatus == 'PR009'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[processResult.processStatus == 'PR009'].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[fishingBoat.damboPayment > 0].![1]) ne null ? 1 : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![fishingBoat.damboPayment])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[fishingBoat.damboUnpaidAmount > 0].![1]) ne null ? 1 : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![fishingBoat.damboUnpaidAmount])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.consignmentStartDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.evictionDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.directHandoverDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT001'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT001'].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT002'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT002'].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT003'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT003'].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.confiscationDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.returnDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![restrictionTotal])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![restrictionCaptin])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![restrictionMate])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![restrictionWarden])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![restrictionSailor])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.confiscationDt != null].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[processResult.confiscationDt != null].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![notRestrictionTotal])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![notRestrictionCaptin])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![notRestrictionMate])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![notRestrictionWarden])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.![notRestrictionSailor])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[processResult.confiscationDt != null].![1]) ne null ? 0 : #aggregates.sum(crackdownStatusList.?[processResult.confiscationDt != null].![1])}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[fieldIvsgtNapoDt != null].![1]) ne null ? 1 : 0}"></th>
|
||||
<th>나포일시</th>
|
||||
<th>석방일시</th>
|
||||
<th>소요시간</th>
|
||||
<th>소요시간</th>
|
||||
<th>거리(해리)</th>
|
||||
<th>7</th>
|
||||
<th>8</th>
|
||||
<th>10</th>
|
||||
<th>11</th>
|
||||
<th>12</th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationFrame != ''].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationFrame != ''].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationWidth != ''].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationWidth != null && fishingBoat.confiscationWidth != ''].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationJo != ''].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationJo != null && fishingBoat.confiscationJo != ''].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationGae != ''].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationGae != null && fishingBoat.confiscationGae != ''].![1]) : 0}"></th>
|
||||
<th th:text="${#aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationEtc != ''].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationEtc != null && fishingBoat.confiscationEtc != ''].![1]) : 0}"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<th:block th:each="crackdownStatus:${crackdownStatusList}">
|
||||
<tr class="tr" th:data-key="${crackdownStatus.cdsKey}">
|
||||
<td th:text="${crackdownStatus.cdsKey}"></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="commonCode:${session.commonCode.get('CDB')}">
|
||||
<td th:if="${crackdownStatus.crackdownBoat eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${!#strings.contains(crackdownStatus.crackdownBoat, 'CDB')}">
|
||||
<td th:text="${crackdownStatus.crackdownBoat}"></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 class="row justify-content">
|
||||
<button class="btn btn-sm btn-primary col-auto" id="">관리자마감</button>
|
||||
<button class="btn btn-sm btn-primary col-auto" id="crackdownStatusExcelDownBtn">엑셀 다운로드</button>
|
||||
<button class="btn btn-sm btn-primary col-auto" id="cdsDownExcel">엑셀 다운로드</button>
|
||||
<button class="btn btn-sm btn-primary col-auto" id="crackdownStatusAddBtn">등록</button>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -29,17 +29,17 @@
|
|||
<label class="col-auto col-form-label text-center">NLL</label>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="napoDt" id="napoDt">
|
||||
<input class="form-control" name="napoDt" id="napoDt" th:value="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}">
|
||||
<select class="form-select form-select-sm" name="nll">
|
||||
<option value="Y">O</option>
|
||||
<option value="N">X</option>
|
||||
<option value="Y" th:selected="${crackdownStatus.nll == 'Y'}">O</option>
|
||||
<option value="N" th:selected="${crackdownStatus.nll == 'N'}">X</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위반장소</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" placeholder="위도" name="napoSeaPointLat">
|
||||
<input class="form-control" placeholder="경도" name="napoSeaPointLon">
|
||||
<input class="form-control" placeholder="상세내용" name="napoSeaPointDetail">
|
||||
<input class="form-control" placeholder="위도" name="napoSeaPointLat" th:value="${crackdownStatus.napoSeaPointLat}">
|
||||
<input class="form-control" placeholder="경도" name="napoSeaPointLon" th:value="${crackdownStatus.napoSeaPointLon}">
|
||||
<input class="form-control" placeholder="상세내용" name="napoSeaPointDetail" th:value="${crackdownStatus.napoSeaPointDetail}">
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
<label class="col-form-label text-center">위반내용</label>
|
||||
|
|
@ -47,25 +47,29 @@
|
|||
</div>
|
||||
<div class="col-sm-2" id="violationDiv">
|
||||
<th:block th:if="${#lists.isEmpty(crackdownStatus.violationList)}">
|
||||
<select class="form-select form-select-sm violation" name="violation">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
</select>
|
||||
<div class="row">
|
||||
<select class="form-select form-select-sm violation" name="violation">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block th:if="${!#lists.isEmpty(crackdownStatus.violationList)}">
|
||||
<th:block th:each="violation : ${crackdownStatus.violationList}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<div class="row">
|
||||
<input type="hidden" name="violationKey" th:value="${violation.violationKey}">
|
||||
<select class="form-select form-select-sm violation" name="violation">
|
||||
<option value="">선택</option>
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.violationList != null and commonCode.itemCd eq crackdownStatus.violationList.violation}"></option>
|
||||
<option value="etc">직접입력</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.violationList != null and commonCode.itemCd eq violation.violation}"></option>
|
||||
<option value="etc">직접입력</option>
|
||||
</th:block>
|
||||
</select>
|
||||
</th:block>
|
||||
</div>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</div>
|
||||
|
|
@ -86,31 +90,31 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">발생건수</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="obstrExspdCnt">
|
||||
<input type="number" min="0" class="form-control" name="obstrExspdCnt" th:value="${crackdownStatus.obstrExspdCnt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">피해인원</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="personDamageCnt">
|
||||
<input type="number" min="0" class="form-control" name="personDamageCnt" th:value="${crackdownStatus.personDamageCnt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">피해액</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="personDamageAmount">
|
||||
<input type="number" min="0" class="form-control" name="personDamageAmount" th:value="${crackdownStatus.personDamageAmount}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">상세내용</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="personDamageDetail">
|
||||
<input class="form-control" name="personDamageDetail" th:value="${crackdownStatus.personDamageDetail}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">발생건수</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="materialDamageCnt">
|
||||
<input type="number" min="0" class="form-control" name="materialDamageCnt" th:value="${crackdownStatus.materialDamageCnt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">피해액</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="materialDamageAmount">
|
||||
<input type="number" min="0" class="form-control" name="materialDamageAmount" th:value="${crackdownStatus.materialDamageAmount}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">상세내용</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="materialDamageDetail">
|
||||
<input class="form-control" name="materialDamageDetail" th:value="${crackdownStatus.materialDamageDetail}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -144,14 +148,14 @@
|
|||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CDB')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq crackdownStatus.crackdownPolice}"></option>
|
||||
th:selected="${commonCode.itemCd eq crackdownStatus.crackdownBoat}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">MMSI.NO</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="mmsi">
|
||||
<input class="form-control" name="mmsi" th:value="${crackdownStatus.mmsi}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -160,11 +164,11 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">선명</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatNameKr">
|
||||
<input class="form-control" name="boatNameKr" th:value="${crackdownStatus.fishingBoat.boatNameKr}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">톤수</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="tonCnt">
|
||||
<input type="number" min="0" class="form-control" name="tonCnt" th:value="${crackdownStatus.fishingBoat.tonCnt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선질</label>
|
||||
<div class="col-sm-2">
|
||||
|
|
@ -179,23 +183,45 @@
|
|||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선적 성</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatNnySung">
|
||||
<input class="form-control" name="boatNnySung" th:value="${crackdownStatus.fishingBoat.boatNnySung}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선적 시</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatNnyAi">
|
||||
<input class="form-control" name="boatNnySi" th:value="${crackdownStatus.fishingBoat.boatNnySi}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선장명</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="sailorNameKr">
|
||||
<th:block th:each="sailor:${crackdownStatus.sailorList}" th:if="${#strings.contains(sailor.position, 'POS001')}">
|
||||
<input th:if="${sailor.position eq 'POS001'}" class="form-control" name="sailorNameKr" th:value="${sailor.sailorNameKr}">
|
||||
</th:block>
|
||||
<th:block th:if="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001'].![1]) == null}">
|
||||
<input class="form-control" name="sailorNameKr">
|
||||
</th:block>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">출생년도</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="birthdate" id="birthdate">
|
||||
<th:block th:each="sailor:${crackdownStatus.sailorList}" th:if="${#strings.contains(sailor.position, 'POS001')}">
|
||||
<input th:if="${sailor.position eq 'POS001'}" class="form-control" name="birthdate" id="birthdate" th:value="${#temporals.format(sailor.birthdate, 'yyyy-MM-dd')}">
|
||||
</th:block>
|
||||
<th:block th:if="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001'].![1]) == null}">
|
||||
<input class="form-control" name="birthdate" id="birthdate">
|
||||
</th:block>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선종</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="fisheryType">
|
||||
<select class="form-select form-select-sm" name="fisheryType" id="fisheryType">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('FT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.fishingBoat ne null && commonCode.itemCd eq crackdownStatus.fishingBoat.fisheryType}"></option>
|
||||
</th:block>
|
||||
<option th:selected="${crackdownStatus.fishingBoat.fisheryType ne null && !#strings.contains(crackdownStatus.fishingBoat.fisheryType, 'FT')}" value="etc">기타</option>
|
||||
</select>
|
||||
<th:block th:if="${crackdownStatus.fishingBoat.fisheryType ne null && !#strings.contains(crackdownStatus.fishingBoat.fisheryType, 'FT')}">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control" name="fisheryTypeEtc" th:value="${crackdownStatus.fishingBoat.fisheryType}">
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -204,11 +230,11 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">어종</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="catchFishSpecies">
|
||||
<input class="form-control" name="catchFishSpecies" th:value="${crackdownStatus.fishingBoat.catchFishSpecies}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">수량</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="catchCnt">
|
||||
<input type="number" min="0" class="form-control" name="catchCnt" th:value="${crackdownStatus.fishingBoat.catchCnt}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -217,23 +243,23 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">어종</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="offenseFishSpecies">
|
||||
<input class="form-control" name="offenseFishSpecies" th:value="${crackdownStatus.fishingBoat.offenseFishSpecies}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">어획량</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="offenseCatchCnt">
|
||||
<input type="number" min="0" class="form-control" name="offenseCatchCnt" th:value="${crackdownStatus.fishingBoat.offenseCatchCnt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">폐기량</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="offenseIllegalWasteQuantity">
|
||||
<input type="number" min="0" class="form-control" name="offenseIllegalWasteQuantity" th:value="${crackdownStatus.fishingBoat.offenseIllegalWasteQuantity}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위판량</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="offenseQuantity">
|
||||
<input type="number" min="0" class="form-control" name="offenseQuantity" th:value="${crackdownStatus.fishingBoat.offenseQuantity}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위판금액</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="offenseAmount">
|
||||
<input type="number" min="0" class="form-control" name="offenseAmount" th:value="${crackdownStatus.fishingBoat.offenseAmount}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -248,8 +274,13 @@
|
|||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.processResult ne null && commonCode.itemCd eq crackdownStatus.processResult.processStatus}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
<option th:selected="${crackdownStatus.processResult.processStatus ne null && !#strings.contains(crackdownStatus.processResult.processStatus, 'PR')}" value="etc">직접입력</option>
|
||||
</select>
|
||||
<th:block th:if="${crackdownStatus.processResult.processStatus ne null && !#strings.contains(crackdownStatus.processResult.processStatus, 'PR')}">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control" name="processStatusEtc" th:value="${crackdownStatus.processResult.processStatus}">
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -258,11 +289,11 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">납부액</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="damboPayment">
|
||||
<input type="number" min="0" class="form-control" name="damboPayment" th:value="${crackdownStatus.fishingBoat.damboPayment}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">납부일시</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="paymentPaymentDt" id="paymentPaymentDt">
|
||||
<input class="form-control" name="paymentPaymentDt" id="paymentPaymentDt" th:value="${#temporals.format(crackdownStatus.fishingBoat.paymentPaymentDt, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -271,7 +302,7 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">미납액</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="damboUnpaidAmount">
|
||||
<input type="number" min="0" class="form-control" name="damboUnpaidAmount" th:value="${crackdownStatus.fishingBoat.damboUnpaidAmount}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -280,31 +311,31 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">위탁시작일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="consignmentStartDt" id="consignmentStartDt">
|
||||
<input class="form-control" name="consignmentStartDt" id="consignmentStartDt" th:value="${#temporals.format(crackdownStatus.processResult.consignmentStartDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위탁종료일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="consignmentEndDt" id="consignmentEndDt">
|
||||
<input class="form-control" name="consignmentEndDt" id="consignmentEndDt" th:value="${#temporals.format(crackdownStatus.processResult.consignmentEndDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">퇴거일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="evictionDt" id="evictionDt">
|
||||
<input class="form-control" name="evictionDt" id="evictionDt" th:value="${#temporals.format(crackdownStatus.processResult.evictionDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">환부일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="returnDt" id="returnDt">
|
||||
<input class="form-control" name="returnDt" id="returnDt" th:value="${#temporals.format(crackdownStatus.processResult.returnDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">몰수확정일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationDt" id="confiscationDt">
|
||||
<input class="form-control" name="confiscationDt" id="confiscationDt" th:value="${#temporals.format(crackdownStatus.processResult.confiscationDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">폐선일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatDisposalDt" id="boatDisposalDt">
|
||||
<input class="form-control" name="boatDisposalDt" id="boatDisposalDt" th:value="${#temporals.format(crackdownStatus.processResult.boatDisposalDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">폐선종류</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="boatDisposalType">
|
||||
<select class="form-select form-select-sm" name="boatDisposalType" th:value="${crackdownStatus.processResult.boatDisposalType}">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('BDT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
|
|
@ -319,21 +350,21 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">직접인계일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="directHandoverDt" id="directHandoverDt">
|
||||
<input class="form-control" name="directHandoverDt" id="directHandoverDt" th:value="${#temporals.format(crackdownStatus.processResult.directHandoverDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">해점</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" placeholder="경도" name="handoverSeaPointLon">
|
||||
<input class="form-control" placeholder="위도" name="handoverSeaPointLat">
|
||||
<input class="form-control" placeholder="상세내용" name="handoverSeaPointDetail">
|
||||
<input class="form-control" placeholder="위도" name="handoverSeaPointLat" th:value="${crackdownStatus.processResult.handoverSeaPointLat}">
|
||||
<input class="form-control" placeholder="경도" name="handoverSeaPointLon" th:value="${crackdownStatus.processResult.handoverSeaPointLon}">
|
||||
<input class="form-control" placeholder="상세내용" name="handoverSeaPointDetail" th:value="${crackdownStatus.processResult.handoverSeaPointDetail}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">인계함정</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="handoverBoat">
|
||||
<input class="form-control" name="handoverBoat" th:value="${crackdownStatus.processResult.handoverBoat}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">중측</br>인수함정</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="middleTakeoverBoat">
|
||||
<input class="form-control" name="middleTakeoverBoat" th:value="${crackdownStatus.processResult.middleTakeoverBoat}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -344,45 +375,46 @@
|
|||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="captin">
|
||||
<option value="">선택</option>
|
||||
<option value="Y">구속</option>
|
||||
<option value="N">불구속</option>
|
||||
<option value="Y" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">향해장</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="mate">
|
||||
<option value="">선택</option>
|
||||
<option value="Y">구속</option>
|
||||
<option value="N">불구속</option>
|
||||
<option value="Y" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">기관장</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="warden">
|
||||
<option value="">선택</option>
|
||||
<option value="Y">구속</option>
|
||||
<option value="N">불구속</option>
|
||||
<option value="Y" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS003' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS003' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="button" class="btn btn-primary col-auto" id="sailorAddBtn">선원 추가</button>
|
||||
</div>
|
||||
<div class="mb-3 row" id="sailorDiv">
|
||||
<!--
|
||||
<div class="row">
|
||||
<label class="col-sm-1 col-form-label text-center">선원 이름</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="sailorNameKr">
|
||||
<th:block th:each="sailor:${crackdownStatus.sailorList}" th:if="${#strings.contains(sailor.position, 'POS005') || #strings.contains(sailor.position, 'POS006')}">
|
||||
<div class="row">
|
||||
<input type="hidden" name="sailorKey" th:value="${sailor.sailorKey}">
|
||||
<label class="col-sm-1 col-form-label text-center">선원 이름</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="sailorNameKr" th:value="${sailor.sailorNameKr}">
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm sailor-list" name="sailor">
|
||||
<option value="">선택</option>
|
||||
<option value="Y" th:selected="${sailor.isRestriction == 'Y'}">구속</option>
|
||||
<option value="N" th:selected="${sailor.isRestriction == 'N'}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="button" class="btn btn-primary col-auto" id="sailorRemoveBtn">-</button>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm sailor-list" name="sailor">
|
||||
<option value="">선택</option>
|
||||
<option value="Y">구속</option>
|
||||
<option value="N">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="button" class="btn btn-primary col-auto" id="sailorRemoveBtn">-</button>
|
||||
</div>
|
||||
-->
|
||||
</th:block>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
현장조사
|
||||
|
|
@ -390,15 +422,15 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">나포일시</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="fieldIvsgtNapoDt" id="fieldIvsgtNapoDt">
|
||||
<input class="form-control" name="fieldIvsgtNapoDt" id="fieldIvsgtNapoDt" th:value="${#temporals.format(crackdownStatus.fieldIvsgtNapoDt, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">석방일시</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="fieldIvsgtReleaseDt" id="fieldIvsgtReleaseDt">
|
||||
<input class="form-control" name="fieldIvsgtReleaseDt" id="fieldIvsgtReleaseDt" th:value="${#temporals.format(crackdownStatus.fieldIvsgtReleaseDt, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">소요시간</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="fieldIvsgtTimeTaken">
|
||||
<input class="form-control" name="fieldIvsgtTimeTaken" th:value="${#temporals.format(crackdownStatus.fieldIvsgtTimeTaken, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -407,19 +439,19 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">압송시작</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="pressurizedStartDt" id="pressurizedStartDt">
|
||||
<input class="form-control" name="pressurizedStartDt" id="pressurizedStartDt" th:value="${#temporals.format(crackdownStatus.pressurizedStartDt, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">압송종료</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="pressurizedEndDt" id="pressurizedEndDt">
|
||||
<input class="form-control" name="pressurizedEndDt" id="pressurizedEndDt" th:value="${#temporals.format(crackdownStatus.pressurizedEndDt, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">영장청구<br>소요시간</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="warrantReqTakeTime" readonly>
|
||||
<input class="form-control" name="warrantReqTakeTime" th:value="${#temporals.format(crackdownStatus.processResult.warrantReqTakeTime, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">거리</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="distance">
|
||||
<input class="form-control" name="distance" th:value="${crackdownStatus.distance}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -428,23 +460,23 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">틀</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationFrame">
|
||||
<input class="form-control" name="confiscationFrame" th:value="${crackdownStatus.fishingBoat.confiscationFrame}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">폭</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationWidth">
|
||||
<input class="form-control" name="confiscationWidth" th:value="${crackdownStatus.fishingBoat.confiscationWidth}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">조</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationJo">
|
||||
<input class="form-control" name="confiscationJo" th:value="${crackdownStatus.fishingBoat.confiscationJo}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">개</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationGae">
|
||||
<input class="form-control" name="confiscationGae" th:value="${crackdownStatus.fishingBoat.confiscationGae}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">기타</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationEtc">
|
||||
<input class="form-control" name="confiscationEtc" th:value="${crackdownStatus.fishingBoat.confiscationEtc}">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,490 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="crackdownStatusEditModalLabel" th:text="${crackdownStatus.cdsKey eq null ? '불법조업 외국어선 단속등록' : '불법조업 외국어선 단속수정'}">></h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body" id="cdsEditBody">
|
||||
<form action="#" method="post" id="cdsEditForm">
|
||||
<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" name="cdsKey" th:value="${crackdownStatus.cdsKey}">
|
||||
<th:block th:if="${crackdownStatus.fishingBoat ne null}">
|
||||
<input type="hidden" name="fbKey" th:value="${crackdownStatus.fishingBoat.fbKey}">
|
||||
</th:block>
|
||||
<th:block th:if="${crackdownStatus.processResult ne null}">
|
||||
<input type="hidden" name="prKey" th:value="${crackdownStatus.processResult.prKey}">
|
||||
</th:block>
|
||||
<input type="hidden" name="wrtOrgan" th:value="${crackdownStatus.wrtOrgan}">
|
||||
<input type="hidden" name="wrtNm" th:value="${crackdownStatus.wrtNm}">
|
||||
<input type="hidden" name="wrtDt" th:value="${#temporals.format(crackdownStatus.wrtDt, 'yyyy-MM-dd HH:mm')}">
|
||||
<input type="hidden" id="saveYn" name="saveYn">
|
||||
<div class="mb-3 row">
|
||||
나포정보
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<div class="col-sm-1">
|
||||
<label class="col-auto col-form-label text-center">나포일시</label>
|
||||
<label class="col-auto col-form-label text-center">NLL</label>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="napoDt" id="napoDt" th:value="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}">
|
||||
<select class="form-select form-select-sm" name="nll">
|
||||
<option value="Y" th:selected="${crackdownStatus.nll == 'Y'}">O</option>
|
||||
<option value="N" th:selected="${crackdownStatus.nll == 'N'}">X</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위반장소</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" placeholder="위도" name="napoSeaPointLat" th:value="${crackdownStatus.napoSeaPointLat}">
|
||||
<input class="form-control" placeholder="경도" name="napoSeaPointLon" th:value="${crackdownStatus.napoSeaPointLon}">
|
||||
<input class="form-control" placeholder="상세내용" name="napoSeaPointDetail" th:value="${crackdownStatus.napoSeaPointDetail}">
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
<label class="col-form-label text-center">위반내용</label>
|
||||
<button type="button" class="btn btn-primary col-auto" id="violationAddBtn">+</button>
|
||||
</div>
|
||||
<div class="col-sm-2" id="violationDiv">
|
||||
<th:block th:if="${#lists.isEmpty(crackdownStatus.violationList)}">
|
||||
<div class="row">
|
||||
<select class="form-select form-select-sm violation" name="violation">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block th:if="${!#lists.isEmpty(crackdownStatus.violationList)}">
|
||||
<th:block th:each="violation : ${crackdownStatus.violationList}">
|
||||
<div class="row">
|
||||
<input type="hidden" name="violationKey" th:value="${violation.violationKey}">
|
||||
<select class="form-select form-select-sm violation" name="violation">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.violationList != null and commonCode.itemCd eq violation.violation}"></option>
|
||||
<option value="etc">직접입력</option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">침범유형</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="invasionType">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('IST')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq crackdownStatus.invasionType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
특수공무집행방해
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">발생건수</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="obstrExspdCnt" th:value="${crackdownStatus.obstrExspdCnt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">피해인원</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="personDamageCnt" th:value="${crackdownStatus.personDamageCnt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">피해액</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="personDamageAmount" th:value="${crackdownStatus.personDamageAmount}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">상세내용</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="personDamageDetail" th:value="${crackdownStatus.personDamageDetail}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">발생건수</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="materialDamageCnt" th:value="${crackdownStatus.materialDamageCnt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">피해액</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="materialDamageAmount" th:value="${crackdownStatus.materialDamageAmount}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">상세내용</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="materialDamageDetail" th:value="${crackdownStatus.materialDamageDetail}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
검거기관
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">사건담당 기관</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="caseAgency">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('ATA')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq crackdownStatus.caseAgency}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">단속<br>경찰서</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq crackdownStatus.crackdownPolice}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">단속함정</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="crackdownBoat" id="crackdownBoat">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CDB')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq crackdownStatus.crackdownBoat}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">MMSI.NO</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="mmsi" th:value="${crackdownStatus.mmsi}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
선박제원
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">선명</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatNameKr" th:value="${crackdownStatus.fishingBoat.boatNameKr}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">톤수</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="tonCnt" th:value="${crackdownStatus.fishingBoat.tonCnt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선질</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="boatMaterial" id="boatMaterial">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('BM')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.fishingBoat ne null && commonCode.itemCd eq crackdownStatus.fishingBoat.boatMaterial}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선적 성</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatNnySung" th:value="${crackdownStatus.fishingBoat.boatNnySung}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선적 시</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatNnySi" th:value="${crackdownStatus.fishingBoat.boatNnySi}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선장명</label>
|
||||
<div class="col-sm-2">
|
||||
<th:block th:each="sailor:${crackdownStatus.sailorList}" th:if="${#strings.contains(sailor.position, 'POS001')}">
|
||||
<input th:if="${sailor.position eq 'POS001'}" class="form-control" name="sailorNameKr" th:value="${sailor.sailorNameKr}">
|
||||
</th:block>
|
||||
<th:block th:if="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001'].![1]) == null}">
|
||||
<input class="form-control" name="sailorNameKr">
|
||||
</th:block>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">출생년도</label>
|
||||
<div class="col-sm-2">
|
||||
<th:block th:each="sailor:${crackdownStatus.sailorList}" th:if="${#strings.contains(sailor.position, 'POS001')}">
|
||||
<input th:if="${sailor.position eq 'POS001'}" class="form-control" name="birthdate" id="birthdate" th:value="${#temporals.format(sailor.birthdate, 'yyyy-MM-dd')}">
|
||||
</th:block>
|
||||
<th:block th:if="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001'].![1]) == null}">
|
||||
<input class="form-control" name="birthdate" id="birthdate">
|
||||
</th:block>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선종</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="fisheryType" id="fisheryType">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('FT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.fishingBoat ne null && commonCode.itemCd eq crackdownStatus.fishingBoat.fisheryType}"></option>
|
||||
</th:block>
|
||||
<option th:selected="${crackdownStatus.fishingBoat.fisheryType ne null && !#strings.contains(crackdownStatus.fishingBoat.fisheryType, 'FT')}" value="etc">기타</option>
|
||||
</select>
|
||||
<th:block th:if="${crackdownStatus.fishingBoat.fisheryType ne null && !#strings.contains(crackdownStatus.fishingBoat.fisheryType, 'FT')}">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control" name="fisheryTypeEtc" th:value="${crackdownStatus.fishingBoat.fisheryType}">
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
어획물 축소기재
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">어종</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="catchFishSpecies" th:value="${crackdownStatus.fishingBoat.catchFishSpecies}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">수량</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="catchCnt" th:value="${crackdownStatus.fishingBoat.catchCnt}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
범칙물
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">어종</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="offenseFishSpecies" th:value="${crackdownStatus.fishingBoat.offenseFishSpecies}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">어획량</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="offenseCatchCnt" th:value="${crackdownStatus.fishingBoat.offenseCatchCnt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">폐기량</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="offenseIllegalWasteQuantity" th:value="${crackdownStatus.fishingBoat.offenseIllegalWasteQuantity}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위판량</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="offenseQuantity" th:value="${crackdownStatus.fishingBoat.offenseQuantity}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위판금액</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="offenseAmount" th:value="${crackdownStatus.fishingBoat.offenseAmount}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
처리결과
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">처리현황</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="processStatus" id="processStatus">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.processResult ne null && commonCode.itemCd eq crackdownStatus.processResult.processStatus}"></option>
|
||||
</th:block>
|
||||
<option th:selected="${crackdownStatus.processResult.processStatus ne null && !#strings.contains(crackdownStatus.processResult.processStatus, 'PR')}" value="etc">직접입력</option>
|
||||
</select>
|
||||
<th:block th:if="${crackdownStatus.processResult.processStatus ne null && !#strings.contains(crackdownStatus.processResult.processStatus, 'PR')}">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control" name="processStatusEtc" th:value="${crackdownStatus.processResult.processStatus}">
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
담보금 납부
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">납부액</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="damboPayment" th:value="${crackdownStatus.fishingBoat.damboPayment}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">납부일시</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="paymentPaymentDt" id="paymentPaymentDt" th:value="${#temporals.format(crackdownStatus.fishingBoat.paymentPaymentDt, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
담보금 미납
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">미납액</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" min="0" class="form-control" name="damboUnpaidAmount" th:value="${crackdownStatus.fishingBoat.damboUnpaidAmount}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
선박처리
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">위탁시작일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="consignmentStartDt" id="consignmentStartDt" th:value="${#temporals.format(crackdownStatus.processResult.consignmentStartDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위탁종료일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="consignmentEndDt" id="consignmentEndDt" th:value="${#temporals.format(crackdownStatus.processResult.consignmentEndDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">퇴거일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="evictionDt" id="evictionDt" th:value="${#temporals.format(crackdownStatus.processResult.evictionDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">환부일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="returnDt" id="returnDt" th:value="${#temporals.format(crackdownStatus.processResult.returnDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">몰수확정일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationDt" id="confiscationDt" th:value="${#temporals.format(crackdownStatus.processResult.confiscationDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">폐선일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatDisposalDt" id="boatDisposalDt" th:value="${#temporals.format(crackdownStatus.processResult.boatDisposalDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">폐선종류</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="boatDisposalType" th:value="${crackdownStatus.processResult.boatDisposalType}">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('BDT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.processResult ne null && commonCode.itemCd eq crackdownStatus.processResult.boatDisposalType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
직접인계
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">직접인계일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="directHandoverDt" id="directHandoverDt" th:value="${#temporals.format(crackdownStatus.processResult.directHandoverDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">해점</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" placeholder="위도" name="handoverSeaPointLat" th:value="${crackdownStatus.processResult.handoverSeaPointLat}">
|
||||
<input class="form-control" placeholder="경도" name="handoverSeaPointLon" th:value="${crackdownStatus.processResult.handoverSeaPointLon}">
|
||||
<input class="form-control" placeholder="상세내용" name="handoverSeaPointDetail" th:value="${crackdownStatus.processResult.handoverSeaPointDetail}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">인계함정</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="handoverBoat" th:value="${crackdownStatus.processResult.handoverBoat}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">중측</br>인수함정</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="middleTakeoverBoat" th:value="${crackdownStatus.processResult.middleTakeoverBoat}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
구속/ 불구속
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">선장</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="captin">
|
||||
<option value="">선택</option>
|
||||
<option value="Y" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">향해장</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="mate">
|
||||
<option value="">선택</option>
|
||||
<option value="Y" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">기관장</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="warden">
|
||||
<option value="">선택</option>
|
||||
<option value="Y" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS003' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS003' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="button" class="btn btn-primary col-auto" id="sailorAddBtn">선원 추가</button>
|
||||
</div>
|
||||
<div class="mb-3 row" id="sailorDiv">
|
||||
<th:block th:each="sailor:${crackdownStatus.sailorList}" th:if="${#strings.contains(sailor.position, 'POS005') || #strings.contains(sailor.position, 'POS006')}">
|
||||
<div class="row">
|
||||
<input type="hidden" name="sailorKey" th:value="${sailor.sailorKey}">
|
||||
<label class="col-sm-1 col-form-label text-center">선원 이름</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="sailorNameKr" th:value="${sailor.sailorNameKr}">
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm sailor-list" name="sailor">
|
||||
<option value="">선택</option>
|
||||
<option value="Y" th:selected="${sailor.isRestriction == 'Y'}">구속</option>
|
||||
<option value="N" th:selected="${sailor.isRestriction == 'N'}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="button" class="btn btn-primary col-auto" id="sailorRemoveBtn">-</button>
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
현장조사
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">나포일시</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="fieldIvsgtNapoDt" id="fieldIvsgtNapoDt" th:value="${#temporals.format(crackdownStatus.fieldIvsgtNapoDt, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">석방일시</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="fieldIvsgtReleaseDt" id="fieldIvsgtReleaseDt" th:value="${#temporals.format(crackdownStatus.fieldIvsgtReleaseDt, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">소요시간</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="fieldIvsgtTimeTaken" th:value="${#temporals.format(crackdownStatus.fieldIvsgtTimeTaken, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
압송
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">압송시작</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="pressurizedStartDt" id="pressurizedStartDt" th:value="${#temporals.format(crackdownStatus.pressurizedStartDt, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">압송종료</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="pressurizedEndDt" id="pressurizedEndDt" th:value="${#temporals.format(crackdownStatus.pressurizedEndDt, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">영장청구<br>소요시간</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="warrantReqTakeTime" th:value="${#temporals.format(crackdownStatus.processResult.warrantReqTakeTime, 'yyyy-MM-dd HH:mm')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">거리</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="distance" th:value="${crackdownStatus.distance}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
압수어구
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">틀</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationFrame" th:value="${crackdownStatus.fishingBoat.confiscationFrame}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">폭</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationWidth" th:value="${crackdownStatus.fishingBoat.confiscationWidth}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">조</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationJo" th:value="${crackdownStatus.fishingBoat.confiscationJo}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">개</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationGae" th:value="${crackdownStatus.fishingBoat.confiscationGae}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">기타</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationEtc" th:value="${crackdownStatus.fishingBoat.confiscationEtc}">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<th:block th:if="${userSeq eq crackdownStatus.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
|
||||
<button type="button" class="btn btn-warning" id="cdsEditBtn">수정</button>
|
||||
</th:block>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||
</div>
|
||||
</html>
|
||||
|
|
@ -12,6 +12,8 @@
|
|||
<link rel="stylesheet" th:href="@{/img/bootstrap-icons-1.9.1/bootstrap-icons.css}">
|
||||
<!--bootstrap-datepicker-->
|
||||
<link rel="stylesheet" th:href="@{/vendor/bootstrap-datepicker-1.9.0-dist/css/bootstrap-datepicker.min.css}">
|
||||
<!--datetimepicker-->
|
||||
<link rel="stylesheet" th:href="@{/vendor/datetimepicker/css/datetimepicker.css}">
|
||||
<!--summernote-->
|
||||
<link rel="stylesheet" th:href="@{/vendor/summernote-0.8.18-dist/summernote-lite.min.css}">
|
||||
|
||||
|
|
@ -26,6 +28,9 @@
|
|||
<!--bootstrap-datepicker-->
|
||||
<script type="text/javascript" th:src="@{/vendor/bootstrap-datepicker-1.9.0-dist/js/bootstrap-datepicker.min.js}"></script>
|
||||
<script type="text/javascript" th:src="@{/vendor/bootstrap-datepicker-1.9.0-dist/locales/bootstrap-datepicker.ko.min.js}"></script>
|
||||
<!--datetimepicker-->
|
||||
<script type="text/javascript" th:src="@{/vendor/datetimepicker/js/datetimepicker.full.min.js}"></script>
|
||||
<script type="text/javascript" th:src="@{/vendor/datetimepicker/js/datetimepicker.js}"></script>
|
||||
<!--summernote-->
|
||||
<script type="text/javascript" th:src="@{/vendor/summernote-0.8.18-dist/summernote-lite.min.js}"></script>
|
||||
<script type="text/javascript" th:src="@{/vendor/summernote-0.8.18-dist/lang/summernote-ko-KR.min.js}"></script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue